comment
[bpt/emacs.git] / src / ChangeLog
CommitLineData
68a5e97b
KH
12000-06-20 Kenichi Handa <handa@etl.go.jp>
2
95417e1e
KH
3 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
4
68a5e97b
KH
5 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
6 contain information about ENCODING.
7
8 * fontset.c (FONTSET_ASCII): Use the first element of char table
9 for an ASCII font, not defalt slot.
10 (fontset_ref_via_base): If FONTSET doesn't contain information for
11 C, try the default fontset.
12 (make_fontset): Don't copy the default fontset.
13 (fontset_font_pattern): Likewise.
14 (accumulate_font_info): If ELT is nil, use the corresponding
15 element in the default fontset.
16
3b4fa1b2
DL
172000-06-19 Dave Love <fx@gnu.org>
18
943e731c
DL
19 * syntax.c (Fparse_partial_sexp): Doc fix.
20
21 * regex.h: Test PROTOTYPES as well as __STDC__.
22
3b4fa1b2
DL
23 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
24 errno, strerror. Put text after #endif in comment.
25
26 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
27 pcc).
28
29 * xterm.c (x_frame_of_widget): Likewise.
30
cdf0357b
GM
312000-06-19 Gerd Moellmann <gerd@gnu.org>
32
33 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
34 to Vfundamental_mode_abbrev_table.
35
36 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
37 bogus objects are marked. This slows down GC by ~80 percent, but
38 it might be worth trying when debugging GC-related problems.
39 This feature requires conservative stack marking to be enabled.
40
41 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
42 returns XLookupChars, reset `modifiers' to zero.
43
998e9f8c
DL
442000-06-19 Dave Love <fx@gnu.org>
45
46 * mktime.c: Unprotoized.
47
d1504184
GM
482000-06-19 Richard Stallman <rms@caffeine.ai.mit.edu>
49
50 * data.c (set_internal): If variable is frame-local,
51 store the new value immediately into the frame parameter alist.
52
140c4ac6
KR
532000-06-19 Ken Raeburn <raeburn@gnu.org>
54
14358466
KR
55 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
56 in the custom handler pointer.
57
140c4ac6
KR
58 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
59 value, or checks for CHAR_META can fail when Lisp_Object is a
60 union type.
61 * keymap.c (get_keyelt): Likewise.
62
10d7bf84
KH
632000-06-19 Kenichi Handa <handa@etl.go.jp>
64
65 * ccl.h (struct ccl_program): New member eol_type.
66 (struct ccl_spec): New member cr_carryover.
67
68 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
69 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
70
71 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
72 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
73 (decode_eol_post_ccl): New function.
74 (decode_coding): Don't detect EOL format here for CCL based coding
75 systems.
76 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
77 decode_eol_post_ccl after running the CCL program.
78 (code_convert_region): Don't detect EOL format here for CCL based
79 coding systems.
80 (decode_coding_string): Likewise.
81
52e386c2
KR
822000-06-18 Ken Raeburn <raeburn@gnu.org>
83
84 * charset.c (update_charset_table): Use XINT on "iso_final_char"
85 when treating it as an integer.
86
87 * coding.h (encode_coding_string): Declare.
88
89 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
90 it as an integer.
91
92 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
93 "xkeymap" to avoid shadowing the "enum map_type" value that needs
94 to be passed to get_local_map.
95
96 * sound.c (Fplay_sound): Don't call make_number on
97 Frun_hook_with_args count argument.
98
99 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
100 for lisp objects in X event structure data field, when lisp
101 objects are represented with unions.
102 (x_scroll_bar_to_input_event): Ditto.
103
b357b9d4
KR
1042000-06-16 Ken Raeburn <raeburn@gnu.org>
105
106 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
107 termination of string. Fix sense of test whether
108 Vline_number_display_limit is an integer.
b357b9d4 109
a871441d
GM
1102000-06-16 Gerd Moellmann <gerd@gnu.org>
111
a9021acd
GM
112 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
113 only if HAVE_X_WINDOWS.
114
6344985d
GM
115 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
116 of titles.
117
a871441d
GM
118 * dispnew.c (update_frame_1): Handle case that cursor vpos is
119 out of bounds.
120
228b083e
EZ
1212000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
122
123 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
124 of its headers.
125
c25b53a2
KH
1262000-06-15 Kenichi Handa <handa@etl.go.jp>
127
128 * coding.c (decode_coding_emacs_mule): Always set src_base at the
129 start of the while loop.
130
a6981b11
GM
1312000-06-15 Gerd Moellmann <gerd@gnu.org>
132
e9924e52
GM
133 * atimer.c (alarm_signal_handler): Add forward declaration.
134
a6981b11
GM
135 * data.c (set_internal): Remove debug code.
136
25fa6deb
GM
1372000-06-14 Gerd Moellmann <gerd@gnu.org>
138
dce6b995
GM
139 * Makefile.in (bootstrap-temacs): Add `-I../src'.
140
9f817ea4
GM
141 * unexec.c (toplevel) [COFF]: Include coff.h.
142
143 * s/lynxos.h: New file.
144
145 * keymap.c (Fsingle_key_description): Enclose function key and
146 event symbol names in angle brackets.
147
8a4e3c0c
GM
148 * xdisp.c (setup_echo_area_for_printing): Call
149 message_log_maybe_newline if message_buf_print is not set.
150
151 * print.c (printchar, strout): Don't check message_buf_print
152 before calling setup_echo_area_for_printing because that
153 function does something useful even when message_buf_print is
154 already set.
155
25fa6deb
GM
156 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
157 variables.
158 (ensure_echo_area_buffers): Initialize echo buffer's
159 truncate lines setting to nil.
160 (with_echo_area_buffer): Don't set the echo buffer's truncate
161 lines setting here.
8a4e3c0c 162 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
163 of message_truncate_lines.
164 (resize_mini_window): Handle case that lines are truncated.
165 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
166 message-truncate-lines.
167
168 * keyboard.c (read_char): Bind message-truncate-lines to t
169 while displaying a help-echo.
170
171 * lisp.h (Qmessage_truncate_lines): External declaration.
172
163dcff3
GM
1732000-06-13 Gerd Moellmann <gerd@gnu.org>
174
1681ead6
GM
175 * xdisp.c (Vline_number_display_limit): Renamed from
176 line_number_display_limit.
177 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
178 Extend documentation string. Initialize
179 Vline_number_display_limit to nil meaning no limit.
180 (decode_mode_spec): Use Vline_number_display_limit with its new
181 meaning.
182
163dcff3
GM
183 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
184
1852000-06-13 Richard Stallman <rms@caffeine.ai.mit.edu>
186
187 * frame.c (Fmodify_frame_parameters): Doc fix.
188
189 * xfns.c (x_set_frame_parameters): Comment fix.
190
191 * frame.c (store_frame_param): Call swap_in_global_binding if the
192 variable's current binding was chosen based on this frame.
193
194 * data.c (swap_in_global_binding): New function.
195
a704139d
EZ
1962000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
197
198 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
199 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
200
9b6610db
EZ
2012000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
202
203 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
204
c68833d2
JR
2052000-06-12 Jason Rumney <jasonr@gnu.org>
206
207 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
208
209 * w32.h (EMACS_W32_H): Renamed from _NT_H_
210
211 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
212
213 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
214
ed1056b3
GM
2152000-06-12 Gerd Moellmann <gerd@gnu.org>
216
217 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
218 (syms_of_xfaces): Defsubr Sdump_colors.
219 (x_free_colors): Don't treat b&w specially on default visual.
220 (x_free_dpy_colors): New function.
221 (free_face_colors): Don't check visual class; it's done
222 in x_free_colors.
223
224 * xterm.c (x_frame_of_widget): New function.
225 (x_alloc_nearest_color_for_widget): Use it.
226 (x_copy_dpy_color): New function.
227 (x_destroy_window): Free various colors.
228
5050a2ef
KH
2292000-06-12 Kenichi Handa <handa@etl.go.jp>
230
231 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
232
233 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
234
235 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
236
237 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
238
239 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
240
fb1b041d
DL
2412000-06-11 Dave Love <fx@gnu.org>
242
243 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
244
ff96b5f4
EZ
2452000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
246
247 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
248
db8eeecd
GM
2492000-06-11 Gerd Moellmann <gerd@gnu.org>
250
ed1056b3 251 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
252 to `XEvent *'.
253
49b71c5f
KH
2542000-06-10 Kenichi Handa <handa@etl.go.jp>
255
c479bd55
KH
256 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
257 (regex_compile): Fix the code for handling the case of single byte
258 char and multibyte char being mixed in a range within [...].
259
ff6a65c2
KH
260 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
261 and dst_multibyte members of coding.
262
49b71c5f
KH
263 * charset.c (update_charset_table): Update the table
264 bytes_by_char_head.
265 (init_charset_once): Initialize elements of bytes_by_char_head to
266 1 except for leading codes for private charases.
267
268 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
269 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
270 sequence.
271
9e80b57d
KR
2722000-06-09 Ken Raeburn <raeburn@gnu.org>
273
274 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
275 access the data it doesn't point to.
276
f83fe4b4
GM
2772000-06-08 Gerd Moellmann <gerd@gnu.org>
278
279 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 280 will be translated to a switch-frame event when reading the
f83fe4b4
GM
281 event queue. This is necessary because Emacs otherwise won't
282 perform a switch-frame to a new frame until some other event, for
283 example a keystroke event, forces it to do so. This has various
284 effects, one visible being that the cursor of a frame created with
285 C-x 5 2 or switched to with a window manager key binding like
286 A-TAB stays hollow because selected_window isn't on the newly
287 focused frame until the switch-frame is performed.
288
289 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
290 generating a switch-frame event if necessary.
291
292 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
293
294 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
295 it's an integer.
296
0890801b
KH
2972000-06-08 Kenichi Handa <handa@etl.go.jp>
298
299 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
300 charset.
301
173cbca8
GM
3022000-06-07 Gerd Moellmann <gerd@gnu.org>
303
3091c2a6
GM
304 * window.c (displayed_window_lines): Take empty lines at
305 the bottom of a window into account.
306
f38952fe
GM
307 * window.c (displayed_window_lines): New function.
308 (Fmove_to_window_line): Use displayed_window_lines to determine
309 the number of lines to move, instead of using the window's height.
310
311 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
312 to stop reading, even if the form read sets point to a different
313 value when evaluated.
314
173cbca8
GM
315 * xdisp.c (display_line): Fix code deciding in which line to
316 put the cursor.
317
6ba6c818
KH
3182000-06-07 Kenichi Handa <handa@etl.go.jp>
319
320 * fileio.c (e_write): Free composition data if stored in
321 coding->cmp_data.
322
5f1aea9a
GM
3232000-06-06 Gerd Moellmann <gerd@gnu.org>
324
666852af
GM
325 * xdisp.c (display_line): Set row's and iterator's
326 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
327 Set cursor even if row ends in the middle of a character.
328 (dump_glyph_row): Print values of new flags.
329 (redisplay_window) <cursor movement in unchanged window>: When
330 point has been moved forward, and PT is at the end of the cursor
331 row, don't place the cursor in the next row if the cursor row ends
332 in the middle of a character or at ZV.
333
334 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
335 (struct glyph_row): Add starts_in_middle_of_char_p and
336 ends_in_middle_of_char_p.
337 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
338 ends_in_middle_of_char_p flag.
339 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
340
d13f3e2e
GM
341 * term.c (append_glyph): Revert change of 2000-06-06.
342
343 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
344 padding glyph not fitting on line as whole character not
345 fitting on line.
346
5f1aea9a
GM
347 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
348 this isn't true for images with `:ascent 100'.
349
10cda9b0
KH
3502000-06-06 Kenichi Handa <handa@etl.go.jp>
351
ed00559d
KH
352 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
353 as modified if it is originally unmodified.
354
10cda9b0
KH
355 * term.c (encode_terminal_code): Change the way to check if
356 terminal coding does any conversion.
357 (append_glyph): Set glyph->pixel_width correctly.
358
359 * xdisp.c (display_line): While checking line continuation, pay
360 attention to a padding glyph.
361
1969fae2
GM
3622000-06-05 Gerd Moellmann <gerd@gnu.org>
363
364 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
365
162ccef4
DL
3662000-06-05 Dave Love <fx@gnu.org>
367
f19f32dd
DL
368 * xdisp.c: Include fontset.h.
369
370 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
371
372 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
373
374 * dispnew.c: Conditionally include term.h.
375
376 * coding.h: Declare code_convert_string_norecord.
377
378 * frame.h (struct frame): Use volatile unconditionally.
379
380 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
381
382 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
383
384 * systime.h: Protect against multiple inclusion.
385 (timezone) [USG5_4]: Define as time_t.
386
387 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
388 (Foptimize_char_table, make_temp_name): Declare.
389
390 * Makefile.in (xdisp.o): Depend on fontset.h.
391
392 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
393
394 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
395 (Foptimize_char_table, make_temp_name): Declare.
396
162ccef4
DL
397 * s/irix4-0.h:
398 * s/irix5-0.h:
399 * s/netbsd.h: Don't define autoconfiscated MATHERR.
400
2082fe81
DL
4012000-06-02 Dave Love <fx@gnu.org>
402
403 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
404
dcf671d2
GM
4052000-06-02 Gerd Moellmann <gerd@gnu.org>
406
407 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 408 result face, set flags in that face indicating that colors may not
dcf671d2
GM
409 be freed.
410
411 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
412 glyph, use the ASCII NUL character to determine the face.
413
d42122a3
DL
4142000-06-02 Dave Love <fx@gnu.org>
415
416 * sysdep.c: Conditionally include stdlib.h, unistd.h.
417 (VFORK_RETURN_TYPE): Remove.
418
419 * config.in: Add NO_MATHERR.
420
dd432f16
DL
4212000-06-01 Dave Love <fx@gnu.org>
422
90aa4ea8
DL
423 * cmds.c (internal_self_insert): Don't check
424 Vbefore_change_function, Vafter_change_function.
425
426 * insdel.c (signal_before_change, signal_after_change): Likewise.
427
428 * buffer.c (Vbefore_change_function, Vafter_change_function):
429 Variables and their initializations deleted.
430
2330c9d4
DL
431 * callint.c (Fcall_interactively): Doc fix.
432
dd432f16
DL
433 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
434
bf9e8804
DL
4352000-05-31 Dave Love <fx@gnu.org>
436
437 * textprop.c: Revert last change -- duplicated.
438
3694b4ab
GM
4392000-05-31 Gerd Moellmann <gerd@gnu.org>
440
441 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
442 in #if 0.
443
444 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
445
f14156cd
JR
4462000-05-31 Jason Rumney <jasonr@gnu.org>
447
8119aab8
JR
448 * search.c (Fre_search_forward, Fre_search_backward)
449 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
450
f14156cd
JR
451 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
452
4aab9be3
JR
4532000-05-30 Jason Rumney <jasonr@gnu.org>
454
455 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
456 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
457
458 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
459 member.
460
461 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
462 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
463 expand a nil default_filename.
464
465 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
466 pointer to glyph_to_pixel_coords, not a frame.
467
468 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
469 coding.h to dependencies.
470
471 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
472
473 * w32console.c (glyph_to_pixel_coords): Change first parameter to
474 window pointer to be consistent with w32term.c and xterm.c.
475
476 * w32fns.c: Format and doc changes to bring closer to xfns.c.
477 (VIETNAMESE_CHARSET): Define if not defined in system headers.
478 (Qline_spacing, Qcenter): New variables.
479 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
480 (x_set_line_spacing): New function.
481 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
482 macros.
483 (x_specified_cursor_type): New function.
484 (x_set_cursor_type): Use it.
485 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
486 and icon strings.
487 (validate_x_resource_name, x_get_resource_string): Measure lengths
488 of external strings in bytes.
489 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
490 GetTextExtentPoint32 with NULL title.
491 (Fx_create_frame): Initialize Qline_spacing.
492 (w32_load_system_font): Initialize font->double_byte_p.
493 (x_to_w32_charset): Use Vw32_charset_info_alist.
494 (Image, busy cursor, tooltip functions): Merged changes from
495 xfns.c. Not yet functional on Windows.
496
497 * w32gui.h (W32FontStruct): Add double_byte_p member.
498
499 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
500 (emacs_button_translation): Use it.
501 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
502 in `mask' to be set.
503
504 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
505 menu strings.
506
507 * w32term.c: Format and doc changes to bring closer to xterm.c.
508 (w32_char_font_type): New enum.
509 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
510 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
511 (w32_encode_char): New function.
512 (x_encode_char): Removed.
513 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
514 x_encode_char and w32_font_is_double_byte.
515 (x_produce_image_glyph): Use image_ascent.
516 (x_produce_glyphs): Use new version of w32_per_char_metric and
517 handle NULL return value. Allow extra line spacing.
518 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
519 (w32_get_glyph_overhangs): Remove unicode_p param. Use
520 w32_font_type member of glyph instead.
521 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
522 (fast_find_position): Make sure not to consider rows not visible
523 in the window.
524 (w32_read_socket) [WM_MENUSELECT]: Cannot call
525 w32_menu_display_help with input blocked, as it can abort.
526 (x_display_and_set_cursor): Choose cursor depending
527 on buffer-local value of cursor_type.
528 (x_draw_bar_cursor): Add parameter WIDTH.
529
530 * w32term.h (CP_DEFAULT): Define.
531 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
532
10fc3187
GM
5332000-05-30 Gerd Moellmann <gerd@gnu.org>
534
535 * search.c (Fre_search_forward, Fre_search_backward)
536 (Fposix_search_backward, Fposix_search_forward): Doc fix.
537
d0555360
KH
5382000-05-30 Kenichi Handa <handa@etl.go.jp>
539
540 * coding.c (detect_coding_iso2022): Fix code for checking
541 CODING_CATEGORY_MASK_ISO_8_2.
542
f1ad044f
SM
5432000-05-29 Stefan Monnier <monnier@cs.yale.edu>
544
545 * regex.c (PREFETCH_NOLIMIT): New function.
546 (re_match_2_internal): Use it and adjust the end_match_2 logic.
547
84ec3b4b
GM
5482000-05-29 Gerd Moellmann <gerd@gnu.org>
549
66254a13
GM
550 * syntax.c (find_defun_start): Move test for
551 open_paren_in_column_0_is_defun_start outside of the loop.
552
49e70dec
GM
553 * xdisp.c (redisplay_window): Really switch buffers when
554 displaying mode lines, and temporarily set selected_frame to the
555 frame of the window that's redisplayed.
556
84ec3b4b
GM
557 * xfaces.c (free_realized_faces): Block/unblock input.
558 (free_realized_multibyte_face): Ditto.
559
869a3a14
DL
5602000-05-29 Dave Love <fx@gnu.org>
561
562 * textprop.c (Qkeymap): New variable.
563 (syms_of_textprop): Intern it.
564
565 * keymap.c: Include intervals.h.
566 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
567
568 * Makefile.in (keymap.o): Depend on intervals.h.
569
570 * keyboard.c (menu_bar_items, tool_bar_items)
571 (Fexecute_extended_command): Deal with `keymap' property.
572 (read_key_sequence): Track map from `keymap' property as well as
573 `local_map'.
574
575 * intervals.c (get_local_map): Extra arg to allow looking for
576 `keymap' too.
577
578 * intervals.h (map_property): New enum.
579 (get_local_map): Extra arg using it.
580 (Qkeymap): Declare.
581
84ec3b4b 582 * lisp.h (get_local_map): Don't declare here.
869a3a14 583
89d0c844
KH
5842000-05-29 Kenichi Handa <handa@etl.go.jp>
585
586 * Makefile.in (callproc.o): Depend on composite.h.
587
588 * callproc.c: Include composite.h.
589 (Fcall_process): Handle composition correctly.
590
591 * coding.h (coding_allocate_composition_data): Extern it.
592 (coding_restore_composition): Likewise.
593
594 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
595 yet allocated, finish decoding with result
596 CODING_FINISH_INSUFFICIENT_CMP.
597 (coding_allocate_composition_data): Make it non-static.
598 (coding_restore_composition): Likewise.
599
797a084a
EZ
6002000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
601
602 * charset.c (syms_of_charset): Revert last change.
603
cf872af5
EZ
6042000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
605
606 * term.c (produce_glyphs): Treat characters from the eight-bit-*
607 charsets as unibyte, with 1-column screen width. Sent by Kenichi
608 Handa.
609
5b1ae051
EZ
6102000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
611
612 * charset.c (syms_of_charset): Set width of character sets
613 eight-bit-control and eight-bit-graphic to 1 column.
614
34ec9ebe
GM
6152000-05-26 Gerd Moellmann <gerd@gnu.org>
616
617 * config.in (HAVE_SPEED_T): New define.
618
619 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
620 `extern speed_t'.
621
dd854dc2
DL
6222000-05-26 Dave Love <fx@gnu.org>
623
624 * coding.c (shrink_decoding_region): Initialize eol_conversion.
625
626 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
627 (Fsubr_arity): New function.
628 (syms_of_data): Install them.
629
ba9f8f95
KH
6302000-05-26 Kenichi Handa <handa@etl.go.jp>
631
0f3e0672
KH
632 * charset.c (init_charset_once): Set the table bytes_by_char_head
633 correctly.
634
cebefb44
KH
635 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
636 the default fontset to what Emacs uses by default.
0f3e0672
KH
637 (check_registry_encoding): This function deleted.
638 (Fset_fontset_font): Remove the adhoc condition for the default
639 fontset. Allow cons in FONTNAME.
cebefb44 640
0f3e0672
KH
641 * fns.c (map_char_table): Ignore char-table entries for
642 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 643
7a18af49
KR
6442000-05-25 Ken Raeburn <raeburn@gnu.org>
645
646 * emacs.c (main): Initialize keyboard syms before initializing
647 window code, so face names are available.
648
d2af47df
SM
6492000-05-25 Stefan Monnier <monnier@cs.yale.edu>
650
651 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
652 of an anchor at the beginning of a shy-group.
653
fc6a6a4e
GM
6542000-05-25 Gerd Moellmann <gerd@gnu.org>
655
656 * xdisp.c (handle_invisible_prop): Don't try to skip over
657 invisible text if end of text is already reached.
658
005f0d35
DL
6592000-05-25 Dave Love <fx@gnu.org>
660
02513cdd
DL
661 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
662
005f0d35
DL
663 * coding.c (encode_eol): Add null statement after label.
664
89f6ca4e
EZ
6652000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
666
667 * w16select.c (Fw16_set_clipboard_data): Fix the change from
668 2000-05-20.
669
a4e1759e
KH
6702000-05-25 Kenichi Handa <handa@etl.go.jp>
671
672 * ccl.c (ccl_driver): Fix previous change.
673
eacfd7fe
KH
6742000-05-25 Kenichi Handa <handa@etl.go.jp>
675
46ab33a9
KH
676 * coding.c (run_pre_post_conversion_on_str): Set point to the
677 beginning of buffer before calling coding->post_read_conversion.
678 (decode_coding_string): Give correct args to
679 run_pre_post_conversion_on_str.
680 (encode_coding_string): Likewise.
681
eacfd7fe
KH
682 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
683 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
684 eight-bit-graphic correctly.
685
f8569325
DL
6862000-05-24 Kenichi HANDA <handa@etl.go.jp>
687
688 * fileio.c (Finsert_file_contents): Even if a file is not found,
689 execute codes for setting up coding system. Call
690 after-insert-file-functions unconditionally.
691
04545643
GM
6922000-05-24 Gerd Moellmann <gerd@gnu.org>
693
694 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
695 BSD_PGRPS are not defined.
696
747d90ea
KH
6972000-05-24 Kenichi Handa <handa@etl.go.jp>
698
699 * charset.c (update_charset_table): Accept nil in LONG_NAME and
700 DESCRIPTION.
701 (syms_of_charset): Avoid building same strings.
702
716e3b88
GM
7032000-05-23 Gerd Moellmann <gerd@gnu.org>
704
705 * lread.c (Fload): Add a comment about the meaning of
706 Vuser_init_file being t.
707
708 * puresize.h (BASE_PURESIZE): Increase to 675000.
709
710 * s/gnu-linux.h (setpgrp): Don't define it here because this
711 prevents compilation on GNU/Linux systems with glib 2.2.
712
713 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
714 as setpgid.
715
9aeb39fa
EZ
7162000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
717
718 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
719 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
720 version.
721 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
722
29ced61b
KH
7232000-05-23 Kenichi Handa <handa@etl.go.jp>
724
0574a2ed
KH
725 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
726 unconditionally.
727
3d80f24d
KH
728 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
729
730 * term.c (encode_terminal_code): Set coding->src_multibyte
731 properly.
732
29ced61b
KH
733 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
734
d7e00792
KH
7352000-05-22 Kenichi Handa <handa@etl.go.jp>
736
c9d80d38
KH
737 * keyboard.c (read_char): Allow character codes 128..255 to be
738 handled by input-method-function.
739
d7e00792
KH
740 * insdel.c (adjust_markers_for_replace): Fix previous change.
741 (adjust_after_replace): If PREV_TEXT is nil, call
742 adjust_markers_for_insert, not adjust_markers_for_replace.
743
087121cc
GM
7442000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
745
746 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
747 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
748 [HAVE_GRANDPT]: Define.
749 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
750
751 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
752 like SYSV_PTYS.
753
754 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
755
756 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
757
c9671f81
KH
7582000-05-20 Kenichi Handa <handa@etl.go.jp>
759
760 The following changes are to handle 8-bit characters in a
761 multibyte buffer/string without facing with byte combining
762 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
763 eight-bit-graphic (for 0xA0..0xFF) are introduced.
764
765 * Makefile.in (fns.o): Depend on charset.h.
766
767 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
768 convert it to unibyte.
769 (make_string): Use parse_str_as_multibyte, not chars_in_text.
770
771 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
772 apparent char boundary.
773 (Fset_buffer_multibyte): Convert 8-bit characters in the range
774 0x80..0x9F to/from multibyte form.
775
776 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
777 to unibyte.
778
779 * callproc.c (Fcall_process): Always encode an argument string if
780 it is multibyte. Setup src_multibyte and dst_multibyte members of
781 process_coding properly.
ce75fd23 782
c9671f81
KH
783 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
784 SPLIT_NON_ASCII_CHAR.
785
786 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
787 as is.
788 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
789
790 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
791 variables.
792 (SPLIT_CHARACTER_SEQ): This macro deleted.
793 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
794 valid.
795 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
796 and eight-bit-graphic.
797 (char_to_string): Likewise. Signal an error for too large
798 character code.
799 (char_printable_p): Return 0 for 8-bit characters.
800 (update_charset_table): Update iso_charset_table only when a final
801 character is non-negative.
802 (find_charset_in_text): Renamed from find_charset_in_str.
803 Arguments and return value changed. Callers changed.
804 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
805 be -1 if CHARSET is used only internally.
806 (Fmake_char_internal): Handle new charsets; eight-bit-control and
807 eight-bit-graphic.
808 (Fcharset_after): Simplified.
809 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
810 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
811 (multibyte_chars_in_text): Simplified by assuming there's no
812 invalid multibyte sequence.
813 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
814 str_as_unibyte): New functions.
815 (Fstring): Simpified by assuming that byte combining never
816 happens.
817 (init_charset_once): Initialization for
818 LEADING_CODE_8_BIT_CONTROL.
819 (syms_of_charset): Intern and staticpro Qeight_bit_control and
820 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
821 eight-bit-control and eight-bit-graphic.
822
823 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
824 CHARSET_8_BIT_GRAPHIC): New macros.
825 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
826 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
827 (CHARSET_REVERSE_CHARSET): Likewise.
828 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
829 eight-bit-graphic.
830 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
831 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
832 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
833 encounter an invalid multibyte sequence.
834 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
835 sequence is always valid.
836 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
837 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
838 macros.
839 (CHAR_STRING): For 8-bit characters, call char_to_string.
840 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
841 multibyte sequence is always valid.
842 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
843 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
844 str_as_unibyte): Extern them.
845 (BCOPY_SHORT): Fix a bug.
846 (CHAR_LEN): This macro deleted. Callers changed to use
847 CHAR_BYTES.
848 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
849 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
850 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
851
bd4bde7f 852 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
853 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
854 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
855 EMIT_BYTES): New macros.
856 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
857 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
858 macros deleted.
859 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
860 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
861 check the validity of multibyte sequence.
862 (decode_coding_emacs_mule): New function.
863 (encode_coding_emacs_mule): New macro.
864 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
865 the source.
866 (DECODE_ISO_CHARACTER): Just return a character code.
867 (DECODE_COMPOSITION_START): Set coding->result instead of result.
868 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
869 EMIT_CHAR to produced decoded characters. Exit the loop only by
870 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
871 block here.
872 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
873 only position codes for an invalid character.
874 (encode_designation_at_bol): Return new destination pointer. 5th
875 arg DSTP is changed to DST.
876 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
877 from the source by ONE_MORE_CHAR. Don't handle the case of last
878 block here.
879 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
880 macros deleted.
881 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
882 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
883 TWO_MORE_BYTES to fetch a byte from the source.
884 (encode_eol): Pay attention to coding->src_multibyte.
885 (detect_coding, detect_eol): Preserve members src_multibyte and
886 dst_multibyte.
887 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
888 (encoding_buffer_size): Set magnification to 3 for all coding
889 systems that require encoding.
890 (ccl_coding_driver): For decoding, be sure that the result is
891 valid multibyte sequence.
892 (decode_coding): Initialize coding->errors and coding->result.
893 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
894 and raw-text, always call decode_eol. Handle the case of last
895 block here. If not coding->dst_multibyte, convert the resulting
896 sequence to unibyte.
897 (encode_coding): Initialize coding->errors and coding->result.
898 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
899 and raw-text, always call encode_eol. Handle the case of last
900 block here.
901 (shrink_decoding_region, shrink_encoding_region): Detect cases
902 that we can't skip data more rigidly.
903 (code_convert_region): Setup src_multibyte and dst_multibyte
904 members of coding. For decoding, if the buffer is multibyte,
905 convert the source sequence to unibyte in advance. For encoding,
906 if the buffer is multibyte, convert the resulting sequence to
907 multibyte afterward.
908 (run_pre_post_conversion_on_str): New function.
909 (code_convert_string): Deleted and divided into the following two.
910 (decode_coding_string, encode_coding_string): New functions.
911 (code_convert_string1, code_convert_string_norecord): Call one of
912 above.
913 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
914 MAKE_NON_ASCII_CHAR.
915 (Fset_terminal_coding_system_internal,
916 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
917 and dst_multibyte members.
918 (init_coding_once): Initialize iso_code_class with new enum
919 ISO_control_0 and ISO_control_1.
920
921 * coding.h (enum iso_code_class_type): Member ISO_control_code is
922 devided into ISO_control_0 and ISO_control_1.
923 (struct coding_system): New members src_multibyte, dst_multibyte,
924 errors, and result. Delete member fake_multibyte.
925 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
926 nonzero.
927 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
928 nonzero.
929
930 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
931 (Faset): Likewise.
932
933 * editfns.c (Fformat): Be sure to convert 8-bit characters to
934 multibyte form.
935 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
936 combining occurs.
937 (Ftranspose_region): Delete codes for handling byte combining.
938
939 * fileio.c (Finsert_file_contents): Setup src_multibyte and
940 dst_multibyte members of coding. On handling REPLACE on unibyte
941 buffer, convert the result of decode_coding to unibyte. On
942 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 943 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
944 multibyteness of the source (buffer or string).
945
946 * fns.c (concat): Handle 8-bit characters correctly.
947 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
948 unibyte in the result.
949 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
950 valid multibyte form in the result.
951 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
952 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
953 return -1, signal an error.
954 (base64_encode_1): New arg MULTIBYTE. Get each character by
955 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
956 character is found, return -1.
957 (Fbase64_decode_region): Delete codes for handling byte-combining.
958 Treat each decoded byte as a unibyte character.
959 (Fbase64_decode_string): Return unibyte string.
960 (Fcompare_strings, concat, string_byte_to_char): Use
961 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
962 FETCH_STRING_CHAR_ADVANCE.
963 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
964 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
965
966 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
967 SPLIT_NON_ASCII_CHAR.
968 (fontset_ref_via_base, fontset_set): Likewise
969
970 * insdel.c (adjust_markers_for_record_delete): Deleted.
971 (adjust_markers_for_insert): Argument changed. Caller changed.
972 (adjust_markers_for_replace): Likewise.
973 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
974 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
975 (copy_text): Delete unused local varialbe c_save. For converting
976 to multibyte, be sure to make all 8-bit characters in valid
977 multibyte form.
978 (count_size_as_multibyte): Handle 8-bit characters correctly.
979 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
980 adjust_after_replace, replace_range, del_range_2)
981 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
982 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
983 adjust_after_replace, replace_range, del_range_2) Delete codes for
984 handling byte combining.
985 (adjust_before_replace): Deleted.
986
987 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
988 SPLIT_NON_ASCII_CHAR.
989 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
990 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
991 unconditionally.
992 (Fkey_description): Likewise.
993
994 * lread.c (read1): On reading multibyte string, be sure to make
995 all 8-bit chararacters in valid multibyte form.
996 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
997
998 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
999 unconditionally.
1000
1001 * process.c (Fstart_process): GCPRO current_dir before calling
1002 Ffind_operation_coding_system. Encode arguments here.
1003 (create_process): Don't encode arguments here. Setup
1004 src_multibyte and dst_multibyte members of struct coding.
1005 (read_process_output): Setup src_multibyte and dst_multibyte
1006 members of struct coding. If the output is to multibyte buffer,
1007 always decode the output of the process. Adjust the
1008 representation of 8-bit characters to the multibyteness of the
1009 output.
1010 (send_process): Setup coding->src_multibyte according to the
1011 multibyteness of the source.
1012
1013 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
1014 unconditionally.
1015 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
1016 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
1017
1018 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
1019 CHAR_LEN.
1020
1021 * w16select.c (Fw16_set_clipboard_data): Setup members
1022 src_multibyte and dst_multibyte of coding. Adjusted for the
1023 change for find_charset_in_str.
1024 (Fw16_get_clipboard_data): Likewise.
1025
1026 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
1027 dst_multibyte of coding.
1028 (x_to_w32_font): Likewise.
1029
1030 * w32select.c (Fw32_set_clipboard_data): Setup members
1031 src_multibyte and dst_multibyte of coding. Adjusted for the
1032 change for find_charset_in_str.
1033 (Fw32_get_clipboard_data): Likewise.
1034
1035 * xdisp.c (get_next_display_element): Handle 8-bit characters
1036 correctly.
1037 (next_element_from_display_vector): Use CHAR_BYTES instead of
1038 CHAR_LEN.
1039 (disp_char_vector): Use SPLIT_CHAR instead of
1040 SPLIT_NON_ASCII_CHAR.
1041
1042 * xselect.c (selection_data_to_lisp_data): Setup members
1043 src_multibyte and dst_multibyte of coding. Adjusted for the
1044 change for find_charset_in_str.
1045 (lisp_data_to_selection_data): Likewise.
1046
5f64c9e0
GM
10472000-05-19 Gerd Moellmann <gerd@gnu.org>
1048
2b63d473
GM
1049 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
1050 buffer.
1051
5f64c9e0
GM
1052 * dispextern.h (Vimage_types): Add extern declaration.
1053
1054 * xdisp.c (Vimage_types): Moved here from xfns.c.
1055 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
1056
1057 * xfns.c (Vimages_types): Moved to xdisp.c.
1058 (syms_of_xfns): Move `image-types' to xdisp.c.
1059
1060 * w32fns.c (Vimage_types): Removed.
1061 (syms_of_w32fns): Remove `image-types'.
1062
813086ea
KH
10632000-05-18 Kenichi Handa <handa@etl.go.jp>
1064
1065 * fns.c (map_char_table): Pay attention to character number of
1066 charset. Check the validity of charset at the first level. For
1067 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
1068 the default value.
1069
1070 * fontset.c: Include "buffer.h".
1071 (fs_load_font): If the face has fontset, record the face ID in
1072 that fontset.
1073 (Finternal_char_font): New function.
1074 (accumulate_font_info): New function.
1075 (Ffontset_info): Rewritten for the new fontset implementation.
1076 (syms_of_fontset): Register Vdefault_fontset in the first element
1077 of Vfontset_table. Include Vdefault_fontset in
1078 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
1079 function.
1080
bdaebbf0
DL
10812000-05-16 Dave Love <fx@gnu.org>
1082
1083 * m/iris5d.h: Deleted -- unused.
1084
cb613bb8
GM
10852000-05-16 Gerd Moellmann <gerd@gnu.org>
1086
b15f3b77
GM
1087 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
1088 `invalid' instead of `illegal'.
1089
1090 * indent.c (Fmove_to_column): When ending within a tab, insert
1091 spaces first so that markers at the end of the tab get adjusted.
1092
835c1b36
GM
1093 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
1094 buffer list that wasn't selected in that frame.
1095
cb613bb8
GM
1096 * filelock.c (get_boot_time): To obtain an 8 char file name, which
1097 is needed on mescaline, use a 2 char prefix, and call
1098 make_temp_name with second arg non-zero.
1099
1100 * fileio.c (make_temp_name): New function, extracted from
1101 Fmake_temp_name.
1102 (Fmake_temp_name): Use it.
1103
f685bea9
EZ
11042000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
1105
1106 * window.c (coordinates_in_window): Subtract 1 when computing
1107 right_x.
1108
a1b8d58b
GM
11092000-05-15 Gerd Moellmann <gerd@gnu.org>
1110
1111 * Makefile.in (lisp): Add env.elc.
1112
1113 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
1114
a265079f
GM
11152000-05-12 Gerd Moellmann <gerd@gnu.org>
1116
1117 * search.c (Freplace_match): Handle case of `\N' in the
1118 replacement when there's no group N.
1119
da4496b6
GM
11202000-05-11 Gerd Moellmann <gerd@gnu.org>
1121
0ace421a
GM
1122 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
1123 of the message to message_dolog.
1124
1172eb8d
GM
1125 * keyboard.c (read_char): Don't clear current message for help
1126 events; let the code handling help events handle this. Change
1127 code detecting help events that should be ignored.
1128
da4496b6
GM
1129 * xdisp.c (handle_single_display_prop): Don't try to set PT if
1130 we're interating over a string.
1131
0623e40f
DL
11322000-05-09 Dave Love <fx@gnu.org>
1133
1134 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
1135 that offset before writing. Move gcpro region past call of
1136 Ffile_regular_p.
1137
bae2503b
DL
11382000-05-04 Dave Love <fx@gnu.org>
1139
1140 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
1141
ec82fb2f
GM
11422000-05-04 Gerd Moellmann <gerd@gnu.org>
1143
1144 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
1145 of inserted characters when BUF equals the current buffer, and PT
1146 is in front of or equal to FROM.
1147
cbf18892
GM
11482000-05-03 Gerd Moellmann <gerd@gnu.org>
1149
4ff40dd0
GM
1150 * xdisp.c (handle_single_display_prop): If display property value
1151 is invalid, or something not supported on the frame, restore
1152 iterator's position to what it was initially. Make sure to return
1153 0 for invalid and unsupported property values.
1154
cbf18892
GM
1155 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
1156 that x_per_char_metric returns null.
1157
1b0672c3
GM
11582000-05-02 Gerd Moellmann <gerd@gnu.org>
1159
576da55d
GM
1160 * xterm.h (struct face): Add forward declaration.
1161 (struct image): Ditto.
1162 (image_ascent): Add prototype.
1163
1164 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1165 (x_draw_image_relief, x_draw_image_foreground_1): Call function
1166 image_ascent instead of using IMAGE_ASCENT.
1167
1168 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
1169 (IMAGE_ASCENT): Removed.
1170
1171 * xfns.c (Qcenter): New variable.
1172 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
1173 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
1174 (image_ascent): New function.
1175 (lookup_image): Recognize `:ascent center'.
1176 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1177 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
1178 (xbm_load): Don't set image's ascent here.
1179 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
1180 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
1181 check ascent values here.
1182 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
1183 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
1184 (syms_of_xfns): Initialize Qcenter.
1185
1b0672c3
GM
1186 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
1187 to the limits, increase the limits.
1188
0d7811ed
KH
11892000-05-01 Kenichi Handa <handa@etl.go.jp>
1190
1191 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
1192 Check Vfont_encoding_alist against the full name of the opened
1193 font.
1194
a943a5ca
GM
11952000-04-28 Gerd Moellmann <gerd@gnu.org>
1196
1197 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
1198 taller than the window.
1199
5dba1e29
KH
12002000-04-28 Kenichi Handa <handa@etl.go.jp>
1201
1202 * xfaces.c (realize_x_face): Fix the argument of the second
1203 xassert. BASE_FACE may not be a face for ASCII.
1204
353964e3
GM
12052000-04-27 Gerd Moellmann <gerd@gnu.org>
1206
c76e04a8
GM
1207 * print.c (print_object): Treat print-length < 0 as nil.
1208
1209 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
1210
1211 * s/freebsd.h (TERMCAP_OBJ): Removed.
1212 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
1213
1214 * lread.c (read1): Don't treat period followed by certain
1215 characters as symbol start.
1216
1217 * xfns.c (slurp_file): New function.
1218 (xbm_image_p): Handle case of in-memory XBM files.
1219 (xbm_scan): Rewritten to work on memory buffers instead of files.
1220 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
1221 Work on memory buffers instead of files. If DATA is null test
1222 if buffer looks like an in-memory XBM file.
1223 (xbm_load_image): Renamed from xbm_load_image_file. Work on
1224 memory buffers instead of files.
1225 (xbm_file_p): New function.
1226 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
1227
353964e3
GM
1228 * lread.c (end_of_file_error): New function.
1229 (read1): Call it instead of signaling `end-of-file' directly.
1230
1231 * print.c (print_error_message): Print data of `end-of-file'
1232 with Fprinc instead of Fprin1.
1233
24d744ac
KR
12342000-04-26 Ken Raeburn <raeburn@gnu.org>
1235
1236 * window.c (freeze_window_start): Check that minibuffer scroll
1237 window isn't nil before extracting the window structure pointer
1238 from it.
1239
1240 * undo.c (record_delete): If we hit the end of the undo list, stop
1241 picking elements apart.
1242
7464346d
GM
12432000-04-26 Gerd Moellmann <gerd@gnu.org>
1244
1245 * xdisp.c (display_line): If lines are continued, restore
1246 iterator's ascent/descent information to the values before the
1247 first glyph not fitting on the line.
1248
612839b6
GM
12492000-04-25 Gerd Moellmann <gerd@gnu.org>
1250
1251 * xdisp.c (try_window_id) <all changes above window start>: Adjust
1252 positions in glyph matrix. Don't compute new window end
1253 positions.
1254
1255 * dispnew.c (increment_matrix_positions): Renamed from
1256 increment_glyph_matrix_buffer_positions.
1257 (increment_row_positions): Renamed from
1258 increment_glyph_row_buffer_positions.
1259
1260 * dispextern.h: Change names of renamed functions from dispnew.c
1261 in prototypes.
1262
cc181e95
GM
12632000-04-24 Gerd Moellmann <gerd@gnu.org>
1264
abfcc168
GM
1265 * fileio.c (Fdo_auto_save): Create directories for auto-save
1266 list file if necessary.
1267
cc181e95
GM
1268 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
1269 from buffer or frame.
1270 (automatic_hscrolling_p): New variable.
1271 (hscroll_windows): Scroll windows horizontally only if automatic
1272 hscrolling is allowed.
1273 (syms_of_xdisp): New variable `automatic-hscrolling'.
1274
1275 * frame.h (struct frame): Add member extra_line_spacing.
1276
1277 * xfns.c (x_set_line_spacing): New function.
1278 (Fx_create_frame): Set line spacing from resources.
1279 (Qline_spacing): New variable.
1280 (syms_of_xfns): Initialize Qline_spacing.
1281
1282 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
1283
1284 * buffer.c (init_buffer_once): Handle extra_line_spacing.
1285 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 1286 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
1287 extra_line_spacing from default value.
1288 (init_buffer_once): Initialize default value of extra_line_spacing.
1289
1290 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
1291 and extra3.
1292
1293 * xterm.c (x_produce_glyphs): Remove reference to struct it's
1294 prompt_width. Add extra line spacing.
1295
1296 * term.c (produce_glyphs): Remove reference to struct it's
1297 prompt_width.
1298
1299 * dispextern.h (struct it): Remove member prompt_width, add
1300 extra_line_spacing.
1301
58827478
GM
13022000-04-22 Gerd Moellmann <gerd@gnu.org>
1303
1304 * dispnew.c (update_frame_line): When writing a whole line, make
1305 sure cursor is in the right row afterwards, otherwise a use of
1306 capability `ch' in cmgoto might leave the cursor in the row below.
1307
25a87f42
GM
13082000-04-21 Gerd Moellmann <gerd@gnu.org>
1309
1310 * lisp.h (struct Lisp_Buffer_Cons): Remove.
1311
1312 * keyboard.c (timer_check): Fix typo in comment.
1313
54edf5c2
KH
13142000-04-21 Kenichi Handa <handa@etl.go.jp>
1315
1316 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
1317 name change: ch -> character.
1318
3a64eef5
GM
13192000-04-20 Gerd Moellmann <gerd@gnu.org>
1320
1321 * keyboard.c (echo_message_buffer): New variable.
1322 (echo_now): Set echo_message_buffer to the echo area buffer used
1323 to display the echo.
1324 (cancel_echoing): Reset echo_message_buffer to nil.
1325 (read_char): Code rewritten that handles canceling an echo or
1326 echoing a dash, respectively.
1327
1328 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
1329 directory doesn't exist.
1330
6142fdcb
DL
13312000-04-19 Dave Love <fx@gnu.org>
1332
1333 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
1334 (concat): Don't allow numeric args.
1335 (Fconcat): Doc change.
6142fdcb 1336
ac6b5352
SM
13372000-04-19 Stefan Monnier <monnier@cs.yale.edu>
1338
1339 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
1340 instead define end_match(1|2) more carefully.
1341 Use GET_CHAR_BEFORE_2 for `begline'.
1342
cb9215e4
GM
13432000-04-19 Gerd Moellmann <gerd@gnu.org>
1344
5e3dac3f
GM
1345 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
1346 on 64-bit systems where NULL is defined as `0'.
1347
1348 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
1349 the `variable argument list' to make it work on Alpha.
1350
cb9215e4
GM
1351 * m/alpha.h (_LP64) [!_LP64]: Define.
1352 (ORDINARY_LINK): Define for NetBSD.
1353
1354 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
1355
f532dca0
DL
13562000-04-19 Dave Love <fx@gnu.org>
1357
c750667e
DL
1358 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
1359 change.
1360
1361 * Makefile.in (LIBS): Don't use.
1362 (GETLOADAVG_OBJ): Define again.
1363 (otherobj): Add GETLOADAVG_OBJ.
1364
f532dca0
DL
1365 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
1366
1c7e22fd
GM
13672000-04-18 Gerd Moellmann <gerd@gnu.org>
1368
f6d3257b
GM
1369 * lread.c (read_filtered_event): Cancel and start busy cursor.
1370
1c7e22fd
GM
1371 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1372 that the per-character metrics may be null.
1373
e10f64e7
GM
13742000-04-17 Gerd Moellmann <gerd@gnu.org>
1375
0daee095
GM
1376 * buffer.c (clone_per_buffer_values): New function.
1377 (Fmake_indirect_buffer): Add optional argument CLONE. Call
1378 clone_per_buffer_values if CLONE is not nil.
1379
e10f64e7
GM
1380 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
1381
38687d43
DL
13822000-04-16 Dave Love <fx@gnu.org>
1383
1384 * Makefile.in: Remove obsolete localcpp stuff.
1385 (GETLOADAVG_OBJ): Don't define.
1386 (obj): Move LIBOBJS...
1387 (otherobj): ... to here.
1388 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
1389 whitespace-only lines after the continuation (Irix).
1390
c21c7262
GM
13912000-04-14 Gerd Moellmann <gerd@gnu.org>
1392
1393 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
1394
1395 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
1396
314767c0
DL
13972000-04-14 Dave Love <fx@gnu.org>
1398
1399 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
1400 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
1401 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
1402 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
1403 NLIST_STRUCT.
1404
1405 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
1406 autoconfiscated HAVE_GETLOADAVG.
1407
1408 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
1409 BROKEN_MKTIME.
1410
a2522dca
GM
14112000-04-14 Gerd Moellmann <gerd@gnu.org>
1412
1413 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
1414 (fill_in_lock_file_name): Avoid existing files that aren't
1415 links.
1416
33744b5d
DL
14172000-04-14 Dave Love <fx@gnu.org>
1418
c21c7262 1419 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
1420 (INTERVAL_SRC): Convert to make variable.
1421 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
1422 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
1423 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
1424 add LIBOBJS.
1425 (SOME_MACHINE_OBJECTS): Remove interval stuff.
1426 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
1427 (shortlisp): Add facemenu, float-sup, frame.
1428 (SOME_MACHINE_LISP): Remove them from here.
1429 (LIBES): Change unused LDLIBS to autoconf LIBS.
1430
1431 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
1432
9d3d5916
KH
14332000-04-14 Kenichi Handa <handa@etl.go.jp>
1434
1435 * composite.c (update_compositions): If FROM and TO are not in a
1436 valid range, do nothing.
1437
198e3c7a
GM
14382000-04-13 Gerd Moellmann <gerd@gnu.org>
1439
1440 * tparam.c (tparam1): Abort when encountering an unknown
1441 `%'-specifier.
1442
1443 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
1444 terminfo.o.
1445
1446 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
1447 as TERMCAP_OBJ.
1448
055a28c9
EZ
14492000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
1450
1451 * fileio.c (a_write): Remove redundant semi-colons.
1452 (e_write): Return -1 if failed to write all the data.
1453 This fixes the changes made at 1999-12-15.
1454
f5c75033
DL
14552000-04-12 Dave Love <fx@gnu.org>
1456
1457 * fns.c (mapcar1): Test for null vals to support mapc.
1458 (Fmapc): New function.
1459
0c3cfc51
EZ
14602000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
1461
1462 * msdos.c (NUM_MOUSE_BUTTONS): Define.
1463 (IT_frame_up_to_date): Support the buffer local value of
1464 cursor-type, if defined.
1465
33465a31
DL
14662000-04-10 Dave Love <fx@gnu.org>
1467
1468 * editfns.c (preceding-char, following-char): Doc fix.
1469
6ed56568
KR
14702000-04-10 Ken Raeburn <raeburn@gnu.org>
1471
1472 * Makefile.in (temacs): Revert 2000-03-12 change.
1473
7cf80d4e
JR
14742000-04-10 Jason Rumney <jasonr@gnu.org>
1475
1476 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
1477
34f3f342
GM
14782000-04-10 Gerd Moellmann <gerd@gnu.org>
1479
1a1b1895
GM
1480 * xdisp.c (setup_echo_area_for_printing): Choose an echo
1481 area buffer, if it's not set up yet.
1482
34f3f342
GM
1483 * indent.c (compute_motion): Set immediate_quit.
1484
be0dbdab
GM
14852000-04-09 Gerd Moellmann <gerd@gnu.org>
1486
c45be9ac
GM
1487 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
1488 variable.
1489 (realize_tty_face): Suppress boldness if colors are the inverse of
1490 the default colors, and tty_suppress_bold_inverse_default_colors_p
1491 is set.
1492 (Ftty_suppress_bold_inverse_default_colors): New function.
1493 (syms_of_xfaces): Defsubr it.
1494
be0dbdab
GM
1495 * buffer.c (Frestore_buffer_modified_p): New function.
1496 (syms_of_buffer): Defsubr it.
1497
e8413c3b
KR
14982000-04-08 Ken Raeburn <raeburn@gnu.org>
1499
87f67317
KR
1500 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
1501 charset id (int) argument, not a charset (Lisp_Object).
1502
e8413c3b
KR
1503 * coding.h (code_convert_string): Declare.
1504 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
1505 object, as the fourth argument to code_convert_string.
1506
1507 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
1508 value.
1509 (Fset_fontset_font): Use EQ to compare lisp objects.
1510
7c752c80
KR
15112000-04-05 Ken Raeburn <raeburn@gnu.org>
1512
c0333abc
KR
1513 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
1514 a pointer that looks like a lisp object.
1515 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
1516 zero, instead see whether it's an integer object, since they can't
1517 have intervals.
1518 (GET_INTERVAL_OBJECT): Simply assign to the destination.
1519
7c752c80
KR
1520 * dispnew.c (allocate_matrices_for_frame_redisplay,
1521 direct_output_forward_char): Use X(U)INT and make_number as needed
1522 to convert between (unsigned) int values and lisp integers.
1523 * keyboard.c (read_key_sequence): Likewise.
1524 * lread.c (substitute_object_recurse): Likewise.
1525 * fns.c (concat, hash_lookup, hash_remove): Likewise.
1526 * minibuf.c (do_completion, Fminibuffer_complete_word,
1527 Fminibuffer_completion_help): Likewise.
1528 * term.c (produce_special_glyphs): Likewise.
1529
1530 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
1531 * print.c (print_preprocess, print_object): Likewise.
1532
1533 * search.c (compile_pattern): Use NILP when checking for nil.
1534
74e49b38
KR
1535 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
1536 __OPTIMIZE__]: Provide a GNU C macro version that handles
1537 lisp-object unions.
1538 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
1539 field, to better cope with ENABLE_CHECKING and calls that modify a
1540 Lisp_Object using its old value.
1541
685e5ed2
GM
15422000-04-04 Gerd Moellmann <gerd@gnu.org>
1543
c407c570
GM
1544 * window.c (compare_window_configurations): Signal an error
1545 if parameters C1 or C2 aren't window configurations.
1546
685e5ed2
GM
1547 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
1548 AFTER_POTENTIAL_GC calls around calls to functions that can
1549 signal an error and thus invoke the debugger.
1550
587a49ab
GM
15512000-04-03 Gerd Moellmann <gerd@gnu.org>
1552
62f20204
GM
1553 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
1554 an error if decoding fails.
1555
587a49ab
GM
1556 * keyboard.c (lispy_mouse_names): Variable removed.
1557 (Vlispy_mouse_stem): New variable.
1558 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
1559 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
1560 for any mouse button number. Increase size of mouse_syms and
1561 button_down_location as needed. Call modify_event_symbol with
1562 different arguments.
1563 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
1564 Call modify_event_symbol with different arguments.
1565 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
1566 for any button number. Call modify_event_symbol with different
1567 arguments.
1568 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
1569 Accept a string for NAME_ALIST_OR_STEM.
1570
1571 * lisp.h (larger_vector): Add prototype.
1572
1573 * fns.c (larger_vector): Make externally visible.
1574
1575 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
1576
2d1675e4
SM
15772000-04-02 Stefan Monnier <monnier@cs.yale.edu>
1578
1579 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
1580 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
1581 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
1582 we are between str1 and str2.
1583 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
1584 (PATFETCH): Use `TRANSLATE'.
1585 (PATFETCH_RAW): Fetch multibyte char if applicable.
1586 (PATUNFETCH): Remove.
1587 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
1588 When writing a char, write it directly into the pattern buffer rather
1589 than going needlessly through a temp char-array.
1590 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
1591 multibyte magic and remove the useless `#ifdef emacs'.
1592 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
1593 buffer.
1594
1595 * regex.h (struct re_pattern_buffer): Make field `multibyte'
1596 conditional on `emacs'.
1597
1598 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
1599
cc2d8c6b
KR
16002000-04-01 Ken Raeburn <raeburn@gnu.org>
1601
1602 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
1603 non-union-type versions of XMARK and friends here, because XMARK
1604 and friends won't work on an integer field if NO_UNION_TYPE is not
1605 defined.
1606 (make_number): Define as a function if it's not defined as a
1607 macro.
1608
09654086
KR
1609 * composite.c (run_composite_function): Use NILP when checking for
1610 nil.
1611 (syms_of_composite): Delete local var NARGS, pass an int as first
1612 argument to Fmake_hash_table.
1613
2387b382
KR
1614 * editfns.c (text_property_stickiness): Use NILP to test
1615 Lisp_Object boolean value.
1616 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
1617 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
1618 problems reading from and changing the same lisp value in an
1619 XSETSTRING call.
1620
27660e89
GM
16212000-04-01 Gerd Moellmann <gerd@gnu.org>
1622
1623 * term.c (TN_no_color_video): New variable.
1624 (term_init): Intitialize TN_no_color_video.
1625 (enum no_color_bit): New enumeration.
1626 (MAY_USE_WITH_COLORS_P): New macro.
1627 (turn_on_face): Use it to determine if attributes may be used
1628 combined with colors.
1629
3578db3c
KR
16302000-04-01 Ken Raeburn <raeburn@gnu.org>
1631
1632 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
1633 with int lvalues via casts; instead, just yield lisp object
1634 lvalues.
1635 (enlarge_window): Variable sizep now points to Lisp_Object. Use
1636 proper accessor macros.
1637 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
1638 (grow_mini_window): Fix typo getting int value of root->height.
1639
6fc556fd
KR
1640 * xdisp.c (compute_string_pos): Fix order of arguments to
1641 string_pos_nchars_ahead.
1642 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
1643 count arg to variable-arg routines like Frun_hook_with_args and
1644 Fformat.
587a49ab
GM
1645 (back_to_previous_visible_line_start)
1646 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
1647 fixed-arg routines like Fget_char_property and Fmake_string.
1648 (reconsider_clip_changes): Use XINT when comparing integer lisp
1649 objects, or passing them as int arguments.
587a49ab
GM
1650 (mark_window_display_accurate, insert_left_trunc_glyphs)
1651 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
1652 storing or passing integer values as lisp objects.
1653 (set_cursor_from_row, highlight_trailing_whitespace): Use
1654 INTEGERP, not implicit test against zero, for glyph object.
1655 (try_window_id): Don't use make_number when we want an int value.
1656
1657 * xfaces.c (xlfd_symbolic_value): Make last argument a
1658 Lisp_Object, to be consistent with callers.
1659 (Fbitmap_spec_p): Use XINT to get numeric value of height.
1660 (lface_hash): Apply XFASTINT to lisp values before folding in.
1661
1662 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
1663 fill in window width and height. Pass an int, not a lisp object,
1664 as first arg to Finsert.
1665
6e7b2457
GM
16662000-04-01 Gerd Moellmann <gerd@gnu.org>
1667
610d841e
GM
1668 * xfaces.c (realize_basic_faces): Block input while realizing
1669 the faces.
1670
6e7b2457
GM
1671 * keyboard.c (lispy_mouse_names): Add additional mouse names.
1672
1673 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
1674
aa110c0c
GM
16752000-03-31 Gerd Moellmann <gerd@gnu.org>
1676
1677 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 1678 or ASCII, handle case that per-char metric is null.
aa110c0c 1679
8801a864
KR
16802000-03-30 Ken Raeburn <raeburn@gnu.org>
1681
c6129d7e
KR
1682 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
1683
8801a864
KR
1684 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
1685 XSUBR, XBUFFER): Verify correct object type before returning
1686 pointer, using eassert.
1687 * frame.h (XFRAME): Likewise.
1688
1689 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
1690 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
1691 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
1692 type.
1693 * data.c (set_internal): Likewise.
1694 * dispextern.h (WINDOW_WANTS_MODELINE_P,
1695 WINDOW_WANTS_HEADER_LINE_P): Likewise.
1696 * fileio.c (auto_save_1): Likewise.
1697 * insdel.c (check_markers): Likewise.
1698 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
1699 * undo.c (record_insert): Likewise.
1700 * vmsproc.c (child_sig): Likewise.
1701 * window.c (unshow_buffer, window_loop): Likewise.
1702 * xterm.c (x_erase_phys_cursor): Likewise.
1703
8e7af858
GM
17042000-03-30 Gerd Moellmann <gerd@gnu.org>
1705
1706 * xfns.c (free_image_cache): Free the cache structure itself
1707 last, after all its members have been freed.
1708
1709 * lisp.h (xstrdup): Add prototype.
1710
1711 * alloc.c (xstrdup): Moved here from xfaces.c.
1712 (allocating_for_lisp): Variable removed.
1713 (lisp_malloc): Block input around the calls to malloc and
1714 mem_insert.
1715
1716 * xfaces.c (realize_tty_face): Use find_symbol_value instead
1717 of Fsymbol_value.
1718 (xstrdup): Moved to alloc.c.
1719
e0b8c689
KR
17202000-03-29 Ken Raeburn <raeburn@gnu.org>
1721
b96f9fb7
KR
1722 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
1723
1724 * emacs.c (main): Fix sense of no-loadup test.
1725
e0b8c689
KR
1726 * config.in (ENABLE_CHECKING): Undef.
1727
1728 * lisp.h (struct interval): Replace "parent" field with a union of
1729 interval pointer and Lisp_Object; add new bitfield to use as
1730 discriminant. Change other flag fields to bitfields.
1731 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
1732 is defined and the supplied test fails, print a message and
1733 abort.
1734 (eassert): New macro. Use CHECK to provide an assert-like
1735 facility.
1736
1737 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
1738 pointers; abort if the value looks like a lisp object.
1739 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
1740 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
1741 Modify for new interval parent definition.
1742
1743 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
1744 UNMARK_BALANCE_INTERVALS): Update references that need an
1745 addressable lisp object in the interval structure.
1746 (die): New function.
1747 (suppress_checking): New variable.
1748
1749 * intervals.c (interval_start_pos): Just return 0 if there's no
1750 parent object.
1751
f83c5440
GM
17522000-03-29 Gerd Moellmann <gerd@gnu.org>
1753
1754 * lread.c (read1): Accept `.' (period) as symbol start like in CL
1755 and earlier Emacs versions.
1756
1757 * keyboard.c (Ftop_level): Cancel busy-cursor.
1758
1759 * eval.c (call_debugger): Cancel busy-cursor.
1760
fdce64ff
KH
17612000-03-29 Kenichi Handa <handa@etl.go.jp>
1762
1763 * search.c (Freplace_match): Adjust multibyteness of the current
1764 buffer and NEWTEXT. Free allocated memory before signaling an
1765 error.
1766
f6a3f532
SM
17672000-03-28 Stefan Monnier <monnier@cs.yale.edu>
1768
1769 * regex.c (analyse_first): New function obtained by ripping out most
1770 of re_compile_fastmap and generalizing it a little bit so that it
1771 can also just return whether a given (sub)pattern can match the empty
1772 string or not.
1773 (regex_compile): Use `analyse_first' to decide whether the loop-check
1774 needs to be done or not for *, +, *? and +? (the loop check is costly
1775 for non-greedy repetition).
1776 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
1777
e9b309ac
DL
17782000-03-28 Dave Love <fx@gnu.org>
1779
bb15bd9a
DL
1780 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
1781 alpha.
1782
e9b309ac
DL
1783 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
1784
ed0767d8
SM
17852000-03-27 Stefan Monnier <monnier@cs.yale.edu>
1786
1787 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
1788 an expression.
1789 (enum re_opcode_t): Update description of succeed_n.
1790 (PATFETCH): Always define.
1791 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
1792 operators, char classes, shy-groups and intervals).
1793 Optimize special cases of intervals so as to only use succeed_n and
1794 jump_n when really needed.
1795 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
1796 that we don't have to handle the special cases any more.
1797 Simplify on_failure_jump handling as well.
1798
e11e7e46
JR
17992000-03-28 Jason Rumney <jasonr@gnu.org>
1800
1801 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
1802
88faab89
GM
18032000-03-27 Gerd Moellmann <gerd@gnu.org>
1804
182ff242
GM
1805 * s/freebsd.h (GC_SETJMP_WORKS): Define.
1806
1807 * s/msdos.h (GC_SETJMP_WORKS): Define.
1808
1809 * alloc.c (mark_maybe_object): New function.
1810 (mark_memory): Use it.
1811 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
1812 (setjmp_tested_p, longjmp_done): New variables.
1813 (test_setjmp): New function.
1814 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
1815 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
1816
c1005d06
GM
1817 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
1818 to DEC_TEXT_POS and INC_TEXT_POS.
1819
1820 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
1821 with parameter MULTIBYTE_P.
1822
1823 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
1824 MULTIBYTE_P.
1825
7439e5b9 1826 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
1827 buffers because it looks for multibyte character byte sequences
1828 which don't exist in unibyte text.
7439e5b9 1829
d9c545da
GM
1830 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
1831
11fd416e 1832 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
1833 [DEBUG_X_COLORS]: New functions.
1834 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
1835
1836 * xfns.c (x_set_cursor_color): Get color reference counts right.
1837
1838 * xterm.c (x_copy_color): New function.
1839 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
1840
1841 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
1842 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
1843 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
1844 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
1845 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
1846 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
1847 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
1848 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
1849 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
1850 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
1851
11fd416e
GM
1852 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
1853 names for handling per-buffer variables.
d9c545da
GM
1854
1855 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
1856 instead of MAX_BUFFER_LOCAL_VARS.
1857 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
1858
1859 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
1860
88faab89
GM
1861 * xfns.c (x_specified_cursor_type): New function.
1862 (x_set_cursor_type): Use it.
1863
1864 * buffer.h (struct buffer): Add cursor_type.
1865
d80f42b7
SM
18662000-03-26 Stefan Monnier <monnier@cs.yale.edu>
1867
1868 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
88faab89
GM
1869 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
1870 opcode.
d80f42b7
SM
1871 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
1872 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
1873 executing it as well as when popping it off the stack to find infinite
1874 loops in non-greedy repetition operators.
1875
89e80928
GM
18762000-03-26 Gerd Moellmann <gerd@gnu.org>
1877
3d4ff2dd
GM
1878 * doc.c (Qfunction_documentation): New variable.
1879 (syms_of_doc): Initialize Qfunction_documentation.
1880 (Fdocumentation): If FUNCTION is a symbol with non-nil
1881 `function-documentation' property, return a documentation derived
1882 from that.
1883
bd96bd79
GM
1884 * buffer.c (syms_of_buffer): Add default-cursor-type.
1885 (init_buffer_once): Don't let cursor_type have a local value
1886 in every buffer.
1887
19d1bc27
GM
1888 * xterm.c (x_display_and_set_cursor): Choose cursor depending
1889 on buffer-local value of cursor_type.
1890 (x_draw_bar_cursor): Add parameter WIDTH.
1891
1892 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
1893 (init_buffer_once): Set default cursor_type value to t.
1894 Mark cursor_type as local everywhere.
1895 (syms_of_buffer): New per-buffer variable cursor-type.
1896
89e80928
GM
1897 * buffer.h (struct buffer): Remove member local_var_flags,
1898 add local_flags.
1899 (MAX_BUFFER_LOCAL_VARS): New macro.
1900 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
1901 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
1902 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
1903 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
1904
1905 * print.c (print_object): Use new macros for per-buffer
1906 variables.
1907
1908 * category.c (Fset_category_table): Use new macros for per-buffer
1909 variables.
1910
1911 * buffer.c (buffer_permanent_local_flags): Make a char array.
1912 (max_buffer_local_idx): New variable.
1913 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
1914 for new handling of per-buffer variables.
1915 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
1916 (init_buffer_once): Initialize per-buffer vars differently.
1917 Set max_buffer_local_idx.
1918
1919 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
1920 variables.
1921
1922 * lread.c (defvar_per_buffer): Use new macros for per-buffer
1923 variables.
1924
1925 * data.c (do_symval_forwarding, store_symval_forwarding)
1926 (find_symbol_value, set_internal, default_value, Fset_default)
1927 (Fkill_local_variable, Flocal_variable_p): Use new macros for
1928 per-buffer variables.
1929
1930 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
1931
9a0dd3dc
GM
19322000-03-24 Gerd Moellmann <gerd@gnu.org>
1933
b68c375f
GM
1934 * xterm.c (x_term_init): Unblock input around call1 of
1935 Qvendor_specific_keysyms.
1936
9a0dd3dc
GM
1937 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
1938 (find_defun_start): Consider an open parenthesis in column 0
1939 a defun start only if open_paren_in_column_0_is_defun_start is set.
1940 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
1941
7973e637
SM
19422000-03-24 Stefan Monnier <monnier@cs.yale.edu>
1943
1944 * eval.c (Fautoload): Add entry in load-history (if after dump).
1945 * lread.c (load-history): Update docstring.
1946
39210e90
GM
19472000-03-24 Gerd Moellmann <gerd@gnu.org>
1948
1949 * indent.c (Fvertical_motion): Always use the current buffer.
1950 Temporarily change the window's buffer, if necessary.
1951
72db3ab5
GM
19522000-03-23 Gerd Moellmann <gerd@gnu.org>
1953
1954 * xterm.c (fast_find_position): Make sure not to consider rows
1955 not visible in the window.
1956
990b2375
SM
19572000-03-22 Stefan Monnier <monnier@cs.yale.edu>
1958
1959 * regex.c (enum syntaxcode): Provide default for non-Emacs.
1960 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
1961
ff4df011
JR
19622000-03-22 Jason Rumney <jasonr@gnu.org>
1963
1964 * w32menu.c (single_submenu): Set help string to NULL if none.
1965 (w32_menu_show): Set help string correctly.
1966 (add-menu-item): Set help string in MIIM_DATA for menu item.
1967 Load SetMenuItemInfoA explicitly.
1968 (w32_menu_display_help): New function.
1969
1970 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
1971 (QCdata): Moved to xdisp.c.
1972
1973 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
1974 (Vw32_charset_to_codepage_alist): Removed.
1975 (Vw32_charset_info_alist): New variable.
1976 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
1977 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
1978 greek, hebrew, thai, johab, mac, unicode]): New symbols.
1979 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
1980 with TODO comment.
1981 (w32_codepage_for_font): Use Vw32_charset_info_alist.
1982 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
1983 Define Vw32_charset_info_alist and w32_charset symbols.
1984
19852000-03-22 Jason Rumney <jasonr@gnu.org>
1986
1987 * makefile.nt (w32bdf.obj): Update dependencies.
1988
1989 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
1990
1991 * w32fns.c: Include fontset.h after dispextern.h.
1992 (Fx_create_frame): Do not create fontset.
1993 (w32_load_system_font): Doc fix.
1994 (Fx_close_connection): Free full_name if it is not shared.
1995
1996 * w32term.c: Include fontset.h after dispextern.h.
1997 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
1998 updated.
1999 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
2000 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
2001 (w32_font_is_double_byte): New function, needs body.
2002 (x_append_glyph): Set glyph->glyph_not_available_p.
2003 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2004 it->charset. If it->multibyte_p is zero and it->c is a multibyte
2005 character, convert it to a unibyte character.
2006 (struct glyph_string): Delete member `charset'.
2007 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
2008 calculating it is found.
2009 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2010 the case that per char metric is not available correctly.
2011 (x_fill_glyph_string): Handle the case that the specific glyph is
2012 not available correctly.
2013 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2014 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2015 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2016 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2017 fontset. Don't call FS_LOAD_FONT.
2018
439d5cb4
KR
20192000-03-22 Ken Raeburn <raeburn@gnu.org>
2020
2021 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
2022 (INT_LISPLIKE): New macro.
2023 (NULL_INTERVAL_P): Use it.
2024 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
2025 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
2026 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
2027
2028 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
2029 explicit references to "parent" field of struct interval and
2030 associated unclean type conversions.
2031 * intervals.c (create_root_interval, root_interval, rotate_right,
2032 rotate_left, balance_possible_root_interval, split_interval_right,
2033 split_interval_left, interval_start_pos, find_interval,
2034 next_interval, previous_interval, update_interval,
2035 adjust_intervals_for_insertion, delete_node, delete_interval,
2036 adjust_intervals_for_deletion, merge_interval_right,
2037 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
2038 copy_intervals_to_string): Likewise.
2039 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
2040 Likewise.
2041 * syntax.c (update_syntax_table): Likewise.
2042
2043 * intervals.c (reproduce_tree_obj): New function, like
2044 reproduce_tree but takes a Lisp_Object for the parent. Declare
2045 with prototype.
2046 (graft_intervals_into_buffer): Use it when appropriate.
2047 (reproduce_tree): Declare with prototype.
2048 (balance_possible_root_interval): Check that the parent is a lisp
2049 object before trying to examine its type.
2050
ee1c5b21
GM
20512000-03-22 Gerd Moellmann <gerd@gnu.org>
2052
2053 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
2054 as strings only if both are known to be strings.
2055
2056 * s/openbsd.h (LIBS_TERMCAP): Undef.
2057
1fb352e0
SM
20582000-03-21 Stefan Monnier <monnier@cs.yale.edu>
2059
2060 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
2061 definitions for non-Emacs compilation.
2062 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
2063 outside of `#ifdef emacs'.
2064 (print_partial_compiled_pattern): Update.
2065 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
2066 (re_compile_fastmap): Merge handling of charset and charset_not (for
2067 emacs and non-emacs compilation as well).
2068 Similarly for (not)categoryspec and (not)syntaxspec.
2069 Don't use the fastmap when reaching `anychar' since the added
2070 complexity is not justified.
2071 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
2072 and (not)syntaxspec. Merge (not)categoryspec.
2073
fdaa1f77
KH
20742000-03-22 Kenichi Handa <handa@etl.go.jp>
2075
ff1a0d8e
KH
2076 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
2077 FACE_FOR_CHAR): Define them differently for the configuration of
2078 --without-x.
fdaa1f77 2079
d152fb46
DL
20802000-03-21 Dave Love <fx@gnu.org>
2081
2082 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
2083 doc string.
2084
d2cafc8c
GM
20852000-03-21 Gerd Moellmann <gerd@gnu.org>
2086
2087 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
2088 (lface_fully_specified_p): Don't check contents of
2089 LFACE_FONT_INDEX because that attribute is optional.
2090 (realize_x_face): Remove now unwarranted xassert.
2091
9111d4b5
KH
20922000-03-21 Kenichi HANDA <handa@etl.go.jp>
2093
2094 The following changes are to make font selection based on
2095 characters, not charset. In addition, they recover fontset
2096 facilities while utilizing the new font selection mechanism.
2097
6c4bfdc0
KH
2098 * Makefile.in (fontset.o): Depend on dispextern.h.
2099
2100 * alloc.c (mark_face_cache): Don't mark face->registry.
2101
9111d4b5
KH
2102 * dispextern.h (struct glyph): New member glyph_not_available_p.
2103 Use 22 bits for face_id.
2104 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
2105 (struct face): Delete member registry, new member ascii_face.
2106 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
2107 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
2108 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
2109 (struct it): Delete member charset, new member
2110 glyph_not_available_p.
2111
2112 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
2113 (struct fontset_info, struct fontset_data): Structs removed.
2114 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
2115 Vglobale_fontset_alist, font_idx_temp): Externs removed.
2116 (fs_load_font, fs_query_fontset): Adjusted for new argument.
2117 (fs_free_face_fontset, fontset_font_pattern,
2118 face_suitable_for_char_p, face_for_char,
2119 make_fontset_for_ascii_face): Extern them.
2120 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
2121 (FS_LOAD_FACE_FONT): New macro.
2122
2123 * fontset.c: All codes rewritten or adjusted for the change of
2124 fontset implementation. Now fontset is represented by char table.
2125 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
2126 removed.
2127 (my_strcasecmp): Function removed.
2128 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
2129 variables.
2130 (AREF, ASIZE): New macros.
2131 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
2132 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
2133 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
2134 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
2135 fontset_id_valid_p, font_family_registry, fontset_name,
2136 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
2137 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
2138 New functions.
2139 (fs_load_font): New arg FACE. Caller changed.
2140 (fs_query_fontset): Argument changed. Caller changed.
2141 (Fquery_fontset): call fs_query_fontset.
2142 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
2143 Functions removed.
2144 (clear_fontset_elements, check_registry_encoding,
2145 check_fontset_name): New functions.
2146 (syms_of_fontset): Set char-table-extra-slots property of fontset
2147 to 3. Staticpro and initialize Vfontset_table and
2148 Vdefault_fontset. Defsubr fontset_font and fontset_list.
2149
2150 * frame.h (struct frame): Member `fontset_data' removed.
2151 (FRAME_FONTSET_DATA): Macro removed.
2152
2153 * frame.c (make_frame): Don't allocate f->fontset_data.
2154 (Fdelete_frame): Don't free f->fontset_data.
2155
6c4bfdc0
KH
2156 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
2157
9111d4b5
KH
2158 * xdisp.c (charset_at_position): Function removed.
2159 (init_iterator): Don't set member charset of struct `it'.
2160 (handle_face_prop, reseat_to_string, set_iterator_to_next,
2161 next_element_from_display_vector, insert_left_trunc_glyphs):
2162 Likewise.
2163 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
2164 FACE_FOR_CHARSET.
2165 (get_next_display_element, append_space,
2166 extend_face_to_end_of_line): Likewise.
2167
2168 * xfaces.c (Qx_charset_registry, Vface_default_registry):
2169 Variables removed.
2170 (clear_font_table, frame_update_line_height, load_face_font):
2171 Adjusted for the change of fontset implementation.
2172 (load_face_fontset_font): Function removed.
2173 (pixel_point_size): New function.
2174 (font_list): Argument type changed. Caller changed.
2175 (LFACE_FONT): New macro.
2176 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
2177 (set_lface_from_font_name): Type of arg FONTNAME is changed to
2178 Lisp_Object. Determine the font name by actually loading a font
2179 by the specified pattern. Set LFACE_FONT (lface) to the specified
2180 pattern. Even if a font is not found, don't try alternatives.
2181 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
2182 (set_font_frame_param): If `font' is specified in lface, use it.
2183 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
2184 (lface_same_font_attributes_p): Likewise.
2185 (make_realized_face): Arguent changed. Caller changed. Set
2186 face->ascii_face to face itself.
2187 (free_realized_face): Free face->fontset if face is for ASCII.
2188 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
2189 deduce_unibyte_registry, x_charset_registry): Functions removed.
2190 (free_realized_multibyte_face): New function.
2191 (lookup_face, lookup_named_face, lookup_derived_face): Argument
2192 changed. Caller changed.
2193 (try_font_list): Argument type changed.
2194 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
2195 (choose_face_font): Argument changed. Handle fontset properly.
2196 (choose_face_fontset_font): Function removed.
2197 (realize_default_face, realize_named_face): Don't remove the
2198 former face here.
2199 (realize_face): Argument changed. Caller changed. Remove face
2200 with the arg former_face_id in advance. Load font for the new
2201 face.
2202 (realize_x_face): Argument changed. Caller changed. For a
2203 multibyte character, share fontset with base_face. For a single
2204 byte character, make a new realized fontset. Don't load a font
2205 here.
2206 (realize_tty_face): Argument changed. Caller changed.
2207 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
2208 (face_at_buffer_position): Don't check multibyte_p for returning
2209 DEFAULT_FACE_ID.
2210 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
2211 FACE_SUITABLE_FOR_CHARSET_P.
2212 (syms_of_xfaces): Remove code for Qx_charset_registry and
2213 Vface_default_registry.
2214
6c4bfdc0
KH
2215 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
2216 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
2217 (x_per_char_metric): Don't try FONT->default_char. Even if
2218 pcm->width is zero, glyph bits may exist.
2219 (x_encode_char): Always initialize char2b->byte1.
2220 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
2221 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
2222 changed.
2223 (x_append_glyph): Set glyph->glyph_not_available_p.
2224 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2225 it->charset. Handle the case that per char metric is not
2226 available. If it->multibyte_p is zero and it->c is a multibyte
2227 character, convert it to a unibyte character.
2228 (struct glyph_string): Delete member `charset'.
2229 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2230 the case that per char metric is not available correctly.
2231 (x_fill_glyph_string): Handle the case that the specific glyph is
2232 not available correctly.
2233 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2234 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2235 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2236 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2237 fontset. Don't call FS_LOAD_FONT.
2238
2239 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
2240 (x_create_tip_frame): Likewise.
2241 (Fx_close_connection): Free full_name of font_info.
2242
2243 * fns.c (optimize_sub_char_table): New function.
2244 (Foptimize_char_table): New function.
2245 (syms_of_fns): Defsubr Soptimize_char_table.
2246
b33dd3b0
GM
22472000-03-20 Gerd Moellmann <gerd@gnu.org>
2248
2249 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
2250 only if buffer is displayed in some window.
2251
2252 * xdisp.c (handle_single_display_prop): Initialize local `value'.
2253 (try_window_reusing_current_matrix): Don't call scroll run
2254 function if run's current and desired position are the same;
2255 this prevents cursor flickering.
2256
4e8a9132
SM
22572000-03-19 Stefan Monnier <monnier@cs.yale.edu>
2258
2259 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
2260
2261 * regex.c (RE_STRING_CHAR): New macro.
2262 (GET_CHAR_AFER_2): Remove.
2263 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
2264 (enum re_opcode_t): Remove on_failure_jump_exclusive.
2265 (print_partial_compiled_pattern, re_compile_fastmap)
2266 (re_match_2_internal): Remove on_failure_jump_exclusive.
2267 (regex_compile): Turn optimizable P+ loops into PP*, so that the
2268 optimization only need to work for * (ie. can use of_keep_string_jump).
2269 Remove the special case for .*\n since it is now covered by the general
2270 optimization.
2271 (re_search_2): Don't bother with `room'.
2272 (skip_one_char): New function.
2273 (skip_noops): Simplify since `memory' is not needed any more.
2274 (mutually_exclusive_p): Restructure slightly to use `switch' and
2275 add handling for "all" remaining cases.
2276 (re_match_2_internal): Change on_failure_jump_smart to use
2277 on_failure_keep_string_jump (and redirect the end-of-loop jump)
2278 rather than on_failure_jump_exclusive.
2279
2136fdd4
GM
22802000-03-19 Gerd Moellmann <gerd@gnu.org>
2281
2282 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
2283 number of bits per RGB because it's everywhere used as the depth
2284 of the visual.
2285
2286 * term.c (calculate_costs): Remove code dealing with X frames.
2287
e53ae11c
RS
22882000-03-19 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2289
2290 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
2291
d7b511c4
GM
22922000-03-18 Gerd Moellmann <gerd@gnu.org>
2293
2294 * lread.c (read_integer): Unread the last char not consumed.
2295
16b5d424
GM
22962000-03-17 Gerd Moellmann <gerd@gnu.org>
2297
2298 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 2299 which are in the process of being deleted.
16b5d424 2300
1fa28578
GM
23012000-03-16 Gerd Moellmann <gerd@gnu.org>
2302
83488cce
GM
2303 * Makefile.in (mostlyclean): Add `*.core'.
2304 (clean): Add `bootstrap-emacs'.
2305
1fa28578
GM
2306 * lread.c (read_integer): New function.
2307 (read1): Support read syntax #o, #x, #b, #r.
2308
99633e97
SM
23092000-03-15 Stefan Monnier <monnier@cs.yale.edu>
2310
1fa28578
GM
2311 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
2312 make sure POINTER_TO_OFFSET gives the same value before and after
2313 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
2314 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
2315 (debug): Now only active if > 0 rather than if != 0.
2316 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
2317 (print_partial_compiled_pattern): Add missing `succeed' case. Use
2318 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
2319 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
2320 (store_op1, store_op2, insert_op1, insert_op2)
2321 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
2322 (group_in_compile_stack): Move to after its arg's types are
2323 declared and add a prototype.
99633e97 2324 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
2325 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
2326 wrapper.
99633e97 2327 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
2328 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
2329 indentation of the greedy-op and shy-group code.
99633e97
SM
2330 (at_(beg|end)line_loc_p): Fix argument's types.
2331 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
2332 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
2333 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
2334 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
2335 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
2336 QUIT unconditionally.
99633e97 2337
699238d9
GM
23382000-03-15 Gerd Moellmann <gerd@gnu.org>
2339
2340 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
2341 a sole completion.
2342
2343 * process.c (send_process): Add a hint that the function
2344 can call Lisp code to its comment.
2345
2346 * lread.c (load_dangerous_libraries): New variable.
2347 (Vbytecomp_version_regexp): New variable.
2348 (safe_to_load_p): New function.
2349 (Fload): Handle files not compiled with Emacs specially.
2350 (syms_of_lread): New Lisp variable load-dangerous-libraries.
2351
34e23e5a
GM
23522000-03-14 Gerd Moellmann <gerd@gnu.org>
2353
9c763cca
GM
2354 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
2355
2356 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
2357 support functions only if HAVE_X11R6_XIM is defined.
2358 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
2359
2360 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
2361
2362 * xfns.c (X_I18N_INHIBITED): Don't define.
2363 (create_frame_xic): Remove conditional compilation on
2364 X_I18N_INHIBITED.
2365 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
2366
2367 * config.in (HAVE_X_I18N): Moved here from xterm.h.
2368 (HAVE_X11R6_XIM): Define.
2369
2370 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
2371
34e23e5a
GM
2372 * xterm.c (x_term_init): Add support for X resource `synchronous'.
2373 If set, call XSynchronize.
2374
66f0296e
SM
23752000-03-13 Stefan Monnier <monnier@cs.yale.edu>
2376
34e23e5a
GM
2377 * regex.c: Declare a new type `re_char' used throughout the code
2378 for the string char type. It's `const unsigned char' to match the
2379 rest of Emacs. Consistently make sure all pointers to strings use
2380 it and make sure all pointers into the pattern use `unsigned
2381 char'.
66f0296e 2382 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
2383 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
2384 code duplication.
66f0296e
SM
2385
2386 * charset.h (GET_CHAR_AFTER_2): Remove.
2387 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
2388
854a025c
KR
23892000-03-12 Ken Raeburn <raeburn@gnu.org>
2390
2391 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
2392 variable before the invocation of YMF_PASS_LDFLAGS, in case both
2393 of them try to use backquotes.
2394
b9d2c7e2
DL
23952000-03-12 Dave Love <fx@gnu.org>
2396
2397 * unexelf.c: Restore changes of 1999-10-19.
2398 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
2399 fix its type and alignment; copy it from current process.
2400
5e5dff44
GM
24012000-03-12 Gerd Moellmann <gerd@gnu.org>
2402
9b2f3c38
GM
2403 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
2404 has been found. Fix bug not computing timer's predecessor.
2405
9172b88d
GM
2406 * fileio.c (Fread_file_name): Handle case that DIR contains a
2407 file name.
2408
e1cff360
GM
2409 * window.c (Fsave_window_excursion): Doc fix.
2410
5e5dff44
GM
2411 * xfns.c (x_defined_color): Rewritten to use
2412 x_allocate_nearest_color.
2413
e411ce4b
EZ
24142000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
2415
2416 * msdos.c (vga_installed): New function, code moved from
2417 dos_set_window_size.
2418 (Qbar, Qcursor_type, outside_cursor): New variables.
2419 (syms_of_msdos): Intern and staticpro them.
2420 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
2421 shape used outside Emacs when called for the first time.
2422 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
2423 cursor shape used outside Emacs.
2424 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
2425 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
2426 type has changed.
2427 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
2428 parameters specify the cursor. Make qreverse a global
2429 variable (renamed to Qreverse).
2430
80460654
GM
24312000-03-09 Gerd Moellmann <gerd@gnu.org>
2432
2433 * fns.c (Fy_or_n_p): Cancel busy-cursor.
2434
95cd4c40
SM
24352000-03-08 Stefan Monnier <monnier@cs.yale.edu>
2436
2437 This is a big redesign of failure-stack and register handling, prompted
2438 by bugs revealed when trying to add shy-groups. Overall, what happened
2439 is that loops are now structured a little differently, groups can be
2440 shy and the code is a little simpler.
2441
2442 * regex.h: Update the copyright.
2443 (RE_SHY_GROUPS): New value.
2444 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
2445 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
2446
80460654
GM
2447 * regex.c (enum re_opcode_t): Remove jump_past_alt,
2448 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
2449 on_failure_jump_(exclusive, loop and smart). Also fix the comment
2450 for (start|stop)_memory since they now only take one argument (the
2451 second has becomes unnecessary).
2452 (print_partial_compiled_pattern): Adjust for changes in
2453 re_opcode_t.
2454 (print_compiled_pattern): Use %ld to printf long ints and flush to
2455 make debugging a little easier.
95cd4c40
SM
2456 (union fail_stack_elt): Make the integer unsigned.
2457 (struct fail_stack_type): Add a `frame' element.
2458 (INIT_FAIL_STACK): Init `frame' as well.
2459 (POP_PATTERN_OP): New macro for re_compile_fastmap.
2460 (DEBUG_PUSH, DEBUG_POP): Remove.
2461 (NUM_REG_ITEMS): Remove.
2462 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
2463 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
2464 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 2465 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
2466 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
2467 macros.
2468 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
2469 address pushed is not the destination of the jump but the source
2470 of it instead.
95cd4c40
SM
2471 (NUM_FAILURE_ITEMS): Remove.
2472 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
2473 registers before the actual failure point). Don't hardcode any
2474 meaning for str==NULL anymore.
95cd4c40 2475 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
2476 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
2477 Remove.
95cd4c40
SM
2478 (REG_UNSET_VALUE): Use NULL (why not?).
2479 (compile_range): Remove declaration since it doesn't exist.
2480 (struct compile_stack_elt_t): Remove inner_group_offset.
2481 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
2482 (regex_grow_registers): Remove dead code.
2483 (FIXUP_ALT_JUMP): New macro.
80460654
GM
2484 (regex_compile): Add shy-groups Change loops to use
2485 on_failure_jump_smart&jump instead of
2486 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
2487 initial (dummy_failure_)jump. Remove c1_base (looks like unused
2488 variable to me). Use `jump' instead of `jump_past_alt' and don't
2489 bother with push_dummy_failure in alternatives since it is now
2490 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
2491 emacs' for (re)allocating the stack.
2492 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
2493 from loop when bufp->can_be_null rather than jumping to `done'.
2494 Avoid jumping backwards so as to ensure termination. Use
2495 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
2496 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 2497 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
2498 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
2499 improve mutually_exclusive_p to handle ".+\n".
2500 (lowest_active_reg, highest_active_reg,
2501 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
2502 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
2503 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
2504 variables. Push register (in `start_memory') on the stack rather
2505 than storing it in old_reg(start|end). Remove the cycle detection
2506 from `stop_memory', replaced by the use of on_failure_jump_loop
2507 for greedy loops. Add code for the new on_failure_jump_<foo>.
2508 Remove ad-hoc code in `on_failure_jump' to push more registers in
2509 the case of a loop. Take out code from `maybe_pop_jump' into
2510 separate functions and adapt it to the semantics of
2511 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
2512 and push_dummy_failure. Remove dummy_failure handling and
2513 handling of `failures to jump to on_failure_jump' (this last one
2514 was already dead code, it seems).
2515 (group_match_null_string_p, alt_match_null_string_p)
2516 (common_op_match_null_string_p): Remove.
95cd4c40 2517
7397acc4
DL
25182000-03-08 Dave Love <fx@gnu.org>
2519
2520 * config.in: Don't depend on __STDC__ for volatile.
2521 Add POINTER_TYPE, PTR, PROTOTYPES.
2522
2523 * hftctl.c, strftime.c: Use PROTOTYPES.
2524 * eval.c (find_handler_clause): Likewise.
2525
2526 * mem-limits.h: Use POINTER_TYPE.
2527
2528 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
2529 (memory_warnings): Declare using POINTER_TYPE.
2530
5e91ff9e
GM
25312000-03-08 Gerd Moellmann <gerd@gnu.org>
2532
feab4fba
GM
2533 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
2534
25edb08f
GM
2535 * xdisp.c (display_echo_area): Temporarily inhibit garbage
2536 collection.
2537
5e91ff9e
GM
2538 * xfns.c: Remove obsolete code in #if 0.
2539 (Fx_focus_frame): New function.
2540
a735b7e1
KH
25412000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
2542
2543 * coding.c (coding_category_name): Add coding-category-utf-8,
2544 coding-category-utf-16-be, coding-category-utf-16-le.
2545 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
2546 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
2547 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
2548 (detect_coding_utf_8): New function.
2549 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
2550 UTF_16_LOW_SURROGATE_P): New macros.
2551 (detect_coding_utf_16): New function
2552 (detect_coding_mask): When priorities are specified, skip any
2553 categories that have `nil' coding-system. Fix bug of returning
2554 wrong mask when PRIORITIES is specified and detect_coding_XXX()
2555 returns a mask not set in PRIORITIES.
2556 (detect_eol_type_in_2_octet_form): New function.
2557 (detect_eol): selects detect_eol_type_XXX to call according to
2558 cooding->category_idx.
2559 (detect_coding_system): Remove `nil' coding-system in the result.
2560 (Fupdate_coding_systems_internal): Update all coding-categories.
2561
2562 * coding.h (CODING_CATEGORY_IDX_UTF_8,
2563 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
2564 macros.
2565 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
2566 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
2567 CODING_CATEGORY_IDX_UTF_16_LE.
2568 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
2569 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
2570 (CODING_CATEGORY_MASK_ANY): Include the above macros.
2571 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
2572
9994cc69
GM
25732000-03-07 Gerd Moellmann <gerd@gnu.org>
2574
e9b4e5ff
GM
2575 * doc.c (Fdocumentation_property): If value is not a string,
2576 and doesn't refer to etc/DOC, evaluate it to obtain a string.
2577
f7daf1e1
GM
2578 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
2579 close the display with XtCloseDisplay. This caused a bus error
2580 on OpenWindows.
2581
9994cc69
GM
2582 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
2583 complete but not unique.
2584
4336c705
GM
25852000-03-06 Gerd Moellmann <gerd@gnu.org>
2586
18bb0684
GM
2587 * process.c (send_process): Remove local variable `procname' that
2588 might become invalid when a GC happens. Instead, access the
2589 process name slot directly.
2590
4336c705
GM
2591 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
2592 orig_height if set.
2593
2594 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
2595 orig_height if set.
2596
515d0d0e
EZ
25972000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
2598
2599 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
2600 glyph matrices have been freed.
2601
100b3cbb
GM
26022000-03-05 Gerd Moellmann <gerd@gnu.org>
2603
50df5e5a 2604 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 2605 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
2606
2607 * xfns.c (QCdata): Moved to xdisp.c.
2608
2609 * xdisp.c (QCdata): Moved here from xfns.c.
2610 (syms_of_xdisp): Initialize QCdata.
2611
2612 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
2613
2614 * window.c (coordinates_in_window): Use
2615 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
2616 FRAME_INTERNAL_BORDER_WIDTH.
2617
100b3cbb 2618 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 2619 it is obviously invalid.
100b3cbb
GM
2620
2621 * xterm.c (x_term_init): Create a colormap if not using the
2622 default visual.
2623
2624 * xterm.h (select_visual): Change prototype.
2625
2626 * xfns.c (select_visual): Rewritten. Recognize user-specified
2627 visual classes.
2628 (visual_classes): New variable.
2629
64d739c4
GM
26302000-03-04 Gerd Moellmann <gerd@gnu.org>
2631
2632 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
2633 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
2634 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
2635 (x_decode_color): Don't handle allocation of white and black
2636 specially.
2637 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
2638 XtNcolormap resources.
2639 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
2640 (Fx_create_frame): Initialize color members of x_output structure.
2641 (xpm_load): Pass colormap to XPM lib.
2642
2643 * xfaces.c (x_free_colors): Access colormap of frame using
2644 FRAME_X_COLORMAP. Be paranoid about freeing black and white
2645 when default colormap is used.
2646
2647 * xterm.c (x_term_init): Set Colormap member of x_display_info
2648 structure. Copy colormap if resource `privateColormap' is
2649 specified (PseudoColor only).
2650 (x_setup_relief_color): Access colormap of frame using
2651 FRAME_X_COLORMAP.
2652
2653 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
2654 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
2655
c3cee013
JR
26562000-03-04 Jason Rumney <jasonr@gnu.org>
2657
2658 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
2659 other non-platform-specific equivalents.
64d739c4 2660 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
2661 specific functions and macros as their w32 equivalents where
2662 non-platform-specifics are not available.
2663 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
2664 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
2665 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
2666 (frame_update_line_height): Use macros to access f->output_data.
2667 (defined_color): Remove FIXME comments; fixed.
2668 (x_face_list_fonts, prepare_face_for_display): Put X specifics
2669 into #ifdef blocks. Add WINDOWSNT blocks.
2670 (Fx_list_fonts): Use macros for accessing font data.
2671 (set_lface_from_font_name): Different default fonts for X and
2672 WINDOWSNT.
2673 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
2674 scalable for backward compatibility.
64d739c4 2675 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
2676 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
2677
64d739c4 2678 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
2679 syms_of_w32faces.
2680
2681 * makefile.nt (w32faces.obj): Remove.
2682 (xfaces.obj): Add.
2683
807cc41c
JR
26842000-03-03 Jason Rumney <jasonr@gnu.org>
2685
2686 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
2687 correct parameters.
2688
0007072a
KR
26892000-03-03 Ken Raeburn <raeburn@gnu.org>
2690
2691 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
2692 standard ELF definitions here if the system header does not.
2693
71a6ba55
GM
26942000-03-03 Gerd Moellmann <gerd@gnu.org>
2695
2696 * xterm.c (PER_CHAR_METRIC): Removed.
2697 (x_per_char_metric_1, x_default_char): New functions.
2698 (x_per_char_metric): If font's default char is invalid, return
2699 metrics of a suitably chosen usable default char.
2700 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
2701 char, replace occurrences of unprintable chars with a suitably
2702 chosen usable default char.
71a6ba55 2703
900fa1f1
GM
27042000-03-02 Gerd Moellmann <gerd@gnu.org>
2705
42f55fe0
GM
2706 * xterm.c (note_mouse_highlight): Return quickly if frame's
2707 glyph matrices have been freed.
2708
2709 * dispnew.c (free_glyphs): Block input while freeing matrices.
2710
900fa1f1
GM
2711 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
2712
2713 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
2714 x_free_colors.
2715
2716 * dispextern.h (x_free_colors): Add prototype.
2717
2718 * xfaces.c (x_free_colors): New function.
2719 (unload_color, free_face_colors): Use it.
2720
2f950292
EZ
27212000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
2722
2723 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
2724
2725 * window.c [MSDOS]: Include msdos.h.
2726
54d04320
DL
27272000-03-02 Dave Love <fx@gnu.org>
2728
2729 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
2730
2731 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
2732 set C_OPTIMIZE_SWITCH for gcc.
2733
0ba93ac4
KH
27342000-03-02 Kenichi Handa <handa@etl.go.jp>
2735
2736 * coding.c (coding_save_composition): Be sure to allocate
2737 composition data area in coding even if there's no composition in
2738 the current run.
2739
a2bc11d4
JR
27402000-03-01 Jason Rumney <jasonr@gnu.org>
2741
2742 * w32term.c: Equivalent changes to those made to xterm.c on
2743 2000-02-25 and 2000-02-24.
2744
2745 * w32fns.c: Equivalent changes to those made to xfns.c on
2746 2000-02-25 and 2000-02-21.
2747
2748 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
2749 correct line-end convention is followed.
2750
2751 * w32menu.c [HAVE_BOXES]: Remove #undef.
2752 (single_keymap_panes): Remove code for simulating checkmarks.
2753 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
2754 Remove code for drawing simulated checkmarks.
2755 (w32_menu_show): make unibyte help string correctly.
2756 (add_menu_item): draw standard Windows checkmarks. Draw radio
2757 buttons as radio buttons if possible.
2758
72d19d75
GM
27592000-03-01 Gerd Moellmann <gerd@gnu.org>
2760
2df636f4
GM
2761 * sysdep.c (start_of_text): Don't define this function for NetBSD
2762 with ELF.
2763
2764 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2765 Don't define.
2766 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
2767 (LINKER): Don't undef if __NetBSD__ is defined.
2768
2769 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
2770
2771 * fileio.c [__NetBSD__]: Define `unix'.
2772
72d19d75
GM
2773 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
2774
ed4d0512
GM
27752000-02-29 Gerd Moellmann <gerd@gnu.org>
2776
50b1039f
GM
2777 * atimer.c (start_atimer): Don't abort when timers are stopped.
2778 (append_atimer_lists): New function.
2779 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
2780 arbitrary lists of stopped and running atimers.
2781
ed4d0512
GM
2782 * atimer.c (cancel_atimer): Handle canceling an atimer when
2783 some timers are stopped.
2784
2785 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
2786 after canceling it.
2787
2788 * fns.c (maybe_resize_hash_table): Handle case of new size
2789 coming out as being the same as old size.
2790
387023ee
JR
27912000-02-27 Jason Rumney <jasonr@gnu.org>
2792
2793 * makefile.nt: Add atimer.h to dependencies.
2794 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
2795 * w32console.c: Only disable window system features for dispextern.h
2796 (initialize_w32_display): Build a display info for the console.
2797 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
2798 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
2799 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
2800 as 2 button mice.
2801 * w32gui.h (struct W32FontStruct): Revert last change after change
2802 to xdisp.c.
2803 * w32menu.c (single_submenu): Set up help string.
2804 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
2805 (w32_dialog_show): Set up help string.
2806 * w32term.c (w32_display_info_for_display): Remove unused function.
2807 (w32_draw_bitmap): Use pre-built bitmaps.
2808 (w32_initialize_display_info): New function to initialize parts of
2809 display info that are common to both GUI and console frames.
2810 (w32_term_init): Use w32_initialize_display_info. Do not set
2811 Vw32_num_mouse_buttons here, as it is not called for console
2812 frames. Build bitmaps for indicating truncated lines etc.
2813 (x_delete_display): Destroy pre-built bitmaps.
2814 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
2815 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
2816
4516715a
DL
28172000-02-27 Dave Love <fx@gnu.org>
2818
2819 * lisp.h: Add a bunch of prototypes.
2820
171ca836
KH
28212000-02-26 Kenichi Handa <handa@etl.go.jp>
2822
2823 * keyboard.c (read_char): Set `usec' correctly.
2824
4013921d
KH
28252000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
2826
2827 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
2828 `lambda', set reg[RRR] to the map index.
2829 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
2830 reg[RRR] to 0. Otherwise, set it to -1.
2831
9244a058
GM
28322000-02-25 Gerd Moellmann <gerd@gnu.org>
2833
2df636f4 2834 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 2835
f43d79c1
GM
28362000-02-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2837
2838 * fileio.c (Ffile_symlink_p): If result starts with a `/'
2839 and contains a `:', prepend `/:'.
2840
2841 * window.c (select_window_1): If selected_window is nil,
2842 don't "swap out" the buffer's point.
2843 (Fset_window_configuration): Set selected_window to nil
2844 before calling Fselect_window.
2845 (unshow_buffer): Don't set point in buffer from window's point
2846 if another more recently selected window also shows the buffer.
2847
bed0c171
GM
28482000-02-25 Gerd Moellmann <gerd@gnu.org>
2849
449c3c52
GM
2850 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
2851
f5b58615
GM
2852 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
2853 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
2854 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
2855 variables.
2856 (DEFAULT_BUSY_CURSOR_DELAY): New define.
2857 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
2858 (hide_busy_cursor): New functions.
2859 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
2860
2861 * minibuf.c (read_minibuf): Cancel busy-cursor.
2862
2863 * keyboard.c (command_loop_1): Call start_busy_cursor before
2864 Fcommand_execute and cancel_busy_cursor after it.
2865 (timer_check): Remove busy-cursor code.
2866 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
2867 cursor timer.
2868
2869 * process.c (wait_reading_process_input): Remove busy-cursor code.
2870
2871 * eval.c (Fsignal): Call cancel_busy_cursor instead of
2872 Fx_hide_busy_cursor.
2873
2874 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
2875 Remove prototyoes.
2876 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
2877
2878 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
2879
2880 * xterm.c (XTread_socket): Remove busy-cursor code.
2881
4eb8436f
GM
2882 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
2883 (build_frame_matrix_from_leaf_window): Put code handling
2884 glyph row's not being a slice of a frame row in #if 0.
2885 (sync_window_with_frame_matrix_rows): New function.
2886 (frame_row_to_window): New function.
2887 (mirror_line_dance): Handle copies between windows.
2888
3cb65b0e
GM
2889 * lread.c (Fload): Use `xfree' instead of `free'.
2890 (init_obarray): Use `xmalloc' instead of `malloc'.
2891
bed0c171
GM
2892 * window.c (Fset_window_buffer): Set WINDOW to the window
2893 after decoding.
2add4349
GM
2894 (coordinates_in_window): Take frame's internal border width
2895 into account.
bed0c171 2896
42088c12
GM
28972000-02-24 Gerd Moellmann <gerd@gnu.org>
2898
2899 * xterm.c (x_display_and_set_cursor): Display cursor of
2900 non-selected windows depending on the setting of
2901 cursor_in_non_selected_windows.
2902
2903 * xdisp.c (cursor_in_non_selected_windows): New variable.
2904 (syms_of_xdisp): DEFVAR_BOOL it.
2905
d1e103b2
GM
29062000-02-23 Gerd Moellmann <gerd@gnu.org>
2907
723e779c
GM
2908 * data.c (Fstring_to_number): If number is greater than what
2909 fits into an integer, return a float.
2910
d1e103b2
GM
2911 * eval.c (specbind): Remove references to
2912 keyword_symbols_constant_flag.
2913
2914 * data.c (keyword_symbols_constant_flag): Removed.
2915 (Fmakunbound, set_internal, syms_of_data): Remove references to
2916 keyword_symbols_constant_flag.
2917
2918 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
2919
214f877f
KH
29202000-02-23 Kenichi Handa <handa@etl.go.jp>
2921
2922 * syntax.c (multibyte_syntax_as_symbol): New variable.
2923 (syms_of_syntax): Declare it as a Lisp variable.
2924 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
2925 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
2926 nonzero, treat all multibyte characters as symbol.
42088c12 2927 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
2928 characters.
2929
130adcb7
EZ
29302000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
2931
3cb65b0e 2932 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
130adcb7
EZ
2933 a deleted frame.
2934
17cbbf95
GM
29352000-02-21 Gerd Moellmann <gerd@gnu.org>
2936
2937 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
2938
2939 * xfns.c (x_window_to_frame, x_any_window_to_frame)
2940 (x_non_menubar_window_to_frame): Check the busy-cursor window.
2941
beb0bc36
DL
29422000-02-21 Dave Love <fx@gnu.org>
2943
2944 * frame.c (Vmouse_position_function): New variable.
2945 (Fmouse_position): Use it.
2946 (syms_of_frame): Install it.
2947
2948 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
2949
1d92afcd
GM
29502000-02-20 Gerd Moellmann <gerd@gnu.org>
2951
2952 * fileio.c (Finsert_file_contents): Unbind the binding of
2953 standard-output done by temp_output_buffer_setup.
329eed9f
GM
2954
2955 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
2956 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
2957 (specbind, unbind_to): Handle most common case of non-constant
2958 symbol with trivial value specially.
2959
2960 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
2961
2d06696f
RS
29622000-02-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2963
2964 * data.c (Fmake_variable_buffer_local): Doc fix.
2965 Init found_for_buffer to 0.
2966 (Fmake_variable_frame_local): If the variable has already
2967 been buffer-local, set the check_frame field.
2968
1d4311c3
EZ
29692000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
2970
2971 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
2972 produced for CODING_MODE_LAST_BLOCK requires.
2973
2dc95ddd
DL
29742000-02-18 Dave Love <fx@gnu.org>
2975
2976 * keyboard.c (echo_keystrokes): Remove declaration.
2977 (Vecho_keystrokes) New variable.
2978 (read_char, record_menu_key, read_key_sequence): Use it to allow
2979 use of float value.
2980 (syms_of_keyboard): Change Vecho_keystrokes declaration.
2981
2982 * lread.c: Undef feature selection macros before defining.
2983
f0930f35
GM
29842000-02-18 Gerd Moellmann <gerd@gnu.org>
2985
2986 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
2987 for symbols other than the symbol in question.
2988
e3d4de90
DL
29892000-02-17 Dave Love <fx@gnu.org>
2990
2991 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
2992
0b378936
GM
29932000-02-17 Gerd Moellmann <gerd@gnu.org>
2994
d621caf7
GM
2995 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
2996
0b378936
GM
2997 * alloc.c (enum mem_type): Compile unconditionally.
2998
3b451f74
EZ
29992000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
3000
3001 * xfaces.c (tty_defined_color): Don't return faulire indication
3002 for unspecified-fg and unspecified-bg pseudo-colors.
3003
10689a01
GM
30042000-02-17 Gerd Moellmann <gerd@gnu.org>
3005
1216f5e4
GM
3006 * alloc.c (mark_object): Don't mark symbol names in pure space.
3007 (gc_sweep): Don't unmark symbol names in pure space.
3008
3009 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
3010 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
3011 [GC_MARK_STACK]: New defines.
3012 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
3013 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
3014
3015 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
3016
3017 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
3018 allocate_buffer instead of xmalloc.
3019
3020 * alloc.c (toplevel): Include setjmp.h.
3021 (PURE_POINTER_P): New define.
3022 (enum mem_type) [GC_MARK_STACK]: New enumeration.
3023 (Vdead) [GC_MARK_STACK]: New variable.
3024 (lisp_malloc): Add parameter TYPE, call mem_insert if
3025 GC_MARK_STACK is defined.
3026 (allocate_buffer): New function.
3027 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
3028 (free_float) [GC_MARK_STACK]: Set type to Vdead.
3029 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
3030 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
3031 (MEM_NIL) [GC_MARK_STACK]: New define.
3032 (struct mem_node) [GC_MARK_STACK]: New structure.
3033 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
3034 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
3035 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
3036 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
3037 (mark_stack) [GC_MARK_STACK]: New functions.
3038 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
3039 (clear_marks): Removed.
3040 (gc_sweep): Set free conses' car, free floats' type, free
3041 symbols' function to Vdead. Use lisp_free to free buffers.
3042 (init_alloc_once): Initialize Vdead.
3043 (survives_gc_p): Return non-zero for pure objects.
3044
3045 * alloc.c: Add comments throughout the file.
3046
2503c8b1
GM
3047 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
3048 that unblocks alarms.
3049
8389e1e2
GM
3050 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
3051 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
3052 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
3053
10689a01
GM
3054 * frame.c (make_frame): Set frame initiallly to `garbaged'.
3055
bfc17d18
KH
30562000-02-17 Kenichi Handa <handa@etl.go.jp>
3057
4a09dee0
KH
3058 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
3059 avoid infinite error signaling. Allocate sufficient memory for
3060 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 3061
2b927d02
SM
30622000-02-17 Stefan Monnier <monnier@cs.yale.edu>
3063
3064 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
3065 depends on the previous behavior.
3066
b49cb764
GM
30672000-02-16 Gerd Moellmann <gerd@gnu.org>
3068
3069 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
3070
99e95407
GM
30712000-02-15 Gerd Moellmann <gerd@gnu.org>
3072
3073 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
3074
3075 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 3076 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
3077 write(2).
3078
6ffd3cf7
RS
30792000-02-15 Richard M. Stallman <rms@gnu.org>
3080
3081 * data.c (set_internal): Don't make variable buffer-local
3082 if within a let-binding for the same buffer.
3083 (let_shadows_buffer_binding_p): New function.
3084
3085 * eval.c (specbind): For buffer-local value,
3086 record the current buffer also.
3087 (unbind_to): Cope with that change.
3088
cad53475
GM
30892000-02-15 Gerd Moellmann <gerd@gnu.org>
3090
3091 * window.c (Fsave_window_excursion): Doc fix.
3092
1aa963c8
SM
30932000-02-15 Stefan Monnier <monnier@cs.yale.edu>
3094
3095 * syntax.c (back_comment): Make sure we only consider comment-starters
3096 of the relevant style and return -1 in case of a failure to find the
3097 beginning of the comment.
3098 (Fforward_comment): If back_comment fails, go back to the position just
3099 after the comment-end.
3100 (scan_lists): Add comment describing a very minor bug.
3101
b9b84fd3
SM
31022000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3103
3104 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
3105 `completion-regexp-list' in the docstring.
3106
3a28db80
DL
31072000-02-14 Dave Love <fx@gnu.org>
3108
3109 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
3110
fb4a568d
SM
31112000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3112
3113 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
3114 to Emacs' syntax. Also fix the comment about set/not-set meanings
3115 since Emacs syntax is not the value 0 any more.
3116 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
3117 since it's now part of RE_SYNTAX_EMACS.
3118
1063ebb5
DL
31192000-02-12 Dave Love <fx@gnu.org>
3120
3121 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
3122 Alpha.
3123
fb07a302
GM
31242000-02-12 Gerd Moellmann <gerd@gnu.org>
3125
3126 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
3127
aaf2320c
DL
31282000-02-12 Dave Love <fx@gnu.org>
3129
3130 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
3131
3132 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
3133 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
3134 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
3135
3136 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
3137
3138 * s/nextstep.h: Don't define HAVE_ALLOCA.
3139
3140 * config.in: Add vfork bits.
3141
eedf8bde
GM
31422000-02-12 Gerd Moellmann <gerd@gnu.org>
3143
3144 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
3145 unwind function to undo the effect of stopping atimers.
3146
3147 * keyboard.c (bind_polling_period): Stop all timers except
3148 poll_timer.
3149
3150 * atimer.c (stopped_atimers): New variable.
3151 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
3152 New functions.
3153
3154 * atimer.h (stop_other_atimers, run_all_atimers)
3155 (unwind_stop_other_atimers): Add function prototypes.
3156
3157 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
3158
8476c2f8
KR
31592000-02-11 Ken Raeburn <raeburn@gnu.org>
3160
3161 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
3162 library may depend on jpeg.
3163 (atimer.o): Depends on atimer.c.
3164
0e85e4a3
KH
31652000-02-11 Kenichi Handa <handa@etl.go.jp>
3166
3167 * insdel.c (del_range_1): Call update_compositions.
3168 (del_range_both): Call update_compositions just once..
3169
97fa0cc8
DL
31702000-02-10 Dave Love <fx@gnu.org>
3171
3172 * xfns.c (create_frame_xic): Fix initialization of automatic
3173 aggregates for pcc.
3174
25566a3c
KH
31752000-02-09 Kenichi Handa <handa@etl.go.jp>
3176
3177 * ccl.c (CCL_MAKE_CHAR): New macro.
3178 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
3179 registers by CCL_MAKE_CHAR before calling translate_char.
3180 <CCL_TranslateCharacterConstTbl> Likewise.
3181
69da54ba
DL
31822000-02-08 Dave Love <fx@gnu.org>
3183
3184 * lread.c (__EXTENSIONS__): Define.
3185
f7136ee8
GM
31862000-02-08 Gerd Moellmann <gerd@gnu.org>
3187
3188 * puresize.h (BASE_PURESIZE): Increase to 650000.
3189
7768790b
EZ
31902000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3191
3192 * msdos.c (XMenuActivate): Turn off the cursor after displaying
3193 the help message.
3194
38fd211b
EZ
31952000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3196
3197 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
3198 md, mh, mb, mr, and me to the fake termcap entry.
3199
66e4690f
KR
32002000-02-06 Ken Raeburn <raeburn@gnu.org>
3201
3202 * sound.c (sound_cleanup): Don't call device close routine if the
3203 function pointer is null.
3204
a75dfea0
AI
32052000-02-06 Andrew Innes <andrewi@gnu.org>
3206
3207 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
3208 around image definitions and prototypes.
3209 (gamma_correct) [WINDOWSNT]: New prototype.
3210
3211 * w32term.c (x_make_frame_visible): Replace call to
3212 input_poll_signal with poll_for_input.
3213
3214 * window.c [WINDOWSNT]: Include w32term.h.
3215
3216 * xdisp.c [WINDOWSNT]: Include w32term.h.
3217
3218 * makefile.nt: Add dependencies on w32gui.h.
3219 (OBJ1): Include atimer.obj.
3220 ($(BLD)\atimer.obj): New dependency rule.
3221
3222 * w32.c (sigmask): New function (does nothing).
3223 (sigunblock): Ditto.
3224
3225 * frame.c [WINDOWSNT]: Include w32term.h.
3226
3227 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
3228
3229 * lread.c (syms_of_lread): Fix literal newlines.
3230
3231 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
3232 the string constant limit (2048 bytes) in MSVC.
3233 (main): Ditto.
3234
59ddecde
GM
32352000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
3236
3237 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
3238 area.
3239 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
3240 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
3241 dispatch the event.
3242
07590973
DL
32432000-02-04 Dave Love <fx@gnu.org>
3244
3245 * fileio.c: Remove some unused vars.
3246 (_GNU_SOURCE): Define (for euidaccess).
3247
3248 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
3249
3250 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
3251 gcpro1, gcpro2.
3252 (read_minibuf): Deal with allow_props correctly.
3253
649351f9
EZ
32542000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
3255
3256 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
3257
66e4690f 32582000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
3259
3260 * search.c (compile_pattern): If a cache entry has a nil regexp,
3261 fill in that entry instead of clobbering a previously cached
3262 string regexp.
3263
66e4690f 32642000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
3265
3266 * puresize.h (BASE_PURESIZE): Increase to 610000.
3267
d240a249
GM
32682000-02-02 Gerd Moellmann <gerd@gnu.org>
3269
3270 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
3271 can GC.
3272
ca91fb26
KH
32732000-02-02 Kenichi Handa <handa@etl.go.jp>
3274
25660570
KH
3275 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
3276 instead of incrementing ic directly.
3277 <CCL_WriteExprConst> Likewise.
3278 <ccl_set_expr>: Set ic to jump_address.
3279
ca91fb26
KH
3280 * fileio.c (e_write): Fix the handling of
3281 CODING_FINISH_INSUFFICIENT_SRC.
3282
2ede9689
DL
32832000-02-01 Dave Love <fx@gnu.org>
3284
3285 * editfns.c (Fpropertize): Doc fix.
3286
3287 * process.c (Fstart_process): Doc fix.
3288
3289 * eval.c: Fix various doc strings not to duplicate information
3290 from help-manyarg-func-alist.
3291
3292 * window.c (Fset_window_margins): Don't make interactive. Doc
3293 fix.
3294
3295 * doc.c (Vhelp_manyarg_func_alist): New variable.
3296 (Fdocumentation): Use it.
3297 (syms_of_doc): Define it.
3298
b6680a0e
GM
32992000-01-31 Gerd Moellmann <gerd@gnu.org>
3300
2cb750ba
GM
3301 * xterm.c (xim_open_dpy): Remove unused local variable.
3302
74e9213b
GM
3303 * emacs.c (USAGE): Use term `display options' instead of `X
3304 options'.
3305
3306 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
3307 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
3308
b6680a0e
GM
3309 * fns.c (sweep_weak_table): New function.
3310 (sweep_weak_hash_tables): Use it. Keep on marking until there
3311 is no more change.
3312
994c5afe
GM
33132000-01-30 Gerd Moellmann <gerd@gnu.org>
3314
3315 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
3316 that XTread_socket does not crash by trying to call XNoOp on a
3317 closed display.
3318
f00276e3
JR
33192000-01-30 Jason Rumney <jasonr@gnu.org>
3320
3321 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3322 Change selected_frame to SELECTED_FRAME ().
3323 (w32_console_mouse_position): Remove #ifndef MULE from around
3324 `insist' parameter.
3325
3326 * makefile.nt: Remove dosfns.obj.
3327
3328 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
3329
3330 * w32fns.c (w32_defined_color): Check for valid frame before
3331 applying gamma correction. Eliminate dependency on frame elsewhere.
3332 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
3333 (w32_to_x_font): Use resx and resy not height_in and width_in.
3334 (x_to_w32_font): Doc fix.
3335 (xlfd_strip_height): New function to strip and return font height.
3336 (w32_font_match): Compare height separately from rest of xlfd
3337 spec, using xlfd_strip_height.
3338
3339 * w32term.c (w32_term_init): Swap resx and height_in, resy and
3340 width_in. Use w32_defined_color in place of defined_color.
3341
3342 * w32faces.c: Merge more of DOS and X specifics in preparation for
3343 merge with xfaces.c.
3344 (defined_color): Remove FIXME comment.
3345 (tty_color_name): Provide w32-specific function.
3346 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
3347
3348 * w32console.c (turn_on_face, turn_off_face): Removed.
3349 (w32_face_attributes): New function.
3350 (Global_variables): Reduce scope where possible.
3351 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
3352 fill attribute.
3353 (hl_mode): Don't modify text attributes.
3354 (write_glyphs): Don't do anything if len <= 0. Use
3355 w32_face_attributes to get attributes for drawing. Write
3356 terminating codes using char_attr_normal.
3357 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
3358 (update_begin, update_end): Likewise.
3359 (vga_stdcolor_name): New function.
3360 (initialize_w32_display): Remove char_attr_reverse and char_attr.
3361 (Fset_screen_color): Remove char_attr_reverse.
3362
b08e8bb2
GM
33632000-01-29 Gerd Moellmann <gerd@gnu.org>
3364
3365 * xfns.c (xic_set_preeditarea): Take window parameter and
3366 window-relative pixel-positions.
3367
3368 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
3369 is its frame's selected window.
3370 (xim_instantiate_callback): Likewise.
3371
3372 * xfns.c (x_create_im): Removed.
3373 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
3374 (supported_xim_styles): Renamed from supported_styles.
3375 (best_xim_style): Renamed from best_style.
3376 (create_frame_xic): Renamed from xic_create_frame.
3377 (free_frame_xic): Renamed from xic_destroy_frame.
3378
33792000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
3380
3381 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
3382 our frames, call XFilterEvent with 2nd parameter `None'.
3383 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
3384 returning XBufferOverflow.
3385 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
3386 area.
3387 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
3388 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
3389 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
3390 (xim_initialize, xim_close)
3391 [HAVE_X_I18N && HAVE_X11R6]: New functions.
3392 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
3393 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
3394 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
3395
3396 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
3397 and `xim_styles'.
3398 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
3399 `xic_style' and `xic_xfs'.
3400 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
3401 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
3402 (FRAME_XIM): Removed.
3403
3404 * xfns.c (supported_styles): New variable.
3405 (DEFAULT_STYLE, DEFAULT_FONT): New macros
3406 (xic_create_xfontset, best_style, xic_create_frame)
3407 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
3408 (xic_set_xfontset): New functions.
3409
142e109c
DL
34102000-01-28 Dave Love <fx@gnu.org>
3411
3412 * s/irix6-5.h: Revert last change after change to irix5-0.h.
3413
3414 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
3415
b02786f9
GM
34162000-01-28 Gerd Moellmann <gerd@gnu.org>
3417
d060bc9f
GM
3418 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
3419 for *scratch* if it already existed.
3420
b02786f9
GM
3421 * emacs.c (USAGE): New macro.
3422 (main): Use it to display usage information.
3423
2c52d7e4
EZ
34242000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3425
3426 Support for the menu-help feature:
3427
3428 * msdos.h: Change prototypes of XMenuAddSelection and
3429 XMenuActivate.
3430
3431 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
3432 part of the line to the termscript file.
3433 (IT_clear_to_end): Clear the entire line, not just its beginning.
3434 (menu_help_message, prev_menu_help_message): New variables.
3435 (IT_menu_make_room): Make room for the help_text member.
3436 (IT_menu_display): New argument disp_help; all callers changed.
3437 If disp_help is non-zero, store the help text of the active menu
3438 item in menu_help_message.
3439 (XMenuAddPane): Initialize the help_text member to NULL.
3440 (XMenuAddSelection): New argument help_text. Store it in the
3441 XMenu structure.
3442 (XMenuActivate): New argument help_callback. If the value of
3443 menu_help_message has changed since the last time, display the
3444 menu help message text while waiting for the mouse to move. Clear
3445 the echo area before exiting.
3446 (XMenuDestroy): Free the help_text member.
3447
ffe0bcd1
GM
34482000-01-27 Gerd Moellmann <gerd@gnu.org>
3449
3450 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
3451 XMenuAddSelection. Pass help callback to XMenuActivate.
3452 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
3453
50dbd23f
EZ
34542000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3455
3456 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
3457 and EMACS_SET_USECS.
3458
f5941bf8
GM
34592000-01-26 Dave Love <fx@gnu.org>
3460
6c67ddee
DL
3461 * editfns.c (Fchar_after, Fchar_before): Doc fix.
3462
f5941bf8
GM
3463 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
3464 an error may be signalled.
3465
9e49c990
GM
34662000-01-26 Gerd Moellmann <gerd@gnu.org>
3467
fc3cb460
GM
3468 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
3469 LD_SWITCH_SYSTEM inherited from irix5-0.h.
3470
9e49c990
GM
3471 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
3472
d0c037d8
GM
34732000-01-25 Gerd Moellmann <gerd@gnu.org>
3474
3475 * charset.c (Fstring): If there is a multibyte char among
3476 the args, always return a multibyte string.
3477
e12489f9
GM
34782000-01-25 Gerd Moellmann <gerd@gnu.org>
3479
3480 * sysdep.c (sys_select): Turn atimers off and on instead of
3481 recording and restoring old alarm handler
3482
3483 * process.c (toplevel): Include atimer.h.
3484 (create_process_1): Rewritten.
3485 (create_process): Use atimers instead of alarm.
3486 (wait_reading_process_input) [hpux]: Turn atimers off instead
3487 of turning off SIGALRM.
3488 (wait_reading_process_input): Turn off atimers instead off
3489 calling stop_polling.
3490
3491 * emacs.c (main): Call init_atimer.
3492
3493 * keyboard.c (toplevel): Include systime.h and atimer.h.
3494 (polling_for_input): Removed because unused.
3495 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
3496 (poll_timer): New variable.
3497 (poll_for_input, poll_for_input_1): New functions.
3498 (start_polling, stop_polling): Rewritten.
3499
3500 * keyboard.h (polling_for_input): Removed.
3501
3502 * atimer.h, atimer.c: New files.
3503
3504 * Makefile.in (obj): Add atimer.o.
3505 (atimer.o): New target.
3506
3507 * blockinput.h (pending_atimers): Add extern declaration.
3508 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
3509
3510 * lisp.h (popup_activated_flag): Add extern declaration.
3511
3512 * xmenu.c (popup_activated_flag): Make externally visible.
3513 (popup_activate_callback) [USE_MOTIF]: Increment
3514 popup_activated_flag.
3515 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
3516
3517 * xterm.c (toplevel): Include atimer.h.
3518 (toolkit_scroll_bar_interaction): New variable.
3519 (Fxt_process_timeouts): Removed.
3520 (x_process_timeouts): New function.
3521 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
3522 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
3523 (x_make_frame_visible): Call poll_for_input_1 instead of
3524 input_poll_signal. Don't call alarm.
3525 (x_initialize): Install timer calling x_process_timeouts.
3526
1e5279b9
DL
35272000-01-24 Dave Love <fx@gnu.org>
3528
6c67ddee 3529 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
3530 Don't use -cckr -- apparently not now necessary.
3531
edf6aeb8
EZ
35322000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
3533
3534 * msdos.c (IT_menu_display): Truncate long menu lines at the right
3535 screen boundary.
3536
9badad41
JR
35372000-01-23 Jason Rumney <jasonr@gnu.org>
3538
3539 * w32fns.c (w32_defined_color): Apply gamma correction before
3540 trying to map to the palette.
3541 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
3542 to w32_clear_rect.
3543
3544 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
3545 here. Callers changed to always pass real device context.
3546 (w32_draw_bitmap): Likewise.
3547 (w32_get_glyph_overhangs): Likewise.
3548 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
3549 one.
3550 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
3551 pfnSetScrollInfo and SetScrollRange.
3552 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
3553 back into MULE characters after decoding them.
3554 (x_get_glyph_face_and_encoding): Likewise.
3555 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
3556 GetCharABCWidthsW fails, since this is defined on Windows 9x.
3557 (x_produce_glyphs): Calculate per char metrics for a character
3558 that we know exists in default font when font_not_found_p is true.
3559
63bd786b
JR
35602000-01-22 Jason Rumney <jasonr@gnu.org>
3561
3562 * makefile.nt (intervals.obj, composite.obj): New modules.
3563 (composite.h): Added as dependency where appropriate.
3564
3565 * w32gui.h (XGCValue): New struct for emulating X GCs.
3566
3567 * w32term.h (XCharStruct): New struct for emulating X.
3568
3569 * w32console.c (turn_on_face, turn_off_face): New functions.
3570 (change_line_highlight): New prototype for new redisplay.
3571 (write_glyphs): Support multibyte text. Support faces.
3572
3573 * w32faces.c: Complete rewrite for new redisplay based on new
3574 xfaces.c.
3575
3576 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
3577 throughout. struct frame * in place of FRAME_PTR.
3578 Skeleton support for images, toolbars, tooltips from xfns.c.
3579 (Fx_create_frame): Use system default for default scroll bar
3580 width.
3581 (w32_get_arg): Renamed from x_get_arg.
3582 (Fx_file_dialog): New function.
3583 (w32_list_fonts): Check cache before asking system.
3584 (Vw32_enable_synthesized_fonts): New variable.
3585 (Vw32_enable_italics): Obsolete, removed.
3586
3587 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3588 Use SELECTED_FRAME macro.
3589
3590 * w32menu.c: Add skeleton support for help strings on menus.
3591 (add_menu_item): Native checkbox and radio support added, but not
3592 yet enabled due to bugs.
3593 (push_menu_item): Add parameters type, selection and help.
3594 Callers updated.
3595 Formatting changes to reduce unnecessary diffs with xmenu.c.
3596
3597 * w32select.c (Fw32_set_clipboard_data): Update call to
3598 find_charset_in_str.
3599
3600 * w32term.c: Complete rewrite for new redisplay based on new
3601 xterm.c with necessary sections merged back in from old w32term.c.
3602
6ffd3cf7 36032000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
3604
3605 * data.c (set_internal): Further fix in same criterion.
3606
6ffd3cf7 36072000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
3608
3609 * data.c (set_internal): Fix the criteria for whether
3610 to swap out the old cached binding.
3611
60af03f1
DL
36122000-01-19 Dave Love <fx@gnu.org>
3613
3614 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
3615
f9be074f
KH
36162000-01-18 Kenichi Handa <handa@etl.go.jp>
3617
3618 * regex.c (re_compile_fastmap): While checking a range table for
3619 `charset', skip flag bits for a character class correctly.
3620
52b8dbf9
GM
36212000-01-17 Gerd Moellmann <gerd@gnu.org>
3622
d36100c9
GM
3623 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
3624
52b8dbf9
GM
3625 * xfns.c (x_window): Call lw_create_widget with new parameter
3626 list.
3627
3628 * widget.c (EmacsFrameSetCharSize): Change size of children first
3629 because of problems with main window geometry management under
3630 Lesstif.
3631
3632 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
3633 MENU_ITEMS_ITEM_.*.
3634 (MENU_ITEMS_ITEM_HELP): New enumerator.
3635 (push_menu_item): Add parameter HELP. Record help in menu_items.
3636 (single_menu_item, single_submenu, list_of_items): Call
3637 push_menu_item with new parameter.
3638 (single_submenu): Set help string in widget value.
3639 (menu_highlight_callback): New function.
3640 (set_frame_menubar): Call lw_create_widget with new
3641 parameter list.
3642 (xmenu_show, xdialog_show): Ditto.
3643
3139018f
GM
36442000-01-13 Gerd Moellmann <gerd@gnu.org>
3645
3646 * sound.c (Fplay_sound): Improve doc string.
3647
83c8f461
RS
36482000-01-11 Richard M. Stallman <rms@gnu.org>
3649
3650 * lisp.h (set_internal): Enter the new arg.
3651
3652 * eval.c (specbind): Record buffer-local variables specially,
3653 indicating which buffer's binding was saved.
3654 (unbind_to): Restore buffer-local variables specially
3655 in the proper buffer.
3656
3657 * data.c (set_internal): New arg BUF.
3658
3659 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
3660 * data.c (Fset): Pass new arg to set_internal.
3661 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
3662
1fab1775
GM
36632000-01-11 Gerd Moellmann <gerd@gnu.org>
3664
3665 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
3666 xprintsym.
3667
83c8f461 36682000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
3669
3670 * minibuf.c (Ftry_completion): Doc fix.
3671
7a85e4df
GM
36722000-01-11 Gerd Moellmann <gerd@gnu.org>
3673
3674 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
3675 vector, too.
3676
a970dae4
AS
36772000-01-11 Andreas Schwab <schwab@suse.de>
3678
3679 * coding.c (code_convert_region): Initialize total_skip.
3680
c65d14ee
DL
36812000-01-08 Dave Love <fx@gnu.org>
3682
3683 * eval.c (Fuser_variable_p): Check customizability too.
3684
834938d2
GM
36852000-01-07 Gerd Moellmann <gerd@gnu.org>
3686
3687 * minibuf.c (Fcompleting_read): Doc fix.
3688
e0303cd6
GM
36892000-01-05 Gerd Moellmann <gerd@gnu.org>
3690
8a26744b
GM
3691 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
3692 -L /usr/local/lib.
3693
e0303cd6
GM
3694 * xfns.c (x_create_im): New function to set IM and IC of a frame.
3695 Check that input style is supported before trying to create an
3696 IC for it.
3697 (x_window): Call x_create_im.
3698
2e471eb5
GM
36992000-01-04 Gerd Moellmann <gerd@gnu.org>
3700
560a7bd2
GM
3701 * xfns.c (current_gif_memory_src): New variable.
3702 (gif_load): Record the address of the current memory source
3703 in current_gif_memory_src.
3704 (gif_read_from_memory): Use current_gif_memory_src.
3705
f9ee84a3
GM
3706 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
3707 macros statement form.
3708
d1299cde
GM
3709 * sound.c (struct sound): Renamed from struct sound_file.
3710 (struct sound): Add members `data' and `header_size'.
3711 (enum sound_attr): Add SOUND_DATA.
3712 (current_sound, current_sound_device): Variables renamed from
3713 sound_file and sound_device.
3714 (parse_sound): Parse :data.
3715 (parse_sound): Handle sound data in strings.
3716 (find_sound_type): Function renamed from find_sound_file_type.
3717 (wav_init, au_init): Fail if sound's header_size is smaller than
3718 needed header size.
3719 (wav_play, au_play): Play sounds from string data.
3720
2e471eb5
GM
3721 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
3722
3723 * lisp.h: Add prototype for allocate_string_data.
3724
3725 * alloc.c (Fgarbage_collect): Return number of live and free
3726 strings.
3727
3728 * alloc.c (mark_buffer): Remove code in #if 0.
3729 (gc_sweep): Ditto.
3730 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
3731 (strings_consed): New variable.
3732 (allocate_string): Set it.
3733 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
3734 (Fmemory_use_counts): Return strings_consed. Use Flist.
3735
3736 * alloc.c: General cleanup in comments etc. Remove conditional
3737 compilation for `standalone'.
3738
3739 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
3740
3741 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
3742 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
3743 (DONT_COPY_FLAG): Removed.
3744 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
3745 (struct sdata, struct sblock): New
3746 (struct string_block): Rewritten.
3747 (STRINGS_IN_STRING_BLOCK): New macro.
3748 (oldest_sblock, current_sblock, total_strings, total_free_strings)
3749 (large_sblocks, string_blocks, string_free_list): New variables.
3750 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
3751 (init_strings): Rewritten.
3752 (allocate_string, allocate_string_data, compact_small_strings)
3753 (free_large_strings, sweep_strings): New functions.
3754 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
3755 (struct string_block_head, current_string_block)
3756 (first_string_block, large_string_blocks, STRING_FULLSIZE)
3757 (STRING_PAD): Removed.
3758 (make_uninit_multibyte_string, make_pure_string): Rewritten.
3759 (Fgarbage_collect): Don't set mark bit in large strings.
3760 (mark_object): Mark strings differently. Mark symbol names
3761 differently.
3762 (survives_gc_p): Test marked strings differently.
3763 (gc_sweep): Sweep strings differently, unmark strings in
3764 symbol names.
3765 (compact_strings): Removed.
3766
42608ba8
EZ
37672000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
3768
3769 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
3770 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
3771
e0a09e1a
KH
37722000-01-04 Kenichi Handa <handa@etl.go.jp>
3773
dd9f0750
KH
3774 * fileio.c (Finsert_file_contents): Signal error if visiting file
3775 in a non-empty buffer.
3776
3c0f3b15 3777 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 3778
44cd3ae5
GM
37792000-01-03 Gerd Moellmann <gerd@gnu.org>
3780
3781 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
3782 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
3783
3784 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
3785
c182a70f
EZ
37862000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
3787
3788 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
3789 need to test for MSDOS frames.
3790
24480d5b
EZ
37912000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
3792
3793 * dosfns.c (unspecified_colors): Remove.
3794 (msdos_stdcolor_idx): Use global variables unspecified_fg and
3795 unspecified_bg.
3796 (msdos_stdcolor_name): Return strings for unspecified fore- and
3797 back-ground colors.
3798
3799 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 3800 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
3801 (tty_color_name): Return Lisp strings for unspecified fore- and
3802 back-ground colors.
3803 (Finternal_set_lisp_face_attribute): Remove the special treatment
3804 for Qunspecified_{f,b}g.
3805 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
3806 string.
3807
047f434a
GM
38082000-01-03 Gerd Moellmann <gerd@gnu.org>
3809
3810 * xdisp.c (reseat_at_next_visible_line_start): Position before
3811 newline only if ending up on a newline.
3812 (next_element_from_ellipsis): Return success. Handle case of
3813 displaying no ellipsis. Fix case of ellipsis defined in display
3814 table.
3815 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
3816 returns 0.
3817
d684c676
EZ
38182000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
3819
3820 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
3821 (Fcolor_supported_p): Renamed from face-color-supported-p.
3822
5fe1d139
EZ
38232000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3824
3825 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
3826 list of colors renamed to tty-defined-color-alist.
3827 (tty_color_name): Pass the frame to tty-color-by-index.
3828 (realize_tty_face): tty-color-alist is now a function which
3829 accepts the frame as argument.
3830
3831 * term.c (Ftty_display_color_p): Accept an optional argument
3832 FRAME.
3833
816be8b8
EZ
38342000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3835
3836 * term.c (insert_glyphs): Pass glyph, not &glyph, to
3837 encode_terminal_code.
3838
b635321e
EZ
38392000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3840
3841 * dispnew.c (mode_line_string): Support termcap frames as well.
3842
9b784e96
GM
38432000-01-01 Gerd Moellmann <gerd@gnu.org>
3844
27189709
GM
3845 * syntax.c (Fforward_word): Undo previous change.
3846
3847 * editfns.c (Fconstrain_to_field): Don't constrain if
3848 inhibit-field-text-motion is non-nil.
3849 (Fline_beginning_position): Undo previous change.
3850 (Fline_end_position): Ditto.
3851
3852 * syntax.c (Fforward_word): Notice field boundaries only if
3853 inhibit-field-text-motion is nil.
3854
3855 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
3856
3857 * editfns.c (Vinhibit_field_text_motion): New variable.
3858 (inhibit-field-text-motion): New DEFVAR_LISP.
3859 (Fline_beginning_position, Fline_end_position): Notice field
3860 boundaries only if inhibit-field-text-motion is nil.
3861
45158a91
GM
3862 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
3863 All calls adjusted.
3864 (x_build_heuristic_mask): Likewise.
3865 (xbm_load_image_from_file): Change error output.
3866 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
3867 (gif_load, gs_load, x_kill_gs_process): Ditto.
3868
9b784e96
GM
3869 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
3870 color indices when accessing raster pixels.
63cec32f
GM
3871 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
3872 one of :file or :data.
3873 (enum pbm_keyword_index): Add PBM_DATA.
3874 (pbm_format): Add :data.
3875 (pbm_image_p): Allow either :file or :data.
3876 (pbm_read_file): New function.
3877 (pbm_scan_number): Rewritten to read from string.
3878 (pbm_load): Support :data.
9b784e96 3879
5ad6a5fb
GM
38801999-12-31 Gerd Moellmann <gerd@gnu.org>
3881
3882 * xfns.c: New image functions adapted to Emacs conventions.
3883 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
3884 variable `file'.
3885
63448a4d
WP
38861999-12-31 William M. Perry <wmperry@aventail.com>
3887
3888 * xfns.c (jpeg_format): Added the :data keyword
3889 (jpeg_image_p): JPEG is valid with :file _or_ :data
3890 (jpeg_memory_src): Defined new JPEG image source to read from a
3891 memory buffer.
3892 (jpeg_load): Pay attention to the :data keyword if specified.
3893 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
3894 found.
3895 (png_format): Added the :data keyword
3896 (png_image_p): PNG is valid with :file _or_ :data
3897 (png_read_from_memory): New PNG read function to read from a
3898 memory buffer.
3899 (png_load): Pay attention to the :data keyword if specified. Uses
3900 png_set_read_fn() instead of png_init_io() if specified.
3901 (tiff_format): Added the :data keyword for TIFF images.
3902 (tiff_image_p): TIFF is valid with :file _or_ :data
3903 (tiff_read_from_memory): Defined new TIFF I/O functions to read
3904 from a memory buffer.
3905 (tiff_load): Pay attention to the :data keyword if specified.
3906 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
3907 (gif_format): Added the :data keyword
3908 (gif_image_p): GIF is valid with :file _or_ :data
3909 (gif_read_from_memory): New GIF input function to read from a
3910 memory buffer.
c65d14ee 3911 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
3912 instead of DGifOpenFileName() if specified.
3913
c880678e
GM
39141999-12-31 Gerd Moellmann <gerd@gnu.org>
3915
3916 * xdisp.c (next_element_from_buffer): Change assertion at the end
3917 because it doesn't hold when there's an overlay string at the end
3918 from which we deliver an image.
3919
8ccb9a54
EZ
39201999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
3921
3922 * msdos.c (IT_update_begin): Don't dereference members of struct
3923 window for deleted windows.
3924
12ce2351
GM
39251999-12-30 Gerd Moellmann <gerd@gnu.org>
3926
a915c648
GM
3927 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
3928 a hook, and the hook has a non-nil `no-self-insert' property, let
3929 the return value of the hook specify whether an expansion took
3930 place. If it returns nil, no expansion has been performed.
3931
12ce2351
GM
3932 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
3933 differently.
3934
04ee4f45
EZ
39351999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
3936
3937 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
3938
7f4bc0c3
EZ
39391999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
3940
3941 * dispnew.c (mode_line_string): Support MS-DOS frames.
3942
dac204bc
GM
39431999-12-29 Gerd Moellmann <gerd@gnu.org>
3944
3945 * eval.c (syms_of_eval): Initialize debugger_may_continue.
3946
7b712ad8
KH
39471999-12-29 Kenichi Handa <handa@etl.go.jp>
3948
3949 * process.c (read_process_output): Fix the args CHARPOS and LENINS
3950 to signal_after_change.
3951
adb9900f
EZ
39521999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
3953
41ad069b
EZ
3954 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
3955 dimensions changed, invalidate the mouse highlight info.
3956 (disable_mouse_highlight, help_echo, previous_help_echo): New
3957 variables.
3958 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
3959 (fast_find_position, IT_note_mode_line_highlight)
3960 (IT_note_mouse_highlight): New functions.
3961 (IT_update_begin): If the redisplay affects the window where the
3962 mouse highlight is, clear the highlight. If the frame where the
3963 highlight was displayed was killed, invalidate the highlight
3964 info.
3965 (IT_update_end): Reset the highlight flag. Reset the mouse
3966 highlight-defer flag.
3967 (IT_frame_up_to_date): New function, if mouse highlight was
3968 deferred due to GC, do it now.
3969 (internal_terminal_init): Initialize mouse-highlight related
3970 members of the_only_x_display. Assign IT_frame_up_to_date to
3971 frame_up_to_date_hook.
3972 (dos_rawgetc): If the mouse moved, update mouse highlight. If
3973 help_echo changed value, generate a HELP_EVENT event.
3974 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
3975
adb9900f
EZ
3976 * msdos.h (struct display_info): New.
3977 (struct x_output): Add the display_info member.
3978 (FRAME_X_DISPLAY_INFO): New macro.
3979
481b5054
GM
39801999-12-28 Gerd Moellmann <gerd@gnu.org>
3981
3982 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
3983 if MODIFF > 1.
6448a6b3 3984 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
3985
3986 * buffer.c (modify_overlay): Always compute unchanged info.
3987
a2882b0d
KH
39881999-12-27 Kenichi Handa <handa@etl.go.jp>
3989
3990 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
3991
89ba5b5f
KH
39921999-12-27 Kenichi Handa <handa@etl.go.jp>
3993
3994 The following changes are to use more bits for face IDs.
3995
3996 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
3997 lowest 8 bits are single byte character code, the bits above are
3998 face ID.
481b5054 3999 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 4000 above.
481b5054
GM
4001 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
4002 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
4003
4004 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
4005 of GLYPH_MASK_CHAR.
4006
4007 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
4008 of GLYPH_MASK_CHAR.
4009
4010 * dispextern.h (struct glyph): Make face_id and padding_p the top
4011 level members. Change members in union `u'.
4012 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
4013 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
4014 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
4015 (CHAR_GLYPH_PADDING_P): Likewise.
4016 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
4017 characters.
4018
481b5054 4019 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
4020 for the change of struct glyph.
4021 (line_draw_cost): Adjusted for the change of
4022 GLYPH_FROM_CHAR_GLYPH.
4023 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
4024
4025 * term.c (encode_terminal_code): Adjusted for the change of struct
4026 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 4027 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
4028 change of struct glyph.
4029
4030 * xdisp.c: All codes adjusted for the change of struct glyph.
4031
4032 * xterm.c: All codes adjusted for the change of struct glyph.
4033
5bcd116c
KH
40341999-12-27 Kenichi Handa <handa@etl.go.jp>
4035
4036 * composite.h (struct composition): Change the order of declaring
4037 members to reduce the byte size of the structure.
4038
f21b06b7
GM
40391999-12-25 Gerd Moellmann <gerd@gnu.org>
4040
4041 * search.c (looking_at_1): Reset immediate_quit before modifying
4042 global data.
4043
e36557c9
KH
40441999-12-24 Kenichi Handa <handa@etl.go.jp>
4045
4046 * process.c (read_process_output): Fix the arg FROM to
4047 update_compositions.
4048
83c8f461 40491999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
4050
4051 * search.c (Freplace_match): For nonliteral replacement in buffer,
4052 construct all the new text first, then insert all at once.
4053
0b863bd9
DL
40541999-12-22 Dave Love <fx@gnu.org>
4055
4056 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
4057
6d8e8ef3
GM
40581999-12-22 Gerd Moellmann <gerd@gnu.org>
4059
28d7281d
GM
4060 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
4061 lead to size changes to after the X window has been created.
4062
e22ef6eb 4063 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
4064 variable in xassert.
4065
8affcced
KH
40661999-12-22 Kenichi Handa <handa@etl.go.jp>
4067
4068 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 4069 only when the frame is not for a window system.
8affcced 4070
f2be1146
GM
40711999-12-22 Gerd Moellmann <gerd@gnu.org>
4072
deca1348
GM
4073 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
4074 redisplay after changing the multibyteness of a buffer.
4075
f2be1146
GM
4076 * xterm.c (XTread_socket): At the beginning of the loop, pass the
4077 frame's X window to XFilterEvent instead of None because that's
4078 the X window for which the IC was created. This makes dead
4079 accents work when the pointer is not in Emacs' frame.
4080 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
4081
a744a2ec
DL
40821999-12-20 Dave Love <fx@gnu.org>
4083
4084 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
4085
9e6985ed
GM
40861999-12-19 Gerd Moellmann <gerd@gnu.org>
4087
4088 * eval.c (debugger_may_continue): New variable.
4089 (syms_of_eval): Add a DEFVAR_BOOL for it.
4090 (call_debugger): Bind it.
4091
3b620731
EZ
40921999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4093
4094 * msdos.c (IT_set_face): Don't swap face colors when highlight or
4095 fp->tty_reverse_p is set, unless the computed colors are identical
4096 to frame colors. Print both original and computed colors to
4097 termscript file.
4098 (IT_write_glyphs): Track the changes in handling of composite
4099 characters.
4100 (IT_set_frame_parameters): Don't set frame colors from
4101 unspecified-fg and unspecified-bg pseudo-colors.
4102
0f9a51c4
DL
41031999-12-17 Dave Love <fx@gnu.org>
4104
4105 * data.c (Fkeywordp): New function.
4106 (syms_of_data): Install it.
4107
363e4e42
EZ
41081999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4109
4110 * xfaces.c (tty_defined_color): Fix last change.
4111
cfad01b4
GM
41121999-12-15 Gerd Moellmann <gerd@gnu.org>
4113
4114 * xdisp.c (redisplay_window) <optional new window start>: Check
4115 that window start is in [BEGV..ZV].
4116
f9d2fdc4
EZ
41171999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
4118
4119 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
4120 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
4121
4122 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
4123 (syms_of_xfaces): Initialize and staticpro them.
4124 (tty_defined_color): If the color name is unspecified-fg or
4125 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
4126 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
4127 (tty_color_name): If the color pixel value is either
4128 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
4129 Qunspecified_fg or Qunspecified_bg, respectively.
4130 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
4131 and Qunspecified_bg for foreground and background colors.
4132 (realize_default_face): If the foreground and background colors
4133 are not specified, default to Qunspecified_fg and Qunspecified_bg.
4134 (realize_tty_face): By default, set the face colors to
4135 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
4136 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
4137 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
4138 Reverse the colors if the default colors were reversed.
4139
4140 * dispnew.c (init_display): Initialize the frame pixels of the
4141 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
4142 FACE_TTY_DEFAULT_BG_COLOR.
4143
4144 * term.c (turn_on_face): If the default fore- and background
4145 colors are reversed, enter inverse video mode. Don't send color
4146 escape sequences for unspecified foreground and background colors.
4147 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
4148
4149 * dosfns.c (unspecified_colors): New variable.
4150 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
4151 color names, return FACE_TTY_DEFAULT_FG_COLOR and
4152 FACE_TTY_DEFAULT_BG_COLOR, respectively.
4153 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
4154 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
4155 Qunspecified_bg, respectively.
4156
4157 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
4158 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
4159
e19539f1
KH
41601999-12-15 Kenichi Handa <handa@etl.go.jp>
4161
4162 * coding.c (code_convert_region): Fix the secoding arg to
4163 update_compositions.
4164
5ec14d3c
KH
41651999-12-15 Kenichi Handa <handa@etl.go.jp>
4166
4167 The following changes are for the new composition mechanism. We
4168 have deleted `composition' charset and composite characters,
4169 instead introduced a special text property `composition'.
4170
4171 * Makefile.in (INTERVAL_SRC): Include composite.h.
4172 (INTERVAL_OBJ): Include composite.o.
4173 (SOME_MACHINE_OBJECTS): Include composite.o.
4174 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
4175 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
4176 Depend on composite.h.
4177 (doc.o): Depend on charset.h.
4178 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
4179 (composite.o): New target.
4180
4181 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
4182
4183 * callproc.c (Fcall_process): Call code_convert_string to encode
4184 arguments. Use CODING_REQUIRE_DECODING to check if the process
4185 output should be decoded.
4186
4187 * casefiddle.c: Include composite.h.
4188 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
4189 multibyte character. Adjusted for the change of CHAR_STRING.
4190 (casify_region): Likewise. Call update_compositions.
4191
4192 * category.h (CATEGORY_SET): Delete codes for a composite
4193 character.
4194
4195 * category.c (word_boundary_p): Delete codes for a composite
4196 character.
4197 (Fmake_category_table): New function.
4198 (syms_of_category): Defsubr it.
4199
4200 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
4201 (ccl_driver): Delete codes for a composite character.
4202
4203 * charset.h: In this entry, just `Modified' means that codes for a
4204 composite character is deleted.
4205 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
4206 (charset_composition) (MIN_CHAR_COMPOSITION)
4207 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
4208 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
4209 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
4210 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
4211 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
4212 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
4213 Modified.
4214 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
4215 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
4216 non_ascii_char_to_string.
4217 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
4218 (STRING_CHAR_AND_LENGTH): Likewise.
4219 (FETCH_CHAR_ADVANCE): New macro.
4220 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
4221 (MAX_MULTIBYTE_LENGTH): New macro.
4222 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
4223 (find_charset_in_str): Argument adjusted.
4224 (CHAR_LEN): Modified.
4225
4226 * charset.c: In this entry, just `Modified' means that codes for a
4227 composite character is deleted.
4228 (Qcomposition) (leading_code_composition)
4229 (charset_composition) (min_composite_char) (cmpchar_table)
4230 (cmpchar_table_size) (n_cmpchars): Deleted.
4231 (SPLIT_COMPOSITE_SEQ): Deleted.
4232 (SPLIT_MULTIBYTE_SEQ): Modified.
4233 (char_to_string): Renamed from non_ascii_char_to_string.
4234 Modified.
4235 (string_to_char): Renamed from string_to_non_ascii_char.
4236 (split_string): Renamed from split_non_ascii_string.
4237 (char_printable_p) (Fsplit_char)
4238 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
4239 (char_bytes) (Fchar_width) (strwidth): Modified.
4240 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
4241 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
4242 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
4243 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
4244 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
4245 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
4246 (Fcmpchar_cmp_count): Deleted.
4247 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
4248 (init_charset_once): Modified.
4249 (syms_of_charset): Modified.
4250
4251 * cmds.c (internal_self_insert): Adjusted for the change of
4252 CHAR_STRING.
4253
4254 * coding.h (emacs_code_class_type): Delete the member
4255 EMACS_leading_code_composition.
4256 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
4257 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
4258 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
4259 (COMPOSING_WITH_RULE_P): Macros deleted.
4260 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
4261 macros.
4262 (struct composition_data): New structure.
4263 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
4264 (struct coding_system): New members composition_rule_follows,
4265 cmp_data, cmp_data_start, cmp_data_index.
4266 (coding_save_composition) (coding_free_composition_data)
4267 (coding_adjust_composition_offset): Extern them.
4268
4269 * coding.c: Include composite.h.
4270 (DECODE_CHARACTER_ASCII): Don't handle composition here.
4271 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
4272 of multibyte code here.
4273 (DECODE_CHARACTER_DIMENSION2): Likewise.
4274 (detect_coding_emacs_mule): Change the case label from
4275 EMACS_leading_code_composition to 0x80.
4276 (detect_coding_iso2022): Handle new composition sequence.
4277 (DECODE_ISO_CHARACTER): Likewise.
4278 (check_composing_code): Deleted.
4279 (coding_allocate_composition_data): New function.
4280 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
4281 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
4282 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
4283 (decode_coding_iso2022): Handle new composition sequence.
4284 (ENCODE_ISO_CHARACTER): Don't check composition here.
4285 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
4286 (ENCODE_COMPOSITION_NO_RULE_START)
4287 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
4288 (ENCODE_COMPOSITION_END): Handle new composition sequence.
4289 (ENCODE_COMPOSITION_FAKE_START): New macro.
4290 (encode_coding_iso2022): Handle new composition sequence.
4291 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
4292 (encode_coding_sjis_big5): Ignore composition.
4293 (setup_coding_system): Initialize new members of struct
4294 coding_system. Enable composition only when the coding system has
4295 `composition' property t.
4296 (coding_free_composition_data) (coding_adjust_composition_offset)
4297 (coding_save_composition) (coding_restore_composition): New
4298 functions.
4299 (code_convert_region): Call coding_save_composition for encoding
4300 and coding_allocate_composition_data for decoding. Don't skip
4301 ASCII characters if we handle composition on encoding. Call
4302 signal_after_change with Check_BORDER.
4303 (code_convert_string): Call coding_save_composition for encoding
4304 and coding_allocate_composition_data for decoding. Don't skip
4305 ASCII characters if we handle composition on encoding.
4306 (code_convert_string1): Set Vlast_coding_system_used after calling
4307 code_convert_string.
4308 (code_convert_string_norecord): Disable composition.
4309 (Fset_terminal_coding_system_internal): Likewise.
4310 (Fset_safe_terminal_coding_system_internal): Likewise.
4311 (Fset_keyboard_coding_system_internal): Likewise.
4312 (init_coding_once): Set emacs_code_class[0x80] to
4313 EMACS_invalid_code.
4314
4315 * composite.h: New file.
4316
4317 * composite.c: New file.
4318
4319 * data.c (Faref): Delete codes for a composite character..
4320 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
4321
4322 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
4323 (struct glyph): Add new sub-structure cmp to the union `u'.
4324 (enum display_element_type): New member IT_COMPOSITION.
4325 (enum prop_idx): New member COMPOSITION_PROP_IDX.
4326 (struct it): New members cmp_id, cmp_len.
4327
4328 * dispnew.c (direct_output_forward_char): Check point moving into
4329 or out of a composition. If so, give up direct method.
4330
4331 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
4332
4333 * editfns.c (Fchar_to_string): Adjusted for the change of
4334 CHAR_STRING.
4335 (general_insert_function): Likewise.
4336 (Finsert_char): Likewise.
4337 (Fsubst_char_in_region): Likewise. Call update_compositions.
4338 (Ftranslate_region): Call update_compositions.
4339 (Ftranspose_regions): Call update_compositions.
4340
4341 * emacs.c (main): Call syms_of_composite.
4342
4343 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
4344 CHAR_STRING.
4345 (Finsert_file_contents): Set Vlast_coding_system_used before
4346 calling signal_after_change. Call update_compositions if some
4347 texts are inserted..
4348 (Fwrite_region): Adjusted for the change of a_write and e_write.
4349 (a_write): Argument changed. Work based on character position,
4350 not byte position.
4351 (e_write): Argument changed. Handle new way of composition.
4352
4353 * fns.c (Flength): The length of char-table is MAX_CHAR.
4354 (concat): Adjusted for the change of CHAR_STRING.
4355 (Ffillarray): Adjusted for the change of CHAR_STRING.
4356 (Fset_char_table_default): Delete codes for a composite character.
4357 (hash_put): Return hash index.
4358
4359 * fontset.h (struct font_info): New member vertical_centering.
4360 (Vvertical_centering_font_regexp): Extern it.
4361
4362 * fontset.c (Vvertical_centering_font_regexp): New variable.
4363 (syms_of_fontset): Declare it as a Lisp variable and initialize.
4364 Set Vignore_relative_composition to nil.
4365 (fs_load_font): Initialize `vertical_centering' of struct
4366 font_info.
4367
4368 * indent.c (check_composition): New function.
4369 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
4370 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
4371 (current_column_1): Handle new way of composition.
4372 (Fmove_to_column): Likewise.
4373 (compute_motion): Likewise.
4374
4375 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
4376 (insert_char): Likewise.
4377 (insert): Call update_compositions.
4378 (insert_and_inherit): Likewise.
4379 (insert_before_markers): Likewise.
4380 (insert_before_markers_and_inherit): Likewise.
4381 (insert_from_string): Likewise.
4382 (insert_from_string_before_markers): Likewise.
4383 (insert_from_buffer): Likewise.
4384 (replace_range): Likewise.
4385 (count_combining_composition): Deleted.
4386 (count_combining_before): Delete codes for a composite character.
4387 (count_combining_after): Likewise.
4388 (del_range_1): Call update_compositions.
4389 (del_range_byte): Likewise.
4390 (del_range_both): Likewise.
4391 (Fcombine_after_change_execute): Likewise.
4392
4393 * intervals.h: Include composite.h.
4394 (get_property_and_range): Extern it.
4395 (Vtext_property_default_nonsticky): Extern it.
4396
4397 * intervals.c (adjust_intervals_for_insertion): To check stickines
4398 of properties, pay attention to text-property-default-nonsticky.
4399 (merge_properties_sticky): Likewise.
4400 (get_property_and_range): New function.
4401
4402 * keyboard.c (Vdisable_point_adjustment): New variable.
4403 (Vglobal_disable_point_adjustment): New variable.
4404 (syms_of_keyboard): Declare them as Lisp variables.
4405 (command_loop_1): Check them and call adjust_point_for_property if
4406 necessary.
4407 (adjust_point_for_property): New function.
4408
4409 * keymap.c (push_key_description): Adjusted for the change of
4410 CHAR_STRING.
4411 (Ftext_char_description): Likewise.
4412
4413 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
4414 (hash_put): Adjusted for the change of the definition.
4415 (signal_after_change): Likewise.
4416 (check_point_in_composition): Extern it.
4417
4418 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
4419 Delete a code that handles an invalid too-long multibyte sequence
4420 because we are now sure that we never encounter with such a
4421 sequence.
4422 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
4423 MAX_LENGTH_OF_MULTI_BYTE_FORM.
4424 (init_obarray): Likewise.
4425 (read1): Likewise. Adjusted for the change of CHAR_STRING.
4426
4427 * print.c (printchar): Adjusted for the change of CHAR_STRING.
4428
4429 * process.c: Include composite.h.
4430 (read_process_output): Call update_compositions.
4431
4432 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
4433
4434 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
4435
4436 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
4437 character.
4438
4439 * term.c (encode_terminal_code): Delete codes for a composite
4440 character. Adjusted for the change of CHAR_STRING.
4441 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
4442 Delete codes for a composite character.
4443
4444 * textprop.c (Vtext_property_default_nonsticky): New variable
4445 (syms_of_textprop): Declare it as a Lisp variable.
4446
4447 * window.c (Frecenter): Clear all caches of compositions.
4448
4449 * xdisp.c (it_props): Add an entry for composition.
4450 (face_before_or_after_it_pos): For composition, check face of a
4451 character after the composition.
4452 (handle_composition_prop): New function.
4453 (get_next_display_element): Adjusted for the change of
4454 CHAR_STRING.
4455 (set_iterator_to_next): Handle the case that it->method ==
4456 next_element_from_composition.
4457 (next_element_from_composition): New function.
4458 (message_dolog): Adjusted for the change of CHAR_STRING.
4459 (set_message_1): Likewise.
4460 (check_point_in_composition): New function.
4461 (reconsider_clip_changes): If point moved into or out of
4462 composition, set b->clip_changed to 1 to force updating of the
4463 screen.
4464 (disp_char_vector): Delete codes for a composite character.
4465 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
4466
4467 * xfaces.c (choose_face_fontset_font): Delete codes for a
4468 composite character.
4469 (realize_x_face): Likewise. Change a place to set local variable
4470 `f' to avoid a bug of GCC 2.8.1 on Solaris.
4471
4472 * xfns.c: Include intervals.h.
4473 (syms_of_xfns): Make `display' property nonsticky by default.
4474
4475 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
4476 for find_charset_in_str.
4477
4478 * xterm.h (struct x_output): Change member font_baseline to
4479 baseline_offset.
4480
4481 * xterm.c (x_append_glyph): Setup members of struct glyph properly
4482 for composition.
4483 (x_append_composite_glyph): New function.
4484 (VCENTER_BASELINE_OFFSET): New macro.
4485 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
4486 of struct it for the composition. Cache pixel offsets in the
4487 struct composition. Delete codes for a composite character.
4488 Handle Vignore_relative_composition in composition code.
4489 (struct glyph_string): Delete member cmpcharp, add new member cmp.
4490 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
4491 (x_compute_glyph_string_overhangs): Likewise.
4492 (x_get_glyph_overhangs): Delete codes for a composite character.
4493 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
4494 (x_draw_glyph_string_background): Likewise. Delete codes for
4495 checking s->gidx for a composition.
4496 (x_draw_glyph_string_foreground): Delete code for a composite
4497 character.
4498 (x_draw_composite_glyph_string_foreground): New function.
4499 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
4500 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
4501 (struct work): Deleted.
4502 (x_fill_composite_glyph_string): Argument changed. Mostly
4503 rewritten for that.
4504 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
4505 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
4506 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
4507 (BUILD_GLYPH_STRINGS): For composition, call
4508 BUILD_COMPOSITE_GLYPH_STRING.
4509 (x_new_font): Initialize f->output_data.x->baseline_offset, not
4510 f->output_data.x->font_baseline.
4511
c3c60f13
GM
45121999-12-14 Gerd Moellmann <gerd@gnu.org>
4513
4514 * xterm.c (show_mouse_face): Don't use updated_area, use
4515 TEXT_AREA.
4516
83c8f461 45171999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
4518
4519 * minibuf.c (Fall_completions): Doc fix.
4520
83c8f461 45211999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
4522
4523 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
4524 has been changed by the Lisp code.
4525
d8eccf12
GM
45261999-12-12 Gerd Moellmann <gerd@gnu.org>
4527
4528 * xfns.c: Indentation fixes.
4529
ae56feae
SM
45301999-12-10 Stefan Monnier <monnier@cs.yale.edu>
4531
4532 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
4533
dfa1c6ae
GM
45341999-12-10 Gerd Moellmann <gerd@gnu.org>
4535
4536 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
4537 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
4538
4539 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
4540 to frame.h.
4541
ec18280f
SM
45421999-12-09 Stefan Monnier <monnier@cs.yale.edu>
4543
4544 * keyboard.c (Qratio): New symbol.
4545 (scroll_bar_parts): Add `Qratio' to it.
4546 (syms_of_keyboard): Init `Qratio'.
4547 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
4548 * xterm.c (#includes): Allow compilation with only Xaw.
4549 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
4550 (xt_action_hook): Replace XAW3D by XAW.
4551 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
4552 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
4553 Determine epsilon dynamically and don't try to be too clever.
4554 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
4555 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
4556 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
4557 scrollbar (using `ratio').
4558 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
4559 scrollbar we have so as to set it up more optimally and to fix
4560 xaw3d_arrow_scroll and xaw3d_pick_top.
4561 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
4562 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
4563 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
4564 is not ignored, using a major gross hack.
4565 (x_initialize): Init default values for xaw3d_arrow_scroll and
4566 xaw3d_pick_top.
4567
83b6d970
DL
45681999-12-09 Dave Love <fx@gnu.org>
4569
4570 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
4571
3648c842
GM
45721999-12-08 Gerd Moellmann <gerd@gnu.org>
4573
4574 * eval.c: Remove conditional compilation on `standalone'.
4575 (call_debugger): When entering the debugger while redisplaying,
4576 reset redisplaying_p, and go back to the top-level if the debugger
4577 returns.
4578
05e71564
GM
45791999-12-07 Gerd Moellmann <gerd@gnu.org>
4580
4581 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
4582 basic faces are realized before trying to use face `menu'.
4583
4584 * window.c (delete_window): Block input for the time window
4585 matrices are being changed.
4586
b46cd536
DL
45871999-12-07 Dave Love <fx@gnu.org>
4588
4589 * lread.c (Fintern_soft): Fix newlines in doc string.
4590
96acb1f7
GM
45911999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
4592
4593 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
4594 duplicate definition of ElfW.
4595 (find_section): Copied from unexsgi.c.
4596 (unexec): Use find_section. Adjust whitespace. Initialize
4597 new_data2_offset based on old_data, not sbss (this fixes a bug on
4598 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
4599 Adjust test for presence of .mdebug section to the new return
4600 value of find_section.
4601
46021999-12-07 Gerd Moellmann <gerd@gnu.org>
4603
4604 * unexelf.c: Merge changes from 20.5.
4605 (unexec): Handle .lit4 and .lit8 unconditionally.
4606
4607 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
4608 unexsgi.o again.
4609
4610 * m/iris5d.h (UNEXEC): Likewise.
4611
7dae4502
SM
46121999-12-06 Stefan Monnier <monnier@cs.yale.edu>
4613
4614 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
4615 (syms_of_editfns): Register it.
4616 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
4617 (del_range_1, del_range_2): Add a ret_string argument to
4618 request that the deleted text be returned.
4619 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 4620 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
4621 * casefiddle.c (casify_region): Update del_range_1 call.
4622 * coding.c (code_convert_region): Update del_range_2 call.
4623 * fileio.c (Finsert_file_contents): Update del_range_2 call.
4624
397e4fae
GM
46251999-12-06 Gerd Moellmann <gerd@gnu.org>
4626
4627 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
4628
3d973f71
GM
46291999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
4630
4631 * lread.c (Fintern_soft): Accept a symbol argument.
4632
740e985f
EZ
46331999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4634
4635 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
4636
4637 * insdel.c (adjust_markers_for_delete): Fix last change.
4638
2d764c78
EZ
46391999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4640
4641 Changes for automatic remapping of X colors on terminal frames:
4642
4643 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
4644 frames.
4645 (Vface_tty_color_alist): Remove.
4646 (tty_defined_color): New function.
4647 (defined_color): Rewrite to support any type of frame.
4648 (tty_color_name): New function.
4649 (face_color_supported_p, Fface_color_gray_p,
4650 Fface_color_supported_p): Support non-X frames.
4651 (load_color): Enclose the color name in quotes, in the log
4652 messages. Remove DOS-specific version of load_color.
4653 (realize_tty_face): Take the supported colors from
4654 tty-color-alist. Support translation of X colors to the closest
4655 tty color, for both MSDOS and tty frames.
4656 [MSDOS]: Don't invert face colors if they were taken from the
4657 frame colors.
4658 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
4659
4660 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
4661 Define a mostly empty surrogate.
4662 (tty_display): Declare.
4663
4664 * frame.c (make_terminal_frame) [!macintosh]: Don't use
4665 tty_display.
4666 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
4667 frames when the frame's param_alist includes 'reverse.
4668 (tty_display): Define.
4669 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
4670 output_data.x member.
4671 (Fframe_parameters): Return foreground and background color names
4672 on tty frames as well, in addition to MSDOS frames.
4673
4674 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
4675 selected_frame.
4676 (struct x_output): Remove unused members; document who uses each
4677 member.
4678 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
4679 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
4680 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
4681 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
4682 unused macro definintions.
4683
4684 * msdos.c (IT_set_frame_parameters): Don't call
4685 recompute_basic_faces, the next redisplay will, anyway.
4686 (x_current_display): Remove unused variable.
4687 Many functions: changes for Lisp_object selected_frame.
4688 (IT_set_face): If the tty_reverse_p flag is set for the face,
4689 reverse the foreground and background colors.
4690 (Fmsdos_remember_default_colors): New function.
4691 (syms_of_msdos): Defsubr it.
4692 (IT_set_frame_parameters): Use initial_screen_colors[] when
4693 creating a new frame. If the frame parameters include 'reverse,
4694 swap the foreground and background colors.
4695 (internal_terminal_init): Initialize initial_screen_colors to -1.
4696 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
4697 cus-start.el.
4698
4699 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
4700
4701 * xfns.c (x_defined_color): Rename from defined_color. All
4702 callers changed.
4703 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
4704 all callers changed.
4705 (Fxw_color_values): Renamed from Fx_color_values; all callers
4706 changed.
4707 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
4708 callers changed.
4709 (x_window_to_frame, x_any_window_to_frame,
4710 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
4711 x_top_window_to_frame): Use !FRAME_X_P instead of
4712 f->output_data.nothing.
4713 * xterm.h (x_defined_color): Rename from defined_color.
4714
4715 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
4716 f->output_data.nothing.
4717 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
4718 all callers changed.
4719 (Fxw_color_values): Renamed from Fx_color_values; all callers
4720 changed.
4721 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
4722 callers changed.
4723
4724 * dispextern.h (tty_color_name): Add prototype.
4725
4726 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
4727 f->output_data.nothing.
4728 * w32menu.c (menubar_id_to_frame): Likewise.
4729 * w32term.h (w32_output): Declare.
4730
4731 * dosfns.c (Qmsdos_color_translate): Remove.
4732 (msdos_stdcolor_name): Now returns a Lisp_Object.
4733 * dosfns.h (Qmsdos_color_translate): Remove.
4734
4735 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
4736
b3e5232e
KH
47371999-12-06 Kenichi Handa <handa@etl.go.jp>
4738
4739 * fileio.c (decide_coding_unwind): Renamed from
4740 set_auto_coding_unwind.
4741 (Finsert_file_contents): Make single unwind protect to call both
4742 Vset_auto_coding_function and Ffind_operation_coding_system.
4743
4744 * insdel.c (adjust_markers_for_delete): Make it non-static.
4745
db0e466c
SM
47461999-12-04 Stefan Monnier <monnier@cs.yale.edu>
4747
4748 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
4749 operators and handle them properly.
4750 * regex.h (RE_ALL_GREEDY): New option.
4751 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
4752 sorting would put it.
4753 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
4754 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
4755
22afa6e8
DL
47561999-12-04 Dave Love <d.love@dl.ac.uk>
4757
4758 * m/arm.h: New file.
4759
40afb967
DL
47601999-12-03 Dave Love <fx@gnu.org>
4761
4762 * editfns.c (Fmessage_or_box): Use use_dialog_box.
4763
ddf8eff5
GM
47641999-12-02 Gerd Moellmann <gerd@gnu.org>
4765
4766 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
4767 for building with Motif.
4768
4769 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
4770 unexelf.o.
4771
4772 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
4773
fa09a82d
DL
47741999-12-01 Dave Love <fx@gnu.org>
4775
4776 * emacs.c (main): Set LANG=C iff AX3_2 defined.
4777
ddf8eff5
GM
47781999-11-28 Gerd Moellmann <gerd@gnu.org>
4779
4780 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
4781 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
4782 macros.
4783
4784 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
4785
fa09a82d
DL
47861999-11-28 eliz <eliz@dlpx1>
4787
4788 * emacs.c (synchronize_locale): Avoid compiler warnings about
4789 pointer type mismatch.
4790
f9632fc8
GM
47911999-11-28 Gerd Moellmann <gerd@gnu.org>
4792
717d0121
GM
4793 * window.c (Fwindow_end): Don't call temp_set_pt_both with
4794 out of range position.
4795
f9632fc8
GM
4796 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
4797 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
4798
59c65f1e
EZ
47991999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
4800
613a8346
EZ
4801 * charset.c (Fmake_char_internal): Print the charset ID when
4802 signalling an error.
4803
59c65f1e
EZ
4804 * emacs.c (synchronize_locale): Avoid compiler warnings about
4805 pointer type mismatch.
4806
83c8f461 48071999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
4808
4809 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
4810
18df9369
GM
48111999-11-26 Gerd Moellmann <gerd@gnu.org>
4812
65a3ccf7
GM
4813 * puresize.h (BASE_PURESIZE): Increase to 550000.
4814
b3b98592
GM
4815 * textprop.c (set_text_properties): New function. Like
4816 Fset_text_properties, but with additional parameter
4817 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
4818 changes.
4819 (Fset_text_properties): Use it.
4820
4821 * insdel.c (insert_1_both): Call set_text_properties with last
4822 parameter nil so that no after changes will be signaled.
4823
4824 * lisp.h: Add prototype for set_text_properties.
4825
18df9369
GM
4826 * xfaces.c (set_lface_from_font_name): Fix previous change.
4827 (recompute_basic_faces): Change assert to abort.
4828
71a8e74b
DL
48291999-11-25 Dave Love <fx@gnu.org>
4830
4831 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
4832 (Fmember, Fdelq, Fdelete): Inline car.
4833 (Fy_or_n_p): Doc fix.
4834
bc6a5782
GM
48351999-11-25 Gerd Moellmann <gerd@gnu.org>
4836
3221576b 4837 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 4838 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
4839 is not set, try to use a reasonable default.
4840
bc6a5782
GM
4841 * dispnew.c (direct_output_for_insert): Set glyph row's
4842 displays_text_p flag. Correct window's window_end_vpos if
4843 necessary.
4844
0c8559bb
PE
48451999-11-25 Paul Eggert <eggert@twinsun.com>
4846
4847 * emacs.c (fixup_locale): Don't bother to record initial locale.
4848 (synchronize_locale): If the desired locale is nil,
4849 treat it as if it were the empty string,
4850 so that we set the locale from the environment.
4851
35737351
KH
48521999-11-25 Kenichi Handa <handa@etl.go.jp>
4853
4854 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
4855 of the current buffer via Fset.
4856
5562b47f
DL
48571999-11-24 Dave Love <fx@gnu.org>
4858
5562b47f
DL
4859 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
4860
4861 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
4862
00da0e4a
GM
48631999-11-24 Gerd Moellmann <gerd@gnu.org>
4864
4865 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
4866
4867 * emacs.c (PVEC_FLAG): New variable.
4868
b1775dc1
GM
48691999-11-23 Gerd Moellmann <gerd@gnu.org>
4870
4871 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
4872 that fails on IBM PowerPC, AIX 4.2.
4873
08de6200
EZ
48741999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
4875
4876 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
4877 string of mode-line-format. Remove the obsolete %t.
4878
02fda8ff
GM
48791999-11-22 Gerd Moellmann <gerd@gnu.org>
4880
f2fa858f
GM
4881 * dispnew.c (direct_output_for_insert): Increment glyph positions
4882 for glyphs from buffer text only.
4883
02fda8ff
GM
4884 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
4885 (gdb_data_seg_bits): New variables.
4886
4887 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
4888 work on systems not allowing enumerators > INT_MAX, and it
4889 won't work if EMACS_INT is long long.
4890
1b0d24e7
PE
48911999-11-22 Paul Eggert <eggert@twinsun.com>
4892
4893 Port to SunOS 4.1.x again. Help out with Alpha port.
4894 Rename messages-locale to system-messages-locale,
4895 and likewise for time-locale.
4896
4897 * callproc.c (strerror): Remove decl.
4898 * fileio.c (strerror): Likewise.
4899 * process.c (strerror): Likewise.
4900 * emacs.c (strerror): Likewise.
4901 (Vsystem_messages_locale): Renamed from Vmessages_locale.
4902 All uses changed.
4903 (Vprevious_system_messages_locale): Likewise, from
4904 Vprevious_messages_locale.
4905 (Vsystem_time_locale): Likewise, from Vtime_locale.
4906 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
4907 (ABORT_RETURN_TYPE): New macro.
4908 (abort): Return type is now ABORT_RETURN_TYPE.
4909 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
4910 defined.
4911 (syms_of_emacs): messages-locale -> system-messages-locale,
4912 previous-messages-locale -> previous-system-messages-locale,
4913 time-locale -> system-time-locale,
4914 previous-time-locale -> previous-system-time-locale.
4915
4916 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
4917 (const): Do not define; that's config.h's job.
4918 (<limits.h>): Include if HAVE_LIMITS_H is defined.
4919 (CHAR_BIT): Move test for definedness outside of limits.h condition.
4920 (<stddef.h>): Include if STDC_HEADERS is defined.
4921 (FREE_RETURN_TYPE): New macro.
4922 (free): Return type is now FREE_RETURN_TYPE.
4923
4924 * lisp.h (synchronize_system_time_locale): Renamed from
4925 synchronize_time_locale. All uses changed.
4926 (synchronize_system_messages_locale): Likewise, from
4927 synchronize_messages_locale.
4928
4929 * m/alpha.h (malloc, realloc, calloc): Remove decls;
4930 stdlib.h now does this.
4931
4932 * process.c (sys_siglist): Remove.
4933
4934 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
4935 New macros.
4936
4937 * syntax.c (scan_sexps_forward): Use abort, not assert.
4938
4939 * sysdep.c (my_sys_siglist): New var.
4940 (sys_siglist): New macro. Remove old initialized vars of same name.
4941 (init_signals): Initialize sys_siglist.
4942
4943 * xfns.c (abort): Remove decl; stdlib.h now does this.
4944
0dcd5b54
DL
49451999-11-18 Dave Love <fx@gnu.org>
4946
946173ad
DL
4947 * filelock.c: Add forward declaration for get_boot_time_1.
4948
0dcd5b54
DL
4949 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
4950
71447e8f
GM
49511999-11-18 Gerd Moellmann <gerd@gnu.org>
4952
4953 * buffer.h (struct buffer_text): Add comment about moving
4954 buffer text if REL_ALLOC is defined.
4955
eeedff63
KH
49561999-11-18 Kenichi Handa <handa@etl.go.jp>
4957
4958 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
4959
4960 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
4961 memory for push_key_description.
4962
4963 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
4964 allocate memory for push_key_description.
4965 (describe_buffer_bindings): Likewise.
4966
5d7e4a2c
GM
49671999-11-17 Gerd Moellmann <gerd@gnu.org>
4968
4969 * xfns.c (Fx_show_busy_cursor): Doc-fix.
4970 (Fx_hide_busy_cursor): Ditto.
4971
49721999-11-17 Marco Walther <walther@siemens-pyramid.com>
4973
4974 * unexsni.c (unexec): Handle .rel.dyn section.
4975
b5b41e02
DL
49761999-11-16 Dave Love <fx@gnu.org>
4977
4978 * doc.c (Fdocumentation): Remove gcpro here too.
4979
e35b6123
GM
49801999-11-16 Gerd Moellmann <gerd@gnu.org>
4981
4982 * keyboard.c (command_loop_1): Remove no_redisplay.
4983
83c8f461 49841999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
4985
4986 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
4987 in noninteractive.
4988
b05d3bee
GM
49891999-11-14 Gerd Moellmann <gerd@gnu.org>
4990
5bcfeb49
GM
4991 * xdisp.c (ensure_echo_area_buffers): New.
4992 (with_echo_area_buffer): Use it.
4993 (setup_echo_area_for_printing): Ditto.
4994
b05d3bee
GM
4995 * buffer.c (indicate-empty-lines): Doc-fix.
4996
9b2e6e4c
GM
49971999-11-12 Gerd Moellmann <gerd@gnu.org>
4998
e7f90eab
GM
4999 * term.c (term_init): If "op" isn't available, don't support color
5000 because we can't switch back to the default foreground and
5001 background.
5002
9b2e6e4c
GM
5003 * doc.c (Fdocumentation_property): Remove GCPRO because
5004 Fsubstitute_command_keys gcpro's the string.
5005
1bf21027
KH
50061999-11-12 Kenichi Handa <handa@etl.go.jp>
5007
5008 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
5009
3bc6df53
GM
50101999-11-11 Gerd Moellmann <gerd@gnu.org>
5011
5012 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
5013 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
5014 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
5015
35a5514b
GM
50161999-11-10 Gerd Moellmann <gerd@gnu.org>
5017
5018 * xfns.c (QCuser_data): Removed.
5019 (syms_of_xfns): Initialization of QCuser_data removed.
5020 (parse_image_spec): Don't handle :user-data specially. Allow
5021 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
5022 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
5023 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
5024 parse_image_spec accordingly.
5025
83c8f461 50261999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5027
5028 * cmds.c (Fbeginning_of_line): Doc fix.
5029 (Fend_of_line): Doc fix.
5030
5031 * editfns.c (Fline_beginning_position): If N is not 1,
5032 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
5033
5034 * syntax.c (Fforward_word): Handle fields even if would have hit
5035 an edge of the buffer. Return nil if affected by fields.
5036
83c8f461 50371999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5038
5039 * editfns.c (preceding_pos): Function deleted.
5040 (text_property_stickiness): Decrement POS directly.
5041 Fix a confusion that used PT instead of POS.
5042
5043 * editfns.c (find_field): Properly handle the case
5044 of a field boundary where `field' inherits from neither side.
5045
5046 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
5047 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
5048
fa9aabf6
GM
50491999-11-08 Gerd Moellmann <gerd@gnu.org>
5050
5051 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
5052 BEFORE_POTENTIAL_GC before DISCARD.
5053
4015b3c0
GM
50541999-11-07 Gerd Moellmann <gerd@gnu.org>
5055
033a5fa3
GM
5056 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
5057
5058 * lisp.h: Add prototype for unmark_byte_stack.
5059
5060 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
5061 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
5062 XUNMARK.
5063
55b064bd
GM
5064 * xdisp.c (resize_mini_window): Fix computation of needed
5065 mini-window height.
5066
5067 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
5068 compilation on USE_TEXT_PROPERTIES.
01e9b9df 5069
4015b3c0 5070 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 5071 locally there. Rearrange case statements so that those most
4015b3c0
GM
5072 frequently executed come first. Avoid goto's in frequently
5073 executed cases.
5074
fe512f27
GM
50751999-11-05 Gerd Moellmann <gerd@gnu.org>
5076
dd59e217
GM
5077 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
5078 AFTER_POTENTIAL_GC around internal_catch.
5079
bcf28080
GM
5080 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
5081 relocate_byte_pcs.
5082 (init_alloc_once, init_alloc): Set byte_stack_list to null.
5083
5084 * eval.c (struct catchtag): Add member byte_stack.
5085 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 5086 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
5087 catchtag.
5088 (unwind_to_catch): Restore byte_stack_list from catchtag.
5089
5090 * lisp.h: Add prototypes for new functions in bytecode.c.
5091 Add extern declaration for byte_stack_list.
5092
5093 * bytecode.c (struct byte_stack): New.
5094 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
5095 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
5096 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
5097 (HANDLE_RELOCATION): Removed.
5098 (Fbyte_code): Use byte_stack structures.
5099
4d59c34c
GM
5100 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
5101
fe512f27
GM
5102 * buffer.c (syms_of_buffer): Extend documentation of
5103 mode-line-format.
5104
60b64cd6
GM
51051999-11-04 Gerd Moellmann <gerd@gnu.org>
5106
5107 * editfns.c (Fdelete_field): Renamed from Ferase_field.
5108
5109 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
5110 Ferase_field instead of Fdelete_field.
5111
b51b619b
GM
51121999-11-03 Gerd Moellmann <gerd@gnu.org>
5113
5114 * dispnew.c (Finternal_show_cursor): Change it to set the
5115 cursor on/off, not toggle its state.
5116 (Finternal_show_cursor_p): New.
5117 (syms_of_display): Defsubr Sinternal_show_cursor_p.
5118
5865af0d
DL
51191999-11-03 Dave Love <fx@gnu.org>
5120
5121 * charset.c (split_non_ascii_string): Define return value.
5122
82a700f3
GM
51231999-11-03 Gerd Moellmann <gerd@gnu.org>
5124
edfef199
GM
5125 * minibuf.c (string_to_object): New.
5126 (read_minibuf_noninteractive): New.
5127 (read_minibuf): Call read_minibuf_noninteractive if
5128 noninteractive. Use string_to_object.
5129
82a700f3
GM
5130 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
5131
b5540f0d
DL
51321999-11-02 Dave Love <fx@gnu.org>
5133
e69dcd60
DL
5134 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
5135
827a1788
DL
5136 * process.c: Define _GNU_SOURCE before config.h to get strsignal
5137 declared with glibc2.
b5540f0d 5138
a69a6e61
GM
51391999-11-02 Gerd Moellmann <gerd@gnu.org>
5140
5141 * lisp.h (QUIT): Give it statement form.
5142
87e21fbd
DL
51431999-11-02 Dave Love <fx@gnu.org>
5144
5145 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
5146
1b335865
GM
51471999-11-02 Gerd Moellmann <gerd@gnu.org>
5148
9fb5e03d
GM
5149 * xfns.c (QCuser_data): New.
5150 (syms_of_xfns): Initialize QCuser_data.
5151 (parse_image_spec): Ignore :user-data DATA properties.
5152
1b335865
GM
5153 * xdisp.c (display_line): Set charpos of first glyph in blank
5154 lines not corresponding to any text to -1, even if no glyphs are
5155 filled in in that line.
5156
e76f1c44
GM
51571999-11-01 Gerd Moellmann <gerd@gnu.org>
5158
36fcd3d9
GM
5159 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
5160 png_get_sRGB in #ifdef.
5161
111259b4
GM
5162 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
5163 (syms_of_display): Use the new name.
5164
dd5c96e8
GM
5165 * textprop.c (verify_interval_modification): Signal text-read-only
5166 instead of calling error.
5167
db8878fb
GM
5168 * data.c (Qtext_read_only): New built-in error.
5169 (syms_of_data): Initialize it.
5170
5171 * lisp.h: Add extern declaration for Qtext_read_only.
5172
e76f1c44
GM
5173 * syntax.c: Remove whitespace after open or in front of closing
5174 parentheses.
5175
83c8f461 51761999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5177
5178 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
5179
7843e09c
GM
51801999-10-31 Gerd Moellmann <gerd@gnu.org>
5181
575ed805
GM
5182 * xdisp.c (resize_mini_window): Compute needed height differently.
5183
7843e09c
GM
5184 * fns.c (Flength): Unroll loop over lists.
5185
5186 * xdisp.c (append_space): Return non-zero if space was appended.
5187 (display_line): Set charpos of first glyph to -1 only if that
5188 glyph is the space added by append_glyph.
5189
83c8f461 51901999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5191
5192 * print.c (strout): Consider `noninteractive' and use stdout
5193 only when PRINTCHARFUN is t.
5194
5195 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
5196 (gcpro_level): Declare it extern.
5197 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
5198 Alternate definitions that set `level' and increment `gcpro_level'.
5199 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
5200
5201 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
5202 (init_eval) [DEBUG_GCPRO]: Initialize it.
5203 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
5204 from remaining gcprolist.
5205
3636f7a3
KH
52061999-10-29 Kenichi Handa <handa@etl.go.jp>
5207
5208 * coding.c (code_convert_region): Update `dst' correctly.
5209
a2ad7096
GM
52101999-10-28 Gerd Moellmann <gerd@gnu.org>
5211
5212 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
5213 (Frassoc): Rewritten.
5214
1e3196e8
GM
52151999-10-27 Noah Friedman <friedman@splode.com>
5216
5217 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
5218 Define PTY_NAME_SPRINTF.
5219 Redefine PTY_TTY_NAME_SPRINTF.
5220 * config.in: Add undef for HAVE_DEV_PTMX.
5221
83c8f461 52221999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5223
5224 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
5225 as arg to DEBUG_POP and DEBUG_PRINT.
5226
83c8f461 52271999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
5228
5229 * data.c (Qad_activate_internal): Renamed from Qad_activate.
5230 (Ffset): Call Qad_activate_internal.
5231 (syms_of_data): Initialize Qad_activate_internal.
5232
26922151
GM
52331999-10-27 Gerd Moellmann <gerd@gnu.org>
5234
5235 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
5236 Vterminal_frame is selected and Vwindow_system is non-nil.
5237
67a5596f
GM
52381999-10-26 Gerd Moellmann <gerd@gnu.org>
5239
2bea706b
GM
5240 * xdisp.c (echo_area_display): Put previous change in #if 0.
5241
67a5596f
GM
5242 * emacs.c (standard_args): Add `file' as synonym for `visit',
5243 `execute' as synonym for `eval'.
5244 (main): Add new options to usage message.
5245
81dc5de5
GM
52461999-10-25 Gerd Moellmann <gerd@gnu.org>
5247
5248 * data.c (Qhash_table): New.
5249 (Ftype_of): Return it for hash tables.
5250 (syms_of_data): Initialize Qhash_table.
5251
83c8f461 52521999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
5253
5254 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
5255
66e4690f 52561999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 5257
7539e11f
KR
5258 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
5259 lisp.h.
5260
5261 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
5262 Fbuffer_local_variables, Fother_buffer, record_buffer,
5263 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
5264 swap_out_buffer_local_variables, overlays_at, overlays_in,
5265 overlay_touches_p, overlay_strings, recenter_overlay_lists,
5266 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
5267 Foverlay_put, report_overlay_modification, evaporate_overlays):
5268 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
5269 references.
5270 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
5271 swap_in_symval_forwarding, set_internal, default_value,
5272 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
5273 Fmake_variable_frame_local, Flocal_variable_p,
5274 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
5275 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
5276 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
5277 * emacs.c (main): Likewise.
5278 * fontset.c (fs_load_font, fs_register_fontset,
5279 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
5280 Fnew_fontset, Fset_fontset_font): Likewise.
5281 * frame.c (do_switch_frame, next_frame, prev_frame,
5282 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
5283 Likewise.
5284 * keyboard.c (read_char, help_char_p, event_to_kboard,
5285 kbd_buffer_get_event, timer_start_idle, timer_check,
5286 make_lispy_event, apply_modifiers, reorder_modifiers,
5287 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
5288 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
5289 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
5290 Fcommand_execute, Fexecute_extended_command): Likewise.
5291 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
5292 Fall_completions): Likewise.
5293 * window.c (Fset_window_margins): Likewise.
5294
5295 * callint.c (quotify_args): Don't explicitly use struct
5296 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
5297
3a7093d8
KR
5298 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
5299 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
5300 if __ELF__ is defined.
5301
2a3d7146
GM
53021999-10-24 Gerd Moellmann <gerd@gnu.org>
5303
5304 * window.c (Fnext_window): Add a QUIT in the loop.
5305
8ac52782
GM
53061999-10-23 Gerd Moellmann <gerd@gnu.org>
5307
5308 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
5309 New targets.
5310
05f0d15a
DL
53111999-10-22 Dave Love <fx@gnu.org>
5312
5313 * emacs.c (main): Enable profiling conditional on __linux also.
5314
882fb0e6
GM
53151999-10-20 Gerd Moellmann <gerd@gnu.org>
5316
5317 * xrdb.c (x_load_resources): Set default resources for resource
5318 classes instead of for the specific Emacs.
5319
b5f5bc31
GM
53201999-10-19 Gerd Moellmann <gerd@gnu.org>
5321
66f4dd69
GM
5322 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
5323 defines it that way.
5324
b5f5bc31
GM
5325 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
5326 if selected_frame is equal to Vterminal_frame.
5327
68c45bf0
PE
53281999-10-19 Paul Eggert <eggert@twinsun.com>
5329
5330 Add support for large files, 64-bit Solaris, system locale codings.
5331
5332 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
5333 when dumping, so that the dumped Emacs doesn't have stray locale info.
5334 (dired.o): Depend on systime.h.
5335 (editfns.o): Depend on coding.h.
5336
5337 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
5338 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
5339 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
5340 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
5341 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
5342 Include <config.h> before any system include files.
5343
5344 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
5345 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
5346 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
5347 xmenu.c, xterm.c:
5348 Do not include <stdlib.h>, as <config.h> does this now.
5349
5350 * callproc.c (Fcall_process):
5351 Synchronize messages locale before invoking strerror.
5352 Decode resulting string with locale-coding-system.
5353
5354 * coding.c (Vlocale_coding_system): New var.
5355 (syms_of_coding): Adjust to above change.
5356 (emacs_strerror): New function.
5357
5358 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
5359
5360 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
5361 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
5362 HAVE_STRSIGNAL): New macros.
5363 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
5364 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
5365
5366 * dired.c: Include "systime.h".
5367 (Ffile_attributes): Do not cast s.st_size to int; this loses
5368 information if int is 32 bits but st_size and EMACS_INT are larger.
5369 Treat large device numbers like large inode numbers.
5370
5371 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
5372
5373 * editfns.c: Include coding.h.
5374 (emacs_strftime): Remove decl.
5375 (emacs_strftimeu): New decl.
5376 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
5377 Use emacs_strftimeu instead of emacs_strftime.
5378 (Fformat_time_string): Convert format string using
5379 Vlocale_coding_system, and convert result back. Synchronize time
5380 locale before invoking lower level function. Invoke
5381 emacs_memftimeu, passing ut, instead of emacs_memftime.
5382
5383 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
5384 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
5385 Vprevious_time_locale): New variables.
5386 (main): Invoke setlocale early, so that initial error messages are
5387 localized properly. But skip locale-setting if LC_ALL is "C".
5388 Fix up locale when it's safe to do so.
5389 (fixup_locale): Moved here from xterm.c.
5390 (synchronize_locale, synchronize_time_locale,
5391 synchronize_messages_locale): New functions.
5392 (syms_of_emacs): Accommodate above changes.
5393
5394 * fileio.c (report_file_error): Convert strerror output according
5395 to Vlocale_coding_system.
5396 (Finsert_file_contents): Check for arithmetic overflow in
5397 computations that depend on file size. Report IO errors
5398 with emacs_strerror, not strerror.
5399
5400 * fns.c (Fgethash): Declare dflt parameter.
5401
5402 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
5403 is defined; that's config.h's job.
5404
5405 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
5406 default these values to long, BITS_PER_LONG, and unsigned long.
5407 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
5408 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
5409 (code_convert_string_norecord, fixup_locale,
5410 synchronize_messages_locale, synchronize_time_locale,
5411 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
5412 All Emacs callers of open, close, read, write changed to use
5413 emacs_open, emacs_close, emacs_read, emacs_write.
5414
5415 * lread.c (file_offset, file_tell): New macros. All uses of ftell
5416 changed to file_tell.
5417 (saved_doc_string_position, prev_saved_doc_string_position): Now
5418 of type file_offset.
5419 (init_lread): Do not fix locale here; fixup_locale now does this.
5420
5421 * m/amdahl.h, s/usg5-4.h:
5422 (NSIG): Remove.
5423 (NSIG_MINIMUM): New macro.
5424
5425 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
5426 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
5427 s/umips.h, s/usg5-4.h:
5428 (SIGIO): Do not undef.
5429 (BROKEN_SIGIO): New macro.
5430
5431 * m/ustation.h:
5432 (SIGTSTP): Do not undef.
5433 (BROKEN_SIGTSTP): New macro.
5434
5435 * s/gnu-linux.h:
5436 (SIGPOLL, SIGURG): Do not undef.
5437 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
5438
5439 * s/ptx4.h:
5440 (SIGINFO): Do not undef.
5441 (BROKEN_SIGINFO): New macros.
5442
5443 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
5444
5445 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
5446 some Emacs-related changes merged.
5447
5448 * print.c (float_to_string): Prepend "-" to representation of a
5449 NaN if the NaN is negative.
5450
5451 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
5452 (wait_reading_process_input): Use emacs_strerror, not strerror.
5453
5454 * process.c (status_message, sigchld_handler): Synchronize locale,
5455 then use strsignal istead of sys_siglist.
5456 * w32proc.c (sys_wait): Likewise.
5457
5458 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
5459 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
5460 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
5461 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
5462 (open, close, read, write, INTERRUPTIBLE_OPEN,
5463 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
5464
5465 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
5466
5467 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
5468 sys_open, open): Remove.
5469 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
5470 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
5471 macros are no longer used.
5472 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
5473 (emacs_close): Renamed from sys_close.
5474 (emacs_read): Renamed from sys_read.
5475 (emacs_write): Renamed from sys_write.
5476 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
5477 (dup2): Do not print error on failure; the real dup2 doesn't.
5478 (strsignal): New function, defined if !HAVE_STRSIGNAL.
5479
5480 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
5481 is defined.
5482 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
5483 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
5484 (strsignal): Declare if !HAVE_STRSIGNAL.
5485
5486 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
5487 (ElfW): Define in terms of ElfExpandBitsW.
5488
5489 * w32proc.c (sys_siglist): Remove decl.
5490
5491 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
5492 with ANSI C.
5493 (display_string): Declare face_string_pos arg.
5494
5495 * xfns.c (Fx_show_tip): Declare timeout param.
5496
5497 * xterm.c: No need to include locale.h.
5498 (x_alloc_lighter_color, x_setup_relief_color):
5499 Pass arg as double, not float, for compatibility with ANSI C.
5500 (fixup_locale): Move to emacs.c.
5501 (x_term_init): Do not setlocale or fixup locale; the main program
5502 does this now.
5503
2f0b74ea
DL
55041999-10-18 Dave Love <fx@gnu.org>
5505
5506 * doc.c (Fdocumentation_property): Gcpro `tem'.
5507
471aa4a0
KH
55081999-10-18 Kenichi Handa <handa@etl.go.jp>
5509
5510 * lread.c (Fload): Calculate bytes of filename correctly.
5511 (openp): Likewise.
5512
aca2020b
KH
55131999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
5514
5515 * print.c (print_preprocess): In case print-circle is nil,
5516 add OBJ to Vprint_number_table only when OBJ is a symbol.
5517
1f5fe392 55181999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
5519
5520 * coding.c (code_convert_string): Add record_unwind_protect to
5521 assure setting inhibit_pre_post_conversion back to zero. Take
5522 care of the multibyteness of the working buffer.
5523
5524 * coding.c (inhibit_pre_post_conversion): New variable.
5525 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
5526 ignore post-read-conversion and pre-write-conversion property of
5527 the coding system.
5528 (code_convert_region_unwind): New function.
5529 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
5530 running pre-write-conversion and post-read-conversion.
5531 (code_convert_string): Likewise.
5532
cd876a91
GM
55331999-10-17 Miles Bader <miles@gnu.org>
5534
5535 * editfns.c: Doc fix.
5536
55371999-10-17 Miles Bader <miles@gnu.org>
5538
5539 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
5540 argument preconditions of find_before_next_newline in the case
5541 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
5542 was indeed at the edge.
5543
55441999-10-17 Miles Bader <miles@gnu.org>
5545
5546 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
5547 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
5548
5549 * editfns.c (text_property_eq, text_property_stickiness): Don't
5550 use initializers for auto variables of type Lisp_Object.
5551 (find_field): Likewise. Use braces around nested ifs.
5552 (Fline_end_position): Store the raw eol in a variable, so that the
5553 final expression doesn't look so ugly.
5554 (Fconstrain_to_field): Doc fix.
5555 (preceding_pos): Renamed from `preceeding_pos'.
5556 (text_property_stickiness, find_field): Call preceding_pos,
5557 not preceeding_pos.
5558
55591999-10-17 Miles Bader <miles@gnu.org>
5560
5561 * editfns.c (Ffield_string_no_properties): New function.
5562 (text_property_stickiness, preceeding_pos): New functions.
5563 (Ffield_string): Remove PROPS parameter.
5564 (find_field): Add MERGE_AT_BOUNDARY parameter.
5565 Rewrite to use stickiness of `field' property to resolve
5566 ambiguous cases.
5567 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
5568 (Fconstrain_to_field): Likewise.
5569 (syms_of_editfns): Init Sfield_string_no_properties.
5570 (Ffield_string, Ferase_field, Ffield_end):
5571 Supply new MERGE_AT_BOUNDARY argument to find_field.
5572 (Fline_beginning_position, Fline_end_position): Supply new
5573 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
5574 Pass a value of Qt for the ONLY_IN_LINE argument to
5575 Fconstrain_to_field (only matters if N != 1).
5576 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
5577 to Fconstrain_to_field.
5578
5579 * minibuf.c (Fminibuffer_complete_word): Use
5580 Ffield_beginning to find the prompt end.
5581
55821999-10-17 Miles Bader <miles@gnu.org>
5583
5584 * editfns.c (Fconstrain_to_field): Add get/set-current-point
5585 behavior when NEW_POS is nil.
5586 (find_field): Use XSETFASTINT instead of make_number.
5587 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
5588 input string by seeing where the field begins, instead of
5589 looking at text-properties.
5590
55911999-10-17 Miles Bader <miles@gnu.org>
5592
5593 * editfns.c (Qfield): New variable.
5594 (find_field, Ferase_field, Ffield_string,
5595 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
5596 (Fline_beginning_position, Fline_end_position): Constrain to any field.
5597 (make_buffer_string_both): Remove minibuffer-prompt hack.
5598 (syms_of_editfns): Initialize Qfield, and subr entries for
5599 field functions above.
5600 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
5601 minibuf_save_list.
5602 Don't initialize minibuffer prompt length.
5603 Wrap prompt text-properties around the entire prompt.
5604 Add 'prompt text-property to prompt.
5605 Get final value with Ffield_string instead of make_buffer_string.
5606 (read_minibuf_unwind): Don't restore minibuffer prompt length from
5607 minibuf_save_list.
5608 (do_completion): Get minibuffer input with Ffield_string
5609 instead of Fbuffer_string.
5610 Erase minibuffer input with Ferase_field instead of erase_buffer.
5611 (Fminibuffer_complete_and_exit): Likewise.
5612 Test whether buffer is empty by looking for the 'prompt text
5613 property at the end.
5614 Set prompt length by looking for the end of the prompt text property,
5615 and save prompt length for later use (since there is no longer a
5616 buffer variable to get it from).
5617 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
5618 (syms_of_minibuf): Remove initializations of
5619 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
5620 * buffer.h (struct buffer): Remove prompt_end_charpos field.
5621 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
5622 Don't initialize prompt_end_charpos field.
5623 * syntax.c (Fforward_word): Likewise.
5624 Constrain to any field.
5625
3f6f7508
GM
56261999-10-16 Gerd Moellmann <gerd@gnu.org>
5627
5628 * window.c (enum save_restore_action): New.
5629 (save_restore_orig_size): Change parameter list. Add
5630 functionality to check for valid orig_top and orig_height members
5631 in a window tree.
5632 (grow_mini_window): Call save_restore_orig_size with new parameter
5633 list.
5634 (shrink_mini_window): Restore old window sizes only if old
5635 size information is valid in all windows in a window tree.
5636
06482119
GM
56371999-10-15 Gerd Moellmann <gerd@gnu.org>
5638
2710454d
GM
5639 * xmenu.c (set_frame_menubar): Don't call
5640 x_set_menu_resources_from_menu_face here.
5641 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
5642
06482119
GM
5643 * xfns.c (gif_load): Fix handling of interlaced GIFs.
5644
17fa2837
DL
56451999-10-14 Dave Love <fx@gnu.org>
5646
5647 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
5648
45f93416
GM
56491999-10-14 Gerd Moellmann <gerd@gnu.org>
5650
5651 * process.c (Fopen_network_stream): Don't loop if gethostbyname
5652 fails and h_errno is TRY_AGAIN.
5653
c765b723
DL
56541999-10-13 Dave Love <fx@gnu.org>
5655
5656 * filelock.c (lock_file): Move gcpro of `fn'.
5657
dace7f4e
GM
56581999-10-10 Gerd Moellmann <gerd@gnu.org>
5659
5660 * keyboard.c (auto-save-interval): Fix documentation.
5661
83c8f461 56621999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
5663
5664 * print.c (print): When removing objects from Vprint_number_table,
5665 only scan the newly added objects.
5666 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
5667 unconditionally force it to stay in the table.
5668
85177c86
GM
56691999-10-09 Gerd Moellmann <gerd@gnu.org>
5670
5671 * xfns.c (prepare_image_for_display): Don't try to load image if
5672 loading it failed before.
5673 (lookup_image, prepare_image_for_display): Remember if loading the
5674 image failed.
5675 (xpm_load): Add missing UNBLOCK_INPUT.
5676
5677 * dispextern.h (struct image): New member load_failed_p.
5678
11e4de5d
SM
56791999-10-08 Stefan Monnier <monnier@cs.yale.edu>
5680
f28eba7b 5681 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
5682 in the docstring.
5683
f1da8f06
GM
56841999-10-08 Gerd Moellmann <gerd@gnu.org>
5685
5686 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
5687 Don't call XSetInputFocus because that can generate additional
5688 FocusIn events.
5689
c37bbd4f
GM
56901999-10-07 Jeffrey C Honig <jch@bsdi.com>
5691
5692 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
5693
83c8f461 56941999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
5695
5696 * process.c (wait_reading_process_input): When trying to suck
5697 input from one process, for accept-process-output,
5698 exit that loop if we get EAGAIN or EWOULDBLOCK.
5699
577d9e2f
GM
57001999-10-07 Gerd Moellmann <gerd@gnu.org>
5701
5702 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
5703 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
5704 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
5705 Fpixmap_spec_p and Qpixmap_spec_p.
5706 (load_face_colors, check_lface_attrs,
5707 merge_face_vector_with_property,
5708 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
5709 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
5710 Fbitmap_spec_p.
5711
f5737ad2
GM
57121999-10-07 Gerd Moellmann <gerd@gnu.org>
5713
5714 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
5715 MODE_LINE_FACE_ID.
5716
5717 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
5718 (struct x_resources) [USE_X_TOOLKIT]: New.
5719 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
5720 [USE_MOTIF]: New.
5721 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
5722 [USE_LUCID]: New.
5723 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
5724 (Qmenu): New.
5725 (syms_of_xfaces): Initialize Qmenu.
5726 (realize_basic_faces): Realize face `menu'.
5727 (resolve_face_name): New.
5728 (lface_from_face_name): Use it.
5729 (Finternal_set_lisp_face_attribute): Ditto.
5730 (Fpixmap_spec_p): Rewritten. Extend doc string.
5731
5732 * xmenu.c (set_frame_menubar, xmenu_show): Call
5733 x_set_menu_resources_from_menu_face.
5734
5735 * dispextern.h (enum face_id): Add MENU_FACE_ID.
5736 (toplevel): Include X11/Intrinsic.h.
5737
6a1aa823
DL
57381999-10-03 Ken'ichi Handa <handa@gnu.org>
5739
5740 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
5741 correctly.
5742
26901792
DL
57431999-09-30 Kenichi Handa <handa@etl.go.jp>
5744
5745 * category.c (modify_lower_category_set): Set default value of
5746 TABLE correctly.
5747
5748 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
5749 size correctly.
5750
57511999-09-29 Gerd Moellmann <gerd@gnu.org>
5752
5753 * editfns.c (Fpropertize): Renamed from Fproperties.
5754
57551999-09-29 Gerd Moellmann <gerd@gnu.org>
5756
5757 * xdisp.c (resize_mini_window): Do nothing if frame is an X
5758 frame that hasn't been initialized yet.
5759
83c8f461 57601999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
5761
5762 * keymap.c (Fsingle_key_description): Make tem big enough.
5763 (describe_buffer_bindings): Make buf big enough.
5764
83c8f461 57651999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
5766
5767 * intervals.c (get_local_map): Use indirect_function,
5768 not Findirect_function.
5769
26901792
DL
57701999-09-27 Dave Love <fx@gnu.org>
5771
5772 * cm.h: Remove unneeded declaration of ospeed.
5773
57741999-09-26 Gerd Moellmann <gerd@gnu.org>
5775
5776 * lisp.h (toplevel): Add prototype for
5777 next_single_char_property_change.
5778
5779 * textprop.c (next_single_char_property_change): New.
5780
5781 * xdisp.c (display_prop_end, invisible_text_between_p): Use
5782 next_single_char_property_change.
5783
57841999-09-25 Gerd Moellmann <gerd@gnu.org>
5785
5786 * editfns.c (Fproperties): New.
5787 (syms_of_editfns): Defsubr it.
5788
5789 * xfns.c (lookup_image): Set image's timestamp because it's
5790 used when we look it up.
5791
57921999-09-23 Gerd Moellmann <gerd@gnu.org>
5793
5794 * window.c (enlarge_window): Add window parameter instead of using
5795 selected_window.
5796 (Fdisplay_buffer): Call it with window parameter instead of
5797 setting selected_window.
5798 (Fenlarge_window, Fshrink_window): Ditto.
5799 (shrink_mini_window): If there is no recorded height and position
5800 info, resize mini-window to height 1.
5801
5802 * xfns.c (image_error): Use add_to_log.
5803
5804 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
5805 (load_face_font_or_fontset, load_color,
5806 merge_face_vector_with_property): Ditto.
5807
5808 * dispextern.h: Add prototype for add_to_log.
5809
5810 * xfaces.c (add_to_log): Move to xdisp.c.
5811
5812 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
5813 parameter.
5814
58151999-09-23 Gerd Moellmann <gerd@gnu.org>
5816
5817 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
5818 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
5819
5820 * xdisp.c (resize_mini_window): Use grow_mini_window and
5821 shrink_mini_window.
5822
5823 * window.c (window_min_size): Add parameter ignore_fixed_p.
5824 (change_window_height): Call window_min_size with new parameter.
5825 (shrink_window_lowest_first, save_restore_orig_size,
5826 grow_mini_window, shrink_mini_window): New.
5827 (make_window, replace_window): Initialize orig_top and
5828 orig_height.
5829 (enlarge_window): Renamed from change_window_height. Make it
5830 static.
5831 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
5832 enlarge_window instead of change_window_height.
5833
5834 * window.h (struct window): New members orig_top, orig_height.
5835 (toplevel): Add prototypes for grow_mini_window and
5836 shrink_mini_window. Remove prototype for change_window_height.
5837
58381999-09-21 Eli Zaretskii <eliz@gnu.org>
5839
5840 * frame.c (frame_name_fnn_p): Fix previous change.
5841
58421999-09-20 Gerd Moellmann <gerd@gnu.org>
5843
5844 * minibuf.c (toplevel): Move include of stdio.h to other includes.
5845
5846 * dispnew.c (direct_output_for_insert): Cast arguments to
5847 safe_bcopy to char *.
5848
5849 * lread.c (readchar): Remove unused variables.
5850 (read_filtered_event, read1, Fmapatoms): Ditto.
5851 (toplevel): Include intervals.h.
5852
5853 * eval.c (Fsignal): Remove unused variables.
5854 (Fcommandp, do_autoload): Ditto.
5855
5856 * lisp.h: Add prototype for safe_bcopy, fatal.
5857
5858 * editfns.c (init_editfns): Remove unused variables.
5859 (Fgoto_char, Fchar_after, Fformat): Ditto.
5860 (message_text, message_length): Put in #ifndef HAVE_MENUS.
5861
5862 * data.c (find_symbol_value): Remove unused variables.
5863 (Faref, Fstring_to_number): Ditto.
5864 (toplevel): Include stdio.h.
5865 (Fnumber_to_string): Cast XINT to long for %ld.
5866
5867 * casefiddle.c (casify_object): Remove unused variables.
5868 (casify_region): Ditto.
5869
5870 * filelock.c (get_boot_time): Put local variable used in
5871 conditinally compiled section in #ifdef.
5872 (toplevel): Include stdio.h.
5873
5874 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
5875 keys_of_keymap, syms_of_keymap): Remove unused variables.
5876
58771999-09-20 Gerd Moellmann <gerd@gnu.org>
5878
5879 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
5880 whose corresponding window rows have been disabled in
5881 try_window_id.
5882
58831999-09-20 Gerd Moellmann <gerd@gnu.org>
5884
5885 * xdisp.c (compute_window_start_on_continuation_line): Handle case
5886 that window start is out of range.
5887 (handle_display_prop, handle_single_display_prop): Replace
5888 marginal area specifications like `left-margin' with `(margin
5889 left-margin)'.
5890 (Qmargin): New.
5891 (syms_of_xdisp): Initialize Qmargin.
5892
58931999-09-19 Gerd Moellmann <gerd@gnu.org>
5894
5895 * syntax.c (update_syntax_table, find_defun_start, back_comment,
5896 describe_syntax, skip_chars): Remove unused variables.
5897 (back_comment, forw_comment): Add braces to if-statement with
5898 if-else as dependent statement.
5899
5900 * process.c (list_processes_1): Remove unused variables.
5901 (Fopen_network_stream, create_process): Add parentheses to
5902 conditional expressions.
5903 (create_process): Put declaration of sigchld in #if 0.
5904 (Fopen_network_stream): Removed unused variables.
5905 (Fopen_network_stream, wait_reading_process_input,
5906 wait_reading_process_input, send_process, send_process): Ditto.
5907 (toplevel): Add prototypes for set_waiting_for_input and
5908 keyboard_bit_set.
5909
5910 * abbrev.c (Fexpand_abbrev): Remove unused variables.
5911
5912 * textprop.c (Fset_text_properties): Remove unused variables.
5913 (text_property_list, verify_interval_modification,
5914 interval_has_all_properties): Ditto.
5915
5916 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
5917 (Fcall_process): Remove unused variable.
5918
5919 * keyboard.c (Frecursive_edit): Remove unused variable.
5920 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
5921 timer_check, make_lispy_event, menu_bar_items,
5922 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
5923 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
5924 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
5925 read_key_sequence): Ditto. Fread_key_sequence,
5926 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
5927 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
5928 used when GOBBLE_FIRST_EVENT is defined in #ifdef
5929 (Fexecute_extended_command): Cast XINT to long for %ld.
5930 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
5931 (toplevel): Include sys/types.h.
5932
5933 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
5934 (toplevel): Add prototypes for stuff_char, and
5935 code_convert_string_norecord.
5936
59371999-09-19 Gerd Moellmann <gerd@gnu.org>
5938
5939 * buffer.h: Add prototype for r_re_alloc.
5940
5941 * insdel.c (copy_text): Removed unused variables.
5942 (count_combining_after, count_combining_after, insert_1_both,
5943 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
5944 (adjust_after_replace, replace_range): Add parentheses to logical
5945 expressions. Remove unused variables.
5946 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
5947 expression.
5948
5949 * alloc.c (Fgarbage_collect): Remove unused variable.
5950 (compact_strings): Add parentheses around assignments in
5951 conditional context.
5952 (toplevel): Put declaration of unused function clear_marks
5953 in #if 0 like its definition.
5954
5955 * lisp.h: Add prototype for shrink_regexp_cache,
5956 sweep_weak_hash_tables.
5957
59581999-09-19 Dave Love <fx@gnu.org>
5959
5960 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
5961
5962 * doc.c (read_bytecode_char): Declare arg.
5963
5964 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
5965 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
5966
59671999-09-18 Richard Stallman <rms@gnu.org>
5968
5969 * xdisp.c (echo_area_display): Turn off code that returned
5970 without doing anything when using a terminal frame.
5971
83c8f461 59721999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
5973
5974 * unexelf.c (unexec): Don't get confused by a short section
5975 just before the bss section.
5976
26901792
DL
59771999-09-16 Gerd Moellmann <gerd@gnu.org>
5978
5979 * emacs.c (main): Remove unused variables.
5980 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
5981
5982 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
5983 init_fileio_once, syms_of_sound, init_xfns, init_fns
5984 init_sound, check_message_stack.
5985
5986 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
5987
5988 * intervals.c (rotate_right, rotate_left): Add braces to avoid
5989 ambiguous else warning.
5990 (split_interval_left): Remove unused variables.
5991 (previous_interval, adjust_intervals_for_deletion,
5992 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
5993 (icount, idepth, zero_length): Move into #if 0 section below
5994 original position where these are used.
5995
5996 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
5997
5998 * buffer.c (Fkill_buffer): Remove unused variables.
5999 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
6000 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
6001 init_buffer_once, (syms_of_buffer): Ditto.
6002
6003 * xrdb.c (get_fallback): Remove unused variable.
6004 (x_load_resources): Ditto. Put local variable used for Motif only
6005 in #ifdef USE_MOTIF.
6006
60071999-09-16 Gerd Moellmann <gerd@gnu.org>
6008
6009 * minibuf.c (read_minibuf): Remove unused variables.
6010 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
6011 (do_completion): Move assignment out of conditional context.
6012 (Fdisplay_completion_list): Add parentheses to conditional expression.
6013
6014 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
6015
6016 * lisp.h: Add prototype for no_switch_window.
6017
6018 * window.c (Fset_window_buffer): Remove unused variables.
6019 (Fset_window_margins): Ditto.
6020
6021 * xdisp.c (resize_mini_window): Temporarily set the selected
6022 window's or Vminibuf_scroll_window's height to "fixed" around
6023 the call the change_window_height.
6024
6025 * window.c (window_fixed_size_p): Check window's height_fixed_p
6026 flag.
6027
6028 * window.h (struct window): New member height_fixed_p.
6029
6030 * dispnew.c (direct_output_forward_char): Don't use this method
6031 if showing a message or a message was just cleared because we
6032 might need to resize the mini-window.
6033
60341999-09-16 Gerd Moellmann <gerd@gnu.org>
6035
6036 * frame.c (Fdelete_frame): Correct local variable pointing to
6037 selected frame after selecting new frame.
6038
60391999-09-15 Richard Stallman <rms@gnu.org>
6040
6041 * puresize.h (BASE_PURESIZE): Increase to 525000.
6042
6043 * filelock.c (Vtemporary_file_directory): New variable.
6044 (syms_of_filelock): Set up Lisp variable.
6045
60461999-09-15 Gerd Moellmann <gerd@gnu.org>
6047
6048 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
6049 (encode_terminal_code): Remove unused variables.
6050 (turn_off_face): Ditto.
6051 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
6052
6053 * dispnew.c (update_frame_line): If writing whole desired line,
6054 don't clear to end of line if already at the end.
6055
60561999-09-15 Gerd Moellmann <gerd@gnu.org>
6057
6058 * xdisp.c (resize_mini_window): Don't report changed window
6059 height if it actually hasn't changed.
6060
6061 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
6062 unused variables.
6063 (mark_shell_size_user_specified): Put in #if 0 because not used.
6064 (create_frame_gcs): Put in #if 0 because currently unused.
6065 (first_frame_p): Ditto.
6066
6067 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
6068 single_submenu, update_frame_menubar, set_frame_menubar,
6069 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
6070 variables.
6071
6072 * print.c (PRINTFULLP): Removed because it is no longer used and
6073 is misleading.
6074 (Ferror_message_string): Remove unused variables.
6075 (print_object): Cast argument of sprintf to long for `%ld'
6076 specifier. Remove unused variable.
6077
60781999-09-14 Gerd Moellmann <gerd@gnu.org>
6079
6080 * sound.c (Fplay_sound): Remove usused variables.
6081 (be2hs): Put in #if 0 because it's currently not used.
6082
60831999-09-14 Ken Raeburn <raeburn@gnu.org>
6084
6085 * print.c (Ferror_message_string, print_error_message,
6086 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
6087 member access.
6088
60891999-09-14 Gerd Moellmann <gerd@gnu.org>
6090
6091 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
6092
6093 * frame.c (Fnext_frame): Remove unused variable(s).
6094 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
6095 (store_frame_param): Add parentheses to conditional expression.
6096 (Fmodify_frame_parameters): Remove unused variables.
6097 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
6098 Ditto.
6099
6100 * xfns.c (x_set_background_color): Remove unused variable(s).
6101 (x_set_border_pixel): Ditto.
6102 (x_set_menu_bar_lines): Put local variable used only for
6103 non-toolkit case in #ifdef/#endif.
6104 (x_figure_window_size): Remove unused variable(s).
6105 (x_figure_window_size, x_window, lookup_image,
6106 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
6107 png_load, jpeg_load, gif_load, x_create_tip_frame,
6108 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
6109
6110 * xterm.c (x_scroll_bar_handle_click): Compile only if
6111 not USE_TOOLKIT_SCROLL_BARS.
6112 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
6113
6114 * dispextern.h: Add prototypes for gamma_correct and
6115 x_kill_gs_process.
6116
6117 * xterm.c (x_produce_glyphs): Remove unused variable(s).
6118 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
6119 x_set_toolkit_scroll_bar_thumb): Ditto.
6120 (x_scroll_bar_create): Move local variable to the
6121 conditionally compiled section of code where it is used.
6122 (x_scroll_bar_create): Remove unused variable(s).
6123 (x_scroll_bar_remove, XTread_socket): Ditto.
6124 (XTread_socket) <ConfigureNotify>: Move variables used for
6125 non-toolkit case into conditionally compiled section of code.
6126
6127 * window.h (freeze_window_starts): Fix typo in prototype.
6128
6129 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
6130 variable(s).
6131
6132 * lisp.h: Add prototype for debug_print.
6133
6134 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
6135 to use do-while.
6136
6137 * fns.c (SXHASH_COMBINE): Add missing parentheses.
6138 (Fchar_table_range, Fset_char_table_default, mapcar1,
6139 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
6140
6141 * lisp.h: Add prototype for getloadavg.
6142
61431999-09-14 Andreas Schwab <schwab@gnu.org>
6144
6145 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
6146
6147 * lisp.h: Declare close_file_unwind.
6148
61491999-09-14 Richard Stallman <rms@gnu.org>
6150
6151 * filelock.c (get_boot_time): Make the temp name in the proper dir.
6152
61531999-09-13 Gerd Moellmann <gerd@gnu.org>
6154
6155 * xdisp.c (redisplay_window): Make sure start_at_line_beg
6156 is always set correctly.
6157
61581999-09-13 Dave Love <fx@gnu.org>
6159
6160 * xdisp.c (move_it_in_display_line_to): Make type consistent with
6161 declaration.
6162
61631999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6164
6165 * xdisp.c (QCfile): Move here from xfns.c.
6166 (syms_of_xdisp): Initialize it.
6167 (message2_nolog): Change for Lisp_Object selected_frame.
6168 (message3_nolog, message_with_string, message,
6169 setup_echo_area_for_printing, truncate_echo_area,
6170 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6171
61721999-09-13 Dave Love <fx@gnu.org>
6173
6174 * xterm.c: Don't continue #define args for benefit of old cc.
6175 (xt_action_hook): Indent #error for benefit of K&R cc.
6176
61771999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6178
6179 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6180 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6181 (XRINGBELL): Removed.
6182
61831999-09-13 Dave Love <fx@gnu.org>
6184
6185 * xfns.c (x_put_x_image): Make type consistent with declaration.
6186
6187 * fns.c (Fmake_hash_table): Fix string continuation.
6188
61891999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6190
6191 * xfns.c (QCfile): Moved to xdisp.c.
6192 (syms_of_xfns): Don't initialize QCfile.
6193 (check_x_frame): Change for Lisp_Object selected_frame.
6194 (check_x_display_info, x_get_resource_string): Ditto.
6195
61961999-09-13 Gerd Moellmann <gerd@gnu.org>
6197
6198 * minibuf.c (choose_minibuf_frame): Don't try to set the
6199 mini-buffer window's buffer, if the buffer is invalid.
6200
6201 * xfns.c (QCfile): Moved to xdisp.c.
6202 (syms_of_xfns): Don't initialize QCfile.
6203
6204 * xdisp.c (QCfile): Move here from xfns.c.
6205 (syms_of_xdisp): Initialize it.
6206
6207 * lisp.h (selected_frame): Add external declaration.
6208
6209 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
6210 (Fx_store_cut_buffer_internal): Ditto.
6211 (Fx_rotate_cut_buffers_internal): Ditto.
6212
6213 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
6214 selected_frame.
6215 (Finternal_set_lisp_face_attribute): Ditto.
6216 (Finternal_get_lisp_face_attribute): Ditto.
6217 (Finternal_lisp_face_empty_p): Ditto.
6218 (Fdump_face): Ditto.
6219
6220 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
6221 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
6222 set_terminal_window, set_scroll_region, reassert_line_highlight,
6223 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
6224 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
6225 encode_terminal_code, write_glyphs, term_init): Ditto.
6226
6227 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
6228 (kbd_input_ast, read_input_waiting): Ditto.
6229
6230 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
6231 selected_frame.
6232 (read_minibuf): Ditto.
6233
6234 * keyboard.c (command_loop_1): Change for Lisp_Object
6235 selected_frame.
6236 (cmd_error_internal, command_loop_1, read_char,
6237 kbd_buffer_get_event, read_avail_input,
6238 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
6239 interrupt_signal, quit_throw_to_read_char): Ditto.
6240
6241 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
6242 (Ffontset_info): DItto.
6243
6244 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
6245
6246 * dispnew.c (selected_frame): Make it a Lisp_Object.
6247 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
6248 (direct_output_for_insert, direct_output_forward_char,
6249 init_display): Ditto.
6250
6251 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
6252 selected_frame.
6253 (set_internal): Ditto.
6254
6255 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
6256 (record_buffer): Ditto.
6257
6258 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
6259 (do_switch_frame): Change for Lisp_Object selected_frame.
6260 (Fselected_frame): Ditto.
6261 (Fframe_first_window): Use SELECTED_FRAME.
6262 (Fframe_root_window): Change for Lisp_Object selected_frame.
6263 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
6264 Fprevious_frame, other_visible_frames, Fdelete_frame,
6265 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
6266 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
6267 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
6268 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
6269 Fset_frame_height, Fset_frame_width): Ditto.
6270
62711999-09-13 Gerd Moellmann <gerd@gnu.org>
6272
6273 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
6274 (message3_nolog, message_with_string, message,
6275 setup_echo_area_for_printing, truncate_echo_area,
6276 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6277
6278 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
6279 (Fx_popup_dialog): Ditto.
6280
6281 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
6282 (check_x_display_info, x_get_resource_string): Ditto.
6283
6284 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6285 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6286 (XRINGBELL): Removed.
6287
6288 * window.c (Fminibuffer_window): Change for Lisp_Object
6289 selected_frame.
6290 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
6291 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
6292 Fcurrent_window_configuration, init_window_once): Ditto.
6293
6294 * frame.h (SELECTED_FRAME): New.
6295
62961999-09-12 Ken Raeburn <raeburn@gnu.org>
6297
6298 * category.c (word_boundary_p): Use XCAR and XCDR.
6299 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
6300 Fregister_code_conversion_map): Likewise.
6301 * coding.c (setup_coding_system, detect_coding_system,
6302 Ffind_operation_coding_system, Fset_coding_priority_internal):
6303 Likewise.
6304 * doc.c (get_doc_string, Fdocumentation,
6305 store_function_docstring): Likewise.
6306 * editfns.c (save_restriction_restore): Likewise.
6307 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
6308 skip_debugger, find_handler_clause, Fautoload, Fapply,
6309 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
6310 Likewise.
6311 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
6312 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
6313 Fread_file_name): Likewise.
6314 * filelock.c (unlock_all_files): Likewise.
6315 * insdel.c (Fcombine_after_change_execute): Likewise.
6316 * intervals.c (adjust_intervals_for_insertion): Likewise.
6317 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
6318 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
6319 store_in_keymap, Fcopy_keymap, define_as_prefix,
6320 current_minor_maps, Faccessible_keymaps,
6321 accessible_keymaps_char_table, Fkey_description,
6322 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
6323 describe_buffer_bindings, describe_map_tree, shadow_lookup,
6324 describe_map): Likewise.
6325 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
6326 read_list, init_lread): Likewise.
6327 * search.c (Fmatch_data): Likewise.
6328 * sunfns.c (Fsun_menu_internal): Likewise.
6329 * syntax.c (describe_syntax): Likewise.
6330 * undo.c (record_insert, record_delete, Fundo_boundary,
6331 truncate_undo_list): Likewise.
6332 * vmsproc.c (child_sig): Likewise.
6333
6334 * editfns.c (Fformat): Use XFLOAT_DATA.
6335
63361999-09-12 Gerd Moellmann <gerd@gnu.org>
6337
6338 * keyboard.c (command_loop_1): Resize mini-window to the
6339 exact size of a message displayed, if any.
6340
6341 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
6342 to exact size if exact_p is non-zero.
6343 (display_echo_area_1): Call resize_mini_window with
6344 new parameter.
6345 (redisplay_internal): Ditto.
6346 (resize_echo_area_axactly): New.
6347
6348 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
6349 new parameter.
6350
6351 * dispextern.h: Change prototype of resize_mini_window.
6352 Add prototype for resize_echo_area_axactly.
6353
6354 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
6355 (syms_of_xfaces): Defsubr accordingly.
6356
6357 * xdisp.c (hscroll_window_tree): Choose cursor row from
6358 desired or current matrix.
6359 (redisplay_internal): Hscroll before updating.
6360
63611999-09-12 Gerd Moellmann <gerd@gnu.org>
6362
6363 * syntax.c (Fforward_word): Use prompt_end_charpos instead
6364 of minibuffer_prompt_length.
6365
6366 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
6367 of minibuffer_prompt_length.
6368 (read_minibuf_unwind): Ditto.
6369 (Fminibuffer_complete_and_exit): Ditto.
6370 (Fminibuffer_complete_word): Ditto.
6371 (Fminibuffer_prompt_end): Ditto.
6372
6373 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
6374 of minibuffer_prompt_length.
6375 (Fline_beginning_position): Ditto.
6376
6377 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
6378 of minibuffer_prompt_length.
6379 (Fmake_indirect_buffer): Ditto.
6380 (Fkill_buffer): Ditto.
6381 (Ferase_buffer): Ditto.
6382
6383 * buffer.h (prompt_end_charpos): Replaces
6384 minibuffer_prompt_length.
6385
6386 * minibuf.c (read_minibuf): Return mini-buffer contents
6387 without the prompt.
6388
6389 * editfns.c (make_buffer_string_both): Take out the code
6390 to handle mini-buffer prompts.
6391 (Fbuffer_string): Handle the prompt here, instead.
6392
6393 * xfaces.c (lface_from_face_name): Resolve face aliases.
6394 (Qmode_line): Replaces Qmodeline.
6395 (realize_basic_faces): Use Qmode_line.
6396 (syms_of_xfaces): Initialize Qmode_line.
6397
63981999-09-12 Gerd Moellmann <gerd@gnu.org>
6399
6400 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
6401 current column after inserting prompt.
6402 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
6403
6404 * xfaces.c (Qframe_update_face_colors): New.
6405 (syms_of_xfaces): Initialize call.
6406 (update_face_from_frame_parameter): Call that function when
6407 the frame's background changes.
6408
64091999-09-12 Richard Stallman <rms@gnu.org>
6410
6411 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
6412
64131999-09-12 Ken Raeburn <raeburn@gnu.org>
6414
6415 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
6416 mark_object, mark_buffer): Use XCAR and XCDR.
6417 * bytecode.c (Fbyte_code): Likewise.
6418 * callint.c (Fcall_interactively, Fprefix_numeric_value):
6419 Likewise.
6420 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
6421 getenv_internal): Likewise.
6422 * dired.c (file_name_completion): Likewise.
6423 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
6424 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
6425 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
6426 * indent.c (Fcompute_motion): Likewise.
6427 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
6428 list_processes_1, Fstart_process, Fopen_network_stream,
6429 wait_reading_process_input, read_process_output_call,
6430 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
6431 status_notify, wait_reading_process_input): Likewise.
6432 * textprop.c (PLIST_ELT_P, property_value, set_properties,
6433 extend_property_ranges): Likewise.
6434 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
6435 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
6436 x_report_frame_params, x_set_cursor_type, x_icon_type,
6437 x_figure_window_size, Fx_create_frame, w32_load_system_font,
6438 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
6439 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
6440 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
6441 x_display_info_for_name, Fx_display_list): Likewise.
6442 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
6443 Fx_popup_menu, Fx_popup_dialog): Likewise.
6444 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
6445 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
6446 w32_term_init, x_delete_display): Likewise.
6447 * xfns.c (x_window_to_frame, x_any_window_to_frame,
6448 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
6449 x_top_window_to_frame, x_set_frame_parameters,
6450 x_report_frame_params, x_set_cursor_type, x_icon_type,
6451 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
6452 Fx_display_list, x_create_tip_frame): Likewise.
6453 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
6454 Fx_popup_menu, Fx_popup_dialog): Likewise.
6455 * xselect.c (x_own_selection, x_get_local_selection,
6456 x_handle_selection_request, x_handle_selection_clear,
6457 x_clear_frame_selections, wait_for_property_change_unwind,
6458 wait_for_property_change, x_handle_property_notify,
6459 copy_multiple_data, x_get_foreign_selection,
6460 lisp_data_to_selection_data, clean_local_selection_data,
6461 x_handle_selection_notify, Fx_get_selection_internal,
6462 x_disown_buffer_selections): Likewise.
6463 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
6464 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
6465 Likewise.
6466
6467 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
6468 XFLOAT_DATA.
6469 * bytecode.c (Fbyte_code): Likewise.
6470 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
6471 fmod_float): Likewise.
6472
64731999-09-11 Richard Stallman <rms@gnu.org>
6474
6475 * xdisp.c (run_window_scroll_functions): If hook functions switch
6476 buffers, switch back after.
6477
64781999-09-11 Ken Raeburn <raeburn@gnu.org>
6479
6480 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
6481 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
6482 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
6483 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
6484 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
6485 XCDR.
6486 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
6487 XCDR.
6488
64891999-09-10 Richard Stallman <rms@gnu.org>
6490
6491 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
6492 not RevertToPointerRoot.
6493 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6494 Fix the code to clear around the scroll bar.
6495
64961999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
6497
6498 * print.c: Support print-circle and related features.
6499 (Vprint_gensym_alist): Removed.
6500 (Vprint_circle, Vprint_continuous_numbering, print_number_index
6501 Vprint_number_table): New variables.
6502 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
6503 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
6504 (print, print_preprocess, print_preprocess_string, print_object):
6505 New/modified functions with print-circle feature. Use
6506 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
6507 (syms_of_print): Defined new Lisp variables `print-circle',
6508 `print-continuous-numbering', `print-number-table'.
6509
65101999-09-10 Gerd Moellmann <gerd@gnu.org>
6511
6512 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
6513 as background color specification instead of an integer.
6514 (image-cache-eviction-delay): Replaces image-eviction-seconds.
6515 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
6516 (clear_image_cache, syms_of_xfns): Use it.
6517 (Qpostscript): Replaces Qghostscript.
6518 (gs_type): Use it.
6519 (gs_image_p): Ditto.
6520 (syms_of_xfns): Initialize Qpostscript.
6521
65221999-09-10 Richard Stallman <rms@gnu.org>
6523
6524 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
6525
65261999-09-09 Richard Stallman <rms@gnu.org>
6527
6528 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
6529
6530 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
6531
65321999-09-09 Gerd Moellmann <gerd@gnu.org>
6533
6534 * fns.c (Fmakehash): Accept just one optional argument TEST.
6535
6536 * xfns.c (QCindex): New.
6537 (syms_of_xfns): Initialize QCindex.
6538 (gif_load): Use it instead of `:image'.
6539
65401999-09-09 Richard Stallman <rms@gnu.org>
6541
6542 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
6543 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
6544
65451999-09-08 Gerd Moellmann <gerd@gnu.org>
6546
6547 * xdisp.c (Qwhen): Replaces QCwhen.
6548 (syms_of_xdisp): Initialized it instead of QCwhen.
6549 (handle_single_display_prop): Use it instead of QCwhen.
6550
65511999-09-08 Ken'ichi Handa <handa@gnu.org>
6552
6553 * charset.c (translate_char): Reset MSBs of arguments of
6554 MAKE_CHAR.
6555 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
6556
65571999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
6558
6559 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
6560
6561 * fns.c (Fbase64_decode_region): Don't place point outside of the
6562 current accessible portion.
6563
65641999-09-07 Richard Stallman <rms@gnu.org>
6565
6566 * keymap.c (fix_submap_inheritance): Do nothing if the proper
6567 parent is an ancestor of SUBMAP; otherwise, add it as the
6568 ultimate ancestor.
6569
65701999-09-07 Gerd Moellmann <gerd@gnu.org>
6571
6572 * xdisp.c (handle_single_display_prop): Change conditional
6573 display property to `:when FORM . VALUE'.
6574
65751999-09-07 Richard Stallman <rms@gnu.org>
6576
6577 * fileio.c (Fwrite_region): Doc fix.
6578
65791999-09-07 Stefan Monnier <monnier@cs.yale.edu>
6580
6581 * fileio.c (Qexcl): New variable.
6582 (report_file_error): Handle EEXIST specially.
6583 (Fwrite_region): Special handling for CONFIRM = `excl'.
6584 (syms_of_fileio): Initialize Qexcl.
6585
65861999-09-07 Gerd Moellmann <gerd@gnu.org>
6587
6588 * xfns.c (x_set_foreground_color): Call
6589 update_face_from_frame_parameter.
6590 (x_set_background_color): Ditto.
6591 (x_set_mouse_color): Ditto.
6592 (x_set_cursor_color): Ditto.
6593 (x_set_border_color): Ditto.
6594 (x_set_scroll_bar_foreground): Ditto.
6595 (x_set_scroll_bar_background): Ditto.
6596
6597 * xfaces.c (recompute_basic_faces): Clear face cache.
6598 (Finternal_set_lisp_face_attribute): Modify frame parameters
6599 if attributes of certain faces are changed.
6600 (update_face_from_frame_parameter): New.
6601
6602 * xfaces.c (realize_basic_faces): Realize new basic faces.
6603
6604 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
6605 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
6606
6607 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
6608 (syms_of_xfaces): Intialize new symbols.
6609
6610 * fns.c (Fmakehash): Take one argument, test, make all the
6611 rest keyword arguments.
6612
6613 * window.c (Fset_window_margins): Make window the first argument.
6614 (set_window_buffer): Call Fset_window_margins with window as first
6615 argument.
6616
66171999-09-07 Gerd Moellmann <gerd@gnu.org>
6618
6619 * xfaces.c (Qfringe): Replaces Qmargin.
6620
66211999-09-07 Kenichi Handa <handa@etl.go.jp>
6622
6623 * charset.h: Lots of comments fixed.
6624 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
6625 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
6626
6627 * charset.c : Lots of comments fixed.
6628 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
6629 (CHAR_COMPONENTS_VALID_P): Name changed from
6630 CHAR_COMPONENT_VALID_P. Caller changed.
6631
66321999-09-06 Richard Stallman <rms@gnu.org>
6633
6634 * insdel.c (syms_of_insdel): Define Lisp variable
6635 inhibit-modification-hooks.
6636
66371999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
6638
6639 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
6640 unexaix.c.
6641
6642 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
6643
66441999-09-06 Dave Love <fx@gnu.org>
6645
6646 * unexaix.c: New version incorporating Michael Sperber's changes
6647 from XEmacs. Should solve problems on AIX 4.3.
6648
6649 * lread.c (Vbyte_boolean_vars): New variable.
6650 (defvar_bool, syms_of_lread): Use it.
6651
66521999-09-05 Richard Stallman <rms@gnu.org>
6653
6654 * minibuf.c (read_minibuf): Put all three properties on the
6655 same range, the whole prompt.
6656
66571999-09-05 Gerd Moellmann <gerd@gnu.org>
6658
6659 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
6660 (Fplay_sound, syms_of_sound): Use it.
6661 (parse_sound): Allow float volume values in the range [0, 1].
6662 (Fplay_sound): Ditto.
6663
6664 * window.c (Fset_window_vscroll): Make window the first argument,
6665 amount to scroll the second. Take non-negative vscroll as
6666 argument.
6667 (Fwindow_vscroll): Return non-negative vscroll.
6668
6669 * xfns.c (Fx_show_tip): Improve documentation.
6670
66711999-09-05 Gerd Moellmann <gerd@gnu.org>
6672
6673 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
6674 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
6675 `top-line' and `top_line' to `header-line' and `header_line'.
6676 Likewise for similar spellings.
6677
66781999-09-05 Gerd Moellmann <gerd@gnu.org>
6679
6680 * xdisp.c (row_containing_pos): New.
6681 (try_window_id): Use it.
6682
6683 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
6684 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
6685 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
6686 Likewise for upper-case etc.
6687
66881999-09-05 Gerd Moellmann <gerd@gnu.org>
6689
6690 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6691 Fix reference to renamed variable.
6692
66931999-09-04 Gerd Moellmann <gerd@gnu.org>
6694
6695 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
6696 (window_fixed_size_p): Use Qwindow_size_fixed instead of
6697 Qfixed_window_size.
6698 (syms_of_window): Ditto.
6699
6700 * fns.c (Fmakehash): Exchange optional test and size arguments.
6701
67021999-09-03 Gerd Moellmann <gerd@gnu.org>
6703
6704 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
6705 under newly created scroll bar.
6706 (expose_window): If window is not yet fully initialized, do
6707 nothing. This can happen when toolkit scroll bars are used and a
6708 window is split. Reconfiguring the scroll bars will generate an
6709 expose for a newly created window.
6710
6711 * frame.h (struct frame): New member `gamma'.
6712
6713 * xfns.c: Include math.h. Add extern declaration for atof in case
6714 we don't see one.
6715 (Qscreen_gamma): New.
6716 (struct x_frame_parm_table): Add prototypes, add
6717 x_set_screen_gamma.
6718 (gamma_correct): New function.
6719 (defined_color): Call it.
6720 (x_set_screen_gamma): New.
6721 (x_set_title): Add parameter old_value.
6722 (RES_TYPE_FLOAT): New.
6723 (x_get_arg): Handle RES_TYPE_FLOAT.
6724 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
6725 (lookup_pixel_color): Change call to x_alloc_nearest_color to
6726 new prototype.
6727 (lookup_rgb_color): Ditto.
6728 (syms_of_xfns): Initialize Qscreen_gamma.
6729
6730 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
6731 New. Allocate color for lwlib widgets.
6732 (x_alloc_nearest_color): Change parameter list include the
6733 frame on which to allocate colors. Gamma-correct colors.
6734 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
6735 parameter list.
6736
6737 * xterm.h: Change protorype of x_alloc_nearest_color.
6738
67391999-09-03 Richard Stallman <rms@gnu.org>
6740
6741 * callproc.c: Delete the system-independent include of stdlib.h
6742 (leaving only the one in the WINDOWSNT conditional).
6743
67441999-09-03 Andrew Choi <choi@cs.hku.hk>
6745
6746 * callproc.c (call-process) [macintosh]: Call mac_run_command in
6747 sysdep.c. The Mac code is modeled after the DOS code.
6748
6749 * dispextern.h [macintosh]: Include macterm.h to define substitute X
6750 Window types and macros.
6751
6752 * frame.h: Do nothing if included a second time.
6753 (enum output_method): Add mac_output frame type.
6754 (union output_data): Add new alternative `mac'.
6755 (FRAME_MAC_P): New macro.
6756
6757 * frame.c (Fframep) [macintosh]: Handle mac frame type.
6758 (syms_of_frame_1): Initialize Qmac.
6759 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
6760 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
6761 (Fmodify_frame_parameters) [macintosh]: Call
6762 mac_set_frame_parameter in macterm.c.
6763
6764 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
6765 (512) because Mac compilers limit local data of a function to 32K.
6766
6767 * make-docfiles.c: Correctly handle input files with Mac-style
6768 eol's.
6769
6770 * sysdep.c: Define numerous routines to emulate Unix system calls.
6771
6772 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
6773 file of an X Window environment.
6774
6775 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
6776 x-display-grayscale, x-color-defined-p, and x-color-values.
6777
6778 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
6779 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
6780 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
6781 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
6782 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
6783 New functions, replacing POSIX features.
6784
6785 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
6786 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
6787 (InitEmacsPasswdDir, run_mac_command): New subroutines.
6788
6789 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
6790 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
6791 (myPasswdDir, TempDirName, sys_siglist): New variables.
6792
6793 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
6794 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
6795 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
6796 Define empty stubs so Emacs will link.
6797
67981999-09-03 Gerd Moellmann <gerd@gnu.org>
6799
6800 * xdisp.c: Use XCAR and XCDR instead of XCONS.
6801
6802 * window.h: New member frozen_window_start_p.
6803
6804 * window.c (foreach_window, foreach_window_1): New.
6805 (freeze_window_start, freeze_window_starts): New.
6806 (make_window): Initialize frozen_window_start_p.
6807 (replace_window): Ditto.
6808 (Fset_window_point): Remove references to deleted variables.
6809 (Fset_window_start): Ditto.
6810
6811 * xdisp.c (Vresize_mini_config, resize_mini_frame,
6812 resize_mini_initial_height): Removed.
6813 (syms_of_xdisp): Remove references to these variables.
6814 (resize_mini_window): Don't save window configuration, freeze
6815 window starts instead. Enlarge window until displaying an empty
6816 buffer, then shrink it. Make the function externally visible.
6817 (redisplay_window): Treat frozen window start like forced start,
6818 but accept point outside of the window.
6819
6820 * dispextern.h: Add function prototype for resize_mini_window.
6821
6822 * minibuf.c (read_minibuf_unwind): Resize mini-window when
6823 reaching minibuf_level 0.
6824
6825 * lisp.h: Remove extern declarations for variables deleted from
6826 xdisp.c.
6827
6828 * dispnew.c (adjust_frame_glyphs): Remove reference to
6829 Vresize_mini_config.
6830
68311999-09-03 Gerd Moellmann <gerd@gnu.org>
6832
6833 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
6834 to USE_TOOLKIT_SCROLL_BARS.
6835
6836 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
6837 here.
6838 (XTset_vertical_scroll_bar): Clarify position computations. Clear
6839 under newly created scroll bar. Put toolkit scroll bars in the
6840 middle of the area reserved for the scroll bar.
6841
68421999-09-03 Kenichi Handa <handa@etl.go.jp>
6843
6844 The following changes are for the new handling of mulitbyte
6845 sequence. Now, except for a composite character, no multibyte
6846 character in string/buffer has trailing garbage bytes. For
6847 instance, the length of string "\201\300\300" is now 2, the first
6848 character is Latin-1 A-grave, the second is raw \300.
6849
6850 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
6851 are negative.
6852 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
6853 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
6854 (PARSE_COMPOSITE_SEQ): New macro.
6855 (PARSE_CHARACTER_SEQ): New macro.
6856 (PARSE_MULTIBYTE_SEQ): New macro.
6857 (CHAR_PRINTABLE_P): New macro.
6858 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
6859 (STRING_CHAR_AND_LENGTH): Likewise.
6860 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
6861 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
6862 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
6863
6864 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
6865 (SPLIT_CHARACTER_SEQ): New macro.
6866 (SPLIT_MULTIBYTE_SEQ): New macro.
6867 (CHAR_COMPONENT_VALID_P): New macro.
6868 (non_ascii_char_to_string): Generate a multibyte sequence as far
6869 as possible.
6870 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
6871 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
6872 (split_non_ascii_string): Likewise.
6873 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
6874 (char_printable_p): New function.
6875 (translate_char): Check character by NATNUMP instead of INTEGERP.
6876 (unibyte_char_to_multibyte): Call char_valid_p instead of
6877 VALID_MULTIBYTE_CHAR_P.
6878 (Fmake_char_internal): Check the arguments more rigidly.
6879 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
6880 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
6881 (Fmultibyte_char_to_unibyte): Check the validity of character by
6882 CHAR_VALID_P.
6883 (chars_in_text): Call multibyte_chars_in_text.
6884 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
6885 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
6886 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
6887
6888 * data.c (Faset): Adjust the way to check byte-combining
6889 possibility for the new handling of multibyte sequence.
6890
6891 * editfns.c (Fsubst_char_in_region): Likewise.
6892
6893 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
6894 (string_char_to_byte): Likewise.
6895 (string_byte_to_char): Likewise.
6896
6897 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
6898 macro STRING_CHAR_AND_LENGTH. Caller changed.
6899
6900 * insdel.c (count_combining_composition): New function.
6901 (count_combining_before): Adjust the way to check byte-combining
6902 possibility for the new handling of multibyte sequence. Call
6903 count_combining_composition for a composite character.
6904 (count_combining_after): Likewise.
6905
6906 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
6907 (print): Likewise.
6908
6909 * dispextern.h (struct it): Change the size of the member
6910 `ctl_chars'.
6911
6912 * xdisp.c (get_next_display_element): Display incomplete multibyte
6913 sequence (e.g. \222\300) by octal form.
6914
69151999-09-02 Gerd Moellmann <gerd@gnu.org>
6916
6917 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
6918
6919 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
6920 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
6921
69221999-09-02 Gerd Moellmann <gerd@gnu.org>
6923
6924 * buffer.c (set_buffer_internal): Never set
6925 windows_or_buffers_changed.
6926
6927 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
6928 if we have displayed to the bottom of the window.
6929
6930 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
6931 in both directions. Extend documentation.
6932
69331999-09-01 Gerd Moellmann <gerd@gnu.org>
6934
6935 * minibuf.c (read_minibuf): Flush display after setting cursor to
6936 column 0.
6937
69381999-08-31 Gerd Moellmann <gerd@gnu.org>
6939
6940 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
6941 already defined. This avoids a warning from buffer.c.
6942
69431999-08-30 Gerd Moellmann <gerd@gnu.org>
6944
6945 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
6946 of both margins.
6947 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
6948 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
6949 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
6950
6951 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
6952 once instead of twice.
6953 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
6954
6955 * xterm.c: Remove unused bitmaps.
6956 (continued_bits, continuation_bits, overlay_bits): Change images.
6957 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
6958 instead of FRAME_X_FLAGS_AREA_WIDTH.
6959 (x_after_update_window_line): Ditto.
6960 (x_draw_bitmap): Likewise.
6961 (x_draw_row_bitmaps): Likewise.
6962 (x_draw_glyph_string_box): Likewise.
6963 (x_draw_glyphs): Likewise.
6964 (x_scroll_run): Likewise.
6965 (expose_window_tree): Likewise.
6966 (note_mode_line_highlight): Likewise.
6967 (XTset_vertical_scroll_bar): Likewise.
6968 (x_clip_to_row): Likewise.
6969 (x_set_window_size): Likewise.
6970
6971 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
6972 of 2 * that value.
6973
6974 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
6975 2 * that value.
6976 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
6977 FRAME_FLAGS_AREA_WIDTH.
6978
6979 * window.c (coordinates_in_window): Use
6980 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
6981 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
6982 instead of twice.
6983
6984 * widget.c (set_frame_size): Set flags_area_extra to
6985 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
6986 (EmacsFrameSetCharSize): Ditto.
6987
6988 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
6989 instead of FRAME_FLAGS_AREA_WIDTH.
6990
6991 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
6992 FRAME_FLAGS_AREA_COLS once.
6993 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
6994 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
6995
69961999-08-30 Gerd Moellmann <gerd@gnu.org>
6997
6998 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
6999 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
7000
70011999-08-30 Gerd Moellmann <gerd@gnu.org>
7002
7003 * fns.c (QCweakness): Replaces QCweak.
7004 (Fmake_hash_table): Ditto.
7005 (Fmakehash): Ditto.
7006 (syms_of_fns): Ditto.
7007
70081999-08-29 Richard Stallman <rms@gnu.org>
7009
7010 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
7011
7012 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
7013
7014 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
7015 Add support for nested comments.
7016
863476d1
SM
7017 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
7018 Consolidate the forward comment code into the new `forw_comment'.
7019 (forw_comment): New subroutine. Added support for nested comments.
7020 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
7021 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
7022
70231999-08-28 Ken Raeburn <raeburn@gnu.org>
7024
7025 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
7026 names of structure elements if HIDE_LISP_IMPLEMENTATION is
7027 defined, to help detect code that uses knowledge of the Lisp
7028 internals that it shouldn't have.
7029 (XFLOAT_DATA): New macro.
7030
70311999-08-25 Gerd Moellmann <gerd@gnu.org>
7032
7033 * syntax.c (Fforward_word): If in a mini-buffer and moving
7034 backwards, stop in front of the prompt to prevent accidentially
7035 moving into the read-only prompt.
7036
7037 * window.c (Frecenter): Clear frame if called with nil or no arg.
7038
7039 * xdisp.c (resize_mini_window): Don't resize if
7040 Vmax_mini_window_height is nil. Otherwise, use a default if
7041 Vmax_mini_window_height is not ot a number.
7042 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
7043
70441999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
7045
7046 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
7047 * m/iris4d.h: Use unexelf for IRIX 5.*.
7048 * m/iris5d.h: Use unexelf for IRIX 6.*.
7049 * unexsgi.c: Deleted.
7050
7051 * unexelf.c: Auto-detect .sbss section.
7052 (round_up): Make it static.
7053 (unexec): Declare alignment as Elf Word. Skip ``Program
7054 segment above .bss'' test on MIPS without .sbss.
7055 Copy sections .got and .sdata1 sections. Adjust offsets in
7056 sections .sdata, .lit4, .lit8, .got and .sdata1.
7057
70581999-08-25 Gerd Moellmann <gerd@gnu.org>
7059
7060 * xdisp.c (try_window_id): Remove typo.
7061
70621999-08-24 Gerd Moellmann <gerd@gnu.org>
7063
7064 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
7065 unchanged text at the bottom when computing the cursor position.
7066 (message3_nolog): Raise frame only if minibuffer_auto_raise is
7067 set.
7068
7069 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
7070
70711999-08-24 Gerd Moellmann <gerd@gnu.org>
7072
7073 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
7074 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
7075 (syms_of_xfaces): Ditto.
7076
7077 * window.c (Fset_window_point): Reset Vresize_mini_config.
7078 (Fset_window_start): Ditto.
7079 (set_window_buffer): Ditto.
7080
7081 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
7082
7083 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
7084 before calling try_window.
7085 (echo_area_display): If height has changed, update other windows.
7086 (resize_mini_frame, resize_mini_initial_height): New.
7087 (resize_mini_window): Save/restore window configuration
7088 differently.
7089
7090 * lisp.h (Vresize_mini_config, resize_mini_frame,
7091 resize_mini_initial_height): Add extern declarations.
7092
7093 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
7094 CANON_X_UNIT.
7095
7096 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
7097 being redefined in jconfig.h.
7098
70991999-08-23 Ken'ichi Handa <handa@gnu.org>
7100
7101 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
7102
71031999-08-22 Gerd Moellmann <gerd@gnu.org>
7104
7105 * alloc.c (mark_glyph_matrix): Mark strings only.
7106
7107 * xdisp.c (redisplay_internal): Clear garbaged frames after
7108 resizing mini-window.
7109
71101999-08-22 Gerd Moellmann <gerd@gnu.org>
7111
7112 * xdisp.c (unwind_with_echo_area_buffer): Use
7113 set_buffer_internal_1 instead of set_buffer_internal.
7114 (with_echo_area_buffer): Ditto.
7115
7116 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
7117 only if buffer is displayed somewhere.
7118
7119 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
7120
7121 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
7122 (gap_right): Ditto.
7123 (modify_region): Ditto.
7124
7125 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
7126
7127 * xdisp.c (Vresize_mini_config): New.
7128 (resize_mini_window): Use it to save restore original window
7129 configuration
7130 (syms_of_xdisp): Initialize it.
7131
7132 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
7133
7134 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
7135
7136 * xdisp.c (reconsider_clip_changes): New.
7137 (redisplay_internal, redisplay_window): Call it.
7138 (mark_window_display_accurate, redisplay_internal): Set current
7139 matrix' buffer, begv, zv.
7140
7141 * window.c (Fset_window_hscroll): Set
7142 prevent_redisplay_optimizations_p instead of clip_changed.
7143 (Fset_window_hscroll): Ditto.
7144 (temp_output_buffer_show): Ditto.
7145 (Fset_window_vscroll): Ditto.
7146
7147 * buffer.c (reset_buffer): Set clip_changed to 0 and
7148 prevent_redisplay_optimizations_p to 1.
7149 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
7150
7151 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
7152 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
7153 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
7154 END_UNCHANGED): New.
7155 (struct buffer_text): Add beg_unchanged, end_unchanged,
7156 unchanged_modified, overlay_unchanged_modified.
7157
7158 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7159 overlay_unchanged_modified): Removed.
7160 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
7161 (unwind_with_echo_area_buffer): Don't restore them.
7162 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
7163 (text_outside_line_unchanged_p, redisplay_internal,
7164 try_scrolling): Use/set buffer-specific beg/end_unchanged.
7165 (redisplay_window): Let try_window_id be called if more than one
7166 window is displayed. Use/set buffer-specific beg/end_unchanged.
7167 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
7168 try_window_id):
7169 Use buffer-specific beg/end_unchanged.
7170
7171 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7172 overlay_unchanged_modified): Remove extern declarations.
7173
7174 * keyboard.c (command_loop_1): Set beg/end_unchanged per
7175 buffer.
7176
7177 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
7178 (gap_right): Ditto.
7179 (adjust_after_replace): Likewise.
7180 (replace_range, del_range_2, modify_region): Likewise.
7181
7182 * dispnew.c (direct_output_for_insert): Set beg_unchanged
7183 and unchanged_modified per buffer.
7184
7185 * coding.c (code_convert_region): Compute beg/end_unchanged per
7186 buffer.
7187
7188 * buffer.c (modify_overlay): Compute beg/end_unchanged
7189 per buffer.
7190 (Fget_buffer_create): Initialize new members of the buffer
7191 structure.
7192
71931999-08-22 Gerd Moellmann <gerd@gnu.org>
7194
7195 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
7196
7197 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
7198 (Qkey_value_weak): Removed.
7199 (make_hash_table): Use nil, `key', `value', t for weakness.
7200 (Fmake_hash_table): Ditto.
7201 (copy_hash_table): New.
7202 (Fcopy_hash_table): New.
7203
72041999-08-22 Gerd Moellmann <gerd@gnu.org>
7205
7206 * xfns.c: Call change_frame_size and do_pending_window_change with
7207 new parameter.
7208
72091999-08-21 Gerd Moellmann <gerd@gnu.org>
7210
7211 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
7212 well.
7213 (redisplay_internal): Resize mini-window only if text might
7214 have changed.
7215 (display_echo_area): Reset displayed echo_area_buffer to nil
7216 at the end if we're displaying a nil message.
7217
72181999-08-21 Gerd Moellmann <gerd@gnu.org>
7219
7220 * fns.c (hash_lookup): Test with EQ before calling key comparion
7221 function.
7222 (hash_remove): Ditto.
7223 (cmpfn_eq): Removed.
7224 (cmpfn_eql): Don't test with EQ.
7225 (cmpfn_equal): Ditto.
7226 (make_hash_table): Set comparison function for `eq' to null.
7227
7228 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
7229 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
7230
7231 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
7232
7233 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
7234 xterm.c: Call change_frame_size and do_pending_window_change with
7235 new parameter.
7236
7237 * dispnew.c (do_pending_window_change): Add parameter `safe'.
7238 (change_frame_size): Ditto.
7239 (change_frame_size_1): Ditto. Deley size changes if redisplaying
7240 and not called from a safe place.
7241 (window_change_signal): Call change_frame_size with new parameter.
7242
7243 * dispextern.h: Change prototypes for do_pending_window_change
7244 and change_frame_size.
7245
7246 * xfaces.c (face_at_buffer_position): Don't xassert that
7247 window's buffers equals current_buffer; this is not the
7248 case during echo area display.
7249
72501999-08-21 Gerd Moellmann <gerd@gnu.org>
7251
7252 * xdisp.c, minibuf.c: Remove conditional compilation on
7253 NO_PROMPT_IN_BUFFER.
7254
7255 * minibuf.c (Fminibuffer_prompt_end): New.
7256 (syms_of_minibuf): Defsubr it. Remove
7257 minibuffer-prompt-in-buffer.
7258 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
7259 Extend documentation.
7260
7261 * xdisp.c (get_next_display_element): Display \r as ^M.
7262
7263 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
7264 under scroll bar widget.
7265
72661999-08-21 Gerd Moellmann <gerd@gnu.org>
7267
7268 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
7269 anywhere.
7270 (unwind_redisplay): Return nil.
7271 (clear_garbaged_frames): New.
7272 (redisplay_internal): Use it.
7273 (echo_area_display): Ditto.
7274 (resize_mini_window): Mew.
7275 (display_echo_area_1): Use it to resize echo area window.
7276 (redisplay_internal): Use it to resize active mini-window.
7277
7278 * dispextern.h, lisp.h: Add function prototypes.
7279
7280 * dispnew.c (set_window_cursor_after_update): Do the
7281 cursor_in_echo_area case only for a mini-window showing
7282 a message. Don't let cursor end up after the end of a row.
7283
7284 * xdisp.c (echo_area_glyphs, echo_area_message,
7285 echo_area_glyphs_length, previous_echo_glyphs,
7286 previous_echo_area_message, previous_echo_area_glyphs_length):
7287 Removed.
7288 (Vmessage_stack, echo_area_buffer, echo_buffer,
7289 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
7290 (message2_nolog): Use set_message and clear_message.
7291 (message3): Rename parameter len to nbytes to make clear what
7292 it is.
7293 (message3_nolog): Ditto. Use set_message and clear_message.
7294 (update_echo_area): Rewritten.
7295 (with_echo_area_buffer): New.
7296 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
7297 (setup_echo_area_for_printing): New.
7298 (display_echo_area, display_echo_area_1): New.
7299
7300 (current_message, current_message_1): New.
7301 (push_message, restore_message, pop_message,
7302 check_message_stack): New.
7303 (truncate_echo_area): Rewritten.
7304 (truncate_message_1): New.
7305 (set_message, set_message_1, clear_message): New.
7306 (echo_area_display): Rewritten.
7307 (redisplay_internal): Check for needed echo area update
7308 differently.
7309 (redisplay_preserve_echo_area): Rewritten.
7310 (redisplay_window): Check for mini-window displaying echo area
7311 message differently.
7312 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
7313 Remove initialzation of removed variables.
7314 (init_xdisp): Remove references to removed variables.
7315
7316 * dispnew.c (adjust_frame_message_buffer): Removed references
7317 to echo_area_glyphs and previous_echo_glyphs.
7318 (direct_output_for_insert): Check for mini-window displaying
7319 echo area message differently.
7320 (update_frame): Likewise.
7321 (set_window_cursor_after_update): Likewise. In echo area,
7322 don't try to set cursor on rows that aren't enabled.
7323
7324 * print.c: Remove conditional compilation on `standalone'.
7325 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
7326 glyph_to_str_cpy): Remove that section because GLYPHs are no
7327 longer used in that way.
7328 (PRINTDECLARE): Add multibyte.
7329 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
7330 (printbufidx): Removed.
7331 (printchar, strout): Rewritten.
7332
7333 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
7334 a struct kboard.
7335 (echo_kboard): New.
7336 (echo_now): Set echo_kboard to the current kboard.
7337 (cancel_echoing): Set echo_kboard to null.
7338 (cmd_error_internal): Use clear_message, remove references
7339 to echo_area_glyphs and echo_area_message.
7340 (command_loop_1): Check for echo area messages differently.
7341 (read_char): Likewise.
7342 (record_menu_key): Use clear_message.
7343 (Fexecute_extended_command): Check for echo area messages
7344 differently. Use push_message, restore_message, pop_message.
7345
7346 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
7347 pop_message.
7348
7349 * emacs.c (shut_down_emacs): Call check_message_stack.
7350
7351 * lisp.h: Add function prototypes and extern declarations for
7352 new functions and variables.
7353
7354 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
7355 pop_message.
7356
7357 * minibuf.c (read_minibuf): Use clear_message instead of
7358 setting echo_area_glyphs.
7359 (Fminibuffer_completion_help): Ditto.
7360
7361 * editfns.c (Fcurrent_message): Rewritten.
7362
7363 * frame.c, window.h: Remove references to echo_area_glyphs
7364 and previous_echo_glyphs.
7365
73661999-08-21 Dave Love <fx@gnu.org>
7367
7368 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
7369 * aix4-1.h: Likewise.
7370
7371 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
7372
73731999-08-20 Gerd Moellmann <gerd@gnu.org>
7374
7375 * xfns.c: Remove tiff34 prefix from include.
7376
73771999-08-20 Dave Love <fx@gnu.org>
7378
7379 * cm.c: Revert previous change.
7380
73811999-08-19 Gerd Moellmann <gerd@gnu.org>
7382
7383 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
7384 under scroll bar with width FRAME_SCROLL_BAR_COLS.
7385
73861999-08-18 Dave Love <fx@gnu.org>
7387
7388 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
7389 stdlib.h.
7390
7391 * doprnt.c: Use stdlib.h, unistd.h.
7392
7393 * config.in: Add HAVE_TERMCAP_H.
7394
7395 * cm.c: Use termcap.h.
7396
73971999-08-18 Gerd Moellmann <gerd@gnu.org>
7398
7399 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
7400 FRAME_X_WINDOW (f) being null at the of the function. If widgets
7401 cannot be created we will already have crashed earlier. Call
7402 lw_set_main_areas with a null menu-bar widget, so that we have
7403 a reasonable default.
7404 (Fx_create_frame): Rearranged so that Lisp errors during frame
7405 initialization cause less damage. Initialize menu bar widget
7406 here.
7407
74081999-08-18 Gerd Moellmann <gerd@gnu.org>
7409
7410 * dispnew.c (update_frame_line): Fix previous change. If writing
7411 whole line clear to end of frame.
7412
74131999-08-17 Gerd Moellmann <gerd@gnu.org>
7414
7415 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
7416 and `right-bitmap-area' if position is in the bitmap areas. This
7417 avoids an error when clicking on the bitmap areas. Instead, they
7418 are currently treated like clicks inside the window.
7419 (coordinates_in_window): Return 5 and 6 for bitmap areas.
7420 (Qleft_bitmap_area, Qright_bitmap_area): New.
7421 (syms_of_window): Initialize new symbols.
7422
7423 * dispnew.c (update_frame_line): If writing whole line,
7424 don't write trailing spaces unless we must.
7425
7426 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
7427 (redisplay_internal): Register unwind_redisplay with
7428 register_unwind_protect.
7429 (try_window_reusing_current_matrix): If new start > old start,
7430 give up if start pos of first reusable row is not equal to new
7431 start.
7432
7433 * eval.c (Fsignal): Don't reset redisplaying_p here.
7434
7435 * xterm.c (expose_area): If row extends face to end of line,
7436 write the whole line.
7437
74381999-08-16 Gerd Moellmann <gerd@gnu.org>
7439
7440 * dispextern.h (struct it): Remove member
7441 show_trailing_whitespace_p.
7442
7443 * dispnew.c (direct_output_for_insert): Use
7444 Vshow_trailing_whitespace instead of former iterator member
7445 show_trailing_whitespace_p.
7446 (direct_output_forward_char): Don't do it if hightlighting
7447 trailing whitespace.
7448
7449 * xdisp.c (Qshow_trailing_whitespace): Removed.
7450 (Vshow_trailing_whitespace): Added.
7451 (init_iterator): Remove initialization code for
7452 show_trailing_whitespace_p.
7453 (redisplay_internal): Don't try cursor movement in this_line
7454 if showing trailing whitespace.
7455 (redisplay_window): Likewise for cursor movement in current
7456 matrix and try_window_id.
7457 (try_window_reusing_current_matrix): Likewise.
7458 (trailing_whitespace_p): Return 0 if trailing whitespace is
7459 in front of point.
7460 (display_line): Use Vshow_trailing_whitespace instead of
7461 former iterator member show_trailing_whitespace_p.
7462 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
7463
74641999-08-16 Gerd Moellmann <gerd@gnu.org>
7465
7466 * window.c (Fpos_visible_in_window_p): Rewritten.
7467
7468 * xfaces.c (add_to_log): Renamed from display_message.
7469 Don't display messages in echo area.
7470
7471 * xterm.c (x_draw_glyph_string_box): Use the background width
7472 of the glyph string for the width of the box.
7473
74741999-08-16 Stefan Monnier <monnier@cs.yale.edu>
7475
7476 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
7477
74781999-08-16 Geoff Voelker <voelker@cs.washington.edu>
7479
7480 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
7481 background first, and then set other parameters that might
7482 depend upon their new values.
7483
74841999-08-15 Gerd Moellmann <gerd@gnu.org>
7485
7486 * xfaces.c (Vfont_list_limit): New.
7487 (syms_of_xfaces): Make it a user-variable.
7488 (DEFAULT_FONT_LIST_LIMIT): New.
7489 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
7490 maximally that number of fonts, otherwise use
7491 DEFAULT_FONT_LIST_LIMIT.
7492 (Fx_font_family_list): Bind `font-list-limit' to higher values
7493 until we have all fonts.
7494 (Fxfont_list): Additionally return the full names of fonts and
7495 their registry and encoding.
7496
7497 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
7498 Simplify clearing "under" scroll bar.
7499
7500 * window.c (Qfixed_window_size): New.
7501 (syms_of_window): Initialiaze it.
7502 (check_all_windows): Add return type void.
7503 (window_fixed_size_p): New. Return non-zero if window
7504 is fixed-size.
7505 (window_min_size_1): New.
7506 (window_min_size): Handle fixed-size windows.
7507 (size_window): New. Rewritten combination of set_window_height and
7508 set_window_width that handles fixed-size windows.
7509 (set_window_height): Call it.
7510 (set_window_width): Call it.
7511 (Fsplit_window): Give an error on attempt to split a fixed-size
7512 window.
7513 (change_window_height): Partly rewritten to handle fixed-size
7514 windows.
7515
75161999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7517
7518 * process.c (Fopen_network_stream): Fix previous change.
7519
75201999-08-13 Karl Heuer <kwzh@gnu.org>
7521
7522 * xdisp.c (line_number_display_limit_width): New var.
7523 (decode_mode_spec): Use it instead of hardcoded value.
7524 (syms_of_xdisp): Defvar it.
7525
75261999-08-13 Richard M. Stallman <rms@gnu.org>
7527
7528 * eval.c (run_hook_list_with_args): Gcpro `globals'.
7529 (run_hook_with_args): Likewise.
7530
7531 * window.h (struct window): New field too_small_ok.
7532
7533 * window.c (set_window_height, set_window_width):
7534 If window starts out "too small", set its too_small_ok flag.
7535 If window's too_small_ok flag is set, don't delete it
7536 unless it is so small it would cause a crash.
7537
75381999-08-13 Gerd Moellmann <gerd@gnu.org>
7539
7540 * window.c (MINSIZE): Removed.
7541 (window_min_size): New.
7542 (set_window_height): Use window_min_size.
7543 (change_window_height): Ditto.
7544
75451999-08-12 Gerd Moellmann <gerd@gnu.org>
7546
7547 * indent.c (vmotion): Don't add in mini-buffer prompt width
7548 if prompts are inserted into mini-buffer.
7549
75501999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7551
7552 * config.in: Add HAVE_GETADDRINFO.
7553 * process.c (Fopen_network_stream): Use getaddrinfo.
7554
75551999-08-11 Gerd Moellmann <gerd@gnu.org>
7556
7557 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
7558 glyphs to -1.
7559
7560 * xdisp.c (face_before_or_after_it_pos): If position after
7561 or before iterator's current position in the buffer is out
7562 of bounds, return the iterator's original face id.
7563
7564 * dispnew.c (mirror_make_current): If desired row isn't enabled,
7565 just swap glyphs pointers between current and desired row.
7566 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
7567 desired matrix method string to current matrix.
7568
75691999-08-11 Kenichi Handa <handa@etl.go.jp>
7570
7571 * lisp.h (CHAR_MODIFIER_MASK): New macro.
7572
7573 * lread.c (read_escape): For Control modifier, pay attention to
7574 multibyte character.
7575 (read1): Likewise. Singal error or a multibyte character which
7576 has a modifer bit. Check validity of Shift modifer.
7577
7578 * charset.c (non_ascii_char_to_string): Handle modifier bits as
7579 the same as Lisp reader.
7580
75811999-08-10 Richard M. Stallman <rms@gnu.org>
7582
7583 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
7584
75851999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
7586
7587 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
7588
75891999-08-10 Eli Zaretskii <eliz@gnu.org>
7590
7591 * msdos.c (IT_set_face): Abort if the default face is not realized
7592 and cached.
7593 (IT_write_glyphs): Reset the screen face to the default face
7594 before writing glyphs.
7595
7596 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
7597 colors from the frame here.
7598 (realize_tty_face) [MSDOS]: Do it here. Update the face
7599 attributes with the actual name of the color taken from the
7600 frame.
7601
7602 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
7603 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
7604
7605 * frame.c (Fframe_parameters): Swap foreground and background
7606 colors returned in frame parameters if the frame has reverse in
7607 its parameter alist.
7608 (Fmake_terminal_frame): Make a unique copy of face_alist for
7609 each frame.
7610
76111999-08-07 Richard Stallman <rms@gnu.org>
7612
7613 * buffer.c (Fprevious_overlay_change): Just return
7614 the answer obtained from overlays_at.
7615
7616 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
7617 Use XpmCloseness and attrs.closeness instead.
7618
76191999-08-06 Richard Stallman <rms@gnu.org>
7620
7621 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
7622
76231999-08-06 Geoff Voelker <voelker@cs.washington.edu>
7624
7625 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
7626 Ffile_attributes_lessp): New functions.
7627 (Fdirectory_files): Use directory_files_internal.
7628 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
7629 Ffile_attributes_lessp.
7630
7631 * w32.c (stat): Check for directory ending in separator when
7632 doing readdir fast path.
7633
7634 * w32fns.c (x_set_icon_type): Support setting frame icons.
7635 * w32term.c (x_bitmap_icon): New function.
7636 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
7637
76381999-08-06 Gerd Moellmann <gerd@gnu.org>
7639
7640 * xdisp.c (set_iterator_to_next): After delivering a character
7641 from a display vector, restore face and charset to what they were
7642 before the display vector was processed.
7643
76441999-08-06 Gerd Moellmann <gerd@gnu.org>
7645
7646 * xdisp.c (reseat_at_next_visible_line_start): New parameter
7647 on_newline_p.
7648 (set_iterator_to_next): After delivering last char
7649 from display vector, reseat on next visible line start if
7650 dpvec_char_len < 0.
7651 (next_element_from_buffer): Set dpvec_char_len to -1 for
7652 selective display.
7653
76541999-08-06 Gerd Moellmann <gerd@gnu.org>
7655
7656 * xdisp.c (compute_line_metrics): If first line's physical ascent
7657 is larger than its logical ascent, use the physical ascent, and
7658 make the row taller. Set row's overlapping_p flag.
7659
7660 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
7661 (direct_output_for_insert): Ditto.
7662
7663 * dispextern.h (struct glyph_row): Add overlapping_p.
7664
7665 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
7666
7667 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
7668 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
7669
7670 * dispnew.c (direct_output_for_insert): Don't use this method if
7671 row is overlapped by others.
7672 (update_text_area): Write full line if current line is overlapped.
7673 (redraw_overlapped_rows): New.
7674 (update_window): Call it.
7675 (redraw_overlapping_rows): New.
7676 (update_window): Call it.
7677 (scrolling_window): Make sure overlapped_p flag in current rows is
7678 unchanged.
7679 (row_equal_p): Take rows overlapped_p flag into account.
7680
7681 * dispextern.h (struct glyph_row): Add flag overlapped_p.
7682
7683 * xterm.c (x_fix_overlapping_area): New.
7684 (x_redisplay_interface): Add x_fix_overlapping_area.
7685
7686 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
7687
76881999-08-06 Gerd Moellmann <gerd@gnu.org>
7689
7690 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
7691 (struct glyph_string): Add member for_overlaps_p.
7692 (x_get_glyph_string_clip_rect): If glyph string draws foreground
7693 of overlapping rows, clip to window bottom.
7694 (x_fill_glyph_string): Add parameter overlaps_p.
7695 (x_fill_composite_glyph_string): Ditto.
7696 (BUILD_GLYPH_STRINGS): Ditto.
7697 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
7698 (x_draw_glyph_string): Don't draw anything but the foreground
7699 if glyph string draws row overlaps.
7700
7701 * dispnew.c (direct_output_for_insert): Don't use this
7702 optimization for rows that overlap others.
7703 (update_window_line): Return non-zero if display has changed.
7704 (update_text_area): Ditto.
7705 (update_window): Record if display has been changed.
7706
7707 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
7708
7709 * dispextern.h (struct redisplay_interface): Add
7710 fix_overlapping_area.
7711
7712 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
7713
7714 * dispextern.h (struct glyph): Add overlaps_vertically_p.
7715
7716 * xterm.c (x_produce_image_glyph): Compute iterator's physical
7717 ascent and descent.
7718 (x_produce_stretch_glyph): Ditto.
7719 (x_produce_glyphs): Ditto.
7720
7721 * xdisp.c (init_iterator): Reset physical line height info
7722 after producing special glyphs.
7723 (display_toolbar_line): Set physical line height info.
7724 (compute_line_metrics): Ditto.
7725 (display_line): Ditto.
7726 (display_string): Ditto.
7727
7728 * term.c (produce_glyphs): Set iterator's physical height
7729 information.
7730
7731 * dispnew.c (blank_row): Compute glyph row's physical height.
7732 (row_equal_p): Take physical row heights into account.
7733 (direct_output_for_insert): Ditto.
7734 (update_text_area): Ditto.
7735
7736 * dispextern.h (struct glyph_row): Add phys_ascent and
7737 phys_height.
7738 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
7739 max_phys_descent.
7740
77411999-08-04 Stefan Monnier <monnier@cs.yale.edu>
7742
7743 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
7744 Fswitch_to_buffer.
7745 (no_switch_buffer): New function.
7746 (Fswitch_to_buffer): Call them. Don't get confused
7747 by "same-window" buffers in a dedicated frame.
7748
7749 * window.c (display-buffer): Don't get confused
7750 by "same-window" buffers in a dedicated frame.
7751
77521999-08-04 Andreas Schwab <schwab@gnu.org>
7753
7754 * insdel.c (insert_from_string_1): Check gap size against number
7755 of outgoing bytes, not incoming bytes.
7756
77571999-08-03 Tom Breton <tob@world.std.com>
7758
7759 * lread.c (read1): Added circular reading code to #N=.
7760 (SUBSTITUTE): New macro.
7761 (seen_list): New variable.
7762 (substitute_object_in_subtree): New function.
7763 (substitute_object_recurse): New function.
7764 (substitute_in_interval): New function.
7765
77661999-08-02 Eli Zaretskii <eliz@gnu.org>
7767
7768 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
7769
7770 * frame.c (make_terminal_frame): Don't call init_frame_faces if
7771 noninteractive, for termcap frames as well.
7772
7773 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
7774 frames.
7775
77761999-08-01 Richard Stallman <rms@gnu.org>
7777
7778 * fns.c (internal_equal): Correct overlay comparison.
7779
83c8f461 77801999-07-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
7781
7782 * xfns.c (x_set_internal_border_width):
7783 Call do_pending_window_change. Don't block input, don't call XFlush.
7784 (x_set_vertical_scroll_bars): Call do_pending_window_change.
7785 (x_set_scroll_bar_width, x_set_font): Likewise.
7786
7787 * frame.c (Fset_frame_height): Call do_pending_window_change.
7788 (Fset_frame_width, Fset_frame_size): Likewise.
7789
7790 * xterm.c (x_set_window_size): When calling change_frame_size,
7791 specify 1 for DELAY.
7792
7793 * widget.c (EmacsFrameSetCharSize): Don't call
7794 do_pending_window_change here.
7795
77961999-07-30 Dave Love <fx@gnu.org>
7797
7798 * config.in: Add HAVE_STDLIB_H.
7799
78001999-07-30 Richard M. Stallman <rms@gnu.org>
7801
7802 * process.c (create_process): Detect failure of `pipe'.
7803
78041999-07-30 Keisuke Nishida <kei@psn.net>
7805
7806 * alloc.c (allocate_vectorlike): Add missing increment.
7807
7808 * data.c (Fdefalias): Call Ffset instead of duplicating code.
7809
7810 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
7811 before calling indirect_function.
7812
78131999-07-30 Eli Zaretskii <eliz@gnu.org>
7814
7815 * dispextern.h (load_color, lookup_derived_face): Declare
7816 prototypes.
7817
7818 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
7819 it will be done later.
7820
7821 * frame.c (make_terminal_frame) [MSDOS]: Don't call
7822 init_frame_faces if non-interactive.
7823 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
7824 array with a call to msdos_stdcolor_name. The font name is now
7825 "ms-dos", consistent with realize_tty_face.
7826
7827 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
7828 MSDOS frame.
7829
7830 * window.c (Fset_window_configuration) [MSDOS]: Don't call
7831 x_set_toolbar_lines.
7832
7833 * xfaces.c (load_color): Remove static from definition and remove
7834 prototype.
7835 [MSDOS]: Add a DOS-specific version of load_color.
7836 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
7837 (lookup_derived_face): New function.
7838 (realize_default_face): Support MSDOS frames.
7839 [MSDOS]: If fore/background colors are unspecified, inherit them
7840 from the frame.
7841 (realize_face): Support MSDOS frames.
7842 (realize_tty_face): Support MSDOS frames.
7843 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
7844 load_color to try to find a suitable approximation. If the face
7845 is inverse-video, swap the foreground and background colors.
7846
7847 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
7848 functions.
7849
7850 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
7851
7852 * msdos.h: Remove redundant declarations (most of them are now in
7853 dispextern.h).
7854
7855 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
7856 Use default frame colors if the face doesn't specify them; invert
7857 the colors if highlight is ON.
7858 (IT_write_glyphs): Rewritten for the new redisplay engine.
7859 (IT_change_line_highlight): Add (unused) parameter Y, since that's
7860 how the hook is called by term.c.
7861 (IT_copy_glyphs): New function, copies an area of the display in
7862 video RAM.
7863 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
7864 redisplay now calls it even if char_ins_del_ok is zero.
7865 (IT_set_frame_parameters): Prototype changed. Calls the new
7866 load_color. Puts the new fore/background colors into the default
7867 face on current frame.
7868 (IT_menu_display): Rewritten to handle the new struct glyph
7869 instead of a char array.
7870 (XMenuActivate): Call lookup_derived_face to create and use
7871 special faces for the pop-up and drop-down menus.
7872
78731999-07-29 Gerd Moellmann <gerd@gnu.org>
7874
7875 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
7876 XawScrollbarSetThumb if thumb parameters haven't changed because
7877 that function apparently isn't optimized for this case.
7878
78791999-07-29 Eli Zaretskii <eliz@gnu.org>
7880
7881 * msdos.c (getdefdir): Don't return failure indication when
7882 _fixpath sets errno to ENOSYS.
7883
78841999-07-28 Gerd Moellmann <gerd@gnu.org>
7885
7886 * xdisp.c (string_char_and_length): New. Use it everywhere
7887 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
7888
78891999-07-28 Kenichi Handa <handa@etl.go.jp>
7890
7891 * fns.c (count_combining): New function.
7892 (struct textprop_rec): New structure.
7893 (concat): Copy text properties correctly when byte combining
7894 occurs.
7895
78961999-07-28 Gerd Moellmann <gerd@gnu.org>
7897
7898 * xterm.c (x_setup_relief_color): Don't try smart color allocation
7899 if display is mono.
7900 (x_draw_row_bitmaps): If face has stipple, don't switch
7901 to foreground color for clearing areas, and set the fill style.
7902
7903 * xfaces.c (load_face_colors): Load background color if setting
7904 stipple, too.
7905 (prepare_face_for_display): Use FillOpaqueStippled instead of
7906 FillStippled.
7907
79081999-07-26 Ken'ichi Handa <handa@gnu.org>
7909
7910 * xterm.c (x_find_ccl_program): Add casting.
7911
7912 * w32fns.c (w32_find_ccl_program): Add casting.
7913
79141999-07-27 Gerd Moellmann <gerd@gnu.org>
7915
7916 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
7917
7918 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
7919 because this will try to access a nonexisting widget.
7920
79211999-07-26 Markus Rost <rost@gnu.org>
7922
7923 * fns.c (Fgethash): Fix order of variables (patch by gerd).
7924 (Fputhash): Ditto.
7925 (Fremhash): Ditto.
7926
79271999-07-26 Gerd Moellmann <gerd@gnu.org>
7928
7929 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
7930 value to frame width and height.
7931
7932 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
7933 into account for full-width windows. Don't add scroll bar width
7934 to width of clip rect.
7935 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
7936 (x_set_glyph_string_background_width): Add 1 to background width.
7937 (x_draw_glyphs): Take internal border into account for full-width
7938 lines.
7939
79401999-07-26 Richard M. Stallman <rms@gnu.org>
7941
7942 * xfns.c (x_set_mouse_color): Always unload the old color.
7943 Don't allow nil as color value.
7944 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
7945 Always unload the old color.
7946
7947 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
7948
79491999-07-26 Karl Heuer <kwzh@gnu.org>
7950
7951 * fns.c (Fy_or_n_p): Doc fix.
7952
79531999-07-26 Kenichi Handa <handa@etl.go.jp>
7954
7955 * ccl.h (setup_ccl_program): The type is changed to `int'.
7956
7957 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
7958 stored in the following CCL code. Adjusted for the change of
7959 Vccl_program_table.
7960 (resolve_symbol_ccl_program): Adjusted for the new style of
7961 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
7962 is resolving failed.
7963 (ccl_get_compiled_code): New function.
7964 (setup_ccl_program): Function type changed from `void' to `int'.
7965 Resolve symbols in CCL_PROG.
7966 (Fccl_program_p): New function.
7967 (Fccl_execute): Get compiled CCL code by just calling
7968 setup_ccl_program.
7969 (Fccl_execute_on_string): Likewise.
7970 (Fregister_ccl_program): Adjusted for the change of
7971 Vccl_program_table.
7972
7973 * coding.c (setup_coding_system): Get compiled CCL code by just
7974 calling setup_ccl_program.
7975
7976 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
7977 calling setup_ccl_program.
7978
7979 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
7980 calling setup_ccl_program.
7981
79821999-07-23 Gerd Moellmann <gerd@gnu.org>
7983
7984 * xfaces.c (frame_update_line_height): Just use the height of the
7985 frame's fontset or font, instead of taking face fonts into
7986 account.
7987
7988 * xdisp.c (get_next_display_element): Display DEL as `^?'.
7989
79901999-07-23 Richard M. Stallman <rms@gnu.org>
7991
7992 * window.c (Fsplit_window): For default size, round up for left window.
7993
79941999-07-21 Joe Ramey <ramey@ti.com>
7995
7996 * filelock.c (lock_if_free): Return -1 if check_lock_owner
7997 has returned -1 (lockfile exists but is not a symlink?).
7998
79991999-07-20 Gerd Moellmann <gerd@gnu.org>
8000
8001 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
8002 because of a change in cursor_gc made in 20.4.
8003
80041999-07-19 Gerd Moellmann <gerd@gnu.org>
8005
8006 * xterm.c (x_calc_absolute_position): Subtract menu bar height
8007 for YNegative, if using X toolkit.
8008
8009 * xfns.c (x_real_positions): Don't subtract window borders
8010 from positions returned.
8011
80121999-07-17 Gerd Moellmann <gerd@gnu.org>
8013
8014 * xrdb.c (x_load_resources): Set double-click time defaults
8015 for Motif list boxes from double-click-time.
8016
8017 * fns.c (Vhash_table_tests): Remvoed.
8018 (Qhash_table_test): New.
8019 (syms_of_fns): Initialize Qhash_table_test.
8020 (Fmake_hash_table): Look up user-defined tests in symbol prop
8021 `hash-table-test'.
8022 (Fdefine_hash_table_test): Store test and hash function as
8023 symbol prop `hash-table-test'.
8024 (make_hash_table): Add parameters user_test and user_hash.
8025
8026 * window.c (set_window_buffer): Set window margins for tty
8027 frames, too.
8028 (Fset_window_margins): Ditto.
8029
8030 * term.c (append_glyph): Use glyph area of iterator instead of
8031 always TEXT_AREA.
8032
8033 * dispnew.c (update_frame_1): Add left margin width to cursor
8034 hpos.
8035 (direct_output_for_insert): Ditto.
8036 (direct_output_forward_char): Ditto.
8037
8038 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
8039
8040 * dispextern.h (struct glyph_matrix): Add top_line_p.
8041
80421999-07-16 Gerd Moellmann <gerd@gnu.org>
8043
8044 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
8045 instead.
8046
8047 * fns.c (cmpfn_eq): Add hash code parameters.
8048 (cmpfn_eql): Ditto.
8049 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
8050 (cmpfn_user_defined): Likewise.
8051
80521999-07-15 Gerd Moellmann <gerd@gnu.org>
8053
8054 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
8055
8056 * fns.c (maybe_resize_hash_table): Correct computation of
8057 index vector size.
8058 (make_hash_table): Ditto.
8059 (Fmakehash): New.
8060
8061 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
8062
8063 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
8064 (survives_gc_p): Make it externally visible.
8065 (mark_object): Ditto.
8066
8067 * fns.c (remove_hash_entry): Removed.
8068 (sweep_weak_hash_tables): New.
8069
8070 * print.c (print): Print more information about hash tables.
8071
8072 * xfns.c (image_spec_hash): Removed.
8073 (lookup_image): Use sxhash instead of image_spec_hash.
8074 (image_spec_equal_p): Removed.
8075 (lookup_image): Use Fequal instead of image_spec_equal_p.
8076
80771999-07-14 Gerd Moellmann <gerd@gnu.org>
8078
8079 * lisp.h (P_): Moved to top of file.
8080
8081 * fns.c (make_hash_table): Set new members.
8082
8083 * alloc.c (mark_object): Mark hash table's user_hash_function.
8084 Mark index vector for weak hash tables.
8085
8086 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
8087 user_hash_function, cmpfn, and hashfn.
8088
8089 * fns.c (build_hash): Removed.
8090 (hash_test): Removed.
8091 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
8092 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
8093
80941999-07-13 Gerd Moellmann <gerd@gnu.org>
8095
8096 * alloc.c (survives_gc_p): New.
8097
8098 * print.c (print): Add hash table handling.
8099
8100 * alloc.c (mark_object): Add code to mark hash tables.
8101
8102 * lisp.h (GC_HASH_TABLE_P): New.
8103
8104 * emacs.c (main): Call init_fns.
8105
8106 * fns.c (init_fns): New.
8107
8108 * fns.c: Add hash table implementation.
8109
8110 * lisp.h (PVEC_HASH_TABLE): New.
8111 (struct Lisp_Hash_Table): New.
8112 (XHASH_TABLE): New.
8113 (XSET_HASH_TABLE): New.
8114 (HASH_TABLE_P): New.
8115 (CHECK_HASH_TABLE): New.
8116 (DEFAULT_HASH_SIZE): New.
8117 (DEFAULT_REHASH_THRESHOLD): New.
8118 (DEFAULT_REHASH_SIZE): New.
8119
8120 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
8121 (x_write_glyphs): Compute overwritten cursor using real start
8122 and end positions of display.
8123 (x_insert_glyphs): Ditto.
8124
81251999-07-10 Gerd Moellmann <gerd@gnu.org>
8126
8127 * keyboard.c (read_char): Use message3_nolog to show help-echo.
8128
8129 * dispnew.c (blank_row): Add y-position as parameter. Compute
8130 visible height.
8131
8132 * xdisp.c (next_element_from_string): Give padding spaces
8133 a position of -1.
8134
8135 * dispnew.c (adjust_glyph_matrix): Some work to support
8136 marginals areas on tty frames in a future version.
8137 (allocate_matrices_for_frame_redisplay): Ditto.
8138
8139 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
8140 to zero if number of glyphs in the row is <= 1.
8141
81421999-07-09 Gerd Moellmann <gerd@gnu.org>
8143
8144 * dispnew.c (buffer_posn_from_coords): Take left marginal area
8145 into account.
8146
8147 * xdisp.c (handle_display_prop): Don't reset area if handing
8148 a property from a string that came from a `display' property.
8149 (handle_single_display_prop): Don't handle recursive `display'
8150 properties.
8151 (handle_single_display_prop): Handle some display property
8152 forms for terminal frames.
8153 (Qimage): Moved here from xfns.c.
8154
8155 * dispextern.h (struct it): New field string_from_display_prop_p.
8156
8157 * xterm.c (x_clip_to_row): Don't let clip_rect include top
8158 line.
8159
81601999-07-08 Gerd Moellmann <gerd@gnu.org>
8161
8162 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
8163
8164 * window.c (set_window_buffer): Set window's vscroll to zero.
8165
8166 * xdisp.c (QCwhen): New.
8167 (display_prop_end): New.
8168 (handle_single_display_prop): Use it.
8169 (debug_method_add): Print buffer name if tracing.
8170 (try_window_reusing_current_matrix): Compute visible height
8171 of reused rows. Fix cursor position calculation in case of
8172 top-line.
8173
8174 * dispextern.h (struct redisplay_interface): Add parameter
8175 cursor_on_p to update_window_end_hook.
8176
8177 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
8178
81791999-07-07 Gerd Moellmann <gerd@gnu.org>
8180
8181 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
8182 doesn't become negative when decrementing it.
8183
8184 * eval.c (Fsignal): Reset redisplaying_p to zero.
8185
8186 * xdisp.c (try_window_reusing_current_matrix): Call hooks
8187 for window update.
8188 (try_window_id): Ditto.
8189
8190 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
8191 (x_scroll_run): Ditto.
8192 (any_help_event_p): New.
8193 (x_initialize): Set it to zero.
8194 (XTread_socket): Clear help echo only if any_help_event_p.
8195
8196 * xdisp.c (init_iterator): Set top_line_p.
8197 (start_display): Use correct initial y if top-line is present.
8198 (make_cursor_line_fully_visible): Bug fixes for top-line.
8199 (try_scrolling): Ditto.
8200 (try_window_reusing_current_matrix): Ditto.
8201
8202 * dispextern.h (struct it): Add top_line_p.
8203
8204 * dispnew.c (shift_glyph_matrix): Move some computations out
8205 of the loop.
8206
8207 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
8208 XFLOATINT.
8209
82101999-07-06 Gerd Moellmann <gerd@gnu.org>
8211
8212 * dispnew.c (update_frame_1): When setting cursor in echo area,
8213 skip only over padding spaces at the end.
8214
8215 * xfaces.c (realize_tty_face): Set face's font_name field to
8216 "tty".
8217
8218 * term.c (update_end): Turn cursor on only if selected window's
8219 cursor_off_p flag is not set.
8220
82211999-07-05 Gerd Moellmann <gerd@gnu.org>
8222
8223 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
8224 (TS_cursor_normal): Renamed from TS_end_visual_mode.
8225 (TS_cursor_invisible): New.
8226 (term_init): Initialize TS_cursor_invisible.
8227 (tty_hide_cursor): New.
8228 (tty_show_cursor): New.
8229 (update_end): Show tty cursor.
8230 (update_begin): Hide tty cursor to prevent cursor flickering
8231 during redisplays triggered by timers (stealth fontification).
8232
8233 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
8234
8235 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
8236 in scroll bars.
8237 (x_handle_toolbar_click): Set modifier bits.
8238
82391999-07-04 Gerd Moellmann <gerd@gnu.org>
8240
8241 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
8242 instead of a pointer to a volatile input_event.
8243 (kbd_buffer_store_event): Remove volatile modifier from
8244 declaration of local variable `sp'.
8245 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
8246 to kbd_fetch_ptr.
8247
82481999-07-03 Gerd Moellmann <gerd@gnu.org>
8249
8250 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
8251 only if buffer is modified. Return quickly if changes are
8252 above window start.
8253
82541999-07-02 Gerd Moellmann <gerd@gnu.org>
8255
8256 * dispextern.h (HSCROLL_WINDOWS): Removed.
8257
8258 * xdisp.c (mark_window_display_accurate): Don't set
8259 w->region_showing.
8260 (redisplay_internal): Don't call redraw_garbaged_frames.
8261
82621999-07-01 Gerd Moellmann <gerd@gnu.org>
8263
8264 * xdisp.c (echo_area_display): Don't display truncation marks
8265 for messages because 20.4 doesn't do it either.
8266 (redisplay_window): Case same window start. Instead of giving
8267 up when cursor is partially visible, make it fully visible.
8268 (mark_window_display_accurate): Some cleanup. Record window's
8269 last cursor information.
8270 (debug_method_add): Improved.
8271 (redisplay_internal): Record last cursor info only if not
8272 consider_all_windows_p.
8273
8274 * dispnew.c (update_window): Update top line after scrolling.
8275 (blank_row): Renamed from make_empty_enabled_row.
8276 (increment_glyph_row_buffer_positions): Increment positions
8277 in buffers, only.
8278
8279 * window.c (Fcoordinates_in_window_p): Add top-line to doc
8280 string.
8281
82821999-06-30 Gerd Moellmann <gerd@gnu.org>
8283
8284 * dispnew.c (update_window): Check that updated row is visible.
8285
8286 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
8287 top of window differently.
8288
8289 * xdisp.c (try_window_reusing_current_matrix): Don't do it
8290 if region is showing.
8291
8292 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
8293 avoiding matrix reallocation. Set window_vscroll in matrix.
8294
8295 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
8296
26901792
DL
8297 * xdisp.c (debug_method_add): New.
8298 (debug_redisplay_method): Removed.
8299 (try_window_reusing_current_matrix): Handle case where old
8300 window start is the same as new window start.
8301
8302 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
8303 an array instead of a pointer.
8304
26901792
DL
8305 * xfns.c (Fx_show_tip): Undo previous change.
8306
8307 * xterm.c (x_append_glyph): Clear glyph->u.val.
8308
8309 * dispextern.h (struct glyph): Increase size of face_id bit-field
8310 for CHAR_GLYPH to 12.
8311
83121999-06-29 Gerd Moellmann <gerd@gnu.org>
8313
8314 * xfaces.c (x_charset_registry): Make it externally visible.
8315
83161999-06-28 Gerd Moellmann <gerd@gnu.org>
8317
8318 * dispnew.c (update_window): Use mode_line_p flag of rows
8319 instead of WINDOW_WANTS_MODELINE_P.
8320
8321 * xterm.c (clear_mouse_face): Make externally visible.
8322
8323 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
8324
8325 * xterm.c (expose_line): Handle exposure of top-lines.
8326
8327 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
8328 if mouse_face_mouse_frame is null.
8329
8330 * xdisp.c (redisplay_window): If window is echo_area_window,
8331 and update_mode_line is set, update menubar and toolbar.
8332
8333 * dispnew.c (space_glyph): Set its charpos to -1.
8334 (update_frame_1): Ignore trailing padding spaces.
8335
8336 * xdisp.c (next_element_from_c_string): Set position of padding
8337 glyphs to -1.
8338
83391999-06-27 Gerd Moellmann <gerd@gnu.org>
8340
8341 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
8342 XQueryColor.
8343
8344 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
8345 (set_cursor_from_row): Skip over glyphs having a null object at
8346 the start of rows.
8347 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
8348 glyphs.
8349 (handle_invisible_prop): Compute next change only when needed.
8350 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
8351 line.
8352
83531999-06-26 Gerd Moellmann <gerd@gnu.org>
8354
8355 * xrdb.c (x_load_resources): Don't set resource for double-click
8356 time.
8357
8358 * xdisp.c (try_window_id): Return quickly if all changes are
8359 below the window's current matrix end.
8360
8361 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
8362 parameter.
8363
8364 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
8365 in desired not in current matrix.
8366 (try_window_reusing_current_matrix): Rotate matrices starting
8367 at start_vpos instead of 0.
8368
8369 * xterm.c (expose_window): Use window_text_bottom_y.
8370 (fast_find_position): Ditto.
8371
8372 * xdisp.c (redisplay_window): Use window_text_bottom_y.
8373 (try_window_reusing_current_matrix): Ditto.
8374 (get_last_unchanged_at_beg_row): Ditto.
8375 (init_iterator): Ditto.
8376
8377 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
8378 more row.
8379 (check_matrix_invariants): Use window_text_bottom_y.
8380 (update_window): Ditto.
8381 (scrolling_window): Ditto.
8382
8383 * xdisp.c (window_text_bottom_y): New.
8384
83851999-06-25 Gerd Moellmann <gerd@gnu.org>
8386
8387 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
8388 clearing mouse face.
8389 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
8390 event.xcrossing.focus is not set, and focus is in the menu bar,
8391 set focus frame as if event.xcrossing.focus were set.
8392
83931999-06-24 Gerd Moellmann <gerd@gnu.org>
8394
8395 * keyboard.c (make_lispy_event): Handle mouse on top lines.
8396 * keyboard.c (make_lispy_movement): Ditto.
8397
8398 * window.c (coordinates_in_window): Return 4 if on top line.
8399 (Fcoordinates_in_window_p): Return `top-line' if on top line.
8400
8401 * xdisp.c (window_box_height): Subtract top line height.
8402 (window_box): Add top line height to top y position if top line
8403 exists.
8404 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
8405 the top line row of the window. Set initial y-position to
8406 window's top line height plus delta.
8407 (start_display): Choose start glyph row depending on whether
8408 window has a top line.
8409 (try_scrolling): Take top line height into account for aggressive
8410 scrolling.
8411 (compute_window_start_on_continuation_line): Take top line into
8412 account.
8413 (redisplay_window): Ditto. If top line height has changed,
8414 trigger a new redisplay.
8415 (try_window_reusing_current_matrix): Take top line into account.
8416 (find_last_row_displaying_text): Ditto.
8417 (get_last_unchanged_at_beg_row): DItto.
8418 (try_window_id): Ditto.
8419 (compute_line_metrics): Ditto.
8420
8421 * dispnew.c (shift_glyph_matrix): Compute visible row height
8422 taking top line of window into account.
8423 (update_window): Update top line. If scrolling_window detects
8424 that all rows are equal, only set cursor.
8425 (update_window_line): Call after_update_window_line_hook if
8426 mode_line_p flag of rows has changed.
8427 (scrolling_window): Add parameter top_line_p. Return -1 if
8428 all rows are equal.
8429 (mode_line_string): Add parameter mode_line_p. Handle strings
8430 in top lines.
8431
8432 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
8433 (MATRIX_FIRST_TEXT_ROW): New.
8434 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
8435 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
8436 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
8437 (MATRIX_TOP_LINE_HEIGHT): New.
8438 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
8439 (CURRENT_TOP_LINE_HEIGHT): New.
8440 (DESIRED_TOP_LINE_HEIGHT): New.
8441 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
8442 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
8443 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
8444 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
8445
8446 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
8447 lines.
8448 (x_draw_row_bitmaps): Take top line into account when clearing
8449 bitmap area.
8450 (x_estimate_mode_line_height): Replacement for
8451 x_frame_mode_line_height.
8452 (x_get_glyph_string_clip_rect): Take top line into account.
8453 (x_clear_end_of_line): Ditto.
8454 (note_mode_line_highlight): Add parameter mode_line_p. Handle
8455 top lines.
8456 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
8457 (x_erase_phys_cursor): Take top line into account.
8458
8459 * xdisp.c (window_box_height): Subtract top line height if
8460 window wants a top line.
8461 (display_mode_lines): New.
8462 (redisplay_window): Call it.
8463 (display_mode_line): Add parameters face_id and format.
8464
8465 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
8466 (MATRIX_TOP_LINE_HEIGHT): New.
8467
8468 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
8469
8470 * term.c (estimate_mode_line_height): Renamed from
8471 frame_mode_line_height. Add parameter face_id.
8472 (estimate_mode_line_height_hook): Renamed from
8473 frame_mode_line_height_hook.
8474 (produce_special_glyphs_hook): Removed.
8475 (produce_glyphs_hook): Removed.
8476
84771999-06-23 Gerd Moellmann <gerd@gnu.org>
8478
8479 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
8480 (struct glyph_row): Add mode_line_p.
8481
8482 * xfaces.c (realize_basic_faces): Realize face `top-line'.
8483 (Qtop_line): New.
8484 (syms_of_xfaces): Initialize Qtop_line.
8485
8486 * dispextern.h (TOP_LINE_FACE_ID): New.
8487
8488 * buffer.c (init_buffer_once): Set default for
8489 top_line_format to nil.
8490 (init_buffer_once): Init top_line_format.
8491 (default-top-line-format): New.
8492 (top-line-format): New buffer-local variable.
8493
8494 * buffer.h: Add top_line_format.
8495
8496 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
8497
84981999-06-17 Dave Love <fx@gnu.org>
8499
8500 * xfns.c: Move the PNG section before the JPEG one to avoid
8501 problems surrounding setjmp.h/png.h on GNU/Linux.
8502
85031999-06-17 Gerd Moellmann <gerd@gnu.org>
8504
8505 * xfns.c (x_kill_gs_process): Don't free colors.
8506
85071999-06-17 Dave Love <fx@gnu.org>
8508
8509 * s/gnu-linux.h: Zap spurious ~.
8510
85111999-06-16 Gerd Moellmann <gerd@gnu.org>
8512
8513 * xfns.c (gif_load): Improve multi-image support.
8514
85151999-06-15 Gerd Moellmann <gerd@gnu.org>
8516
8517 * xfns.c (gif_load): Support multi-image files.
8518
8519 * Makefile.in (LIBGIF): Use libungif.
8520
8521 * configure.in (HAVE_GIF): Use libungif instead of libgif
8522 because the former doesn't contain patented compression code.
8523
8524 * xdisp.c (compute_window_start_on_continuation_line): Don't
8525 do it if line start is too far away from window start.
8526
85271999-06-14 Gerd Moellmann <gerd@gnu.org>
8528
8529 * buffer.c (init_buffer_once): Set buffer_local_flags for
8530 scroll_*_aggressively.
8531 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
8532 (init_buffer_once): Set defaults for these variables.
8533 (syms_of_buffer): Add default-scroll-*-aggressively.
8534
8535 * buffer.h (scroll_up_aggressively): New.
8536 (scroll_down_aggressively): New.
8537
8538 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
8539 a static PNG library.
8540
8541 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
8542 in case it's a static library.
8543
8544 * Makefile.in (ctagsfiles): Split so that files starting
8545 with an `x' are found before files starting with `w32'.
8546 (ctagsfiles1): New.
8547 (ctagsfiles2): New.
8548 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
8549
8550 * xdisp.c (compute_window_start_on_continuation_line): New.
8551 (redisplay_window): Use it.
8552 (INFINITY): New.
8553 (reseat_to_string): Use it.
8554 (hscroll_window_tree): Ditto.
8555 (compute_window_start_on_continuation_line): Ditto.
8556 (redisplay_window): Don't force display with a new window start.
8557
85581999-06-06 Gerd Moellmann <gerd@gnu.org>
8559
8560 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
8561 if widget not present.
8562
8563 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
8564
85651999-06-04 Gerd Moellmann <gerd@gnu.org>
8566
8567 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
8568 value of realize_basic_faces.
8569 (load_face_font_or_fontset): Store full font name in face.
8570 (realize_default_face): Use full font name.
8571
26901792
DL
8572 * xterm.c (x_produce_glyphs): Set member char_to_display.
8573 (x_append_glyph): Store char_to_display in glyphs.
8574
8575 * dispextern.h (struct it): Add char_to_display.
8576
8577 * xfns.c (x_set_font): Don't call face-set-after-frame-default
8578 if faces haven't been initialized.
8579 (Fx_create_frame): Call face-set-after-frame-default after
8580 faces have been initialized, and widget has been created.
8581
8582 * puresize.h (BASE_PURESIZE): Increased.
8583
85841999-06-01 Gerd Moellmann <gerd@gnu.org>
8585
8586 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
8587 (Finternal_set_lisp_face_attribute): If frame is t when
8588 :font attribute is set, use the selected frame.
8589 (clear_face_cache): Add parameter clear_fonts_p.
8590 (Fclear_face_cache): Add optional parameter thorougly.
8591
8592 * xfaces.c (face_numeric_value): Return -1 if symbol is not
8593 in table.
8594 (Fclear_face_cache): New.
8595 (choose_face_fontset_font): If fontset doesn't contain font
8596 pattern for the given charset, use CHARSET_ASCII.
8597 (Finternal_set_lisp_face_attribute): Fix handling of nil
8598 stipple attribute.
8599 (Finternal_set_lisp_face_attribute): Fix handling of changing
8600 font-related face attributes of the default face.
8601 (set_lface_from_font_name): Set only attributes that aren't
8602 specified.
8603
86041999-05-31 Gerd Moellmann <gerd@gnu.org>
8605
8606 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
8607 font support.
8608 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
8609 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
8610 scalable fonts depending on the setting of SCALABLE_FONTS.
8611 (first_font_matching): List more than one font to find the
8612 first non-scalable matching font.
8613 (sorted_font_list): Let x_face_list_fonts return scalable fonts
8614 depending on SCALABLE_FONTS.
8615 (better_font_p): New parameter compare_pt_p. If zero, don't
8616 compare point sizes of fonts.
8617 (exact_face_match_p) [SCALABLE_FONTS]: New.
8618 (build_scalable_font_name) [SCALABLE_FONTS]: New.
8619 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
8620 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
8621 (syms_of_xfaces): Add scalable-fonts-allowed.
8622
86231999-05-26 Gerd Moellmann <gerd@gnu.org>
8624
8625 * xfns.c (png_load): Let PNG lib handle gamma. Construct
8626 mask only if image contains simple transparency information.
8627 Otherwise, combine image with frame background color.
8628
8629 * configure.in (--with-png, HAVE_PNG): New.
8630
8631 * config.in (HAVE_PNG): New.
8632
8633 * Makefile.in: Add PNG library.
8634
8635 * xfns.c: Add PNG support.
8636
86371999-05-25 Gerd Moellmann <gerd@gnu.org>
8638
8639 * xdisp.c (init_xdisp): Initialize echo_area_message and
8640 previous_echo_area_message to nil.
8641
8642 * keyboard.c (read_char): Rename local variable echo_area_message
8643 because it shadows the global one.
8644
86451999-05-05 Gerd Moellmann <gerd@gnu.org>
8646
8647 * xterm.c (note_mode_line_highlight): Restructured.
8648
8649 * window.c (coordinates_in_window): Handle windows that don't have
8650 a mode line because their buffer's mode-line-format is nil.
8651 Recognize the mode line under x positions that correspond to
8652 flags areas and left scroll bar.
8653
86541999-05-02 Dave Love <fx@gnu.org>
8655
8656 * xterm.c (note_mouse_highlight): Separate help-echo processing
8657 from check on mouse-face so that it works generally.
8658
86591999-04-21 Gerd Moellmann <gerd@gnu.org>
8660
8661 * sound.c (Fplay_sound): Run hook play-sound-hook.
8662 (Qplay_sound_hook): New.
8663
86641999-04-20 Gerd Moellmann <gerd@gnu.org>
8665
8666 * xdisp.c (update_echo_area): Handle echo_area_message.
8667
86681999-04-19 Gerd Moellmann <gerd@gnu.org>
8669
8670 * editfns.c (Fmessage): Use message3.
8671
8672 * print.c (printchar): Set echo_area_message to nil.
8673 (strout): Ditto.
8674
8675 * minibuf.c (read_minibuf): Reset echo message strings to nil.
8676 (Fminibuffer_completion_help): Ditto.
8677
8678 * keyboard.c (cmd_error_internal): Set echo_areA_message.
8679 (command_loop_1): Test echo_areA_message.
8680 (read_char): Ditto.
8681 (record_menu_key): Set echo_area_message to nil.
8682 (Fexecute_extended_command): Test echo_area_message.
8683 (Fexecute_extended_command): Handle echo_area_message.
8684
8685 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
8686 is set.
8687
8688 * editfns.c (Fcurrent_message): If echo_area_message is set,
8689 return a substring of that string.
8690
8691 * dispnew.c (direct_output_for_insert): Test echo_area_message
8692 in addition to echo_area_glyphs.
8693 (set_window_cursor_after_update): Ditto.
8694 (update_frame_1): Ditto.
8695
8696 * alloc.c (Fgarbage_collect): Use message3_nolog to display
8697 old Lisp message string.
8698
8699 * xdisp.c (echo_area_message): New.
8700 (previous_echo_area_message): New.
8701 (syms_of_xdisp): Initialize and staticpro new variables.
8702 (echo_area_display): Display echo_area_message if set.
8703 (message2_nolog): Set echo_area_message and
8704 previous_echo_area_message.
8705 (echo_area_display): Set previous_echo_area_message.
8706 (redisplay_internal): Display echo area if echo_area_message
8707 or previous_echo_area_message are set.
8708 (redisplay_preserve_echo_area): Test/set echo_area_message and
8709 previous_echo_area_message.
8710 (redisplay_window): Test echo_area_message.
8711 (message3_nolog): New.
8712 (message3): New.
8713
8714 * editfns.c (Fformat): Add text properties to the result string
8715 from properties of the format string and properties of string
8716 arguments.
8717
8718 * textprop.c (text_property_list): New.
8719 (add_text_properties_from_list): New.
8720 (extend_property_ranges): New.
8721
87221999-03-29 Gerd Moellmann <gerd@gnu.org>
8723
8724 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
8725 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
8726 Use these symbols for the box face attribute instead of the
8727 removed ones.
8728
87291999-03-12 Gerd Moellmann <gerd@gnu.org>
8730
8731 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
8732 Correct wrong test for slant.
8733
87341999-03-10 Gerd Moellmann <gerd@gnu.org>
8735
8736 * xfaces.c: Use `unspecified' for unspecified face attributes,
8737 use t and nil for on/off.
8738
87391999-03-06 Gerd Moellmann <gerd@gnu.org>
8740
8741 * buffer.c (syms_of_buffer): Extend doc string of
8742 mode-line-format.
8743
8744 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
8745 (first_font_matching): New.
8746 (set_lface_from_font_name): Use it if font name is a pattern.
8747 (font_field_wildcard_p): Removed.
8748
8749 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
8750 Recompute visible height of rows.
8751
8752 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
8753 Don't accept non-strings for help-echo from overlays.
8754
87551999-03-04 Dave Love <fx@gnu.org>
8756
8757 * xterm.c (note_mouse_highlight): Check overlays for help-text
8758 property.
8759 (XTread_socket): Fix compiler warning.
8760
87611999-03-05 Gerd Moellmann <gerd@gnu.org>
8762
8763 * xterm.c (note_mouse_highlight): Don't restrict number of
8764 overlay to 10. Call overlays_at so that it doesn't try to
8765 extend the vector.
8766
8767 * xdisp.c (compute_line_metrics): Compute glyph row's visible
8768 height.
8769
8770 * dispnew.c (row_equal_p): Compare visible row height, only.
8771 (update_text_area): Draw whole line if visible heights of
8772 rows differ.
8773 (update_window_line): Call after_update_window_line_hook
8774 if visible row height has changed.
8775
8776 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
8777 (struct glyph_row): New member visible_height.
8778
8779 * xfaces.c (font_field_wildcard_p): New.
8780 (set_lface_from_font_name): Remove parameter force_p. Accept
8781 font names containing wildcards.
8782
87831999-03-04 Gerd Moellmann <gerd@gnu.org>
8784
8785 * xterm.c (x_after_update_window_line): Clear internal border
8786 when windows_or_buffers_changed.
8787
8788 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
8789 buffer has a nil mode_line_format.
8790
87911999-03-03 Gerd Moellmann <gerd@gnu.org>
8792
8793 * xterm.c (x_setup_relief_colors): Use either background color
8794 or specified color.
8795
8796 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
8797
8798 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
8799
8800 * xterm.c (x_draw_box_rect): New.
8801 (x_draw_glyph_string_box): Renamed from
8802 x_draw_glyph_string_relief. Call x_draw_box_rect.
8803
8804 * xfns.c (QCrelief): New.
8805 (syms_of_xfns): Initialize it.
8806
8807 * dispextern.h (struct glyph): Rename left_shadow_p to
8808 left_box_line_p, right_shadow_p to right_box_line_p.
8809 (MAX_RELIEF_THICKNESS): Removed.
8810 (struct it): Rename members having `relief' in their names
8811 to contain `box' instead.
8812
8813 * xfaces.c (realize_x_face): Handle new box attribute values.
8814 (QCrelief, Qbox): Removed.
8815 (QCshadow, QCcolor, Qraised, Qsunken): New.
8816 (syms_of_xfaces): Initialize new symbols.
8817
88181999-03-02 Gerd Moellmann <gerd@gnu.org>
8819
8820 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
8821
8822 * xfaces.c (LFACE_RELIEF): Removed.
8823 (merge_face_vector_with_property): Remove handling of `:relief'.
8824 (Finternal_set_lisp_face_attribute): Ditto.
8825 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
8826 (Finternal_get_lisp_face_attribute): Ditto.
8827 (realize_default_face): Ditto.
8828 (lface_hash): Don't compute hash from relief.
8829
8830 * dispextern.h (struct face): Replace member `relief' by
8831 `box_line_width'. Add member `box'.
8832 (face_box_type): New.
8833
8834 * xterm.c (x_produce_glyphs): If face has overline, add overline
8835 thickness + 1 to ascent.
8836
88371999-03-01 Gerd Moellmann <gerd@gnu.org>
8838
8839 * xterm.c (x_draw_glyph_string): Draw underline, overline,
8840 strike-through, and boxes.
8841 (x_draw_glyph_string_underline): Removed.
8842
8843 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
8844 (Qoverline, Qstrike_through, Qbox): New.
8845 (syms_of_xfaces): Define these symbols.
8846 (check_lface_attrs): Add checks for overline, strike-through,
8847 and box.
8848 (Finternal_set_lisp_face_attribute): Set new attributes.
8849 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
8850 (load_color): Handle new attributes.
8851 (realize_x_face): Ditto.
8852 (merge_face_vector_with_property): Ditto.
8853 (free_face_colors): Ditto.
8854 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
8855 (Finternal_get_lisp_face_attribute): Ditto.
8856 (Finternal_lisp_face_attribute_values): Ditto.
8857
8858 * dispextern.h (lface_attribute_index): Add enumerators for
8859 overstrike, strike-through, and box.
8860 (struct face): Add members for overline, strike-through, and
8861 box.
8862
88631999-02-17 Dave Love <fx@gnu.org>
8864
8865 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
8866 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
8867 files.
8868
88691999-02-16 Gerd Moellmann <gerd@gnu.org>
8870
8871 * keyboard.c (toolbar_items): Call access_keymap with third
8872 parameter 1, so that we don't get inherited toolbar item
8873 definitions.
8874
8875 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
8876 the window end vpos when in empty first line of window.
8877
88781999-02-15 Gerd Moellmann <gerd@gnu.org>
8879
8880 * xfaces.c (set_font_frame_param): New.
8881 (Finternal_set_lisp_face_attribute): Call it.
8882
8883Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
8884
8885 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
8886 Accept specifications of color for underline.
8887
88881999-02-13 Gerd Moellmann <gerd@gnu.org>
8889
8890 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
8891 `frame' is t, operate on face defaults for new frames. If it
8892 is nil, operate on the selected frame.
8893
88941999-02-12 Gerd Moellmann <gerd@gnu.org>
8895
8896 * dispnew.c (check_matrix_invariants): Put it in #if 0.
8897 (update_window): Put the call to check_matrix_invariants in #if 0.
8898
8899Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
8900
8901 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
8902 Remove definition of UNDERLINE_COLOR.
8903
8904Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
8905
8906 * xfaces.c (free_face_colors): Free the color for underline.
8907
8908 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
8909 to the GC.
8910
8911Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
8912
8913 * dispextern.h (UNDERLINE_COLOR): Defined.
8914 (struct face): Added two new members.
8915 underline_color, underline_defaulted_p.
8916
8917 * xfaces.c (merge_face_vector_with_property):
8918 (check_lface_attrs): Accept the string value for underline.
8919 (Finternal_set_lisp_face_attribute): Likewise.
8920
8921 * xfaces.c (load_color): Change the last argument type to enum
8922 lface_attribute_index from int. And addec code for underling coloring.
8923 (load_face_colors): Pass LFACE_*_INDEX to load_color.
8924
89251999-02-12 Gerd Moellmann <gerd@gnu.org>
8926
8927 * xfns.c (Fx_image_header): Removed.
8928
89291999-02-07 Gerd Moellmann <gerd@gnu.org>
8930
8931 * xterm.c: Don't include <bitmaps/gray>.
8932 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
8933
8934 * xfns.c (Fx_image_header): Add missing `\n\'.
8935 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
8936
89371999-02-01 Gerd Moellmann <gerd@gnu.org>
8938
8939 * xterm.c (x_scroll_bar_create): Set background pixel from
8940 specified scroll bar color.
8941 (x_scroll_bar_set_handle): Use scroll bar foreground color.
8942
8943 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
8944 (x_set_scroll_bar_background): Ditto.
8945
8946 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
8947
8948 * xfns.c (x_default_scroll_bar_color_parameter): New.
8949 (Fx_create_frame): Call it.
8950
89511999-01-31 Gerd Moellmann <gerd@gnu.org>
8952
8953 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
8954 values in x_output structure.
8955 (Qscroll_bar_foreground, Qscroll_bar_background): New.
8956 (syms_of_xfns): Initialize these symbols.
8957
8958 * xterm.h (struct x_output): Add scroll bar pixel colors.
8959
8960 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
8961 (x_set_scroll_bar_foreground): New.
8962 (x_set_scroll_bar_background): New.
8963
26901792
DL
89641999-01-12 Gerd Moellmann <gerd@gnu.org>
8965
8966 * xdisp.c (handle_single_display_prop): New.
8967 (handle_display_prop): Call it.
8968 (handle_raise_prop): Removed.
8969 (handle_height_prop): Removed.
8970 (handle_space_width_prop): Removed.
8971 (handle_face_prop): Remove handling of raised text.
8972 (handle_display_prop): Do it here.
8973
8974 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
8975 (RAISE_PROP_IDX): Removed.
8976 (HEIGHT_PROP_IDX): Removed.
8977 (SPACE_WIDTH_PROP_IDX): Removed.
8978
8979 * xdisp.c (Qdisplay): Replaces Qglyph.
8980 (handle_display_prop): Formerly handle_glyph_prop.
8981
89821999-01-11 Gerd Moellmann <gerd@gnu.org>
8983
8984 * xdisp.c (reseat_to_string): Set position in display vector to -1.
8985 (handle_stop): Set position in display vector to -1. Don't
8986 check overlay strings when set up to deliver characters from a
8987 display vector.
8988 (set_iterator_to_next): At the end of a run of characters from a
8989 display vector, check whether the display vector display replaces
8990 the display of a character.
8991
89921999-01-05 Gerd Moellmann <gerd@gnu.org>
8993
8994 * xfaces.c (init_frame_faces): Don't realize faces if frame's
8995 X window hasn't been created yet.
8996
89971998-12-06 Gerd Moellmann <gerd@gnu.org>
8998
8999 * sound.c: New.
9000
90011998-12-04 Gerd Moellmann <gerd@gnu.org>
9002
9003 * config.in (HAVE_SOUND): New.
9004
9005 * emacs.c (main): Call syms_of_sound and init_sound.
9006
9007 * Makefile.in (obj): Add sound.o.
9008
9009 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
9010
9011 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
9012 (HAVE_SYS_SOUNDCARD_H): New.
9013
90141998-12-03 Gerd Moellmann <gerd@gnu.org>
9015
9016 * buffer.h (struct buffer): indicate_empty_lines renamed from
9017 indicate_zv_lines.
9018
9019 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
9020 (default-indicate-zv-lines): Likewise.
9021
9022 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
9023 to indicate_empty_line_p.
9024
9025 * xdisp.c (reseat_at_next_visible_line_start): Reset method
9026 to next_element_from_buffer.
9027
9028 * frame.c (make_frame): Set n_current_toolbar_items to 0.
9029
9030 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
9031 and `N-'.
9032
9033 * xfns.c (xbm_scan): New.
9034 (xbm_read_hexint): Removed.
9035 (xbm_read_bitmap_file_data): Use xbm_scan.
9036
9037 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
9038
90391998-12-02 Gerd Moellmann <gerd@gnu.org>
9040
9041 * xfns.c (xbm_read_hexint): New.
9042 (xbm_read_bitmap_file_data): New.
9043 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
9044 instead of XReadBitmapFileData.
9045
9046 * xdisp.c (handle_raise_prop): Compute voffset from current font.
9047
9048 * xfaces.c (face_with_height): New.
9049
9050 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
9051 (eval_form): Renamed from eval_mode_element.
9052 (handle_face_prop): Use it.
9053 (Qheight): Replaces Qsmaller.
9054 (handle_height_prop): Replaces handle_smaller_prop.
9055 (handle_face_prop): If iterator's font_height is not an
9056 integer, evaluate it to get the font height to use.
9057
9058 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
9059 (struct it): Use `font_height' instead of `smaller'.
9060
90611998-12-01 Gerd Moellmann <gerd@gnu.org>
9062
9063 * xdisp.c (reseat_1): New.
9064 (reseat): Call it.
9065 (move_it_vertically_backward): Ditto.
9066 (redisplay_window): Don't abort when cursor not found in recenter.
9067
90681998-11-30 Gerd Moellmann <gerd@gnu.org>
9069
9070 * xdisp.c (reseat_at_next_visible_line_start): When not
9071 currently delivering display elements from the current buffer,
9072 restore buffer position first.
9073 (init_from_display_pos): Don't set IT's position from the
9074 position passed to this function.
9075
90761998-11-28 Gerd Moellmann <gerd@gnu.org>
9077
9078 * config.in (PROTO): Removed.
9079
9080 * xterm.h: Change PROTO to P_.
9081
90821998-11-26 Gerd Moellmann <gerd@gnu.org>
9083
9084 * xterm.c (take_vertical_position_into_account): New.
9085 (x_produce_image_glyph): Call it.
9086 (x_produce_stretch_glyph): Ditto.
9087 (x_produce_glyphs): Ditto.
9088 (x_fill_glyph_string): Adjust base line for glyph's voffset.
9089 (x_fill_composite_glyph_string): Ditto.
9090 (x_fill_image_glyph_string): Ditto.
9091 (x_fill_stretch_glyph_string): Ditto.
9092
9093 * xdisp.c (display_line): Always compute row height from
9094 max_ascent and max_descent.
9095
9096 * dispextern.h (struct glyph): Add voffset.
9097 (struct it): Replace height by descent, max_height by max_descent.
9098
9099 * xterm.c (x_append_glyph): Set voffset
9100 (x_append_stretch_glyph): Ditto.
9101 (x_produce_image_glyph): Ditto.
9102 (x_produce_glyphs): Take voffset into account.
9103 (x_produce_image_glyph): Ditto.
9104 (x_produce_stretch_glyph): Ditto.
9105
9106 * dispextern.h (struct it): Add voffset.
9107 * xdisp.c (push_it): Save voffset.
9108 (pop_it): Restore it.
9109
9110 * xdisp.c (it_props): Add entry for `raise'.
9111 (handle_raise_prop): New.
9112
9113 * dispextern.h (RAISE_PROP_IDX): New.
9114
9115 * xdisp.c (Qraise): New.
9116 (syms_of_xdisp): Define Qraised.
9117
9118 * xterm.c (x_scroll_bar_move): Clear to the left and right
9119 of toolkit scroll bars differently.
9120 (x_scroll_bar_move): Removed.
9121 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
9122
9123 * dispextern.h: Make it compilable --with-x=no.
9124 * alloc.c: Ditto.
9125 * emacs.c: Ditto.
9126 * dispnew.c: Ditto.
9127 * keyboard.c: Ditto.
9128 * term.c: Ditto.
9129 * xdisp.c: Ditto.
9130 * xfaces.c: Ditto.
9131 * xfns.c: Ditto.
9132 * xmenu.c: Ditto.
9133
91341998-11-25 Gerd Moellmann <gerd@gnu.org>
9135
9136 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
9137
91381998-11-24 Gerd Moellmann <gerd@gnu.org>
9139
9140 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
9141 update slider size, only.
9142 (xm_scroll_callback): Set dragging member of the scroll bar.
9143 (xt_action_hook): Reset last_scroll_bar_part.
9144 (XTredeem_scroll_bar): Reset bar->dragging to nil.
9145
26901792
DL
9146 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
9147 window on newly created frames that don't have one.
9148
91491998-11-23 Gerd Moellmann <gerd@gnu.org>
9150
9151 * xdisp.c (restore_overlay_strings): Removed.
9152 (restore_dpvec): Removed.
9153 (init_from_display_pos): Inline both functions above.
9154
9155 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
9156 (parse_image_spec): Handle it.
9157 (xbm_format): Use it.
9158 (xpm_format): Ditto.
9159 (pbm_format): Ditto.
9160 (jpeg_format): Ditto.
9161 (tiff_format): Ditto.
9162 (gif_format): Ditto.
9163 (gs_format): Ditto.
9164
9165 * xdisp.c (set_window_cursor): Removed.
9166 (redisplay_internal): Case cursor motion in cursor line of
9167 selected window; use set_cursor_from_row.
9168
91691998-11-22 Gerd Moellmann <gerd@gnu.org>
9170
9171 * widget.c (EmacsFrameSetCharSize): Take widget's border width
9172 into account.
9173
91741998-11-21 Gerd Moellmann <gerd@gnu.org>
9175
9176 * xterm.c (expose_frame): Redraw menu bar window.
9177
9178 * xdisp.c (display_menu_bar): Record hpos instead of x-position
9179 in menu item.
9180
9181 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
9182 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
9183
9184 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
9185 to determine vertical_scroll_bar_extra.
9186 (EmacsFrameSetCharSize): Ditto.
9187 * xfns.c (x_figure_window_size): Ditto.
9188
9189 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
9190 (x_draw_bitmap): Ditto.
9191
9192 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
9193 * xfaces.c (realize_basic_faces): Realize it.
9194
91951998-11-20 Gerd Moellmann <gerd@gnu.org>
9196
9197 * xmenu.c (xmenu_show): Add workaround for remaining button grab
9198 under LessTif Use the widget of the frame as parent for the
9199 menu, again.
9200
92011998-11-19 Gerd Moellmann <gerd@gnu.org>
9202
9203 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
9204 When EnterNotify, don't generate a mouse movement event if
9205 notification is from a busy-cursor child window.
9206
9207 * xterm.h (struct x_output): Add busy_window, remove cursor.
9208
9209 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
9210 Use a transparent window to display the busy-cursor.
9211 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
9212
92131998-11-17 Gerd Moellmann <gerd@gnu.org>
9214
9215 * xdisp.c (check_window_end): New, for debugging.
9216 (CHECK_WINDOW_END): New.
9217 (try_window_id): Use it.
9218
9219 * xterm.c (process_expose_from_menu): Return int.
9220
9221 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
9222 TOOLBAR_EVENT events in last_nonmenu_event.
9223
92241998-11-16 Gerd Moellmann <gerd@gnu.org>
9225
9226 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
9227 window end isn't reliable, so set window_end_valid to nil.
9228 (redisplay_internal): If overlay arrow has changed, set
9229 windows_or_buffers_changed to redisplay thoroughly.
9230
9231 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
9232 necessary.
9233
9234 * xfns.c (file_dialog_cb): New.
9235 (Fx_file_dialog): New.
9236 * fileio.c (Fread_file_name): Call it.
9237
9238 * xrdb.c (x_load_resources): Add default resoures for file
9239 selection dialog.
9240
92411998-11-14 Gerd Moellmann <gerd@gnu.org>
9242
9243 * xterm.c (note_mouse_highlight): Don't highlight when popup
9244 is active.
9245
26901792
DL
9246 * keyboard.c (timer_check): Inhibit busy cursor around calls to
9247 timer-event-handler. This busy cursor tends to be anoying if
9248 fontifying stealthily.
9249
9250 * dispnew.c (direct_output_for_insert): Give up if current row
9251 contains trailing whitespace.
9252
92531998-11-13 Gerd Moellmann <gerd@gnu.org>
9254
9255 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
9256
9257 * xdisp.c (handle_fontified_prop): New.
9258 (Vfontification_functions): New.
9259 (Qfontification_functions): New.
9260 (it_props): Add handle_fontified_prop.
9261
92621998-11-12 Gerd Moellmann <gerd@gnu.org>
9263
9264 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
9265 Otherwise, under LessTif, after the popup has gone, all button
9266 press events come in for the frame's widget, and release events
9267 come in for the edit_widget.
9268 * xterm.c (XTread_socket): Remove workaround for that problem.
9269 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
9270 XmScrollBarSetValues.
9271 (SET_SAVED_MENU_EVENT): Give it statement form.
9272
26901792
DL
9273 * xfaces.c (display_message): If waiting_for_input, don't display
9274 the message.
9275
9276 * window.c (scroll_command): If not acting on current_buffer,
9277 make redisplay consider all windows.
9278
9279 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
9280
9281 * xdisp.c (handle_glyph_prop): Set it->object for images to
9282 the object having the glyph property.
9283
9284 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
9285 invisible.
9286
92871998-11-11 Gerd Moellmann <gerd@gnu.org>
9288
9289 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
9290 (x_term_init): Create the gray pixmap.
9291 (x_setup_relief_color): Use it.
9292 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
9293 internal border at the top of a frame.
9294 (x_init_glyph_string): Likewise.
9295 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
9296 full-width lines.
9297 (XTflash): Don't flash the toolbar window.
9298
9299 * xterm.c (XTread_socket): Workaround for LessTif popup menus
9300 in case of ButtonPress events.
9301
93021998-11-10 Gerd Moellmann <gerd@gnu.org>
9303
9304 * xrdb.c (x_load_resources): Add grey background colors as
9305 defaults for menus, scroll bars, and dialogs.
9306
9307 * insdel.c (prepare_to_modify_buffer): Move setting
9308 windows_or_buffers_changed from modify_region here.
9309
9310 * xfns.c (Fx_show_tip): Inhibit redisplay.
9311 (Fx_hide_tip): Ditto.
9312 (Fx_image_header): New.
9313
93141998-11-09 Gerd Moellmann <gerd@gnu.org>
9315
9316 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
9317 when clearing current window matrices.
9318
93191998-11-08 Gerd Moellmann <gerd@gnu.org>
9320
9321 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
9322 position from a string position. Use the right end position
9323 if the property spans a whole overlay string.
9324
93251998-11-07 Gerd Moellmann <gerd@gnu.org>
9326
9327 * xmenu.c (menubar_selection_callback): Remove workaround for
9328 Lesstif not calling XmNpopdownCallback because it doesn't
9329 handle the case where users don't select any menu item.
9330
26901792
DL
9331 * insdel.c (modify_region): Set windows_or_buffers_changed.
9332
9333 * buffer.c (set_buffer_internal): Don't set
9334 windows_or_buffers_changed.
9335
26901792
DL
9336 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
9337
26901792
DL
9338 * xmenu.c (menubar_selection_callback): Add workaround for
9339 Lesstif not calling XmNpopdownCallback.
9340
9341 * xdisp.c (eval_mode_element): New.
9342 (eval_mode_handler): New.
9343 (display_mode_element): Use eval_mode_element.
9344
9345 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
9346 Remove code looking at text props of default value.
9347
9348 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
9349
26901792
DL
93501998-11-06 Gerd Moellmann <gerd@gnu.org>
9351
9352 * xmenu.c (single_submenu): Set button_type of menu to
9353 BUTTON_TYPE_NONE.
9354 (single_submenu): Likewise for panes and menu items.
9355 (set_frame_menubar): Set button_type of menu bar to none.
9356 (xmenu_show): Likewise.
9357 (single_submenu): Set widget values selected slot.
9358 (xmenu_show): Likewise.
9359
26901792
DL
9360 * xmenu.c (push_menu_item): Add parameters `type' and
9361 `selected'. Store it in menu_items.
9362 (MENU_ITEMS_ITEM_TYPE): New.
9363 (MENU_ITEMS_ITEM_SELECTED): New.
9364 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
9365
9366 * xfns.c (clear_image_cache): Get the current time, before
9367 doing anything.
9368 (cache_image): Set prev pointer of next image.
9369 (clear_image_cache): Clear current matrices if any image was
9370 freed.
9371
9372 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
9373
9374 * xfns.c (x_set_cursor): New.
9375 (Fx_display_busy_cursor): New.
9376 (Fx_undisplay_busy_cursor): New.
9377
9378 * xterm.h (struct x_output): Add busy_cursor.
9379
9380 * xfns.c (Vx_busy_pointer_shape): New.
9381 (x_set_mouse_color): Create busy cursor.
9382
9383 * process.c (wait_reading_process_input): Show and hide busy
9384 cursor.
9385
9386 * keyboard.c (command_loop_1): Display busy cursor.
9387
9388 * eval.c (Fsignal): Hide busy cursor.
9389
9390 * buffer.c (set_buffer_internal): Don't set
9391 windows_or_buffers_changed.
9392
9393 * xterm.c (redo_mouse_highlight): New.
9394
93951998-11-04 Gerd Moellmann <gerd@gnu.org>
9396
26901792
DL
9397 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
9398 (x_build_heuritic_mask): New.
9399 (lookup_image): Call it.
9400
9401 * xterm.c (note_toolbar_highlight): Always set up help_echo.
9402 (previous_help_echo): New.
9403 (XTread_socket): Generate help event with nil message when
9404 leaving a region with help-echo.
9405 (note_mouse_highlight): Handle `help-echo' over text.
9406 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
9407 CirculateRequest.
9408 (clear_mouse_face): Don't clear if tooltip is shown.
9409 (XTread_socket): Redo mouse-highlight after tooltip is gone.
9410 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
9411
9412 * keyboard.c (Vshow_help_function): New.
9413 (read_char): Use it.
9414
94151998-11-03 Gerd Moellmann <gerd@gnu.org>
9416
9417 * xfns.c (x_create_tip_frame): New.
9418 (Fx_show_tip): New.
9419 (Fx_hide_tip): New.
9420
9421 * xterm.c (x_destroy_window): Handle case that we don't have
9422 a widget.
9423
9424 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
9425 to full_width_p. Add internal_border_p.
9426
94271998-11-02 Gerd Moellmann <gerd@gnu.org>
9428
9429 * xterm.c (note_mode_line_highlight): Check the charpos of
9430 the glyph under the mouse pointer before accessing text
9431 properties at that position.
9432
94331998-11-01 Gerd Moellmann <gerd@gnu.org>
9434
9435 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
9436
9437 * xdisp.c (auto-raise-toolbar-buttons): New.
9438 (build_desired_toolbar_string): Handle the flag.
9439 (toolbar-button-margin): New.
9440 (toolbar-button-relief): New.
9441 (build_desired_toolbar_string): Use margin and relief.
9442
9443 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
9444 for FreeBSD.
9445 (note_mode_line_highlight): New.
9446 (note_mouse_highlight): Call it.
9447
94481998-10-31 Gerd Moellmann <gerd@gnu.org>
9449
9450 * s/freebsd.h (NARROWPROTO): New.
9451
9452 * xdisp.c (display_string): New parameter face_string.
9453 (display_mode_element): When displaying a symbol with a string
9454 value, use text properties from the symbol's default value, maybe.
9455
9456 * xrdb.c (x_load_resources): Add font defaults for menus and
9457 dialogs.
9458
94591998-10-30 Gerd Moellmann <gerd@gnu.org>
9460
9461 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
9462
94631998-10-29 Gerd Moellmann <gerd@gnu.org>
9464
9465 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
9466 produced for characters with codes < 32 under certain
9467 circumstances.
9468
9469 * xdisp.c (redisplay_window): Handle values of PT in front
9470 of invisible, intangible text.
9471 (try_window_id): Set overlay_arrow_seen to zero before
9472 displaying lines.
9473 (display_mode_element): Assign to glyphs written for a mode
9474 line spec `%x' as object the Lisp format string, as position
9475 the position of the `%' in that string.
9476 (display_string): If displaying a C string, optionally get
9477 the face to use from a Lisp string.
9478
9479 * xterm.c (expose_window_tree): Include mode line height.
9480
9481 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
9482
94831998-10-27 Gerd Moellmann <gerd@gnu.org>
9484
9485 * xterm.c (note_mouse_highlight): Change mouse pointer shape
9486 over mode line.
9487
94881998-10-26 Gerd Moellmann <gerd@gnu.org>
9489
9490 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
9491
9492 * xdisp.c (redisplay_window): If mode line height has changed,
9493 arrange for a thorough immediate redisplay using the correct mode
9494 line height.
9495 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
9496
9497 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
9498 (CURRENT_MODE_LINE_HEIGHT): New.
9499 (DESIRED_MODE_LINE_HEIGHT): New.
9500
9501 * keyboard.c (make_lispy_event): Add string and string position
9502 info to mouse-click events.
9503 (read_key_sequence): Handle `local-map' property of mode line
9504 strings.
9505
9506 * keyboard.h (POSN_STRING): New.
9507
95081998-10-25 Gerd Moellmann <gerd@gnu.org>
9509
9510 * dispnew.c (mode_line_string): Mew.
9511
9512 * xterm.c (xt_action_hook): New.
9513 (x_create_toolkit_scroll_bar): Add action hook.
9514 (xm_scroll_callback): Implement dragging.
9515
9516 * keyboard.c (Qend_scroll): New.
9517 (scroll_bar_parts): Add it.
9518
9519 * termhooks.h (scroll_bar_end_scroll): New.
9520
9521 * xterm.c (XTread_socket): Bug fix.
9522
95231998-10-24 Gerd Moellmann <gerd@gnu.org>
9524
9525 * xdisp.c (redisplay_window): Finish scroll bars after
9526 redisplaying toolbar.
9527
9528 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
9529 (syms_of_keyboard): Add Qbottom.
9530
9531 * termhooks.h (scroll_bar_to_top): New.
9532 (scroll_bar_to_bottom): New.
9533
9534 * xdisp.c (redisplay_window): Always resize toolbar window if
9535 auto_resize_toolbar_p is non-zero.
9536 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
9537 (window_box): New.
9538 (window_box_height): New.
9539 (window_box_width): New.
9540 (window_box_left): New.
9541 (window_box_right): New.
9542 (window_box_edges): New.
9543
95441998-10-23 Gerd Moellmann <gerd@gnu.org>
9545
9546 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
9547 XawScrollbarSetThumb in FreeBSD.
9548 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
9549 to true.
9550
9551 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
9552 is out of range.
9553
9554 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
9555 (x_term_init): Initialize it.
9556
9557 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
9558
9559 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
9560 cursor.
9561
95621998-10-22 Gerd Moellmann <gerd@gnu.org>
9563
9564 * keyboard.c (make_lispy_event): Handle scroll_bar_click
9565 differently when using toolkit scroll bars.
9566
9567 * xterm.c (x_send_scroll_bar_event): New.
9568 (x_scroll_bar_to_input_event): New.
9569 (xaw3d_scroll_callback): New.
9570 (xaw3d_jump_callback): New.
9571 (xm_scroll_callback): New.
9572 (x_toolkit_scroll_p): New.
9573 (XTread_socket): Handle scroll bar client message.
9574 (x_term_init): Initialize Xatom_Scrollbar.
9575 (x_scroll_bar_create): Set cursor.
9576 (xm_scroll_callback):
9577 (x_create_toolkit_scroll_bar): New.
9578 (x_set_toolkit_scroll_bar_thumb): New.
9579 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
9580 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
9581
9582 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
9583
95841998-10-21 Gerd Moellmann <gerd@gnu.org>
9585
9586 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
9587 (XTread_socket): Don't handle mouse button events for scroll bars
9588 if using toolkit scroll bars.
9589 (XTset_vertical_scroll_bar): Set thumb size and position for
9590 Athena scroll bar.
9591
9592 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
9593
9594 * xterm.c (XTread_socket): Dispatch expose event to widget
9595 if using toolkit scroll bars.
9596 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
9597 (x_scroll_bar_create): Create and show a scroll bar widget
9598 if using toolkit scroll bars.
9599 (x_scroll_bar_move): Handle tookit scroll bars.
9600
9601 * Makefile.in (LIBW): Use Xaw3d if present.
9602
9603 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
9604 (HAVE_XAW3D): New.
9605
9606 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
9607 (HAVE_XAW3D): New.
9608
9609 * xterm.c (XTset_vertical_scroll_bar): Correct position of
9610 right vertical scroll bar.
9611
96121998-10-20 Gerd Moellmann <gerd@gnu.org>
9613
9614 * xfns.c (xpm_load): Support reading XPM images from string
9615 buffers containing data in the same format as an XPM file.
9616 Support `:color-symbols'.
9617 (xpm_format): Add `:data'.
9618 (xpm_keyword_index): Add XPM_DATA.
9619 (syms_of_xfns): Add `:color-symbols'.
9620 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
9621 (xpm_valid_color_symbols_p): New.
9622 (xpm_image_p): Call it.
9623
9624 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
9625 attribute to the image if item is not enabled.
9626
9627 * xfns.c (x_laplace): New.
9628 (x_laplace_read_row): New.
9629 (x_laplace_write_row): New.
9630 (lookup_image): Handle common image attributes here. New
9631 attribute `:algorithm'.
9632
9633 * xfaces.c (clear_face_cache): Call clear_image_cache.
9634
9635 * xterm.c (x_inverted_image_mask): Removed.
9636 (x_draw_image_foreground_1): New.
9637 (x_draw_image_glyph_string): Draw images with mask to a temporary
9638 pixmap to reduce flickering.
9639
9640 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
9641 (display_toolbar_line): Remove parameter `margin'.
9642
96431998-10-19 Gerd Moellmann <gerd@gnu.org>
9644
9645 * xdisp.c (toolbar_lines_needed): New.
9646 (auto-resize-toolbars): New.
9647
9648 * xfns.c (cache_image): Correct call to xrealloc.
9649
9650 * dispnew.c (Fset_toolbar_height): Removed.
9651
9652 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
9653 FRAME_MENU_BAR_LINES.
9654
9655 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
9656 instead of FRAME_MENU_BAR_LINES.
9657 (check_frame_size): Ditto.
9658
9659 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
9660 instead of FRAME_MENU_BAR_LINES.
9661 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
9662 (build_frame_matrix): Ditto.
9663 (change_frame_size_1): Ditto.
9664
9665 * frame.h (FRAME_TOOLBAR_LINES): New.
9666 (FRAME_TOP_MARGIN): New.
9667
9668 * window.c (struct save_window_data): Add frame_toolbar_lines.
9669 (Fset_window_configuration): Handle toolbar lines.
9670 (Fcurrent_window_configuration): Save toolbar lines.
9671
9672 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
9673
9674 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
9675
9676 * frame.h (struct frame): Rename top_margin to toolbar_lines.
9677
9678 * xfns.c (x_frame_parms): Add `toolbar-lines'.
9679 (x_set_toolbar_lines): New.
9680
9681 * keyboard.c (cmd_error_internal): Bug fix.
9682
9683 * xterm.c: Remove double include of syssignal.h.
9684
96851998-10-18 Gerd Moellmann <gerd@gnu.org>
9686
9687 * xterm.c (x_toolbar_item): New.
9688 (x_handle_toolbar_click): Use it.
9689 (note_toolbar_highlight): Use it.
9690
9691 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
9692 and toolbar_items_vectors.
9693
9694 * xterm.c (help_echo): New.
9695 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
9696 (x_set_glyph_string_gc): Handle them.
9697 (x_after_update_window_line): Don't do anything in pseudo-windows.
9698 (x_produce_image_glyph): Take image margin and face relief into
9699 account.
9700 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
9701 (x_draw_glyph_string_background): Optimize case when face has
9702 relief.
9703 (x_setup_relief_color): Take frame instead of glyph string
9704 parameter.
9705 (x_draw_relief_rect): New.
9706 (x_draw_glyph_string_relief): Call it.
9707 (x_draw_image_glyph_string_foreground): Handle margin and image
9708 relief.
9709 (x_draw_image_glyph_string_background): Ditto.
9710 (expose_frame): Redraw toolbar window.
9711 (expose_window): Don't draw cursor for pseudo-windows.
9712 (x_y_to_hpos_vpos): Handle pseudo-windows.
9713 (frame_to_window_pixel_xy): New.
9714 (note_mouse_highlight): Call note_toolbar_highlight.
9715 (x_handle_toolbar_click): New.
9716 (note_toolbar_highlight): New.
9717 (show_mouse_face): Change int parameter `hl' to parameter of
9718 type enum draw_glyphs_face. Handle image highlighting.
9719 (XTread_socket): Return a HELP_EVENT input event if help_echo is
9720 non-nil. Use x_handle_toolbar_click.
9721
9722 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
9723
9724 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
9725 IMAGE_BOOL_VALUE.
9726 (parse_image_spec): Handle them.
9727 (image_spec_value): Additional parameter found.
9728 (free_image): Remove image from the vector `images' of the
9729 image cache.
9730 (clear_image_cache): Additional parameter force_p.
9731 (Fclear_image_cache): New.
9732 (x_find_image_file): New.
9733 (xbm_load): Handle `:margin' and `:relief'. Use
9734 x_find_image_file.
9735 (xpm_load): Likewise.
9736 (pbm_load): Likewise.
9737 (jpeg_load): Likewise.
9738 (tiff_load): Likewise.
9739 (gif_load): Likewise.
9740
9741 * keyboard.c (Qhelp_echo): New symbol.
9742 (read_char): Handle `toolbar' and `help_echo' events.
9743 (kbd_buffer_get_event): Handle HELP_ECHO input event.
9744 (make_lispy_event): Handle TOOLBAR_EVENT.
9745 (toolbar_items): New.
9746 (process_toolbar_item): New.
9747 (PROP): New.
9748 (init_toolbar_items): New.
9749 (append_toolbar_item): New.
9750 (read_char_x_menu_prompt): Handle `toolbar' event.
9751 (read_key_sequence): Ditto.
9752
9753 * xfaces.c (Qtoolbar): New.
9754 (realize_basic_faces): Realize `toolbar' face.
9755 (face_at_string_position): Remove parameter modeline_p, add
9756 base_face_id.
9757
9758 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
9759 to read data.
9760
97611998-10-17 Gerd Moellmann <gerd@gnu.org>
9762
9763 * xdisp.c (init_iterator): Replace parameter modeline_p with
9764 base_face_id.
9765 (next_element_from_string): Call get_next_display_element
9766 recursively after handling text properties.
9767 (prepare_menu_bars): Call update_toolbar.
9768 (update_toolbar): New.
9769 (build_desired_toolbar_string): New.
9770 (display_toolbar_line): New.
9771 (redisplay_toolbar): New.
9772 (toolbar_item_info): New.
9773 (redisplay_window): Call redisplay_toolbar.
9774 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
9775
9776 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
9777 window.
9778 (clear_desired_matrices): Ditto.
9779 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
9780 (free_glyphs): Free matrices of toolbar window.
9781 (update_frame): Update toolbar window.
9782 (change_frame_size_1): Take toolbar into account.
9783 (Fset_toolbar_height): New.
9784
9785 * dispextern.h (struct it): Remove member modeline_p, add
9786 base_face_id.
9787 (struct image): Add members relief and margin.
9788 (IMAGE_ASCENT): Include margin in height.
9789
97901998-10-14 Gerd Moellmann <gerd@gnu.org>
9791
9792 * xfns.c (Fclear_image_cache): New.
9793
9794 * xfaces.c (realize_basic_faces): Realize toolbar face.
9795 (face_at_string_position): Remove parameter modeline_p, add
9796 base_face_id.
9797
9798 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
9799
98001998-10-13 Gerd Moellmann <gerd@gnu.org>
9801
9802 * keyboard.c (syms_of_keyboard): Intern `:help'.
9803
98041998-10-12 Gerd Moellmann <gerd@gnu.org>
9805
9806 * xterm.c (note_toolbar_highlight): New.
9807 (note_mouse_highlight): Call it.
9808
9809 * window.c (window_from_coordinates): Additional parameter toolbar_p.
9810 (coordinates_in_window): Handle toolbar window.
9811
9812 * keyboard.c (toolbar_items): New.
9813 (process_toolbar_item): New.
9814 (parse_toolbar_item): New.
9815 (init_toolbar_items): New.
9816 (append_toolbar_item): New.
9817
9818 * dispextern.h (enum toolbar_item_idx): New.
9819 (enum toolbar_item_image): New.
9820
9821 * frame.h (struct frame): Add toolbar-related members.
9822
9823 * xfaces.c (face_at_string_position): Remove assertion that
9824 current_buffer == window's buffer. This is not the case when
9825 called for the toolbar window.
9826
9827 * frame.c (make_frame): Initialize toolbar members.
9828
9829 * alloc.c (mark_object): Mark toolbar data of frames.
9830
9831 * frame.h (struct frame): Add toolbar-related members
9832 toolbar_window, desired_toolbar_items, current_toolbar_items,
9833 desired_toolbar_string, current_toolbar_string,
9834 n_desired_toolbar_items, n_current_toolbar_items. Add
9835 window_height.
9836
9837 * xterm.c (x_after_update_window_line): Don't draw bitmap
9838 areas for pseudo-windows.
9839 (expose_frame): Handle toolbar window.
9840 (expose_window): Don't do cursor stuff for pseudo-windows.
9841
9842 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
9843
98441998-10-11 Gerd Moellmann <gerd@gnu.org>
9845
9846 * frame.c (make_frame): Initialize toolbar_window.
9847
9848 * alloc.c (mark_object): Make the toolbar window.
9849
9850 * dispnew.c (update_frame): Update frame's toolbar_window.
9851 (clear_current_matrices): Likewise.
9852 (clear_desired_matrices): Likewise.
9853 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
9854 (free_glyphs): Free the toolbar window and its matrices.
9855
9856 * frame.h (struct frame): Add toolbar_window.
9857
9858 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
9859 with relief.
9860
98611998-10-10 Gerd Moellmann <gerd@gnu.org>
9862
9863 * dispnew.c (buffer_posn_from_coords): Don't screw up if
9864 window start is not in the range BEGV..ZV.
9865
98661998-10-09 Gerd Moellmann <gerd@gnu.org>
9867
9868 * xdisp.c (try_scrolling): Experimentally handle the case
9869 that scroll-preserve-screen-position is set to `always'.
9870
9871 * window.c (Vscroll_preserve_screen_position): Replacement for
9872 scroll_preserve_screen_position.
9873
98741998-10-08 Gerd Moellmann <gerd@gnu.org>
9875
9876 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
9877 doesn't like it.
9878 * xdisp.c: Ditto.
9879
9880 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
9881
98821998-10-06 Gerd Moellmann <gerd@gnu.org>
9883
9884 * minibuf.c (Fminibuffer_complete_word): Fix computation of
9885 i_byte when prompts are inserted into minibuffers.
9886
9887 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
9888 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
9889 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
9890
98911998-10-04 Gerd Moellmann <gerd@gnu.org>
9892
9893 * xdisp.c (make_cursor_line_fully_visible): New.
9894 (try_scrolling): New.
9895 (redisplay_window): Move scrolling code to try_scrolling.
9896 (make_cursor_line_fully_visible): Handle case of window too small
9897 to show a single line.
9898 (redisplay_window): Case forced window start---use
9899 make_cursor_line_fully_visible.
9900 (redisplay_window): Case cursor movement via current matrix.
9901 If ending up on a partially visible line, make it fully visible
9902 instead of recentering.
9903 (try_scrolling): Additional parameter scroll_smoothly.
9904
9905 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
9906
99071998-09-28 Gerd Moellmann <gerd@gnu.org>
9908
9909 * window.c (window_scroll_pixel_based): Bug fix: vpos used
9910 instead of y-position for scroll-preserved-screen-position.
9911
99121998-09-07 Gerd Moellmann <gerd@gnu.org>
9913
9914 * dispnew.c (update_frame_line): If current row is not enabled,
9915 write the whole line.
9916
99171998-09-06 Gerd Moellmann <gerd@gnu.org>
9918
9919 * lisp.h (HAVE_FACES): Removed.
9920
9921 * dispextern.h (HAVE_FACES): Removed.
9922
9923 * config.in (HAVE_FACES): Removed.
9924
9925 * dispnew.c (HAVE_FACES): Removed.
9926
9927 * xdisp.c (HAVE_FACES): Removed.
9928
9929 * xfaces.c (HAVE_FACES): Removed.
9930
99311998-09-05 Gerd Moellmann <gerd@gnu.org>
9932
9933 * xdisp.c (init_iterator): If face_change_count is non-zero,
9934 free realized faces.
9935
9936 * xfaces.c (free_all_realized_faces): Make it externally visible.
9937 (Finternal_set_lisp_face_attribute): Increment
9938 windows_or_buffers_changed.
9939
9940 * dispnew.c (direct_output_for_insert): Give up if
9941 face_change_count is non-zero.
9942 (direct_output_forward_char): Ditto.
9943
9944 * xfaces.c (face_change_count): New.
9945
99461998-09-04 Gerd Moellmann <gerd@gnu.org>
9947
9948 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
9949 of range.
9950
99511998-09-03 Gerd Moellmann <gerd@gnu.org>
9952
9953 * term.c (Ftty_display_color_p): New.
9954
99551998-09-02 Gerd Moellmann <gerd@gnu.org>
9956
9957 * xfaces.c (Ftty_defined_colors): New.
9958
9959 * xterm.c (x_produce_glyphs): Fix computation of
9960 contains_overlapping_glyphs_p for ASCII.
9961
9962 * dispnew.c (Fshow_cursor): Don't change cursor state while
9963 redisplaying.
9964 (direct_output_for_insert): If a glyph with lbearing or rbearing
9965 is among the new glyphs, set row flag contains_overlapping_glyph_p.
9966
99671998-09-01 Gerd Moellmann <gerd@gnu.org>
9968
9969 * term.c (OUTPUT_IF): Make replacement text have statement form.
9970 (OUTPUT1_IF): Ditto.
9971 (TS_italic_mode, TS_end_italic_mode): Removed.
9972 (TS_bold_mode): Removed.
9973 (TS_underscore_mode, TS_end_underscore_mode): Removed.
9974 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
9975 (TS_enter_reverse_mode): New.
9976 (TS_enter_underline_mode, TS_exit_underline_mode): New.
9977 (TN_magic_cookie_glitch_ul): New.
9978 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
9979 (TS_exit_attribute_mode): New.
9980 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
9981 (TS_set_foreground, TS_set_background): New.
9982 (reset_terminal_modes): Switch colors back to default.
9983 (write_glyphs): Turn face on before writing text, turn it off
9984 afterwards.
9985 (insert_glyphs): Ditto.
9986 (term_init): Initialize new terminal capability variables.
9987 (turn_on_face): Turn a face on.
9988 (turn_off_face): Turn a face off.
9989
9990 * lisp.h (MAKE_GLYPH): Remove test for frame type.
9991 (GLYPH_CHAR): Ditto.
9992 (GLYPH_FACE): Ditto.
9993
9994 * xfaces.c (Vface_tty_color_alist): New.
9995 (face-register-tty-color): New.
9996 (face-clear-tty-colors): New.
9997
9998 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
9999 (struct it): Remove member faces_p since we now always have faces.
10000
100011998-08-31 Gerd Moellmann <gerd@gnu.org>
10002
10003 * dispextern.h (struct face): Add tty appearance flags.
10004
10005 * xdisp.c (init_iterator): Always handle faces.
10006 (extend_face_to_end_of_line): Handle tty frames.
10007
10008 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
10009 passed in.
10010
100111998-08-30 Gerd Moellmann <gerd@gnu.org>
10012
10013 * xfaces.c (realize_default_face): Use empty strings to indicate
10014 that the face should use the default foreground/background
10015 color of the terminal. Fill font-related attributes with
10016 appropriate values for tty frames.
10017
10018 * emacs.c (main): Call syms_of_xfaces before init_window_once.
10019
10020 * xfaces.c (realize_default_face): If face `default' is not
10021 yet known, create it.
10022
10023 * frame.c (make_terminal_frame): Call init_frame_faces
10024 unconditionally.
10025
10026 * xfaces.c (init_frame_faces): Make it work for tty frames.
10027 (free_frame_faces): Ditto.
10028 (clear_face_cache): Ditto.
10029 (recompute_basic_faces): Ditto.
10030 (Fframe_face_alist): Ditto.
10031 (free_realized_face): Ditto.
10032 (prepare_face_for_display): Ditto.
10033 (clear_face_gcs): Ditto.
10034 (lookup_face): Ditto.
10035 (smaller_face): Ditto.
10036 (realize_default_face): Ditto.
10037 (realize_face): Ditto.
10038 (realize_face): Dispatch to functions depending on the frame type.
10039 (realize_x_face): X way of realizing faces.
10040 (realize_tty_face): TTY way of realizing faces.
10041
100421998-08-29 Gerd Moellmann <gerd@gnu.org>
10043
10044 * xfaces.c (realize_face): Remove parameter unibyte_registry,
10045 compute it instead.
10046 (lookup_face): Remove local variable unibyte_registry.
10047
100481998-08-22 Gerd Moellmann <gerd@gnu.org>
10049
10050 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
10051 1 pixel longer.
10052
10053 * xdisp.c (face_before_or_after_it_pos): Fix computation
10054 of face in buffer.
10055
10056 * editfns.c (make_buffer_string_both): If prompt in buffer,
10057 prevent start > end.
10058
10059 * indent.c (Fvertical_motion): Set current_buffer to window's
10060 buffer if it isn't already.
10061
100621998-08-21 Gerd Moellmann <gerd@gnu.org>
10063
10064 * dispextern.h (GLYPH_DEBUG): Use default 0.
10065
10066 * xdisp.c (it_props): New member `smaller'.
10067 (init_iterator): Initialize it.
10068 (Qsmaller): New.
10069 (push_it): Save value of `smaller' value on the stack.
10070 (pop_it): Restore `smaller' from the stack.
10071 (handle_smaller_prop): New.
10072 (handle_face_prop): Use `smaller' text property to select a
10073 suitable face.
10074
10075 * dispextern.h (SMALLER_PROP_IDX): New.
10076 (struct it): Add member `smaller'.
10077
10078 * xfaces.c (smaller_face): New.
10079
10080 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
10081
10082 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
10083 total pixel width of window differently.
10084
10085 * xdisp.c (init_iterator): Compute width of mode line differently.
10086
10087 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
10088 of bitmap areas.
10089
10090 * window.c (Fsplit_window): Include width of bitmap areas in
10091 window width.
10092 (window_internal_width): Subtract width of bitmap areas from
10093 total width.
10094
100951998-08-18 Gerd Moellmann <gerd@gnu.org>
10096
10097 * xdisp.c: Functions reordered for better readability.
10098
10099 * dispnew.c (update_text_area): Handle glyphs with arbitrary
10100 lbearing.
10101 (update_window_tree): Parameter no_scrolling_p removed.
10102 (update_single_window): Ditto.
10103
10104 * xterm.c (x_get_char_font_and_encoding): Renamed to
10105 x_get_char_face_and_encoding.
10106
10107 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
10108 if end of current row reached.
10109
10110 * xterm.c (x_get_glyph_face_and_encoding): New.
10111 (x_get_glyph_overhangs): Call it.
10112
10113 * xdisp.c (Qshow_trailing_whitespace): New.
10114 (Qtrailing_whitespace): New.
10115 (enum prop_handled): New.
10116 (struct props, it_props): New.
10117 (next_overlay_change): New. Works like Fnext_overlay_change
10118 but doesn't use xmalloc.
10119 (handle_stop): Restructured.
10120 (face_before_or_after_it_pos): Case iteration over a string: fix
10121 handling of face before current position.
10122
101231998-08-16 Gerd Moellmann <gerd@gnu.org>
10124
10125 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
10126 reallocation matrix if fonts_changed_p.
10127 (update_text_area): Handle glyphs with lbearing.
10128
101291998-08-14 Gerd Moellmann <gerd@gnu.org>
10130
10131 * xdisp.c (struct props): New.
10132 (it_props): New.
10133 (compute_prop_info): New.
10134 (handle_stop): New.
10135
10136 * textprop.c (validate_interval_range): Make it externally
10137 visible.
10138
10139 * dispnew.c (direct_output_for_insert): Remove calls
10140 to compute_stop_pos.
10141
10142 * dispextern.h (struct it): Remove check_charpos,
10143 next_overlay_pos. Add what_changes.
10144
101451998-08-10 Gerd Moellmann <gerd@gnu.org>
10146
10147 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
10148
10149 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
10150 face_default_registry instead.
10151
10152 * syntax.c (scan_sexps_forward): Set up syntax table before
10153 jumping to initial state label.
10154
101551998-08-09 Gerd Moellmann <gerd@gnu.org>
10156
10157 * dispnew.c (check_matrix_invariants): Handle case of row end pos
10158 >= ZV specially.
10159
101601998-08-08 Gerd Moellmann <gerd@gnu.org>
10161
10162 * xdisp.c (redisplay_window): Case cursor movement---if cursor
10163 ends up in partially visible row, try to scroll. Case forced
10164 window start---handle windows not tall enough to show a single
10165 line.
10166
10167 * window.h (struct window): Member dy renamed vscroll.
10168
10169 * xterm.c (x_list_fonts): Re-activate suppression of scalable
10170 fonts.
10171 (x_draw_stretch_glyph_string): Set clipping if using GC that
10172 hasn't set it yet.
10173
10174 * xdisp.c (redisplay_window): Case forced window start -
10175 don't let cursor end on partially visible row. Use desired
10176 matrix to find a suitable PT if it doesn't appear.
10177 (decode_mode_spec): Merged with 20.2.97.
10178 (try_window_reusing_current_matrix): Give up if old or
10179 new display is vscrolled.
10180 (redisplay_window): Reset vscrolling if forced window start,
10181 or if recentering.
10182
101831998-08-06 Gerd Moellmann <gerd@gnu.org>
10184
10185 * xfaces.c (realize_default_face): Use the fontset name instead of
10186 the alias for the family attribute of the default face because we
10187 can't easily determine a good alias from fontset-alias-alist.
10188 (face_fontset): Use Fquery_fontset to find the fontset.
10189 (font_list): Additional pattern parameter.
10190 (try_font_list): Ditto.
10191 (set_lface_from_font_name): Set face family from font foundry
10192 and family.
10193 (font_list): If family contains a hyphen, build pattern differently.
10194
101951998-08-05 Gerd Moellmann <gerd@gnu.org>
10196
10197 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
10198 changed instead of setting the frame garbaged.
10199
10200 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
10201 all attribute values. This is wrong if values are unspecified,
10202 i.e. nil.
10203
10204 * xdisp.c (try_window_id): Give up if window start changed.
10205
10206 * xfaces.c (make_realized_face): Store registry as Lisp object.
10207 (load_face_font_or_fontset): Compute registry of a face
10208 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
10209 possible.
10210
10211 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
10212 differently.
10213
10214 * alloc.c (mark_face_cache): Mark the registry member of faces.
10215
10216 * dispextern.h (struct face): Make registry a Lisp string.
10217
102181998-08-04 Gerd Moellmann <gerd@gnu.org>
10219
10220 * xterm.c (x_get_char_font_and_encoding): Additional parameter
10221 multibyte_p. Handle unibyte text.
10222 (x_append_glyph): Set the multibyte_p flag of glyphs.
10223 (x_produce_image_glyph): Ditto.
10224 (x_append_stretch_glyph): Ditto.
10225 (x_produce_glyphs): Handle unibyte text like ASCII.
10226
10227 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
10228 stack.
10229 (pop_it): Restore it.
10230 (face_before_or_after_it_pos): Handle the case that the string or
10231 buffer is unibyte.
10232 (get_overlay_strings): Set the multibyte flag of the iterator if
10233 the new overlay string is multibyte.
10234 (get_glyph_property): Likewise.
10235 (get_next_display_element): Don't check for charset changes in
10236 unibyte text.
10237 (append_space): Compute face differently for unibyte text.
10238 (extend_face_to_end_of_line): Don't return quickly if face has
10239 stipple.
10240
10241 * xfaces.c (load_face_font_or_fontset): Store registry and
10242 encoding of the font in the registry member of the face.
10243 (make_realized_face): Additional parameter `registry'.
10244 (free_realized_face): Free the registry of a realized face.
10245 (face_suitable_for_charset_p): Function form of the macro
10246 with the same name in uppercase.
10247 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
10248 (choose_face_font): New parameter unibyte_registry.
10249 (choose_face_fontset_font): Ditto.
10250 (realize_default_face): Remember the registry and encoding of
10251 the specified frame font in Vx_unibyte_registry_and_encoding.
10252 (face_at_buffer_position): Handle unibyte.
10253 (face_at_string_position): Likewise.
10254 (realize_face): New parameter unibyte_registry.
10255 (compute_char_face): Handle the unibyte case.
10256
10257 * dispextern.h (struct glyph): Add bit multibyte_p.
10258 (struct face): New member registry holding the registry and
10259 encoding of the X font of the face.
10260 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
10261 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
10262 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
10263 text.
10264 (struct iterator_stack_entry): Add multibyte_p.
10265
10266 * xdisp.c (string_pos): Use string_char_to_byte.
10267 (char_charset): Removed.
10268
102691998-08-03 Gerd Moellmann <gerd@gnu.org>
10270
10271 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
10272 rectangle for a block cursor over an image without a mask.
10273 (x_stretch_block_cursor): Added. Non-zero means don't draw
10274 a block cursor over a stretch as wide as that stretch.
10275 (x_draw_stretch_glyph_string): Use it.
10276 (x_draw_hollow_cursor): Ditto.
10277
10278 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
10279 (read_minibuf): Add front-sticky text property for prompt.
10280
10281 * xdisp.c (char_charset): Return charset of a character,
10282 depending on whether or not multi-byte characters are enabled.
10283
10284 * xfaces.c (Fset_face_charset_registry): Removed.
10285 (x_charset_registry): Determine registry from charset plist.
10286
102871998-08-02 Gerd Moellmann <gerd@gnu.org>
10288
10289 * xdisp.c (get_next_display_element): Don't check for charset
10290 changes if multi-byte characters are not enabled.
10291
10292 * xdisp.c (echo_area_display): Use the flush function from the
10293 redisplay interface.
10294 * keyboard.c (detect_input_pending_run_timers): Likewise.
10295
10296 * dispextern.h (produce_*glyphs_hook): Removed.
10297 * term.c (produce_*glyphs): Ditto.
10298 (cursor_to): Remove pixel position parameters.
10299
10300 * dispnew.c: Remove hooks for window-based redisplay, introduce
10301 a redisplay interface structure.
10302
10303 * xterm.c (x_per_char_metric): Return default char metrics if per
10304 char metric exists but contains a zero width. Adobe Courier seems
10305 to contain such characters.
10306
10307 * xdisp.c (compute_line_metrics): Compute the width of rows
10308 without stopping at glyphs with zero width.
10309
103101998-08-01 Gerd Moellmann <gerd@gnu.org>
10311
10312 * xdisp.c (display_mode_line): If nothing was displayed at all,
10313 display a space.
10314 (hscroll_window_tree): Don't subtract 1 from target point if equal
10315 to ZV and window is not the selected window.
10316
10317 * dispnew.c (check_matrix_invariants): Remove check for window
10318 start at BEGV or after newline. This happens in rare cases
10319 intentionally.
10320
103211998-07-31 Gerd Moellmann <gerd@gnu.org>
10322
10323 * xfaces.c (x_charset_registry): Use STRING_BYTES.
10324 (syms_of_xfaces): Add Vface_default_registry.
10325 (x_charset_registry): Use it.
10326
10327 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
10328 (redisplay_window): Use it.
10329
10330 * dispnew.c (update_text_area): Handle lbearing of deleted text
10331 by backing up one character.
10332
103331998-07-30 Gerd Moellmann <gerd@gnu.org>
10334
10335 * dispnew.c (adjust_glyph_matrix): Use a different check to
10336 decide to do nothing.
10337
10338 * xfaces.c (face_at_string_position): Additional parameter
10339 mode_line_p. If non-zero, merge with the mode line face
10340 instead of the default face.
10341 * dispextern.h (struct it): Add mode_line_p.
10342 * xdisp.c (init_iterator): Set it.
10343 (compute_face_in_string): Use it.
10344 (face_before_or_after_it_pos): Handle strings.
10345 (get_next_display_element): Don't look for relief end in C strings.
10346 (next_element_from_string): Deliver string position instead of
10347 buffer position.
10348
10349 * xterm.c (x_flush): Flush X output buffer.
10350 (XTflash): Use it.
10351
10352 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
10353 Allow strings as face names.
10354
10355 * xfns.c (forall_images_in_image_cache): Check that frame is
10356 alive.
10357
10358 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
10359 it's also called from x_destroy_window. Since this function is
10360 called from X, freeing stuff allocated with xmalloc is dangerous
10361 here, anyway.
10362
10363 * xfaces.c (free_realized_faces): Don't clear current matrices
10364 of a frame being destroyed.
10365
10366 * frame.c (make_frame): Call set_window_buffer instead of
10367 Fset_window_buffer.
10368
10369 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
10370 with an additional argument specifying whether or not hooks may
10371 be called.
10372 (Fset_window_buffer): Call it.
10373
10374 * dispnew.c (clear_desired_matrices): Check that frame has
10375 a valid root window before clearing matrices in the window tree.
10376 (clear_current_matrices): Ditto.
10377 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
10378 vchild are valid windows if not nil.
10379
10380 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
10381 for :inverse-video.
10382 (Finternal_set_lisp_face_attribute): Ditto.
10383 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10384 (Finternal_get_lisp_face_attribute): Ditto.
10385 (Finternal_lisp_face_attribute_values): Ditto.
10386 (syms_of_xfaces): Define the symbol `:reverse-video'.
10387
10388 * xdisp.c (get_glyph_property): Renamed from
10389 fill_iterator_from_glyph_property.
10390 (next_element_from_buffer): Handle case that no `glyph' property
10391 was found correctly.
10392 (display_line): Extend face to end of line only if we have faces.
10393
103941998-07-29 Gerd Moellmann <gerd@gnu.org>
10395
10396 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
10397 additional window argument.
10398
10399 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
10400 set_iterator_to_previous_visible_line_start.
10401 (reseat_at_next_visible_line_start): Likewise.
10402 (compute_stop_pos): Renamed from set_iterator_stop_pos.
10403 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
10404 (compute_face_in_buffer): Renamed from
10405 compute_face_at_iterator_position.
10406 (compute_face_in_string): Renamed from
10407 compute_face_at_iterator_string_position.
10408 (get_space_width): Renamed from get_iterator_space_width.
10409 (next_overlay_string): Renamed from
10410 set_iterator_to_next_overlay_string.
10411 (get_overlay_strings): Renamed from
10412 get_overlay_strings_at_iterator_position.
10413 (restore_overlay_strings): Renamed from
10414 setup_overlay_strings_from_glyph_pos.
10415 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
10416 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
10417 (init_to_row_start): Renamed from init_iterator_to_row_start.
10418 (init_to_row_end): Formerly init_iterator_to_next_row_start.
10419
10420 * xterm.c: Merge with 20.2.97.
10421 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
10422
10423 * dispextern.h (struct glyph): Replace text_pos position with
10424 simple charpos.
10425
10426 * xdisp.c (this_line_start_pos): Use struct text_pos.
10427 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
10428 (enum move_it_result): Renamed from move_iterator_result.
10429 (string_pos_nchars_ahead): Compute text_pos in a string from a
10430 known text_pos plus a character delta.
10431 (string_pos): Compute text_pos in string from charpos.
10432 (c_string_pos): Likewise for a C string.
10433 (number_of_chars): Return number of characters in a possibly
10434 multi-byte C string.
10435 (check_it): Renamed from check_iterator. Check that charpos and
10436 bytepos are in sync.
10437 (push_it): Renamed from save_iterator_settings.
10438 (pop_it): Renamed from restore_iterator_settings.
10439 (move_it_.*): Renamed from move_iterator_.*.
10440 (charset_at_position): Take charpos/bytepos into account.
10441 (back_to_previous_line_start): Set iterator to previous line start.
10442 (forward_to_next_line_start): Set iterator to next line start.
10443 (back_to_previous_visible_line_start): Renamed from
10444 move_iterator_previous_visible_line_start.
10445 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
10446 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
10447 Handle charpos/bytepos.
10448 (compute_face_at_iterator_position): Handle charpos/bytepos.
10449 (compute_face_at_iterator_string_position): Likewise.
10450 (get_iterator_space_width): Likewise.
10451 (load_overlay_strings): Likewise.
10452 (get_overlay_strings_at_iterator_position): Likewise.
10453 (reseat_iterator): Take a text_pos position argument.
10454 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
10455 bytepos.
10456 (init_iterator): Take additional bytepos parameter.
10457 (reseat_iterator_to_string): Handle charpos/bytepos.
10458 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
10459 (next_element_from_string): Handle charpos/bytepos.
10460 (next_element_from_c_string): Likewise.
10461 (fill_iterator_from_glyph_property): Likewise.
10462 (next_element_from_buffer): Likewise.
10463 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
10464 (move_iterator_in_display_line_to): Handle charpos/bytepos.
10465 (move_it_to): Likewise.
10466 (move_it_vertically_backward): Likewise.
10467 (move_it_vertically): Likewise.
10468 (move_it_by_lines): Likewise.
10469 (hscroll_window_tree): Likewise.
10470 (redisplay_internal): Likewise.
10471 (set_cursor_from_row): Likewise.
10472 (redisplay_window): Likewise.
10473 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
10474 (try_window_reusing_current_matrix): Handle charpos/bytepos.
10475 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
10476 (try_window_id): Handle charpos/bytepos.
10477 (Ftrace_redisplay_toggle): Return Qnil.
10478 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
10479 (insert_left_trunc_glyphs): Likewise.
10480
10481 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
10482 do a real merge).
10483 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
10484 (increment_glyph_row_buffer_positions): Ditto.
10485 (copy_glyph_row_contents): Ditto.
10486 (check_matrix_invariants): Add additional checks for charpos/
10487 bytepos consistency.
10488 (direct_output_for_insert): Changed for charpos/bytepos.
10489 (buffer_posn_from_coords): Likewise. Put code dealing with
10490 `direction-reversed' in #if 0.
10491
10492 * xterm.h: Merge with 20.2.97.
10493
10494 * frame.h: Merge with 20.2.97.
10495
10496 * window.h: Merge with 20.2.97. Add window_end_bytepos.
10497
10498 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
10499 start.
10500 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
10501 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
10502 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
10503 (struct it): Various members renamed from .*pos to .*charpos.
10504 (IT_CHARPOS): Access current buffer character position of an
10505 iterator.
10506 (IT_BYTEPOS): Access current buffer byte position of an iterator.
10507 (IT_STRING_CHARPOS): Access current string character position of
10508 an iterator.
10509 (IT_STRING_BYTEPOS): Access current string byte position of
10510 an iterator.
10511 (globally): Add function prototypes from 20.2.97.
10512
10513 * everywhere: Use P_ instead of PROTO for function prototypes
10514 because everyone else seems to use P_.
10515
10516 * dispextern.h (struct text_pos): Structure describing a charpos/
10517 bytepos position in text.
10518 (BYTEPOS): Access the byte position part of a text_pos.
10519 (CHARPOS): Likewise for the character position.
10520 (SET_TEXT_POS): Set a text_pos from a character and byte position.
10521 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
10522 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
10523 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
10524 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
10525 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
10526 for buffer and string positions.
10527 (struct glyph): Use text_pos.
10528 (struct it): Renamed from display_iterator. Use text_pos.
10529
105301998-07-23 Gerd Moellmann <gerd@gnu.org>
10531
10532 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
10533 pixmap.
10534
105351998-07-21 Gerd Moellmann <gerd@gnu.org>
10536
10537 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
10538 * xterm.c (x_draw_row_bitmaps): Use it.
10539 * dispnew.c (row_equal_p): Ditto.
10540 (update_window_line): Ditto.
10541
10542 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
10543 flag of images.
10544
10545 * dispextern.h (struct image): Removed member loading_failed_p.
10546 It's probably better to have the chance to try to load an image
10547 again.
10548
105491998-07-20 Gerd Moellmann <gerd@gnu.org>
10550
10551 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
10552 at ZV if `indicate-zv-lines' is non-nil.
10553 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
10554
10555 * dispnew.c (row_equal_p): Compare displays_text_p and
10556 ends_at_zv_p flags of rows.
10557 (update_window_line): Ditto.
10558
10559 * buffer.h (struct buffer): New member indicate_zv_lines.
10560
10561 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
10562 (init_buffer_once): New variable `default-indicate-zv-lines'.
10563 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
10564
10565 * xdisp.c (redisplay_window): Don't try moving the cursor
10566 if current glyph row w->last_cursor.vpos isn't enabled.
10567
10568 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
10569
10570 * window.c (Fset_window_vscroll): Allow only negative scroll
10571 values. Others don't seem to make sense, and this way it's easy
10572 to restore a vscroll of zero.
10573
10574 * xterm.c (x_inverted_image_mask): Check that pixmap could be
10575 allocated.
10576 (x_draw_image_glyph_string_background): Don't clip if pixmap
10577 could not be created.
10578
10579 * xfns.c (xbm_load_image_from_file): Check that pixmap could
10580 be created.
10581 (xbm_load): Ditto.
10582 (gs_load): Ditto.
10583
10584 * xterm.c (x_get_glyph_overhangs): Take image and stretch
10585 glyphs into account.
10586
10587 * xfaces.c (realize_default_face): Don't set font family of
10588 the default face from the fontset alias name for `fontset-startup'.
10589
10590 * xfns.c (gs_load): Pass frame's pixel foreground and background
10591 color to the Lisp loader.
10592
105931998-07-19 Gerd Moellmann <gerd@gnu.org>
10594
10595 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
10596 libtiff34.
10597
10598 * configure.in (--with-tiff, HAVE_TIFF): Added.
10599
10600 * config.in (HAVE_TIFF): Added.
10601
10602 * Makefile.in (LIBTIFF): Added.
10603
10604 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
10605
10606 * Makefile.in (LIBJPEG): Added.
10607
10608 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
10609 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
10610 jpeglib.h.
10611
10612 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
10613 where the library is installed in /usr/local/lib, e.g. FreeBSD,
10614 configure must be run with `--x-includes=/usr/X11R6/include:
10615 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
10616
106171998-07-18 Gerd Moellmann <gerd@gnu.org>
10618
10619 * config.in (HAVE_JPEG): Added.
10620
10621 * xfns.c (ct_init): Initialize color table used to map RGB colors
10622 from images to X pixel colors.
10623 (ct_free): Free color table.
10624 (ct_lookup): Look an RGB color up.
10625 (ct_allocated_colors): Get vector of allocated colors.
10626 (pbm_image_p): Test if image specification is a valid PPM
10627 image specification.
10628 (pbm_scan_number): Scan a decimal ASCII number from a file.
10629 (pbm_load): Load a PPM image.
10630
10631 * window.c (Fset_window_vscroll): Adjust glyph matrix if
10632 necessary. Take canonical character units as parameter.
10633 (Fwindow_vscroll): Return canonical character units.
10634
10635 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
10636 w->dy to display height for which glyph rows must be allocated.
10637
106381998-07-17 Gerd Moellmann <gerd@gnu.org>
10639
10640 * xfaces.c (face_at_string_position): Merge in region face
10641 so that it won't overwrite the font in the region.
10642 (face_at_buffer_position): Ditto.
10643 (realize_basic_faces): Don't realize region face.
10644
10645 * dispextern.h (enum face_id): REGION_FACE_ID removed.
10646
10647 * xterm.c (x_set_glyph_string_background_width): Don't let
10648 cursor face extend to end of line.
10649
10650 * xdisp.c (append_space): If adding space of default face,
10651 make sure glyph ist produced with right face.
10652
10653 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
10654 background color of a glyph string.
10655 (x_draw_glyph_string_background): Call it.
10656 (x_draw_glyph_string_bg_rect): Ditto.
10657 (x_draw_stretch_glyph_string): Ditto.
10658
106591998-07-15 Gerd Moellmann <gerd@gnu.org>
10660
10661 * xdisp.c (init_iterator): Initialize it->current_y to the
10662 window's vscroll w->dy.
10663
10664 * window.c (Fwindow_vscroll): Return number of pixels window
10665 is vscrolled smoothly.
10666 (Fset_window_vscroll): Set the number.
10667
10668 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
10669 to_pos in truncated part of a line.
10670
106711998-07-14 Gerd Moellmann <gerd@gnu.org>
10672
10673 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
10674 doesn't fit on the line, truncate it, despite truncate_lines nil.
10675 (display_line): Ditto.
10676
10677 * xfns.c: Experimental support for Ghostscript images.
10678
10679 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
10680 (XTread_socket): React on events from Ghostscript.
10681 (expose_frame): If width or height are zero, redraw entire frame.
10682 (XTread_socket): Call expose_frame after receiving event from
10683 Ghostscript.
10684
10685 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
10686 for Ghostscript support.
10687
10688 * xdisp.c (redisplay_internal): Return quickly if called
10689 recursively.
10690
10691 * alloc.c (NSTATICS): Increased to 1024.
10692
106931998-07-08 Gerd Moellmann <gerd@gnu.org>
10694
10695 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
10696 iterator's glyph row.
10697 (x_produce_stretch_glyph): Call it.
10698 (x_produce_glyphs): Handle `space-width' property; call
10699 x_append_stretch_glyph.
10700
10701 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
10702 property.
10703 (get_iterator_space_width): Determine value of `space-width'
10704 property at iterator's position.
10705 (reseat_iterator): Call it.
10706 (next_element_from_string): Ditto.
10707 (next_element_from_buffer): Ditto.
10708 (init_iterator): Initialize space_width of iterator.
10709 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
10710 moved, but cursor blinks.
10711 (redisplay_internal): Set w->last_cursor_off_p after update.
10712
10713 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
10714 (struct display_iterator): Add new member space_width.
10715
10716 * window.h (struct window): Add last_cursor_off_p.
10717
107181998-07-07 Gerd Moellmann <gerd@gnu.org>
10719
10720 * Saved.
10721
10722 * window.c (Fpos_visible_in_window_p): Case window not up to
10723 date---return nil if iterator hasn't reached position.
10724
107251998-07-06 Gerd Moellmann <gerd@gnu.org>
10726
10727 * xdisp.c (text_outside_line_unchanged_p): Fix case that
10728 overlays have changed.
10729 (redisplay_window): Case cursor movement. Don't try it if
10730 last_cursor.vpos is out of range.
10731
10732 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
10733 way, the display optimization for the line containing the cursor
10734 is used more frequently, esp. when we have a blinking cursor.
10735 (display_line): Don't set this_line_.* variables.
10736
10737 * xterm.c (x_redraw_cursor): Removed.
10738 (x_display_and_set_cursor): Set cursor type depending on
10739 cursor_off_p flag of window.
10740
10741 * dispnew.c (redraw_cursor_hook): Removed.
10742 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
10743 member of the selected window.
10744
10745 * xfaces.c (Fface_font): Added for compatibility with 20.2.
10746
10747 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
10748 Return glyph area under x/y.
10749 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
10750
10751 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
10752 after redisplaying.
10753
107541998-07-05 Gerd Moellmann <gerd@gnu.org>
10755
10756 * xdisp.c (text_outside_line_unchanged_p): Test if changes
10757 are all outside of a line of text.
10758 (redisplay_internal): Use it.
10759
107601998-06-30 Gerd Moellmann <gerd@gnu.org>
10761
10762 * xdisp.c (next_element_from_buffer): After skipping over
10763 invisible text, look for the `glyph' property.
10764 (set_iterator_stop_pos): Ignore check positions in front
10765 of an iterator's current position.
10766
10767 * xterm.c (show_mouse_face): Don't act on rows that don't exist
10768 anymore or which are marked as not having valid contents.
10769
10770 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
10771 realized faces if new attribute value is equal to old value.
10772
107731998-06-29 Gerd Moellmann <gerd@gnu.org>
10774
10775 * xfaces.c (Finternal_make_lisp_face): Increment
10776 lface_id_to_name_size when lface_id_to_name is reallocated.
10777
107781998-06-27 Gerd Moellmann <gerd@gnu.org>
10779
10780 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
10781 as minimum of endpos and overlay_pos.
10782 (load_overlay_strings): Set next_overlay_pos of iterator to
10783 -1 if we don't have to check for more overlay strings.
10784
107851998-05-09 Gerd Moellmann <gerd@gnu.org>
10786
10787 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
10788 do anything if iterator is at ZV because scan_buffer doesn't
10789 work otherwise.
10790
10791 * xterm.c (x_encode_char): Inline it.
10792 (x_get_char_font_and_encoding): Simplified.
10793 (x_per_char_metric): Inline it.
10794
10795 * xterm.c (x_draw_glyph_string_relief): Use clipping.
10796
10797 * xdisp.c (get_next_display_element): Check for end of relief
10798 face moved here from next_element_from_buffer.
10799
10800 * xterm.c (x_produce_image_glyph): Add relief thickness.
10801 (x_produce_stretch_glyph): Ditto.
10802
108031998-05-08 Gerd Moellmann <gerd@gnu.org>
10804
10805 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
10806 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
10807
10808 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
10809 from a glyph property.
10810 (x_produce_glyphs): Use it.
10811
10812 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
10813
10814 * xterm.c (x_produce_image_glyph): Add to current_x only if
10815 in text area.
10816 (x_produce_glyphs): Ditto.
10817
10818 * xdisp.c (display_line): Compute row height from glyphs in
10819 marginal areas.
10820
10821 * xterm.c (x_draw_image_glyph_string_background): Draw
10822 background of an image glyph string.
10823 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
10824 the background of a glyph string.
10825 (x_draw_image_glyph_string_foreground): Draw the foreground of
10826 an image glyph string.
10827 (x_inverted_image_mask): Return the inverted mask of an image.
10828
10829 * xfns.c (x_draw_image): Removed.
10830
10831 * dispextern.h (struct image_type): Remove drawing function.
10832
10833 * xfaces.c (load_face_colors): Swap colors if face is inverse.
10834
10835 * xdisp.c (get_next_display_element): In marginal areas, translate
10836 newlines, tabs, etc. like normal control characters.
10837
10838 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
10839 and color.
10840 (free_realized_faces): Set frame garbaged.
10841
10842 * xfaces.c (syms_of_xfaces): Add defsubr for
10843 internal-lisp-face-attribute-values.
10844
108451998-05-07 Gerd Moellmann <gerd@gnu.org>
10846
10847 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
10848 full.
10849 (x_produce_image_glyph): Set IT->nglyphs to 1.
10850 (x_draw_image_glyph_string): Use inverted mask to draw background.
10851
10852 * dispextern.h (struct image_type): Additional clipping rect
10853 parameters for drawing functions.
10854
10855 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
10856 a glyph string.
10857 (x_draw_image_glyph_string): Use it and pass the rect to the
10858 image drawing function.
10859
10860 * xdisp.c (fill_iterator_from_glyph_property): Use position of
10861 first character with `glyph' property as image position. Set
10862 iterator back to that position as long as the image hasn't been
10863 consumed with set_iterator_to_next.
10864 (set_cursor_from_row): Accept when glyph with given position is
10865 not found in the row. Set cursor x to end of line in that case,
10866 so that we can hscroll.
10867 (redisplay_internal): Correct computation of delta by which
10868 positions have changed in redisplay optimization for cursor
10869 row of selected window.
10870
10871 * xdisp.c (display_line): Remove start_pos.
10872 (display_line): Fix bug preventing display optimization for
10873 cursor line of selected window.
10874 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
10875 instead.
10876
10877 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
10878 (update_text_area): Take glyph pixel width into account
10879 when trying to find a resync point.
10880 (row_equal_p): Compare glyphs in all areas.
10881
108821998-05-06 Gerd Moellmann <gerd@gnu.org>
10883
10884 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
10885
10886 * dispextern.h (struct glyph_row): Use unsigned hash value.
10887
10888 * xdisp.c (display_line): Simplified and made faster by setting
10889 the cursor with set_cursor_from_row.
10890 (set_cursor_from_row): Handle rows of desired matrix.
10891
108921998-05-05 Gerd Moellmann <gerd@gnu.org>
10893
10894 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
10895 with type != CHAR_GLYPH.
10896 (fill_iterator_from_glyph_property): Return void. Set
10897 method to next_element_from_image.
10898 (next_element_from_image): Dummy function for delivering a
10899 single image id.
10900 (set_iterator_to_next): Add method next_element_from_image.
10901 (redisplay_window): When recentering, and cursor vpos is -1
10902 after display, assume middle of window is in first line displayed
10903 in window, and display again.
10904 (fill_iterator_from_glyph_property): Assign image glyph
10905 the position of the first character having the glyph property.
10906
10907 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
10908 * xfns.c (x_draw_image): Use it.
10909 * xterm.c (x_produce_image_glyph): Use it.
10910
10911 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
10912
10913 * Makefile.in: Extraneous #define of LIBXPM removed.
10914
10915 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
10916 (x_fill_stretch_glyph_string): Fill a glyph string from a
10917 stretch glyph.
10918 (x_compute_glyph_string_overhangs): Compute overhangs only
10919 for text glyph strings.
10920 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
10921 (x_draw_glyph_string): Call it.
10922
10923 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
10924 (struct glyph): Add sub-structure for stretchable glyphs.
10925 (GLYPH_EQUAL_P): Compare glyph type and u.val.
10926
10927 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
10928 #ifdef HAVE_FACES.
10929
10930 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
10931
10932 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
10933 setup_iterator_from_glyph_property. Don't do it for terminal
10934 frames.
10935
10936 * xterm.c (x_produce_image_glyph): Produce glyph for image
10937 that can't be loaded.
10938
10939 * xfns.c (lookup_image): If image can't be loaded, set its
10940 width and height so that we can draw a rectangle.
10941 (x_draw_image): Draw a rectangle for images that don't have
10942 a pixmap.
10943 (make_image): Set hash value.
10944 (image_spec_equal_p): Use image_spec_value.
10945
10946 * xterm.c (expose_frame): Don't try to redraw if basic faces
10947 haven't benn realized yet.
10948 (x_draw_image_glyph_string): Fill background only if image
10949 is not as tall as row.
10950
109511998-05-04 Gerd Moellmann <gerd@gnu.org>
10952
10953 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
10954 (LIBX)[HAVE_X11]: Add LIBXPM.
10955
10956 * xfns.c (xpm_image_p): Implementation of image type functions
10957 for XPM.
10958 (xpm_load): Ditto.
10959
10960 * dispextern.h (struct image): Add mask pixmap for XPM.
10961
10962 * xfns.c (x_draw_image): Handle images with masks.
10963
10964 * configure.in: --with-xpm added. Code detecting -lXpm added.
10965
10966 * config.in: Add HAVE_XPM.
10967
10968 * xfns.c (xbm_draw): Removed.
10969 (x_draw_image): Default implementation for drawing images.
10970 (xbm_keyword_index): Remove XBM_DEPTH.
10971 (xbm_format): Remove `:depth'.
10972 (xbm_image_spec_from_file): Removed to reduce consing.
10973 (xbm_load_image_from_file): Added for the same reason.
10974
10975 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
10976 glyph string.
10977 (x_draw_image_glyph_string): Pass ybase to image draw function.
10978
10979 * xfns.c (make_image): Set default baseline.
10980
10981 * xterm.c (x_produce_image_glyph): Compute ascent of image
10982 from its height and baseline percentage.
10983
10984 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
10985 (xbm_format): Add description for `:baseline'.
10986 (xbm_image_spec_from_file): Add keywords from original spec to
10987 result.
10988 (xbm_load): Set baseline of image.
10989 (xbm_image_p): Check range for baseline.
10990
10991 * dispextern.h (struct image): Add member baseline.
10992
10993 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
10994
10995 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
10996
10997 * xdisp.c (get_next_display_element): Do character translations
10998 only if delivering characters.
10999
110001998-05-03 Gerd Moellmann <gerd@gnu.org>
11001
11002 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
11003 DISP_CHARACTER.
11004
11005 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
11006 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
11007
110081998-05-02 Gerd Moellmann <gerd@gnu.org>
11009
11010 * xfns.c (prepare_image_for_display): Set image timestamp.
11011 (clear_image_cache): Clear images if image's timestamp +
11012 Vimage_eviction_seconds is > now.
11013 (syms_of_xfns): New variables image-eviction-seconds, and
11014 image-types.
11015 (add_image_format): Add to image-types.
11016 (xbm_load): Support new image spec format.
11017 (x_alloc_image_color): Allocate a color for an image.
11018
11019 * dispextern.h (struct image): Add timestamp.
11020
11021 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
11022 vectors of bool-vectors.
11023 (xbm_lisp_object_from_file): Build new format image spec.
11024
110251998-05-01 Gerd Moellmann <gerd@gnu.org>
11026
11027 * xfaces.c (init_frame_faces): Initialize image cache.
11028 (free_frame_faces): Free it.
11029
11030 * xterm.c (x_delete_display): Don't free image cache.
11031
11032 * emacs.c (main): Call init_xfns.
11033
110341998-04-30 Gerd Moellmann <gerd@gnu.org>
11035
11036 * alloc.c (mark_object): Mark objects in image cache.
11037
11038 * xfns.c (x_set_internal_border_width): Correct call to
11039 widget_store_internal_border_width.
11040
11041 * widget.c (widget_store_internal_border): Return void.
11042
11043 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
11044 void.
11045 (init_x_parm_symbols): Return void.
11046 (x_report_frame_params): Ditto.
11047 (x_set_border_pixel): Ditto.
11048 (syms_of_xfns): Ditto.
11049 (x_destroy_all_bitmaps): Use xfree instead of free.
11050
11051 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
11052
11053 * xterm.c (x_term_init): Initialize image_cache of display info.
11054 (x_delete_display): Free image cache.
11055
11056 * xterm.h (struct x_display_info): Add image_cache.
11057
11058 * xfns.c (make_image_cache): Allocate a new image cache.
11059 (free_image_cache): Free an image cache.
11060 (make_image): Allocate an image.
11061 (free_image): Free an image.
11062
11063 * dispextern.h (struct image): Structure describing an image.
11064 (struct image_cache): Structure describing an image cache.
11065
110661998-04-29 Gerd Moellmann <gerd@gnu.org>
11067
11068 * xdisp.c (check_iterator_glyph_property): Return int. Value is
11069 non-zero if iterator is filled with something to return.
11070 (next_element_from_buffer): Immediately return if
11071 setup_iterator_from_glyph_prop has filled iterator with pixmap.
11072 (next_element_from_string): Likewise.
11073
11074 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
11075
11076 * dispextern.h (struct glyph): Add pixmap_id.
11077 (display_element_type): Add DISP_PIXMAP.
11078
11079 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
11080 malloc/free.
11081
11082 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
11083 (clear_face_cache): Call it.
11084
11085 * xterm.c (x_query_font): Don't look at empty font table slots.
11086 (x_compute_min_glyph_bounds): Likewise.
11087 (x_term_init): Initialize font_table to null.
11088 (x_load_font): Change allocation of font_info structures so
11089 that it is possible to free fonts.
11090
11091 * xfns.c (Fx_close_connection): Use xfree instead of free.
11092 Only free fonts from filled font table entries.
11093
11094 * xfaces.c (best_matching_font): Support use of scalable fonts.
11095 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
11096
11097 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
11098 and resy.
11099 * xterm.c (x_term_init): Compute resx and resy.
11100
11101 * xfaces.c (split_font_name): Don't reject scalable fonts.
11102
11103 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
11104 in #if 0.
11105
11106 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
11107 point size cannot be determined.
11108
11109 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
11110 width over all fonts on a frame.
11111 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
11112 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
11113 macros.
11114
11115 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
11116 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
11117 (x_load_font): Use x_compute_min_char_bounds.
11118
11119 * xterm.h (struct x_display_info): New members smallest_char_width
11120 and smallest_font_height.
11121
111221998-04-28 Gerd Moellmann <gerd@gnu.org>
11123
11124 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
11125 the same name if GC of face is zero.
11126
11127 * dispextern.h (struct face): Member non_ascii_gc removed.
11128
11129 * xterm.c (x_get_char_font_and_encoding): Return face's font
11130 for characters < 0177 in default face. Prepare face for
11131 display before returning it.
11132 (x_produce_glyphs): Use it->charset.
11133 (x_get_char_font_and_encoding): Simplified.
11134 (x_encode_char): Remove parameter `font'.
11135
11136 * xfaces.c (choose_face_font): If registry from charset symbol
11137 doesn't contain a `-', make it a pattern by appending "*-*".
11138
11139 * xdisp.c (check_iterator_glyph_property): Adjust limit for
11140 glyph_check_pos computation to character boundary.
11141
111421998-04-27 Gerd Moellmann <gerd@gnu.org>
11143
11144 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
11145
11146 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
11147 ASCII face for a given Lisp face id.
11148
11149 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
11150 account.
11151 (reseat_iterator): Set glyph_check_pos. Handle case where
11152 new position is < original position.
11153 (check_iterator_glyph_property): Handle glyph property in strings.
11154 (next_element_from_string): Call above function.
11155 (next_element_from_display_vector): Handle faces in glyphs.
11156 (get_next_display_element): Set face_id of glyphs for
11157 control chars to zero.
11158
11159 * Makefile.in (term.o): Add dependency on dispextern.h.
11160
11161 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
11162 (display_line): Handle marginal areas.
11163 (move_iterator_in_display_line_to): Likewise.
11164
11165 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
11166
11167 * xfaces.c (face_at_buffer_position): Don't merge with nil
11168 text property.
11169 (face_at_string_position): Ditto.
11170
11171 * dispextern.h (struct display_iterator): Use a stack of saved
11172 values instead of saving check positions etc. individually.
11173
11174 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
11175 maybe pop the iterator's stack.
11176 (save_iterator_settings): Push a value on iterator's stack.
11177 (get_overlay_strings_at_iterator_position): Use it.
11178 (restore_iterator_settings): Pop the stack.
11179 (set_iterator_to_next_overlay_string): Use it.
11180
11181 * xfaces.c (try_font_list): Use alternative font families.
11182
111831998-04-26 Gerd Moellmann <gerd@gnu.org>
11184
11185 * xfaces.c (Fset_face_font_sort_order): Set the order in which
11186 font selection matches fonts.
11187 (Fface_font_sort_order): Return the font sort order.
11188 (best_matching_font): Find best matching font based on sort order.
11189 (cmp_font_names): Sort by given sort order.
11190
11191 * dispextern.h (struct display_iterator): New member faces_p.
11192 * xdisp.c (init_iterator): Initialize it->faces_p.
11193 (compute_face_at_iterator_string_position): Use it.
11194 (compute_face_at_iterator_position): Use it.
11195 (init_iterator): Use it.
11196 (display_mode_line): Ditto.
11197
11198 * xdisp.c (get_next_display_element): Put code choosing a face
11199 when the charset changes in #ifdef HAVE_FACES.
11200
11201 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
11202 lookup_face_for_charset.
11203
11204 * xfaces.c (free_font_names): Renamed from free_split_font_names.
11205 (free_all_realized_faces): Renamed from remove_all_realized_faces.
11206
112071998-04-25 Gerd Moellmann <gerd@gnu.org>
11208
11209 * xfaces.c (best_matching_font): Return the name of the best
11210 matching font in an array of font_name structures.
11211 (choose_face_font): Use it.
11212 (choose_face_fontset_font): Use it.
11213 (find_best_weight_font): If final font found has same weight as
11214 the font we started with, return the original font because it is a
11215 better match for the resolution of the display.
11216 (find_best_slant_font): Likewise.
11217 (merge_face_vector_with_property): Check more invalid attribute
11218 values.
11219 (lface_suitable_for_charset_p): Replaced by a macro with the same
11220 name in upper-case.
11221
112221998-04-24 Gerd Moellmann <gerd@gnu.org>
11223
11224 * dispextern.h (struct face): Member
11225 fontset_chosen_for_realization_p removed.
11226
11227 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
11228 end of the collision list, so that we find more specific faces
11229 first.
11230 (lookup_face_for_charset): Look up a new face if face->fontset >=
11231 0, and charset != CHARSET_COMPOSITION.
11232
11233 * xfaces.c (split_font_name): Return zero if point size of font
11234 couldn't be computed.
11235 (realize_default_face): Use ASCII font of a fontset to determine
11236 font-related attributes of the default face.
11237 (face_fontset): Return fontset id for face family.
11238 (font_list): Additional parameter font_pattern. If non-nil,
11239 return fonts matching that pattern.
11240
112411998-04-23 Gerd Moellmann <gerd@gnu.org>
11242
11243 * xfaces.c (choose_face_fontset): If new fontset cannot be
11244 constructed, or fontset name cannot be split, return the id of the
11245 standard fontset.
11246
11247 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
11248 When Emacs starts, it may be called for the initial frame which
11249 isn't an X frame.
11250
11251 * dispextern.h (struct face): New members foreground_defaulted_p,
11252 background_defaulted_p.
11253 (struct face): Members `mask' and `cache' removed.
11254
11255 * xfaces.c (load_color): Set them.
11256 (free_face_colors): Check them.
11257 (xlfd_point_size): Return -1 if resolution or point size of
11258 font unknown.
11259
11260 * xfaces.c (free_font): Removed.
11261 (load_face_font_or_fontset): Renamed from load_font.
11262 (load_face_font_or_fontset): Use message2 instead of signalling.
11263 (load_color): Likewise.
11264 (load_pixmap): Likewise.
11265
11266 * xterm.h (struct x_display_info): Add screen_dpi.
11267 * xterm.c (x_term_init): Initialize it.
11268 * xfaces.c (xlfd_point_size): Use it.
11269 (split_font_name): Compute numeric XLFD_RESY.
11270 (cmp_font_names): Make fonts with an y-resolution more
11271 similar to that of the frame appear first in the result.
11272
11273 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
11274 is set for the face to cache, add it to the end of the collision
11275 list.
11276 (try_font_list): If fonts for given family and registry cannot
11277 be found, first try to keep the registry, and choose a different
11278 family.
11279 (choose_face_font): Allow nfonts == 0.
11280 (try_font_list): Give up if no font matches given registry.
11281
112821998-04-22 Gerd Moellmann <gerd@gnu.org>
11283
11284 * xterm.c (x_get_char_font_and_encoding): Get font_info from
11285 font info id of the face.
11286
11287 * xfaces.c (load_font): Set font_info_id.
11288 (realize_face): Ditto.
11289
11290 * dispextern.h (struct face): Change member font_info to
11291 font_info_id.
11292
11293 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
11294 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
11295
11296 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
11297 isn't ASCII, get the ASCII face before adding a space.
11298 (append_space): Likewise.
11299 (insert_left_trunc_glyphs): Initialize truncate_it's charset
11300 to -1 so that it will compute the right face for the truncation
11301 glyphs.
11302
11303 * xfaces.c (realize_face): Set
11304 face->fontset_chosen_for_realization_p.
11305 (lookup_face_for_charset): If fontset wasn't specified originally
11306 and new charset != CHARSET_COMPOSITION, get a new face for that
11307 charset.
11308
11309 * dispextern.h (struct face): New member
11310 fontset_chosen_for_realization_p_specified_p. Set to 1 when
11311 realize_face has chosen a fontset to display composite characters
11312 for a Lisp face not specifying a fontset.
11313
11314 * xdisp.c (extend_face_to_end_of_line): Move tests for default
11315 face and line already filled here. Don't do anything if current
11316 face hasn't a relief or has a background equal to the frame
11317 background.
11318
11319 * xfaces.c (split_font_name): Additional parameter numeric_p.
11320 Don't compute numeric values if it is non-zero.
11321 (choose_face_fontset): Call split_font_name with numeric_p == 0.
11322 (choose_face_fontset): Print a message if fontset contains a
11323 font whose name cannot be split into fields.
11324
113251998-04-21 Gerd Moellmann <gerd@gnu.org>
11326
11327 * xfaces.c (try_font_list): Try to load a list of fonts,
11328 possibly using less restrictive patterns.
11329 (choose_face_font): Use it.
11330
11331 * xterm.c (x_get_char_font_and_encoding): For charset !=
11332 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
11333
11334 * dispextern.h (struct face): New member font_info.
11335
11336 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
11337 specifying a fontset as well as those not having a fontset.
11338 (free_font): Make it empty.
11339 (realize_face): Use changed load_font.
11340
11341 * xterm.c (x_get_char_font_and_encoding): If face doesn't
11342 fit for charset, get the right one.
11343
11344 * xfaces.c (load_font): Take frame and name parameter, return
11345 font.
11346 (free_font): Likewise.
11347 (split_font_name): Compute numeric values for height, swidth etc.
11348 (cmp_font_names): Use them.
11349 (find_best_width_font): Ditto.
11350 (find_best_height_font): Ditto.
11351 (find_best_weight_font): Ditto.
11352 (find_best_slant_font): Ditto.
11353 (lface_hash): Add weight, slant, swidth and relief to hash value.
11354 (lface_equal_p): Make it faster.
11355 (lface_from_symbol): Use assq_no_quit.
11356 (Fnote_default_face_changed): Removed.
11357 (cmp_font_names): Use strcmp instead of xstricmp.
11358 (face_charset_registries): Removed.
11359
113601998-04-20 Gerd Moellmann <gerd@gnu.org>
11361
11362 * frame.h (CHECK_FRAME): Give this macro a statement form.
11363 (CHECK_LIVE_FRAME): Ditto.
11364
11365 * xfaces.c (find_best_width_font): Find the best matching font
11366 for a given width.
11367 (find_best_height_font): Likewise for height.
11368 (find_best_weight_font): Likewise for weight.
11369 (find_best_slant_font): Likewise for slant.
11370 (choose_face_font): Use them.
11371 (get_lface_attributes): Always return frame-local face attrs.
11372 (Finternal_merge_in_global_face): Merge local face with
11373 global face attributes.
11374
11375 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
11376 Lisp face attributes.
11377
113781998-04-19 Gerd Moellmann <gerd@gnu.org>
11379
11380 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
11381 and :italic for compatibility.
11382 (Finternal_set_lisp_face_attribute_from_resource): Handle
11383 :bold and :italic. Handle boolean resource values for
11384 :underline and :italic.
11385
11386 * xfns.c (display_x_get_resource): Make it externally visible.
11387
11388 * xfaces.c (lface_from_symbol): Take a frame as parameter.
11389 If that frame is non-null, return the frame-local face.
11390 (Finternal_make_lisp_face): Additional frame argument.
11391 (lface_attributes): Get face attributes from global and frame-local
11392 definitions.
11393 (Finternal_lisp_face_equal_p): Additional frame argument.
11394 (merge_lisp_face_vector_with_property): Ditto.
11395 (Frealize_basic_faces): Removed.
11396 (Finternal_get_lisp_face_attribute): Additional frame argument.
11397 (Finternal_lisp_face_p): Ditto.
11398 (load_color) [MSDOS]: Removed because it isn't clear how
11399 to do this for MS-DOS.
11400
11401 * xfaces.c (lface_from_symbol): Get global face definition
11402 from face-global-alist.
11403
11404 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
11405 as values for :underline and :inverse-video.
11406 (Finternal_set_lisp_face_attribute): Allow nil values.
11407
114081998-04-17 Gerd Moellmann <gerd@gnu.org>
11409
11410 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
11411
11412 * xfaces.c (syms_of_xfaces): Add Vall_faces.
11413 (Finternal_make_lisp_face): Add new face to Vall_faces.
11414
11415 * xdisp.c (echo_area_display): Remove code recomputing faces.
11416 (redisplay_internal): Ditto.
11417 (init_iterator): Do it here.
11418
11419 * xfaces.c (choose_face_font): Check that swidth doesn't change
11420 for subusequent attributes.
11421 (xlfd_point_size): Return int.
11422
11423 * xdisp.c (redisplay_internal, echo_area-display): If realized
11424 faces have been cleared, call recompute_basic_faces.
11425
11426 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
11427 face_attributes_changed_p.
11428 (remove_all_realized_faces): Remove all realized faces on
11429 all frames.
11430 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
11431
11432 * xdisp.c (redisplay_internal): If face attributes have been
11433 changed since the last redisplay, recompute basic faces.
11434 (echo_area_display): Ditto.
11435
11436 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
11437
11438 * xfaces.c (min_char_bounds): If face cache not yet present,
11439 don't try to get font dimensions from faces.
11440
11441 * xterm.c (x_frame_mode_line_height): If face cache not present
11442 set, return default height.
11443
11444 * alloc.c (mark_face_cache): Check for null faces. Correct
11445 index bug.
11446
11447 * dispextern.h (struct face): Renamed from struct rface. Member
11448 underline renamed underline_p. Make it a bit-field.
11449
11450 * xfaces.c (init_frame_faces): Allocate face cache.
11451 (free_frame_faces): Free face cache.
11452 (recompute_basic_faces): Realize basic faces only if face cache is
11453 allocated, i.e. after init_frame_faces has been called.
11454
11455 * frame.c (make_frame): Initialze face cache with null.
11456
11457 * xfaces.c (same_size_fonts): Removed.
11458
11459 * xterm.c (x_set_glyph_string_gc): Add post-condition
11460 s->gc != 0.
11461 (x_set_mouse_face_gc): Ditto.
11462 (x_set_mode_line_face_gc): Ditto.
11463
11464 * xfaces.c (realize_default_face): Return int. Value is
11465 zero if frame params don't contain enough information to
11466 realize the default face.
11467 (realize_basic_faces): Ditto.
11468 (init_frame_faces): Realize basic faces.
11469
11470 * xfns.c (x_set_font): First store real font name in frame
11471 parameters, then call recompute_basic_faces.
11472
11473 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
11474
114751998-04-16 Gerd Moellmann <gerd@gnu.org>
11476
11477 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
11478
11479 * xfns.c (Fx_face_fixed_p): Removed.
11480 (Fx_list_fonts): Moved to xfaces.c.
11481
11482 * xfaces.c (compute_face_at_buffer_pos): Renamed to
11483 face_at_buffer_position. Parameter charset removed; always
11484 compute face for CHARSET_ASCII.
11485 (face_at_string_position): Renamed from
11486 compute_face_at_string_pos. Parameter charset removed; always
11487 compute for CHARSET_ASCII.
11488 (lookup_face_for_charset): Take frame parameter instead of
11489 face_cache.
11490 (lookup_face): Ditto.
11491 (compute_char_face): Renamed from compute_glyph_face.
11492
11493 * xdisp.c (init_iterator): Initialize charset member.
11494 (reseat_iterator_to_string): Ditto.
11495 (get_charset_at_buffer_position): Determine charset at
11496 buffer position in current_buffer.
11497 (reseat_iterator): Call above function.
11498 (compute_face_at_iterator_position): Call
11499 compute_face_at_buffer_pos.
11500 (compute_face_at_iterator_string_position): Call
11501 compute_face_at_string_pos.
11502 (get_face_from_id): Removed.
11503 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
11504 Call get_charset_at_buffer_position.
11505 (reseat_iterator): Determine face if charset at pos differs
11506 from iterator's charset.
11507 (reseat_iterator_to_glyph_pos): Removed.
11508
11509 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
11510 Determine charset from buffer position.
11511 (compute_string_char_face): Renamed to compute_face_at_string_pos.
11512 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
11513
11514 * dispextern.h (struct display_iterator): Add member charset.
11515
115161998-04-15 Gerd Moellmann <gerd@gnu.org>
11517
11518 * xfaces.c (compute_char_face): Removed.
11519
11520 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
11521 with new parameter list.
11522
11523 * xfaces.c (region_face): Removed.
11524 (allocate_face): Removed.
11525 (copy_face): Ditto.
11526 (face_eql): Removed.
11527 (intern_face): Removed.
11528 (clear_face_cache): Removed.
11529 (load_font): Ditto.
11530 (unload_font): Ditto.
11531 (load_color): Ditto.
11532 (unload_color): Ditto.
11533 (new_computed_face): Ditto.
11534 (intern_computed_face): Ditto.
11535 (ensure_face_ready): Ditto.
11536 (merge_faces): Ditto.
11537 (compute_base_face): Ditto.
11538 (merge_face_list): Ditto.
11539 (Fmake_face_internal): Removed.
11540 (Fset_face_attribute_internal): Ditto.
11541 (face_name_id_number): Removed.
11542 (Fframe_face_alist): Ditto.
11543 (Fset_frame_face_alist): Ditto.
11544 (Finternal_next_face_id): Ditto.
11545
11546 * xterm.h (struct x_output): Remove computed_faces, and
11547 param_faces. Remove macros accessing them.
11548
11549 * xfaces.c: Entirely new face implementation added.
11550
115511998-04-11 Gerd Moellmann <gerd@gnu.org>
11552
11553 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
11554 `charpos'.
11555
115561998-04-10 Gerd Moellmann <gerd@gnu.org>
11557
11558 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
11559 scroll bar window to reduce flickering. Clear entire height.
11560
11561 * xdisp.c (move_iterator_vertically_backward): Set iterator's
11562 current_x and hpos to zero after moving to previous line
11563 start.
11564
115651998-04-03 Gerd Moellmann <gerd@gnu.org>
11566
11567 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
11568
11569 * xfaces.c (xlfd_point_size): Compute relative point size of
11570 fonts from font and frame resolution.
11571 (sort_fonts): New function to sort fonts, temporarily setting
11572 font_frame to the frame in effect.
11573 (xlfd_point_size): Take additional frame parameter to be able
11574 to get at the display's resolution.
11575
11576 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
11577 BLACK_PIX_DEFAULT.
11578 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
11579 screen of display.
11580
115811998-03-31 Gerd Moellmann <gerd@gnu.org>
11582
11583 * xfaces.c (choose_face_fontset): Instantiate fontsets.
11584
11585 * fontset.h: Add external declarations for Vfontset_alias_alist
11586 and Vglobal_fontset_alist.
11587
11588 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
11589 (realize_default_face): If frame parameters contain an artificial
11590 font name naming a fontset, set the family of the default face to
11591 the fontset name given by the registry.
11592
11593 * Makefile.in (alloc.o): Add dependency to dispextern.h.
11594
115951998-03-22 Gerd Moellmann <gerd@gnu.org>
11596
11597 * alloc.c (mark_object): Add function prototype. Add cast to
11598 Lisp_Object pointer in call to mark_object for symbol names
11599 because this otherwise gives a warning from gcc 2.8.1.
11600 (mark_face_cache): Mark Lisp objects in realized faces.
11601
116021998-03-19 Gerd Moellmann <gerd@gnu.org>
11603
11604 * frame.h (struct frame): Add member face_cache.
11605
11606 * alloc.c (mark_object): Mark face cache.
11607 (mark_face_cache): Mark Lisp faces in face cache of frame.
11608
11609 * frame.c (make_frame): Initialize face_cache.
11610 (Fdelete_frame): Free it.
11611
116121998-03-18 Gerd Moellmann <gerd@gnu.org>
11613
11614 * xfaces.c: Very first skeleton of functions for face realization,
11615 face merging, face cache etc.
11616
11617 * dispextern.h (struct rface): Realized faces. Will replace
11618 struct face when tested.
11619 (struct face_cache): Realized face caches.
11620
11621 * xdisp.c (init_iterator): Initialize area member of display
11622 iterator.
11623
116241998-03-17 Gerd Moellmann <gerd@gnu.org>
11625
11626 * xterm.c (x_append_glyph): Use it->area to store glyphs.
11627
11628 * dispextern.h (struct display_iterator): New member area.
11629
11630 * xterm.c (note_overwritten_text_cursor): Note when the text
11631 cursor of a window is overwritten.
11632
11633 * xdisp.c (set_cursor_from_row): If PT is not found in the
11634 row, display the cursor at the start of the row.
11635
11636 * dispnew.c (direct_output_forward_char): Call
11637 set_cursor_from_row.
11638
11639 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
11640 position is not in an overlay string, set iterator's position and
11641 method explicitly so.
11642 (set_cursor_from_row): Correct cursor position calculation.
11643 Make it externally visible.
11644 (redisplay_window): Call set_cursor_from_row so that there is only
11645 one place where the cursor position is calculated from a current
11646 row.
11647
11648 * dispextern.h (struct display_iterator): New member
11649 overlay_strings_at_end_processed_p.
11650
11651 * xdisp.c (check_iterator): Perform sanity checks on
11652 display_iterators.
11653 (next_element_from_buffer): Check for overlay strings at ZV.
11654
116551998-03-16 Gerd Moellmann <gerd@gnu.org>
11656
11657 * buffer.c (init_buffer_once): Add left_margin_width and
11658 right_margin_width to buffer_local_flags.
11659
11660 * dispnew.c (margin_glyphs_to_reserve): Function computing
11661 number of glyphs to reserve for a marginal area.
11662 (adjust_glyph_matrix): Call it.
11663 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
11664 is not alive.
11665
11666 * window.c (Fset_window_margins): Allow floats.
11667
11668 * buffer.c (syms_of_buffer): Add buffer-local variables
11669 left-margin-width and right-margin-width. Add defaults
11670 default-left-margin-width and default-right-margin-width.
11671
11672 * buffer.h (struct buffer): New members left_margin_width
11673 and right_margin_width.
11674
11675 * window.c (Fset_window_margins): Make window the last and
11676 optional argument.
11677
11678 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
11679 flag no_marginal_areas_p differently.
11680 (x_clear_end_of_line): Ditto.
11681 (x_draw_glyph_string_relief): Compute width of relief differently
11682 for rows with flag no_marginal_areas_p.
11683
11684 * dispnew.c (update_window_line): Update marginal areas only
11685 for rows that don't have no_marginal_areas_p set.
11686
11687 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
11688 (display_menu_bar): Ditto.
11689
11690 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
11691
11692 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
11693 marginal areas in window-based redisplay.
11694
11695 * dispextern.h (struct glyph_matrix): New members
11696 left_margin_glyphs and right_margin_glyphs.
11697
116981998-03-15 Gerd Moellmann <gerd@gnu.org>
11699
11700 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
11701
11702 * charset.c (non_ascii_char_to_string): Use char type parameters
11703 because the function is used that way from outside. Use unsigned
11704 char internally.
11705
11706 * window.c (change_window_height): Return void.
11707 (make_dummy_parent): Return void.
11708 (init_window_once): Return void.
11709 (syms_of_window): Ditto.
11710 (keys_of_window): Ditto.
11711 (delete_window): Correct return with and without value.
11712
11713 * buffer.c (record_buffer): Return void.
11714
11715 * marker.c (unchain_marker): Return void.
11716
11717 * window.c (unshow_buffer): Return void.
11718 (replace_window): Ditto.
11719 (delete_window): Ditto.
11720
11721 * term.c (delete_glyphs_hook): Void return type.
11722 (ring_bell_hook): Ditto.
11723 (set_terminal_window_hook): Ditto.
11724
11725 * sysdep.c (init_sigio): Return void.
11726
11727 * xterm.c (x_set_window_size): Return void.
11728 (x_calc_absolute_position): Ditto.
11729 (x_set_offset): Ditto.
11730 (x_focus_on_frame): Ditto.
11731 (x_unfocus_frame): Ditto.
11732 (x_make_frame_visible): Ditto.
11733 (x_make_frame_invisible): Ditto.
11734 (x_iconify_frame): Ditto.
11735 (x_destroy_window): Ditto.
11736 (x_wm_set_window_state): Ditto.
11737 (x_wm_set_icon_pixmap): Ditto.
11738 (x_wm_set_icon_position): Ditto.
11739 (x_initialize): Ditto.
11740 (x_error_quitter): Ditto.
11741 (x_destroy_window): Use xfree instead of free.
11742
11743 * keyboard.c (clear_waiting_for_input): Return void.
11744
11745 * xterm.c (x_wm_set_size_hint): Return void.
11746 (x_raise_frame): Ditto.
11747 (refreshicon): Ditto.
11748 (x_error_catcher): Ditto.
11749 (x_clear_errors): Ditto.
11750
11751 * keyboard.c (record_asynch_buffer_change): Return void.
11752
11753