1 2000-06-16 Ken Raeburn <raeburn@gnu.org>
3 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
4 termination of string. Fix sense of test whether
5 Vline_number_display_limit is an integer.
7 2000-06-16 Gerd Moellmann <gerd@gnu.org>
9 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
12 * dispnew.c (update_frame_1): Handle case that cursor vpos is
15 2000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
17 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
20 2000-06-15 Kenichi Handa <handa@etl.go.jp>
22 * coding.c (decode_coding_emacs_mule): Always set src_base at the
23 start of the while loop.
25 2000-06-15 Gerd Moellmann <gerd@gnu.org>
27 * atimer.c (alarm_signal_handler): Add forward declaration.
29 * data.c (set_internal): Remove debug code.
31 2000-06-14 Gerd Moellmann <gerd@gnu.org>
33 * Makefile.in (bootstrap-temacs): Add `-I../src'.
35 * unexec.c (toplevel) [COFF]: Include coff.h.
37 * s/lynxos.h: New file.
39 * keymap.c (Fsingle_key_description): Enclose function key and
40 event symbol names in angle brackets.
42 * xdisp.c (setup_echo_area_for_printing): Call
43 message_log_maybe_newline if message_buf_print is not set.
45 * print.c (printchar, strout): Don't check message_buf_print
46 before calling setup_echo_area_for_printing because that
47 function does something useful even when message_buf_print is
50 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
52 (ensure_echo_area_buffers): Initialize echo buffer's
53 truncate lines setting to nil.
54 (with_echo_area_buffer): Don't set the echo buffer's truncate
56 (set_message_1): Set it here instead, based on the value
57 of message_truncate_lines.
58 (resize_mini_window): Handle case that lines are truncated.
59 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
60 message-truncate-lines.
62 * keyboard.c (read_char): Bind message-truncate-lines to t
63 while displaying a help-echo.
65 * lisp.h (Qmessage_truncate_lines): External declaration.
67 2000-06-13 Gerd Moellmann <gerd@gnu.org>
69 * xdisp.c (Vline_number_display_limit): Renamed from
70 line_number_display_limit.
71 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
72 Extend documentation string. Initialize
73 Vline_number_display_limit to nil meaning no limit.
74 (decode_mode_spec): Use Vline_number_display_limit with its new
77 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
79 2000-06-13 Richard Stallman <rms@caffeine.ai.mit.edu>
81 * frame.c (Fmodify_frame_parameters): Doc fix.
83 * xfns.c (x_set_frame_parameters): Comment fix.
85 * frame.c (store_frame_param): Call swap_in_global_binding if the
86 variable's current binding was chosen based on this frame.
88 * data.c (swap_in_global_binding): New function.
90 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
92 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
93 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
95 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
97 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
99 2000-06-12 Jason Rumney <jasonr@gnu.org>
101 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
103 * w32.h (EMACS_W32_H): Renamed from _NT_H_
105 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
107 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
109 2000-06-12 Gerd Moellmann <gerd@gnu.org>
111 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
112 (syms_of_xfaces): Defsubr Sdump_colors.
113 (x_free_colors): Don't treat b&w specially on default visual.
114 (x_free_dpy_colors): New function.
115 (free_face_colors): Don't check visual class; it's done
118 * xterm.c (x_frame_of_widget): New function.
119 (x_alloc_nearest_color_for_widget): Use it.
120 (x_copy_dpy_color): New function.
121 (x_destroy_window): Free various colors.
123 2000-06-12 Kenichi Handa <handa@etl.go.jp>
125 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
127 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
129 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
131 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
133 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
135 2000-06-11 Dave Love <fx@gnu.org>
137 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
139 2000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
141 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
143 2000-06-11 Gerd Moellmann <gerd@gnu.org>
145 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
148 2000-06-10 Kenichi Handa <handa@etl.go.jp>
150 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
151 (regex_compile): Fix the code for handling the case of single byte
152 char and multibyte char being mixed in a range within [...].
154 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
155 and dst_multibyte members of coding.
157 * charset.c (update_charset_table): Update the table
159 (init_charset_once): Initialize elements of bytes_by_char_head to
160 1 except for leading codes for private charases.
162 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
163 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
166 2000-06-09 Ken Raeburn <raeburn@gnu.org>
168 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
169 access the data it doesn't point to.
171 2000-06-08 Gerd Moellmann <gerd@gnu.org>
173 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
174 will be translated to a switch-frame event when reading the
175 event queue. This is necessary because Emacs otherwise won't
176 perform a switch-frame to a new frame until some other event, for
177 example a keystroke event, forces it to do so. This has various
178 effects, one visible being that the cursor of a frame created with
179 C-x 5 2 or switched to with a window manager key binding like
180 A-TAB stays hollow because selected_window isn't on the newly
181 focused frame until the switch-frame is performed.
183 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
184 generating a switch-frame event if necessary.
186 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
188 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
191 2000-06-08 Kenichi Handa <handa@etl.go.jp>
193 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
196 2000-06-07 Gerd Moellmann <gerd@gnu.org>
198 * window.c (displayed_window_lines): Take empty lines at
199 the bottom of a window into account.
201 * window.c (displayed_window_lines): New function.
202 (Fmove_to_window_line): Use displayed_window_lines to determine
203 the number of lines to move, instead of using the window's height.
205 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
206 to stop reading, even if the form read sets point to a different
207 value when evaluated.
209 * xdisp.c (display_line): Fix code deciding in which line to
212 2000-06-07 Kenichi Handa <handa@etl.go.jp>
214 * fileio.c (e_write): Free composition data if stored in
217 2000-06-06 Gerd Moellmann <gerd@gnu.org>
219 * xdisp.c (display_line): Set row's and iterator's
220 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
221 Set cursor even if row ends in the middle of a character.
222 (dump_glyph_row): Print values of new flags.
223 (redisplay_window) <cursor movement in unchanged window>: When
224 point has been moved forward, and PT is at the end of the cursor
225 row, don't place the cursor in the next row if the cursor row ends
226 in the middle of a character or at ZV.
228 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
229 (struct glyph_row): Add starts_in_middle_of_char_p and
230 ends_in_middle_of_char_p.
231 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
232 ends_in_middle_of_char_p flag.
233 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
235 * term.c (append_glyph): Revert change of 2000-06-06.
237 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
238 padding glyph not fitting on line as whole character not
241 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
242 this isn't true for images with `:ascent 100'.
244 2000-06-06 Kenichi Handa <handa@etl.go.jp>
246 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
247 as modified if it is originally unmodified.
249 * term.c (encode_terminal_code): Change the way to check if
250 terminal coding does any conversion.
251 (append_glyph): Set glyph->pixel_width correctly.
253 * xdisp.c (display_line): While checking line continuation, pay
254 attention to a padding glyph.
256 2000-06-05 Gerd Moellmann <gerd@gnu.org>
258 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
260 2000-06-05 Dave Love <fx@gnu.org>
262 * xdisp.c: Include fontset.h.
264 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
266 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
268 * dispnew.c: Conditionally include term.h.
270 * coding.h: Declare code_convert_string_norecord.
272 * frame.h (struct frame): Use volatile unconditionally.
274 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
276 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
278 * systime.h: Protect against multiple inclusion.
279 (timezone) [USG5_4]: Define as time_t.
281 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
282 (Foptimize_char_table, make_temp_name): Declare.
284 * Makefile.in (xdisp.o): Depend on fontset.h.
286 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
288 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
289 (Foptimize_char_table, make_temp_name): Declare.
293 * s/netbsd.h: Don't define autoconfiscated MATHERR.
295 2000-06-02 Dave Love <fx@gnu.org>
297 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
299 2000-06-02 Gerd Moellmann <gerd@gnu.org>
301 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
302 result face, set flags in that face indicating that colors may not
305 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
306 glyph, use the ASCII NUL character to determine the face.
308 2000-06-02 Dave Love <fx@gnu.org>
310 * sysdep.c: Conditionally include stdlib.h, unistd.h.
311 (VFORK_RETURN_TYPE): Remove.
313 * config.in: Add NO_MATHERR.
315 2000-06-01 Dave Love <fx@gnu.org>
317 * cmds.c (internal_self_insert): Don't check
318 Vbefore_change_function, Vafter_change_function.
320 * insdel.c (signal_before_change, signal_after_change): Likewise.
322 * buffer.c (Vbefore_change_function, Vafter_change_function):
323 Variables and their initializations deleted.
325 * callint.c (Fcall_interactively): Doc fix.
327 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
329 2000-05-31 Dave Love <fx@gnu.org>
331 * textprop.c: Revert last change -- duplicated.
333 2000-05-31 Gerd Moellmann <gerd@gnu.org>
335 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
338 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
340 2000-05-31 Jason Rumney <jasonr@gnu.org>
342 * search.c (Fre_search_forward, Fre_search_backward)
343 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
345 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
347 2000-05-30 Jason Rumney <jasonr@gnu.org>
349 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
350 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
352 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
355 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
356 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
357 expand a nil default_filename.
359 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
360 pointer to glyph_to_pixel_coords, not a frame.
362 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
363 coding.h to dependencies.
365 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
367 * w32console.c (glyph_to_pixel_coords): Change first parameter to
368 window pointer to be consistent with w32term.c and xterm.c.
370 * w32fns.c: Format and doc changes to bring closer to xfns.c.
371 (VIETNAMESE_CHARSET): Define if not defined in system headers.
372 (Qline_spacing, Qcenter): New variables.
373 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
374 (x_set_line_spacing): New function.
375 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
377 (x_specified_cursor_type): New function.
378 (x_set_cursor_type): Use it.
379 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
381 (validate_x_resource_name, x_get_resource_string): Measure lengths
382 of external strings in bytes.
383 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
384 GetTextExtentPoint32 with NULL title.
385 (Fx_create_frame): Initialize Qline_spacing.
386 (w32_load_system_font): Initialize font->double_byte_p.
387 (x_to_w32_charset): Use Vw32_charset_info_alist.
388 (Image, busy cursor, tooltip functions): Merged changes from
389 xfns.c. Not yet functional on Windows.
391 * w32gui.h (W32FontStruct): Add double_byte_p member.
393 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
394 (emacs_button_translation): Use it.
395 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
398 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
401 * w32term.c: Format and doc changes to bring closer to xterm.c.
402 (w32_char_font_type): New enum.
403 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
404 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
405 (w32_encode_char): New function.
406 (x_encode_char): Removed.
407 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
408 x_encode_char and w32_font_is_double_byte.
409 (x_produce_image_glyph): Use image_ascent.
410 (x_produce_glyphs): Use new version of w32_per_char_metric and
411 handle NULL return value. Allow extra line spacing.
412 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
413 (w32_get_glyph_overhangs): Remove unicode_p param. Use
414 w32_font_type member of glyph instead.
415 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
416 (fast_find_position): Make sure not to consider rows not visible
418 (w32_read_socket) [WM_MENUSELECT]: Cannot call
419 w32_menu_display_help with input blocked, as it can abort.
420 (x_display_and_set_cursor): Choose cursor depending
421 on buffer-local value of cursor_type.
422 (x_draw_bar_cursor): Add parameter WIDTH.
424 * w32term.h (CP_DEFAULT): Define.
425 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
427 2000-05-30 Gerd Moellmann <gerd@gnu.org>
429 * search.c (Fre_search_forward, Fre_search_backward)
430 (Fposix_search_backward, Fposix_search_forward): Doc fix.
432 2000-05-30 Kenichi Handa <handa@etl.go.jp>
434 * coding.c (detect_coding_iso2022): Fix code for checking
435 CODING_CATEGORY_MASK_ISO_8_2.
437 2000-05-29 Stefan Monnier <monnier@cs.yale.edu>
439 * regex.c (PREFETCH_NOLIMIT): New function.
440 (re_match_2_internal): Use it and adjust the end_match_2 logic.
442 2000-05-29 Gerd Moellmann <gerd@gnu.org>
444 * syntax.c (find_defun_start): Move test for
445 open_paren_in_column_0_is_defun_start outside of the loop.
447 * xdisp.c (redisplay_window): Really switch buffers when
448 displaying mode lines, and temporarily set selected_frame to the
449 frame of the window that's redisplayed.
451 * xfaces.c (free_realized_faces): Block/unblock input.
452 (free_realized_multibyte_face): Ditto.
454 2000-05-29 Dave Love <fx@gnu.org>
456 * textprop.c (Qkeymap): New variable.
457 (syms_of_textprop): Intern it.
459 * keymap.c: Include intervals.h.
460 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
462 * Makefile.in (keymap.o): Depend on intervals.h.
464 * keyboard.c (menu_bar_items, tool_bar_items)
465 (Fexecute_extended_command): Deal with `keymap' property.
466 (read_key_sequence): Track map from `keymap' property as well as
469 * intervals.c (get_local_map): Extra arg to allow looking for
472 * intervals.h (map_property): New enum.
473 (get_local_map): Extra arg using it.
476 * lisp.h (get_local_map): Don't declare here.
478 2000-05-29 Kenichi Handa <handa@etl.go.jp>
480 * Makefile.in (callproc.o): Depend on composite.h.
482 * callproc.c: Include composite.h.
483 (Fcall_process): Handle composition correctly.
485 * coding.h (coding_allocate_composition_data): Extern it.
486 (coding_restore_composition): Likewise.
488 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
489 yet allocated, finish decoding with result
490 CODING_FINISH_INSUFFICIENT_CMP.
491 (coding_allocate_composition_data): Make it non-static.
492 (coding_restore_composition): Likewise.
494 2000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
496 * charset.c (syms_of_charset): Revert last change.
498 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
500 * term.c (produce_glyphs): Treat characters from the eight-bit-*
501 charsets as unibyte, with 1-column screen width. Sent by Kenichi
504 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
506 * charset.c (syms_of_charset): Set width of character sets
507 eight-bit-control and eight-bit-graphic to 1 column.
509 2000-05-26 Gerd Moellmann <gerd@gnu.org>
511 * config.in (HAVE_SPEED_T): New define.
513 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
516 2000-05-26 Dave Love <fx@gnu.org>
518 * coding.c (shrink_decoding_region): Initialize eol_conversion.
520 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
521 (Fsubr_arity): New function.
522 (syms_of_data): Install them.
524 2000-05-26 Kenichi Handa <handa@etl.go.jp>
526 * charset.c (init_charset_once): Set the table bytes_by_char_head
529 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
530 the default fontset to what Emacs uses by default.
531 (check_registry_encoding): This function deleted.
532 (Fset_fontset_font): Remove the adhoc condition for the default
533 fontset. Allow cons in FONTNAME.
535 * fns.c (map_char_table): Ignore char-table entries for
536 charsets eight-bit-control and eight-bit-graphic.
538 2000-05-25 Ken Raeburn <raeburn@gnu.org>
540 * emacs.c (main): Initialize keyboard syms before initializing
541 window code, so face names are available.
543 2000-05-25 Stefan Monnier <monnier@cs.yale.edu>
545 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
546 of an anchor at the beginning of a shy-group.
548 2000-05-25 Gerd Moellmann <gerd@gnu.org>
550 * xdisp.c (handle_invisible_prop): Don't try to skip over
551 invisible text if end of text is already reached.
553 2000-05-25 Dave Love <fx@gnu.org>
555 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
557 * coding.c (encode_eol): Add null statement after label.
559 2000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
561 * w16select.c (Fw16_set_clipboard_data): Fix the change from
564 2000-05-25 Kenichi Handa <handa@etl.go.jp>
566 * ccl.c (ccl_driver): Fix previous change.
568 2000-05-25 Kenichi Handa <handa@etl.go.jp>
570 * coding.c (run_pre_post_conversion_on_str): Set point to the
571 beginning of buffer before calling coding->post_read_conversion.
572 (decode_coding_string): Give correct args to
573 run_pre_post_conversion_on_str.
574 (encode_coding_string): Likewise.
576 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
577 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
578 eight-bit-graphic correctly.
580 2000-05-24 Kenichi HANDA <handa@etl.go.jp>
582 * fileio.c (Finsert_file_contents): Even if a file is not found,
583 execute codes for setting up coding system. Call
584 after-insert-file-functions unconditionally.
586 2000-05-24 Gerd Moellmann <gerd@gnu.org>
588 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
589 BSD_PGRPS are not defined.
591 2000-05-24 Kenichi Handa <handa@etl.go.jp>
593 * charset.c (update_charset_table): Accept nil in LONG_NAME and
595 (syms_of_charset): Avoid building same strings.
597 2000-05-23 Gerd Moellmann <gerd@gnu.org>
599 * lread.c (Fload): Add a comment about the meaning of
600 Vuser_init_file being t.
602 * puresize.h (BASE_PURESIZE): Increase to 675000.
604 * s/gnu-linux.h (setpgrp): Don't define it here because this
605 prevents compilation on GNU/Linux systems with glib 2.2.
607 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
610 2000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
612 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
613 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
615 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
617 2000-05-23 Kenichi Handa <handa@etl.go.jp>
619 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
622 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
624 * term.c (encode_terminal_code): Set coding->src_multibyte
627 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
629 2000-05-22 Kenichi Handa <handa@etl.go.jp>
631 * keyboard.c (read_char): Allow character codes 128..255 to be
632 handled by input-method-function.
634 * insdel.c (adjust_markers_for_replace): Fix previous change.
635 (adjust_after_replace): If PREV_TEXT is nil, call
636 adjust_markers_for_insert, not adjust_markers_for_replace.
638 2000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
640 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
641 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
642 [HAVE_GRANDPT]: Define.
643 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
645 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
648 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
650 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
652 2000-05-20 Kenichi Handa <handa@etl.go.jp>
654 The following changes are to handle 8-bit characters in a
655 multibyte buffer/string without facing with byte combining
656 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
657 eight-bit-graphic (for 0xA0..0xFF) are introduced.
659 * Makefile.in (fns.o): Depend on charset.h.
661 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
662 convert it to unibyte.
663 (make_string): Use parse_str_as_multibyte, not chars_in_text.
665 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
666 apparent char boundary.
667 (Fset_buffer_multibyte): Convert 8-bit characters in the range
668 0x80..0x9F to/from multibyte form.
670 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
673 * callproc.c (Fcall_process): Always encode an argument string if
674 it is multibyte. Setup src_multibyte and dst_multibyte members of
675 process_coding properly.
677 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
678 SPLIT_NON_ASCII_CHAR.
680 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
682 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
684 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
686 (SPLIT_CHARACTER_SEQ): This macro deleted.
687 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
689 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
690 and eight-bit-graphic.
691 (char_to_string): Likewise. Signal an error for too large
693 (char_printable_p): Return 0 for 8-bit characters.
694 (update_charset_table): Update iso_charset_table only when a final
695 character is non-negative.
696 (find_charset_in_text): Renamed from find_charset_in_str.
697 Arguments and return value changed. Callers changed.
698 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
699 be -1 if CHARSET is used only internally.
700 (Fmake_char_internal): Handle new charsets; eight-bit-control and
702 (Fcharset_after): Simplified.
703 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
704 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
705 (multibyte_chars_in_text): Simplified by assuming there's no
706 invalid multibyte sequence.
707 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
708 str_as_unibyte): New functions.
709 (Fstring): Simpified by assuming that byte combining never
711 (init_charset_once): Initialization for
712 LEADING_CODE_8_BIT_CONTROL.
713 (syms_of_charset): Intern and staticpro Qeight_bit_control and
714 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
715 eight-bit-control and eight-bit-graphic.
717 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
718 CHARSET_8_BIT_GRAPHIC): New macros.
719 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
720 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
721 (CHARSET_REVERSE_CHARSET): Likewise.
722 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
724 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
725 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
726 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
727 encounter an invalid multibyte sequence.
728 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
729 sequence is always valid.
730 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
731 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
733 (CHAR_STRING): For 8-bit characters, call char_to_string.
734 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
735 multibyte sequence is always valid.
736 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
737 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
738 str_as_unibyte): Extern them.
739 (BCOPY_SHORT): Fix a bug.
740 (CHAR_LEN): This macro deleted. Callers changed to use
742 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
743 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
744 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
746 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
747 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
748 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
749 EMIT_BYTES): New macros.
750 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
751 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
753 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
754 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
755 check the validity of multibyte sequence.
756 (decode_coding_emacs_mule): New function.
757 (encode_coding_emacs_mule): New macro.
758 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
760 (DECODE_ISO_CHARACTER): Just return a character code.
761 (DECODE_COMPOSITION_START): Set coding->result instead of result.
762 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
763 EMIT_CHAR to produced decoded characters. Exit the loop only by
764 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
766 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
767 only position codes for an invalid character.
768 (encode_designation_at_bol): Return new destination pointer. 5th
769 arg DSTP is changed to DST.
770 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
771 from the source by ONE_MORE_CHAR. Don't handle the case of last
773 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
775 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
776 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
777 TWO_MORE_BYTES to fetch a byte from the source.
778 (encode_eol): Pay attention to coding->src_multibyte.
779 (detect_coding, detect_eol): Preserve members src_multibyte and
781 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
782 (encoding_buffer_size): Set magnification to 3 for all coding
783 systems that require encoding.
784 (ccl_coding_driver): For decoding, be sure that the result is
785 valid multibyte sequence.
786 (decode_coding): Initialize coding->errors and coding->result.
787 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
788 and raw-text, always call decode_eol. Handle the case of last
789 block here. If not coding->dst_multibyte, convert the resulting
791 (encode_coding): Initialize coding->errors and coding->result.
792 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
793 and raw-text, always call encode_eol. Handle the case of last
795 (shrink_decoding_region, shrink_encoding_region): Detect cases
796 that we can't skip data more rigidly.
797 (code_convert_region): Setup src_multibyte and dst_multibyte
798 members of coding. For decoding, if the buffer is multibyte,
799 convert the source sequence to unibyte in advance. For encoding,
800 if the buffer is multibyte, convert the resulting sequence to
802 (run_pre_post_conversion_on_str): New function.
803 (code_convert_string): Deleted and divided into the following two.
804 (decode_coding_string, encode_coding_string): New functions.
805 (code_convert_string1, code_convert_string_norecord): Call one of
807 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
809 (Fset_terminal_coding_system_internal,
810 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
811 and dst_multibyte members.
812 (init_coding_once): Initialize iso_code_class with new enum
813 ISO_control_0 and ISO_control_1.
815 * coding.h (enum iso_code_class_type): Member ISO_control_code is
816 devided into ISO_control_0 and ISO_control_1.
817 (struct coding_system): New members src_multibyte, dst_multibyte,
818 errors, and result. Delete member fake_multibyte.
819 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
821 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
824 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
827 * editfns.c (Fformat): Be sure to convert 8-bit characters to
829 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
831 (Ftranspose_region): Delete codes for handling byte combining.
833 * fileio.c (Finsert_file_contents): Setup src_multibyte and
834 dst_multibyte members of coding. On handling REPLACE on unibyte
835 buffer, convert the result of decode_coding to unibyte. On
836 inserting into a mutibyte buffer, always call code_convert_region.
837 (e_write): Setup coding->src_multibyte according to the
838 multibyteness of the source (buffer or string).
840 * fns.c (concat): Handle 8-bit characters correctly.
841 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
842 unibyte in the result.
843 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
844 valid multibyte form in the result.
845 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
846 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
847 return -1, signal an error.
848 (base64_encode_1): New arg MULTIBYTE. Get each character by
849 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
850 character is found, return -1.
851 (Fbase64_decode_region): Delete codes for handling byte-combining.
852 Treat each decoded byte as a unibyte character.
853 (Fbase64_decode_string): Return unibyte string.
854 (Fcompare_strings, concat, string_byte_to_char): Use
855 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
856 FETCH_STRING_CHAR_ADVANCE.
857 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
858 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
860 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
861 SPLIT_NON_ASCII_CHAR.
862 (fontset_ref_via_base, fontset_set): Likewise
864 * insdel.c (adjust_markers_for_record_delete): Deleted.
865 (adjust_markers_for_insert): Argument changed. Caller changed.
866 (adjust_markers_for_replace): Likewise.
867 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
868 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
869 (copy_text): Delete unused local varialbe c_save. For converting
870 to multibyte, be sure to make all 8-bit characters in valid
872 (count_size_as_multibyte): Handle 8-bit characters correctly.
873 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
874 adjust_after_replace, replace_range, del_range_2)
875 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
876 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
877 adjust_after_replace, replace_range, del_range_2) Delete codes for
878 handling byte combining.
879 (adjust_before_replace): Deleted.
881 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
882 SPLIT_NON_ASCII_CHAR.
883 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
884 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
886 (Fkey_description): Likewise.
888 * lread.c (read1): On reading multibyte string, be sure to make
889 all 8-bit chararacters in valid multibyte form.
890 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
892 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
895 * process.c (Fstart_process): GCPRO current_dir before calling
896 Ffind_operation_coding_system. Encode arguments here.
897 (create_process): Don't encode arguments here. Setup
898 src_multibyte and dst_multibyte members of struct coding.
899 (read_process_output): Setup src_multibyte and dst_multibyte
900 members of struct coding. If the output is to multibyte buffer,
901 always decode the output of the process. Adjust the
902 representation of 8-bit characters to the multibyteness of the
904 (send_process): Setup coding->src_multibyte according to the
905 multibyteness of the source.
907 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
909 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
910 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
912 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
915 * w16select.c (Fw16_set_clipboard_data): Setup members
916 src_multibyte and dst_multibyte of coding. Adjusted for the
917 change for find_charset_in_str.
918 (Fw16_get_clipboard_data): Likewise.
920 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
921 dst_multibyte of coding.
922 (x_to_w32_font): Likewise.
924 * w32select.c (Fw32_set_clipboard_data): Setup members
925 src_multibyte and dst_multibyte of coding. Adjusted for the
926 change for find_charset_in_str.
927 (Fw32_get_clipboard_data): Likewise.
929 * xdisp.c (get_next_display_element): Handle 8-bit characters
931 (next_element_from_display_vector): Use CHAR_BYTES instead of
933 (disp_char_vector): Use SPLIT_CHAR instead of
934 SPLIT_NON_ASCII_CHAR.
936 * xselect.c (selection_data_to_lisp_data): Setup members
937 src_multibyte and dst_multibyte of coding. Adjusted for the
938 change for find_charset_in_str.
939 (lisp_data_to_selection_data): Likewise.
941 2000-05-19 Gerd Moellmann <gerd@gnu.org>
943 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
946 * dispextern.h (Vimage_types): Add extern declaration.
948 * xdisp.c (Vimage_types): Moved here from xfns.c.
949 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
951 * xfns.c (Vimages_types): Moved to xdisp.c.
952 (syms_of_xfns): Move `image-types' to xdisp.c.
954 * w32fns.c (Vimage_types): Removed.
955 (syms_of_w32fns): Remove `image-types'.
957 2000-05-18 Kenichi Handa <handa@etl.go.jp>
959 * fns.c (map_char_table): Pay attention to character number of
960 charset. Check the validity of charset at the first level. For
961 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
964 * fontset.c: Include "buffer.h".
965 (fs_load_font): If the face has fontset, record the face ID in
967 (Finternal_char_font): New function.
968 (accumulate_font_info): New function.
969 (Ffontset_info): Rewritten for the new fontset implementation.
970 (syms_of_fontset): Register Vdefault_fontset in the first element
971 of Vfontset_table. Include Vdefault_fontset in
972 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
975 2000-05-16 Dave Love <fx@gnu.org>
977 * m/iris5d.h: Deleted -- unused.
979 2000-05-16 Gerd Moellmann <gerd@gnu.org>
981 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
982 `invalid' instead of `illegal'.
984 * indent.c (Fmove_to_column): When ending within a tab, insert
985 spaces first so that markers at the end of the tab get adjusted.
987 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
988 buffer list that wasn't selected in that frame.
990 * filelock.c (get_boot_time): To obtain an 8 char file name, which
991 is needed on mescaline, use a 2 char prefix, and call
992 make_temp_name with second arg non-zero.
994 * fileio.c (make_temp_name): New function, extracted from
996 (Fmake_temp_name): Use it.
998 2000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
1000 * window.c (coordinates_in_window): Subtract 1 when computing
1003 2000-05-15 Gerd Moellmann <gerd@gnu.org>
1005 * Makefile.in (lisp): Add env.elc.
1007 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
1009 2000-05-12 Gerd Moellmann <gerd@gnu.org>
1011 * search.c (Freplace_match): Handle case of `\N' in the
1012 replacement when there's no group N.
1014 2000-05-11 Gerd Moellmann <gerd@gnu.org>
1016 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
1017 of the message to message_dolog.
1019 * keyboard.c (read_char): Don't clear current message for help
1020 events; let the code handling help events handle this. Change
1021 code detecting help events that should be ignored.
1023 * xdisp.c (handle_single_display_prop): Don't try to set PT if
1024 we're interating over a string.
1026 2000-05-09 Dave Love <fx@gnu.org>
1028 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
1029 that offset before writing. Move gcpro region past call of
1032 2000-05-04 Dave Love <fx@gnu.org>
1034 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
1036 2000-05-04 Gerd Moellmann <gerd@gnu.org>
1038 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
1039 of inserted characters when BUF equals the current buffer, and PT
1040 is in front of or equal to FROM.
1042 2000-05-03 Gerd Moellmann <gerd@gnu.org>
1044 * xdisp.c (handle_single_display_prop): If display property value
1045 is invalid, or something not supported on the frame, restore
1046 iterator's position to what it was initially. Make sure to return
1047 0 for invalid and unsupported property values.
1049 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
1050 that x_per_char_metric returns null.
1052 2000-05-02 Gerd Moellmann <gerd@gnu.org>
1054 * xterm.h (struct face): Add forward declaration.
1055 (struct image): Ditto.
1056 (image_ascent): Add prototype.
1058 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1059 (x_draw_image_relief, x_draw_image_foreground_1): Call function
1060 image_ascent instead of using IMAGE_ASCENT.
1062 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
1063 (IMAGE_ASCENT): Removed.
1065 * xfns.c (Qcenter): New variable.
1066 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
1067 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
1068 (image_ascent): New function.
1069 (lookup_image): Recognize `:ascent center'.
1070 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1071 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
1072 (xbm_load): Don't set image's ascent here.
1073 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
1074 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
1075 check ascent values here.
1076 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
1077 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
1078 (syms_of_xfns): Initialize Qcenter.
1080 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
1081 to the limits, increase the limits.
1083 2000-05-01 Kenichi Handa <handa@etl.go.jp>
1085 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
1086 Check Vfont_encoding_alist against the full name of the opened
1089 2000-04-28 Gerd Moellmann <gerd@gnu.org>
1091 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
1092 taller than the window.
1094 2000-04-28 Kenichi Handa <handa@etl.go.jp>
1096 * xfaces.c (realize_x_face): Fix the argument of the second
1097 xassert. BASE_FACE may not be a face for ASCII.
1099 2000-04-27 Gerd Moellmann <gerd@gnu.org>
1101 * print.c (print_object): Treat print-length < 0 as nil.
1103 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
1105 * s/freebsd.h (TERMCAP_OBJ): Removed.
1106 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
1108 * lread.c (read1): Don't treat period followed by certain
1109 characters as symbol start.
1111 * xfns.c (slurp_file): New function.
1112 (xbm_image_p): Handle case of in-memory XBM files.
1113 (xbm_scan): Rewritten to work on memory buffers instead of files.
1114 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
1115 Work on memory buffers instead of files. If DATA is null test
1116 if buffer looks like an in-memory XBM file.
1117 (xbm_load_image): Renamed from xbm_load_image_file. Work on
1118 memory buffers instead of files.
1119 (xbm_file_p): New function.
1120 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
1122 * lread.c (end_of_file_error): New function.
1123 (read1): Call it instead of signaling `end-of-file' directly.
1125 * print.c (print_error_message): Print data of `end-of-file'
1126 with Fprinc instead of Fprin1.
1128 2000-04-26 Ken Raeburn <raeburn@gnu.org>
1130 * window.c (freeze_window_start): Check that minibuffer scroll
1131 window isn't nil before extracting the window structure pointer
1134 * undo.c (record_delete): If we hit the end of the undo list, stop
1135 picking elements apart.
1137 2000-04-26 Gerd Moellmann <gerd@gnu.org>
1139 * xdisp.c (display_line): If lines are continued, restore
1140 iterator's ascent/descent information to the values before the
1141 first glyph not fitting on the line.
1143 2000-04-25 Gerd Moellmann <gerd@gnu.org>
1145 * xdisp.c (try_window_id) <all changes above window start>: Adjust
1146 positions in glyph matrix. Don't compute new window end
1149 * dispnew.c (increment_matrix_positions): Renamed from
1150 increment_glyph_matrix_buffer_positions.
1151 (increment_row_positions): Renamed from
1152 increment_glyph_row_buffer_positions.
1154 * dispextern.h: Change names of renamed functions from dispnew.c
1157 2000-04-24 Gerd Moellmann <gerd@gnu.org>
1159 * fileio.c (Fdo_auto_save): Create directories for auto-save
1160 list file if necessary.
1162 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
1163 from buffer or frame.
1164 (automatic_hscrolling_p): New variable.
1165 (hscroll_windows): Scroll windows horizontally only if automatic
1166 hscrolling is allowed.
1167 (syms_of_xdisp): New variable `automatic-hscrolling'.
1169 * frame.h (struct frame): Add member extra_line_spacing.
1171 * xfns.c (x_set_line_spacing): New function.
1172 (Fx_create_frame): Set line spacing from resources.
1173 (Qline_spacing): New variable.
1174 (syms_of_xfns): Initialize Qline_spacing.
1176 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
1178 * buffer.c (init_buffer_once): Handle extra_line_spacing.
1179 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
1180 (reset_buffer): Don't initialize extra2 and extra3. Initialize
1181 extra_line_spacing from default value.
1182 (init_buffer_once): Initialize default value of extra_line_spacing.
1184 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
1187 * xterm.c (x_produce_glyphs): Remove reference to struct it's
1188 prompt_width. Add extra line spacing.
1190 * term.c (produce_glyphs): Remove reference to struct it's
1193 * dispextern.h (struct it): Remove member prompt_width, add
1196 2000-04-22 Gerd Moellmann <gerd@gnu.org>
1198 * dispnew.c (update_frame_line): When writing a whole line, make
1199 sure cursor is in the right row afterwards, otherwise a use of
1200 capability `ch' in cmgoto might leave the cursor in the row below.
1202 2000-04-21 Gerd Moellmann <gerd@gnu.org>
1204 * lisp.h (struct Lisp_Buffer_Cons): Remove.
1206 * keyboard.c (timer_check): Fix typo in comment.
1208 2000-04-21 Kenichi Handa <handa@etl.go.jp>
1210 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
1211 name change: ch -> character.
1213 2000-04-20 Gerd Moellmann <gerd@gnu.org>
1215 * keyboard.c (echo_message_buffer): New variable.
1216 (echo_now): Set echo_message_buffer to the echo area buffer used
1217 to display the echo.
1218 (cancel_echoing): Reset echo_message_buffer to nil.
1219 (read_char): Code rewritten that handles canceling an echo or
1220 echoing a dash, respectively.
1222 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
1223 directory doesn't exist.
1225 2000-04-19 Dave Love <fx@gnu.org>
1227 * fns.c (syms_of_fns): Defsubr mapc.
1228 (concat): Don't allow numeric args.
1229 (Fconcat): Doc change.
1231 2000-04-19 Stefan Monnier <monnier@cs.yale.edu>
1233 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
1234 instead define end_match(1|2) more carefully.
1235 Use GET_CHAR_BEFORE_2 for `begline'.
1237 2000-04-19 Gerd Moellmann <gerd@gnu.org>
1239 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
1240 on 64-bit systems where NULL is defined as `0'.
1242 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
1243 the `variable argument list' to make it work on Alpha.
1245 * m/alpha.h (_LP64) [!_LP64]: Define.
1246 (ORDINARY_LINK): Define for NetBSD.
1248 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
1250 2000-04-19 Dave Love <fx@gnu.org>
1252 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
1255 * Makefile.in (LIBS): Don't use.
1256 (GETLOADAVG_OBJ): Define again.
1257 (otherobj): Add GETLOADAVG_OBJ.
1259 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
1261 2000-04-18 Gerd Moellmann <gerd@gnu.org>
1263 * lread.c (read_filtered_event): Cancel and start busy cursor.
1265 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1266 that the per-character metrics may be null.
1268 2000-04-17 Gerd Moellmann <gerd@gnu.org>
1270 * buffer.c (clone_per_buffer_values): New function.
1271 (Fmake_indirect_buffer): Add optional argument CLONE. Call
1272 clone_per_buffer_values if CLONE is not nil.
1274 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
1276 2000-04-16 Dave Love <fx@gnu.org>
1278 * Makefile.in: Remove obsolete localcpp stuff.
1279 (GETLOADAVG_OBJ): Don't define.
1280 (obj): Move LIBOBJS...
1281 (otherobj): ... to here.
1282 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
1283 whitespace-only lines after the continuation (Irix).
1285 2000-04-14 Gerd Moellmann <gerd@gnu.org>
1287 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
1289 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
1291 2000-04-14 Dave Love <fx@gnu.org>
1293 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
1294 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
1295 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
1296 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
1299 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
1300 autoconfiscated HAVE_GETLOADAVG.
1302 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
1305 2000-04-14 Gerd Moellmann <gerd@gnu.org>
1307 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
1308 (fill_in_lock_file_name): Avoid existing files that aren't
1311 2000-04-14 Dave Love <fx@gnu.org>
1313 * Makefile.in (LIBS, LIBOBJS): New variable.
1314 (INTERVAL_SRC): Convert to make variable.
1315 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
1316 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
1317 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
1319 (SOME_MACHINE_OBJECTS): Remove interval stuff.
1320 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
1321 (shortlisp): Add facemenu, float-sup, frame.
1322 (SOME_MACHINE_LISP): Remove them from here.
1323 (LIBES): Change unused LDLIBS to autoconf LIBS.
1325 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
1327 2000-04-14 Kenichi Handa <handa@etl.go.jp>
1329 * composite.c (update_compositions): If FROM and TO are not in a
1330 valid range, do nothing.
1332 2000-04-13 Gerd Moellmann <gerd@gnu.org>
1334 * tparam.c (tparam1): Abort when encountering an unknown
1337 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
1340 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
1343 2000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
1345 * fileio.c (a_write): Remove redundant semi-colons.
1346 (e_write): Return -1 if failed to write all the data.
1347 This fixes the changes made at 1999-12-15.
1349 2000-04-12 Dave Love <fx@gnu.org>
1351 * fns.c (mapcar1): Test for null vals to support mapc.
1352 (Fmapc): New function.
1354 2000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
1356 * msdos.c (NUM_MOUSE_BUTTONS): Define.
1357 (IT_frame_up_to_date): Support the buffer local value of
1358 cursor-type, if defined.
1360 2000-04-10 Dave Love <fx@gnu.org>
1362 * editfns.c (preceding-char, following-char): Doc fix.
1364 2000-04-10 Ken Raeburn <raeburn@gnu.org>
1366 * Makefile.in (temacs): Revert 2000-03-12 change.
1368 2000-04-10 Jason Rumney <jasonr@gnu.org>
1370 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
1372 2000-04-10 Gerd Moellmann <gerd@gnu.org>
1374 * xdisp.c (setup_echo_area_for_printing): Choose an echo
1375 area buffer, if it's not set up yet.
1377 * indent.c (compute_motion): Set immediate_quit.
1379 2000-04-09 Gerd Moellmann <gerd@gnu.org>
1381 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
1383 (realize_tty_face): Suppress boldness if colors are the inverse of
1384 the default colors, and tty_suppress_bold_inverse_default_colors_p
1386 (Ftty_suppress_bold_inverse_default_colors): New function.
1387 (syms_of_xfaces): Defsubr it.
1389 * buffer.c (Frestore_buffer_modified_p): New function.
1390 (syms_of_buffer): Defsubr it.
1392 2000-04-08 Ken Raeburn <raeburn@gnu.org>
1394 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
1395 charset id (int) argument, not a charset (Lisp_Object).
1397 * coding.h (code_convert_string): Declare.
1398 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
1399 object, as the fourth argument to code_convert_string.
1401 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
1403 (Fset_fontset_font): Use EQ to compare lisp objects.
1405 2000-04-05 Ken Raeburn <raeburn@gnu.org>
1407 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
1408 a pointer that looks like a lisp object.
1409 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
1410 zero, instead see whether it's an integer object, since they can't
1412 (GET_INTERVAL_OBJECT): Simply assign to the destination.
1414 * dispnew.c (allocate_matrices_for_frame_redisplay,
1415 direct_output_forward_char): Use X(U)INT and make_number as needed
1416 to convert between (unsigned) int values and lisp integers.
1417 * keyboard.c (read_key_sequence): Likewise.
1418 * lread.c (substitute_object_recurse): Likewise.
1419 * fns.c (concat, hash_lookup, hash_remove): Likewise.
1420 * minibuf.c (do_completion, Fminibuffer_complete_word,
1421 Fminibuffer_completion_help): Likewise.
1422 * term.c (produce_special_glyphs): Likewise.
1424 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
1425 * print.c (print_preprocess, print_object): Likewise.
1427 * search.c (compile_pattern): Use NILP when checking for nil.
1429 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
1430 __OPTIMIZE__]: Provide a GNU C macro version that handles
1432 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
1433 field, to better cope with ENABLE_CHECKING and calls that modify a
1434 Lisp_Object using its old value.
1436 2000-04-04 Gerd Moellmann <gerd@gnu.org>
1438 * window.c (compare_window_configurations): Signal an error
1439 if parameters C1 or C2 aren't window configurations.
1441 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
1442 AFTER_POTENTIAL_GC calls around calls to functions that can
1443 signal an error and thus invoke the debugger.
1445 2000-04-03 Gerd Moellmann <gerd@gnu.org>
1447 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
1448 an error if decoding fails.
1450 * keyboard.c (lispy_mouse_names): Variable removed.
1451 (Vlispy_mouse_stem): New variable.
1452 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
1453 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
1454 for any mouse button number. Increase size of mouse_syms and
1455 button_down_location as needed. Call modify_event_symbol with
1456 different arguments.
1457 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
1458 Call modify_event_symbol with different arguments.
1459 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
1460 for any button number. Call modify_event_symbol with different
1462 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
1463 Accept a string for NAME_ALIST_OR_STEM.
1465 * lisp.h (larger_vector): Add prototype.
1467 * fns.c (larger_vector): Make externally visible.
1469 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
1471 2000-04-02 Stefan Monnier <monnier@cs.yale.edu>
1473 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
1474 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
1475 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
1476 we are between str1 and str2.
1477 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
1478 (PATFETCH): Use `TRANSLATE'.
1479 (PATFETCH_RAW): Fetch multibyte char if applicable.
1480 (PATUNFETCH): Remove.
1481 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
1482 When writing a char, write it directly into the pattern buffer rather
1483 than going needlessly through a temp char-array.
1484 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
1485 multibyte magic and remove the useless `#ifdef emacs'.
1486 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
1489 * regex.h (struct re_pattern_buffer): Make field `multibyte'
1490 conditional on `emacs'.
1492 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
1494 2000-04-01 Ken Raeburn <raeburn@gnu.org>
1496 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
1497 non-union-type versions of XMARK and friends here, because XMARK
1498 and friends won't work on an integer field if NO_UNION_TYPE is not
1500 (make_number): Define as a function if it's not defined as a
1503 * composite.c (run_composite_function): Use NILP when checking for
1505 (syms_of_composite): Delete local var NARGS, pass an int as first
1506 argument to Fmake_hash_table.
1508 * editfns.c (text_property_stickiness): Use NILP to test
1509 Lisp_Object boolean value.
1510 (Fmessage_or_box): Don't use NILP to test int variable.
1511 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
1512 problems reading from and changing the same lisp value in an
1515 2000-04-01 Gerd Moellmann <gerd@gnu.org>
1517 * term.c (TN_no_color_video): New variable.
1518 (term_init): Intitialize TN_no_color_video.
1519 (enum no_color_bit): New enumeration.
1520 (MAY_USE_WITH_COLORS_P): New macro.
1521 (turn_on_face): Use it to determine if attributes may be used
1522 combined with colors.
1524 2000-04-01 Ken Raeburn <raeburn@gnu.org>
1526 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
1527 with int lvalues via casts; instead, just yield lisp object
1529 (enlarge_window): Variable sizep now points to Lisp_Object. Use
1530 proper accessor macros.
1531 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
1532 (grow_mini_window): Fix typo getting int value of root->height.
1534 * xdisp.c (compute_string_pos): Fix order of arguments to
1535 string_pos_nchars_ahead.
1536 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
1537 count arg to variable-arg routines like Frun_hook_with_args and
1539 (back_to_previous_visible_line_start)
1540 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
1541 fixed-arg routines like Fget_char_property and Fmake_string.
1542 (reconsider_clip_changes): Use XINT when comparing integer lisp
1543 objects, or passing them as int arguments.
1544 (mark_window_display_accurate, insert_left_trunc_glyphs)
1545 (append_space, extend_face_to_end_of_line): Use make_number when
1546 storing or passing integer values as lisp objects.
1547 (set_cursor_from_row, highlight_trailing_whitespace): Use
1548 INTEGERP, not implicit test against zero, for glyph object.
1549 (try_window_id): Don't use make_number when we want an int value.
1551 * xfaces.c (xlfd_symbolic_value): Make last argument a
1552 Lisp_Object, to be consistent with callers.
1553 (Fbitmap_spec_p): Use XINT to get numeric value of height.
1554 (lface_hash): Apply XFASTINT to lisp values before folding in.
1556 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
1557 fill in window width and height. Pass an int, not a lisp object,
1558 as first arg to Finsert.
1560 2000-04-01 Gerd Moellmann <gerd@gnu.org>
1562 * xfaces.c (realize_basic_faces): Block input while realizing
1565 * keyboard.c (lispy_mouse_names): Add additional mouse names.
1567 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
1569 2000-03-31 Gerd Moellmann <gerd@gnu.org>
1571 * xterm.c (x_produce_glyphs): When displaying unibyte text
1572 or ASCII, handle case that per-char metric is null.
1574 2000-03-30 Ken Raeburn <raeburn@gnu.org>
1576 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
1578 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
1579 XSUBR, XBUFFER): Verify correct object type before returning
1580 pointer, using eassert.
1581 * frame.h (XFRAME): Likewise.
1583 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
1584 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
1585 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
1587 * data.c (set_internal): Likewise.
1588 * dispextern.h (WINDOW_WANTS_MODELINE_P,
1589 WINDOW_WANTS_HEADER_LINE_P): Likewise.
1590 * fileio.c (auto_save_1): Likewise.
1591 * insdel.c (check_markers): Likewise.
1592 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
1593 * undo.c (record_insert): Likewise.
1594 * vmsproc.c (child_sig): Likewise.
1595 * window.c (unshow_buffer, window_loop): Likewise.
1596 * xterm.c (x_erase_phys_cursor): Likewise.
1598 2000-03-30 Gerd Moellmann <gerd@gnu.org>
1600 * xfns.c (free_image_cache): Free the cache structure itself
1601 last, after all its members have been freed.
1603 * lisp.h (xstrdup): Add prototype.
1605 * alloc.c (xstrdup): Moved here from xfaces.c.
1606 (allocating_for_lisp): Variable removed.
1607 (lisp_malloc): Block input around the calls to malloc and
1610 * xfaces.c (realize_tty_face): Use find_symbol_value instead
1612 (xstrdup): Moved to alloc.c.
1614 2000-03-29 Ken Raeburn <raeburn@gnu.org>
1616 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
1618 * emacs.c (main): Fix sense of no-loadup test.
1620 * config.in (ENABLE_CHECKING): Undef.
1622 * lisp.h (struct interval): Replace "parent" field with a union of
1623 interval pointer and Lisp_Object; add new bitfield to use as
1624 discriminant. Change other flag fields to bitfields.
1625 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
1626 is defined and the supplied test fails, print a message and
1628 (eassert): New macro. Use CHECK to provide an assert-like
1631 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
1632 pointers; abort if the value looks like a lisp object.
1633 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
1634 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
1635 Modify for new interval parent definition.
1637 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
1638 UNMARK_BALANCE_INTERVALS): Update references that need an
1639 addressable lisp object in the interval structure.
1640 (die): New function.
1641 (suppress_checking): New variable.
1643 * intervals.c (interval_start_pos): Just return 0 if there's no
1646 2000-03-29 Gerd Moellmann <gerd@gnu.org>
1648 * lread.c (read1): Accept `.' (period) as symbol start like in CL
1649 and earlier Emacs versions.
1651 * keyboard.c (Ftop_level): Cancel busy-cursor.
1653 * eval.c (call_debugger): Cancel busy-cursor.
1655 2000-03-29 Kenichi Handa <handa@etl.go.jp>
1657 * search.c (Freplace_match): Adjust multibyteness of the current
1658 buffer and NEWTEXT. Free allocated memory before signaling an
1661 2000-03-28 Stefan Monnier <monnier@cs.yale.edu>
1663 * regex.c (analyse_first): New function obtained by ripping out most
1664 of re_compile_fastmap and generalizing it a little bit so that it
1665 can also just return whether a given (sub)pattern can match the empty
1667 (regex_compile): Use `analyse_first' to decide whether the loop-check
1668 needs to be done or not for *, +, *? and +? (the loop check is costly
1669 for non-greedy repetition).
1670 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
1672 2000-03-28 Dave Love <fx@gnu.org>
1674 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
1677 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
1679 2000-03-27 Stefan Monnier <monnier@cs.yale.edu>
1681 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
1683 (enum re_opcode_t): Update description of succeed_n.
1684 (PATFETCH): Always define.
1685 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
1686 operators, char classes, shy-groups and intervals).
1687 Optimize special cases of intervals so as to only use succeed_n and
1688 jump_n when really needed.
1689 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
1690 that we don't have to handle the special cases any more.
1691 Simplify on_failure_jump handling as well.
1693 2000-03-28 Jason Rumney <jasonr@gnu.org>
1695 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
1697 2000-03-27 Gerd Moellmann <gerd@gnu.org>
1699 * s/freebsd.h (GC_SETJMP_WORKS): Define.
1701 * s/msdos.h (GC_SETJMP_WORKS): Define.
1703 * alloc.c (mark_maybe_object): New function.
1704 (mark_memory): Use it.
1705 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
1706 (setjmp_tested_p, longjmp_done): New variables.
1707 (test_setjmp): New function.
1708 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
1709 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
1711 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
1712 to DEC_TEXT_POS and INC_TEXT_POS.
1714 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
1715 with parameter MULTIBYTE_P.
1717 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
1720 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
1721 buffers because it looks for multibyte character byte sequences
1722 which don't exist in unibyte text.
1724 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
1726 * xfaces.c (register_color, unregister_color, unregister_colors)
1727 [DEBUG_X_COLORS]: New functions.
1728 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
1730 * xfns.c (x_set_cursor_color): Get color reference counts right.
1732 * xterm.c (x_copy_color): New function.
1733 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
1735 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
1736 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
1737 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
1738 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
1739 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
1740 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
1741 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
1742 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
1743 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
1744 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
1746 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
1747 names for handling per-buffer variables.
1749 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
1750 instead of MAX_BUFFER_LOCAL_VARS.
1751 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
1753 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
1755 * xfns.c (x_specified_cursor_type): New function.
1756 (x_set_cursor_type): Use it.
1758 * buffer.h (struct buffer): Add cursor_type.
1760 2000-03-26 Stefan Monnier <monnier@cs.yale.edu>
1762 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
1763 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
1765 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
1766 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
1767 executing it as well as when popping it off the stack to find infinite
1768 loops in non-greedy repetition operators.
1770 2000-03-26 Gerd Moellmann <gerd@gnu.org>
1772 * doc.c (Qfunction_documentation): New variable.
1773 (syms_of_doc): Initialize Qfunction_documentation.
1774 (Fdocumentation): If FUNCTION is a symbol with non-nil
1775 `function-documentation' property, return a documentation derived
1778 * buffer.c (syms_of_buffer): Add default-cursor-type.
1779 (init_buffer_once): Don't let cursor_type have a local value
1782 * xterm.c (x_display_and_set_cursor): Choose cursor depending
1783 on buffer-local value of cursor_type.
1784 (x_draw_bar_cursor): Add parameter WIDTH.
1786 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
1787 (init_buffer_once): Set default cursor_type value to t.
1788 Mark cursor_type as local everywhere.
1789 (syms_of_buffer): New per-buffer variable cursor-type.
1791 * buffer.h (struct buffer): Remove member local_var_flags,
1793 (MAX_BUFFER_LOCAL_VARS): New macro.
1794 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
1795 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
1796 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
1797 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
1799 * print.c (print_object): Use new macros for per-buffer
1802 * category.c (Fset_category_table): Use new macros for per-buffer
1805 * buffer.c (buffer_permanent_local_flags): Make a char array.
1806 (max_buffer_local_idx): New variable.
1807 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
1808 for new handling of per-buffer variables.
1809 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
1810 (init_buffer_once): Initialize per-buffer vars differently.
1811 Set max_buffer_local_idx.
1813 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
1816 * lread.c (defvar_per_buffer): Use new macros for per-buffer
1819 * data.c (do_symval_forwarding, store_symval_forwarding)
1820 (find_symbol_value, set_internal, default_value, Fset_default)
1821 (Fkill_local_variable, Flocal_variable_p): Use new macros for
1822 per-buffer variables.
1824 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
1826 2000-03-24 Gerd Moellmann <gerd@gnu.org>
1828 * xterm.c (x_term_init): Unblock input around call1 of
1829 Qvendor_specific_keysyms.
1831 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
1832 (find_defun_start): Consider an open parenthesis in column 0
1833 a defun start only if open_paren_in_column_0_is_defun_start is set.
1834 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
1836 2000-03-24 Stefan Monnier <monnier@cs.yale.edu>
1838 * eval.c (Fautoload): Add entry in load-history (if after dump).
1839 * lread.c (load-history): Update docstring.
1841 2000-03-24 Gerd Moellmann <gerd@gnu.org>
1843 * indent.c (Fvertical_motion): Always use the current buffer.
1844 Temporarily change the window's buffer, if necessary.
1846 2000-03-23 Gerd Moellmann <gerd@gnu.org>
1848 * xterm.c (fast_find_position): Make sure not to consider rows
1849 not visible in the window.
1851 2000-03-22 Stefan Monnier <monnier@cs.yale.edu>
1853 * regex.c (enum syntaxcode): Provide default for non-Emacs.
1854 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
1856 2000-03-22 Jason Rumney <jasonr@gnu.org>
1858 * w32menu.c (single_submenu): Set help string to NULL if none.
1859 (w32_menu_show): Set help string correctly.
1860 (add-menu-item): Set help string in MIIM_DATA for menu item.
1861 Load SetMenuItemInfoA explicitly.
1862 (w32_menu_display_help): New function.
1864 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
1865 (QCdata): Moved to xdisp.c.
1867 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
1868 (Vw32_charset_to_codepage_alist): Removed.
1869 (Vw32_charset_info_alist): New variable.
1870 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
1871 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
1872 greek, hebrew, thai, johab, mac, unicode]): New symbols.
1873 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
1875 (w32_codepage_for_font): Use Vw32_charset_info_alist.
1876 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
1877 Define Vw32_charset_info_alist and w32_charset symbols.
1879 2000-03-22 Jason Rumney <jasonr@gnu.org>
1881 * makefile.nt (w32bdf.obj): Update dependencies.
1883 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
1885 * w32fns.c: Include fontset.h after dispextern.h.
1886 (Fx_create_frame): Do not create fontset.
1887 (w32_load_system_font): Doc fix.
1888 (Fx_close_connection): Free full_name if it is not shared.
1890 * w32term.c: Include fontset.h after dispextern.h.
1891 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
1893 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
1894 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
1895 (w32_font_is_double_byte): New function, needs body.
1896 (x_append_glyph): Set glyph->glyph_not_available_p.
1897 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
1898 it->charset. If it->multibyte_p is zero and it->c is a multibyte
1899 character, convert it to a unibyte character.
1900 (struct glyph_string): Delete member `charset'.
1901 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
1902 calculating it is found.
1903 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
1904 the case that per char metric is not available correctly.
1905 (x_fill_glyph_string): Handle the case that the specific glyph is
1906 not available correctly.
1907 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
1908 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
1909 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
1910 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
1911 fontset. Don't call FS_LOAD_FONT.
1913 2000-03-22 Ken Raeburn <raeburn@gnu.org>
1915 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
1916 (INT_LISPLIKE): New macro.
1917 (NULL_INTERVAL_P): Use it.
1918 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
1919 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
1920 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
1922 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
1923 explicit references to "parent" field of struct interval and
1924 associated unclean type conversions.
1925 * intervals.c (create_root_interval, root_interval, rotate_right,
1926 rotate_left, balance_possible_root_interval, split_interval_right,
1927 split_interval_left, interval_start_pos, find_interval,
1928 next_interval, previous_interval, update_interval,
1929 adjust_intervals_for_insertion, delete_node, delete_interval,
1930 adjust_intervals_for_deletion, merge_interval_right,
1931 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
1932 copy_intervals_to_string): Likewise.
1933 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
1935 * syntax.c (update_syntax_table): Likewise.
1937 * intervals.c (reproduce_tree_obj): New function, like
1938 reproduce_tree but takes a Lisp_Object for the parent. Declare
1940 (graft_intervals_into_buffer): Use it when appropriate.
1941 (reproduce_tree): Declare with prototype.
1942 (balance_possible_root_interval): Check that the parent is a lisp
1943 object before trying to examine its type.
1945 2000-03-22 Gerd Moellmann <gerd@gnu.org>
1947 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
1948 as strings only if both are known to be strings.
1950 * s/openbsd.h (LIBS_TERMCAP): Undef.
1952 2000-03-21 Stefan Monnier <monnier@cs.yale.edu>
1954 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
1955 definitions for non-Emacs compilation.
1956 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
1957 outside of `#ifdef emacs'.
1958 (print_partial_compiled_pattern): Update.
1959 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
1960 (re_compile_fastmap): Merge handling of charset and charset_not (for
1961 emacs and non-emacs compilation as well).
1962 Similarly for (not)categoryspec and (not)syntaxspec.
1963 Don't use the fastmap when reaching `anychar' since the added
1964 complexity is not justified.
1965 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
1966 and (not)syntaxspec. Merge (not)categoryspec.
1968 2000-03-22 Kenichi Handa <handa@etl.go.jp>
1970 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
1971 FACE_FOR_CHAR): Define them differently for the configuration of
1974 2000-03-21 Dave Love <fx@gnu.org>
1976 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
1979 2000-03-21 Gerd Moellmann <gerd@gnu.org>
1981 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
1982 (lface_fully_specified_p): Don't check contents of
1983 LFACE_FONT_INDEX because that attribute is optional.
1984 (realize_x_face): Remove now unwarranted xassert.
1986 2000-03-21 Kenichi HANDA <handa@etl.go.jp>
1988 The following changes are to make font selection based on
1989 characters, not charset. In addition, they recover fontset
1990 facilities while utilizing the new font selection mechanism.
1992 * Makefile.in (fontset.o): Depend on dispextern.h.
1994 * alloc.c (mark_face_cache): Don't mark face->registry.
1996 * dispextern.h (struct glyph): New member glyph_not_available_p.
1997 Use 22 bits for face_id.
1998 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
1999 (struct face): Delete member registry, new member ascii_face.
2000 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
2001 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
2002 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
2003 (struct it): Delete member charset, new member
2004 glyph_not_available_p.
2006 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
2007 (struct fontset_info, struct fontset_data): Structs removed.
2008 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
2009 Vglobale_fontset_alist, font_idx_temp): Externs removed.
2010 (fs_load_font, fs_query_fontset): Adjusted for new argument.
2011 (fs_free_face_fontset, fontset_font_pattern,
2012 face_suitable_for_char_p, face_for_char,
2013 make_fontset_for_ascii_face): Extern them.
2014 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
2015 (FS_LOAD_FACE_FONT): New macro.
2017 * fontset.c: All codes rewritten or adjusted for the change of
2018 fontset implementation. Now fontset is represented by char table.
2019 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
2021 (my_strcasecmp): Function removed.
2022 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
2024 (AREF, ASIZE): New macros.
2025 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
2026 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
2027 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
2028 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
2029 fontset_id_valid_p, font_family_registry, fontset_name,
2030 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
2031 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
2033 (fs_load_font): New arg FACE. Caller changed.
2034 (fs_query_fontset): Argument changed. Caller changed.
2035 (Fquery_fontset): call fs_query_fontset.
2036 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
2038 (clear_fontset_elements, check_registry_encoding,
2039 check_fontset_name): New functions.
2040 (syms_of_fontset): Set char-table-extra-slots property of fontset
2041 to 3. Staticpro and initialize Vfontset_table and
2042 Vdefault_fontset. Defsubr fontset_font and fontset_list.
2044 * frame.h (struct frame): Member `fontset_data' removed.
2045 (FRAME_FONTSET_DATA): Macro removed.
2047 * frame.c (make_frame): Don't allocate f->fontset_data.
2048 (Fdelete_frame): Don't free f->fontset_data.
2050 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
2052 * xdisp.c (charset_at_position): Function removed.
2053 (init_iterator): Don't set member charset of struct `it'.
2054 (handle_face_prop, reseat_to_string, set_iterator_to_next,
2055 next_element_from_display_vector, insert_left_trunc_glyphs):
2057 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
2059 (get_next_display_element, append_space,
2060 extend_face_to_end_of_line): Likewise.
2062 * xfaces.c (Qx_charset_registry, Vface_default_registry):
2064 (clear_font_table, frame_update_line_height, load_face_font):
2065 Adjusted for the change of fontset implementation.
2066 (load_face_fontset_font): Function removed.
2067 (pixel_point_size): New function.
2068 (font_list): Argument type changed. Caller changed.
2069 (LFACE_FONT): New macro.
2070 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
2071 (set_lface_from_font_name): Type of arg FONTNAME is changed to
2072 Lisp_Object. Determine the font name by actually loading a font
2073 by the specified pattern. Set LFACE_FONT (lface) to the specified
2074 pattern. Even if a font is not found, don't try alternatives.
2075 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
2076 (set_font_frame_param): If `font' is specified in lface, use it.
2077 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
2078 (lface_same_font_attributes_p): Likewise.
2079 (make_realized_face): Arguent changed. Caller changed. Set
2080 face->ascii_face to face itself.
2081 (free_realized_face): Free face->fontset if face is for ASCII.
2082 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
2083 deduce_unibyte_registry, x_charset_registry): Functions removed.
2084 (free_realized_multibyte_face): New function.
2085 (lookup_face, lookup_named_face, lookup_derived_face): Argument
2086 changed. Caller changed.
2087 (try_font_list): Argument type changed.
2088 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
2089 (choose_face_font): Argument changed. Handle fontset properly.
2090 (choose_face_fontset_font): Function removed.
2091 (realize_default_face, realize_named_face): Don't remove the
2093 (realize_face): Argument changed. Caller changed. Remove face
2094 with the arg former_face_id in advance. Load font for the new
2096 (realize_x_face): Argument changed. Caller changed. For a
2097 multibyte character, share fontset with base_face. For a single
2098 byte character, make a new realized fontset. Don't load a font
2100 (realize_tty_face): Argument changed. Caller changed.
2101 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
2102 (face_at_buffer_position): Don't check multibyte_p for returning
2104 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
2105 FACE_SUITABLE_FOR_CHARSET_P.
2106 (syms_of_xfaces): Remove code for Qx_charset_registry and
2107 Vface_default_registry.
2109 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
2110 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
2111 (x_per_char_metric): Don't try FONT->default_char. Even if
2112 pcm->width is zero, glyph bits may exist.
2113 (x_encode_char): Always initialize char2b->byte1.
2114 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
2115 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
2117 (x_append_glyph): Set glyph->glyph_not_available_p.
2118 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2119 it->charset. Handle the case that per char metric is not
2120 available. If it->multibyte_p is zero and it->c is a multibyte
2121 character, convert it to a unibyte character.
2122 (struct glyph_string): Delete member `charset'.
2123 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2124 the case that per char metric is not available correctly.
2125 (x_fill_glyph_string): Handle the case that the specific glyph is
2126 not available correctly.
2127 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2128 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2129 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2130 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2131 fontset. Don't call FS_LOAD_FONT.
2133 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
2134 (x_create_tip_frame): Likewise.
2135 (Fx_close_connection): Free full_name of font_info.
2137 * fns.c (optimize_sub_char_table): New function.
2138 (Foptimize_char_table): New function.
2139 (syms_of_fns): Defsubr Soptimize_char_table.
2141 2000-03-20 Gerd Moellmann <gerd@gnu.org>
2143 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
2144 only if buffer is displayed in some window.
2146 * xdisp.c (handle_single_display_prop): Initialize local `value'.
2147 (try_window_reusing_current_matrix): Don't call scroll run
2148 function if run's current and desired position are the same;
2149 this prevents cursor flickering.
2151 2000-03-19 Stefan Monnier <monnier@cs.yale.edu>
2153 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
2155 * regex.c (RE_STRING_CHAR): New macro.
2156 (GET_CHAR_AFER_2): Remove.
2157 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
2158 (enum re_opcode_t): Remove on_failure_jump_exclusive.
2159 (print_partial_compiled_pattern, re_compile_fastmap)
2160 (re_match_2_internal): Remove on_failure_jump_exclusive.
2161 (regex_compile): Turn optimizable P+ loops into PP*, so that the
2162 optimization only need to work for * (ie. can use of_keep_string_jump).
2163 Remove the special case for .*\n since it is now covered by the general
2165 (re_search_2): Don't bother with `room'.
2166 (skip_one_char): New function.
2167 (skip_noops): Simplify since `memory' is not needed any more.
2168 (mutually_exclusive_p): Restructure slightly to use `switch' and
2169 add handling for "all" remaining cases.
2170 (re_match_2_internal): Change on_failure_jump_smart to use
2171 on_failure_keep_string_jump (and redirect the end-of-loop jump)
2172 rather than on_failure_jump_exclusive.
2174 2000-03-19 Gerd Moellmann <gerd@gnu.org>
2176 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
2177 number of bits per RGB because it's everywhere used as the depth
2180 * term.c (calculate_costs): Remove code dealing with X frames.
2182 2000-03-19 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2184 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
2186 2000-03-18 Gerd Moellmann <gerd@gnu.org>
2188 * lread.c (read_integer): Unread the last char not consumed.
2190 2000-03-17 Gerd Moellmann <gerd@gnu.org>
2192 * xterm.c (x_update_window_cursor): Don't update in frames
2193 which are in the process of being deleted.
2195 2000-03-16 Gerd Moellmann <gerd@gnu.org>
2197 * Makefile.in (mostlyclean): Add `*.core'.
2198 (clean): Add `bootstrap-emacs'.
2200 * lread.c (read_integer): New function.
2201 (read1): Support read syntax #o, #x, #b, #r.
2203 2000-03-15 Stefan Monnier <monnier@cs.yale.edu>
2205 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
2206 make sure POINTER_TO_OFFSET gives the same value before and after
2207 PREFETCH. Use `dfail' to guarantee "atomic" matching.
2208 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
2209 (debug): Now only active if > 0 rather than if != 0.
2210 (DEBUG_*): Update for the new meaning of `debug'.
2211 (print_partial_compiled_pattern): Add missing `succeed' case. Use
2212 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
2213 in `succeed_n', `jump_n' and `set_number_at'.
2214 (store_op1, store_op2, insert_op1, insert_op2)
2215 (at_begline_loc_p, at_endline_loc_p): Add prototype.
2216 (group_in_compile_stack): Move to after its arg's types are
2217 declared and add a prototype.
2218 (PATFETCH): Define in terms of PATFETCH_RAW.
2219 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
2221 (QUIT): Redefine as a nop except for NTemacs.
2222 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
2223 indentation of the greedy-op and shy-group code.
2224 (at_(beg|end)line_loc_p): Fix argument's types.
2225 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
2226 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
2227 (MATCHING_IN_FIRST_STRING): Remove.
2228 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
2229 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
2230 QUIT unconditionally.
2232 2000-03-15 Gerd Moellmann <gerd@gnu.org>
2234 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
2237 * process.c (send_process): Add a hint that the function
2238 can call Lisp code to its comment.
2240 * lread.c (load_dangerous_libraries): New variable.
2241 (Vbytecomp_version_regexp): New variable.
2242 (safe_to_load_p): New function.
2243 (Fload): Handle files not compiled with Emacs specially.
2244 (syms_of_lread): New Lisp variable load-dangerous-libraries.
2246 2000-03-14 Gerd Moellmann <gerd@gnu.org>
2248 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
2250 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
2251 support functions only if HAVE_X11R6_XIM is defined.
2252 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
2254 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
2256 * xfns.c (X_I18N_INHIBITED): Don't define.
2257 (create_frame_xic): Remove conditional compilation on
2259 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
2261 * config.in (HAVE_X_I18N): Moved here from xterm.h.
2262 (HAVE_X11R6_XIM): Define.
2264 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
2266 * xterm.c (x_term_init): Add support for X resource `synchronous'.
2267 If set, call XSynchronize.
2269 2000-03-13 Stefan Monnier <monnier@cs.yale.edu>
2271 * regex.c: Declare a new type `re_char' used throughout the code
2272 for the string char type. It's `const unsigned char' to match the
2273 rest of Emacs. Consistently make sure all pointers to strings use
2274 it and make sure all pointers into the pattern use `unsigned
2276 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
2277 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
2280 * charset.h (GET_CHAR_AFTER_2): Remove.
2281 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
2283 2000-03-12 Ken Raeburn <raeburn@gnu.org>
2285 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
2286 variable before the invocation of YMF_PASS_LDFLAGS, in case both
2287 of them try to use backquotes.
2289 2000-03-12 Dave Love <fx@gnu.org>
2291 * unexelf.c: Restore changes of 1999-10-19.
2292 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
2293 fix its type and alignment; copy it from current process.
2295 2000-03-12 Gerd Moellmann <gerd@gnu.org>
2297 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
2298 has been found. Fix bug not computing timer's predecessor.
2300 * fileio.c (Fread_file_name): Handle case that DIR contains a
2303 * window.c (Fsave_window_excursion): Doc fix.
2305 * xfns.c (x_defined_color): Rewritten to use
2306 x_allocate_nearest_color.
2308 2000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
2310 * msdos.c (vga_installed): New function, code moved from
2311 dos_set_window_size.
2312 (Qbar, Qcursor_type, outside_cursor): New variables.
2313 (syms_of_msdos): Intern and staticpro them.
2314 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
2315 shape used outside Emacs when called for the first time.
2316 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
2317 cursor shape used outside Emacs.
2318 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
2319 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
2321 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
2322 parameters specify the cursor. Make qreverse a global
2323 variable (renamed to Qreverse).
2325 2000-03-09 Gerd Moellmann <gerd@gnu.org>
2327 * fns.c (Fy_or_n_p): Cancel busy-cursor.
2329 2000-03-08 Stefan Monnier <monnier@cs.yale.edu>
2331 This is a big redesign of failure-stack and register handling, prompted
2332 by bugs revealed when trying to add shy-groups. Overall, what happened
2333 is that loops are now structured a little differently, groups can be
2334 shy and the code is a little simpler.
2336 * regex.h: Update the copyright.
2337 (RE_SHY_GROUPS): New value.
2338 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
2339 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
2341 * regex.c (enum re_opcode_t): Remove jump_past_alt,
2342 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
2343 on_failure_jump_(exclusive, loop and smart). Also fix the comment
2344 for (start|stop)_memory since they now only take one argument (the
2345 second has becomes unnecessary).
2346 (print_partial_compiled_pattern): Adjust for changes in
2348 (print_compiled_pattern): Use %ld to printf long ints and flush to
2349 make debugging a little easier.
2350 (union fail_stack_elt): Make the integer unsigned.
2351 (struct fail_stack_type): Add a `frame' element.
2352 (INIT_FAIL_STACK): Init `frame' as well.
2353 (POP_PATTERN_OP): New macro for re_compile_fastmap.
2354 (DEBUG_PUSH, DEBUG_POP): Remove.
2355 (NUM_REG_ITEMS): Remove.
2356 (NUM_NONREG_ITEMS): Adjust.
2357 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
2358 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
2359 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
2360 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
2362 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
2363 address pushed is not the destination of the jump but the source
2365 (NUM_FAILURE_ITEMS): Remove.
2366 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
2367 registers before the actual failure point). Don't hardcode any
2368 meaning for str==NULL anymore.
2369 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
2370 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
2372 (REG_UNSET_VALUE): Use NULL (why not?).
2373 (compile_range): Remove declaration since it doesn't exist.
2374 (struct compile_stack_elt_t): Remove inner_group_offset.
2375 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
2376 (regex_grow_registers): Remove dead code.
2377 (FIXUP_ALT_JUMP): New macro.
2378 (regex_compile): Add shy-groups Change loops to use
2379 on_failure_jump_smart&jump instead of
2380 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
2381 initial (dummy_failure_)jump. Remove c1_base (looks like unused
2382 variable to me). Use `jump' instead of `jump_past_alt' and don't
2383 bother with push_dummy_failure in alternatives since it is now
2384 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
2385 emacs' for (re)allocating the stack.
2386 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
2387 from loop when bufp->can_be_null rather than jumping to `done'.
2388 Avoid jumping backwards so as to ensure termination. Use
2389 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
2390 backreferences. Remove dead code in handling of `anychar'.
2391 (skip_noops, mutually_exclusive_p): New functions taken from the
2392 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
2393 improve mutually_exclusive_p to handle ".+\n".
2394 (lowest_active_reg, highest_active_reg,
2395 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
2396 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
2397 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
2398 variables. Push register (in `start_memory') on the stack rather
2399 than storing it in old_reg(start|end). Remove the cycle detection
2400 from `stop_memory', replaced by the use of on_failure_jump_loop
2401 for greedy loops. Add code for the new on_failure_jump_<foo>.
2402 Remove ad-hoc code in `on_failure_jump' to push more registers in
2403 the case of a loop. Take out code from `maybe_pop_jump' into
2404 separate functions and adapt it to the semantics of
2405 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
2406 and push_dummy_failure. Remove dummy_failure handling and
2407 handling of `failures to jump to on_failure_jump' (this last one
2408 was already dead code, it seems).
2409 (group_match_null_string_p, alt_match_null_string_p)
2410 (common_op_match_null_string_p): Remove.
2412 2000-03-08 Dave Love <fx@gnu.org>
2414 * config.in: Don't depend on __STDC__ for volatile.
2415 Add POINTER_TYPE, PTR, PROTOTYPES.
2417 * hftctl.c, strftime.c: Use PROTOTYPES.
2418 * eval.c (find_handler_clause): Likewise.
2420 * mem-limits.h: Use POINTER_TYPE.
2422 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
2423 (memory_warnings): Declare using POINTER_TYPE.
2425 2000-03-08 Gerd Moellmann <gerd@gnu.org>
2427 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
2429 * xdisp.c (display_echo_area): Temporarily inhibit garbage
2432 * xfns.c: Remove obsolete code in #if 0.
2433 (Fx_focus_frame): New function.
2435 2000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
2437 * coding.c (coding_category_name): Add coding-category-utf-8,
2438 coding-category-utf-16-be, coding-category-utf-16-le.
2439 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
2440 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
2441 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
2442 (detect_coding_utf_8): New function.
2443 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
2444 UTF_16_LOW_SURROGATE_P): New macros.
2445 (detect_coding_utf_16): New function
2446 (detect_coding_mask): When priorities are specified, skip any
2447 categories that have `nil' coding-system. Fix bug of returning
2448 wrong mask when PRIORITIES is specified and detect_coding_XXX()
2449 returns a mask not set in PRIORITIES.
2450 (detect_eol_type_in_2_octet_form): New function.
2451 (detect_eol): selects detect_eol_type_XXX to call according to
2452 cooding->category_idx.
2453 (detect_coding_system): Remove `nil' coding-system in the result.
2454 (Fupdate_coding_systems_internal): Update all coding-categories.
2456 * coding.h (CODING_CATEGORY_IDX_UTF_8,
2457 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
2459 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
2460 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
2461 CODING_CATEGORY_IDX_UTF_16_LE.
2462 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
2463 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
2464 (CODING_CATEGORY_MASK_ANY): Include the above macros.
2465 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
2467 2000-03-07 Gerd Moellmann <gerd@gnu.org>
2469 * doc.c (Fdocumentation_property): If value is not a string,
2470 and doesn't refer to etc/DOC, evaluate it to obtain a string.
2472 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
2473 close the display with XtCloseDisplay. This caused a bus error
2476 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
2477 complete but not unique.
2479 2000-03-06 Gerd Moellmann <gerd@gnu.org>
2481 * process.c (send_process): Remove local variable `procname' that
2482 might become invalid when a GC happens. Instead, access the
2483 process name slot directly.
2485 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
2488 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
2491 2000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
2493 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
2494 glyph matrices have been freed.
2496 2000-03-05 Gerd Moellmann <gerd@gnu.org>
2498 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
2499 (bootstrap-temacs): Set LC_ALL to C like for temacs.
2501 * xfns.c (QCdata): Moved to xdisp.c.
2503 * xdisp.c (QCdata): Moved here from xfns.c.
2504 (syms_of_xdisp): Initialize QCdata.
2506 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
2508 * window.c (coordinates_in_window): Use
2509 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
2510 FRAME_INTERNAL_BORDER_WIDTH.
2512 * xdisp.c (try_window_id): Recompute unchanged information if
2513 it is obviously invalid.
2515 * xterm.c (x_term_init): Create a colormap if not using the
2518 * xterm.h (select_visual): Change prototype.
2520 * xfns.c (select_visual): Rewritten. Recognize user-specified
2522 (visual_classes): New variable.
2524 2000-03-04 Gerd Moellmann <gerd@gnu.org>
2526 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
2527 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
2528 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
2529 (x_decode_color): Don't handle allocation of white and black
2531 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
2532 XtNcolormap resources.
2533 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
2534 (Fx_create_frame): Initialize color members of x_output structure.
2535 (xpm_load): Pass colormap to XPM lib.
2537 * xfaces.c (x_free_colors): Access colormap of frame using
2538 FRAME_X_COLORMAP. Be paranoid about freeing black and white
2539 when default colormap is used.
2541 * xterm.c (x_term_init): Set Colormap member of x_display_info
2542 structure. Copy colormap if resource `privateColormap' is
2543 specified (PseudoColor only).
2544 (x_setup_relief_color): Access colormap of frame using
2547 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
2548 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
2550 2000-03-04 Jason Rumney <jasonr@gnu.org>
2552 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
2553 other non-platform-specific equivalents.
2554 [WINDOWSNT]: Include w32term.h, fontset.h and define X
2555 specific functions and macros as their w32 equivalents where
2556 non-platform-specifics are not available.
2557 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
2558 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
2559 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
2560 (frame_update_line_height): Use macros to access f->output_data.
2561 (defined_color): Remove FIXME comments; fixed.
2562 (x_face_list_fonts, prepare_face_for_display): Put X specifics
2563 into #ifdef blocks. Add WINDOWSNT blocks.
2564 (Fx_list_fonts): Use macros for accessing font data.
2565 (set_lface_from_font_name): Different default fonts for X and
2567 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
2568 scalable for backward compatibility.
2569 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
2570 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
2572 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
2575 * makefile.nt (w32faces.obj): Remove.
2578 2000-03-03 Jason Rumney <jasonr@gnu.org>
2580 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
2583 2000-03-03 Ken Raeburn <raeburn@gnu.org>
2585 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
2586 standard ELF definitions here if the system header does not.
2588 2000-03-03 Gerd Moellmann <gerd@gnu.org>
2590 * xterm.c (PER_CHAR_METRIC): Removed.
2591 (x_per_char_metric_1, x_default_char): New functions.
2592 (x_per_char_metric): If font's default char is invalid, return
2593 metrics of a suitably chosen usable default char.
2594 (x_draw_glyph_string_foreground): If font has an invalid default
2595 char, replace occurrences of unprintable chars with a suitably
2596 chosen usable default char.
2598 2000-03-02 Gerd Moellmann <gerd@gnu.org>
2600 * xterm.c (note_mouse_highlight): Return quickly if frame's
2601 glyph matrices have been freed.
2603 * dispnew.c (free_glyphs): Block input while freeing matrices.
2605 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
2607 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
2610 * dispextern.h (x_free_colors): Add prototype.
2612 * xfaces.c (x_free_colors): New function.
2613 (unload_color, free_face_colors): Use it.
2615 2000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
2617 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
2619 * window.c [MSDOS]: Include msdos.h.
2621 2000-03-02 Dave Love <fx@gnu.org>
2623 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
2625 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
2626 set C_OPTIMIZE_SWITCH for gcc.
2628 2000-03-02 Kenichi Handa <handa@etl.go.jp>
2630 * coding.c (coding_save_composition): Be sure to allocate
2631 composition data area in coding even if there's no composition in
2634 2000-03-01 Jason Rumney <jasonr@gnu.org>
2636 * w32term.c: Equivalent changes to those made to xterm.c on
2637 2000-02-25 and 2000-02-24.
2639 * w32fns.c: Equivalent changes to those made to xfns.c on
2640 2000-02-25 and 2000-02-21.
2642 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
2643 correct line-end convention is followed.
2645 * w32menu.c [HAVE_BOXES]: Remove #undef.
2646 (single_keymap_panes): Remove code for simulating checkmarks.
2647 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
2648 Remove code for drawing simulated checkmarks.
2649 (w32_menu_show): make unibyte help string correctly.
2650 (add_menu_item): draw standard Windows checkmarks. Draw radio
2651 buttons as radio buttons if possible.
2653 2000-03-01 Gerd Moellmann <gerd@gnu.org>
2655 * sysdep.c (start_of_text): Don't define this function for NetBSD
2658 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2660 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
2661 (LINKER): Don't undef if __NetBSD__ is defined.
2663 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
2665 * fileio.c [__NetBSD__]: Define `unix'.
2667 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
2669 2000-02-29 Gerd Moellmann <gerd@gnu.org>
2671 * atimer.c (start_atimer): Don't abort when timers are stopped.
2672 (append_atimer_lists): New function.
2673 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
2674 arbitrary lists of stopped and running atimers.
2676 * atimer.c (cancel_atimer): Handle canceling an atimer when
2677 some timers are stopped.
2679 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
2682 * fns.c (maybe_resize_hash_table): Handle case of new size
2683 coming out as being the same as old size.
2685 2000-02-27 Jason Rumney <jasonr@gnu.org>
2687 * makefile.nt: Add atimer.h to dependencies.
2688 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
2689 * w32console.c: Only disable window system features for dispextern.h
2690 (initialize_w32_display): Build a display info for the console.
2691 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
2692 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
2693 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
2695 * w32gui.h (struct W32FontStruct): Revert last change after change
2697 * w32menu.c (single_submenu): Set up help string.
2698 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
2699 (w32_dialog_show): Set up help string.
2700 * w32term.c (w32_display_info_for_display): Remove unused function.
2701 (w32_draw_bitmap): Use pre-built bitmaps.
2702 (w32_initialize_display_info): New function to initialize parts of
2703 display info that are common to both GUI and console frames.
2704 (w32_term_init): Use w32_initialize_display_info. Do not set
2705 Vw32_num_mouse_buttons here, as it is not called for console
2706 frames. Build bitmaps for indicating truncated lines etc.
2707 (x_delete_display): Destroy pre-built bitmaps.
2708 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
2709 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
2711 2000-02-27 Dave Love <fx@gnu.org>
2713 * lisp.h: Add a bunch of prototypes.
2715 2000-02-26 Kenichi Handa <handa@etl.go.jp>
2717 * keyboard.c (read_char): Set `usec' correctly.
2719 2000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
2721 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
2722 `lambda', set reg[RRR] to the map index.
2723 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
2724 reg[RRR] to 0. Otherwise, set it to -1.
2726 2000-02-25 Gerd Moellmann <gerd@gnu.org>
2728 * emacs.c (main): Remove code snippet commented out with `//'.
2730 2000-02-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2732 * fileio.c (Ffile_symlink_p): If result starts with a `/'
2733 and contains a `:', prepend `/:'.
2735 * window.c (select_window_1): If selected_window is nil,
2736 don't "swap out" the buffer's point.
2737 (Fset_window_configuration): Set selected_window to nil
2738 before calling Fselect_window.
2739 (unshow_buffer): Don't set point in buffer from window's point
2740 if another more recently selected window also shows the buffer.
2742 2000-02-25 Gerd Moellmann <gerd@gnu.org>
2744 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
2746 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
2747 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
2748 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
2750 (DEFAULT_BUSY_CURSOR_DELAY): New define.
2751 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
2752 (hide_busy_cursor): New functions.
2753 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
2755 * minibuf.c (read_minibuf): Cancel busy-cursor.
2757 * keyboard.c (command_loop_1): Call start_busy_cursor before
2758 Fcommand_execute and cancel_busy_cursor after it.
2759 (timer_check): Remove busy-cursor code.
2760 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
2763 * process.c (wait_reading_process_input): Remove busy-cursor code.
2765 * eval.c (Fsignal): Call cancel_busy_cursor instead of
2766 Fx_hide_busy_cursor.
2768 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
2770 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
2772 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
2774 * xterm.c (XTread_socket): Remove busy-cursor code.
2776 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
2777 (build_frame_matrix_from_leaf_window): Put code handling
2778 glyph row's not being a slice of a frame row in #if 0.
2779 (sync_window_with_frame_matrix_rows): New function.
2780 (frame_row_to_window): New function.
2781 (mirror_line_dance): Handle copies between windows.
2783 * lread.c (Fload): Use `xfree' instead of `free'.
2784 (init_obarray): Use `xmalloc' instead of `malloc'.
2786 * window.c (Fset_window_buffer): Set WINDOW to the window
2788 (coordinates_in_window): Take frame's internal border width
2791 2000-02-24 Gerd Moellmann <gerd@gnu.org>
2793 * xterm.c (x_display_and_set_cursor): Display cursor of
2794 non-selected windows depending on the setting of
2795 cursor_in_non_selected_windows.
2797 * xdisp.c (cursor_in_non_selected_windows): New variable.
2798 (syms_of_xdisp): DEFVAR_BOOL it.
2800 2000-02-23 Gerd Moellmann <gerd@gnu.org>
2802 * data.c (Fstring_to_number): If number is greater than what
2803 fits into an integer, return a float.
2805 * eval.c (specbind): Remove references to
2806 keyword_symbols_constant_flag.
2808 * data.c (keyword_symbols_constant_flag): Removed.
2809 (Fmakunbound, set_internal, syms_of_data): Remove references to
2810 keyword_symbols_constant_flag.
2812 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
2814 2000-02-23 Kenichi Handa <handa@etl.go.jp>
2816 * syntax.c (multibyte_syntax_as_symbol): New variable.
2817 (syms_of_syntax): Declare it as a Lisp variable.
2818 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
2819 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
2820 nonzero, treat all multibyte characters as symbol.
2821 (init_syntax_once): Give syntax `word' to all multibyte
2824 2000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
2826 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
2829 2000-02-21 Gerd Moellmann <gerd@gnu.org>
2831 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
2833 * xfns.c (x_window_to_frame, x_any_window_to_frame)
2834 (x_non_menubar_window_to_frame): Check the busy-cursor window.
2836 2000-02-21 Dave Love <fx@gnu.org>
2838 * frame.c (Vmouse_position_function): New variable.
2839 (Fmouse_position): Use it.
2840 (syms_of_frame): Install it.
2842 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
2844 2000-02-20 Gerd Moellmann <gerd@gnu.org>
2846 * fileio.c (Finsert_file_contents): Unbind the binding of
2847 standard-output done by temp_output_buffer_setup.
2849 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
2850 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
2851 (specbind, unbind_to): Handle most common case of non-constant
2852 symbol with trivial value specially.
2854 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
2856 2000-02-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2858 * data.c (Fmake_variable_buffer_local): Doc fix.
2859 Init found_for_buffer to 0.
2860 (Fmake_variable_frame_local): If the variable has already
2861 been buffer-local, set the check_frame field.
2863 2000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
2865 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
2866 produced for CODING_MODE_LAST_BLOCK requires.
2868 2000-02-18 Dave Love <fx@gnu.org>
2870 * keyboard.c (echo_keystrokes): Remove declaration.
2871 (Vecho_keystrokes) New variable.
2872 (read_char, record_menu_key, read_key_sequence): Use it to allow
2874 (syms_of_keyboard): Change Vecho_keystrokes declaration.
2876 * lread.c: Undef feature selection macros before defining.
2878 2000-02-18 Gerd Moellmann <gerd@gnu.org>
2880 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
2881 for symbols other than the symbol in question.
2883 2000-02-17 Dave Love <fx@gnu.org>
2885 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
2887 2000-02-17 Gerd Moellmann <gerd@gnu.org>
2889 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
2891 * alloc.c (enum mem_type): Compile unconditionally.
2893 2000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
2895 * xfaces.c (tty_defined_color): Don't return faulire indication
2896 for unspecified-fg and unspecified-bg pseudo-colors.
2898 2000-02-17 Gerd Moellmann <gerd@gnu.org>
2900 * alloc.c (mark_object): Don't mark symbol names in pure space.
2901 (gc_sweep): Don't unmark symbol names in pure space.
2903 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
2904 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
2905 [GC_MARK_STACK]: New defines.
2906 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
2907 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
2909 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
2911 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
2912 allocate_buffer instead of xmalloc.
2914 * alloc.c (toplevel): Include setjmp.h.
2915 (PURE_POINTER_P): New define.
2916 (enum mem_type) [GC_MARK_STACK]: New enumeration.
2917 (Vdead) [GC_MARK_STACK]: New variable.
2918 (lisp_malloc): Add parameter TYPE, call mem_insert if
2919 GC_MARK_STACK is defined.
2920 (allocate_buffer): New function.
2921 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
2922 (free_float) [GC_MARK_STACK]: Set type to Vdead.
2923 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
2924 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
2925 (MEM_NIL) [GC_MARK_STACK]: New define.
2926 (struct mem_node) [GC_MARK_STACK]: New structure.
2927 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
2928 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
2929 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
2930 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
2931 (mark_stack) [GC_MARK_STACK]: New functions.
2932 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
2933 (clear_marks): Removed.
2934 (gc_sweep): Set free conses' car, free floats' type, free
2935 symbols' function to Vdead. Use lisp_free to free buffers.
2936 (init_alloc_once): Initialize Vdead.
2937 (survives_gc_p): Return non-zero for pure objects.
2939 * alloc.c: Add comments throughout the file.
2941 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
2942 that unblocks alarms.
2944 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
2945 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
2946 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
2948 * frame.c (make_frame): Set frame initiallly to `garbaged'.
2950 2000-02-17 Kenichi Handa <handa@etl.go.jp>
2952 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
2953 avoid infinite error signaling. Allocate sufficient memory for
2954 eol_str in the case that eoltype is Lisp_Int.
2956 2000-02-17 Stefan Monnier <monnier@cs.yale.edu>
2958 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
2959 depends on the previous behavior.
2961 2000-02-16 Gerd Moellmann <gerd@gnu.org>
2963 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
2965 2000-02-15 Gerd Moellmann <gerd@gnu.org>
2967 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
2969 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
2970 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
2973 2000-02-15 Richard M. Stallman <rms@gnu.org>
2975 * data.c (set_internal): Don't make variable buffer-local
2976 if within a let-binding for the same buffer.
2977 (let_shadows_buffer_binding_p): New function.
2979 * eval.c (specbind): For buffer-local value,
2980 record the current buffer also.
2981 (unbind_to): Cope with that change.
2983 2000-02-15 Gerd Moellmann <gerd@gnu.org>
2985 * window.c (Fsave_window_excursion): Doc fix.
2987 2000-02-15 Stefan Monnier <monnier@cs.yale.edu>
2989 * syntax.c (back_comment): Make sure we only consider comment-starters
2990 of the relevant style and return -1 in case of a failure to find the
2991 beginning of the comment.
2992 (Fforward_comment): If back_comment fails, go back to the position just
2993 after the comment-end.
2994 (scan_lists): Add comment describing a very minor bug.
2996 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
2998 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
2999 `completion-regexp-list' in the docstring.
3001 2000-02-14 Dave Love <fx@gnu.org>
3003 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
3005 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3007 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
3008 to Emacs' syntax. Also fix the comment about set/not-set meanings
3009 since Emacs syntax is not the value 0 any more.
3010 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
3011 since it's now part of RE_SYNTAX_EMACS.
3013 2000-02-12 Dave Love <fx@gnu.org>
3015 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
3018 2000-02-12 Gerd Moellmann <gerd@gnu.org>
3020 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
3022 2000-02-12 Dave Love <fx@gnu.org>
3024 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
3026 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
3027 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
3028 * s/hpux.h: Don't define HAVE_VFORK.
3030 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
3032 * s/nextstep.h: Don't define HAVE_ALLOCA.
3034 * config.in: Add vfork bits.
3036 2000-02-12 Gerd Moellmann <gerd@gnu.org>
3038 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
3039 unwind function to undo the effect of stopping atimers.
3041 * keyboard.c (bind_polling_period): Stop all timers except
3044 * atimer.c (stopped_atimers): New variable.
3045 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
3048 * atimer.h (stop_other_atimers, run_all_atimers)
3049 (unwind_stop_other_atimers): Add function prototypes.
3051 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
3053 2000-02-11 Ken Raeburn <raeburn@gnu.org>
3055 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
3056 library may depend on jpeg.
3057 (atimer.o): Depends on atimer.c.
3059 2000-02-11 Kenichi Handa <handa@etl.go.jp>
3061 * insdel.c (del_range_1): Call update_compositions.
3062 (del_range_both): Call update_compositions just once..
3064 2000-02-10 Dave Love <fx@gnu.org>
3066 * xfns.c (create_frame_xic): Fix initialization of automatic
3069 2000-02-09 Kenichi Handa <handa@etl.go.jp>
3071 * ccl.c (CCL_MAKE_CHAR): New macro.
3072 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
3073 registers by CCL_MAKE_CHAR before calling translate_char.
3074 <CCL_TranslateCharacterConstTbl> Likewise.
3076 2000-02-08 Dave Love <fx@gnu.org>
3078 * lread.c (__EXTENSIONS__): Define.
3080 2000-02-08 Gerd Moellmann <gerd@gnu.org>
3082 * puresize.h (BASE_PURESIZE): Increase to 650000.
3084 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3086 * msdos.c (XMenuActivate): Turn off the cursor after displaying
3089 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3091 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
3092 md, mh, mb, mr, and me to the fake termcap entry.
3094 2000-02-06 Ken Raeburn <raeburn@gnu.org>
3096 * sound.c (sound_cleanup): Don't call device close routine if the
3097 function pointer is null.
3099 2000-02-06 Andrew Innes <andrewi@gnu.org>
3101 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
3102 around image definitions and prototypes.
3103 (gamma_correct) [WINDOWSNT]: New prototype.
3105 * w32term.c (x_make_frame_visible): Replace call to
3106 input_poll_signal with poll_for_input.
3108 * window.c [WINDOWSNT]: Include w32term.h.
3110 * xdisp.c [WINDOWSNT]: Include w32term.h.
3112 * makefile.nt: Add dependencies on w32gui.h.
3113 (OBJ1): Include atimer.obj.
3114 ($(BLD)\atimer.obj): New dependency rule.
3116 * w32.c (sigmask): New function (does nothing).
3117 (sigunblock): Ditto.
3119 * frame.c [WINDOWSNT]: Include w32term.h.
3121 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
3123 * lread.c (syms_of_lread): Fix literal newlines.
3125 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
3126 the string constant limit (2048 bytes) in MSVC.
3129 2000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
3131 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
3133 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
3134 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
3137 2000-02-04 Dave Love <fx@gnu.org>
3139 * fileio.c: Remove some unused vars.
3140 (_GNU_SOURCE): Define (for euidaccess).
3142 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
3144 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
3146 (read_minibuf): Deal with allow_props correctly.
3148 2000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
3150 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
3152 2000-02-03 Ken Raeburn <raeburn@gnu.org>
3154 * search.c (compile_pattern): If a cache entry has a nil regexp,
3155 fill in that entry instead of clobbering a previously cached
3158 2000-02-02 Ken Raeburn <raeburn@gnu.org>
3160 * puresize.h (BASE_PURESIZE): Increase to 610000.
3162 2000-02-02 Gerd Moellmann <gerd@gnu.org>
3164 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
3167 2000-02-02 Kenichi Handa <handa@etl.go.jp>
3169 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
3170 instead of incrementing ic directly.
3171 <CCL_WriteExprConst> Likewise.
3172 <ccl_set_expr>: Set ic to jump_address.
3174 * fileio.c (e_write): Fix the handling of
3175 CODING_FINISH_INSUFFICIENT_SRC.
3177 2000-02-01 Dave Love <fx@gnu.org>
3179 * editfns.c (Fpropertize): Doc fix.
3181 * process.c (Fstart_process): Doc fix.
3183 * eval.c: Fix various doc strings not to duplicate information
3184 from help-manyarg-func-alist.
3186 * window.c (Fset_window_margins): Don't make interactive. Doc
3189 * doc.c (Vhelp_manyarg_func_alist): New variable.
3190 (Fdocumentation): Use it.
3191 (syms_of_doc): Define it.
3193 2000-01-31 Gerd Moellmann <gerd@gnu.org>
3195 * xterm.c (xim_open_dpy): Remove unused local variable.
3197 * emacs.c (USAGE): Use term `display options' instead of `X
3200 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
3201 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
3203 * fns.c (sweep_weak_table): New function.
3204 (sweep_weak_hash_tables): Use it. Keep on marking until there
3207 2000-01-30 Gerd Moellmann <gerd@gnu.org>
3209 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
3210 that XTread_socket does not crash by trying to call XNoOp on a
3213 2000-01-30 Jason Rumney <jasonr@gnu.org>
3215 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3216 Change selected_frame to SELECTED_FRAME ().
3217 (w32_console_mouse_position): Remove #ifndef MULE from around
3220 * makefile.nt: Remove dosfns.obj.
3222 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
3224 * w32fns.c (w32_defined_color): Check for valid frame before
3225 applying gamma correction. Eliminate dependency on frame elsewhere.
3226 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
3227 (w32_to_x_font): Use resx and resy not height_in and width_in.
3228 (x_to_w32_font): Doc fix.
3229 (xlfd_strip_height): New function to strip and return font height.
3230 (w32_font_match): Compare height separately from rest of xlfd
3231 spec, using xlfd_strip_height.
3233 * w32term.c (w32_term_init): Swap resx and height_in, resy and
3234 width_in. Use w32_defined_color in place of defined_color.
3236 * w32faces.c: Merge more of DOS and X specifics in preparation for
3237 merge with xfaces.c.
3238 (defined_color): Remove FIXME comment.
3239 (tty_color_name): Provide w32-specific function.
3240 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
3242 * w32console.c (turn_on_face, turn_off_face): Removed.
3243 (w32_face_attributes): New function.
3244 (Global_variables): Reduce scope where possible.
3245 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
3247 (hl_mode): Don't modify text attributes.
3248 (write_glyphs): Don't do anything if len <= 0. Use
3249 w32_face_attributes to get attributes for drawing. Write
3250 terminating codes using char_attr_normal.
3251 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
3252 (update_begin, update_end): Likewise.
3253 (vga_stdcolor_name): New function.
3254 (initialize_w32_display): Remove char_attr_reverse and char_attr.
3255 (Fset_screen_color): Remove char_attr_reverse.
3257 2000-01-29 Gerd Moellmann <gerd@gnu.org>
3259 * xfns.c (xic_set_preeditarea): Take window parameter and
3260 window-relative pixel-positions.
3262 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
3263 is its frame's selected window.
3264 (xim_instantiate_callback): Likewise.
3266 * xfns.c (x_create_im): Removed.
3267 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
3268 (supported_xim_styles): Renamed from supported_styles.
3269 (best_xim_style): Renamed from best_style.
3270 (create_frame_xic): Renamed from xic_create_frame.
3271 (free_frame_xic): Renamed from xic_destroy_frame.
3273 2000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
3275 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
3276 our frames, call XFilterEvent with 2nd parameter `None'.
3277 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
3278 returning XBufferOverflow.
3279 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
3281 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
3282 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
3283 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
3284 (xim_initialize, xim_close)
3285 [HAVE_X_I18N && HAVE_X11R6]: New functions.
3286 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
3287 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
3288 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
3290 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
3292 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
3293 `xic_style' and `xic_xfs'.
3294 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
3295 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
3296 (FRAME_XIM): Removed.
3298 * xfns.c (supported_styles): New variable.
3299 (DEFAULT_STYLE, DEFAULT_FONT): New macros
3300 (xic_create_xfontset, best_style, xic_create_frame)
3301 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
3302 (xic_set_xfontset): New functions.
3304 2000-01-28 Dave Love <fx@gnu.org>
3306 * s/irix6-5.h: Revert last change after change to irix5-0.h.
3308 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
3310 2000-01-28 Gerd Moellmann <gerd@gnu.org>
3312 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
3313 for *scratch* if it already existed.
3315 * emacs.c (USAGE): New macro.
3316 (main): Use it to display usage information.
3318 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3320 Support for the menu-help feature:
3322 * msdos.h: Change prototypes of XMenuAddSelection and
3325 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
3326 part of the line to the termscript file.
3327 (IT_clear_to_end): Clear the entire line, not just its beginning.
3328 (menu_help_message, prev_menu_help_message): New variables.
3329 (IT_menu_make_room): Make room for the help_text member.
3330 (IT_menu_display): New argument disp_help; all callers changed.
3331 If disp_help is non-zero, store the help text of the active menu
3332 item in menu_help_message.
3333 (XMenuAddPane): Initialize the help_text member to NULL.
3334 (XMenuAddSelection): New argument help_text. Store it in the
3336 (XMenuActivate): New argument help_callback. If the value of
3337 menu_help_message has changed since the last time, display the
3338 menu help message text while waiting for the mouse to move. Clear
3339 the echo area before exiting.
3340 (XMenuDestroy): Free the help_text member.
3342 2000-01-27 Gerd Moellmann <gerd@gnu.org>
3344 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
3345 XMenuAddSelection. Pass help callback to XMenuActivate.
3346 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
3348 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3350 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
3351 and EMACS_SET_USECS.
3353 2000-01-26 Dave Love <fx@gnu.org>
3355 * editfns.c (Fchar_after, Fchar_before): Doc fix.
3357 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
3358 an error may be signalled.
3360 2000-01-26 Gerd Moellmann <gerd@gnu.org>
3362 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
3363 LD_SWITCH_SYSTEM inherited from irix5-0.h.
3365 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
3367 2000-01-25 Gerd Moellmann <gerd@gnu.org>
3369 * charset.c (Fstring): If there is a multibyte char among
3370 the args, always return a multibyte string.
3372 2000-01-25 Gerd Moellmann <gerd@gnu.org>
3374 * sysdep.c (sys_select): Turn atimers off and on instead of
3375 recording and restoring old alarm handler
3377 * process.c (toplevel): Include atimer.h.
3378 (create_process_1): Rewritten.
3379 (create_process): Use atimers instead of alarm.
3380 (wait_reading_process_input) [hpux]: Turn atimers off instead
3381 of turning off SIGALRM.
3382 (wait_reading_process_input): Turn off atimers instead off
3383 calling stop_polling.
3385 * emacs.c (main): Call init_atimer.
3387 * keyboard.c (toplevel): Include systime.h and atimer.h.
3388 (polling_for_input): Removed because unused.
3389 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
3390 (poll_timer): New variable.
3391 (poll_for_input, poll_for_input_1): New functions.
3392 (start_polling, stop_polling): Rewritten.
3394 * keyboard.h (polling_for_input): Removed.
3396 * atimer.h, atimer.c: New files.
3398 * Makefile.in (obj): Add atimer.o.
3399 (atimer.o): New target.
3401 * blockinput.h (pending_atimers): Add extern declaration.
3402 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
3404 * lisp.h (popup_activated_flag): Add extern declaration.
3406 * xmenu.c (popup_activated_flag): Make externally visible.
3407 (popup_activate_callback) [USE_MOTIF]: Increment
3408 popup_activated_flag.
3409 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
3411 * xterm.c (toplevel): Include atimer.h.
3412 (toolkit_scroll_bar_interaction): New variable.
3413 (Fxt_process_timeouts): Removed.
3414 (x_process_timeouts): New function.
3415 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
3416 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
3417 (x_make_frame_visible): Call poll_for_input_1 instead of
3418 input_poll_signal. Don't call alarm.
3419 (x_initialize): Install timer calling x_process_timeouts.
3421 2000-01-24 Dave Love <fx@gnu.org>
3423 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
3424 Don't use -cckr -- apparently not now necessary.
3426 2000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
3428 * msdos.c (IT_menu_display): Truncate long menu lines at the right
3431 2000-01-23 Jason Rumney <jasonr@gnu.org>
3433 * w32fns.c (w32_defined_color): Apply gamma correction before
3434 trying to map to the palette.
3435 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
3438 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
3439 here. Callers changed to always pass real device context.
3440 (w32_draw_bitmap): Likewise.
3441 (w32_get_glyph_overhangs): Likewise.
3442 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
3444 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
3445 pfnSetScrollInfo and SetScrollRange.
3446 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
3447 back into MULE characters after decoding them.
3448 (x_get_glyph_face_and_encoding): Likewise.
3449 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
3450 GetCharABCWidthsW fails, since this is defined on Windows 9x.
3451 (x_produce_glyphs): Calculate per char metrics for a character
3452 that we know exists in default font when font_not_found_p is true.
3454 2000-01-22 Jason Rumney <jasonr@gnu.org>
3456 * makefile.nt (intervals.obj, composite.obj): New modules.
3457 (composite.h): Added as dependency where appropriate.
3459 * w32gui.h (XGCValue): New struct for emulating X GCs.
3461 * w32term.h (XCharStruct): New struct for emulating X.
3463 * w32console.c (turn_on_face, turn_off_face): New functions.
3464 (change_line_highlight): New prototype for new redisplay.
3465 (write_glyphs): Support multibyte text. Support faces.
3467 * w32faces.c: Complete rewrite for new redisplay based on new
3470 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
3471 throughout. struct frame * in place of FRAME_PTR.
3472 Skeleton support for images, toolbars, tooltips from xfns.c.
3473 (Fx_create_frame): Use system default for default scroll bar
3475 (w32_get_arg): Renamed from x_get_arg.
3476 (Fx_file_dialog): New function.
3477 (w32_list_fonts): Check cache before asking system.
3478 (Vw32_enable_synthesized_fonts): New variable.
3479 (Vw32_enable_italics): Obsolete, removed.
3481 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3482 Use SELECTED_FRAME macro.
3484 * w32menu.c: Add skeleton support for help strings on menus.
3485 (add_menu_item): Native checkbox and radio support added, but not
3486 yet enabled due to bugs.
3487 (push_menu_item): Add parameters type, selection and help.
3489 Formatting changes to reduce unnecessary diffs with xmenu.c.
3491 * w32select.c (Fw32_set_clipboard_data): Update call to
3492 find_charset_in_str.
3494 * w32term.c: Complete rewrite for new redisplay based on new
3495 xterm.c with necessary sections merged back in from old w32term.c.
3497 2000-01-21 Richard M. Stallman <rms@gnu.org>
3499 * data.c (set_internal): Further fix in same criterion.
3501 2000-01-20 Richard M. Stallman <rms@gnu.org>
3503 * data.c (set_internal): Fix the criteria for whether
3504 to swap out the old cached binding.
3506 2000-01-19 Dave Love <fx@gnu.org>
3508 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
3510 2000-01-18 Kenichi Handa <handa@etl.go.jp>
3512 * regex.c (re_compile_fastmap): While checking a range table for
3513 `charset', skip flag bits for a character class correctly.
3515 2000-01-17 Gerd Moellmann <gerd@gnu.org>
3517 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
3519 * xfns.c (x_window): Call lw_create_widget with new parameter
3522 * widget.c (EmacsFrameSetCharSize): Change size of children first
3523 because of problems with main window geometry management under
3526 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
3528 (MENU_ITEMS_ITEM_HELP): New enumerator.
3529 (push_menu_item): Add parameter HELP. Record help in menu_items.
3530 (single_menu_item, single_submenu, list_of_items): Call
3531 push_menu_item with new parameter.
3532 (single_submenu): Set help string in widget value.
3533 (menu_highlight_callback): New function.
3534 (set_frame_menubar): Call lw_create_widget with new
3536 (xmenu_show, xdialog_show): Ditto.
3538 2000-01-13 Gerd Moellmann <gerd@gnu.org>
3540 * sound.c (Fplay_sound): Improve doc string.
3542 2000-01-11 Richard M. Stallman <rms@gnu.org>
3544 * lisp.h (set_internal): Enter the new arg.
3546 * eval.c (specbind): Record buffer-local variables specially,
3547 indicating which buffer's binding was saved.
3548 (unbind_to): Restore buffer-local variables specially
3549 in the proper buffer.
3551 * data.c (set_internal): New arg BUF.
3553 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
3554 * data.c (Fset): Pass new arg to set_internal.
3555 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
3557 2000-01-11 Gerd Moellmann <gerd@gnu.org>
3559 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
3562 2000-01-11 Richard M. Stallman <rms@gnu.org>
3564 * minibuf.c (Ftry_completion): Doc fix.
3566 2000-01-11 Gerd Moellmann <gerd@gnu.org>
3568 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
3571 2000-01-11 Andreas Schwab <schwab@suse.de>
3573 * coding.c (code_convert_region): Initialize total_skip.
3575 2000-01-08 Dave Love <fx@gnu.org>
3577 * eval.c (Fuser_variable_p): Check customizability too.
3579 2000-01-07 Gerd Moellmann <gerd@gnu.org>
3581 * minibuf.c (Fcompleting_read): Doc fix.
3583 2000-01-05 Gerd Moellmann <gerd@gnu.org>
3585 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
3588 * xfns.c (x_create_im): New function to set IM and IC of a frame.
3589 Check that input style is supported before trying to create an
3591 (x_window): Call x_create_im.
3593 2000-01-04 Gerd Moellmann <gerd@gnu.org>
3595 * xfns.c (current_gif_memory_src): New variable.
3596 (gif_load): Record the address of the current memory source
3597 in current_gif_memory_src.
3598 (gif_read_from_memory): Use current_gif_memory_src.
3600 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
3601 macros statement form.
3603 * sound.c (struct sound): Renamed from struct sound_file.
3604 (struct sound): Add members `data' and `header_size'.
3605 (enum sound_attr): Add SOUND_DATA.
3606 (current_sound, current_sound_device): Variables renamed from
3607 sound_file and sound_device.
3608 (parse_sound): Parse :data.
3609 (parse_sound): Handle sound data in strings.
3610 (find_sound_type): Function renamed from find_sound_file_type.
3611 (wav_init, au_init): Fail if sound's header_size is smaller than
3613 (wav_play, au_play): Play sounds from string data.
3615 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
3617 * lisp.h: Add prototype for allocate_string_data.
3619 * alloc.c (Fgarbage_collect): Return number of live and free
3622 * alloc.c (mark_buffer): Remove code in #if 0.
3624 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
3625 (strings_consed): New variable.
3626 (allocate_string): Set it.
3627 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
3628 (Fmemory_use_counts): Return strings_consed. Use Flist.
3630 * alloc.c: General cleanup in comments etc. Remove conditional
3631 compilation for `standalone'.
3633 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
3635 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
3636 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
3637 (DONT_COPY_FLAG): Removed.
3638 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
3639 (struct sdata, struct sblock): New
3640 (struct string_block): Rewritten.
3641 (STRINGS_IN_STRING_BLOCK): New macro.
3642 (oldest_sblock, current_sblock, total_strings, total_free_strings)
3643 (large_sblocks, string_blocks, string_free_list): New variables.
3644 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
3645 (init_strings): Rewritten.
3646 (allocate_string, allocate_string_data, compact_small_strings)
3647 (free_large_strings, sweep_strings): New functions.
3648 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
3649 (struct string_block_head, current_string_block)
3650 (first_string_block, large_string_blocks, STRING_FULLSIZE)
3651 (STRING_PAD): Removed.
3652 (make_uninit_multibyte_string, make_pure_string): Rewritten.
3653 (Fgarbage_collect): Don't set mark bit in large strings.
3654 (mark_object): Mark strings differently. Mark symbol names
3656 (survives_gc_p): Test marked strings differently.
3657 (gc_sweep): Sweep strings differently, unmark strings in
3659 (compact_strings): Removed.
3661 2000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
3663 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
3664 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
3666 2000-01-04 Kenichi Handa <handa@etl.go.jp>
3668 * fileio.c (Finsert_file_contents): Signal error if visiting file
3669 in a non-empty buffer.
3671 * term.c (encode_terminal_code): Fix the previous change.
3673 2000-01-03 Gerd Moellmann <gerd@gnu.org>
3675 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
3676 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
3678 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
3680 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
3682 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
3683 need to test for MSDOS frames.
3685 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
3687 * dosfns.c (unspecified_colors): Remove.
3688 (msdos_stdcolor_idx): Use global variables unspecified_fg and
3690 (msdos_stdcolor_name): Return strings for unspecified fore- and
3693 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
3694 (syms_of_xfaces): Remove their staticpro's.
3695 (tty_color_name): Return Lisp strings for unspecified fore- and
3697 (Finternal_set_lisp_face_attribute): Remove the special treatment
3698 for Qunspecified_{f,b}g.
3699 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
3702 2000-01-03 Gerd Moellmann <gerd@gnu.org>
3704 * xdisp.c (reseat_at_next_visible_line_start): Position before
3705 newline only if ending up on a newline.
3706 (next_element_from_ellipsis): Return success. Handle case of
3707 displaying no ellipsis. Fix case of ellipsis defined in display
3709 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
3712 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
3714 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
3715 (Fcolor_supported_p): Renamed from face-color-supported-p.
3717 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3719 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
3720 list of colors renamed to tty-defined-color-alist.
3721 (tty_color_name): Pass the frame to tty-color-by-index.
3722 (realize_tty_face): tty-color-alist is now a function which
3723 accepts the frame as argument.
3725 * term.c (Ftty_display_color_p): Accept an optional argument
3728 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3730 * term.c (insert_glyphs): Pass glyph, not &glyph, to
3731 encode_terminal_code.
3733 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3735 * dispnew.c (mode_line_string): Support termcap frames as well.
3737 2000-01-01 Gerd Moellmann <gerd@gnu.org>
3739 * syntax.c (Fforward_word): Undo previous change.
3741 * editfns.c (Fconstrain_to_field): Don't constrain if
3742 inhibit-field-text-motion is non-nil.
3743 (Fline_beginning_position): Undo previous change.
3744 (Fline_end_position): Ditto.
3746 * syntax.c (Fforward_word): Notice field boundaries only if
3747 inhibit-field-text-motion is nil.
3749 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
3751 * editfns.c (Vinhibit_field_text_motion): New variable.
3752 (inhibit-field-text-motion): New DEFVAR_LISP.
3753 (Fline_beginning_position, Fline_end_position): Notice field
3754 boundaries only if inhibit-field-text-motion is nil.
3756 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
3758 (x_build_heuristic_mask): Likewise.
3759 (xbm_load_image_from_file): Change error output.
3760 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
3761 (gif_load, gs_load, x_kill_gs_process): Ditto.
3763 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
3764 color indices when accessing raster pixels.
3765 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
3766 one of :file or :data.
3767 (enum pbm_keyword_index): Add PBM_DATA.
3768 (pbm_format): Add :data.
3769 (pbm_image_p): Allow either :file or :data.
3770 (pbm_read_file): New function.
3771 (pbm_scan_number): Rewritten to read from string.
3772 (pbm_load): Support :data.
3774 1999-12-31 Gerd Moellmann <gerd@gnu.org>
3776 * xfns.c: New image functions adapted to Emacs conventions.
3777 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
3780 1999-12-31 William M. Perry <wmperry@aventail.com>
3782 * xfns.c (jpeg_format): Added the :data keyword
3783 (jpeg_image_p): JPEG is valid with :file _or_ :data
3784 (jpeg_memory_src): Defined new JPEG image source to read from a
3786 (jpeg_load): Pay attention to the :data keyword if specified.
3787 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
3789 (png_format): Added the :data keyword
3790 (png_image_p): PNG is valid with :file _or_ :data
3791 (png_read_from_memory): New PNG read function to read from a
3793 (png_load): Pay attention to the :data keyword if specified. Uses
3794 png_set_read_fn() instead of png_init_io() if specified.
3795 (tiff_format): Added the :data keyword for TIFF images.
3796 (tiff_image_p): TIFF is valid with :file _or_ :data
3797 (tiff_read_from_memory): Defined new TIFF I/O functions to read
3798 from a memory buffer.
3799 (tiff_load): Pay attention to the :data keyword if specified.
3800 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
3801 (gif_format): Added the :data keyword
3802 (gif_image_p): GIF is valid with :file _or_ :data
3803 (gif_read_from_memory): New GIF input function to read from a
3805 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
3806 instead of DGifOpenFileName() if specified.
3808 1999-12-31 Gerd Moellmann <gerd@gnu.org>
3810 * xdisp.c (next_element_from_buffer): Change assertion at the end
3811 because it doesn't hold when there's an overlay string at the end
3812 from which we deliver an image.
3814 1999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
3816 * msdos.c (IT_update_begin): Don't dereference members of struct
3817 window for deleted windows.
3819 1999-12-30 Gerd Moellmann <gerd@gnu.org>
3821 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
3822 a hook, and the hook has a non-nil `no-self-insert' property, let
3823 the return value of the hook specify whether an expansion took
3824 place. If it returns nil, no expansion has been performed.
3826 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
3829 1999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
3831 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
3833 1999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
3835 * dispnew.c (mode_line_string): Support MS-DOS frames.
3837 1999-12-29 Gerd Moellmann <gerd@gnu.org>
3839 * eval.c (syms_of_eval): Initialize debugger_may_continue.
3841 1999-12-29 Kenichi Handa <handa@etl.go.jp>
3843 * process.c (read_process_output): Fix the args CHARPOS and LENINS
3844 to signal_after_change.
3846 1999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
3848 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
3849 dimensions changed, invalidate the mouse highlight info.
3850 (disable_mouse_highlight, help_echo, previous_help_echo): New
3852 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
3853 (fast_find_position, IT_note_mode_line_highlight)
3854 (IT_note_mouse_highlight): New functions.
3855 (IT_update_begin): If the redisplay affects the window where the
3856 mouse highlight is, clear the highlight. If the frame where the
3857 highlight was displayed was killed, invalidate the highlight
3859 (IT_update_end): Reset the highlight flag. Reset the mouse
3860 highlight-defer flag.
3861 (IT_frame_up_to_date): New function, if mouse highlight was
3862 deferred due to GC, do it now.
3863 (internal_terminal_init): Initialize mouse-highlight related
3864 members of the_only_x_display. Assign IT_frame_up_to_date to
3865 frame_up_to_date_hook.
3866 (dos_rawgetc): If the mouse moved, update mouse highlight. If
3867 help_echo changed value, generate a HELP_EVENT event.
3868 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
3870 * msdos.h (struct display_info): New.
3871 (struct x_output): Add the display_info member.
3872 (FRAME_X_DISPLAY_INFO): New macro.
3874 1999-12-28 Gerd Moellmann <gerd@gnu.org>
3876 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
3878 (dump_glyph_row): Adapt to changes in struct glyph.
3880 * buffer.c (modify_overlay): Always compute unchanged info.
3882 1999-12-27 Kenichi Handa <handa@etl.go.jp>
3884 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
3886 1999-12-27 Kenichi Handa <handa@etl.go.jp>
3888 The following changes are to use more bits for face IDs.
3890 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
3891 lowest 8 bits are single byte character code, the bits above are
3893 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
3895 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
3896 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
3898 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
3901 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
3904 * dispextern.h (struct glyph): Make face_id and padding_p the top
3905 level members. Change members in union `u'.
3906 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
3907 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
3908 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
3909 (CHAR_GLYPH_PADDING_P): Likewise.
3910 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
3913 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
3914 for the change of struct glyph.
3915 (line_draw_cost): Adjusted for the change of
3916 GLYPH_FROM_CHAR_GLYPH.
3917 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
3919 * term.c (encode_terminal_code): Adjusted for the change of struct
3920 glyph and GLYPH_FROM_CHAR_GLYPH.
3921 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
3922 change of struct glyph.
3924 * xdisp.c: All codes adjusted for the change of struct glyph.
3926 * xterm.c: All codes adjusted for the change of struct glyph.
3928 1999-12-27 Kenichi Handa <handa@etl.go.jp>
3930 * composite.h (struct composition): Change the order of declaring
3931 members to reduce the byte size of the structure.
3933 1999-12-25 Gerd Moellmann <gerd@gnu.org>
3935 * search.c (looking_at_1): Reset immediate_quit before modifying
3938 1999-12-24 Kenichi Handa <handa@etl.go.jp>
3940 * process.c (read_process_output): Fix the arg FROM to
3941 update_compositions.
3943 1999-12-22 Richard M. Stallman <rms@gnu.org>
3945 * search.c (Freplace_match): For nonliteral replacement in buffer,
3946 construct all the new text first, then insert all at once.
3948 1999-12-22 Dave Love <fx@gnu.org>
3950 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
3952 1999-12-22 Gerd Moellmann <gerd@gnu.org>
3954 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
3955 lead to size changes to after the X window has been created.
3957 * xfaces.c (realize_x_face): Don't use uninitialized local
3958 variable in xassert.
3960 1999-12-22 Kenichi Handa <handa@etl.go.jp>
3962 * xfaces.c (face_color_supported_p): Check by tty_defined_color
3963 only when the frame is not for a window system.
3965 1999-12-22 Gerd Moellmann <gerd@gnu.org>
3967 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
3968 redisplay after changing the multibyteness of a buffer.
3970 * xterm.c (XTread_socket): At the beginning of the loop, pass the
3971 frame's X window to XFilterEvent instead of None because that's
3972 the X window for which the IC was created. This makes dead
3973 accents work when the pointer is not in Emacs' frame.
3974 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
3976 1999-12-20 Dave Love <fx@gnu.org>
3978 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
3980 1999-12-19 Gerd Moellmann <gerd@gnu.org>
3982 * eval.c (debugger_may_continue): New variable.
3983 (syms_of_eval): Add a DEFVAR_BOOL for it.
3984 (call_debugger): Bind it.
3986 1999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
3988 * msdos.c (IT_set_face): Don't swap face colors when highlight or
3989 fp->tty_reverse_p is set, unless the computed colors are identical
3990 to frame colors. Print both original and computed colors to
3992 (IT_write_glyphs): Track the changes in handling of composite
3994 (IT_set_frame_parameters): Don't set frame colors from
3995 unspecified-fg and unspecified-bg pseudo-colors.
3997 1999-12-17 Dave Love <fx@gnu.org>
3999 * data.c (Fkeywordp): New function.
4000 (syms_of_data): Install it.
4002 1999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4004 * xfaces.c (tty_defined_color): Fix last change.
4006 1999-12-15 Gerd Moellmann <gerd@gnu.org>
4008 * xdisp.c (redisplay_window) <optional new window start>: Check
4009 that window start is in [BEGV..ZV].
4011 1999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
4013 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
4014 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
4016 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
4017 (syms_of_xfaces): Initialize and staticpro them.
4018 (tty_defined_color): If the color name is unspecified-fg or
4019 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
4020 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
4021 (tty_color_name): If the color pixel value is either
4022 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
4023 Qunspecified_fg or Qunspecified_bg, respectively.
4024 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
4025 and Qunspecified_bg for foreground and background colors.
4026 (realize_default_face): If the foreground and background colors
4027 are not specified, default to Qunspecified_fg and Qunspecified_bg.
4028 (realize_tty_face): By default, set the face colors to
4029 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
4030 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
4031 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
4032 Reverse the colors if the default colors were reversed.
4034 * dispnew.c (init_display): Initialize the frame pixels of the
4035 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
4036 FACE_TTY_DEFAULT_BG_COLOR.
4038 * term.c (turn_on_face): If the default fore- and background
4039 colors are reversed, enter inverse video mode. Don't send color
4040 escape sequences for unspecified foreground and background colors.
4041 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
4043 * dosfns.c (unspecified_colors): New variable.
4044 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
4045 color names, return FACE_TTY_DEFAULT_FG_COLOR and
4046 FACE_TTY_DEFAULT_BG_COLOR, respectively.
4047 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
4048 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
4049 Qunspecified_bg, respectively.
4051 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
4052 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
4054 1999-12-15 Kenichi Handa <handa@etl.go.jp>
4056 * coding.c (code_convert_region): Fix the secoding arg to
4057 update_compositions.
4059 1999-12-15 Kenichi Handa <handa@etl.go.jp>
4061 The following changes are for the new composition mechanism. We
4062 have deleted `composition' charset and composite characters,
4063 instead introduced a special text property `composition'.
4065 * Makefile.in (INTERVAL_SRC): Include composite.h.
4066 (INTERVAL_OBJ): Include composite.o.
4067 (SOME_MACHINE_OBJECTS): Include composite.o.
4068 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
4069 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
4070 Depend on composite.h.
4071 (doc.o): Depend on charset.h.
4072 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
4073 (composite.o): New target.
4075 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
4077 * callproc.c (Fcall_process): Call code_convert_string to encode
4078 arguments. Use CODING_REQUIRE_DECODING to check if the process
4079 output should be decoded.
4081 * casefiddle.c: Include composite.h.
4082 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
4083 multibyte character. Adjusted for the change of CHAR_STRING.
4084 (casify_region): Likewise. Call update_compositions.
4086 * category.h (CATEGORY_SET): Delete codes for a composite
4089 * category.c (word_boundary_p): Delete codes for a composite
4091 (Fmake_category_table): New function.
4092 (syms_of_category): Defsubr it.
4094 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
4095 (ccl_driver): Delete codes for a composite character.
4097 * charset.h: In this entry, just `Modified' means that codes for a
4098 composite character is deleted.
4099 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
4100 (charset_composition) (MIN_CHAR_COMPOSITION)
4101 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
4102 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
4103 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
4104 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
4105 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
4106 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
4108 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
4109 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
4110 non_ascii_char_to_string.
4111 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
4112 (STRING_CHAR_AND_LENGTH): Likewise.
4113 (FETCH_CHAR_ADVANCE): New macro.
4114 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
4115 (MAX_MULTIBYTE_LENGTH): New macro.
4116 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
4117 (find_charset_in_str): Argument adjusted.
4118 (CHAR_LEN): Modified.
4120 * charset.c: In this entry, just `Modified' means that codes for a
4121 composite character is deleted.
4122 (Qcomposition) (leading_code_composition)
4123 (charset_composition) (min_composite_char) (cmpchar_table)
4124 (cmpchar_table_size) (n_cmpchars): Deleted.
4125 (SPLIT_COMPOSITE_SEQ): Deleted.
4126 (SPLIT_MULTIBYTE_SEQ): Modified.
4127 (char_to_string): Renamed from non_ascii_char_to_string.
4129 (string_to_char): Renamed from string_to_non_ascii_char.
4130 (split_string): Renamed from split_non_ascii_string.
4131 (char_printable_p) (Fsplit_char)
4132 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
4133 (char_bytes) (Fchar_width) (strwidth): Modified.
4134 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
4135 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
4136 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
4137 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
4138 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
4139 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
4140 (Fcmpchar_cmp_count): Deleted.
4141 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
4142 (init_charset_once): Modified.
4143 (syms_of_charset): Modified.
4145 * cmds.c (internal_self_insert): Adjusted for the change of
4148 * coding.h (emacs_code_class_type): Delete the member
4149 EMACS_leading_code_composition.
4150 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
4151 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
4152 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
4153 (COMPOSING_WITH_RULE_P): Macros deleted.
4154 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
4156 (struct composition_data): New structure.
4157 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
4158 (struct coding_system): New members composition_rule_follows,
4159 cmp_data, cmp_data_start, cmp_data_index.
4160 (coding_save_composition) (coding_free_composition_data)
4161 (coding_adjust_composition_offset): Extern them.
4163 * coding.c: Include composite.h.
4164 (DECODE_CHARACTER_ASCII): Don't handle composition here.
4165 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
4166 of multibyte code here.
4167 (DECODE_CHARACTER_DIMENSION2): Likewise.
4168 (detect_coding_emacs_mule): Change the case label from
4169 EMACS_leading_code_composition to 0x80.
4170 (detect_coding_iso2022): Handle new composition sequence.
4171 (DECODE_ISO_CHARACTER): Likewise.
4172 (check_composing_code): Deleted.
4173 (coding_allocate_composition_data): New function.
4174 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
4175 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
4176 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
4177 (decode_coding_iso2022): Handle new composition sequence.
4178 (ENCODE_ISO_CHARACTER): Don't check composition here.
4179 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
4180 (ENCODE_COMPOSITION_NO_RULE_START)
4181 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
4182 (ENCODE_COMPOSITION_END): Handle new composition sequence.
4183 (ENCODE_COMPOSITION_FAKE_START): New macro.
4184 (encode_coding_iso2022): Handle new composition sequence.
4185 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
4186 (encode_coding_sjis_big5): Ignore composition.
4187 (setup_coding_system): Initialize new members of struct
4188 coding_system. Enable composition only when the coding system has
4189 `composition' property t.
4190 (coding_free_composition_data) (coding_adjust_composition_offset)
4191 (coding_save_composition) (coding_restore_composition): New
4193 (code_convert_region): Call coding_save_composition for encoding
4194 and coding_allocate_composition_data for decoding. Don't skip
4195 ASCII characters if we handle composition on encoding. Call
4196 signal_after_change with Check_BORDER.
4197 (code_convert_string): Call coding_save_composition for encoding
4198 and coding_allocate_composition_data for decoding. Don't skip
4199 ASCII characters if we handle composition on encoding.
4200 (code_convert_string1): Set Vlast_coding_system_used after calling
4201 code_convert_string.
4202 (code_convert_string_norecord): Disable composition.
4203 (Fset_terminal_coding_system_internal): Likewise.
4204 (Fset_safe_terminal_coding_system_internal): Likewise.
4205 (Fset_keyboard_coding_system_internal): Likewise.
4206 (init_coding_once): Set emacs_code_class[0x80] to
4209 * composite.h: New file.
4211 * composite.c: New file.
4213 * data.c (Faref): Delete codes for a composite character..
4214 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
4216 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
4217 (struct glyph): Add new sub-structure cmp to the union `u'.
4218 (enum display_element_type): New member IT_COMPOSITION.
4219 (enum prop_idx): New member COMPOSITION_PROP_IDX.
4220 (struct it): New members cmp_id, cmp_len.
4222 * dispnew.c (direct_output_forward_char): Check point moving into
4223 or out of a composition. If so, give up direct method.
4225 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
4227 * editfns.c (Fchar_to_string): Adjusted for the change of
4229 (general_insert_function): Likewise.
4230 (Finsert_char): Likewise.
4231 (Fsubst_char_in_region): Likewise. Call update_compositions.
4232 (Ftranslate_region): Call update_compositions.
4233 (Ftranspose_regions): Call update_compositions.
4235 * emacs.c (main): Call syms_of_composite.
4237 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
4239 (Finsert_file_contents): Set Vlast_coding_system_used before
4240 calling signal_after_change. Call update_compositions if some
4241 texts are inserted..
4242 (Fwrite_region): Adjusted for the change of a_write and e_write.
4243 (a_write): Argument changed. Work based on character position,
4245 (e_write): Argument changed. Handle new way of composition.
4247 * fns.c (Flength): The length of char-table is MAX_CHAR.
4248 (concat): Adjusted for the change of CHAR_STRING.
4249 (Ffillarray): Adjusted for the change of CHAR_STRING.
4250 (Fset_char_table_default): Delete codes for a composite character.
4251 (hash_put): Return hash index.
4253 * fontset.h (struct font_info): New member vertical_centering.
4254 (Vvertical_centering_font_regexp): Extern it.
4256 * fontset.c (Vvertical_centering_font_regexp): New variable.
4257 (syms_of_fontset): Declare it as a Lisp variable and initialize.
4258 Set Vignore_relative_composition to nil.
4259 (fs_load_font): Initialize `vertical_centering' of struct
4262 * indent.c (check_composition): New function.
4263 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
4264 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
4265 (current_column_1): Handle new way of composition.
4266 (Fmove_to_column): Likewise.
4267 (compute_motion): Likewise.
4269 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
4270 (insert_char): Likewise.
4271 (insert): Call update_compositions.
4272 (insert_and_inherit): Likewise.
4273 (insert_before_markers): Likewise.
4274 (insert_before_markers_and_inherit): Likewise.
4275 (insert_from_string): Likewise.
4276 (insert_from_string_before_markers): Likewise.
4277 (insert_from_buffer): Likewise.
4278 (replace_range): Likewise.
4279 (count_combining_composition): Deleted.
4280 (count_combining_before): Delete codes for a composite character.
4281 (count_combining_after): Likewise.
4282 (del_range_1): Call update_compositions.
4283 (del_range_byte): Likewise.
4284 (del_range_both): Likewise.
4285 (Fcombine_after_change_execute): Likewise.
4287 * intervals.h: Include composite.h.
4288 (get_property_and_range): Extern it.
4289 (Vtext_property_default_nonsticky): Extern it.
4291 * intervals.c (adjust_intervals_for_insertion): To check stickines
4292 of properties, pay attention to text-property-default-nonsticky.
4293 (merge_properties_sticky): Likewise.
4294 (get_property_and_range): New function.
4296 * keyboard.c (Vdisable_point_adjustment): New variable.
4297 (Vglobal_disable_point_adjustment): New variable.
4298 (syms_of_keyboard): Declare them as Lisp variables.
4299 (command_loop_1): Check them and call adjust_point_for_property if
4301 (adjust_point_for_property): New function.
4303 * keymap.c (push_key_description): Adjusted for the change of
4305 (Ftext_char_description): Likewise.
4307 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
4308 (hash_put): Adjusted for the change of the definition.
4309 (signal_after_change): Likewise.
4310 (check_point_in_composition): Extern it.
4312 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
4313 Delete a code that handles an invalid too-long multibyte sequence
4314 because we are now sure that we never encounter with such a
4316 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
4317 MAX_LENGTH_OF_MULTI_BYTE_FORM.
4318 (init_obarray): Likewise.
4319 (read1): Likewise. Adjusted for the change of CHAR_STRING.
4321 * print.c (printchar): Adjusted for the change of CHAR_STRING.
4323 * process.c: Include composite.h.
4324 (read_process_output): Call update_compositions.
4326 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
4328 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
4330 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
4333 * term.c (encode_terminal_code): Delete codes for a composite
4334 character. Adjusted for the change of CHAR_STRING.
4335 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
4336 Delete codes for a composite character.
4338 * textprop.c (Vtext_property_default_nonsticky): New variable
4339 (syms_of_textprop): Declare it as a Lisp variable.
4341 * window.c (Frecenter): Clear all caches of compositions.
4343 * xdisp.c (it_props): Add an entry for composition.
4344 (face_before_or_after_it_pos): For composition, check face of a
4345 character after the composition.
4346 (handle_composition_prop): New function.
4347 (get_next_display_element): Adjusted for the change of
4349 (set_iterator_to_next): Handle the case that it->method ==
4350 next_element_from_composition.
4351 (next_element_from_composition): New function.
4352 (message_dolog): Adjusted for the change of CHAR_STRING.
4353 (set_message_1): Likewise.
4354 (check_point_in_composition): New function.
4355 (reconsider_clip_changes): If point moved into or out of
4356 composition, set b->clip_changed to 1 to force updating of the
4358 (disp_char_vector): Delete codes for a composite character.
4359 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
4361 * xfaces.c (choose_face_fontset_font): Delete codes for a
4362 composite character.
4363 (realize_x_face): Likewise. Change a place to set local variable
4364 `f' to avoid a bug of GCC 2.8.1 on Solaris.
4366 * xfns.c: Include intervals.h.
4367 (syms_of_xfns): Make `display' property nonsticky by default.
4369 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
4370 for find_charset_in_str.
4372 * xterm.h (struct x_output): Change member font_baseline to
4375 * xterm.c (x_append_glyph): Setup members of struct glyph properly
4377 (x_append_composite_glyph): New function.
4378 (VCENTER_BASELINE_OFFSET): New macro.
4379 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
4380 of struct it for the composition. Cache pixel offsets in the
4381 struct composition. Delete codes for a composite character.
4382 Handle Vignore_relative_composition in composition code.
4383 (struct glyph_string): Delete member cmpcharp, add new member cmp.
4384 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
4385 (x_compute_glyph_string_overhangs): Likewise.
4386 (x_get_glyph_overhangs): Delete codes for a composite character.
4387 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
4388 (x_draw_glyph_string_background): Likewise. Delete codes for
4389 checking s->gidx for a composition.
4390 (x_draw_glyph_string_foreground): Delete code for a composite
4392 (x_draw_composite_glyph_string_foreground): New function.
4393 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
4394 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
4395 (struct work): Deleted.
4396 (x_fill_composite_glyph_string): Argument changed. Mostly
4398 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
4399 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
4400 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
4401 (BUILD_GLYPH_STRINGS): For composition, call
4402 BUILD_COMPOSITE_GLYPH_STRING.
4403 (x_new_font): Initialize f->output_data.x->baseline_offset, not
4404 f->output_data.x->font_baseline.
4406 1999-12-14 Gerd Moellmann <gerd@gnu.org>
4408 * xterm.c (show_mouse_face): Don't use updated_area, use
4411 1999-12-12 Richard M. Stallman <rms@gnu.org>
4413 * minibuf.c (Fall_completions): Doc fix.
4415 1999-12-12 Richard M. Stallman <rms@gnu.org>
4417 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
4418 has been changed by the Lisp code.
4420 1999-12-12 Gerd Moellmann <gerd@gnu.org>
4422 * xfns.c: Indentation fixes.
4424 1999-12-10 Stefan Monnier <monnier@cs.yale.edu>
4426 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
4428 1999-12-10 Gerd Moellmann <gerd@gnu.org>
4430 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
4431 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
4433 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
4436 1999-12-09 Stefan Monnier <monnier@cs.yale.edu>
4438 * keyboard.c (Qratio): New symbol.
4439 (scroll_bar_parts): Add `Qratio' to it.
4440 (syms_of_keyboard): Init `Qratio'.
4441 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
4442 * xterm.c (#includes): Allow compilation with only Xaw.
4443 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
4444 (xt_action_hook): Replace XAW3D by XAW.
4445 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
4446 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
4447 Determine epsilon dynamically and don't try to be too clever.
4448 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
4449 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
4450 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
4451 scrollbar (using `ratio').
4452 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
4453 scrollbar we have so as to set it up more optimally and to fix
4454 xaw3d_arrow_scroll and xaw3d_pick_top.
4455 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
4456 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
4457 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
4458 is not ignored, using a major gross hack.
4459 (x_initialize): Init default values for xaw3d_arrow_scroll and
4462 1999-12-09 Dave Love <fx@gnu.org>
4464 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
4466 1999-12-08 Gerd Moellmann <gerd@gnu.org>
4468 * eval.c: Remove conditional compilation on `standalone'.
4469 (call_debugger): When entering the debugger while redisplaying,
4470 reset redisplaying_p, and go back to the top-level if the debugger
4473 1999-12-07 Gerd Moellmann <gerd@gnu.org>
4475 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
4476 basic faces are realized before trying to use face `menu'.
4478 * window.c (delete_window): Block input for the time window
4479 matrices are being changed.
4481 1999-12-07 Dave Love <fx@gnu.org>
4483 * lread.c (Fintern_soft): Fix newlines in doc string.
4485 1999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
4487 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
4488 duplicate definition of ElfW.
4489 (find_section): Copied from unexsgi.c.
4490 (unexec): Use find_section. Adjust whitespace. Initialize
4491 new_data2_offset based on old_data, not sbss (this fixes a bug on
4492 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
4493 Adjust test for presence of .mdebug section to the new return
4494 value of find_section.
4496 1999-12-07 Gerd Moellmann <gerd@gnu.org>
4498 * unexelf.c: Merge changes from 20.5.
4499 (unexec): Handle .lit4 and .lit8 unconditionally.
4501 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
4504 * m/iris5d.h (UNEXEC): Likewise.
4506 1999-12-06 Stefan Monnier <monnier@cs.yale.edu>
4508 * editfns.c (Fdelete_and_extract_region): New function.
4509 (syms_of_editfns): Register it.
4510 * insdel.c (del_range): Update del_range_1 call.
4511 (del_range_1, del_range_2): Add a ret_string argument to
4512 request that the deleted text be returned.
4513 (del_range_byte, del_range_both): Update del_range_2 call.
4514 * lisp.h (del_range_1, del_range_2): Change prototype
4515 * casefiddle.c (casify_region): Update del_range_1 call.
4516 * coding.c (code_convert_region): Update del_range_2 call.
4517 * fileio.c (Finsert_file_contents): Update del_range_2 call.
4519 1999-12-06 Gerd Moellmann <gerd@gnu.org>
4521 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
4523 1999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
4525 * lread.c (Fintern_soft): Accept a symbol argument.
4527 1999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4529 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
4531 * insdel.c (adjust_markers_for_delete): Fix last change.
4533 1999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4535 Changes for automatic remapping of X colors on terminal frames:
4537 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
4539 (Vface_tty_color_alist): Remove.
4540 (tty_defined_color): New function.
4541 (defined_color): Rewrite to support any type of frame.
4542 (tty_color_name): New function.
4543 (face_color_supported_p, Fface_color_gray_p,
4544 Fface_color_supported_p): Support non-X frames.
4545 (load_color): Enclose the color name in quotes, in the log
4546 messages. Remove DOS-specific version of load_color.
4547 (realize_tty_face): Take the supported colors from
4548 tty-color-alist. Support translation of X colors to the closest
4549 tty color, for both MSDOS and tty frames.
4550 [MSDOS]: Don't invert face colors if they were taken from the
4552 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
4554 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
4555 Define a mostly empty surrogate.
4556 (tty_display): Declare.
4558 * frame.c (make_terminal_frame) [!macintosh]: Don't use
4560 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
4561 frames when the frame's param_alist includes 'reverse.
4562 (tty_display): Define.
4563 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
4564 output_data.x member.
4565 (Fframe_parameters): Return foreground and background color names
4566 on tty frames as well, in addition to MSDOS frames.
4568 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
4570 (struct x_output): Remove unused members; document who uses each
4572 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
4573 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
4574 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
4575 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
4576 unused macro definintions.
4578 * msdos.c (IT_set_frame_parameters): Don't call
4579 recompute_basic_faces, the next redisplay will, anyway.
4580 (x_current_display): Remove unused variable.
4581 Many functions: changes for Lisp_object selected_frame.
4582 (IT_set_face): If the tty_reverse_p flag is set for the face,
4583 reverse the foreground and background colors.
4584 (Fmsdos_remember_default_colors): New function.
4585 (syms_of_msdos): Defsubr it.
4586 (IT_set_frame_parameters): Use initial_screen_colors[] when
4587 creating a new frame. If the frame parameters include 'reverse,
4588 swap the foreground and background colors.
4589 (internal_terminal_init): Initialize initial_screen_colors to -1.
4590 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
4593 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
4595 * xfns.c (x_defined_color): Rename from defined_color. All
4597 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
4598 all callers changed.
4599 (Fxw_color_values): Renamed from Fx_color_values; all callers
4601 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
4603 (x_window_to_frame, x_any_window_to_frame,
4604 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
4605 x_top_window_to_frame): Use !FRAME_X_P instead of
4606 f->output_data.nothing.
4607 * xterm.h (x_defined_color): Rename from defined_color.
4609 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
4610 f->output_data.nothing.
4611 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
4612 all callers changed.
4613 (Fxw_color_values): Renamed from Fx_color_values; all callers
4615 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
4618 * dispextern.h (tty_color_name): Add prototype.
4620 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
4621 f->output_data.nothing.
4622 * w32menu.c (menubar_id_to_frame): Likewise.
4623 * w32term.h (w32_output): Declare.
4625 * dosfns.c (Qmsdos_color_translate): Remove.
4626 (msdos_stdcolor_name): Now returns a Lisp_Object.
4627 * dosfns.h (Qmsdos_color_translate): Remove.
4629 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
4631 1999-12-06 Kenichi Handa <handa@etl.go.jp>
4633 * fileio.c (decide_coding_unwind): Renamed from
4634 set_auto_coding_unwind.
4635 (Finsert_file_contents): Make single unwind protect to call both
4636 Vset_auto_coding_function and Ffind_operation_coding_system.
4638 * insdel.c (adjust_markers_for_delete): Make it non-static.
4640 1999-12-04 Stefan Monnier <monnier@cs.yale.edu>
4642 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
4643 operators and handle them properly.
4644 * regex.h (RE_ALL_GREEDY): New option.
4645 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
4646 sorting would put it.
4647 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
4648 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
4650 1999-12-04 Dave Love <d.love@dl.ac.uk>
4652 * m/arm.h: New file.
4654 1999-12-03 Dave Love <fx@gnu.org>
4656 * editfns.c (Fmessage_or_box): Use use_dialog_box.
4658 1999-12-02 Gerd Moellmann <gerd@gnu.org>
4660 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
4661 for building with Motif.
4663 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
4666 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
4668 1999-12-01 Dave Love <fx@gnu.org>
4670 * emacs.c (main): Set LANG=C iff AX3_2 defined.
4672 1999-11-28 Gerd Moellmann <gerd@gnu.org>
4674 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
4675 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
4678 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
4680 1999-11-28 eliz <eliz@dlpx1>
4682 * emacs.c (synchronize_locale): Avoid compiler warnings about
4683 pointer type mismatch.
4685 1999-11-28 Gerd Moellmann <gerd@gnu.org>
4687 * window.c (Fwindow_end): Don't call temp_set_pt_both with
4688 out of range position.
4690 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
4691 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
4693 1999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
4695 * charset.c (Fmake_char_internal): Print the charset ID when
4696 signalling an error.
4698 * emacs.c (synchronize_locale): Avoid compiler warnings about
4699 pointer type mismatch.
4701 1999-11-26 Richard M. Stallman <rms@gnu.org>
4703 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
4705 1999-11-26 Gerd Moellmann <gerd@gnu.org>
4707 * puresize.h (BASE_PURESIZE): Increase to 550000.
4709 * textprop.c (set_text_properties): New function. Like
4710 Fset_text_properties, but with additional parameter
4711 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
4713 (Fset_text_properties): Use it.
4715 * insdel.c (insert_1_both): Call set_text_properties with last
4716 parameter nil so that no after changes will be signaled.
4718 * lisp.h: Add prototype for set_text_properties.
4720 * xfaces.c (set_lface_from_font_name): Fix previous change.
4721 (recompute_basic_faces): Change assert to abort.
4723 1999-11-25 Dave Love <fx@gnu.org>
4725 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
4726 (Fmember, Fdelq, Fdelete): Inline car.
4727 (Fy_or_n_p): Doc fix.
4729 1999-11-25 Gerd Moellmann <gerd@gnu.org>
4731 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
4732 Callers changed. If specified font name is bogus, and may_fail_p
4733 is not set, try to use a reasonable default.
4735 * dispnew.c (direct_output_for_insert): Set glyph row's
4736 displays_text_p flag. Correct window's window_end_vpos if
4739 1999-11-25 Paul Eggert <eggert@twinsun.com>
4741 * emacs.c (fixup_locale): Don't bother to record initial locale.
4742 (synchronize_locale): If the desired locale is nil,
4743 treat it as if it were the empty string,
4744 so that we set the locale from the environment.
4746 1999-11-25 Kenichi Handa <handa@etl.go.jp>
4748 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
4749 of the current buffer via Fset.
4751 1999-11-24 Dave Love <fx@gnu.org>
4753 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
4755 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
4757 1999-11-24 Gerd Moellmann <gerd@gnu.org>
4759 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
4761 * emacs.c (PVEC_FLAG): New variable.
4763 1999-11-23 Gerd Moellmann <gerd@gnu.org>
4765 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
4766 that fails on IBM PowerPC, AIX 4.2.
4768 1999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
4770 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
4771 string of mode-line-format. Remove the obsolete %t.
4773 1999-11-22 Gerd Moellmann <gerd@gnu.org>
4775 * dispnew.c (direct_output_for_insert): Increment glyph positions
4776 for glyphs from buffer text only.
4778 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
4779 (gdb_data_seg_bits): New variables.
4781 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
4782 work on systems not allowing enumerators > INT_MAX, and it
4783 won't work if EMACS_INT is long long.
4785 1999-11-22 Paul Eggert <eggert@twinsun.com>
4787 Port to SunOS 4.1.x again. Help out with Alpha port.
4788 Rename messages-locale to system-messages-locale,
4789 and likewise for time-locale.
4791 * callproc.c (strerror): Remove decl.
4792 * fileio.c (strerror): Likewise.
4793 * process.c (strerror): Likewise.
4794 * emacs.c (strerror): Likewise.
4795 (Vsystem_messages_locale): Renamed from Vmessages_locale.
4797 (Vprevious_system_messages_locale): Likewise, from
4798 Vprevious_messages_locale.
4799 (Vsystem_time_locale): Likewise, from Vtime_locale.
4800 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
4801 (ABORT_RETURN_TYPE): New macro.
4802 (abort): Return type is now ABORT_RETURN_TYPE.
4803 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
4805 (syms_of_emacs): messages-locale -> system-messages-locale,
4806 previous-messages-locale -> previous-system-messages-locale,
4807 time-locale -> system-time-locale,
4808 previous-time-locale -> previous-system-time-locale.
4810 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
4811 (const): Do not define; that's config.h's job.
4812 (<limits.h>): Include if HAVE_LIMITS_H is defined.
4813 (CHAR_BIT): Move test for definedness outside of limits.h condition.
4814 (<stddef.h>): Include if STDC_HEADERS is defined.
4815 (FREE_RETURN_TYPE): New macro.
4816 (free): Return type is now FREE_RETURN_TYPE.
4818 * lisp.h (synchronize_system_time_locale): Renamed from
4819 synchronize_time_locale. All uses changed.
4820 (synchronize_system_messages_locale): Likewise, from
4821 synchronize_messages_locale.
4823 * m/alpha.h (malloc, realloc, calloc): Remove decls;
4824 stdlib.h now does this.
4826 * process.c (sys_siglist): Remove.
4828 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
4831 * syntax.c (scan_sexps_forward): Use abort, not assert.
4833 * sysdep.c (my_sys_siglist): New var.
4834 (sys_siglist): New macro. Remove old initialized vars of same name.
4835 (init_signals): Initialize sys_siglist.
4837 * xfns.c (abort): Remove decl; stdlib.h now does this.
4839 1999-11-18 Dave Love <fx@gnu.org>
4841 * filelock.c: Add forward declaration for get_boot_time_1.
4843 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
4845 1999-11-18 Gerd Moellmann <gerd@gnu.org>
4847 * buffer.h (struct buffer_text): Add comment about moving
4848 buffer text if REL_ALLOC is defined.
4850 1999-11-18 Kenichi Handa <handa@etl.go.jp>
4852 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
4854 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
4855 memory for push_key_description.
4857 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
4858 allocate memory for push_key_description.
4859 (describe_buffer_bindings): Likewise.
4861 1999-11-17 Gerd Moellmann <gerd@gnu.org>
4863 * xfns.c (Fx_show_busy_cursor): Doc-fix.
4864 (Fx_hide_busy_cursor): Ditto.
4866 1999-11-17 Marco Walther <walther@siemens-pyramid.com>
4868 * unexsni.c (unexec): Handle .rel.dyn section.
4870 1999-11-16 Dave Love <fx@gnu.org>
4872 * doc.c (Fdocumentation): Remove gcpro here too.
4874 1999-11-16 Gerd Moellmann <gerd@gnu.org>
4876 * keyboard.c (command_loop_1): Remove no_redisplay.
4878 1999-11-16 Richard M. Stallman <rms@gnu.org>
4880 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
4883 1999-11-14 Gerd Moellmann <gerd@gnu.org>
4885 * xdisp.c (ensure_echo_area_buffers): New.
4886 (with_echo_area_buffer): Use it.
4887 (setup_echo_area_for_printing): Ditto.
4889 * buffer.c (indicate-empty-lines): Doc-fix.
4891 1999-11-12 Gerd Moellmann <gerd@gnu.org>
4893 * term.c (term_init): If "op" isn't available, don't support color
4894 because we can't switch back to the default foreground and
4897 * doc.c (Fdocumentation_property): Remove GCPRO because
4898 Fsubstitute_command_keys gcpro's the string.
4900 1999-11-12 Kenichi Handa <handa@etl.go.jp>
4902 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
4904 1999-11-11 Gerd Moellmann <gerd@gnu.org>
4906 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
4907 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
4908 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
4910 1999-11-10 Gerd Moellmann <gerd@gnu.org>
4912 * xfns.c (QCuser_data): Removed.
4913 (syms_of_xfns): Initialization of QCuser_data removed.
4914 (parse_image_spec): Don't handle :user-data specially. Allow
4915 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
4916 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
4917 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
4918 parse_image_spec accordingly.
4920 1999-11-09 Richard M. Stallman <rms@gnu.org>
4922 * cmds.c (Fbeginning_of_line): Doc fix.
4923 (Fend_of_line): Doc fix.
4925 * editfns.c (Fline_beginning_position): If N is not 1,
4926 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
4928 * syntax.c (Fforward_word): Handle fields even if would have hit
4929 an edge of the buffer. Return nil if affected by fields.
4931 1999-11-09 Richard M. Stallman <rms@gnu.org>
4933 * editfns.c (preceding_pos): Function deleted.
4934 (text_property_stickiness): Decrement POS directly.
4935 Fix a confusion that used PT instead of POS.
4937 * editfns.c (find_field): Properly handle the case
4938 of a field boundary where `field' inherits from neither side.
4940 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
4941 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
4943 1999-11-08 Gerd Moellmann <gerd@gnu.org>
4945 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
4946 BEFORE_POTENTIAL_GC before DISCARD.
4948 1999-11-07 Gerd Moellmann <gerd@gnu.org>
4950 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
4952 * lisp.h: Add prototype for unmark_byte_stack.
4954 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
4955 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
4958 * xdisp.c (resize_mini_window): Fix computation of needed
4961 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
4962 compilation on USE_TEXT_PROPERTIES.
4964 * Fbyte_code: Use block statements in cases and declare v1 and v2
4965 locally there. Rearrange case statements so that those most
4966 frequently executed come first. Avoid goto's in frequently
4969 1999-11-05 Gerd Moellmann <gerd@gnu.org>
4971 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
4972 AFTER_POTENTIAL_GC around internal_catch.
4974 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
4976 (init_alloc_once, init_alloc): Set byte_stack_list to null.
4978 * eval.c (struct catchtag): Add member byte_stack.
4979 (internal_catch, Fcondition_case, internal_condition_case)
4980 (internal_condition_case_1): Save value of byte_stack_list in
4982 (unwind_to_catch): Restore byte_stack_list from catchtag.
4984 * lisp.h: Add prototypes for new functions in bytecode.c.
4985 Add extern declaration for byte_stack_list.
4987 * bytecode.c (struct byte_stack): New.
4988 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
4989 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
4990 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
4991 (HANDLE_RELOCATION): Removed.
4992 (Fbyte_code): Use byte_stack structures.
4994 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
4996 * buffer.c (syms_of_buffer): Extend documentation of
4999 1999-11-04 Gerd Moellmann <gerd@gnu.org>
5001 * editfns.c (Fdelete_field): Renamed from Ferase_field.
5003 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
5004 Ferase_field instead of Fdelete_field.
5006 1999-11-03 Gerd Moellmann <gerd@gnu.org>
5008 * dispnew.c (Finternal_show_cursor): Change it to set the
5009 cursor on/off, not toggle its state.
5010 (Finternal_show_cursor_p): New.
5011 (syms_of_display): Defsubr Sinternal_show_cursor_p.
5013 1999-11-03 Dave Love <fx@gnu.org>
5015 * charset.c (split_non_ascii_string): Define return value.
5017 1999-11-03 Gerd Moellmann <gerd@gnu.org>
5019 * minibuf.c (string_to_object): New.
5020 (read_minibuf_noninteractive): New.
5021 (read_minibuf): Call read_minibuf_noninteractive if
5022 noninteractive. Use string_to_object.
5024 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
5026 1999-11-02 Dave Love <fx@gnu.org>
5028 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
5030 * process.c: Define _GNU_SOURCE before config.h to get strsignal
5031 declared with glibc2.
5033 1999-11-02 Gerd Moellmann <gerd@gnu.org>
5035 * lisp.h (QUIT): Give it statement form.
5037 1999-11-02 Dave Love <fx@gnu.org>
5039 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
5041 1999-11-02 Gerd Moellmann <gerd@gnu.org>
5043 * xfns.c (QCuser_data): New.
5044 (syms_of_xfns): Initialize QCuser_data.
5045 (parse_image_spec): Ignore :user-data DATA properties.
5047 * xdisp.c (display_line): Set charpos of first glyph in blank
5048 lines not corresponding to any text to -1, even if no glyphs are
5049 filled in in that line.
5051 1999-11-01 Gerd Moellmann <gerd@gnu.org>
5053 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
5054 png_get_sRGB in #ifdef.
5056 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
5057 (syms_of_display): Use the new name.
5059 * textprop.c (verify_interval_modification): Signal text-read-only
5060 instead of calling error.
5062 * data.c (Qtext_read_only): New built-in error.
5063 (syms_of_data): Initialize it.
5065 * lisp.h: Add extern declaration for Qtext_read_only.
5067 * syntax.c: Remove whitespace after open or in front of closing
5070 1999-11-01 Richard M. Stallman <rms@gnu.org>
5072 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
5074 1999-10-31 Gerd Moellmann <gerd@gnu.org>
5076 * xdisp.c (resize_mini_window): Compute needed height differently.
5078 * fns.c (Flength): Unroll loop over lists.
5080 * xdisp.c (append_space): Return non-zero if space was appended.
5081 (display_line): Set charpos of first glyph to -1 only if that
5082 glyph is the space added by append_glyph.
5084 1999-10-30 Richard M. Stallman <rms@gnu.org>
5086 * print.c (strout): Consider `noninteractive' and use stdout
5087 only when PRINTCHARFUN is t.
5089 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
5090 (gcpro_level): Declare it extern.
5091 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
5092 Alternate definitions that set `level' and increment `gcpro_level'.
5093 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
5095 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
5096 (init_eval) [DEBUG_GCPRO]: Initialize it.
5097 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
5098 from remaining gcprolist.
5100 1999-10-29 Kenichi Handa <handa@etl.go.jp>
5102 * coding.c (code_convert_region): Update `dst' correctly.
5104 1999-10-28 Gerd Moellmann <gerd@gnu.org>
5106 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
5107 (Frassoc): Rewritten.
5109 1999-10-27 Noah Friedman <friedman@splode.com>
5111 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
5112 Define PTY_NAME_SPRINTF.
5113 Redefine PTY_TTY_NAME_SPRINTF.
5114 * config.in: Add undef for HAVE_DEV_PTMX.
5116 1999-10-26 Richard M. Stallman <rms@gnu.org>
5118 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
5119 as arg to DEBUG_POP and DEBUG_PRINT.
5121 1999-10-27 Richard M. Stallman <rms@gnu.org>
5123 * data.c (Qad_activate_internal): Renamed from Qad_activate.
5124 (Ffset): Call Qad_activate_internal.
5125 (syms_of_data): Initialize Qad_activate_internal.
5127 1999-10-27 Gerd Moellmann <gerd@gnu.org>
5129 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
5130 Vterminal_frame is selected and Vwindow_system is non-nil.
5132 1999-10-26 Gerd Moellmann <gerd@gnu.org>
5134 * xdisp.c (echo_area_display): Put previous change in #if 0.
5136 * emacs.c (standard_args): Add `file' as synonym for `visit',
5137 `execute' as synonym for `eval'.
5138 (main): Add new options to usage message.
5140 1999-10-25 Gerd Moellmann <gerd@gnu.org>
5142 * data.c (Qhash_table): New.
5143 (Ftype_of): Return it for hash tables.
5144 (syms_of_data): Initialize Qhash_table.
5146 1999-10-25 Richard M. Stallman <rms@gnu.org>
5148 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
5150 1999-10-24 Ken Raeburn <raeburn@gnu.org>
5152 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
5155 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
5156 Fbuffer_local_variables, Fother_buffer, record_buffer,
5157 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
5158 swap_out_buffer_local_variables, overlays_at, overlays_in,
5159 overlay_touches_p, overlay_strings, recenter_overlay_lists,
5160 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
5161 Foverlay_put, report_overlay_modification, evaporate_overlays):
5162 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
5164 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
5165 swap_in_symval_forwarding, set_internal, default_value,
5166 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
5167 Fmake_variable_frame_local, Flocal_variable_p,
5168 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
5169 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
5170 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
5171 * emacs.c (main): Likewise.
5172 * fontset.c (fs_load_font, fs_register_fontset,
5173 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
5174 Fnew_fontset, Fset_fontset_font): Likewise.
5175 * frame.c (do_switch_frame, next_frame, prev_frame,
5176 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
5178 * keyboard.c (read_char, help_char_p, event_to_kboard,
5179 kbd_buffer_get_event, timer_start_idle, timer_check,
5180 make_lispy_event, apply_modifiers, reorder_modifiers,
5181 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
5182 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
5183 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
5184 Fcommand_execute, Fexecute_extended_command): Likewise.
5185 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
5186 Fall_completions): Likewise.
5187 * window.c (Fset_window_margins): Likewise.
5189 * callint.c (quotify_args): Don't explicitly use struct
5190 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
5192 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
5193 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
5194 if __ELF__ is defined.
5196 1999-10-24 Gerd Moellmann <gerd@gnu.org>
5198 * window.c (Fnext_window): Add a QUIT in the loop.
5200 1999-10-23 Gerd Moellmann <gerd@gnu.org>
5202 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
5205 1999-10-22 Dave Love <fx@gnu.org>
5207 * emacs.c (main): Enable profiling conditional on __linux also.
5209 1999-10-20 Gerd Moellmann <gerd@gnu.org>
5211 * xrdb.c (x_load_resources): Set default resources for resource
5212 classes instead of for the specific Emacs.
5214 1999-10-19 Gerd Moellmann <gerd@gnu.org>
5216 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
5217 defines it that way.
5219 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
5220 if selected_frame is equal to Vterminal_frame.
5222 1999-10-19 Paul Eggert <eggert@twinsun.com>
5224 Add support for large files, 64-bit Solaris, system locale codings.
5226 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
5227 when dumping, so that the dumped Emacs doesn't have stray locale info.
5228 (dired.o): Depend on systime.h.
5229 (editfns.o): Depend on coding.h.
5231 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
5232 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
5233 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
5234 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
5235 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
5236 Include <config.h> before any system include files.
5238 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
5239 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
5240 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
5242 Do not include <stdlib.h>, as <config.h> does this now.
5244 * callproc.c (Fcall_process):
5245 Synchronize messages locale before invoking strerror.
5246 Decode resulting string with locale-coding-system.
5248 * coding.c (Vlocale_coding_system): New var.
5249 (syms_of_coding): Adjust to above change.
5250 (emacs_strerror): New function.
5252 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
5254 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
5255 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
5256 HAVE_STRSIGNAL): New macros.
5257 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
5258 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
5260 * dired.c: Include "systime.h".
5261 (Ffile_attributes): Do not cast s.st_size to int; this loses
5262 information if int is 32 bits but st_size and EMACS_INT are larger.
5263 Treat large device numbers like large inode numbers.
5265 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
5267 * editfns.c: Include coding.h.
5268 (emacs_strftime): Remove decl.
5269 (emacs_strftimeu): New decl.
5270 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
5271 Use emacs_strftimeu instead of emacs_strftime.
5272 (Fformat_time_string): Convert format string using
5273 Vlocale_coding_system, and convert result back. Synchronize time
5274 locale before invoking lower level function. Invoke
5275 emacs_memftimeu, passing ut, instead of emacs_memftime.
5277 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
5278 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
5279 Vprevious_time_locale): New variables.
5280 (main): Invoke setlocale early, so that initial error messages are
5281 localized properly. But skip locale-setting if LC_ALL is "C".
5282 Fix up locale when it's safe to do so.
5283 (fixup_locale): Moved here from xterm.c.
5284 (synchronize_locale, synchronize_time_locale,
5285 synchronize_messages_locale): New functions.
5286 (syms_of_emacs): Accommodate above changes.
5288 * fileio.c (report_file_error): Convert strerror output according
5289 to Vlocale_coding_system.
5290 (Finsert_file_contents): Check for arithmetic overflow in
5291 computations that depend on file size. Report IO errors
5292 with emacs_strerror, not strerror.
5294 * fns.c (Fgethash): Declare dflt parameter.
5296 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
5297 is defined; that's config.h's job.
5299 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
5300 default these values to long, BITS_PER_LONG, and unsigned long.
5301 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
5302 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
5303 (code_convert_string_norecord, fixup_locale,
5304 synchronize_messages_locale, synchronize_time_locale,
5305 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
5306 All Emacs callers of open, close, read, write changed to use
5307 emacs_open, emacs_close, emacs_read, emacs_write.
5309 * lread.c (file_offset, file_tell): New macros. All uses of ftell
5310 changed to file_tell.
5311 (saved_doc_string_position, prev_saved_doc_string_position): Now
5312 of type file_offset.
5313 (init_lread): Do not fix locale here; fixup_locale now does this.
5315 * m/amdahl.h, s/usg5-4.h:
5317 (NSIG_MINIMUM): New macro.
5319 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
5320 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
5321 s/umips.h, s/usg5-4.h:
5322 (SIGIO): Do not undef.
5323 (BROKEN_SIGIO): New macro.
5326 (SIGTSTP): Do not undef.
5327 (BROKEN_SIGTSTP): New macro.
5330 (SIGPOLL, SIGURG): Do not undef.
5331 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
5334 (SIGINFO): Do not undef.
5335 (BROKEN_SIGINFO): New macros.
5337 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
5339 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
5340 some Emacs-related changes merged.
5342 * print.c (float_to_string): Prepend "-" to representation of a
5343 NaN if the NaN is negative.
5345 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
5346 (wait_reading_process_input): Use emacs_strerror, not strerror.
5348 * process.c (status_message, sigchld_handler): Synchronize locale,
5349 then use strsignal istead of sys_siglist.
5350 * w32proc.c (sys_wait): Likewise.
5352 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
5353 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
5354 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
5355 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
5356 (open, close, read, write, INTERRUPTIBLE_OPEN,
5357 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
5359 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
5361 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
5362 sys_open, open): Remove.
5363 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
5364 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
5365 macros are no longer used.
5366 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
5367 (emacs_close): Renamed from sys_close.
5368 (emacs_read): Renamed from sys_read.
5369 (emacs_write): Renamed from sys_write.
5370 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
5371 (dup2): Do not print error on failure; the real dup2 doesn't.
5372 (strsignal): New function, defined if !HAVE_STRSIGNAL.
5374 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
5376 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
5377 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
5378 (strsignal): Declare if !HAVE_STRSIGNAL.
5380 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
5381 (ElfW): Define in terms of ElfExpandBitsW.
5383 * w32proc.c (sys_siglist): Remove decl.
5385 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
5387 (display_string): Declare face_string_pos arg.
5389 * xfns.c (Fx_show_tip): Declare timeout param.
5391 * xterm.c: No need to include locale.h.
5392 (x_alloc_lighter_color, x_setup_relief_color):
5393 Pass arg as double, not float, for compatibility with ANSI C.
5394 (fixup_locale): Move to emacs.c.
5395 (x_term_init): Do not setlocale or fixup locale; the main program
5398 1999-10-18 Dave Love <fx@gnu.org>
5400 * doc.c (Fdocumentation_property): Gcpro `tem'.
5402 1999-10-18 Kenichi Handa <handa@etl.go.jp>
5404 * lread.c (Fload): Calculate bytes of filename correctly.
5407 1999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
5409 * print.c (print_preprocess): In case print-circle is nil,
5410 add OBJ to Vprint_number_table only when OBJ is a symbol.
5412 1999-10-18 Kenichi Handa <handa@etl.go.jp>
5414 * coding.c (code_convert_string): Add record_unwind_protect to
5415 assure setting inhibit_pre_post_conversion back to zero. Take
5416 care of the multibyteness of the working buffer.
5418 * coding.c (inhibit_pre_post_conversion): New variable.
5419 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
5420 ignore post-read-conversion and pre-write-conversion property of
5422 (code_convert_region_unwind): New function.
5423 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
5424 running pre-write-conversion and post-read-conversion.
5425 (code_convert_string): Likewise.
5427 1999-10-17 Miles Bader <miles@gnu.org>
5429 * editfns.c: Doc fix.
5431 1999-10-17 Miles Bader <miles@gnu.org>
5433 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
5434 argument preconditions of find_before_next_newline in the case
5435 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
5436 was indeed at the edge.
5438 1999-10-17 Miles Bader <miles@gnu.org>
5440 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
5441 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
5443 * editfns.c (text_property_eq, text_property_stickiness): Don't
5444 use initializers for auto variables of type Lisp_Object.
5445 (find_field): Likewise. Use braces around nested ifs.
5446 (Fline_end_position): Store the raw eol in a variable, so that the
5447 final expression doesn't look so ugly.
5448 (Fconstrain_to_field): Doc fix.
5449 (preceding_pos): Renamed from `preceeding_pos'.
5450 (text_property_stickiness, find_field): Call preceding_pos,
5453 1999-10-17 Miles Bader <miles@gnu.org>
5455 * editfns.c (Ffield_string_no_properties): New function.
5456 (text_property_stickiness, preceeding_pos): New functions.
5457 (Ffield_string): Remove PROPS parameter.
5458 (find_field): Add MERGE_AT_BOUNDARY parameter.
5459 Rewrite to use stickiness of `field' property to resolve
5461 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
5462 (Fconstrain_to_field): Likewise.
5463 (syms_of_editfns): Init Sfield_string_no_properties.
5464 (Ffield_string, Ferase_field, Ffield_end):
5465 Supply new MERGE_AT_BOUNDARY argument to find_field.
5466 (Fline_beginning_position, Fline_end_position): Supply new
5467 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
5468 Pass a value of Qt for the ONLY_IN_LINE argument to
5469 Fconstrain_to_field (only matters if N != 1).
5470 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
5471 to Fconstrain_to_field.
5473 * minibuf.c (Fminibuffer_complete_word): Use
5474 Ffield_beginning to find the prompt end.
5476 1999-10-17 Miles Bader <miles@gnu.org>
5478 * editfns.c (Fconstrain_to_field): Add get/set-current-point
5479 behavior when NEW_POS is nil.
5480 (find_field): Use XSETFASTINT instead of make_number.
5481 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
5482 input string by seeing where the field begins, instead of
5483 looking at text-properties.
5485 1999-10-17 Miles Bader <miles@gnu.org>
5487 * editfns.c (Qfield): New variable.
5488 (find_field, Ferase_field, Ffield_string,
5489 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
5490 (Fline_beginning_position, Fline_end_position): Constrain to any field.
5491 (make_buffer_string_both): Remove minibuffer-prompt hack.
5492 (syms_of_editfns): Initialize Qfield, and subr entries for
5493 field functions above.
5494 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
5496 Don't initialize minibuffer prompt length.
5497 Wrap prompt text-properties around the entire prompt.
5498 Add 'prompt text-property to prompt.
5499 Get final value with Ffield_string instead of make_buffer_string.
5500 (read_minibuf_unwind): Don't restore minibuffer prompt length from
5502 (do_completion): Get minibuffer input with Ffield_string
5503 instead of Fbuffer_string.
5504 Erase minibuffer input with Ferase_field instead of erase_buffer.
5505 (Fminibuffer_complete_and_exit): Likewise.
5506 Test whether buffer is empty by looking for the 'prompt text
5507 property at the end.
5508 Set prompt length by looking for the end of the prompt text property,
5509 and save prompt length for later use (since there is no longer a
5510 buffer variable to get it from).
5511 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
5512 (syms_of_minibuf): Remove initializations of
5513 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
5514 * buffer.h (struct buffer): Remove prompt_end_charpos field.
5515 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
5516 Don't initialize prompt_end_charpos field.
5517 * syntax.c (Fforward_word): Likewise.
5518 Constrain to any field.
5520 1999-10-16 Gerd Moellmann <gerd@gnu.org>
5522 * window.c (enum save_restore_action): New.
5523 (save_restore_orig_size): Change parameter list. Add
5524 functionality to check for valid orig_top and orig_height members
5526 (grow_mini_window): Call save_restore_orig_size with new parameter
5528 (shrink_mini_window): Restore old window sizes only if old
5529 size information is valid in all windows in a window tree.
5531 1999-10-15 Gerd Moellmann <gerd@gnu.org>
5533 * xmenu.c (set_frame_menubar): Don't call
5534 x_set_menu_resources_from_menu_face here.
5535 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
5537 * xfns.c (gif_load): Fix handling of interlaced GIFs.
5539 1999-10-14 Dave Love <fx@gnu.org>
5541 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
5543 1999-10-14 Gerd Moellmann <gerd@gnu.org>
5545 * process.c (Fopen_network_stream): Don't loop if gethostbyname
5546 fails and h_errno is TRY_AGAIN.
5548 1999-10-13 Dave Love <fx@gnu.org>
5550 * filelock.c (lock_file): Move gcpro of `fn'.
5552 1999-10-10 Gerd Moellmann <gerd@gnu.org>
5554 * keyboard.c (auto-save-interval): Fix documentation.
5556 1999-10-09 Richard M. Stallman <rms@gnu.org>
5558 * print.c (print): When removing objects from Vprint_number_table,
5559 only scan the newly added objects.
5560 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
5561 unconditionally force it to stay in the table.
5563 1999-10-09 Gerd Moellmann <gerd@gnu.org>
5565 * xfns.c (prepare_image_for_display): Don't try to load image if
5566 loading it failed before.
5567 (lookup_image, prepare_image_for_display): Remember if loading the
5569 (xpm_load): Add missing UNBLOCK_INPUT.
5571 * dispextern.h (struct image): New member load_failed_p.
5573 1999-10-08 Stefan Monnier <monnier@cs.yale.edu>
5575 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
5578 1999-10-08 Gerd Moellmann <gerd@gnu.org>
5580 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
5581 Don't call XSetInputFocus because that can generate additional
5584 1999-10-07 Jeffrey C Honig <jch@bsdi.com>
5586 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
5588 1999-10-07 Richard M. Stallman <rms@gnu.org>
5590 * process.c (wait_reading_process_input): When trying to suck
5591 input from one process, for accept-process-output,
5592 exit that loop if we get EAGAIN or EWOULDBLOCK.
5594 1999-10-07 Gerd Moellmann <gerd@gnu.org>
5596 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
5597 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
5598 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
5599 Fpixmap_spec_p and Qpixmap_spec_p.
5600 (load_face_colors, check_lface_attrs,
5601 merge_face_vector_with_property,
5602 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
5603 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
5606 1999-10-07 Gerd Moellmann <gerd@gnu.org>
5608 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
5611 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
5612 (struct x_resources) [USE_X_TOOLKIT]: New.
5613 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
5615 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
5617 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
5619 (syms_of_xfaces): Initialize Qmenu.
5620 (realize_basic_faces): Realize face `menu'.
5621 (resolve_face_name): New.
5622 (lface_from_face_name): Use it.
5623 (Finternal_set_lisp_face_attribute): Ditto.
5624 (Fpixmap_spec_p): Rewritten. Extend doc string.
5626 * xmenu.c (set_frame_menubar, xmenu_show): Call
5627 x_set_menu_resources_from_menu_face.
5629 * dispextern.h (enum face_id): Add MENU_FACE_ID.
5630 (toplevel): Include X11/Intrinsic.h.
5632 1999-10-03 Ken'ichi Handa <handa@gnu.org>
5634 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
5637 1999-09-30 Kenichi Handa <handa@etl.go.jp>
5639 * category.c (modify_lower_category_set): Set default value of
5642 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
5645 1999-09-29 Gerd Moellmann <gerd@gnu.org>
5647 * editfns.c (Fpropertize): Renamed from Fproperties.
5649 1999-09-29 Gerd Moellmann <gerd@gnu.org>
5651 * xdisp.c (resize_mini_window): Do nothing if frame is an X
5652 frame that hasn't been initialized yet.
5654 1999-09-28 Richard M. Stallman <rms@gnu.org>
5656 * keymap.c (Fsingle_key_description): Make tem big enough.
5657 (describe_buffer_bindings): Make buf big enough.
5659 1999-09-27 Richard M. Stallman <rms@gnu.org>
5661 * intervals.c (get_local_map): Use indirect_function,
5662 not Findirect_function.
5664 1999-09-27 Dave Love <fx@gnu.org>
5666 * cm.h: Remove unneeded declaration of ospeed.
5668 1999-09-26 Gerd Moellmann <gerd@gnu.org>
5670 * lisp.h (toplevel): Add prototype for
5671 next_single_char_property_change.
5673 * textprop.c (next_single_char_property_change): New.
5675 * xdisp.c (display_prop_end, invisible_text_between_p): Use
5676 next_single_char_property_change.
5678 1999-09-25 Gerd Moellmann <gerd@gnu.org>
5680 * editfns.c (Fproperties): New.
5681 (syms_of_editfns): Defsubr it.
5683 * xfns.c (lookup_image): Set image's timestamp because it's
5684 used when we look it up.
5686 1999-09-23 Gerd Moellmann <gerd@gnu.org>
5688 * window.c (enlarge_window): Add window parameter instead of using
5690 (Fdisplay_buffer): Call it with window parameter instead of
5691 setting selected_window.
5692 (Fenlarge_window, Fshrink_window): Ditto.
5693 (shrink_mini_window): If there is no recorded height and position
5694 info, resize mini-window to height 1.
5696 * xfns.c (image_error): Use add_to_log.
5698 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
5699 (load_face_font_or_fontset, load_color,
5700 merge_face_vector_with_property): Ditto.
5702 * dispextern.h: Add prototype for add_to_log.
5704 * xfaces.c (add_to_log): Move to xdisp.c.
5706 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
5709 1999-09-23 Gerd Moellmann <gerd@gnu.org>
5711 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
5712 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
5714 * xdisp.c (resize_mini_window): Use grow_mini_window and
5717 * window.c (window_min_size): Add parameter ignore_fixed_p.
5718 (change_window_height): Call window_min_size with new parameter.
5719 (shrink_window_lowest_first, save_restore_orig_size,
5720 grow_mini_window, shrink_mini_window): New.
5721 (make_window, replace_window): Initialize orig_top and
5723 (enlarge_window): Renamed from change_window_height. Make it
5725 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
5726 enlarge_window instead of change_window_height.
5728 * window.h (struct window): New members orig_top, orig_height.
5729 (toplevel): Add prototypes for grow_mini_window and
5730 shrink_mini_window. Remove prototype for change_window_height.
5732 1999-09-21 Eli Zaretskii <eliz@gnu.org>
5734 * frame.c (frame_name_fnn_p): Fix previous change.
5736 1999-09-20 Gerd Moellmann <gerd@gnu.org>
5738 * minibuf.c (toplevel): Move include of stdio.h to other includes.
5740 * dispnew.c (direct_output_for_insert): Cast arguments to
5741 safe_bcopy to char *.
5743 * lread.c (readchar): Remove unused variables.
5744 (read_filtered_event, read1, Fmapatoms): Ditto.
5745 (toplevel): Include intervals.h.
5747 * eval.c (Fsignal): Remove unused variables.
5748 (Fcommandp, do_autoload): Ditto.
5750 * lisp.h: Add prototype for safe_bcopy, fatal.
5752 * editfns.c (init_editfns): Remove unused variables.
5753 (Fgoto_char, Fchar_after, Fformat): Ditto.
5754 (message_text, message_length): Put in #ifndef HAVE_MENUS.
5756 * data.c (find_symbol_value): Remove unused variables.
5757 (Faref, Fstring_to_number): Ditto.
5758 (toplevel): Include stdio.h.
5759 (Fnumber_to_string): Cast XINT to long for %ld.
5761 * casefiddle.c (casify_object): Remove unused variables.
5762 (casify_region): Ditto.
5764 * filelock.c (get_boot_time): Put local variable used in
5765 conditinally compiled section in #ifdef.
5766 (toplevel): Include stdio.h.
5768 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
5769 keys_of_keymap, syms_of_keymap): Remove unused variables.
5771 1999-09-20 Gerd Moellmann <gerd@gnu.org>
5773 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
5774 whose corresponding window rows have been disabled in
5777 1999-09-20 Gerd Moellmann <gerd@gnu.org>
5779 * xdisp.c (compute_window_start_on_continuation_line): Handle case
5780 that window start is out of range.
5781 (handle_display_prop, handle_single_display_prop): Replace
5782 marginal area specifications like `left-margin' with `(margin
5785 (syms_of_xdisp): Initialize Qmargin.
5787 1999-09-19 Gerd Moellmann <gerd@gnu.org>
5789 * syntax.c (update_syntax_table, find_defun_start, back_comment,
5790 describe_syntax, skip_chars): Remove unused variables.
5791 (back_comment, forw_comment): Add braces to if-statement with
5792 if-else as dependent statement.
5794 * process.c (list_processes_1): Remove unused variables.
5795 (Fopen_network_stream, create_process): Add parentheses to
5796 conditional expressions.
5797 (create_process): Put declaration of sigchld in #if 0.
5798 (Fopen_network_stream): Removed unused variables.
5799 (Fopen_network_stream, wait_reading_process_input,
5800 wait_reading_process_input, send_process, send_process): Ditto.
5801 (toplevel): Add prototypes for set_waiting_for_input and
5804 * abbrev.c (Fexpand_abbrev): Remove unused variables.
5806 * textprop.c (Fset_text_properties): Remove unused variables.
5807 (text_property_list, verify_interval_modification,
5808 interval_has_all_properties): Ditto.
5810 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
5811 (Fcall_process): Remove unused variable.
5813 * keyboard.c (Frecursive_edit): Remove unused variable.
5814 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
5815 timer_check, make_lispy_event, menu_bar_items,
5816 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
5817 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
5818 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
5819 read_key_sequence): Ditto. Fread_key_sequence,
5820 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
5821 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
5822 used when GOBBLE_FIRST_EVENT is defined in #ifdef
5823 (Fexecute_extended_command): Cast XINT to long for %ld.
5824 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
5825 (toplevel): Include sys/types.h.
5827 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
5828 (toplevel): Add prototypes for stuff_char, and
5829 code_convert_string_norecord.
5831 1999-09-19 Gerd Moellmann <gerd@gnu.org>
5833 * buffer.h: Add prototype for r_re_alloc.
5835 * insdel.c (copy_text): Removed unused variables.
5836 (count_combining_after, count_combining_after, insert_1_both,
5837 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
5838 (adjust_after_replace, replace_range): Add parentheses to logical
5839 expressions. Remove unused variables.
5840 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
5843 * alloc.c (Fgarbage_collect): Remove unused variable.
5844 (compact_strings): Add parentheses around assignments in
5845 conditional context.
5846 (toplevel): Put declaration of unused function clear_marks
5847 in #if 0 like its definition.
5849 * lisp.h: Add prototype for shrink_regexp_cache,
5850 sweep_weak_hash_tables.
5852 1999-09-19 Dave Love <fx@gnu.org>
5854 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
5856 * doc.c (read_bytecode_char): Declare arg.
5858 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
5859 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
5861 1999-09-18 Richard Stallman <rms@gnu.org>
5863 * xdisp.c (echo_area_display): Turn off code that returned
5864 without doing anything when using a terminal frame.
5866 1999-09-17 Richard M. Stallman <rms@gnu.org>
5868 * unexelf.c (unexec): Don't get confused by a short section
5869 just before the bss section.
5871 1999-09-16 Gerd Moellmann <gerd@gnu.org>
5873 * emacs.c (main): Remove unused variables.
5874 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
5876 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
5877 init_fileio_once, syms_of_sound, init_xfns, init_fns
5878 init_sound, check_message_stack.
5880 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
5882 * intervals.c (rotate_right, rotate_left): Add braces to avoid
5883 ambiguous else warning.
5884 (split_interval_left): Remove unused variables.
5885 (previous_interval, adjust_intervals_for_deletion,
5886 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
5887 (icount, idepth, zero_length): Move into #if 0 section below
5888 original position where these are used.
5890 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
5892 * buffer.c (Fkill_buffer): Remove unused variables.
5893 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
5894 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
5895 init_buffer_once, (syms_of_buffer): Ditto.
5897 * xrdb.c (get_fallback): Remove unused variable.
5898 (x_load_resources): Ditto. Put local variable used for Motif only
5899 in #ifdef USE_MOTIF.
5901 1999-09-16 Gerd Moellmann <gerd@gnu.org>
5903 * minibuf.c (read_minibuf): Remove unused variables.
5904 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
5905 (do_completion): Move assignment out of conditional context.
5906 (Fdisplay_completion_list): Add parentheses to conditional expression.
5908 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
5910 * lisp.h: Add prototype for no_switch_window.
5912 * window.c (Fset_window_buffer): Remove unused variables.
5913 (Fset_window_margins): Ditto.
5915 * xdisp.c (resize_mini_window): Temporarily set the selected
5916 window's or Vminibuf_scroll_window's height to "fixed" around
5917 the call the change_window_height.
5919 * window.c (window_fixed_size_p): Check window's height_fixed_p
5922 * window.h (struct window): New member height_fixed_p.
5924 * dispnew.c (direct_output_forward_char): Don't use this method
5925 if showing a message or a message was just cleared because we
5926 might need to resize the mini-window.
5928 1999-09-16 Gerd Moellmann <gerd@gnu.org>
5930 * frame.c (Fdelete_frame): Correct local variable pointing to
5931 selected frame after selecting new frame.
5933 1999-09-15 Richard Stallman <rms@gnu.org>
5935 * puresize.h (BASE_PURESIZE): Increase to 525000.
5937 * filelock.c (Vtemporary_file_directory): New variable.
5938 (syms_of_filelock): Set up Lisp variable.
5940 1999-09-15 Gerd Moellmann <gerd@gnu.org>
5942 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
5943 (encode_terminal_code): Remove unused variables.
5944 (turn_off_face): Ditto.
5945 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
5947 * dispnew.c (update_frame_line): If writing whole desired line,
5948 don't clear to end of line if already at the end.
5950 1999-09-15 Gerd Moellmann <gerd@gnu.org>
5952 * xdisp.c (resize_mini_window): Don't report changed window
5953 height if it actually hasn't changed.
5955 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
5957 (mark_shell_size_user_specified): Put in #if 0 because not used.
5958 (create_frame_gcs): Put in #if 0 because currently unused.
5959 (first_frame_p): Ditto.
5961 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
5962 single_submenu, update_frame_menubar, set_frame_menubar,
5963 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
5966 * print.c (PRINTFULLP): Removed because it is no longer used and
5968 (Ferror_message_string): Remove unused variables.
5969 (print_object): Cast argument of sprintf to long for `%ld'
5970 specifier. Remove unused variable.
5972 1999-09-14 Gerd Moellmann <gerd@gnu.org>
5974 * sound.c (Fplay_sound): Remove usused variables.
5975 (be2hs): Put in #if 0 because it's currently not used.
5977 1999-09-14 Ken Raeburn <raeburn@gnu.org>
5979 * print.c (Ferror_message_string, print_error_message,
5980 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
5983 1999-09-14 Gerd Moellmann <gerd@gnu.org>
5985 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
5987 * frame.c (Fnext_frame): Remove unused variable(s).
5988 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
5989 (store_frame_param): Add parentheses to conditional expression.
5990 (Fmodify_frame_parameters): Remove unused variables.
5991 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
5994 * xfns.c (x_set_background_color): Remove unused variable(s).
5995 (x_set_border_pixel): Ditto.
5996 (x_set_menu_bar_lines): Put local variable used only for
5997 non-toolkit case in #ifdef/#endif.
5998 (x_figure_window_size): Remove unused variable(s).
5999 (x_figure_window_size, x_window, lookup_image,
6000 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
6001 png_load, jpeg_load, gif_load, x_create_tip_frame,
6002 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
6004 * xterm.c (x_scroll_bar_handle_click): Compile only if
6005 not USE_TOOLKIT_SCROLL_BARS.
6006 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
6008 * dispextern.h: Add prototypes for gamma_correct and
6011 * xterm.c (x_produce_glyphs): Remove unused variable(s).
6012 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
6013 x_set_toolkit_scroll_bar_thumb): Ditto.
6014 (x_scroll_bar_create): Move local variable to the
6015 conditionally compiled section of code where it is used.
6016 (x_scroll_bar_create): Remove unused variable(s).
6017 (x_scroll_bar_remove, XTread_socket): Ditto.
6018 (XTread_socket) <ConfigureNotify>: Move variables used for
6019 non-toolkit case into conditionally compiled section of code.
6021 * window.h (freeze_window_starts): Fix typo in prototype.
6023 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
6026 * lisp.h: Add prototype for debug_print.
6028 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
6031 * fns.c (SXHASH_COMBINE): Add missing parentheses.
6032 (Fchar_table_range, Fset_char_table_default, mapcar1,
6033 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
6035 * lisp.h: Add prototype for getloadavg.
6037 1999-09-14 Andreas Schwab <schwab@gnu.org>
6039 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
6041 * lisp.h: Declare close_file_unwind.
6043 1999-09-14 Richard Stallman <rms@gnu.org>
6045 * filelock.c (get_boot_time): Make the temp name in the proper dir.
6047 1999-09-13 Gerd Moellmann <gerd@gnu.org>
6049 * xdisp.c (redisplay_window): Make sure start_at_line_beg
6050 is always set correctly.
6052 1999-09-13 Dave Love <fx@gnu.org>
6054 * xdisp.c (move_it_in_display_line_to): Make type consistent with
6057 1999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6059 * xdisp.c (QCfile): Move here from xfns.c.
6060 (syms_of_xdisp): Initialize it.
6061 (message2_nolog): Change for Lisp_Object selected_frame.
6062 (message3_nolog, message_with_string, message,
6063 setup_echo_area_for_printing, truncate_echo_area,
6064 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6066 1999-09-13 Dave Love <fx@gnu.org>
6068 * xterm.c: Don't continue #define args for benefit of old cc.
6069 (xt_action_hook): Indent #error for benefit of K&R cc.
6071 1999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6073 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6074 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6075 (XRINGBELL): Removed.
6077 1999-09-13 Dave Love <fx@gnu.org>
6079 * xfns.c (x_put_x_image): Make type consistent with declaration.
6081 * fns.c (Fmake_hash_table): Fix string continuation.
6083 1999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6085 * xfns.c (QCfile): Moved to xdisp.c.
6086 (syms_of_xfns): Don't initialize QCfile.
6087 (check_x_frame): Change for Lisp_Object selected_frame.
6088 (check_x_display_info, x_get_resource_string): Ditto.
6090 1999-09-13 Gerd Moellmann <gerd@gnu.org>
6092 * minibuf.c (choose_minibuf_frame): Don't try to set the
6093 mini-buffer window's buffer, if the buffer is invalid.
6095 * xfns.c (QCfile): Moved to xdisp.c.
6096 (syms_of_xfns): Don't initialize QCfile.
6098 * xdisp.c (QCfile): Move here from xfns.c.
6099 (syms_of_xdisp): Initialize it.
6101 * lisp.h (selected_frame): Add external declaration.
6103 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
6104 (Fx_store_cut_buffer_internal): Ditto.
6105 (Fx_rotate_cut_buffers_internal): Ditto.
6107 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
6109 (Finternal_set_lisp_face_attribute): Ditto.
6110 (Finternal_get_lisp_face_attribute): Ditto.
6111 (Finternal_lisp_face_empty_p): Ditto.
6112 (Fdump_face): Ditto.
6114 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
6115 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
6116 set_terminal_window, set_scroll_region, reassert_line_highlight,
6117 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
6118 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
6119 encode_terminal_code, write_glyphs, term_init): Ditto.
6121 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
6122 (kbd_input_ast, read_input_waiting): Ditto.
6124 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
6126 (read_minibuf): Ditto.
6128 * keyboard.c (command_loop_1): Change for Lisp_Object
6130 (cmd_error_internal, command_loop_1, read_char,
6131 kbd_buffer_get_event, read_avail_input,
6132 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
6133 interrupt_signal, quit_throw_to_read_char): Ditto.
6135 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
6136 (Ffontset_info): DItto.
6138 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
6140 * dispnew.c (selected_frame): Make it a Lisp_Object.
6141 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
6142 (direct_output_for_insert, direct_output_forward_char,
6143 init_display): Ditto.
6145 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
6147 (set_internal): Ditto.
6149 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
6150 (record_buffer): Ditto.
6152 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
6153 (do_switch_frame): Change for Lisp_Object selected_frame.
6154 (Fselected_frame): Ditto.
6155 (Fframe_first_window): Use SELECTED_FRAME.
6156 (Fframe_root_window): Change for Lisp_Object selected_frame.
6157 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
6158 Fprevious_frame, other_visible_frames, Fdelete_frame,
6159 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
6160 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
6161 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
6162 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
6163 Fset_frame_height, Fset_frame_width): Ditto.
6165 1999-09-13 Gerd Moellmann <gerd@gnu.org>
6167 * xdisp.c (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.
6172 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
6173 (Fx_popup_dialog): Ditto.
6175 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
6176 (check_x_display_info, x_get_resource_string): Ditto.
6178 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6179 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6180 (XRINGBELL): Removed.
6182 * window.c (Fminibuffer_window): Change for Lisp_Object
6184 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
6185 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
6186 Fcurrent_window_configuration, init_window_once): Ditto.
6188 * frame.h (SELECTED_FRAME): New.
6190 1999-09-12 Ken Raeburn <raeburn@gnu.org>
6192 * category.c (word_boundary_p): Use XCAR and XCDR.
6193 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
6194 Fregister_code_conversion_map): Likewise.
6195 * coding.c (setup_coding_system, detect_coding_system,
6196 Ffind_operation_coding_system, Fset_coding_priority_internal):
6198 * doc.c (get_doc_string, Fdocumentation,
6199 store_function_docstring): Likewise.
6200 * editfns.c (save_restriction_restore): Likewise.
6201 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
6202 skip_debugger, find_handler_clause, Fautoload, Fapply,
6203 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
6205 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
6206 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
6207 Fread_file_name): Likewise.
6208 * filelock.c (unlock_all_files): Likewise.
6209 * insdel.c (Fcombine_after_change_execute): Likewise.
6210 * intervals.c (adjust_intervals_for_insertion): Likewise.
6211 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
6212 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
6213 store_in_keymap, Fcopy_keymap, define_as_prefix,
6214 current_minor_maps, Faccessible_keymaps,
6215 accessible_keymaps_char_table, Fkey_description,
6216 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
6217 describe_buffer_bindings, describe_map_tree, shadow_lookup,
6218 describe_map): Likewise.
6219 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
6220 read_list, init_lread): Likewise.
6221 * search.c (Fmatch_data): Likewise.
6222 * sunfns.c (Fsun_menu_internal): Likewise.
6223 * syntax.c (describe_syntax): Likewise.
6224 * undo.c (record_insert, record_delete, Fundo_boundary,
6225 truncate_undo_list): Likewise.
6226 * vmsproc.c (child_sig): Likewise.
6228 * editfns.c (Fformat): Use XFLOAT_DATA.
6230 1999-09-12 Gerd Moellmann <gerd@gnu.org>
6232 * keyboard.c (command_loop_1): Resize mini-window to the
6233 exact size of a message displayed, if any.
6235 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
6236 to exact size if exact_p is non-zero.
6237 (display_echo_area_1): Call resize_mini_window with
6239 (redisplay_internal): Ditto.
6240 (resize_echo_area_axactly): New.
6242 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
6245 * dispextern.h: Change prototype of resize_mini_window.
6246 Add prototype for resize_echo_area_axactly.
6248 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
6249 (syms_of_xfaces): Defsubr accordingly.
6251 * xdisp.c (hscroll_window_tree): Choose cursor row from
6252 desired or current matrix.
6253 (redisplay_internal): Hscroll before updating.
6255 1999-09-12 Gerd Moellmann <gerd@gnu.org>
6257 * syntax.c (Fforward_word): Use prompt_end_charpos instead
6258 of minibuffer_prompt_length.
6260 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
6261 of minibuffer_prompt_length.
6262 (read_minibuf_unwind): Ditto.
6263 (Fminibuffer_complete_and_exit): Ditto.
6264 (Fminibuffer_complete_word): Ditto.
6265 (Fminibuffer_prompt_end): Ditto.
6267 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
6268 of minibuffer_prompt_length.
6269 (Fline_beginning_position): Ditto.
6271 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
6272 of minibuffer_prompt_length.
6273 (Fmake_indirect_buffer): Ditto.
6274 (Fkill_buffer): Ditto.
6275 (Ferase_buffer): Ditto.
6277 * buffer.h (prompt_end_charpos): Replaces
6278 minibuffer_prompt_length.
6280 * minibuf.c (read_minibuf): Return mini-buffer contents
6283 * editfns.c (make_buffer_string_both): Take out the code
6284 to handle mini-buffer prompts.
6285 (Fbuffer_string): Handle the prompt here, instead.
6287 * xfaces.c (lface_from_face_name): Resolve face aliases.
6288 (Qmode_line): Replaces Qmodeline.
6289 (realize_basic_faces): Use Qmode_line.
6290 (syms_of_xfaces): Initialize Qmode_line.
6292 1999-09-12 Gerd Moellmann <gerd@gnu.org>
6294 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
6295 current column after inserting prompt.
6296 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
6298 * xfaces.c (Qframe_update_face_colors): New.
6299 (syms_of_xfaces): Initialize call.
6300 (update_face_from_frame_parameter): Call that function when
6301 the frame's background changes.
6303 1999-09-12 Richard Stallman <rms@gnu.org>
6305 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
6307 1999-09-12 Ken Raeburn <raeburn@gnu.org>
6309 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
6310 mark_object, mark_buffer): Use XCAR and XCDR.
6311 * bytecode.c (Fbyte_code): Likewise.
6312 * callint.c (Fcall_interactively, Fprefix_numeric_value):
6314 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
6315 getenv_internal): Likewise.
6316 * dired.c (file_name_completion): Likewise.
6317 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
6318 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
6319 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
6320 * indent.c (Fcompute_motion): Likewise.
6321 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
6322 list_processes_1, Fstart_process, Fopen_network_stream,
6323 wait_reading_process_input, read_process_output_call,
6324 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
6325 status_notify, wait_reading_process_input): Likewise.
6326 * textprop.c (PLIST_ELT_P, property_value, set_properties,
6327 extend_property_ranges): Likewise.
6328 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
6329 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
6330 x_report_frame_params, x_set_cursor_type, x_icon_type,
6331 x_figure_window_size, Fx_create_frame, w32_load_system_font,
6332 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
6333 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
6334 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
6335 x_display_info_for_name, Fx_display_list): Likewise.
6336 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
6337 Fx_popup_menu, Fx_popup_dialog): Likewise.
6338 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
6339 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
6340 w32_term_init, x_delete_display): Likewise.
6341 * xfns.c (x_window_to_frame, x_any_window_to_frame,
6342 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
6343 x_top_window_to_frame, x_set_frame_parameters,
6344 x_report_frame_params, x_set_cursor_type, x_icon_type,
6345 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
6346 Fx_display_list, x_create_tip_frame): Likewise.
6347 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
6348 Fx_popup_menu, Fx_popup_dialog): Likewise.
6349 * xselect.c (x_own_selection, x_get_local_selection,
6350 x_handle_selection_request, x_handle_selection_clear,
6351 x_clear_frame_selections, wait_for_property_change_unwind,
6352 wait_for_property_change, x_handle_property_notify,
6353 copy_multiple_data, x_get_foreign_selection,
6354 lisp_data_to_selection_data, clean_local_selection_data,
6355 x_handle_selection_notify, Fx_get_selection_internal,
6356 x_disown_buffer_selections): Likewise.
6357 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
6358 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
6361 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
6363 * bytecode.c (Fbyte_code): Likewise.
6364 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
6365 fmod_float): Likewise.
6367 1999-09-11 Richard Stallman <rms@gnu.org>
6369 * xdisp.c (run_window_scroll_functions): If hook functions switch
6370 buffers, switch back after.
6372 1999-09-11 Ken Raeburn <raeburn@gnu.org>
6374 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
6375 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
6376 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
6377 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
6378 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
6380 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
6383 1999-09-10 Richard Stallman <rms@gnu.org>
6385 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
6386 not RevertToPointerRoot.
6387 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6388 Fix the code to clear around the scroll bar.
6390 1999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
6392 * print.c: Support print-circle and related features.
6393 (Vprint_gensym_alist): Removed.
6394 (Vprint_circle, Vprint_continuous_numbering, print_number_index
6395 Vprint_number_table): New variables.
6396 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
6397 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
6398 (print, print_preprocess, print_preprocess_string, print_object):
6399 New/modified functions with print-circle feature. Use
6400 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
6401 (syms_of_print): Defined new Lisp variables `print-circle',
6402 `print-continuous-numbering', `print-number-table'.
6404 1999-09-10 Gerd Moellmann <gerd@gnu.org>
6406 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
6407 as background color specification instead of an integer.
6408 (image-cache-eviction-delay): Replaces image-eviction-seconds.
6409 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
6410 (clear_image_cache, syms_of_xfns): Use it.
6411 (Qpostscript): Replaces Qghostscript.
6413 (gs_image_p): Ditto.
6414 (syms_of_xfns): Initialize Qpostscript.
6416 1999-09-10 Richard Stallman <rms@gnu.org>
6418 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
6420 1999-09-09 Richard Stallman <rms@gnu.org>
6422 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
6424 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
6426 1999-09-09 Gerd Moellmann <gerd@gnu.org>
6428 * fns.c (Fmakehash): Accept just one optional argument TEST.
6430 * xfns.c (QCindex): New.
6431 (syms_of_xfns): Initialize QCindex.
6432 (gif_load): Use it instead of `:image'.
6434 1999-09-09 Richard Stallman <rms@gnu.org>
6436 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
6437 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
6439 1999-09-08 Gerd Moellmann <gerd@gnu.org>
6441 * xdisp.c (Qwhen): Replaces QCwhen.
6442 (syms_of_xdisp): Initialized it instead of QCwhen.
6443 (handle_single_display_prop): Use it instead of QCwhen.
6445 1999-09-08 Ken'ichi Handa <handa@gnu.org>
6447 * charset.c (translate_char): Reset MSBs of arguments of
6449 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
6451 1999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
6453 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
6455 * fns.c (Fbase64_decode_region): Don't place point outside of the
6456 current accessible portion.
6458 1999-09-07 Richard Stallman <rms@gnu.org>
6460 * keymap.c (fix_submap_inheritance): Do nothing if the proper
6461 parent is an ancestor of SUBMAP; otherwise, add it as the
6464 1999-09-07 Gerd Moellmann <gerd@gnu.org>
6466 * xdisp.c (handle_single_display_prop): Change conditional
6467 display property to `:when FORM . VALUE'.
6469 1999-09-07 Richard Stallman <rms@gnu.org>
6471 * fileio.c (Fwrite_region): Doc fix.
6473 1999-09-07 Stefan Monnier <monnier@cs.yale.edu>
6475 * fileio.c (Qexcl): New variable.
6476 (report_file_error): Handle EEXIST specially.
6477 (Fwrite_region): Special handling for CONFIRM = `excl'.
6478 (syms_of_fileio): Initialize Qexcl.
6480 1999-09-07 Gerd Moellmann <gerd@gnu.org>
6482 * xfns.c (x_set_foreground_color): Call
6483 update_face_from_frame_parameter.
6484 (x_set_background_color): Ditto.
6485 (x_set_mouse_color): Ditto.
6486 (x_set_cursor_color): Ditto.
6487 (x_set_border_color): Ditto.
6488 (x_set_scroll_bar_foreground): Ditto.
6489 (x_set_scroll_bar_background): Ditto.
6491 * xfaces.c (recompute_basic_faces): Clear face cache.
6492 (Finternal_set_lisp_face_attribute): Modify frame parameters
6493 if attributes of certain faces are changed.
6494 (update_face_from_frame_parameter): New.
6496 * xfaces.c (realize_basic_faces): Realize new basic faces.
6498 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
6499 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
6501 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
6502 (syms_of_xfaces): Intialize new symbols.
6504 * fns.c (Fmakehash): Take one argument, test, make all the
6505 rest keyword arguments.
6507 * window.c (Fset_window_margins): Make window the first argument.
6508 (set_window_buffer): Call Fset_window_margins with window as first
6511 1999-09-07 Gerd Moellmann <gerd@gnu.org>
6513 * xfaces.c (Qfringe): Replaces Qmargin.
6515 1999-09-07 Kenichi Handa <handa@etl.go.jp>
6517 * charset.h: Lots of comments fixed.
6518 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
6519 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
6521 * charset.c : Lots of comments fixed.
6522 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
6523 (CHAR_COMPONENTS_VALID_P): Name changed from
6524 CHAR_COMPONENT_VALID_P. Caller changed.
6526 1999-09-06 Richard Stallman <rms@gnu.org>
6528 * insdel.c (syms_of_insdel): Define Lisp variable
6529 inhibit-modification-hooks.
6531 1999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
6533 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
6536 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
6538 1999-09-06 Dave Love <fx@gnu.org>
6540 * unexaix.c: New version incorporating Michael Sperber's changes
6541 from XEmacs. Should solve problems on AIX 4.3.
6543 * lread.c (Vbyte_boolean_vars): New variable.
6544 (defvar_bool, syms_of_lread): Use it.
6546 1999-09-05 Richard Stallman <rms@gnu.org>
6548 * minibuf.c (read_minibuf): Put all three properties on the
6549 same range, the whole prompt.
6551 1999-09-05 Gerd Moellmann <gerd@gnu.org>
6553 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
6554 (Fplay_sound, syms_of_sound): Use it.
6555 (parse_sound): Allow float volume values in the range [0, 1].
6556 (Fplay_sound): Ditto.
6558 * window.c (Fset_window_vscroll): Make window the first argument,
6559 amount to scroll the second. Take non-negative vscroll as
6561 (Fwindow_vscroll): Return non-negative vscroll.
6563 * xfns.c (Fx_show_tip): Improve documentation.
6565 1999-09-05 Gerd Moellmann <gerd@gnu.org>
6567 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
6568 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
6569 `top-line' and `top_line' to `header-line' and `header_line'.
6570 Likewise for similar spellings.
6572 1999-09-05 Gerd Moellmann <gerd@gnu.org>
6574 * xdisp.c (row_containing_pos): New.
6575 (try_window_id): Use it.
6577 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
6578 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
6579 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
6580 Likewise for upper-case etc.
6582 1999-09-05 Gerd Moellmann <gerd@gnu.org>
6584 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6585 Fix reference to renamed variable.
6587 1999-09-04 Gerd Moellmann <gerd@gnu.org>
6589 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
6590 (window_fixed_size_p): Use Qwindow_size_fixed instead of
6592 (syms_of_window): Ditto.
6594 * fns.c (Fmakehash): Exchange optional test and size arguments.
6596 1999-09-03 Gerd Moellmann <gerd@gnu.org>
6598 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
6599 under newly created scroll bar.
6600 (expose_window): If window is not yet fully initialized, do
6601 nothing. This can happen when toolkit scroll bars are used and a
6602 window is split. Reconfiguring the scroll bars will generate an
6603 expose for a newly created window.
6605 * frame.h (struct frame): New member `gamma'.
6607 * xfns.c: Include math.h. Add extern declaration for atof in case
6609 (Qscreen_gamma): New.
6610 (struct x_frame_parm_table): Add prototypes, add
6612 (gamma_correct): New function.
6613 (defined_color): Call it.
6614 (x_set_screen_gamma): New.
6615 (x_set_title): Add parameter old_value.
6616 (RES_TYPE_FLOAT): New.
6617 (x_get_arg): Handle RES_TYPE_FLOAT.
6618 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
6619 (lookup_pixel_color): Change call to x_alloc_nearest_color to
6621 (lookup_rgb_color): Ditto.
6622 (syms_of_xfns): Initialize Qscreen_gamma.
6624 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
6625 New. Allocate color for lwlib widgets.
6626 (x_alloc_nearest_color): Change parameter list include the
6627 frame on which to allocate colors. Gamma-correct colors.
6628 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
6631 * xterm.h: Change protorype of x_alloc_nearest_color.
6633 1999-09-03 Richard Stallman <rms@gnu.org>
6635 * callproc.c: Delete the system-independent include of stdlib.h
6636 (leaving only the one in the WINDOWSNT conditional).
6638 1999-09-03 Andrew Choi <choi@cs.hku.hk>
6640 * callproc.c (call-process) [macintosh]: Call mac_run_command in
6641 sysdep.c. The Mac code is modeled after the DOS code.
6643 * dispextern.h [macintosh]: Include macterm.h to define substitute X
6644 Window types and macros.
6646 * frame.h: Do nothing if included a second time.
6647 (enum output_method): Add mac_output frame type.
6648 (union output_data): Add new alternative `mac'.
6649 (FRAME_MAC_P): New macro.
6651 * frame.c (Fframep) [macintosh]: Handle mac frame type.
6652 (syms_of_frame_1): Initialize Qmac.
6653 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
6654 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
6655 (Fmodify_frame_parameters) [macintosh]: Call
6656 mac_set_frame_parameter in macterm.c.
6658 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
6659 (512) because Mac compilers limit local data of a function to 32K.
6661 * make-docfiles.c: Correctly handle input files with Mac-style
6664 * sysdep.c: Define numerous routines to emulate Unix system calls.
6666 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
6667 file of an X Window environment.
6669 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
6670 x-display-grayscale, x-color-defined-p, and x-color-values.
6672 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
6673 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
6674 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
6675 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
6676 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
6677 New functions, replacing POSIX features.
6679 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
6680 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
6681 (InitEmacsPasswdDir, run_mac_command): New subroutines.
6683 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
6684 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
6685 (myPasswdDir, TempDirName, sys_siglist): New variables.
6687 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
6688 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
6689 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
6690 Define empty stubs so Emacs will link.
6692 1999-09-03 Gerd Moellmann <gerd@gnu.org>
6694 * xdisp.c: Use XCAR and XCDR instead of XCONS.
6696 * window.h: New member frozen_window_start_p.
6698 * window.c (foreach_window, foreach_window_1): New.
6699 (freeze_window_start, freeze_window_starts): New.
6700 (make_window): Initialize frozen_window_start_p.
6701 (replace_window): Ditto.
6702 (Fset_window_point): Remove references to deleted variables.
6703 (Fset_window_start): Ditto.
6705 * xdisp.c (Vresize_mini_config, resize_mini_frame,
6706 resize_mini_initial_height): Removed.
6707 (syms_of_xdisp): Remove references to these variables.
6708 (resize_mini_window): Don't save window configuration, freeze
6709 window starts instead. Enlarge window until displaying an empty
6710 buffer, then shrink it. Make the function externally visible.
6711 (redisplay_window): Treat frozen window start like forced start,
6712 but accept point outside of the window.
6714 * dispextern.h: Add function prototype for resize_mini_window.
6716 * minibuf.c (read_minibuf_unwind): Resize mini-window when
6717 reaching minibuf_level 0.
6719 * lisp.h: Remove extern declarations for variables deleted from
6722 * dispnew.c (adjust_frame_glyphs): Remove reference to
6723 Vresize_mini_config.
6725 1999-09-03 Gerd Moellmann <gerd@gnu.org>
6727 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
6728 to USE_TOOLKIT_SCROLL_BARS.
6730 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
6732 (XTset_vertical_scroll_bar): Clarify position computations. Clear
6733 under newly created scroll bar. Put toolkit scroll bars in the
6734 middle of the area reserved for the scroll bar.
6736 1999-09-03 Kenichi Handa <handa@etl.go.jp>
6738 The following changes are for the new handling of mulitbyte
6739 sequence. Now, except for a composite character, no multibyte
6740 character in string/buffer has trailing garbage bytes. For
6741 instance, the length of string "\201\300\300" is now 2, the first
6742 character is Latin-1 A-grave, the second is raw \300.
6744 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
6746 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
6747 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
6748 (PARSE_COMPOSITE_SEQ): New macro.
6749 (PARSE_CHARACTER_SEQ): New macro.
6750 (PARSE_MULTIBYTE_SEQ): New macro.
6751 (CHAR_PRINTABLE_P): New macro.
6752 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
6753 (STRING_CHAR_AND_LENGTH): Likewise.
6754 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
6755 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
6756 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
6758 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
6759 (SPLIT_CHARACTER_SEQ): New macro.
6760 (SPLIT_MULTIBYTE_SEQ): New macro.
6761 (CHAR_COMPONENT_VALID_P): New macro.
6762 (non_ascii_char_to_string): Generate a multibyte sequence as far
6764 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
6765 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
6766 (split_non_ascii_string): Likewise.
6767 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
6768 (char_printable_p): New function.
6769 (translate_char): Check character by NATNUMP instead of INTEGERP.
6770 (unibyte_char_to_multibyte): Call char_valid_p instead of
6771 VALID_MULTIBYTE_CHAR_P.
6772 (Fmake_char_internal): Check the arguments more rigidly.
6773 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
6774 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
6775 (Fmultibyte_char_to_unibyte): Check the validity of character by
6777 (chars_in_text): Call multibyte_chars_in_text.
6778 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
6779 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
6780 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
6782 * data.c (Faset): Adjust the way to check byte-combining
6783 possibility for the new handling of multibyte sequence.
6785 * editfns.c (Fsubst_char_in_region): Likewise.
6787 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
6788 (string_char_to_byte): Likewise.
6789 (string_byte_to_char): Likewise.
6791 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
6792 macro STRING_CHAR_AND_LENGTH. Caller changed.
6794 * insdel.c (count_combining_composition): New function.
6795 (count_combining_before): Adjust the way to check byte-combining
6796 possibility for the new handling of multibyte sequence. Call
6797 count_combining_composition for a composite character.
6798 (count_combining_after): Likewise.
6800 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
6803 * dispextern.h (struct it): Change the size of the member
6806 * xdisp.c (get_next_display_element): Display incomplete multibyte
6807 sequence (e.g. \222\300) by octal form.
6809 1999-09-02 Gerd Moellmann <gerd@gnu.org>
6811 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
6813 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
6814 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
6816 1999-09-02 Gerd Moellmann <gerd@gnu.org>
6818 * buffer.c (set_buffer_internal): Never set
6819 windows_or_buffers_changed.
6821 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
6822 if we have displayed to the bottom of the window.
6824 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
6825 in both directions. Extend documentation.
6827 1999-09-01 Gerd Moellmann <gerd@gnu.org>
6829 * minibuf.c (read_minibuf): Flush display after setting cursor to
6832 1999-08-31 Gerd Moellmann <gerd@gnu.org>
6834 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
6835 already defined. This avoids a warning from buffer.c.
6837 1999-08-30 Gerd Moellmann <gerd@gnu.org>
6839 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
6841 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
6842 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
6843 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
6845 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
6846 once instead of twice.
6847 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
6849 * xterm.c: Remove unused bitmaps.
6850 (continued_bits, continuation_bits, overlay_bits): Change images.
6851 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
6852 instead of FRAME_X_FLAGS_AREA_WIDTH.
6853 (x_after_update_window_line): Ditto.
6854 (x_draw_bitmap): Likewise.
6855 (x_draw_row_bitmaps): Likewise.
6856 (x_draw_glyph_string_box): Likewise.
6857 (x_draw_glyphs): Likewise.
6858 (x_scroll_run): Likewise.
6859 (expose_window_tree): Likewise.
6860 (note_mode_line_highlight): Likewise.
6861 (XTset_vertical_scroll_bar): Likewise.
6862 (x_clip_to_row): Likewise.
6863 (x_set_window_size): Likewise.
6865 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
6868 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
6870 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
6871 FRAME_FLAGS_AREA_WIDTH.
6873 * window.c (coordinates_in_window): Use
6874 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
6875 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
6878 * widget.c (set_frame_size): Set flags_area_extra to
6879 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
6880 (EmacsFrameSetCharSize): Ditto.
6882 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
6883 instead of FRAME_FLAGS_AREA_WIDTH.
6885 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
6886 FRAME_FLAGS_AREA_COLS once.
6887 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
6888 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
6890 1999-08-30 Gerd Moellmann <gerd@gnu.org>
6892 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
6893 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
6895 1999-08-30 Gerd Moellmann <gerd@gnu.org>
6897 * fns.c (QCweakness): Replaces QCweak.
6898 (Fmake_hash_table): Ditto.
6900 (syms_of_fns): Ditto.
6902 1999-08-29 Richard Stallman <rms@gnu.org>
6904 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
6906 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
6908 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
6909 Add support for nested comments.
6911 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
6912 Consolidate the forward comment code into the new `forw_comment'.
6913 (forw_comment): New subroutine. Added support for nested comments.
6914 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
6915 (Fparse_partial_sexp): Add support for nested comments.
6917 1999-08-28 Ken Raeburn <raeburn@gnu.org>
6919 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
6920 names of structure elements if HIDE_LISP_IMPLEMENTATION is
6921 defined, to help detect code that uses knowledge of the Lisp
6922 internals that it shouldn't have.
6923 (XFLOAT_DATA): New macro.
6925 1999-08-25 Gerd Moellmann <gerd@gnu.org>
6927 * syntax.c (Fforward_word): If in a mini-buffer and moving
6928 backwards, stop in front of the prompt to prevent accidentially
6929 moving into the read-only prompt.
6931 * window.c (Frecenter): Clear frame if called with nil or no arg.
6933 * xdisp.c (resize_mini_window): Don't resize if
6934 Vmax_mini_window_height is nil. Otherwise, use a default if
6935 Vmax_mini_window_height is not ot a number.
6936 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
6938 1999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
6940 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
6941 * m/iris4d.h: Use unexelf for IRIX 5.*.
6942 * m/iris5d.h: Use unexelf for IRIX 6.*.
6943 * unexsgi.c: Deleted.
6945 * unexelf.c: Auto-detect .sbss section.
6946 (round_up): Make it static.
6947 (unexec): Declare alignment as Elf Word. Skip ``Program
6948 segment above .bss'' test on MIPS without .sbss.
6949 Copy sections .got and .sdata1 sections. Adjust offsets in
6950 sections .sdata, .lit4, .lit8, .got and .sdata1.
6952 1999-08-25 Gerd Moellmann <gerd@gnu.org>
6954 * xdisp.c (try_window_id): Remove typo.
6956 1999-08-24 Gerd Moellmann <gerd@gnu.org>
6958 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
6959 unchanged text at the bottom when computing the cursor position.
6960 (message3_nolog): Raise frame only if minibuffer_auto_raise is
6963 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
6965 1999-08-24 Gerd Moellmann <gerd@gnu.org>
6967 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
6968 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
6969 (syms_of_xfaces): Ditto.
6971 * window.c (Fset_window_point): Reset Vresize_mini_config.
6972 (Fset_window_start): Ditto.
6973 (set_window_buffer): Ditto.
6975 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
6977 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
6978 before calling try_window.
6979 (echo_area_display): If height has changed, update other windows.
6980 (resize_mini_frame, resize_mini_initial_height): New.
6981 (resize_mini_window): Save/restore window configuration
6984 * lisp.h (Vresize_mini_config, resize_mini_frame,
6985 resize_mini_initial_height): Add extern declarations.
6987 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
6990 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
6991 being redefined in jconfig.h.
6993 1999-08-23 Ken'ichi Handa <handa@gnu.org>
6995 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
6997 1999-08-22 Gerd Moellmann <gerd@gnu.org>
6999 * alloc.c (mark_glyph_matrix): Mark strings only.
7001 * xdisp.c (redisplay_internal): Clear garbaged frames after
7002 resizing mini-window.
7004 1999-08-22 Gerd Moellmann <gerd@gnu.org>
7006 * xdisp.c (unwind_with_echo_area_buffer): Use
7007 set_buffer_internal_1 instead of set_buffer_internal.
7008 (with_echo_area_buffer): Ditto.
7010 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
7011 only if buffer is displayed somewhere.
7013 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
7015 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
7017 (modify_region): Ditto.
7019 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
7021 * xdisp.c (Vresize_mini_config): New.
7022 (resize_mini_window): Use it to save restore original window
7024 (syms_of_xdisp): Initialize it.
7026 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
7028 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
7030 * xdisp.c (reconsider_clip_changes): New.
7031 (redisplay_internal, redisplay_window): Call it.
7032 (mark_window_display_accurate, redisplay_internal): Set current
7033 matrix' buffer, begv, zv.
7035 * window.c (Fset_window_hscroll): Set
7036 prevent_redisplay_optimizations_p instead of clip_changed.
7037 (Fset_window_hscroll): Ditto.
7038 (temp_output_buffer_show): Ditto.
7039 (Fset_window_vscroll): Ditto.
7041 * buffer.c (reset_buffer): Set clip_changed to 0 and
7042 prevent_redisplay_optimizations_p to 1.
7043 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
7045 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
7046 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
7047 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
7048 END_UNCHANGED): New.
7049 (struct buffer_text): Add beg_unchanged, end_unchanged,
7050 unchanged_modified, overlay_unchanged_modified.
7052 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7053 overlay_unchanged_modified): Removed.
7054 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
7055 (unwind_with_echo_area_buffer): Don't restore them.
7056 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
7057 (text_outside_line_unchanged_p, redisplay_internal,
7058 try_scrolling): Use/set buffer-specific beg/end_unchanged.
7059 (redisplay_window): Let try_window_id be called if more than one
7060 window is displayed. Use/set buffer-specific beg/end_unchanged.
7061 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
7063 Use buffer-specific beg/end_unchanged.
7065 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7066 overlay_unchanged_modified): Remove extern declarations.
7068 * keyboard.c (command_loop_1): Set beg/end_unchanged per
7071 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
7073 (adjust_after_replace): Likewise.
7074 (replace_range, del_range_2, modify_region): Likewise.
7076 * dispnew.c (direct_output_for_insert): Set beg_unchanged
7077 and unchanged_modified per buffer.
7079 * coding.c (code_convert_region): Compute beg/end_unchanged per
7082 * buffer.c (modify_overlay): Compute beg/end_unchanged
7084 (Fget_buffer_create): Initialize new members of the buffer
7087 1999-08-22 Gerd Moellmann <gerd@gnu.org>
7089 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
7091 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
7092 (Qkey_value_weak): Removed.
7093 (make_hash_table): Use nil, `key', `value', t for weakness.
7094 (Fmake_hash_table): Ditto.
7095 (copy_hash_table): New.
7096 (Fcopy_hash_table): New.
7098 1999-08-22 Gerd Moellmann <gerd@gnu.org>
7100 * xfns.c: Call change_frame_size and do_pending_window_change with
7103 1999-08-21 Gerd Moellmann <gerd@gnu.org>
7105 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
7107 (redisplay_internal): Resize mini-window only if text might
7109 (display_echo_area): Reset displayed echo_area_buffer to nil
7110 at the end if we're displaying a nil message.
7112 1999-08-21 Gerd Moellmann <gerd@gnu.org>
7114 * fns.c (hash_lookup): Test with EQ before calling key comparion
7116 (hash_remove): Ditto.
7117 (cmpfn_eq): Removed.
7118 (cmpfn_eql): Don't test with EQ.
7119 (cmpfn_equal): Ditto.
7120 (make_hash_table): Set comparison function for `eq' to null.
7122 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
7123 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
7125 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
7127 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
7128 xterm.c: Call change_frame_size and do_pending_window_change with
7131 * dispnew.c (do_pending_window_change): Add parameter `safe'.
7132 (change_frame_size): Ditto.
7133 (change_frame_size_1): Ditto. Deley size changes if redisplaying
7134 and not called from a safe place.
7135 (window_change_signal): Call change_frame_size with new parameter.
7137 * dispextern.h: Change prototypes for do_pending_window_change
7138 and change_frame_size.
7140 * xfaces.c (face_at_buffer_position): Don't xassert that
7141 window's buffers equals current_buffer; this is not the
7142 case during echo area display.
7144 1999-08-21 Gerd Moellmann <gerd@gnu.org>
7146 * xdisp.c, minibuf.c: Remove conditional compilation on
7147 NO_PROMPT_IN_BUFFER.
7149 * minibuf.c (Fminibuffer_prompt_end): New.
7150 (syms_of_minibuf): Defsubr it. Remove
7151 minibuffer-prompt-in-buffer.
7152 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
7153 Extend documentation.
7155 * xdisp.c (get_next_display_element): Display \r as ^M.
7157 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
7158 under scroll bar widget.
7160 1999-08-21 Gerd Moellmann <gerd@gnu.org>
7162 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
7164 (unwind_redisplay): Return nil.
7165 (clear_garbaged_frames): New.
7166 (redisplay_internal): Use it.
7167 (echo_area_display): Ditto.
7168 (resize_mini_window): Mew.
7169 (display_echo_area_1): Use it to resize echo area window.
7170 (redisplay_internal): Use it to resize active mini-window.
7172 * dispextern.h, lisp.h: Add function prototypes.
7174 * dispnew.c (set_window_cursor_after_update): Do the
7175 cursor_in_echo_area case only for a mini-window showing
7176 a message. Don't let cursor end up after the end of a row.
7178 * xdisp.c (echo_area_glyphs, echo_area_message,
7179 echo_area_glyphs_length, previous_echo_glyphs,
7180 previous_echo_area_message, previous_echo_area_glyphs_length):
7182 (Vmessage_stack, echo_area_buffer, echo_buffer,
7183 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
7184 (message2_nolog): Use set_message and clear_message.
7185 (message3): Rename parameter len to nbytes to make clear what
7187 (message3_nolog): Ditto. Use set_message and clear_message.
7188 (update_echo_area): Rewritten.
7189 (with_echo_area_buffer): New.
7190 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
7191 (setup_echo_area_for_printing): New.
7192 (display_echo_area, display_echo_area_1): New.
7194 (current_message, current_message_1): New.
7195 (push_message, restore_message, pop_message,
7196 check_message_stack): New.
7197 (truncate_echo_area): Rewritten.
7198 (truncate_message_1): New.
7199 (set_message, set_message_1, clear_message): New.
7200 (echo_area_display): Rewritten.
7201 (redisplay_internal): Check for needed echo area update
7203 (redisplay_preserve_echo_area): Rewritten.
7204 (redisplay_window): Check for mini-window displaying echo area
7205 message differently.
7206 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
7207 Remove initialzation of removed variables.
7208 (init_xdisp): Remove references to removed variables.
7210 * dispnew.c (adjust_frame_message_buffer): Removed references
7211 to echo_area_glyphs and previous_echo_glyphs.
7212 (direct_output_for_insert): Check for mini-window displaying
7213 echo area message differently.
7214 (update_frame): Likewise.
7215 (set_window_cursor_after_update): Likewise. In echo area,
7216 don't try to set cursor on rows that aren't enabled.
7218 * print.c: Remove conditional compilation on `standalone'.
7219 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
7220 glyph_to_str_cpy): Remove that section because GLYPHs are no
7221 longer used in that way.
7222 (PRINTDECLARE): Add multibyte.
7223 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
7224 (printbufidx): Removed.
7225 (printchar, strout): Rewritten.
7227 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
7230 (echo_now): Set echo_kboard to the current kboard.
7231 (cancel_echoing): Set echo_kboard to null.
7232 (cmd_error_internal): Use clear_message, remove references
7233 to echo_area_glyphs and echo_area_message.
7234 (command_loop_1): Check for echo area messages differently.
7235 (read_char): Likewise.
7236 (record_menu_key): Use clear_message.
7237 (Fexecute_extended_command): Check for echo area messages
7238 differently. Use push_message, restore_message, pop_message.
7240 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
7243 * emacs.c (shut_down_emacs): Call check_message_stack.
7245 * lisp.h: Add function prototypes and extern declarations for
7246 new functions and variables.
7248 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
7251 * minibuf.c (read_minibuf): Use clear_message instead of
7252 setting echo_area_glyphs.
7253 (Fminibuffer_completion_help): Ditto.
7255 * editfns.c (Fcurrent_message): Rewritten.
7257 * frame.c, window.h: Remove references to echo_area_glyphs
7258 and previous_echo_glyphs.
7260 1999-08-21 Dave Love <fx@gnu.org>
7262 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
7263 * aix4-1.h: Likewise.
7265 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
7267 1999-08-20 Gerd Moellmann <gerd@gnu.org>
7269 * xfns.c: Remove tiff34 prefix from include.
7271 1999-08-20 Dave Love <fx@gnu.org>
7273 * cm.c: Revert previous change.
7275 1999-08-19 Gerd Moellmann <gerd@gnu.org>
7277 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
7278 under scroll bar with width FRAME_SCROLL_BAR_COLS.
7280 1999-08-18 Dave Love <fx@gnu.org>
7282 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
7285 * doprnt.c: Use stdlib.h, unistd.h.
7287 * config.in: Add HAVE_TERMCAP_H.
7289 * cm.c: Use termcap.h.
7291 1999-08-18 Gerd Moellmann <gerd@gnu.org>
7293 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
7294 FRAME_X_WINDOW (f) being null at the of the function. If widgets
7295 cannot be created we will already have crashed earlier. Call
7296 lw_set_main_areas with a null menu-bar widget, so that we have
7297 a reasonable default.
7298 (Fx_create_frame): Rearranged so that Lisp errors during frame
7299 initialization cause less damage. Initialize menu bar widget
7302 1999-08-18 Gerd Moellmann <gerd@gnu.org>
7304 * dispnew.c (update_frame_line): Fix previous change. If writing
7305 whole line clear to end of frame.
7307 1999-08-17 Gerd Moellmann <gerd@gnu.org>
7309 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
7310 and `right-bitmap-area' if position is in the bitmap areas. This
7311 avoids an error when clicking on the bitmap areas. Instead, they
7312 are currently treated like clicks inside the window.
7313 (coordinates_in_window): Return 5 and 6 for bitmap areas.
7314 (Qleft_bitmap_area, Qright_bitmap_area): New.
7315 (syms_of_window): Initialize new symbols.
7317 * dispnew.c (update_frame_line): If writing whole line,
7318 don't write trailing spaces unless we must.
7320 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
7321 (redisplay_internal): Register unwind_redisplay with
7322 register_unwind_protect.
7323 (try_window_reusing_current_matrix): If new start > old start,
7324 give up if start pos of first reusable row is not equal to new
7327 * eval.c (Fsignal): Don't reset redisplaying_p here.
7329 * xterm.c (expose_area): If row extends face to end of line,
7330 write the whole line.
7332 1999-08-16 Gerd Moellmann <gerd@gnu.org>
7334 * dispextern.h (struct it): Remove member
7335 show_trailing_whitespace_p.
7337 * dispnew.c (direct_output_for_insert): Use
7338 Vshow_trailing_whitespace instead of former iterator member
7339 show_trailing_whitespace_p.
7340 (direct_output_forward_char): Don't do it if hightlighting
7341 trailing whitespace.
7343 * xdisp.c (Qshow_trailing_whitespace): Removed.
7344 (Vshow_trailing_whitespace): Added.
7345 (init_iterator): Remove initialization code for
7346 show_trailing_whitespace_p.
7347 (redisplay_internal): Don't try cursor movement in this_line
7348 if showing trailing whitespace.
7349 (redisplay_window): Likewise for cursor movement in current
7350 matrix and try_window_id.
7351 (try_window_reusing_current_matrix): Likewise.
7352 (trailing_whitespace_p): Return 0 if trailing whitespace is
7354 (display_line): Use Vshow_trailing_whitespace instead of
7355 former iterator member show_trailing_whitespace_p.
7356 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
7358 1999-08-16 Gerd Moellmann <gerd@gnu.org>
7360 * window.c (Fpos_visible_in_window_p): Rewritten.
7362 * xfaces.c (add_to_log): Renamed from display_message.
7363 Don't display messages in echo area.
7365 * xterm.c (x_draw_glyph_string_box): Use the background width
7366 of the glyph string for the width of the box.
7368 1999-08-16 Stefan Monnier <monnier@cs.yale.edu>
7370 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
7372 1999-08-16 Geoff Voelker <voelker@cs.washington.edu>
7374 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
7375 background first, and then set other parameters that might
7376 depend upon their new values.
7378 1999-08-15 Gerd Moellmann <gerd@gnu.org>
7380 * xfaces.c (Vfont_list_limit): New.
7381 (syms_of_xfaces): Make it a user-variable.
7382 (DEFAULT_FONT_LIST_LIMIT): New.
7383 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
7384 maximally that number of fonts, otherwise use
7385 DEFAULT_FONT_LIST_LIMIT.
7386 (Fx_font_family_list): Bind `font-list-limit' to higher values
7387 until we have all fonts.
7388 (Fxfont_list): Additionally return the full names of fonts and
7389 their registry and encoding.
7391 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
7392 Simplify clearing "under" scroll bar.
7394 * window.c (Qfixed_window_size): New.
7395 (syms_of_window): Initialiaze it.
7396 (check_all_windows): Add return type void.
7397 (window_fixed_size_p): New. Return non-zero if window
7399 (window_min_size_1): New.
7400 (window_min_size): Handle fixed-size windows.
7401 (size_window): New. Rewritten combination of set_window_height and
7402 set_window_width that handles fixed-size windows.
7403 (set_window_height): Call it.
7404 (set_window_width): Call it.
7405 (Fsplit_window): Give an error on attempt to split a fixed-size
7407 (change_window_height): Partly rewritten to handle fixed-size
7410 1999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7412 * process.c (Fopen_network_stream): Fix previous change.
7414 1999-08-13 Karl Heuer <kwzh@gnu.org>
7416 * xdisp.c (line_number_display_limit_width): New var.
7417 (decode_mode_spec): Use it instead of hardcoded value.
7418 (syms_of_xdisp): Defvar it.
7420 1999-08-13 Richard M. Stallman <rms@gnu.org>
7422 * eval.c (run_hook_list_with_args): Gcpro `globals'.
7423 (run_hook_with_args): Likewise.
7425 * window.h (struct window): New field too_small_ok.
7427 * window.c (set_window_height, set_window_width):
7428 If window starts out "too small", set its too_small_ok flag.
7429 If window's too_small_ok flag is set, don't delete it
7430 unless it is so small it would cause a crash.
7432 1999-08-13 Gerd Moellmann <gerd@gnu.org>
7434 * window.c (MINSIZE): Removed.
7435 (window_min_size): New.
7436 (set_window_height): Use window_min_size.
7437 (change_window_height): Ditto.
7439 1999-08-12 Gerd Moellmann <gerd@gnu.org>
7441 * indent.c (vmotion): Don't add in mini-buffer prompt width
7442 if prompts are inserted into mini-buffer.
7444 1999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7446 * config.in: Add HAVE_GETADDRINFO.
7447 * process.c (Fopen_network_stream): Use getaddrinfo.
7449 1999-08-11 Gerd Moellmann <gerd@gnu.org>
7451 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
7454 * xdisp.c (face_before_or_after_it_pos): If position after
7455 or before iterator's current position in the buffer is out
7456 of bounds, return the iterator's original face id.
7458 * dispnew.c (mirror_make_current): If desired row isn't enabled,
7459 just swap glyphs pointers between current and desired row.
7460 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
7461 desired matrix method string to current matrix.
7463 1999-08-11 Kenichi Handa <handa@etl.go.jp>
7465 * lisp.h (CHAR_MODIFIER_MASK): New macro.
7467 * lread.c (read_escape): For Control modifier, pay attention to
7468 multibyte character.
7469 (read1): Likewise. Singal error or a multibyte character which
7470 has a modifer bit. Check validity of Shift modifer.
7472 * charset.c (non_ascii_char_to_string): Handle modifier bits as
7473 the same as Lisp reader.
7475 1999-08-10 Richard M. Stallman <rms@gnu.org>
7477 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
7479 1999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
7481 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
7483 1999-08-10 Eli Zaretskii <eliz@gnu.org>
7485 * msdos.c (IT_set_face): Abort if the default face is not realized
7487 (IT_write_glyphs): Reset the screen face to the default face
7488 before writing glyphs.
7490 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
7491 colors from the frame here.
7492 (realize_tty_face) [MSDOS]: Do it here. Update the face
7493 attributes with the actual name of the color taken from the
7496 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
7497 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
7499 * frame.c (Fframe_parameters): Swap foreground and background
7500 colors returned in frame parameters if the frame has reverse in
7501 its parameter alist.
7502 (Fmake_terminal_frame): Make a unique copy of face_alist for
7505 1999-08-07 Richard Stallman <rms@gnu.org>
7507 * buffer.c (Fprevious_overlay_change): Just return
7508 the answer obtained from overlays_at.
7510 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
7511 Use XpmCloseness and attrs.closeness instead.
7513 1999-08-06 Richard Stallman <rms@gnu.org>
7515 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
7517 1999-08-06 Geoff Voelker <voelker@cs.washington.edu>
7519 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
7520 Ffile_attributes_lessp): New functions.
7521 (Fdirectory_files): Use directory_files_internal.
7522 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
7523 Ffile_attributes_lessp.
7525 * w32.c (stat): Check for directory ending in separator when
7526 doing readdir fast path.
7528 * w32fns.c (x_set_icon_type): Support setting frame icons.
7529 * w32term.c (x_bitmap_icon): New function.
7530 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
7532 1999-08-06 Gerd Moellmann <gerd@gnu.org>
7534 * xdisp.c (set_iterator_to_next): After delivering a character
7535 from a display vector, restore face and charset to what they were
7536 before the display vector was processed.
7538 1999-08-06 Gerd Moellmann <gerd@gnu.org>
7540 * xdisp.c (reseat_at_next_visible_line_start): New parameter
7542 (set_iterator_to_next): After delivering last char
7543 from display vector, reseat on next visible line start if
7545 (next_element_from_buffer): Set dpvec_char_len to -1 for
7548 1999-08-06 Gerd Moellmann <gerd@gnu.org>
7550 * xdisp.c (compute_line_metrics): If first line's physical ascent
7551 is larger than its logical ascent, use the physical ascent, and
7552 make the row taller. Set row's overlapping_p flag.
7554 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
7555 (direct_output_for_insert): Ditto.
7557 * dispextern.h (struct glyph_row): Add overlapping_p.
7559 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
7561 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
7562 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
7564 * dispnew.c (direct_output_for_insert): Don't use this method if
7565 row is overlapped by others.
7566 (update_text_area): Write full line if current line is overlapped.
7567 (redraw_overlapped_rows): New.
7568 (update_window): Call it.
7569 (redraw_overlapping_rows): New.
7570 (update_window): Call it.
7571 (scrolling_window): Make sure overlapped_p flag in current rows is
7573 (row_equal_p): Take rows overlapped_p flag into account.
7575 * dispextern.h (struct glyph_row): Add flag overlapped_p.
7577 * xterm.c (x_fix_overlapping_area): New.
7578 (x_redisplay_interface): Add x_fix_overlapping_area.
7580 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
7582 1999-08-06 Gerd Moellmann <gerd@gnu.org>
7584 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
7585 (struct glyph_string): Add member for_overlaps_p.
7586 (x_get_glyph_string_clip_rect): If glyph string draws foreground
7587 of overlapping rows, clip to window bottom.
7588 (x_fill_glyph_string): Add parameter overlaps_p.
7589 (x_fill_composite_glyph_string): Ditto.
7590 (BUILD_GLYPH_STRINGS): Ditto.
7591 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
7592 (x_draw_glyph_string): Don't draw anything but the foreground
7593 if glyph string draws row overlaps.
7595 * dispnew.c (direct_output_for_insert): Don't use this
7596 optimization for rows that overlap others.
7597 (update_window_line): Return non-zero if display has changed.
7598 (update_text_area): Ditto.
7599 (update_window): Record if display has been changed.
7601 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
7603 * dispextern.h (struct redisplay_interface): Add
7604 fix_overlapping_area.
7606 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
7608 * dispextern.h (struct glyph): Add overlaps_vertically_p.
7610 * xterm.c (x_produce_image_glyph): Compute iterator's physical
7612 (x_produce_stretch_glyph): Ditto.
7613 (x_produce_glyphs): Ditto.
7615 * xdisp.c (init_iterator): Reset physical line height info
7616 after producing special glyphs.
7617 (display_toolbar_line): Set physical line height info.
7618 (compute_line_metrics): Ditto.
7619 (display_line): Ditto.
7620 (display_string): Ditto.
7622 * term.c (produce_glyphs): Set iterator's physical height
7625 * dispnew.c (blank_row): Compute glyph row's physical height.
7626 (row_equal_p): Take physical row heights into account.
7627 (direct_output_for_insert): Ditto.
7628 (update_text_area): Ditto.
7630 * dispextern.h (struct glyph_row): Add phys_ascent and
7632 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
7635 1999-08-04 Stefan Monnier <monnier@cs.yale.edu>
7637 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
7639 (no_switch_buffer): New function.
7640 (Fswitch_to_buffer): Call them. Don't get confused
7641 by "same-window" buffers in a dedicated frame.
7643 * window.c (display-buffer): Don't get confused
7644 by "same-window" buffers in a dedicated frame.
7646 1999-08-04 Andreas Schwab <schwab@gnu.org>
7648 * insdel.c (insert_from_string_1): Check gap size against number
7649 of outgoing bytes, not incoming bytes.
7651 1999-08-03 Tom Breton <tob@world.std.com>
7653 * lread.c (read1): Added circular reading code to #N=.
7654 (SUBSTITUTE): New macro.
7655 (seen_list): New variable.
7656 (substitute_object_in_subtree): New function.
7657 (substitute_object_recurse): New function.
7658 (substitute_in_interval): New function.
7660 1999-08-02 Eli Zaretskii <eliz@gnu.org>
7662 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
7664 * frame.c (make_terminal_frame): Don't call init_frame_faces if
7665 noninteractive, for termcap frames as well.
7667 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
7670 1999-08-01 Richard Stallman <rms@gnu.org>
7672 * fns.c (internal_equal): Correct overlay comparison.
7674 1999-07-31 Richard M. Stallman <rms@gnu.org>
7676 * xfns.c (x_set_internal_border_width):
7677 Call do_pending_window_change. Don't block input, don't call XFlush.
7678 (x_set_vertical_scroll_bars): Call do_pending_window_change.
7679 (x_set_scroll_bar_width, x_set_font): Likewise.
7681 * frame.c (Fset_frame_height): Call do_pending_window_change.
7682 (Fset_frame_width, Fset_frame_size): Likewise.
7684 * xterm.c (x_set_window_size): When calling change_frame_size,
7685 specify 1 for DELAY.
7687 * widget.c (EmacsFrameSetCharSize): Don't call
7688 do_pending_window_change here.
7690 1999-07-30 Dave Love <fx@gnu.org>
7692 * config.in: Add HAVE_STDLIB_H.
7694 1999-07-30 Richard M. Stallman <rms@gnu.org>
7696 * process.c (create_process): Detect failure of `pipe'.
7698 1999-07-30 Keisuke Nishida <kei@psn.net>
7700 * alloc.c (allocate_vectorlike): Add missing increment.
7702 * data.c (Fdefalias): Call Ffset instead of duplicating code.
7704 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
7705 before calling indirect_function.
7707 1999-07-30 Eli Zaretskii <eliz@gnu.org>
7709 * dispextern.h (load_color, lookup_derived_face): Declare
7712 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
7713 it will be done later.
7715 * frame.c (make_terminal_frame) [MSDOS]: Don't call
7716 init_frame_faces if non-interactive.
7717 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
7718 array with a call to msdos_stdcolor_name. The font name is now
7719 "ms-dos", consistent with realize_tty_face.
7721 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
7724 * window.c (Fset_window_configuration) [MSDOS]: Don't call
7725 x_set_toolbar_lines.
7727 * xfaces.c (load_color): Remove static from definition and remove
7729 [MSDOS]: Add a DOS-specific version of load_color.
7730 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
7731 (lookup_derived_face): New function.
7732 (realize_default_face): Support MSDOS frames.
7733 [MSDOS]: If fore/background colors are unspecified, inherit them
7735 (realize_face): Support MSDOS frames.
7736 (realize_tty_face): Support MSDOS frames.
7737 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
7738 load_color to try to find a suitable approximation. If the face
7739 is inverse-video, swap the foreground and background colors.
7741 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
7744 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
7746 * msdos.h: Remove redundant declarations (most of them are now in
7749 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
7750 Use default frame colors if the face doesn't specify them; invert
7751 the colors if highlight is ON.
7752 (IT_write_glyphs): Rewritten for the new redisplay engine.
7753 (IT_change_line_highlight): Add (unused) parameter Y, since that's
7754 how the hook is called by term.c.
7755 (IT_copy_glyphs): New function, copies an area of the display in
7757 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
7758 redisplay now calls it even if char_ins_del_ok is zero.
7759 (IT_set_frame_parameters): Prototype changed. Calls the new
7760 load_color. Puts the new fore/background colors into the default
7761 face on current frame.
7762 (IT_menu_display): Rewritten to handle the new struct glyph
7763 instead of a char array.
7764 (XMenuActivate): Call lookup_derived_face to create and use
7765 special faces for the pop-up and drop-down menus.
7767 1999-07-29 Gerd Moellmann <gerd@gnu.org>
7769 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
7770 XawScrollbarSetThumb if thumb parameters haven't changed because
7771 that function apparently isn't optimized for this case.
7773 1999-07-29 Eli Zaretskii <eliz@gnu.org>
7775 * msdos.c (getdefdir): Don't return failure indication when
7776 _fixpath sets errno to ENOSYS.
7778 1999-07-28 Gerd Moellmann <gerd@gnu.org>
7780 * xdisp.c (string_char_and_length): New. Use it everywhere
7781 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
7783 1999-07-28 Kenichi Handa <handa@etl.go.jp>
7785 * fns.c (count_combining): New function.
7786 (struct textprop_rec): New structure.
7787 (concat): Copy text properties correctly when byte combining
7790 1999-07-28 Gerd Moellmann <gerd@gnu.org>
7792 * xterm.c (x_setup_relief_color): Don't try smart color allocation
7794 (x_draw_row_bitmaps): If face has stipple, don't switch
7795 to foreground color for clearing areas, and set the fill style.
7797 * xfaces.c (load_face_colors): Load background color if setting
7799 (prepare_face_for_display): Use FillOpaqueStippled instead of
7802 1999-07-26 Ken'ichi Handa <handa@gnu.org>
7804 * xterm.c (x_find_ccl_program): Add casting.
7806 * w32fns.c (w32_find_ccl_program): Add casting.
7808 1999-07-27 Gerd Moellmann <gerd@gnu.org>
7810 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
7812 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
7813 because this will try to access a nonexisting widget.
7815 1999-07-26 Markus Rost <rost@gnu.org>
7817 * fns.c (Fgethash): Fix order of variables (patch by gerd).
7821 1999-07-26 Gerd Moellmann <gerd@gnu.org>
7823 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
7824 value to frame width and height.
7826 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
7827 into account for full-width windows. Don't add scroll bar width
7828 to width of clip rect.
7829 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
7830 (x_set_glyph_string_background_width): Add 1 to background width.
7831 (x_draw_glyphs): Take internal border into account for full-width
7834 1999-07-26 Richard M. Stallman <rms@gnu.org>
7836 * xfns.c (x_set_mouse_color): Always unload the old color.
7837 Don't allow nil as color value.
7838 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
7839 Always unload the old color.
7841 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
7843 1999-07-26 Karl Heuer <kwzh@gnu.org>
7845 * fns.c (Fy_or_n_p): Doc fix.
7847 1999-07-26 Kenichi Handa <handa@etl.go.jp>
7849 * ccl.h (setup_ccl_program): The type is changed to `int'.
7851 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
7852 stored in the following CCL code. Adjusted for the change of
7854 (resolve_symbol_ccl_program): Adjusted for the new style of
7855 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
7856 is resolving failed.
7857 (ccl_get_compiled_code): New function.
7858 (setup_ccl_program): Function type changed from `void' to `int'.
7859 Resolve symbols in CCL_PROG.
7860 (Fccl_program_p): New function.
7861 (Fccl_execute): Get compiled CCL code by just calling
7863 (Fccl_execute_on_string): Likewise.
7864 (Fregister_ccl_program): Adjusted for the change of
7867 * coding.c (setup_coding_system): Get compiled CCL code by just
7868 calling setup_ccl_program.
7870 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
7871 calling setup_ccl_program.
7873 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
7874 calling setup_ccl_program.
7876 1999-07-23 Gerd Moellmann <gerd@gnu.org>
7878 * xfaces.c (frame_update_line_height): Just use the height of the
7879 frame's fontset or font, instead of taking face fonts into
7882 * xdisp.c (get_next_display_element): Display DEL as `^?'.
7884 1999-07-23 Richard M. Stallman <rms@gnu.org>
7886 * window.c (Fsplit_window): For default size, round up for left window.
7888 1999-07-21 Joe Ramey <ramey@ti.com>
7890 * filelock.c (lock_if_free): Return -1 if check_lock_owner
7891 has returned -1 (lockfile exists but is not a symlink?).
7893 1999-07-20 Gerd Moellmann <gerd@gnu.org>
7895 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
7896 because of a change in cursor_gc made in 20.4.
7898 1999-07-19 Gerd Moellmann <gerd@gnu.org>
7900 * xterm.c (x_calc_absolute_position): Subtract menu bar height
7901 for YNegative, if using X toolkit.
7903 * xfns.c (x_real_positions): Don't subtract window borders
7904 from positions returned.
7906 1999-07-17 Gerd Moellmann <gerd@gnu.org>
7908 * xrdb.c (x_load_resources): Set double-click time defaults
7909 for Motif list boxes from double-click-time.
7911 * fns.c (Vhash_table_tests): Remvoed.
7912 (Qhash_table_test): New.
7913 (syms_of_fns): Initialize Qhash_table_test.
7914 (Fmake_hash_table): Look up user-defined tests in symbol prop
7916 (Fdefine_hash_table_test): Store test and hash function as
7917 symbol prop `hash-table-test'.
7918 (make_hash_table): Add parameters user_test and user_hash.
7920 * window.c (set_window_buffer): Set window margins for tty
7922 (Fset_window_margins): Ditto.
7924 * term.c (append_glyph): Use glyph area of iterator instead of
7927 * dispnew.c (update_frame_1): Add left margin width to cursor
7929 (direct_output_for_insert): Ditto.
7930 (direct_output_forward_char): Ditto.
7932 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
7934 * dispextern.h (struct glyph_matrix): Add top_line_p.
7936 1999-07-16 Gerd Moellmann <gerd@gnu.org>
7938 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
7941 * fns.c (cmpfn_eq): Add hash code parameters.
7943 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
7944 (cmpfn_user_defined): Likewise.
7946 1999-07-15 Gerd Moellmann <gerd@gnu.org>
7948 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
7950 * fns.c (maybe_resize_hash_table): Correct computation of
7952 (make_hash_table): Ditto.
7955 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
7957 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
7958 (survives_gc_p): Make it externally visible.
7959 (mark_object): Ditto.
7961 * fns.c (remove_hash_entry): Removed.
7962 (sweep_weak_hash_tables): New.
7964 * print.c (print): Print more information about hash tables.
7966 * xfns.c (image_spec_hash): Removed.
7967 (lookup_image): Use sxhash instead of image_spec_hash.
7968 (image_spec_equal_p): Removed.
7969 (lookup_image): Use Fequal instead of image_spec_equal_p.
7971 1999-07-14 Gerd Moellmann <gerd@gnu.org>
7973 * lisp.h (P_): Moved to top of file.
7975 * fns.c (make_hash_table): Set new members.
7977 * alloc.c (mark_object): Mark hash table's user_hash_function.
7978 Mark index vector for weak hash tables.
7980 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
7981 user_hash_function, cmpfn, and hashfn.
7983 * fns.c (build_hash): Removed.
7984 (hash_test): Removed.
7985 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
7986 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
7988 1999-07-13 Gerd Moellmann <gerd@gnu.org>
7990 * alloc.c (survives_gc_p): New.
7992 * print.c (print): Add hash table handling.
7994 * alloc.c (mark_object): Add code to mark hash tables.
7996 * lisp.h (GC_HASH_TABLE_P): New.
7998 * emacs.c (main): Call init_fns.
8000 * fns.c (init_fns): New.
8002 * fns.c: Add hash table implementation.
8004 * lisp.h (PVEC_HASH_TABLE): New.
8005 (struct Lisp_Hash_Table): New.
8007 (XSET_HASH_TABLE): New.
8008 (HASH_TABLE_P): New.
8009 (CHECK_HASH_TABLE): New.
8010 (DEFAULT_HASH_SIZE): New.
8011 (DEFAULT_REHASH_THRESHOLD): New.
8012 (DEFAULT_REHASH_SIZE): New.
8014 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
8015 (x_write_glyphs): Compute overwritten cursor using real start
8016 and end positions of display.
8017 (x_insert_glyphs): Ditto.
8019 1999-07-10 Gerd Moellmann <gerd@gnu.org>
8021 * keyboard.c (read_char): Use message3_nolog to show help-echo.
8023 * dispnew.c (blank_row): Add y-position as parameter. Compute
8026 * xdisp.c (next_element_from_string): Give padding spaces
8029 * dispnew.c (adjust_glyph_matrix): Some work to support
8030 marginals areas on tty frames in a future version.
8031 (allocate_matrices_for_frame_redisplay): Ditto.
8033 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
8034 to zero if number of glyphs in the row is <= 1.
8036 1999-07-09 Gerd Moellmann <gerd@gnu.org>
8038 * dispnew.c (buffer_posn_from_coords): Take left marginal area
8041 * xdisp.c (handle_display_prop): Don't reset area if handing
8042 a property from a string that came from a `display' property.
8043 (handle_single_display_prop): Don't handle recursive `display'
8045 (handle_single_display_prop): Handle some display property
8046 forms for terminal frames.
8047 (Qimage): Moved here from xfns.c.
8049 * dispextern.h (struct it): New field string_from_display_prop_p.
8051 * xterm.c (x_clip_to_row): Don't let clip_rect include top
8054 1999-07-08 Gerd Moellmann <gerd@gnu.org>
8056 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
8058 * window.c (set_window_buffer): Set window's vscroll to zero.
8060 * xdisp.c (QCwhen): New.
8061 (display_prop_end): New.
8062 (handle_single_display_prop): Use it.
8063 (debug_method_add): Print buffer name if tracing.
8064 (try_window_reusing_current_matrix): Compute visible height
8065 of reused rows. Fix cursor position calculation in case of
8068 * dispextern.h (struct redisplay_interface): Add parameter
8069 cursor_on_p to update_window_end_hook.
8071 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
8073 1999-07-07 Gerd Moellmann <gerd@gnu.org>
8075 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
8076 doesn't become negative when decrementing it.
8078 * eval.c (Fsignal): Reset redisplaying_p to zero.
8080 * xdisp.c (try_window_reusing_current_matrix): Call hooks
8082 (try_window_id): Ditto.
8084 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
8085 (x_scroll_run): Ditto.
8086 (any_help_event_p): New.
8087 (x_initialize): Set it to zero.
8088 (XTread_socket): Clear help echo only if any_help_event_p.
8090 * xdisp.c (init_iterator): Set top_line_p.
8091 (start_display): Use correct initial y if top-line is present.
8092 (make_cursor_line_fully_visible): Bug fixes for top-line.
8093 (try_scrolling): Ditto.
8094 (try_window_reusing_current_matrix): Ditto.
8096 * dispextern.h (struct it): Add top_line_p.
8098 * dispnew.c (shift_glyph_matrix): Move some computations out
8101 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
8104 1999-07-06 Gerd Moellmann <gerd@gnu.org>
8106 * dispnew.c (update_frame_1): When setting cursor in echo area,
8107 skip only over padding spaces at the end.
8109 * xfaces.c (realize_tty_face): Set face's font_name field to
8112 * term.c (update_end): Turn cursor on only if selected window's
8113 cursor_off_p flag is not set.
8115 1999-07-05 Gerd Moellmann <gerd@gnu.org>
8117 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
8118 (TS_cursor_normal): Renamed from TS_end_visual_mode.
8119 (TS_cursor_invisible): New.
8120 (term_init): Initialize TS_cursor_invisible.
8121 (tty_hide_cursor): New.
8122 (tty_show_cursor): New.
8123 (update_end): Show tty cursor.
8124 (update_begin): Hide tty cursor to prevent cursor flickering
8125 during redisplays triggered by timers (stealth fontification).
8127 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
8129 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
8131 (x_handle_toolbar_click): Set modifier bits.
8133 1999-07-04 Gerd Moellmann <gerd@gnu.org>
8135 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
8136 instead of a pointer to a volatile input_event.
8137 (kbd_buffer_store_event): Remove volatile modifier from
8138 declaration of local variable `sp'.
8139 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
8142 1999-07-03 Gerd Moellmann <gerd@gnu.org>
8144 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
8145 only if buffer is modified. Return quickly if changes are
8148 1999-07-02 Gerd Moellmann <gerd@gnu.org>
8150 * dispextern.h (HSCROLL_WINDOWS): Removed.
8152 * xdisp.c (mark_window_display_accurate): Don't set
8154 (redisplay_internal): Don't call redraw_garbaged_frames.
8156 1999-07-01 Gerd Moellmann <gerd@gnu.org>
8158 * xdisp.c (echo_area_display): Don't display truncation marks
8159 for messages because 20.4 doesn't do it either.
8160 (redisplay_window): Case same window start. Instead of giving
8161 up when cursor is partially visible, make it fully visible.
8162 (mark_window_display_accurate): Some cleanup. Record window's
8163 last cursor information.
8164 (debug_method_add): Improved.
8165 (redisplay_internal): Record last cursor info only if not
8166 consider_all_windows_p.
8168 * dispnew.c (update_window): Update top line after scrolling.
8169 (blank_row): Renamed from make_empty_enabled_row.
8170 (increment_glyph_row_buffer_positions): Increment positions
8173 * window.c (Fcoordinates_in_window_p): Add top-line to doc
8176 1999-06-30 Gerd Moellmann <gerd@gnu.org>
8178 * dispnew.c (update_window): Check that updated row is visible.
8180 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
8181 top of window differently.
8183 * xdisp.c (try_window_reusing_current_matrix): Don't do it
8184 if region is showing.
8186 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
8187 avoiding matrix reallocation. Set window_vscroll in matrix.
8189 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
8191 * xdisp.c (debug_method_add): New.
8192 (debug_redisplay_method): Removed.
8193 (try_window_reusing_current_matrix): Handle case where old
8194 window start is the same as new window start.
8196 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
8197 an array instead of a pointer.
8199 * xfns.c (Fx_show_tip): Undo previous change.
8201 * xterm.c (x_append_glyph): Clear glyph->u.val.
8203 * dispextern.h (struct glyph): Increase size of face_id bit-field
8204 for CHAR_GLYPH to 12.
8206 1999-06-29 Gerd Moellmann <gerd@gnu.org>
8208 * xfaces.c (x_charset_registry): Make it externally visible.
8210 1999-06-28 Gerd Moellmann <gerd@gnu.org>
8212 * dispnew.c (update_window): Use mode_line_p flag of rows
8213 instead of WINDOW_WANTS_MODELINE_P.
8215 * xterm.c (clear_mouse_face): Make externally visible.
8217 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
8219 * xterm.c (expose_line): Handle exposure of top-lines.
8221 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
8222 if mouse_face_mouse_frame is null.
8224 * xdisp.c (redisplay_window): If window is echo_area_window,
8225 and update_mode_line is set, update menubar and toolbar.
8227 * dispnew.c (space_glyph): Set its charpos to -1.
8228 (update_frame_1): Ignore trailing padding spaces.
8230 * xdisp.c (next_element_from_c_string): Set position of padding
8233 1999-06-27 Gerd Moellmann <gerd@gnu.org>
8235 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
8238 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
8239 (set_cursor_from_row): Skip over glyphs having a null object at
8241 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
8243 (handle_invisible_prop): Compute next change only when needed.
8244 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
8247 1999-06-26 Gerd Moellmann <gerd@gnu.org>
8249 * xrdb.c (x_load_resources): Don't set resource for double-click
8252 * xdisp.c (try_window_id): Return quickly if all changes are
8253 below the window's current matrix end.
8255 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
8258 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
8259 in desired not in current matrix.
8260 (try_window_reusing_current_matrix): Rotate matrices starting
8261 at start_vpos instead of 0.
8263 * xterm.c (expose_window): Use window_text_bottom_y.
8264 (fast_find_position): Ditto.
8266 * xdisp.c (redisplay_window): Use window_text_bottom_y.
8267 (try_window_reusing_current_matrix): Ditto.
8268 (get_last_unchanged_at_beg_row): Ditto.
8269 (init_iterator): Ditto.
8271 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
8273 (check_matrix_invariants): Use window_text_bottom_y.
8274 (update_window): Ditto.
8275 (scrolling_window): Ditto.
8277 * xdisp.c (window_text_bottom_y): New.
8279 1999-06-25 Gerd Moellmann <gerd@gnu.org>
8281 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
8282 clearing mouse face.
8283 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
8284 event.xcrossing.focus is not set, and focus is in the menu bar,
8285 set focus frame as if event.xcrossing.focus were set.
8287 1999-06-24 Gerd Moellmann <gerd@gnu.org>
8289 * keyboard.c (make_lispy_event): Handle mouse on top lines.
8290 * keyboard.c (make_lispy_movement): Ditto.
8292 * window.c (coordinates_in_window): Return 4 if on top line.
8293 (Fcoordinates_in_window_p): Return `top-line' if on top line.
8295 * xdisp.c (window_box_height): Subtract top line height.
8296 (window_box): Add top line height to top y position if top line
8298 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
8299 the top line row of the window. Set initial y-position to
8300 window's top line height plus delta.
8301 (start_display): Choose start glyph row depending on whether
8302 window has a top line.
8303 (try_scrolling): Take top line height into account for aggressive
8305 (compute_window_start_on_continuation_line): Take top line into
8307 (redisplay_window): Ditto. If top line height has changed,
8308 trigger a new redisplay.
8309 (try_window_reusing_current_matrix): Take top line into account.
8310 (find_last_row_displaying_text): Ditto.
8311 (get_last_unchanged_at_beg_row): DItto.
8312 (try_window_id): Ditto.
8313 (compute_line_metrics): Ditto.
8315 * dispnew.c (shift_glyph_matrix): Compute visible row height
8316 taking top line of window into account.
8317 (update_window): Update top line. If scrolling_window detects
8318 that all rows are equal, only set cursor.
8319 (update_window_line): Call after_update_window_line_hook if
8320 mode_line_p flag of rows has changed.
8321 (scrolling_window): Add parameter top_line_p. Return -1 if
8323 (mode_line_string): Add parameter mode_line_p. Handle strings
8326 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
8327 (MATRIX_FIRST_TEXT_ROW): New.
8328 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
8329 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
8330 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
8331 (MATRIX_TOP_LINE_HEIGHT): New.
8332 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
8333 (CURRENT_TOP_LINE_HEIGHT): New.
8334 (DESIRED_TOP_LINE_HEIGHT): New.
8335 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
8336 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
8337 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
8338 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
8340 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
8342 (x_draw_row_bitmaps): Take top line into account when clearing
8344 (x_estimate_mode_line_height): Replacement for
8345 x_frame_mode_line_height.
8346 (x_get_glyph_string_clip_rect): Take top line into account.
8347 (x_clear_end_of_line): Ditto.
8348 (note_mode_line_highlight): Add parameter mode_line_p. Handle
8350 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
8351 (x_erase_phys_cursor): Take top line into account.
8353 * xdisp.c (window_box_height): Subtract top line height if
8354 window wants a top line.
8355 (display_mode_lines): New.
8356 (redisplay_window): Call it.
8357 (display_mode_line): Add parameters face_id and format.
8359 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
8360 (MATRIX_TOP_LINE_HEIGHT): New.
8362 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
8364 * term.c (estimate_mode_line_height): Renamed from
8365 frame_mode_line_height. Add parameter face_id.
8366 (estimate_mode_line_height_hook): Renamed from
8367 frame_mode_line_height_hook.
8368 (produce_special_glyphs_hook): Removed.
8369 (produce_glyphs_hook): Removed.
8371 1999-06-23 Gerd Moellmann <gerd@gnu.org>
8373 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
8374 (struct glyph_row): Add mode_line_p.
8376 * xfaces.c (realize_basic_faces): Realize face `top-line'.
8378 (syms_of_xfaces): Initialize Qtop_line.
8380 * dispextern.h (TOP_LINE_FACE_ID): New.
8382 * buffer.c (init_buffer_once): Set default for
8383 top_line_format to nil.
8384 (init_buffer_once): Init top_line_format.
8385 (default-top-line-format): New.
8386 (top-line-format): New buffer-local variable.
8388 * buffer.h: Add top_line_format.
8390 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
8392 1999-06-17 Dave Love <fx@gnu.org>
8394 * xfns.c: Move the PNG section before the JPEG one to avoid
8395 problems surrounding setjmp.h/png.h on GNU/Linux.
8397 1999-06-17 Gerd Moellmann <gerd@gnu.org>
8399 * xfns.c (x_kill_gs_process): Don't free colors.
8401 1999-06-17 Dave Love <fx@gnu.org>
8403 * s/gnu-linux.h: Zap spurious ~.
8405 1999-06-16 Gerd Moellmann <gerd@gnu.org>
8407 * xfns.c (gif_load): Improve multi-image support.
8409 1999-06-15 Gerd Moellmann <gerd@gnu.org>
8411 * xfns.c (gif_load): Support multi-image files.
8413 * Makefile.in (LIBGIF): Use libungif.
8415 * configure.in (HAVE_GIF): Use libungif instead of libgif
8416 because the former doesn't contain patented compression code.
8418 * xdisp.c (compute_window_start_on_continuation_line): Don't
8419 do it if line start is too far away from window start.
8421 1999-06-14 Gerd Moellmann <gerd@gnu.org>
8423 * buffer.c (init_buffer_once): Set buffer_local_flags for
8424 scroll_*_aggressively.
8425 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
8426 (init_buffer_once): Set defaults for these variables.
8427 (syms_of_buffer): Add default-scroll-*-aggressively.
8429 * buffer.h (scroll_up_aggressively): New.
8430 (scroll_down_aggressively): New.
8432 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
8433 a static PNG library.
8435 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
8436 in case it's a static library.
8438 * Makefile.in (ctagsfiles): Split so that files starting
8439 with an `x' are found before files starting with `w32'.
8442 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
8444 * xdisp.c (compute_window_start_on_continuation_line): New.
8445 (redisplay_window): Use it.
8447 (reseat_to_string): Use it.
8448 (hscroll_window_tree): Ditto.
8449 (compute_window_start_on_continuation_line): Ditto.
8450 (redisplay_window): Don't force display with a new window start.
8452 1999-06-06 Gerd Moellmann <gerd@gnu.org>
8454 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
8455 if widget not present.
8457 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
8459 1999-06-04 Gerd Moellmann <gerd@gnu.org>
8461 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
8462 value of realize_basic_faces.
8463 (load_face_font_or_fontset): Store full font name in face.
8464 (realize_default_face): Use full font name.
8466 * xterm.c (x_produce_glyphs): Set member char_to_display.
8467 (x_append_glyph): Store char_to_display in glyphs.
8469 * dispextern.h (struct it): Add char_to_display.
8471 * xfns.c (x_set_font): Don't call face-set-after-frame-default
8472 if faces haven't been initialized.
8473 (Fx_create_frame): Call face-set-after-frame-default after
8474 faces have been initialized, and widget has been created.
8476 * puresize.h (BASE_PURESIZE): Increased.
8478 1999-06-01 Gerd Moellmann <gerd@gnu.org>
8480 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
8481 (Finternal_set_lisp_face_attribute): If frame is t when
8482 :font attribute is set, use the selected frame.
8483 (clear_face_cache): Add parameter clear_fonts_p.
8484 (Fclear_face_cache): Add optional parameter thorougly.
8486 * xfaces.c (face_numeric_value): Return -1 if symbol is not
8488 (Fclear_face_cache): New.
8489 (choose_face_fontset_font): If fontset doesn't contain font
8490 pattern for the given charset, use CHARSET_ASCII.
8491 (Finternal_set_lisp_face_attribute): Fix handling of nil
8493 (Finternal_set_lisp_face_attribute): Fix handling of changing
8494 font-related face attributes of the default face.
8495 (set_lface_from_font_name): Set only attributes that aren't
8498 1999-05-31 Gerd Moellmann <gerd@gnu.org>
8500 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
8502 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
8503 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
8504 scalable fonts depending on the setting of SCALABLE_FONTS.
8505 (first_font_matching): List more than one font to find the
8506 first non-scalable matching font.
8507 (sorted_font_list): Let x_face_list_fonts return scalable fonts
8508 depending on SCALABLE_FONTS.
8509 (better_font_p): New parameter compare_pt_p. If zero, don't
8510 compare point sizes of fonts.
8511 (exact_face_match_p) [SCALABLE_FONTS]: New.
8512 (build_scalable_font_name) [SCALABLE_FONTS]: New.
8513 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
8514 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
8515 (syms_of_xfaces): Add scalable-fonts-allowed.
8517 1999-05-26 Gerd Moellmann <gerd@gnu.org>
8519 * xfns.c (png_load): Let PNG lib handle gamma. Construct
8520 mask only if image contains simple transparency information.
8521 Otherwise, combine image with frame background color.
8523 * configure.in (--with-png, HAVE_PNG): New.
8525 * config.in (HAVE_PNG): New.
8527 * Makefile.in: Add PNG library.
8529 * xfns.c: Add PNG support.
8531 1999-05-25 Gerd Moellmann <gerd@gnu.org>
8533 * xdisp.c (init_xdisp): Initialize echo_area_message and
8534 previous_echo_area_message to nil.
8536 * keyboard.c (read_char): Rename local variable echo_area_message
8537 because it shadows the global one.
8539 1999-05-05 Gerd Moellmann <gerd@gnu.org>
8541 * xterm.c (note_mode_line_highlight): Restructured.
8543 * window.c (coordinates_in_window): Handle windows that don't have
8544 a mode line because their buffer's mode-line-format is nil.
8545 Recognize the mode line under x positions that correspond to
8546 flags areas and left scroll bar.
8548 1999-05-02 Dave Love <fx@gnu.org>
8550 * xterm.c (note_mouse_highlight): Separate help-echo processing
8551 from check on mouse-face so that it works generally.
8553 1999-04-21 Gerd Moellmann <gerd@gnu.org>
8555 * sound.c (Fplay_sound): Run hook play-sound-hook.
8556 (Qplay_sound_hook): New.
8558 1999-04-20 Gerd Moellmann <gerd@gnu.org>
8560 * xdisp.c (update_echo_area): Handle echo_area_message.
8562 1999-04-19 Gerd Moellmann <gerd@gnu.org>
8564 * editfns.c (Fmessage): Use message3.
8566 * print.c (printchar): Set echo_area_message to nil.
8569 * minibuf.c (read_minibuf): Reset echo message strings to nil.
8570 (Fminibuffer_completion_help): Ditto.
8572 * keyboard.c (cmd_error_internal): Set echo_areA_message.
8573 (command_loop_1): Test echo_areA_message.
8575 (record_menu_key): Set echo_area_message to nil.
8576 (Fexecute_extended_command): Test echo_area_message.
8577 (Fexecute_extended_command): Handle echo_area_message.
8579 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
8582 * editfns.c (Fcurrent_message): If echo_area_message is set,
8583 return a substring of that string.
8585 * dispnew.c (direct_output_for_insert): Test echo_area_message
8586 in addition to echo_area_glyphs.
8587 (set_window_cursor_after_update): Ditto.
8588 (update_frame_1): Ditto.
8590 * alloc.c (Fgarbage_collect): Use message3_nolog to display
8591 old Lisp message string.
8593 * xdisp.c (echo_area_message): New.
8594 (previous_echo_area_message): New.
8595 (syms_of_xdisp): Initialize and staticpro new variables.
8596 (echo_area_display): Display echo_area_message if set.
8597 (message2_nolog): Set echo_area_message and
8598 previous_echo_area_message.
8599 (echo_area_display): Set previous_echo_area_message.
8600 (redisplay_internal): Display echo area if echo_area_message
8601 or previous_echo_area_message are set.
8602 (redisplay_preserve_echo_area): Test/set echo_area_message and
8603 previous_echo_area_message.
8604 (redisplay_window): Test echo_area_message.
8605 (message3_nolog): New.
8608 * editfns.c (Fformat): Add text properties to the result string
8609 from properties of the format string and properties of string
8612 * textprop.c (text_property_list): New.
8613 (add_text_properties_from_list): New.
8614 (extend_property_ranges): New.
8616 1999-03-29 Gerd Moellmann <gerd@gnu.org>
8618 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
8619 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
8620 Use these symbols for the box face attribute instead of the
8623 1999-03-12 Gerd Moellmann <gerd@gnu.org>
8625 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
8626 Correct wrong test for slant.
8628 1999-03-10 Gerd Moellmann <gerd@gnu.org>
8630 * xfaces.c: Use `unspecified' for unspecified face attributes,
8631 use t and nil for on/off.
8633 1999-03-06 Gerd Moellmann <gerd@gnu.org>
8635 * buffer.c (syms_of_buffer): Extend doc string of
8638 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
8639 (first_font_matching): New.
8640 (set_lface_from_font_name): Use it if font name is a pattern.
8641 (font_field_wildcard_p): Removed.
8643 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
8644 Recompute visible height of rows.
8646 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
8647 Don't accept non-strings for help-echo from overlays.
8649 1999-03-04 Dave Love <fx@gnu.org>
8651 * xterm.c (note_mouse_highlight): Check overlays for help-text
8653 (XTread_socket): Fix compiler warning.
8655 1999-03-05 Gerd Moellmann <gerd@gnu.org>
8657 * xterm.c (note_mouse_highlight): Don't restrict number of
8658 overlay to 10. Call overlays_at so that it doesn't try to
8661 * xdisp.c (compute_line_metrics): Compute glyph row's visible
8664 * dispnew.c (row_equal_p): Compare visible row height, only.
8665 (update_text_area): Draw whole line if visible heights of
8667 (update_window_line): Call after_update_window_line_hook
8668 if visible row height has changed.
8670 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
8671 (struct glyph_row): New member visible_height.
8673 * xfaces.c (font_field_wildcard_p): New.
8674 (set_lface_from_font_name): Remove parameter force_p. Accept
8675 font names containing wildcards.
8677 1999-03-04 Gerd Moellmann <gerd@gnu.org>
8679 * xterm.c (x_after_update_window_line): Clear internal border
8680 when windows_or_buffers_changed.
8682 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
8683 buffer has a nil mode_line_format.
8685 1999-03-03 Gerd Moellmann <gerd@gnu.org>
8687 * xterm.c (x_setup_relief_colors): Use either background color
8690 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
8692 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
8694 * xterm.c (x_draw_box_rect): New.
8695 (x_draw_glyph_string_box): Renamed from
8696 x_draw_glyph_string_relief. Call x_draw_box_rect.
8698 * xfns.c (QCrelief): New.
8699 (syms_of_xfns): Initialize it.
8701 * dispextern.h (struct glyph): Rename left_shadow_p to
8702 left_box_line_p, right_shadow_p to right_box_line_p.
8703 (MAX_RELIEF_THICKNESS): Removed.
8704 (struct it): Rename members having `relief' in their names
8705 to contain `box' instead.
8707 * xfaces.c (realize_x_face): Handle new box attribute values.
8708 (QCrelief, Qbox): Removed.
8709 (QCshadow, QCcolor, Qraised, Qsunken): New.
8710 (syms_of_xfaces): Initialize new symbols.
8712 1999-03-02 Gerd Moellmann <gerd@gnu.org>
8714 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
8716 * xfaces.c (LFACE_RELIEF): Removed.
8717 (merge_face_vector_with_property): Remove handling of `:relief'.
8718 (Finternal_set_lisp_face_attribute): Ditto.
8719 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
8720 (Finternal_get_lisp_face_attribute): Ditto.
8721 (realize_default_face): Ditto.
8722 (lface_hash): Don't compute hash from relief.
8724 * dispextern.h (struct face): Replace member `relief' by
8725 `box_line_width'. Add member `box'.
8726 (face_box_type): New.
8728 * xterm.c (x_produce_glyphs): If face has overline, add overline
8729 thickness + 1 to ascent.
8731 1999-03-01 Gerd Moellmann <gerd@gnu.org>
8733 * xterm.c (x_draw_glyph_string): Draw underline, overline,
8734 strike-through, and boxes.
8735 (x_draw_glyph_string_underline): Removed.
8737 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
8738 (Qoverline, Qstrike_through, Qbox): New.
8739 (syms_of_xfaces): Define these symbols.
8740 (check_lface_attrs): Add checks for overline, strike-through,
8742 (Finternal_set_lisp_face_attribute): Set new attributes.
8743 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
8744 (load_color): Handle new attributes.
8745 (realize_x_face): Ditto.
8746 (merge_face_vector_with_property): Ditto.
8747 (free_face_colors): Ditto.
8748 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
8749 (Finternal_get_lisp_face_attribute): Ditto.
8750 (Finternal_lisp_face_attribute_values): Ditto.
8752 * dispextern.h (lface_attribute_index): Add enumerators for
8753 overstrike, strike-through, and box.
8754 (struct face): Add members for overline, strike-through, and
8757 1999-02-17 Dave Love <fx@gnu.org>
8759 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
8760 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
8763 1999-02-16 Gerd Moellmann <gerd@gnu.org>
8765 * keyboard.c (toolbar_items): Call access_keymap with third
8766 parameter 1, so that we don't get inherited toolbar item
8769 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
8770 the window end vpos when in empty first line of window.
8772 1999-02-15 Gerd Moellmann <gerd@gnu.org>
8774 * xfaces.c (set_font_frame_param): New.
8775 (Finternal_set_lisp_face_attribute): Call it.
8777 Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
8779 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
8780 Accept specifications of color for underline.
8782 1999-02-13 Gerd Moellmann <gerd@gnu.org>
8784 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
8785 `frame' is t, operate on face defaults for new frames. If it
8786 is nil, operate on the selected frame.
8788 1999-02-12 Gerd Moellmann <gerd@gnu.org>
8790 * dispnew.c (check_matrix_invariants): Put it in #if 0.
8791 (update_window): Put the call to check_matrix_invariants in #if 0.
8793 Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
8795 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
8796 Remove definition of UNDERLINE_COLOR.
8798 Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
8800 * xfaces.c (free_face_colors): Free the color for underline.
8802 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
8805 Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
8807 * dispextern.h (UNDERLINE_COLOR): Defined.
8808 (struct face): Added two new members.
8809 underline_color, underline_defaulted_p.
8811 * xfaces.c (merge_face_vector_with_property):
8812 (check_lface_attrs): Accept the string value for underline.
8813 (Finternal_set_lisp_face_attribute): Likewise.
8815 * xfaces.c (load_color): Change the last argument type to enum
8816 lface_attribute_index from int. And addec code for underling coloring.
8817 (load_face_colors): Pass LFACE_*_INDEX to load_color.
8819 1999-02-12 Gerd Moellmann <gerd@gnu.org>
8821 * xfns.c (Fx_image_header): Removed.
8823 1999-02-07 Gerd Moellmann <gerd@gnu.org>
8825 * xterm.c: Don't include <bitmaps/gray>.
8826 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
8828 * xfns.c (Fx_image_header): Add missing `\n\'.
8829 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
8831 1999-02-01 Gerd Moellmann <gerd@gnu.org>
8833 * xterm.c (x_scroll_bar_create): Set background pixel from
8834 specified scroll bar color.
8835 (x_scroll_bar_set_handle): Use scroll bar foreground color.
8837 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
8838 (x_set_scroll_bar_background): Ditto.
8840 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
8842 * xfns.c (x_default_scroll_bar_color_parameter): New.
8843 (Fx_create_frame): Call it.
8845 1999-01-31 Gerd Moellmann <gerd@gnu.org>
8847 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
8848 values in x_output structure.
8849 (Qscroll_bar_foreground, Qscroll_bar_background): New.
8850 (syms_of_xfns): Initialize these symbols.
8852 * xterm.h (struct x_output): Add scroll bar pixel colors.
8854 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
8855 (x_set_scroll_bar_foreground): New.
8856 (x_set_scroll_bar_background): New.
8858 1999-01-12 Gerd Moellmann <gerd@gnu.org>
8860 * xdisp.c (handle_single_display_prop): New.
8861 (handle_display_prop): Call it.
8862 (handle_raise_prop): Removed.
8863 (handle_height_prop): Removed.
8864 (handle_space_width_prop): Removed.
8865 (handle_face_prop): Remove handling of raised text.
8866 (handle_display_prop): Do it here.
8868 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
8869 (RAISE_PROP_IDX): Removed.
8870 (HEIGHT_PROP_IDX): Removed.
8871 (SPACE_WIDTH_PROP_IDX): Removed.
8873 * xdisp.c (Qdisplay): Replaces Qglyph.
8874 (handle_display_prop): Formerly handle_glyph_prop.
8876 1999-01-11 Gerd Moellmann <gerd@gnu.org>
8878 * xdisp.c (reseat_to_string): Set position in display vector to -1.
8879 (handle_stop): Set position in display vector to -1. Don't
8880 check overlay strings when set up to deliver characters from a
8882 (set_iterator_to_next): At the end of a run of characters from a
8883 display vector, check whether the display vector display replaces
8884 the display of a character.
8886 1999-01-05 Gerd Moellmann <gerd@gnu.org>
8888 * xfaces.c (init_frame_faces): Don't realize faces if frame's
8889 X window hasn't been created yet.
8891 1998-12-06 Gerd Moellmann <gerd@gnu.org>
8895 1998-12-04 Gerd Moellmann <gerd@gnu.org>
8897 * config.in (HAVE_SOUND): New.
8899 * emacs.c (main): Call syms_of_sound and init_sound.
8901 * Makefile.in (obj): Add sound.o.
8903 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
8905 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
8906 (HAVE_SYS_SOUNDCARD_H): New.
8908 1998-12-03 Gerd Moellmann <gerd@gnu.org>
8910 * buffer.h (struct buffer): indicate_empty_lines renamed from
8913 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
8914 (default-indicate-zv-lines): Likewise.
8916 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
8917 to indicate_empty_line_p.
8919 * xdisp.c (reseat_at_next_visible_line_start): Reset method
8920 to next_element_from_buffer.
8922 * frame.c (make_frame): Set n_current_toolbar_items to 0.
8924 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
8927 * xfns.c (xbm_scan): New.
8928 (xbm_read_hexint): Removed.
8929 (xbm_read_bitmap_file_data): Use xbm_scan.
8931 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
8933 1998-12-02 Gerd Moellmann <gerd@gnu.org>
8935 * xfns.c (xbm_read_hexint): New.
8936 (xbm_read_bitmap_file_data): New.
8937 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
8938 instead of XReadBitmapFileData.
8940 * xdisp.c (handle_raise_prop): Compute voffset from current font.
8942 * xfaces.c (face_with_height): New.
8944 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
8945 (eval_form): Renamed from eval_mode_element.
8946 (handle_face_prop): Use it.
8947 (Qheight): Replaces Qsmaller.
8948 (handle_height_prop): Replaces handle_smaller_prop.
8949 (handle_face_prop): If iterator's font_height is not an
8950 integer, evaluate it to get the font height to use.
8952 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
8953 (struct it): Use `font_height' instead of `smaller'.
8955 1998-12-01 Gerd Moellmann <gerd@gnu.org>
8957 * xdisp.c (reseat_1): New.
8959 (move_it_vertically_backward): Ditto.
8960 (redisplay_window): Don't abort when cursor not found in recenter.
8962 1998-11-30 Gerd Moellmann <gerd@gnu.org>
8964 * xdisp.c (reseat_at_next_visible_line_start): When not
8965 currently delivering display elements from the current buffer,
8966 restore buffer position first.
8967 (init_from_display_pos): Don't set IT's position from the
8968 position passed to this function.
8970 1998-11-28 Gerd Moellmann <gerd@gnu.org>
8972 * config.in (PROTO): Removed.
8974 * xterm.h: Change PROTO to P_.
8976 1998-11-26 Gerd Moellmann <gerd@gnu.org>
8978 * xterm.c (take_vertical_position_into_account): New.
8979 (x_produce_image_glyph): Call it.
8980 (x_produce_stretch_glyph): Ditto.
8981 (x_produce_glyphs): Ditto.
8982 (x_fill_glyph_string): Adjust base line for glyph's voffset.
8983 (x_fill_composite_glyph_string): Ditto.
8984 (x_fill_image_glyph_string): Ditto.
8985 (x_fill_stretch_glyph_string): Ditto.
8987 * xdisp.c (display_line): Always compute row height from
8988 max_ascent and max_descent.
8990 * dispextern.h (struct glyph): Add voffset.
8991 (struct it): Replace height by descent, max_height by max_descent.
8993 * xterm.c (x_append_glyph): Set voffset
8994 (x_append_stretch_glyph): Ditto.
8995 (x_produce_image_glyph): Ditto.
8996 (x_produce_glyphs): Take voffset into account.
8997 (x_produce_image_glyph): Ditto.
8998 (x_produce_stretch_glyph): Ditto.
9000 * dispextern.h (struct it): Add voffset.
9001 * xdisp.c (push_it): Save voffset.
9002 (pop_it): Restore it.
9004 * xdisp.c (it_props): Add entry for `raise'.
9005 (handle_raise_prop): New.
9007 * dispextern.h (RAISE_PROP_IDX): New.
9009 * xdisp.c (Qraise): New.
9010 (syms_of_xdisp): Define Qraised.
9012 * xterm.c (x_scroll_bar_move): Clear to the left and right
9013 of toolkit scroll bars differently.
9014 (x_scroll_bar_move): Removed.
9015 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
9017 * dispextern.h: Make it compilable --with-x=no.
9021 * keyboard.c: Ditto.
9028 1998-11-25 Gerd Moellmann <gerd@gnu.org>
9030 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
9032 1998-11-24 Gerd Moellmann <gerd@gnu.org>
9034 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
9035 update slider size, only.
9036 (xm_scroll_callback): Set dragging member of the scroll bar.
9037 (xt_action_hook): Reset last_scroll_bar_part.
9038 (XTredeem_scroll_bar): Reset bar->dragging to nil.
9040 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
9041 window on newly created frames that don't have one.
9043 1998-11-23 Gerd Moellmann <gerd@gnu.org>
9045 * xdisp.c (restore_overlay_strings): Removed.
9046 (restore_dpvec): Removed.
9047 (init_from_display_pos): Inline both functions above.
9049 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
9050 (parse_image_spec): Handle it.
9051 (xbm_format): Use it.
9052 (xpm_format): Ditto.
9053 (pbm_format): Ditto.
9054 (jpeg_format): Ditto.
9055 (tiff_format): Ditto.
9056 (gif_format): Ditto.
9059 * xdisp.c (set_window_cursor): Removed.
9060 (redisplay_internal): Case cursor motion in cursor line of
9061 selected window; use set_cursor_from_row.
9063 1998-11-22 Gerd Moellmann <gerd@gnu.org>
9065 * widget.c (EmacsFrameSetCharSize): Take widget's border width
9068 1998-11-21 Gerd Moellmann <gerd@gnu.org>
9070 * xterm.c (expose_frame): Redraw menu bar window.
9072 * xdisp.c (display_menu_bar): Record hpos instead of x-position
9075 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
9076 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
9078 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
9079 to determine vertical_scroll_bar_extra.
9080 (EmacsFrameSetCharSize): Ditto.
9081 * xfns.c (x_figure_window_size): Ditto.
9083 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
9084 (x_draw_bitmap): Ditto.
9086 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
9087 * xfaces.c (realize_basic_faces): Realize it.
9089 1998-11-20 Gerd Moellmann <gerd@gnu.org>
9091 * xmenu.c (xmenu_show): Add workaround for remaining button grab
9092 under LessTif Use the widget of the frame as parent for the
9095 1998-11-19 Gerd Moellmann <gerd@gnu.org>
9097 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
9098 When EnterNotify, don't generate a mouse movement event if
9099 notification is from a busy-cursor child window.
9101 * xterm.h (struct x_output): Add busy_window, remove cursor.
9103 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
9104 Use a transparent window to display the busy-cursor.
9105 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
9107 1998-11-17 Gerd Moellmann <gerd@gnu.org>
9109 * xdisp.c (check_window_end): New, for debugging.
9110 (CHECK_WINDOW_END): New.
9111 (try_window_id): Use it.
9113 * xterm.c (process_expose_from_menu): Return int.
9115 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
9116 TOOLBAR_EVENT events in last_nonmenu_event.
9118 1998-11-16 Gerd Moellmann <gerd@gnu.org>
9120 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
9121 window end isn't reliable, so set window_end_valid to nil.
9122 (redisplay_internal): If overlay arrow has changed, set
9123 windows_or_buffers_changed to redisplay thoroughly.
9125 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
9128 * xfns.c (file_dialog_cb): New.
9129 (Fx_file_dialog): New.
9130 * fileio.c (Fread_file_name): Call it.
9132 * xrdb.c (x_load_resources): Add default resoures for file
9135 1998-11-14 Gerd Moellmann <gerd@gnu.org>
9137 * xterm.c (note_mouse_highlight): Don't highlight when popup
9140 * keyboard.c (timer_check): Inhibit busy cursor around calls to
9141 timer-event-handler. This busy cursor tends to be anoying if
9142 fontifying stealthily.
9144 * dispnew.c (direct_output_for_insert): Give up if current row
9145 contains trailing whitespace.
9147 1998-11-13 Gerd Moellmann <gerd@gnu.org>
9149 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
9151 * xdisp.c (handle_fontified_prop): New.
9152 (Vfontification_functions): New.
9153 (Qfontification_functions): New.
9154 (it_props): Add handle_fontified_prop.
9156 1998-11-12 Gerd Moellmann <gerd@gnu.org>
9158 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
9159 Otherwise, under LessTif, after the popup has gone, all button
9160 press events come in for the frame's widget, and release events
9161 come in for the edit_widget.
9162 * xterm.c (XTread_socket): Remove workaround for that problem.
9163 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
9164 XmScrollBarSetValues.
9165 (SET_SAVED_MENU_EVENT): Give it statement form.
9167 * xfaces.c (display_message): If waiting_for_input, don't display
9170 * window.c (scroll_command): If not acting on current_buffer,
9171 make redisplay consider all windows.
9173 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
9175 * xdisp.c (handle_glyph_prop): Set it->object for images to
9176 the object having the glyph property.
9178 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
9181 1998-11-11 Gerd Moellmann <gerd@gnu.org>
9183 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
9184 (x_term_init): Create the gray pixmap.
9185 (x_setup_relief_color): Use it.
9186 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
9187 internal border at the top of a frame.
9188 (x_init_glyph_string): Likewise.
9189 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
9191 (XTflash): Don't flash the toolbar window.
9193 * xterm.c (XTread_socket): Workaround for LessTif popup menus
9194 in case of ButtonPress events.
9196 1998-11-10 Gerd Moellmann <gerd@gnu.org>
9198 * xrdb.c (x_load_resources): Add grey background colors as
9199 defaults for menus, scroll bars, and dialogs.
9201 * insdel.c (prepare_to_modify_buffer): Move setting
9202 windows_or_buffers_changed from modify_region here.
9204 * xfns.c (Fx_show_tip): Inhibit redisplay.
9205 (Fx_hide_tip): Ditto.
9206 (Fx_image_header): New.
9208 1998-11-09 Gerd Moellmann <gerd@gnu.org>
9210 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
9211 when clearing current window matrices.
9213 1998-11-08 Gerd Moellmann <gerd@gnu.org>
9215 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
9216 position from a string position. Use the right end position
9217 if the property spans a whole overlay string.
9219 1998-11-07 Gerd Moellmann <gerd@gnu.org>
9221 * xmenu.c (menubar_selection_callback): Remove workaround for
9222 Lesstif not calling XmNpopdownCallback because it doesn't
9223 handle the case where users don't select any menu item.
9225 * insdel.c (modify_region): Set windows_or_buffers_changed.
9227 * buffer.c (set_buffer_internal): Don't set
9228 windows_or_buffers_changed.
9230 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
9232 * xmenu.c (menubar_selection_callback): Add workaround for
9233 Lesstif not calling XmNpopdownCallback.
9235 * xdisp.c (eval_mode_element): New.
9236 (eval_mode_handler): New.
9237 (display_mode_element): Use eval_mode_element.
9239 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
9240 Remove code looking at text props of default value.
9242 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
9244 1998-11-06 Gerd Moellmann <gerd@gnu.org>
9246 * xmenu.c (single_submenu): Set button_type of menu to
9248 (single_submenu): Likewise for panes and menu items.
9249 (set_frame_menubar): Set button_type of menu bar to none.
9250 (xmenu_show): Likewise.
9251 (single_submenu): Set widget values selected slot.
9252 (xmenu_show): Likewise.
9254 * xmenu.c (push_menu_item): Add parameters `type' and
9255 `selected'. Store it in menu_items.
9256 (MENU_ITEMS_ITEM_TYPE): New.
9257 (MENU_ITEMS_ITEM_SELECTED): New.
9258 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
9260 * xfns.c (clear_image_cache): Get the current time, before
9262 (cache_image): Set prev pointer of next image.
9263 (clear_image_cache): Clear current matrices if any image was
9266 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
9268 * xfns.c (x_set_cursor): New.
9269 (Fx_display_busy_cursor): New.
9270 (Fx_undisplay_busy_cursor): New.
9272 * xterm.h (struct x_output): Add busy_cursor.
9274 * xfns.c (Vx_busy_pointer_shape): New.
9275 (x_set_mouse_color): Create busy cursor.
9277 * process.c (wait_reading_process_input): Show and hide busy
9280 * keyboard.c (command_loop_1): Display busy cursor.
9282 * eval.c (Fsignal): Hide busy cursor.
9284 * buffer.c (set_buffer_internal): Don't set
9285 windows_or_buffers_changed.
9287 * xterm.c (redo_mouse_highlight): New.
9289 1998-11-04 Gerd Moellmann <gerd@gnu.org>
9291 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
9292 (x_build_heuritic_mask): New.
9293 (lookup_image): Call it.
9295 * xterm.c (note_toolbar_highlight): Always set up help_echo.
9296 (previous_help_echo): New.
9297 (XTread_socket): Generate help event with nil message when
9298 leaving a region with help-echo.
9299 (note_mouse_highlight): Handle `help-echo' over text.
9300 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
9302 (clear_mouse_face): Don't clear if tooltip is shown.
9303 (XTread_socket): Redo mouse-highlight after tooltip is gone.
9304 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
9306 * keyboard.c (Vshow_help_function): New.
9307 (read_char): Use it.
9309 1998-11-03 Gerd Moellmann <gerd@gnu.org>
9311 * xfns.c (x_create_tip_frame): New.
9315 * xterm.c (x_destroy_window): Handle case that we don't have
9318 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
9319 to full_width_p. Add internal_border_p.
9321 1998-11-02 Gerd Moellmann <gerd@gnu.org>
9323 * xterm.c (note_mode_line_highlight): Check the charpos of
9324 the glyph under the mouse pointer before accessing text
9325 properties at that position.
9327 1998-11-01 Gerd Moellmann <gerd@gnu.org>
9329 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
9331 * xdisp.c (auto-raise-toolbar-buttons): New.
9332 (build_desired_toolbar_string): Handle the flag.
9333 (toolbar-button-margin): New.
9334 (toolbar-button-relief): New.
9335 (build_desired_toolbar_string): Use margin and relief.
9337 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
9339 (note_mode_line_highlight): New.
9340 (note_mouse_highlight): Call it.
9342 1998-10-31 Gerd Moellmann <gerd@gnu.org>
9344 * s/freebsd.h (NARROWPROTO): New.
9346 * xdisp.c (display_string): New parameter face_string.
9347 (display_mode_element): When displaying a symbol with a string
9348 value, use text properties from the symbol's default value, maybe.
9350 * xrdb.c (x_load_resources): Add font defaults for menus and
9353 1998-10-30 Gerd Moellmann <gerd@gnu.org>
9355 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
9357 1998-10-29 Gerd Moellmann <gerd@gnu.org>
9359 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
9360 produced for characters with codes < 32 under certain
9363 * xdisp.c (redisplay_window): Handle values of PT in front
9364 of invisible, intangible text.
9365 (try_window_id): Set overlay_arrow_seen to zero before
9367 (display_mode_element): Assign to glyphs written for a mode
9368 line spec `%x' as object the Lisp format string, as position
9369 the position of the `%' in that string.
9370 (display_string): If displaying a C string, optionally get
9371 the face to use from a Lisp string.
9373 * xterm.c (expose_window_tree): Include mode line height.
9375 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
9377 1998-10-27 Gerd Moellmann <gerd@gnu.org>
9379 * xterm.c (note_mouse_highlight): Change mouse pointer shape
9382 1998-10-26 Gerd Moellmann <gerd@gnu.org>
9384 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
9386 * xdisp.c (redisplay_window): If mode line height has changed,
9387 arrange for a thorough immediate redisplay using the correct mode
9389 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
9391 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
9392 (CURRENT_MODE_LINE_HEIGHT): New.
9393 (DESIRED_MODE_LINE_HEIGHT): New.
9395 * keyboard.c (make_lispy_event): Add string and string position
9396 info to mouse-click events.
9397 (read_key_sequence): Handle `local-map' property of mode line
9400 * keyboard.h (POSN_STRING): New.
9402 1998-10-25 Gerd Moellmann <gerd@gnu.org>
9404 * dispnew.c (mode_line_string): Mew.
9406 * xterm.c (xt_action_hook): New.
9407 (x_create_toolkit_scroll_bar): Add action hook.
9408 (xm_scroll_callback): Implement dragging.
9410 * keyboard.c (Qend_scroll): New.
9411 (scroll_bar_parts): Add it.
9413 * termhooks.h (scroll_bar_end_scroll): New.
9415 * xterm.c (XTread_socket): Bug fix.
9417 1998-10-24 Gerd Moellmann <gerd@gnu.org>
9419 * xdisp.c (redisplay_window): Finish scroll bars after
9420 redisplaying toolbar.
9422 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
9423 (syms_of_keyboard): Add Qbottom.
9425 * termhooks.h (scroll_bar_to_top): New.
9426 (scroll_bar_to_bottom): New.
9428 * xdisp.c (redisplay_window): Always resize toolbar window if
9429 auto_resize_toolbar_p is non-zero.
9430 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
9432 (window_box_height): New.
9433 (window_box_width): New.
9434 (window_box_left): New.
9435 (window_box_right): New.
9436 (window_box_edges): New.
9438 1998-10-23 Gerd Moellmann <gerd@gnu.org>
9440 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
9441 XawScrollbarSetThumb in FreeBSD.
9442 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
9445 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
9448 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
9449 (x_term_init): Initialize it.
9451 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
9453 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
9456 1998-10-22 Gerd Moellmann <gerd@gnu.org>
9458 * keyboard.c (make_lispy_event): Handle scroll_bar_click
9459 differently when using toolkit scroll bars.
9461 * xterm.c (x_send_scroll_bar_event): New.
9462 (x_scroll_bar_to_input_event): New.
9463 (xaw3d_scroll_callback): New.
9464 (xaw3d_jump_callback): New.
9465 (xm_scroll_callback): New.
9466 (x_toolkit_scroll_p): New.
9467 (XTread_socket): Handle scroll bar client message.
9468 (x_term_init): Initialize Xatom_Scrollbar.
9469 (x_scroll_bar_create): Set cursor.
9470 (xm_scroll_callback):
9471 (x_create_toolkit_scroll_bar): New.
9472 (x_set_toolkit_scroll_bar_thumb): New.
9473 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
9474 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
9476 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
9478 1998-10-21 Gerd Moellmann <gerd@gnu.org>
9480 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
9481 (XTread_socket): Don't handle mouse button events for scroll bars
9482 if using toolkit scroll bars.
9483 (XTset_vertical_scroll_bar): Set thumb size and position for
9486 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
9488 * xterm.c (XTread_socket): Dispatch expose event to widget
9489 if using toolkit scroll bars.
9490 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
9491 (x_scroll_bar_create): Create and show a scroll bar widget
9492 if using toolkit scroll bars.
9493 (x_scroll_bar_move): Handle tookit scroll bars.
9495 * Makefile.in (LIBW): Use Xaw3d if present.
9497 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
9500 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
9503 * xterm.c (XTset_vertical_scroll_bar): Correct position of
9504 right vertical scroll bar.
9506 1998-10-20 Gerd Moellmann <gerd@gnu.org>
9508 * xfns.c (xpm_load): Support reading XPM images from string
9509 buffers containing data in the same format as an XPM file.
9510 Support `:color-symbols'.
9511 (xpm_format): Add `:data'.
9512 (xpm_keyword_index): Add XPM_DATA.
9513 (syms_of_xfns): Add `:color-symbols'.
9514 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
9515 (xpm_valid_color_symbols_p): New.
9516 (xpm_image_p): Call it.
9518 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
9519 attribute to the image if item is not enabled.
9521 * xfns.c (x_laplace): New.
9522 (x_laplace_read_row): New.
9523 (x_laplace_write_row): New.
9524 (lookup_image): Handle common image attributes here. New
9525 attribute `:algorithm'.
9527 * xfaces.c (clear_face_cache): Call clear_image_cache.
9529 * xterm.c (x_inverted_image_mask): Removed.
9530 (x_draw_image_foreground_1): New.
9531 (x_draw_image_glyph_string): Draw images with mask to a temporary
9532 pixmap to reduce flickering.
9534 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
9535 (display_toolbar_line): Remove parameter `margin'.
9537 1998-10-19 Gerd Moellmann <gerd@gnu.org>
9539 * xdisp.c (toolbar_lines_needed): New.
9540 (auto-resize-toolbars): New.
9542 * xfns.c (cache_image): Correct call to xrealloc.
9544 * dispnew.c (Fset_toolbar_height): Removed.
9546 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
9547 FRAME_MENU_BAR_LINES.
9549 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
9550 instead of FRAME_MENU_BAR_LINES.
9551 (check_frame_size): Ditto.
9553 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
9554 instead of FRAME_MENU_BAR_LINES.
9555 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
9556 (build_frame_matrix): Ditto.
9557 (change_frame_size_1): Ditto.
9559 * frame.h (FRAME_TOOLBAR_LINES): New.
9560 (FRAME_TOP_MARGIN): New.
9562 * window.c (struct save_window_data): Add frame_toolbar_lines.
9563 (Fset_window_configuration): Handle toolbar lines.
9564 (Fcurrent_window_configuration): Save toolbar lines.
9566 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
9568 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
9570 * frame.h (struct frame): Rename top_margin to toolbar_lines.
9572 * xfns.c (x_frame_parms): Add `toolbar-lines'.
9573 (x_set_toolbar_lines): New.
9575 * keyboard.c (cmd_error_internal): Bug fix.
9577 * xterm.c: Remove double include of syssignal.h.
9579 1998-10-18 Gerd Moellmann <gerd@gnu.org>
9581 * xterm.c (x_toolbar_item): New.
9582 (x_handle_toolbar_click): Use it.
9583 (note_toolbar_highlight): Use it.
9585 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
9586 and toolbar_items_vectors.
9588 * xterm.c (help_echo): New.
9589 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
9590 (x_set_glyph_string_gc): Handle them.
9591 (x_after_update_window_line): Don't do anything in pseudo-windows.
9592 (x_produce_image_glyph): Take image margin and face relief into
9594 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
9595 (x_draw_glyph_string_background): Optimize case when face has
9597 (x_setup_relief_color): Take frame instead of glyph string
9599 (x_draw_relief_rect): New.
9600 (x_draw_glyph_string_relief): Call it.
9601 (x_draw_image_glyph_string_foreground): Handle margin and image
9603 (x_draw_image_glyph_string_background): Ditto.
9604 (expose_frame): Redraw toolbar window.
9605 (expose_window): Don't draw cursor for pseudo-windows.
9606 (x_y_to_hpos_vpos): Handle pseudo-windows.
9607 (frame_to_window_pixel_xy): New.
9608 (note_mouse_highlight): Call note_toolbar_highlight.
9609 (x_handle_toolbar_click): New.
9610 (note_toolbar_highlight): New.
9611 (show_mouse_face): Change int parameter `hl' to parameter of
9612 type enum draw_glyphs_face. Handle image highlighting.
9613 (XTread_socket): Return a HELP_EVENT input event if help_echo is
9614 non-nil. Use x_handle_toolbar_click.
9616 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
9618 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
9620 (parse_image_spec): Handle them.
9621 (image_spec_value): Additional parameter found.
9622 (free_image): Remove image from the vector `images' of the
9624 (clear_image_cache): Additional parameter force_p.
9625 (Fclear_image_cache): New.
9626 (x_find_image_file): New.
9627 (xbm_load): Handle `:margin' and `:relief'. Use
9629 (xpm_load): Likewise.
9630 (pbm_load): Likewise.
9631 (jpeg_load): Likewise.
9632 (tiff_load): Likewise.
9633 (gif_load): Likewise.
9635 * keyboard.c (Qhelp_echo): New symbol.
9636 (read_char): Handle `toolbar' and `help_echo' events.
9637 (kbd_buffer_get_event): Handle HELP_ECHO input event.
9638 (make_lispy_event): Handle TOOLBAR_EVENT.
9639 (toolbar_items): New.
9640 (process_toolbar_item): New.
9642 (init_toolbar_items): New.
9643 (append_toolbar_item): New.
9644 (read_char_x_menu_prompt): Handle `toolbar' event.
9645 (read_key_sequence): Ditto.
9647 * xfaces.c (Qtoolbar): New.
9648 (realize_basic_faces): Realize `toolbar' face.
9649 (face_at_string_position): Remove parameter modeline_p, add
9652 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
9655 1998-10-17 Gerd Moellmann <gerd@gnu.org>
9657 * xdisp.c (init_iterator): Replace parameter modeline_p with
9659 (next_element_from_string): Call get_next_display_element
9660 recursively after handling text properties.
9661 (prepare_menu_bars): Call update_toolbar.
9662 (update_toolbar): New.
9663 (build_desired_toolbar_string): New.
9664 (display_toolbar_line): New.
9665 (redisplay_toolbar): New.
9666 (toolbar_item_info): New.
9667 (redisplay_window): Call redisplay_toolbar.
9668 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
9670 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
9672 (clear_desired_matrices): Ditto.
9673 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
9674 (free_glyphs): Free matrices of toolbar window.
9675 (update_frame): Update toolbar window.
9676 (change_frame_size_1): Take toolbar into account.
9677 (Fset_toolbar_height): New.
9679 * dispextern.h (struct it): Remove member modeline_p, add
9681 (struct image): Add members relief and margin.
9682 (IMAGE_ASCENT): Include margin in height.
9684 1998-10-14 Gerd Moellmann <gerd@gnu.org>
9686 * xfns.c (Fclear_image_cache): New.
9688 * xfaces.c (realize_basic_faces): Realize toolbar face.
9689 (face_at_string_position): Remove parameter modeline_p, add
9692 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
9694 1998-10-13 Gerd Moellmann <gerd@gnu.org>
9696 * keyboard.c (syms_of_keyboard): Intern `:help'.
9698 1998-10-12 Gerd Moellmann <gerd@gnu.org>
9700 * xterm.c (note_toolbar_highlight): New.
9701 (note_mouse_highlight): Call it.
9703 * window.c (window_from_coordinates): Additional parameter toolbar_p.
9704 (coordinates_in_window): Handle toolbar window.
9706 * keyboard.c (toolbar_items): New.
9707 (process_toolbar_item): New.
9708 (parse_toolbar_item): New.
9709 (init_toolbar_items): New.
9710 (append_toolbar_item): New.
9712 * dispextern.h (enum toolbar_item_idx): New.
9713 (enum toolbar_item_image): New.
9715 * frame.h (struct frame): Add toolbar-related members.
9717 * xfaces.c (face_at_string_position): Remove assertion that
9718 current_buffer == window's buffer. This is not the case when
9719 called for the toolbar window.
9721 * frame.c (make_frame): Initialize toolbar members.
9723 * alloc.c (mark_object): Mark toolbar data of frames.
9725 * frame.h (struct frame): Add toolbar-related members
9726 toolbar_window, desired_toolbar_items, current_toolbar_items,
9727 desired_toolbar_string, current_toolbar_string,
9728 n_desired_toolbar_items, n_current_toolbar_items. Add
9731 * xterm.c (x_after_update_window_line): Don't draw bitmap
9732 areas for pseudo-windows.
9733 (expose_frame): Handle toolbar window.
9734 (expose_window): Don't do cursor stuff for pseudo-windows.
9736 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
9738 1998-10-11 Gerd Moellmann <gerd@gnu.org>
9740 * frame.c (make_frame): Initialize toolbar_window.
9742 * alloc.c (mark_object): Make the toolbar window.
9744 * dispnew.c (update_frame): Update frame's toolbar_window.
9745 (clear_current_matrices): Likewise.
9746 (clear_desired_matrices): Likewise.
9747 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
9748 (free_glyphs): Free the toolbar window and its matrices.
9750 * frame.h (struct frame): Add toolbar_window.
9752 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
9755 1998-10-10 Gerd Moellmann <gerd@gnu.org>
9757 * dispnew.c (buffer_posn_from_coords): Don't screw up if
9758 window start is not in the range BEGV..ZV.
9760 1998-10-09 Gerd Moellmann <gerd@gnu.org>
9762 * xdisp.c (try_scrolling): Experimentally handle the case
9763 that scroll-preserve-screen-position is set to `always'.
9765 * window.c (Vscroll_preserve_screen_position): Replacement for
9766 scroll_preserve_screen_position.
9768 1998-10-08 Gerd Moellmann <gerd@gnu.org>
9770 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
9774 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
9776 1998-10-06 Gerd Moellmann <gerd@gnu.org>
9778 * minibuf.c (Fminibuffer_complete_word): Fix computation of
9779 i_byte when prompts are inserted into minibuffers.
9781 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
9782 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
9783 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
9785 1998-10-04 Gerd Moellmann <gerd@gnu.org>
9787 * xdisp.c (make_cursor_line_fully_visible): New.
9788 (try_scrolling): New.
9789 (redisplay_window): Move scrolling code to try_scrolling.
9790 (make_cursor_line_fully_visible): Handle case of window too small
9791 to show a single line.
9792 (redisplay_window): Case forced window start---use
9793 make_cursor_line_fully_visible.
9794 (redisplay_window): Case cursor movement via current matrix.
9795 If ending up on a partially visible line, make it fully visible
9796 instead of recentering.
9797 (try_scrolling): Additional parameter scroll_smoothly.
9799 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
9801 1998-09-28 Gerd Moellmann <gerd@gnu.org>
9803 * window.c (window_scroll_pixel_based): Bug fix: vpos used
9804 instead of y-position for scroll-preserved-screen-position.
9806 1998-09-07 Gerd Moellmann <gerd@gnu.org>
9808 * dispnew.c (update_frame_line): If current row is not enabled,
9809 write the whole line.
9811 1998-09-06 Gerd Moellmann <gerd@gnu.org>
9813 * lisp.h (HAVE_FACES): Removed.
9815 * dispextern.h (HAVE_FACES): Removed.
9817 * config.in (HAVE_FACES): Removed.
9819 * dispnew.c (HAVE_FACES): Removed.
9821 * xdisp.c (HAVE_FACES): Removed.
9823 * xfaces.c (HAVE_FACES): Removed.
9825 1998-09-05 Gerd Moellmann <gerd@gnu.org>
9827 * xdisp.c (init_iterator): If face_change_count is non-zero,
9828 free realized faces.
9830 * xfaces.c (free_all_realized_faces): Make it externally visible.
9831 (Finternal_set_lisp_face_attribute): Increment
9832 windows_or_buffers_changed.
9834 * dispnew.c (direct_output_for_insert): Give up if
9835 face_change_count is non-zero.
9836 (direct_output_forward_char): Ditto.
9838 * xfaces.c (face_change_count): New.
9840 1998-09-04 Gerd Moellmann <gerd@gnu.org>
9842 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
9845 1998-09-03 Gerd Moellmann <gerd@gnu.org>
9847 * term.c (Ftty_display_color_p): New.
9849 1998-09-02 Gerd Moellmann <gerd@gnu.org>
9851 * xfaces.c (Ftty_defined_colors): New.
9853 * xterm.c (x_produce_glyphs): Fix computation of
9854 contains_overlapping_glyphs_p for ASCII.
9856 * dispnew.c (Fshow_cursor): Don't change cursor state while
9858 (direct_output_for_insert): If a glyph with lbearing or rbearing
9859 is among the new glyphs, set row flag contains_overlapping_glyph_p.
9861 1998-09-01 Gerd Moellmann <gerd@gnu.org>
9863 * term.c (OUTPUT_IF): Make replacement text have statement form.
9864 (OUTPUT1_IF): Ditto.
9865 (TS_italic_mode, TS_end_italic_mode): Removed.
9866 (TS_bold_mode): Removed.
9867 (TS_underscore_mode, TS_end_underscore_mode): Removed.
9868 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
9869 (TS_enter_reverse_mode): New.
9870 (TS_enter_underline_mode, TS_exit_underline_mode): New.
9871 (TN_magic_cookie_glitch_ul): New.
9872 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
9873 (TS_exit_attribute_mode): New.
9874 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
9875 (TS_set_foreground, TS_set_background): New.
9876 (reset_terminal_modes): Switch colors back to default.
9877 (write_glyphs): Turn face on before writing text, turn it off
9879 (insert_glyphs): Ditto.
9880 (term_init): Initialize new terminal capability variables.
9881 (turn_on_face): Turn a face on.
9882 (turn_off_face): Turn a face off.
9884 * lisp.h (MAKE_GLYPH): Remove test for frame type.
9885 (GLYPH_CHAR): Ditto.
9886 (GLYPH_FACE): Ditto.
9888 * xfaces.c (Vface_tty_color_alist): New.
9889 (face-register-tty-color): New.
9890 (face-clear-tty-colors): New.
9892 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
9893 (struct it): Remove member faces_p since we now always have faces.
9895 1998-08-31 Gerd Moellmann <gerd@gnu.org>
9897 * dispextern.h (struct face): Add tty appearance flags.
9899 * xdisp.c (init_iterator): Always handle faces.
9900 (extend_face_to_end_of_line): Handle tty frames.
9902 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
9905 1998-08-30 Gerd Moellmann <gerd@gnu.org>
9907 * xfaces.c (realize_default_face): Use empty strings to indicate
9908 that the face should use the default foreground/background
9909 color of the terminal. Fill font-related attributes with
9910 appropriate values for tty frames.
9912 * emacs.c (main): Call syms_of_xfaces before init_window_once.
9914 * xfaces.c (realize_default_face): If face `default' is not
9915 yet known, create it.
9917 * frame.c (make_terminal_frame): Call init_frame_faces
9920 * xfaces.c (init_frame_faces): Make it work for tty frames.
9921 (free_frame_faces): Ditto.
9922 (clear_face_cache): Ditto.
9923 (recompute_basic_faces): Ditto.
9924 (Fframe_face_alist): Ditto.
9925 (free_realized_face): Ditto.
9926 (prepare_face_for_display): Ditto.
9927 (clear_face_gcs): Ditto.
9928 (lookup_face): Ditto.
9929 (smaller_face): Ditto.
9930 (realize_default_face): Ditto.
9931 (realize_face): Ditto.
9932 (realize_face): Dispatch to functions depending on the frame type.
9933 (realize_x_face): X way of realizing faces.
9934 (realize_tty_face): TTY way of realizing faces.
9936 1998-08-29 Gerd Moellmann <gerd@gnu.org>
9938 * xfaces.c (realize_face): Remove parameter unibyte_registry,
9940 (lookup_face): Remove local variable unibyte_registry.
9942 1998-08-22 Gerd Moellmann <gerd@gnu.org>
9944 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
9947 * xdisp.c (face_before_or_after_it_pos): Fix computation
9950 * editfns.c (make_buffer_string_both): If prompt in buffer,
9951 prevent start > end.
9953 * indent.c (Fvertical_motion): Set current_buffer to window's
9954 buffer if it isn't already.
9956 1998-08-21 Gerd Moellmann <gerd@gnu.org>
9958 * dispextern.h (GLYPH_DEBUG): Use default 0.
9960 * xdisp.c (it_props): New member `smaller'.
9961 (init_iterator): Initialize it.
9963 (push_it): Save value of `smaller' value on the stack.
9964 (pop_it): Restore `smaller' from the stack.
9965 (handle_smaller_prop): New.
9966 (handle_face_prop): Use `smaller' text property to select a
9969 * dispextern.h (SMALLER_PROP_IDX): New.
9970 (struct it): Add member `smaller'.
9972 * xfaces.c (smaller_face): New.
9974 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
9976 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
9977 total pixel width of window differently.
9979 * xdisp.c (init_iterator): Compute width of mode line differently.
9981 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
9984 * window.c (Fsplit_window): Include width of bitmap areas in
9986 (window_internal_width): Subtract width of bitmap areas from
9989 1998-08-18 Gerd Moellmann <gerd@gnu.org>
9991 * xdisp.c: Functions reordered for better readability.
9993 * dispnew.c (update_text_area): Handle glyphs with arbitrary
9995 (update_window_tree): Parameter no_scrolling_p removed.
9996 (update_single_window): Ditto.
9998 * xterm.c (x_get_char_font_and_encoding): Renamed to
9999 x_get_char_face_and_encoding.
10001 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
10002 if end of current row reached.
10004 * xterm.c (x_get_glyph_face_and_encoding): New.
10005 (x_get_glyph_overhangs): Call it.
10007 * xdisp.c (Qshow_trailing_whitespace): New.
10008 (Qtrailing_whitespace): New.
10009 (enum prop_handled): New.
10010 (struct props, it_props): New.
10011 (next_overlay_change): New. Works like Fnext_overlay_change
10012 but doesn't use xmalloc.
10013 (handle_stop): Restructured.
10014 (face_before_or_after_it_pos): Case iteration over a string: fix
10015 handling of face before current position.
10017 1998-08-16 Gerd Moellmann <gerd@gnu.org>
10019 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
10020 reallocation matrix if fonts_changed_p.
10021 (update_text_area): Handle glyphs with lbearing.
10023 1998-08-14 Gerd Moellmann <gerd@gnu.org>
10025 * xdisp.c (struct props): New.
10027 (compute_prop_info): New.
10028 (handle_stop): New.
10030 * textprop.c (validate_interval_range): Make it externally
10033 * dispnew.c (direct_output_for_insert): Remove calls
10034 to compute_stop_pos.
10036 * dispextern.h (struct it): Remove check_charpos,
10037 next_overlay_pos. Add what_changes.
10039 1998-08-10 Gerd Moellmann <gerd@gnu.org>
10041 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
10043 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
10044 face_default_registry instead.
10046 * syntax.c (scan_sexps_forward): Set up syntax table before
10047 jumping to initial state label.
10049 1998-08-09 Gerd Moellmann <gerd@gnu.org>
10051 * dispnew.c (check_matrix_invariants): Handle case of row end pos
10054 1998-08-08 Gerd Moellmann <gerd@gnu.org>
10056 * xdisp.c (redisplay_window): Case cursor movement---if cursor
10057 ends up in partially visible row, try to scroll. Case forced
10058 window start---handle windows not tall enough to show a single
10061 * window.h (struct window): Member dy renamed vscroll.
10063 * xterm.c (x_list_fonts): Re-activate suppression of scalable
10065 (x_draw_stretch_glyph_string): Set clipping if using GC that
10068 * xdisp.c (redisplay_window): Case forced window start -
10069 don't let cursor end on partially visible row. Use desired
10070 matrix to find a suitable PT if it doesn't appear.
10071 (decode_mode_spec): Merged with 20.2.97.
10072 (try_window_reusing_current_matrix): Give up if old or
10073 new display is vscrolled.
10074 (redisplay_window): Reset vscrolling if forced window start,
10077 1998-08-06 Gerd Moellmann <gerd@gnu.org>
10079 * xfaces.c (realize_default_face): Use the fontset name instead of
10080 the alias for the family attribute of the default face because we
10081 can't easily determine a good alias from fontset-alias-alist.
10082 (face_fontset): Use Fquery_fontset to find the fontset.
10083 (font_list): Additional pattern parameter.
10084 (try_font_list): Ditto.
10085 (set_lface_from_font_name): Set face family from font foundry
10087 (font_list): If family contains a hyphen, build pattern differently.
10089 1998-08-05 Gerd Moellmann <gerd@gnu.org>
10091 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
10092 changed instead of setting the frame garbaged.
10094 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
10095 all attribute values. This is wrong if values are unspecified,
10098 * xdisp.c (try_window_id): Give up if window start changed.
10100 * xfaces.c (make_realized_face): Store registry as Lisp object.
10101 (load_face_font_or_fontset): Compute registry of a face
10102 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
10105 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
10108 * alloc.c (mark_face_cache): Mark the registry member of faces.
10110 * dispextern.h (struct face): Make registry a Lisp string.
10112 1998-08-04 Gerd Moellmann <gerd@gnu.org>
10114 * xterm.c (x_get_char_font_and_encoding): Additional parameter
10115 multibyte_p. Handle unibyte text.
10116 (x_append_glyph): Set the multibyte_p flag of glyphs.
10117 (x_produce_image_glyph): Ditto.
10118 (x_append_stretch_glyph): Ditto.
10119 (x_produce_glyphs): Handle unibyte text like ASCII.
10121 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
10123 (pop_it): Restore it.
10124 (face_before_or_after_it_pos): Handle the case that the string or
10126 (get_overlay_strings): Set the multibyte flag of the iterator if
10127 the new overlay string is multibyte.
10128 (get_glyph_property): Likewise.
10129 (get_next_display_element): Don't check for charset changes in
10131 (append_space): Compute face differently for unibyte text.
10132 (extend_face_to_end_of_line): Don't return quickly if face has
10135 * xfaces.c (load_face_font_or_fontset): Store registry and
10136 encoding of the font in the registry member of the face.
10137 (make_realized_face): Additional parameter `registry'.
10138 (free_realized_face): Free the registry of a realized face.
10139 (face_suitable_for_charset_p): Function form of the macro
10140 with the same name in uppercase.
10141 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
10142 (choose_face_font): New parameter unibyte_registry.
10143 (choose_face_fontset_font): Ditto.
10144 (realize_default_face): Remember the registry and encoding of
10145 the specified frame font in Vx_unibyte_registry_and_encoding.
10146 (face_at_buffer_position): Handle unibyte.
10147 (face_at_string_position): Likewise.
10148 (realize_face): New parameter unibyte_registry.
10149 (compute_char_face): Handle the unibyte case.
10151 * dispextern.h (struct glyph): Add bit multibyte_p.
10152 (struct face): New member registry holding the registry and
10153 encoding of the X font of the face.
10154 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
10155 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
10156 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
10158 (struct iterator_stack_entry): Add multibyte_p.
10160 * xdisp.c (string_pos): Use string_char_to_byte.
10161 (char_charset): Removed.
10163 1998-08-03 Gerd Moellmann <gerd@gnu.org>
10165 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
10166 rectangle for a block cursor over an image without a mask.
10167 (x_stretch_block_cursor): Added. Non-zero means don't draw
10168 a block cursor over a stretch as wide as that stretch.
10169 (x_draw_stretch_glyph_string): Use it.
10170 (x_draw_hollow_cursor): Ditto.
10172 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
10173 (read_minibuf): Add front-sticky text property for prompt.
10175 * xdisp.c (char_charset): Return charset of a character,
10176 depending on whether or not multi-byte characters are enabled.
10178 * xfaces.c (Fset_face_charset_registry): Removed.
10179 (x_charset_registry): Determine registry from charset plist.
10181 1998-08-02 Gerd Moellmann <gerd@gnu.org>
10183 * xdisp.c (get_next_display_element): Don't check for charset
10184 changes if multi-byte characters are not enabled.
10186 * xdisp.c (echo_area_display): Use the flush function from the
10187 redisplay interface.
10188 * keyboard.c (detect_input_pending_run_timers): Likewise.
10190 * dispextern.h (produce_*glyphs_hook): Removed.
10191 * term.c (produce_*glyphs): Ditto.
10192 (cursor_to): Remove pixel position parameters.
10194 * dispnew.c: Remove hooks for window-based redisplay, introduce
10195 a redisplay interface structure.
10197 * xterm.c (x_per_char_metric): Return default char metrics if per
10198 char metric exists but contains a zero width. Adobe Courier seems
10199 to contain such characters.
10201 * xdisp.c (compute_line_metrics): Compute the width of rows
10202 without stopping at glyphs with zero width.
10204 1998-08-01 Gerd Moellmann <gerd@gnu.org>
10206 * xdisp.c (display_mode_line): If nothing was displayed at all,
10208 (hscroll_window_tree): Don't subtract 1 from target point if equal
10209 to ZV and window is not the selected window.
10211 * dispnew.c (check_matrix_invariants): Remove check for window
10212 start at BEGV or after newline. This happens in rare cases
10215 1998-07-31 Gerd Moellmann <gerd@gnu.org>
10217 * xfaces.c (x_charset_registry): Use STRING_BYTES.
10218 (syms_of_xfaces): Add Vface_default_registry.
10219 (x_charset_registry): Use it.
10221 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
10222 (redisplay_window): Use it.
10224 * dispnew.c (update_text_area): Handle lbearing of deleted text
10225 by backing up one character.
10227 1998-07-30 Gerd Moellmann <gerd@gnu.org>
10229 * dispnew.c (adjust_glyph_matrix): Use a different check to
10230 decide to do nothing.
10232 * xfaces.c (face_at_string_position): Additional parameter
10233 mode_line_p. If non-zero, merge with the mode line face
10234 instead of the default face.
10235 * dispextern.h (struct it): Add mode_line_p.
10236 * xdisp.c (init_iterator): Set it.
10237 (compute_face_in_string): Use it.
10238 (face_before_or_after_it_pos): Handle strings.
10239 (get_next_display_element): Don't look for relief end in C strings.
10240 (next_element_from_string): Deliver string position instead of
10243 * xterm.c (x_flush): Flush X output buffer.
10246 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
10247 Allow strings as face names.
10249 * xfns.c (forall_images_in_image_cache): Check that frame is
10252 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
10253 it's also called from x_destroy_window. Since this function is
10254 called from X, freeing stuff allocated with xmalloc is dangerous
10257 * xfaces.c (free_realized_faces): Don't clear current matrices
10258 of a frame being destroyed.
10260 * frame.c (make_frame): Call set_window_buffer instead of
10261 Fset_window_buffer.
10263 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
10264 with an additional argument specifying whether or not hooks may
10266 (Fset_window_buffer): Call it.
10268 * dispnew.c (clear_desired_matrices): Check that frame has
10269 a valid root window before clearing matrices in the window tree.
10270 (clear_current_matrices): Ditto.
10271 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
10272 vchild are valid windows if not nil.
10274 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
10275 for :inverse-video.
10276 (Finternal_set_lisp_face_attribute): Ditto.
10277 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10278 (Finternal_get_lisp_face_attribute): Ditto.
10279 (Finternal_lisp_face_attribute_values): Ditto.
10280 (syms_of_xfaces): Define the symbol `:reverse-video'.
10282 * xdisp.c (get_glyph_property): Renamed from
10283 fill_iterator_from_glyph_property.
10284 (next_element_from_buffer): Handle case that no `glyph' property
10285 was found correctly.
10286 (display_line): Extend face to end of line only if we have faces.
10288 1998-07-29 Gerd Moellmann <gerd@gnu.org>
10290 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
10291 additional window argument.
10293 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
10294 set_iterator_to_previous_visible_line_start.
10295 (reseat_at_next_visible_line_start): Likewise.
10296 (compute_stop_pos): Renamed from set_iterator_stop_pos.
10297 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
10298 (compute_face_in_buffer): Renamed from
10299 compute_face_at_iterator_position.
10300 (compute_face_in_string): Renamed from
10301 compute_face_at_iterator_string_position.
10302 (get_space_width): Renamed from get_iterator_space_width.
10303 (next_overlay_string): Renamed from
10304 set_iterator_to_next_overlay_string.
10305 (get_overlay_strings): Renamed from
10306 get_overlay_strings_at_iterator_position.
10307 (restore_overlay_strings): Renamed from
10308 setup_overlay_strings_from_glyph_pos.
10309 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
10310 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
10311 (init_to_row_start): Renamed from init_iterator_to_row_start.
10312 (init_to_row_end): Formerly init_iterator_to_next_row_start.
10314 * xterm.c: Merge with 20.2.97.
10315 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
10317 * dispextern.h (struct glyph): Replace text_pos position with
10320 * xdisp.c (this_line_start_pos): Use struct text_pos.
10321 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
10322 (enum move_it_result): Renamed from move_iterator_result.
10323 (string_pos_nchars_ahead): Compute text_pos in a string from a
10324 known text_pos plus a character delta.
10325 (string_pos): Compute text_pos in string from charpos.
10326 (c_string_pos): Likewise for a C string.
10327 (number_of_chars): Return number of characters in a possibly
10328 multi-byte C string.
10329 (check_it): Renamed from check_iterator. Check that charpos and
10330 bytepos are in sync.
10331 (push_it): Renamed from save_iterator_settings.
10332 (pop_it): Renamed from restore_iterator_settings.
10333 (move_it_.*): Renamed from move_iterator_.*.
10334 (charset_at_position): Take charpos/bytepos into account.
10335 (back_to_previous_line_start): Set iterator to previous line start.
10336 (forward_to_next_line_start): Set iterator to next line start.
10337 (back_to_previous_visible_line_start): Renamed from
10338 move_iterator_previous_visible_line_start.
10339 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
10340 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
10341 Handle charpos/bytepos.
10342 (compute_face_at_iterator_position): Handle charpos/bytepos.
10343 (compute_face_at_iterator_string_position): Likewise.
10344 (get_iterator_space_width): Likewise.
10345 (load_overlay_strings): Likewise.
10346 (get_overlay_strings_at_iterator_position): Likewise.
10347 (reseat_iterator): Take a text_pos position argument.
10348 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
10350 (init_iterator): Take additional bytepos parameter.
10351 (reseat_iterator_to_string): Handle charpos/bytepos.
10352 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
10353 (next_element_from_string): Handle charpos/bytepos.
10354 (next_element_from_c_string): Likewise.
10355 (fill_iterator_from_glyph_property): Likewise.
10356 (next_element_from_buffer): Likewise.
10357 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
10358 (move_iterator_in_display_line_to): Handle charpos/bytepos.
10359 (move_it_to): Likewise.
10360 (move_it_vertically_backward): Likewise.
10361 (move_it_vertically): Likewise.
10362 (move_it_by_lines): Likewise.
10363 (hscroll_window_tree): Likewise.
10364 (redisplay_internal): Likewise.
10365 (set_cursor_from_row): Likewise.
10366 (redisplay_window): Likewise.
10367 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
10368 (try_window_reusing_current_matrix): Handle charpos/bytepos.
10369 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
10370 (try_window_id): Handle charpos/bytepos.
10371 (Ftrace_redisplay_toggle): Return Qnil.
10372 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
10373 (insert_left_trunc_glyphs): Likewise.
10375 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
10377 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
10378 (increment_glyph_row_buffer_positions): Ditto.
10379 (copy_glyph_row_contents): Ditto.
10380 (check_matrix_invariants): Add additional checks for charpos/
10381 bytepos consistency.
10382 (direct_output_for_insert): Changed for charpos/bytepos.
10383 (buffer_posn_from_coords): Likewise. Put code dealing with
10384 `direction-reversed' in #if 0.
10386 * xterm.h: Merge with 20.2.97.
10388 * frame.h: Merge with 20.2.97.
10390 * window.h: Merge with 20.2.97. Add window_end_bytepos.
10392 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
10394 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
10395 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
10396 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
10397 (struct it): Various members renamed from .*pos to .*charpos.
10398 (IT_CHARPOS): Access current buffer character position of an
10400 (IT_BYTEPOS): Access current buffer byte position of an iterator.
10401 (IT_STRING_CHARPOS): Access current string character position of
10403 (IT_STRING_BYTEPOS): Access current string byte position of
10405 (globally): Add function prototypes from 20.2.97.
10407 * everywhere: Use P_ instead of PROTO for function prototypes
10408 because everyone else seems to use P_.
10410 * dispextern.h (struct text_pos): Structure describing a charpos/
10411 bytepos position in text.
10412 (BYTEPOS): Access the byte position part of a text_pos.
10413 (CHARPOS): Likewise for the character position.
10414 (SET_TEXT_POS): Set a text_pos from a character and byte position.
10415 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
10416 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
10417 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
10418 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
10419 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
10420 for buffer and string positions.
10421 (struct glyph): Use text_pos.
10422 (struct it): Renamed from display_iterator. Use text_pos.
10424 1998-07-23 Gerd Moellmann <gerd@gnu.org>
10426 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
10429 1998-07-21 Gerd Moellmann <gerd@gnu.org>
10431 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
10432 * xterm.c (x_draw_row_bitmaps): Use it.
10433 * dispnew.c (row_equal_p): Ditto.
10434 (update_window_line): Ditto.
10436 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
10439 * dispextern.h (struct image): Removed member loading_failed_p.
10440 It's probably better to have the chance to try to load an image
10443 1998-07-20 Gerd Moellmann <gerd@gnu.org>
10445 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
10446 at ZV if `indicate-zv-lines' is non-nil.
10447 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
10449 * dispnew.c (row_equal_p): Compare displays_text_p and
10450 ends_at_zv_p flags of rows.
10451 (update_window_line): Ditto.
10453 * buffer.h (struct buffer): New member indicate_zv_lines.
10455 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
10456 (init_buffer_once): New variable `default-indicate-zv-lines'.
10457 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
10459 * xdisp.c (redisplay_window): Don't try moving the cursor
10460 if current glyph row w->last_cursor.vpos isn't enabled.
10462 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
10464 * window.c (Fset_window_vscroll): Allow only negative scroll
10465 values. Others don't seem to make sense, and this way it's easy
10466 to restore a vscroll of zero.
10468 * xterm.c (x_inverted_image_mask): Check that pixmap could be
10470 (x_draw_image_glyph_string_background): Don't clip if pixmap
10471 could not be created.
10473 * xfns.c (xbm_load_image_from_file): Check that pixmap could
10478 * xterm.c (x_get_glyph_overhangs): Take image and stretch
10479 glyphs into account.
10481 * xfaces.c (realize_default_face): Don't set font family of
10482 the default face from the fontset alias name for `fontset-startup'.
10484 * xfns.c (gs_load): Pass frame's pixel foreground and background
10485 color to the Lisp loader.
10487 1998-07-19 Gerd Moellmann <gerd@gnu.org>
10489 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
10492 * configure.in (--with-tiff, HAVE_TIFF): Added.
10494 * config.in (HAVE_TIFF): Added.
10496 * Makefile.in (LIBTIFF): Added.
10498 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
10500 * Makefile.in (LIBJPEG): Added.
10502 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
10503 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
10506 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
10507 where the library is installed in /usr/local/lib, e.g. FreeBSD,
10508 configure must be run with `--x-includes=/usr/X11R6/include:
10509 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
10511 1998-07-18 Gerd Moellmann <gerd@gnu.org>
10513 * config.in (HAVE_JPEG): Added.
10515 * xfns.c (ct_init): Initialize color table used to map RGB colors
10516 from images to X pixel colors.
10517 (ct_free): Free color table.
10518 (ct_lookup): Look an RGB color up.
10519 (ct_allocated_colors): Get vector of allocated colors.
10520 (pbm_image_p): Test if image specification is a valid PPM
10521 image specification.
10522 (pbm_scan_number): Scan a decimal ASCII number from a file.
10523 (pbm_load): Load a PPM image.
10525 * window.c (Fset_window_vscroll): Adjust glyph matrix if
10526 necessary. Take canonical character units as parameter.
10527 (Fwindow_vscroll): Return canonical character units.
10529 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
10530 w->dy to display height for which glyph rows must be allocated.
10532 1998-07-17 Gerd Moellmann <gerd@gnu.org>
10534 * xfaces.c (face_at_string_position): Merge in region face
10535 so that it won't overwrite the font in the region.
10536 (face_at_buffer_position): Ditto.
10537 (realize_basic_faces): Don't realize region face.
10539 * dispextern.h (enum face_id): REGION_FACE_ID removed.
10541 * xterm.c (x_set_glyph_string_background_width): Don't let
10542 cursor face extend to end of line.
10544 * xdisp.c (append_space): If adding space of default face,
10545 make sure glyph ist produced with right face.
10547 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
10548 background color of a glyph string.
10549 (x_draw_glyph_string_background): Call it.
10550 (x_draw_glyph_string_bg_rect): Ditto.
10551 (x_draw_stretch_glyph_string): Ditto.
10553 1998-07-15 Gerd Moellmann <gerd@gnu.org>
10555 * xdisp.c (init_iterator): Initialize it->current_y to the
10556 window's vscroll w->dy.
10558 * window.c (Fwindow_vscroll): Return number of pixels window
10559 is vscrolled smoothly.
10560 (Fset_window_vscroll): Set the number.
10562 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
10563 to_pos in truncated part of a line.
10565 1998-07-14 Gerd Moellmann <gerd@gnu.org>
10567 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
10568 doesn't fit on the line, truncate it, despite truncate_lines nil.
10569 (display_line): Ditto.
10571 * xfns.c: Experimental support for Ghostscript images.
10573 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
10574 (XTread_socket): React on events from Ghostscript.
10575 (expose_frame): If width or height are zero, redraw entire frame.
10576 (XTread_socket): Call expose_frame after receiving event from
10579 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
10580 for Ghostscript support.
10582 * xdisp.c (redisplay_internal): Return quickly if called
10585 * alloc.c (NSTATICS): Increased to 1024.
10587 1998-07-08 Gerd Moellmann <gerd@gnu.org>
10589 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
10590 iterator's glyph row.
10591 (x_produce_stretch_glyph): Call it.
10592 (x_produce_glyphs): Handle `space-width' property; call
10593 x_append_stretch_glyph.
10595 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
10597 (get_iterator_space_width): Determine value of `space-width'
10598 property at iterator's position.
10599 (reseat_iterator): Call it.
10600 (next_element_from_string): Ditto.
10601 (next_element_from_buffer): Ditto.
10602 (init_iterator): Initialize space_width of iterator.
10603 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
10604 moved, but cursor blinks.
10605 (redisplay_internal): Set w->last_cursor_off_p after update.
10607 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
10608 (struct display_iterator): Add new member space_width.
10610 * window.h (struct window): Add last_cursor_off_p.
10612 1998-07-07 Gerd Moellmann <gerd@gnu.org>
10616 * window.c (Fpos_visible_in_window_p): Case window not up to
10617 date---return nil if iterator hasn't reached position.
10619 1998-07-06 Gerd Moellmann <gerd@gnu.org>
10621 * xdisp.c (text_outside_line_unchanged_p): Fix case that
10622 overlays have changed.
10623 (redisplay_window): Case cursor movement. Don't try it if
10624 last_cursor.vpos is out of range.
10626 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
10627 way, the display optimization for the line containing the cursor
10628 is used more frequently, esp. when we have a blinking cursor.
10629 (display_line): Don't set this_line_.* variables.
10631 * xterm.c (x_redraw_cursor): Removed.
10632 (x_display_and_set_cursor): Set cursor type depending on
10633 cursor_off_p flag of window.
10635 * dispnew.c (redraw_cursor_hook): Removed.
10636 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
10637 member of the selected window.
10639 * xfaces.c (Fface_font): Added for compatibility with 20.2.
10641 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
10642 Return glyph area under x/y.
10643 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
10645 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
10646 after redisplaying.
10648 1998-07-05 Gerd Moellmann <gerd@gnu.org>
10650 * xdisp.c (text_outside_line_unchanged_p): Test if changes
10651 are all outside of a line of text.
10652 (redisplay_internal): Use it.
10654 1998-06-30 Gerd Moellmann <gerd@gnu.org>
10656 * xdisp.c (next_element_from_buffer): After skipping over
10657 invisible text, look for the `glyph' property.
10658 (set_iterator_stop_pos): Ignore check positions in front
10659 of an iterator's current position.
10661 * xterm.c (show_mouse_face): Don't act on rows that don't exist
10662 anymore or which are marked as not having valid contents.
10664 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
10665 realized faces if new attribute value is equal to old value.
10667 1998-06-29 Gerd Moellmann <gerd@gnu.org>
10669 * xfaces.c (Finternal_make_lisp_face): Increment
10670 lface_id_to_name_size when lface_id_to_name is reallocated.
10672 1998-06-27 Gerd Moellmann <gerd@gnu.org>
10674 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
10675 as minimum of endpos and overlay_pos.
10676 (load_overlay_strings): Set next_overlay_pos of iterator to
10677 -1 if we don't have to check for more overlay strings.
10679 1998-05-09 Gerd Moellmann <gerd@gnu.org>
10681 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
10682 do anything if iterator is at ZV because scan_buffer doesn't
10685 * xterm.c (x_encode_char): Inline it.
10686 (x_get_char_font_and_encoding): Simplified.
10687 (x_per_char_metric): Inline it.
10689 * xterm.c (x_draw_glyph_string_relief): Use clipping.
10691 * xdisp.c (get_next_display_element): Check for end of relief
10692 face moved here from next_element_from_buffer.
10694 * xterm.c (x_produce_image_glyph): Add relief thickness.
10695 (x_produce_stretch_glyph): Ditto.
10697 1998-05-08 Gerd Moellmann <gerd@gnu.org>
10699 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
10700 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
10702 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
10703 from a glyph property.
10704 (x_produce_glyphs): Use it.
10706 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
10708 * xterm.c (x_produce_image_glyph): Add to current_x only if
10710 (x_produce_glyphs): Ditto.
10712 * xdisp.c (display_line): Compute row height from glyphs in
10715 * xterm.c (x_draw_image_glyph_string_background): Draw
10716 background of an image glyph string.
10717 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
10718 the background of a glyph string.
10719 (x_draw_image_glyph_string_foreground): Draw the foreground of
10720 an image glyph string.
10721 (x_inverted_image_mask): Return the inverted mask of an image.
10723 * xfns.c (x_draw_image): Removed.
10725 * dispextern.h (struct image_type): Remove drawing function.
10727 * xfaces.c (load_face_colors): Swap colors if face is inverse.
10729 * xdisp.c (get_next_display_element): In marginal areas, translate
10730 newlines, tabs, etc. like normal control characters.
10732 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
10734 (free_realized_faces): Set frame garbaged.
10736 * xfaces.c (syms_of_xfaces): Add defsubr for
10737 internal-lisp-face-attribute-values.
10739 1998-05-07 Gerd Moellmann <gerd@gnu.org>
10741 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
10743 (x_produce_image_glyph): Set IT->nglyphs to 1.
10744 (x_draw_image_glyph_string): Use inverted mask to draw background.
10746 * dispextern.h (struct image_type): Additional clipping rect
10747 parameters for drawing functions.
10749 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
10751 (x_draw_image_glyph_string): Use it and pass the rect to the
10752 image drawing function.
10754 * xdisp.c (fill_iterator_from_glyph_property): Use position of
10755 first character with `glyph' property as image position. Set
10756 iterator back to that position as long as the image hasn't been
10757 consumed with set_iterator_to_next.
10758 (set_cursor_from_row): Accept when glyph with given position is
10759 not found in the row. Set cursor x to end of line in that case,
10760 so that we can hscroll.
10761 (redisplay_internal): Correct computation of delta by which
10762 positions have changed in redisplay optimization for cursor
10763 row of selected window.
10765 * xdisp.c (display_line): Remove start_pos.
10766 (display_line): Fix bug preventing display optimization for
10767 cursor line of selected window.
10768 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
10771 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
10772 (update_text_area): Take glyph pixel width into account
10773 when trying to find a resync point.
10774 (row_equal_p): Compare glyphs in all areas.
10776 1998-05-06 Gerd Moellmann <gerd@gnu.org>
10778 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
10780 * dispextern.h (struct glyph_row): Use unsigned hash value.
10782 * xdisp.c (display_line): Simplified and made faster by setting
10783 the cursor with set_cursor_from_row.
10784 (set_cursor_from_row): Handle rows of desired matrix.
10786 1998-05-05 Gerd Moellmann <gerd@gnu.org>
10788 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
10789 with type != CHAR_GLYPH.
10790 (fill_iterator_from_glyph_property): Return void. Set
10791 method to next_element_from_image.
10792 (next_element_from_image): Dummy function for delivering a
10794 (set_iterator_to_next): Add method next_element_from_image.
10795 (redisplay_window): When recentering, and cursor vpos is -1
10796 after display, assume middle of window is in first line displayed
10797 in window, and display again.
10798 (fill_iterator_from_glyph_property): Assign image glyph
10799 the position of the first character having the glyph property.
10801 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
10802 * xfns.c (x_draw_image): Use it.
10803 * xterm.c (x_produce_image_glyph): Use it.
10805 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
10807 * Makefile.in: Extraneous #define of LIBXPM removed.
10809 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
10810 (x_fill_stretch_glyph_string): Fill a glyph string from a
10812 (x_compute_glyph_string_overhangs): Compute overhangs only
10813 for text glyph strings.
10814 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
10815 (x_draw_glyph_string): Call it.
10817 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
10818 (struct glyph): Add sub-structure for stretchable glyphs.
10819 (GLYPH_EQUAL_P): Compare glyph type and u.val.
10821 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
10824 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
10826 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
10827 setup_iterator_from_glyph_property. Don't do it for terminal
10830 * xterm.c (x_produce_image_glyph): Produce glyph for image
10831 that can't be loaded.
10833 * xfns.c (lookup_image): If image can't be loaded, set its
10834 width and height so that we can draw a rectangle.
10835 (x_draw_image): Draw a rectangle for images that don't have
10837 (make_image): Set hash value.
10838 (image_spec_equal_p): Use image_spec_value.
10840 * xterm.c (expose_frame): Don't try to redraw if basic faces
10841 haven't benn realized yet.
10842 (x_draw_image_glyph_string): Fill background only if image
10843 is not as tall as row.
10845 1998-05-04 Gerd Moellmann <gerd@gnu.org>
10847 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
10848 (LIBX)[HAVE_X11]: Add LIBXPM.
10850 * xfns.c (xpm_image_p): Implementation of image type functions
10854 * dispextern.h (struct image): Add mask pixmap for XPM.
10856 * xfns.c (x_draw_image): Handle images with masks.
10858 * configure.in: --with-xpm added. Code detecting -lXpm added.
10860 * config.in: Add HAVE_XPM.
10862 * xfns.c (xbm_draw): Removed.
10863 (x_draw_image): Default implementation for drawing images.
10864 (xbm_keyword_index): Remove XBM_DEPTH.
10865 (xbm_format): Remove `:depth'.
10866 (xbm_image_spec_from_file): Removed to reduce consing.
10867 (xbm_load_image_from_file): Added for the same reason.
10869 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
10871 (x_draw_image_glyph_string): Pass ybase to image draw function.
10873 * xfns.c (make_image): Set default baseline.
10875 * xterm.c (x_produce_image_glyph): Compute ascent of image
10876 from its height and baseline percentage.
10878 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
10879 (xbm_format): Add description for `:baseline'.
10880 (xbm_image_spec_from_file): Add keywords from original spec to
10882 (xbm_load): Set baseline of image.
10883 (xbm_image_p): Check range for baseline.
10885 * dispextern.h (struct image): Add member baseline.
10887 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
10889 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
10891 * xdisp.c (get_next_display_element): Do character translations
10892 only if delivering characters.
10894 1998-05-03 Gerd Moellmann <gerd@gnu.org>
10896 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
10899 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
10900 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
10902 1998-05-02 Gerd Moellmann <gerd@gnu.org>
10904 * xfns.c (prepare_image_for_display): Set image timestamp.
10905 (clear_image_cache): Clear images if image's timestamp +
10906 Vimage_eviction_seconds is > now.
10907 (syms_of_xfns): New variables image-eviction-seconds, and
10909 (add_image_format): Add to image-types.
10910 (xbm_load): Support new image spec format.
10911 (x_alloc_image_color): Allocate a color for an image.
10913 * dispextern.h (struct image): Add timestamp.
10915 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
10916 vectors of bool-vectors.
10917 (xbm_lisp_object_from_file): Build new format image spec.
10919 1998-05-01 Gerd Moellmann <gerd@gnu.org>
10921 * xfaces.c (init_frame_faces): Initialize image cache.
10922 (free_frame_faces): Free it.
10924 * xterm.c (x_delete_display): Don't free image cache.
10926 * emacs.c (main): Call init_xfns.
10928 1998-04-30 Gerd Moellmann <gerd@gnu.org>
10930 * alloc.c (mark_object): Mark objects in image cache.
10932 * xfns.c (x_set_internal_border_width): Correct call to
10933 widget_store_internal_border_width.
10935 * widget.c (widget_store_internal_border): Return void.
10937 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
10939 (init_x_parm_symbols): Return void.
10940 (x_report_frame_params): Ditto.
10941 (x_set_border_pixel): Ditto.
10942 (syms_of_xfns): Ditto.
10943 (x_destroy_all_bitmaps): Use xfree instead of free.
10945 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
10947 * xterm.c (x_term_init): Initialize image_cache of display info.
10948 (x_delete_display): Free image cache.
10950 * xterm.h (struct x_display_info): Add image_cache.
10952 * xfns.c (make_image_cache): Allocate a new image cache.
10953 (free_image_cache): Free an image cache.
10954 (make_image): Allocate an image.
10955 (free_image): Free an image.
10957 * dispextern.h (struct image): Structure describing an image.
10958 (struct image_cache): Structure describing an image cache.
10960 1998-04-29 Gerd Moellmann <gerd@gnu.org>
10962 * xdisp.c (check_iterator_glyph_property): Return int. Value is
10963 non-zero if iterator is filled with something to return.
10964 (next_element_from_buffer): Immediately return if
10965 setup_iterator_from_glyph_prop has filled iterator with pixmap.
10966 (next_element_from_string): Likewise.
10968 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
10970 * dispextern.h (struct glyph): Add pixmap_id.
10971 (display_element_type): Add DISP_PIXMAP.
10973 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
10976 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
10977 (clear_face_cache): Call it.
10979 * xterm.c (x_query_font): Don't look at empty font table slots.
10980 (x_compute_min_glyph_bounds): Likewise.
10981 (x_term_init): Initialize font_table to null.
10982 (x_load_font): Change allocation of font_info structures so
10983 that it is possible to free fonts.
10985 * xfns.c (Fx_close_connection): Use xfree instead of free.
10986 Only free fonts from filled font table entries.
10988 * xfaces.c (best_matching_font): Support use of scalable fonts.
10989 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
10991 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
10993 * xterm.c (x_term_init): Compute resx and resy.
10995 * xfaces.c (split_font_name): Don't reject scalable fonts.
10997 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
11000 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
11001 point size cannot be determined.
11003 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
11004 width over all fonts on a frame.
11005 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
11006 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
11009 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
11010 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
11011 (x_load_font): Use x_compute_min_char_bounds.
11013 * xterm.h (struct x_display_info): New members smallest_char_width
11014 and smallest_font_height.
11016 1998-04-28 Gerd Moellmann <gerd@gnu.org>
11018 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
11019 the same name if GC of face is zero.
11021 * dispextern.h (struct face): Member non_ascii_gc removed.
11023 * xterm.c (x_get_char_font_and_encoding): Return face's font
11024 for characters < 0177 in default face. Prepare face for
11025 display before returning it.
11026 (x_produce_glyphs): Use it->charset.
11027 (x_get_char_font_and_encoding): Simplified.
11028 (x_encode_char): Remove parameter `font'.
11030 * xfaces.c (choose_face_font): If registry from charset symbol
11031 doesn't contain a `-', make it a pattern by appending "*-*".
11033 * xdisp.c (check_iterator_glyph_property): Adjust limit for
11034 glyph_check_pos computation to character boundary.
11036 1998-04-27 Gerd Moellmann <gerd@gnu.org>
11038 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
11040 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
11041 ASCII face for a given Lisp face id.
11043 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
11045 (reseat_iterator): Set glyph_check_pos. Handle case where
11046 new position is < original position.
11047 (check_iterator_glyph_property): Handle glyph property in strings.
11048 (next_element_from_string): Call above function.
11049 (next_element_from_display_vector): Handle faces in glyphs.
11050 (get_next_display_element): Set face_id of glyphs for
11051 control chars to zero.
11053 * Makefile.in (term.o): Add dependency on dispextern.h.
11055 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
11056 (display_line): Handle marginal areas.
11057 (move_iterator_in_display_line_to): Likewise.
11059 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
11061 * xfaces.c (face_at_buffer_position): Don't merge with nil
11063 (face_at_string_position): Ditto.
11065 * dispextern.h (struct display_iterator): Use a stack of saved
11066 values instead of saving check positions etc. individually.
11068 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
11069 maybe pop the iterator's stack.
11070 (save_iterator_settings): Push a value on iterator's stack.
11071 (get_overlay_strings_at_iterator_position): Use it.
11072 (restore_iterator_settings): Pop the stack.
11073 (set_iterator_to_next_overlay_string): Use it.
11075 * xfaces.c (try_font_list): Use alternative font families.
11077 1998-04-26 Gerd Moellmann <gerd@gnu.org>
11079 * xfaces.c (Fset_face_font_sort_order): Set the order in which
11080 font selection matches fonts.
11081 (Fface_font_sort_order): Return the font sort order.
11082 (best_matching_font): Find best matching font based on sort order.
11083 (cmp_font_names): Sort by given sort order.
11085 * dispextern.h (struct display_iterator): New member faces_p.
11086 * xdisp.c (init_iterator): Initialize it->faces_p.
11087 (compute_face_at_iterator_string_position): Use it.
11088 (compute_face_at_iterator_position): Use it.
11089 (init_iterator): Use it.
11090 (display_mode_line): Ditto.
11092 * xdisp.c (get_next_display_element): Put code choosing a face
11093 when the charset changes in #ifdef HAVE_FACES.
11095 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
11096 lookup_face_for_charset.
11098 * xfaces.c (free_font_names): Renamed from free_split_font_names.
11099 (free_all_realized_faces): Renamed from remove_all_realized_faces.
11101 1998-04-25 Gerd Moellmann <gerd@gnu.org>
11103 * xfaces.c (best_matching_font): Return the name of the best
11104 matching font in an array of font_name structures.
11105 (choose_face_font): Use it.
11106 (choose_face_fontset_font): Use it.
11107 (find_best_weight_font): If final font found has same weight as
11108 the font we started with, return the original font because it is a
11109 better match for the resolution of the display.
11110 (find_best_slant_font): Likewise.
11111 (merge_face_vector_with_property): Check more invalid attribute
11113 (lface_suitable_for_charset_p): Replaced by a macro with the same
11114 name in upper-case.
11116 1998-04-24 Gerd Moellmann <gerd@gnu.org>
11118 * dispextern.h (struct face): Member
11119 fontset_chosen_for_realization_p removed.
11121 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
11122 end of the collision list, so that we find more specific faces
11124 (lookup_face_for_charset): Look up a new face if face->fontset >=
11125 0, and charset != CHARSET_COMPOSITION.
11127 * xfaces.c (split_font_name): Return zero if point size of font
11128 couldn't be computed.
11129 (realize_default_face): Use ASCII font of a fontset to determine
11130 font-related attributes of the default face.
11131 (face_fontset): Return fontset id for face family.
11132 (font_list): Additional parameter font_pattern. If non-nil,
11133 return fonts matching that pattern.
11135 1998-04-23 Gerd Moellmann <gerd@gnu.org>
11137 * xfaces.c (choose_face_fontset): If new fontset cannot be
11138 constructed, or fontset name cannot be split, return the id of the
11141 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
11142 When Emacs starts, it may be called for the initial frame which
11145 * dispextern.h (struct face): New members foreground_defaulted_p,
11146 background_defaulted_p.
11147 (struct face): Members `mask' and `cache' removed.
11149 * xfaces.c (load_color): Set them.
11150 (free_face_colors): Check them.
11151 (xlfd_point_size): Return -1 if resolution or point size of
11154 * xfaces.c (free_font): Removed.
11155 (load_face_font_or_fontset): Renamed from load_font.
11156 (load_face_font_or_fontset): Use message2 instead of signalling.
11157 (load_color): Likewise.
11158 (load_pixmap): Likewise.
11160 * xterm.h (struct x_display_info): Add screen_dpi.
11161 * xterm.c (x_term_init): Initialize it.
11162 * xfaces.c (xlfd_point_size): Use it.
11163 (split_font_name): Compute numeric XLFD_RESY.
11164 (cmp_font_names): Make fonts with an y-resolution more
11165 similar to that of the frame appear first in the result.
11167 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
11168 is set for the face to cache, add it to the end of the collision
11170 (try_font_list): If fonts for given family and registry cannot
11171 be found, first try to keep the registry, and choose a different
11173 (choose_face_font): Allow nfonts == 0.
11174 (try_font_list): Give up if no font matches given registry.
11176 1998-04-22 Gerd Moellmann <gerd@gnu.org>
11178 * xterm.c (x_get_char_font_and_encoding): Get font_info from
11179 font info id of the face.
11181 * xfaces.c (load_font): Set font_info_id.
11182 (realize_face): Ditto.
11184 * dispextern.h (struct face): Change member font_info to
11187 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
11188 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
11190 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
11191 isn't ASCII, get the ASCII face before adding a space.
11192 (append_space): Likewise.
11193 (insert_left_trunc_glyphs): Initialize truncate_it's charset
11194 to -1 so that it will compute the right face for the truncation
11197 * xfaces.c (realize_face): Set
11198 face->fontset_chosen_for_realization_p.
11199 (lookup_face_for_charset): If fontset wasn't specified originally
11200 and new charset != CHARSET_COMPOSITION, get a new face for that
11203 * dispextern.h (struct face): New member
11204 fontset_chosen_for_realization_p_specified_p. Set to 1 when
11205 realize_face has chosen a fontset to display composite characters
11206 for a Lisp face not specifying a fontset.
11208 * xdisp.c (extend_face_to_end_of_line): Move tests for default
11209 face and line already filled here. Don't do anything if current
11210 face hasn't a relief or has a background equal to the frame
11213 * xfaces.c (split_font_name): Additional parameter numeric_p.
11214 Don't compute numeric values if it is non-zero.
11215 (choose_face_fontset): Call split_font_name with numeric_p == 0.
11216 (choose_face_fontset): Print a message if fontset contains a
11217 font whose name cannot be split into fields.
11219 1998-04-21 Gerd Moellmann <gerd@gnu.org>
11221 * xfaces.c (try_font_list): Try to load a list of fonts,
11222 possibly using less restrictive patterns.
11223 (choose_face_font): Use it.
11225 * xterm.c (x_get_char_font_and_encoding): For charset !=
11226 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
11228 * dispextern.h (struct face): New member font_info.
11230 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
11231 specifying a fontset as well as those not having a fontset.
11232 (free_font): Make it empty.
11233 (realize_face): Use changed load_font.
11235 * xterm.c (x_get_char_font_and_encoding): If face doesn't
11236 fit for charset, get the right one.
11238 * xfaces.c (load_font): Take frame and name parameter, return
11240 (free_font): Likewise.
11241 (split_font_name): Compute numeric values for height, swidth etc.
11242 (cmp_font_names): Use them.
11243 (find_best_width_font): Ditto.
11244 (find_best_height_font): Ditto.
11245 (find_best_weight_font): Ditto.
11246 (find_best_slant_font): Ditto.
11247 (lface_hash): Add weight, slant, swidth and relief to hash value.
11248 (lface_equal_p): Make it faster.
11249 (lface_from_symbol): Use assq_no_quit.
11250 (Fnote_default_face_changed): Removed.
11251 (cmp_font_names): Use strcmp instead of xstricmp.
11252 (face_charset_registries): Removed.
11254 1998-04-20 Gerd Moellmann <gerd@gnu.org>
11256 * frame.h (CHECK_FRAME): Give this macro a statement form.
11257 (CHECK_LIVE_FRAME): Ditto.
11259 * xfaces.c (find_best_width_font): Find the best matching font
11261 (find_best_height_font): Likewise for height.
11262 (find_best_weight_font): Likewise for weight.
11263 (find_best_slant_font): Likewise for slant.
11264 (choose_face_font): Use them.
11265 (get_lface_attributes): Always return frame-local face attrs.
11266 (Finternal_merge_in_global_face): Merge local face with
11267 global face attributes.
11269 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
11270 Lisp face attributes.
11272 1998-04-19 Gerd Moellmann <gerd@gnu.org>
11274 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
11275 and :italic for compatibility.
11276 (Finternal_set_lisp_face_attribute_from_resource): Handle
11277 :bold and :italic. Handle boolean resource values for
11278 :underline and :italic.
11280 * xfns.c (display_x_get_resource): Make it externally visible.
11282 * xfaces.c (lface_from_symbol): Take a frame as parameter.
11283 If that frame is non-null, return the frame-local face.
11284 (Finternal_make_lisp_face): Additional frame argument.
11285 (lface_attributes): Get face attributes from global and frame-local
11287 (Finternal_lisp_face_equal_p): Additional frame argument.
11288 (merge_lisp_face_vector_with_property): Ditto.
11289 (Frealize_basic_faces): Removed.
11290 (Finternal_get_lisp_face_attribute): Additional frame argument.
11291 (Finternal_lisp_face_p): Ditto.
11292 (load_color) [MSDOS]: Removed because it isn't clear how
11293 to do this for MS-DOS.
11295 * xfaces.c (lface_from_symbol): Get global face definition
11296 from face-global-alist.
11298 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
11299 as values for :underline and :inverse-video.
11300 (Finternal_set_lisp_face_attribute): Allow nil values.
11302 1998-04-17 Gerd Moellmann <gerd@gnu.org>
11304 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
11306 * xfaces.c (syms_of_xfaces): Add Vall_faces.
11307 (Finternal_make_lisp_face): Add new face to Vall_faces.
11309 * xdisp.c (echo_area_display): Remove code recomputing faces.
11310 (redisplay_internal): Ditto.
11311 (init_iterator): Do it here.
11313 * xfaces.c (choose_face_font): Check that swidth doesn't change
11314 for subusequent attributes.
11315 (xlfd_point_size): Return int.
11317 * xdisp.c (redisplay_internal, echo_area-display): If realized
11318 faces have been cleared, call recompute_basic_faces.
11320 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
11321 face_attributes_changed_p.
11322 (remove_all_realized_faces): Remove all realized faces on
11324 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
11326 * xdisp.c (redisplay_internal): If face attributes have been
11327 changed since the last redisplay, recompute basic faces.
11328 (echo_area_display): Ditto.
11330 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
11332 * xfaces.c (min_char_bounds): If face cache not yet present,
11333 don't try to get font dimensions from faces.
11335 * xterm.c (x_frame_mode_line_height): If face cache not present
11336 set, return default height.
11338 * alloc.c (mark_face_cache): Check for null faces. Correct
11341 * dispextern.h (struct face): Renamed from struct rface. Member
11342 underline renamed underline_p. Make it a bit-field.
11344 * xfaces.c (init_frame_faces): Allocate face cache.
11345 (free_frame_faces): Free face cache.
11346 (recompute_basic_faces): Realize basic faces only if face cache is
11347 allocated, i.e. after init_frame_faces has been called.
11349 * frame.c (make_frame): Initialze face cache with null.
11351 * xfaces.c (same_size_fonts): Removed.
11353 * xterm.c (x_set_glyph_string_gc): Add post-condition
11355 (x_set_mouse_face_gc): Ditto.
11356 (x_set_mode_line_face_gc): Ditto.
11358 * xfaces.c (realize_default_face): Return int. Value is
11359 zero if frame params don't contain enough information to
11360 realize the default face.
11361 (realize_basic_faces): Ditto.
11362 (init_frame_faces): Realize basic faces.
11364 * xfns.c (x_set_font): First store real font name in frame
11365 parameters, then call recompute_basic_faces.
11367 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
11369 1998-04-16 Gerd Moellmann <gerd@gnu.org>
11371 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
11373 * xfns.c (Fx_face_fixed_p): Removed.
11374 (Fx_list_fonts): Moved to xfaces.c.
11376 * xfaces.c (compute_face_at_buffer_pos): Renamed to
11377 face_at_buffer_position. Parameter charset removed; always
11378 compute face for CHARSET_ASCII.
11379 (face_at_string_position): Renamed from
11380 compute_face_at_string_pos. Parameter charset removed; always
11381 compute for CHARSET_ASCII.
11382 (lookup_face_for_charset): Take frame parameter instead of
11384 (lookup_face): Ditto.
11385 (compute_char_face): Renamed from compute_glyph_face.
11387 * xdisp.c (init_iterator): Initialize charset member.
11388 (reseat_iterator_to_string): Ditto.
11389 (get_charset_at_buffer_position): Determine charset at
11390 buffer position in current_buffer.
11391 (reseat_iterator): Call above function.
11392 (compute_face_at_iterator_position): Call
11393 compute_face_at_buffer_pos.
11394 (compute_face_at_iterator_string_position): Call
11395 compute_face_at_string_pos.
11396 (get_face_from_id): Removed.
11397 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
11398 Call get_charset_at_buffer_position.
11399 (reseat_iterator): Determine face if charset at pos differs
11400 from iterator's charset.
11401 (reseat_iterator_to_glyph_pos): Removed.
11403 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
11404 Determine charset from buffer position.
11405 (compute_string_char_face): Renamed to compute_face_at_string_pos.
11406 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
11408 * dispextern.h (struct display_iterator): Add member charset.
11410 1998-04-15 Gerd Moellmann <gerd@gnu.org>
11412 * xfaces.c (compute_char_face): Removed.
11414 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
11415 with new parameter list.
11417 * xfaces.c (region_face): Removed.
11418 (allocate_face): Removed.
11419 (copy_face): Ditto.
11420 (face_eql): Removed.
11421 (intern_face): Removed.
11422 (clear_face_cache): Removed.
11423 (load_font): Ditto.
11424 (unload_font): Ditto.
11425 (load_color): Ditto.
11426 (unload_color): Ditto.
11427 (new_computed_face): Ditto.
11428 (intern_computed_face): Ditto.
11429 (ensure_face_ready): Ditto.
11430 (merge_faces): Ditto.
11431 (compute_base_face): Ditto.
11432 (merge_face_list): Ditto.
11433 (Fmake_face_internal): Removed.
11434 (Fset_face_attribute_internal): Ditto.
11435 (face_name_id_number): Removed.
11436 (Fframe_face_alist): Ditto.
11437 (Fset_frame_face_alist): Ditto.
11438 (Finternal_next_face_id): Ditto.
11440 * xterm.h (struct x_output): Remove computed_faces, and
11441 param_faces. Remove macros accessing them.
11443 * xfaces.c: Entirely new face implementation added.
11445 1998-04-11 Gerd Moellmann <gerd@gnu.org>
11447 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
11450 1998-04-10 Gerd Moellmann <gerd@gnu.org>
11452 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
11453 scroll bar window to reduce flickering. Clear entire height.
11455 * xdisp.c (move_iterator_vertically_backward): Set iterator's
11456 current_x and hpos to zero after moving to previous line
11459 1998-04-03 Gerd Moellmann <gerd@gnu.org>
11461 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
11463 * xfaces.c (xlfd_point_size): Compute relative point size of
11464 fonts from font and frame resolution.
11465 (sort_fonts): New function to sort fonts, temporarily setting
11466 font_frame to the frame in effect.
11467 (xlfd_point_size): Take additional frame parameter to be able
11468 to get at the display's resolution.
11470 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
11472 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
11475 1998-03-31 Gerd Moellmann <gerd@gnu.org>
11477 * xfaces.c (choose_face_fontset): Instantiate fontsets.
11479 * fontset.h: Add external declarations for Vfontset_alias_alist
11480 and Vglobal_fontset_alist.
11482 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
11483 (realize_default_face): If frame parameters contain an artificial
11484 font name naming a fontset, set the family of the default face to
11485 the fontset name given by the registry.
11487 * Makefile.in (alloc.o): Add dependency to dispextern.h.
11489 1998-03-22 Gerd Moellmann <gerd@gnu.org>
11491 * alloc.c (mark_object): Add function prototype. Add cast to
11492 Lisp_Object pointer in call to mark_object for symbol names
11493 because this otherwise gives a warning from gcc 2.8.1.
11494 (mark_face_cache): Mark Lisp objects in realized faces.
11496 1998-03-19 Gerd Moellmann <gerd@gnu.org>
11498 * frame.h (struct frame): Add member face_cache.
11500 * alloc.c (mark_object): Mark face cache.
11501 (mark_face_cache): Mark Lisp faces in face cache of frame.
11503 * frame.c (make_frame): Initialize face_cache.
11504 (Fdelete_frame): Free it.
11506 1998-03-18 Gerd Moellmann <gerd@gnu.org>
11508 * xfaces.c: Very first skeleton of functions for face realization,
11509 face merging, face cache etc.
11511 * dispextern.h (struct rface): Realized faces. Will replace
11512 struct face when tested.
11513 (struct face_cache): Realized face caches.
11515 * xdisp.c (init_iterator): Initialize area member of display
11518 1998-03-17 Gerd Moellmann <gerd@gnu.org>
11520 * xterm.c (x_append_glyph): Use it->area to store glyphs.
11522 * dispextern.h (struct display_iterator): New member area.
11524 * xterm.c (note_overwritten_text_cursor): Note when the text
11525 cursor of a window is overwritten.
11527 * xdisp.c (set_cursor_from_row): If PT is not found in the
11528 row, display the cursor at the start of the row.
11530 * dispnew.c (direct_output_forward_char): Call
11531 set_cursor_from_row.
11533 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
11534 position is not in an overlay string, set iterator's position and
11535 method explicitly so.
11536 (set_cursor_from_row): Correct cursor position calculation.
11537 Make it externally visible.
11538 (redisplay_window): Call set_cursor_from_row so that there is only
11539 one place where the cursor position is calculated from a current
11542 * dispextern.h (struct display_iterator): New member
11543 overlay_strings_at_end_processed_p.
11545 * xdisp.c (check_iterator): Perform sanity checks on
11547 (next_element_from_buffer): Check for overlay strings at ZV.
11549 1998-03-16 Gerd Moellmann <gerd@gnu.org>
11551 * buffer.c (init_buffer_once): Add left_margin_width and
11552 right_margin_width to buffer_local_flags.
11554 * dispnew.c (margin_glyphs_to_reserve): Function computing
11555 number of glyphs to reserve for a marginal area.
11556 (adjust_glyph_matrix): Call it.
11557 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
11560 * window.c (Fset_window_margins): Allow floats.
11562 * buffer.c (syms_of_buffer): Add buffer-local variables
11563 left-margin-width and right-margin-width. Add defaults
11564 default-left-margin-width and default-right-margin-width.
11566 * buffer.h (struct buffer): New members left_margin_width
11567 and right_margin_width.
11569 * window.c (Fset_window_margins): Make window the last and
11572 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
11573 flag no_marginal_areas_p differently.
11574 (x_clear_end_of_line): Ditto.
11575 (x_draw_glyph_string_relief): Compute width of relief differently
11576 for rows with flag no_marginal_areas_p.
11578 * dispnew.c (update_window_line): Update marginal areas only
11579 for rows that don't have no_marginal_areas_p set.
11581 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
11582 (display_menu_bar): Ditto.
11584 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
11586 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
11587 marginal areas in window-based redisplay.
11589 * dispextern.h (struct glyph_matrix): New members
11590 left_margin_glyphs and right_margin_glyphs.
11592 1998-03-15 Gerd Moellmann <gerd@gnu.org>
11594 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
11596 * charset.c (non_ascii_char_to_string): Use char type parameters
11597 because the function is used that way from outside. Use unsigned
11600 * window.c (change_window_height): Return void.
11601 (make_dummy_parent): Return void.
11602 (init_window_once): Return void.
11603 (syms_of_window): Ditto.
11604 (keys_of_window): Ditto.
11605 (delete_window): Correct return with and without value.
11607 * buffer.c (record_buffer): Return void.
11609 * marker.c (unchain_marker): Return void.
11611 * window.c (unshow_buffer): Return void.
11612 (replace_window): Ditto.
11613 (delete_window): Ditto.
11615 * term.c (delete_glyphs_hook): Void return type.
11616 (ring_bell_hook): Ditto.
11617 (set_terminal_window_hook): Ditto.
11619 * sysdep.c (init_sigio): Return void.
11621 * xterm.c (x_set_window_size): Return void.
11622 (x_calc_absolute_position): Ditto.
11623 (x_set_offset): Ditto.
11624 (x_focus_on_frame): Ditto.
11625 (x_unfocus_frame): Ditto.
11626 (x_make_frame_visible): Ditto.
11627 (x_make_frame_invisible): Ditto.
11628 (x_iconify_frame): Ditto.
11629 (x_destroy_window): Ditto.
11630 (x_wm_set_window_state): Ditto.
11631 (x_wm_set_icon_pixmap): Ditto.
11632 (x_wm_set_icon_position): Ditto.
11633 (x_initialize): Ditto.
11634 (x_error_quitter): Ditto.
11635 (x_destroy_window): Use xfree instead of free.
11637 * keyboard.c (clear_waiting_for_input): Return void.
11639 * xterm.c (x_wm_set_size_hint): Return void.
11640 (x_raise_frame): Ditto.
11641 (refreshicon): Ditto.
11642 (x_error_catcher): Ditto.
11643 (x_clear_errors): Ditto.
11645 * keyboard.c (record_asynch_buffer_change): Return void.