Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
13313 lines (9338 sloc) 471.137 kb
2001-10-20 Gerd Moellmann <>
* (Version 21.1 released.)
2001-10-20 Pavel Janík <>
* xfns.c (x_laplace_read_row, x_laplace_write_row): Prototypes removed.
* xdisp.c (invisible_text_between_p): Put prototype inside #if
0 because unused.
* bytecode.c, callint.c, callproc.c, casefiddle.c, casetab.c
* category.c, ccl.c, charset.c, process.c, syntax.c, window.c:
Change doc-string comments to `new style' [w/`doc:' keyword].
2001-10-20 Miles Bader <>
The following changes remove the glyph_row `inverse_p' field,
which is never set anymore, due to other changes:
* dispextern.h (struct glyph_row): Remove `inverse_p' field.
(reassert_line_highlight, change_line_highlight): Declarations removed.
* dispnew.c (update_frame_line): Don't call reassert_line_highlight.
(line_hash_code, row_equal_p, fake_current_matrices)
(build_frame_matrix_from_leaf_window, update_frame_line)
(update_frame_line, update_frame_line, update_frame_line):
Don't use `inverse_p' field.
* xterm.c (x_initialize): Don't set reassert_line_highlight_hook or
(XTreassert_line_highlight, x_change_line_highlight):
Functions removed.
(x_fix_overlapping_area, x_write_glyphs, expose_area)
(expose_line, x_erase_phys_cursor): Don't use `inverse_p' field.
* xdisp.c (dump_glyph_row, display_mode_line): Don't use
`inverse_p' field.
* w32term.c (x_fix_overlapping_area, x_write_glyphs, expose_area)
(expose_line, x_erase_phys_cursor): Don't use `inverse_p' field.
(w32_reassert_line_highlight, x_change_line_highlight):
Functions removed.
* w32console.c (reassert_line_highlight, change_line_highlight):
Functions removed.
(initialize_w32_display): Don't set reassert_line_highlight_hook
or change_line_highlight_hook.
(hl_mode): Function removed.
(reset_terminal_modes, set_terminal_modes, update_begin)
(update_end, w32_face_attributes, initialize_w32_display):
(clear_frame, ins_del_lines): Don't call it.
* termhooks.h (reassert_line_highlight_hook)
(change_line_highlight_hook): Declarations removed.
* term.c (reassert_line_highlight_hook)
(change_line_highlight_hook): Variables removed.
(reassert_line_highlight, change_line_highlight): Functions removed.
* msdos.c (IT_reassert_line_highlight)
(IT_change_line_highlight): Functions removed.
(internal_terminal_init): Don't set reassert_line_highlight_hook
or change_line_highlight_hook.
(highlight): Variable removed.
(IT_set_face, IT_update_begin, IT_update_end)
(IT_set_terminal_modes): Don't set or use it.
The following changes remove inverse-video support for terminals
that use a `magic cookie' standout mode. Due to changes in the
way mode-lines are displayed, such support no longer works
anyway, and it's probable that almost no one uses such terminals
* term.c (standout_requested): Variable removed.
(update_end, highlight_if_desired): Don't use it.
(chars_wasted, copybuf): Variables removed.
(write_standout_marker): Function removed.
(cursor_to, clear_to_end, clear_frame, clear_end_of_line_raw)
(clear_end_of_line_raw, write_glyphs, ins_del_lines):
Don't use `chars_wasted' or `copybuf'.
(calculate_costs): Don't allocate `chars_wasted' or `copybuf'.
Set `costs_set' to true.
(cursor_to, clear_end_of_line): Test `costs_set' instead of
(clear_end_of_line): Function removed.
(clear_end_of_line_raw): Renamed to `clear_end_of_line'.
(clear_to_end): Call `clear_end_of_line' instead of
(TN_standout_width, TF_xs, TN_magic_cookie_glitch_ul): Vars removed.
(term_init): Don't set them.
Turn off any standout/underline modes that require magic cookies.
(ins_del_lines, highlight_if_desired, background_highlight)
(turn_on_highlight, turn_off_highlight, reset_terminal_modes):
Remove special processing for magic-cookie standout modes.
(turn_off_face, turn_on_face): Remove special processing for
underline magic-cookie glitch.
2001-10-19 Richard M. Stallman <>
* eval.c (syms_of_eval): Doc fixes.
2001-10-19 Gerd Moellmann <>
* xdisp.c (redisplay_internal): Don't clear echo area if the
mini-window is selected.
2001-10-19 Miles Bader <>
* editfns.c (text_property_stickiness): Non-rear-non-stickiness
doesn't take precedence if the affected property's value is nil.
* editfns.c (Fencode_time): Escape a BOL paren in the doc-string.
* cmds.c (Fbeginning_of_line, Fend_of_line): Clarify interaction
with fields and suggest using `forward-line' to avoid them.
* editfns.c (Fline_beginning_position, Fline_end_position):
Clarify documentation.
2001-10-18 Stefan Monnier <>
* keymap.c (current_minor_maps): `override' only shadows its
correspondent in minor-mode-map-alist, not the whole tail.
2001-10-18 Andrew Innes <>
* fontset.c (fs_load_font) [WINDOWSNT && _MSC_VER]: Disable
optimization. The fontp->encoding array was not being initialized
correctly when compiled with optimizations by MSVC.
2001-10-18 Gerd Moellmann <>
* xdisp.c (display_line): Indicate empty lines in active mini-window.
2001-10-17 Andrew Innes <>
* fontset.h (struct font_info) [WINDOWSNT]: Add codepage field.
* w32fns.c (w32_load_system_font): Cache codepage for font, in
font_info.charset field.
* w32term.c (w32_encode_char): Get cached codepage from font_info,
rather than working it out by calling w32_codepage_for_font for
every glyph.
2001-10-17 Andrew Innes <>
* w32term.c (w32_read_socket): Determine clipping rectangle for
the entire frame, including areas covered by scrollbars and the
menubar. This avoids internal arguments about whether a frame is
fully obscured or not.
2001-10-17 Gerd Moellmann <>
* xdisp.c (try_window_id): Undo last change. Give up if
window ends in strings.
* xdisp.c (try_window_id): Don't display lines after the window
end if the rest of the window after the window end was already blank.
* xdisp.c (try_window_id): Remove code that was only there
for the release of 21.1.
* xdisp.c (display_line): Don't indicate empty lines in mini-windows.
2001-10-17 Miles Bader <>
* lisp.h (DEFUN): Remove `DOC_STRINGS_IN_COMMENTS' case.
* xmenu.c, xdisp.c, term.c, dispnew.c, abbrev.c, editfns.c, buffer.c
* xfns.c, alloc.c, minibuf.c, xterm.c, xfaces.c:
Change doc-string comments to `new style' [w/`doc:' keyword].
* minibuf.c: Remove old commented-out-DEFUN that was used to fake
out make-docfile.
2001-10-16 Miles Bader <>
* fns.c: Change doc-string comments to `new style' [w/`doc:' keyword].
2001-10-16 Gerd Moellmann <>
* buffer.c (Fset_buffer_major_mode): Use initial-major-mode for
2001-10-16 Ken Raeburn <>
Avoid the assumption that car and cdr slots of cons cells are
addressable lvalues; this allows for easier experimentation with
other lisp implementations that may not permit such accesses for
various reasons. Not quite complete -- buffer.c still needs some
work, and w32/mac files need rechecking -- so compile-time
enforcement is left disabled for now.
* lisp.h (LISP_MAKE_RVALUE): New macro, or function in the case of
gcc with a union-based Lisp object rep. Redefine as no-op for now.
(XCAR, XCDR): Apply LISP_MAKE_RVALUE to the _AS_LVALUE versions.
(XSETCAR, XSETCDR): New macros.
* keyboard.h (POSN_BUFFER_SET_POSN): New macro.
* alloc.c (Fcons, pure_cons, Fgarbage_collect): Use XSETCAR and
(mark_buffer): Use XCAR_AS_LVALUE, XCDR_AS_LVALUE.
* buffer.c (record_buffer, Fbury_buffer)
(swap_out_buffer_local_variables, recenter_overlay_lists)
(Foverlay_put): Use XSETCAR and XSETCDR to set the car and cdr
fields of a cons cell respectively.
* callint.c (quotify_args, Fcall_interactively): Likewise.
* ccl.c (Fregister_code_conversion_map): Likewise.
* coding.c (detect_coding_system): Likewise.
* composite.c (get_composition_id, make_composition_value_copy):
* data.c (Fsetcar, Fsetcdr, swap_in_global_binding)
(swap_in_symval_forwarding, set_internal, Fset_default)
(Fmake_variable_buffer_local, Fmake_local_variable)
(Fmake_variable_frame_local): Likewise.
* fns.c (concat, Fcopy_alist, Fwidget_put): Likewise.
* keymap.c (Fset_keymap_parent, store_in_keymap)
(accessible_keymaps_1, where_is_internal_2, Fcopy_keymap): Likewise.
* minibuf.c (get_minibuffer): Likewise.
* search.c (Fmatch_data): Likewise.
* textprop.c (extend_property_ranges): Likewise.
* undo.c (record_insert, Fundo_boundary, truncate_undo_list): Likewise.
* w32fns.c (w32_msg_pump, Fw32_register_hot_key, w32_list_fonts):
* w32term.c (x_delete_display): Likewise.
* xfaces.c (remove_duplicates, Finternal_set_lisp_face_attribute):
* xterm.c (x_list_fonts, x_load_font, x_delete_display): Likewise.
* doc.c (store_function_docstring): Use XSETCARFASTINT.
* fileio.c (Fdo_auto_save): Use XSETCARFASTINT and XSETCDRFASTINT.
(Fread_file_name): Use XSETCAR.
* fontset.c (Fset_fontset_font): Use CHECK_NUMBER_CAR and
(accumulate_font_info, Ffontset_info): Use XSETCAR and XSETCDR.
* frame.c (Fmake_terminal_frame): Use XSETCDR.
* indent.c (Fcompute_motion): Use CHECK_NUMBER_CAR and
* keyboard.c (read_char): Alter list traversal to avoid taking the
address of cons cell slots. Use POSN_BUFFER_SET_POSN.
(parse_menu_item): Use XSETCAR and XSETCDR.
(reach_char_x_menu_prompt): Use XSETCAR.
(read_key_sequence): Use POSN_BUFFER_SET_POSN.
(Fcommand_execute): Use XSETCDR.
(openp): Change list traversal to avoid using XCAR as lvalue.
(read_list): Use XSETCDR.
* process.c (wait_reading_process_input): Change wait_for_cell
handling to avoid taking addresses of cons cell slots.
* xselect.c (x_own_selection, x_handle_selection_clear)
(x_clear_frame_selections): Use XSETCDR.
(wait_for_property_change): Use XSETCARFASTINT and XSETCDRFASTINT.
(x_handle_property_notify, x_get_foreign_selection)
(x_handle_selection_notify): Use XSETCAR.
2001-10-15 Pavel Janík <>
* buffer.c: Put doc strings in comments.
* sound.c: Include <sys/ioctl.h> also on systems without <soundcard.h>.
2001-10-15 Sam Steingold <>
* fns.c (Vafter_load_alist): Declare extern (w32 build problem).
2001-10-15 Pavel Janík <>
* process.c (process-inherit-coding-system-flag)
(get-buffer-process): Do not confuse make-docfile with doc strings
in comment.
* editfns.c (Fchar_to_string): Make doc string consistent with
arguments. Put doc strings in comments.
* abbrev.c, minibuf.c: Put doc strings in comments.
2001-10-15 Gerd Moellmann <>
* window.c (window_loop): Don't check for Fother_buffer returning nil.
* window.c (select_window_1): Unfreeze window start. Remove a
doubled test for WINDOW being live.
2001-10-15 Pavel Janík <>
* fns.c (Fmapconcat): Fix typo in a doc string.
* dispnew.c (Fsleep_for): Fix typo in a doc string.
2001-10-15 Gerd Moellmann <>
* xterm.c (x_draw_glyph_string): Restore clipping after
drawing box.
2001-10-15 Pavel Janík <>
* callint.c (prefix-arg, current-prefix-arg): Fix typo in a doc string.
2001-10-14 Stefan Monnier <>
* indent.c (skip_invisible): Use new retval of
* keymap.c (access_keymap): Unify handling of `t' and generic-char.
If a parent is reached and noinherit is set, exit immediately.
Use AREF and ASIZE macros. Call get_keyelt before checking KEYMAPP.
* s/ms-w32.h (EXEC_SUFFIXES):
* s/msdos.h (EXEC_SUFFIXES):
* process.h (EXEC_SUFFIXES): Remove.
* callproc.c (syms_of_callproc): Init Vexec_suffixes to Qnil.
(decode_suffixes): Remove.
(invisible_ellipsis_p): Remove.
* xdisp.c (DOLIST, LOOP_PROPVAL): Remove.
(invisible_p): Return 1 or 2 depending on whether an ellipsis is used.
(invisible_ellipsis_p, invisible_noellipsis_p): Remove.
(in_ellipses_for_invisible_text_p, handle_invisible_prop):
2001-10-14 Pavel Janík <>
* lisp.h (Ftop_level): Add prototype.
* xterm.c (xlwmenu_window_p, xlwmenu_redisplay): Add prototypes.
(XTread_socket): Improve style of comments to follow other
* keyboard.c (Fcommand_execute): Remove unnecessary prototype (it
is already prototyped in included lisp.h).
* frame.c (Fset_mouse_position): Improve style of comment to
follow other comments.
(Fset_mouse_pixel_position): Improve style of comment to follow
other comments.
(Fmake_frame_visible): Doc fix and typo in comment.
(Fmake_frame_invisible): Doc fix and typo in comment.
(Ficonify_frame): Fix typo in comment.
2001-10-14 Gerd Moellmann <>
* xfns.c, dispnew.c, xterm.c, xdisp.c, xfaces.c, xmenu.c
* term.c, alloc.c: Put doc strings in comments.
2001-10-13 Gerd Moellmann <>
Provide definitions for doc strings in comments.
* fns.c: Put doc strings in comments.
2001-10-13 Eli Zaretskii <>
* dired.c (file_name_completion): Ignore a candidate directory if
it matches an element in completion-ignored-extensions that ends
in a slash.
(syms_of_dired) <completion-ignored-extensions>: Mention the above
feature in the doc string.
(Ffile_name_completion): Ditto.
2001-10-12 Stefan Monnier <>
* indent.c (skip_invisible): Don't skip "ellipsisized" text.
* xfns.c (syms_of_xfns): Update calls to Fprovide.
* lisp.h (Fprovide): Update prototype.
(Ffeaturep, invisible_p): Remove.
* xdisp.c (init_iterator): Be more strict with bytepos and charpos.
(invisible_p, invisible_ellipsis_p): Use them.
(invisible_noellipsis_p): New function.
(syms_of_xdisp): Use empty_string.
* alloc.c (mark_interval_tree): Use traverse_intervals_noorder.
* lread.c (substitute_object_recurse): Use traverse_intervals_noorder.
(syms_of_lread) <Vafter_load_alist>: Update docstring.
* print.c (Fwith_output_to_temp_buffer): Align with
(print_preprocess): Use traverse_intervals_noorder.
(print_object): Update call to traverse_intervals.
(traverse_intervals_noorder, invisible_noellipsis_p): New funs.
* intervals.c (traverse_intervals_noorder): New function.
(search_for_interval, count_intervals): Use it.
(traverse_intervals): Use less stack space and drop `depth' arg.
* fns.c (Ffeaturep): Add new `subfeature' arg.
(Fprovide): Add new `subfeatures' arg. Use `after-load-alist'.
(Qsubfeatures): New var.
(syms_of_fns): Initialize it.
* keymap.c (Fkey_description): Use empty_string.
(Fdescribe_bindings_internal, describe_buffer_bindings): Remove.
(syms_of_keymap): Setup inheritance between maps.
Don't export Sdescribe_bindings_internal any more.
* minibuf.c (keys_of_minibuf): Eliminate redundant bindings.
2001-10-12 Gerd Moellmann <>
* xterm.c (notice_overwritten_cursor): Renamed from
note_overwritten_text_cursor. Rewritten to take glyph widths into
2001-10-12 Eli Zaretskii <>
* lread.c (syms_of_lread) <load-suffixes>: Fix last change:
multi-line strings without a trailing "\n\".
2001-10-12 Pavel Janík <>
* floatfns.c: float_error() is defined iff FLOAT_CATCH_SIGILL is
2001-10-11 Stefan Monnier <>
* callint.c (Fcall_interactively): Remove unused code. Use XCAR.
* xfns.c (x_create_bitmap_from_file, x_find_image_file):
* w32proc.c (sys_spawnve):
* w32fns.c (x_create_bitmap_from_file, x_find_image_file):
* w32.c (check_windows_init_file):
* sound.c (Fplay_sound):
* emacs.c (init_cmdargs):
* process.c (Fstart_process): Update calls to openp.
* callproc.c (Vexec_suffixes): New var.
(Fcall_process): Update call to openp.
(decode_suffixes): New function.
(syms_of_callproc): Init exec-suffixes.
* lread.c (Vload_suffixes, default_suffixes): New vars.
(openp): Take a lisp list of suffixes.
Check for file-name-handlers even if the file was absolute already.
(syms_of_lread): Declare load-suffixes.
(Fload): Fix up call to openp.
Don't bother checking for file-name-handler at the very beginning.
* keymap.h (Fcopy_keymap): Don't export.
* lisp.h (empty_string): Declare.
(Vload_suffixes, Vexec_suffixes): Declare.
(openp): Update prototype.
* emacs.c (empty_string): New var.
(syms_of_emacs): Initialize it.
* search.c (wordify): Use it.
* buffer.c (Fbury_buffer): Don't try to remove the buffer from the
selected window if it's not displayed there. Handle the case
when the window is dedicated.
(syms_of_buffer): Fix docstrings not to mention "buffer-local" anymore.
* undo.c (Fprimitive_undo): Use XCAR/XCDR.
* syntax.h (struct gl_state_s): Change the meaning of b_property.
Remove left_ok and right_ok.
new meaning of b_property.
* syntax.c (update_syntax_table): Simplify.
(Fforward_comment): Don't skip quoted chars when going backward.
2001-10-11 Gerd Moellmann <>
* lisp.h (FIXNUM_OVERFLOW_P): Cast I to EMACS_INT in comparisons
in case I is of some unsigned type, in which case
MOST_NEGATIVE_FIXNUM will be converted to unsigned, and the
comparison becomes bogus.
* editfns.c (Fuser_uid, Fuser_real_uid): Use make_fixnum_or_float.
(Fuser_full_name): Fix bug treating a float as a fixnum.
* data.c (Fstring_to_number): Use make_fixnum_or_float.
* lisp.h (make_fixnum_or_float): New macro.
* lisp.h (circular_list_error): Add prototype.
* data.c (Qcircular_list): New variable.
(circular_list_error): New function.
(syms_of_data): Initialize it Qcircular_list.
2001-10-10 Stefan Monnier <>
* window.c, syntax.c, macros.c, frame.c, emacs.c, cmds.c, category.c
* casefiddle.c, buffer.c: Include keymap.h.
2001-10-10 Gerd Moellmann <>
* s/osf5-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Add `-nointrinsics'
options. From Dave Love <>.
2001-10-09 Gerd Moellmann <>
* regex.c (WIDE_CHAR_SUPPORT): Do not use defined() in macro.
From Hallvard B Furuseth <>.
* editfns.c (Fcurrent_time_zone): Cast isalnum() argument to
unsigned char.
From Hallvard B Furuseth <>.
2001-10-08 Andrew Innes <>
* lisp.h [max]: Undef min and max before redefining them.
* w32gui.h: Do not undef min and max.
* w32heap.h: Do not undef min and max.
* s/ms-w32.h: Do not undef min and max.
2001-10-08 Stefan Monnier <>
* xdisp.c (handle_fontified_prop): Don't bind after-change-functions.
2001-10-08 Sam Steingold <>
* keymap.c (current-active-maps): Quote newlines (compilation error).
2001-10-08 Eli Zaretskii <>
* (lisp, shortlisp): Replace bindings.el with
bindings.elc, since otherwise doc strings in bindings.el get wrong
offsets in etc/DOC.
2001-10-08 Stefan Monnier <>
* lisp.h: Remove the entries for keymap.c (moved to keymap.h).
* keyboard.h (map_prompt): Remove.
* xterm.c, w32term.c, term.c, minibuf.c, keymap.c,
* intervals.c, fns.c, doc.c, callint.c: Include keymap.h.
* xmenu.c (keymap_panes, Fx_popup_menu): Use Fkeymap_prompt.
* w32menu.c (keymap_panes, Fx_popup_menu): Use Fkeymap_prompt.
* keyboard.c (map_prompt): Remove.
(read_char_x_menu_prompt, read_char_minibuf_menu_prompt):
Use Fkeymap_prompt.
* keymap.h: New file. Extracted from lisp.h.
* keymap.c (Fkeymap_prompt, Fcurrent_active_maps): New funs.
(accessible_keymaps_1): New function.
(Faccessible_keymaps, accessible_keymaps_char_table): Use it.
(Fwhere_is_internal): Use Fcurrent_active_maps.
(Fdescribe_buffer_bindings): Renamed from describe_buffer_bindings.
Insert in current buffer rather than standard-output.
Don't call `help-mode'. Export to elisp.
(describe_buffer_bindings): New wrapper.
(syms_of_keymap): Defsubr Skeymap_prompt, Scurrent_active_maps
and Sdescribe_buffer_bindings.
2001-10-08 Gerd Moellmann <>
* atimer.c (alarm_signal_handler) [USG && !POSIX_SIGNALS]:
Remove code setting signal handler.
* sysdep.c (child_setup_tty) [HAVE_TERMIO || HAVE_TERMIOS]:
Clear ICRNL and INLCR. From Daiki Ueno <>.
2001-10-08 Pavel Janík <>
* keyboard.c: Don't define min/max.
2001-10-08 Gerd Moellmann <>
* xterm.c, xmenu.c, xfns.c, xdisp.c, window.c:
* w32term.c, w32menu.c, w32console.c, w32bdf.c, w32.c, term.c
* sysdep.c, sound.c, search.c, scroll.c, minibuf.c, keymap.c
* intervals.c, insdel.c, indent.c, fns.c, fileio.c, editfns.c
* dispnew.c, dired.c, charset.c, xfaces.c, alloc.c, atimer.c:
Don't define min/max.
* lisp.h (min, max): New macros.
* puresize.h (BASE_PURESIZE): Increase to 725000.
2001-10-08 Pavel Janík <>
* xfaces.c (free_frame_menubar): Add prototype.
* lisp.h (init_window): Add prototype.
* editfns.c: Include ctype.h.
* xterm.c: USE_LUCID can be defined iff USE_X_TOOLKIT is defined.
(xm_scroll_callback) [USE_MOTIF]: Remove unused variable `percent'.
(x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]: Remove unused
variable `sb'.
* xfns.c (Fx_hide_tip): Fix typo in a doc string.
(Fx_file_dialog) [USE_MOTIF]: Remove unused variables
`popup_activated_flag' and `title'.
* doc.c (Fdocumentation_property): Fix typo in a doc string.
* emacs.c (main): Remove extra `;'.
* atimer.h (struct atimer): Fix typos in a comment.
* atimer.c: Fix typo.
* Fix typo.
* README: Remove obsolete part mentioning removed VMS file.
2001-10-07 Miles Bader <>
* (lisp, shortlisp): Add `button.elc'.
2001-10-07 Ken Raeburn <>
* minibuf.c (Fminibuffer_prompt_end): Don't apply make_number to a
* lisp.h (Ffield_end): Declare.
2001-10-07 Gerd Moellmann <>
* keyboard.c (parse_modifiers, apply_modifiers): Use VALMASK.
* insdel.c (make_gap): Use MOST_POSITIVE_FIXNUM.
* dired.c (Ffile_attributes): Use FIXNUM_OVERFLOW_P.
* bytecode.c (syms_of_bytecode) [BYTE_CODE_METER]: Doc fix.
* alloc.c (inhibit_garbage_collection): Simplify.
(Fmemory_use_counts): Ditto.
* data.c (most_positive_fixnum, most_negative_fixnum): New variables.
(syms_of_data): DEFVAR_INT most-positive-fixnum and
(FIXNUM_OVERFLOW_P): New macros.
2001-10-06 Miles Bader <>
* xterm.h (struct x_output): Add scroll_bar_top_shadow_pixel and
scroll_bar_bottom_shadow_pixel fields.
* xterm.c (x_create_toolkit_scroll_bar): Try to allocate colors
for the shadows, and tell the toolkit about them if we succeed.
(x_destroy_window) [USE_TOOLKIT_SCROLL_BARS]:
Free scroll-bar shadow colors.
* xfns.c (x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Free scroll-bar shadow colors when the background color changes.
(Fx_create_frame, x_create_tip_frame) [USE_TOOLKIT_SCROLL_BARS]:
Initialize scroll-bar shadow-color fields.
2001-10-05 Gerd Moellmann <>
* fileio.c (Fcopy_file): If NEWNAME is a directory copy FILE there.
2001-10-05 Miles Bader <>
* minibuf.c (Fminibuffer_prompt_end, Fminibuffer_contents)
(Fminibuffer_contents_no_properties, Fdelete_minibuffer_contents):
New functions (were in simple.el).
(Fminibuffer_complete_and_exit, Fminibuffer_complete_word)
(read_minibuf, do_completion, Fminibuffer_completion_help): Use them.
(syms_of_minibuf): Initialize them.
2001-10-05 Gerd Moellmann <>
* xfns.c (tiff_error_handler, tiff_warning_handler): New functions.
(tiff_load): Install them as error and warning handler.
2001-10-04 Andrew Innes <>
* w32fns.c (x_to_w32_color): Fix argument to alloca.
(w32_load_system_font): Don't believe what GetLanguageFontInfo
says; query codepage info directly to determine if font is double byte.
(x_to_w32_charset): Handle private format for unknown charsets.
Handle wildcards in charset spec, by ignoring them.
(w32_codepage_for_font): Fix argument to alloca. Don't remove
"*-" prefix from charset.
(x_to_w32_font): Enlarge remainder array for safety. Specifically
handle the truncated font spec form constructed by font_list_1, so
that we correctly identify the charset fields. Don't remove "*-"
prefix from charset.
(w32_list_synthesized_fonts): Fix argument to alloca.
2001-10-04 Stefan Monnier <>
* window.h (MINI_WINDOW_P): Use NILP.
* coding.h (ENCODE_SYSTEM, DECODE_SYSTEM): Define also for non-NT.
* termhooks.h (struct input_event): Use proper type for `kind'.
2001-10-04 Gerd Moellmann <>
This handles unknown keysyms better than before. For example,
after `xmodmap -e 'keysym F5 = ccaron' in a Latin-1 environment,
Emacs formerly completely ignored F5. With the change, it derives
a key symbol from the name of the X keysym, `ccaron' in this case.
Reported by Martin Buchholz.
* xterm.c (XTread_socket): Return a non_ascii_keystroke for
unknown keysyms.
* keyboard.c (make_lispy_event) [HAVE_X_WINDOWS]: If we know
that EVENT->code isn't a function key, use the keysym's name.
2001-10-04 Gerd Moellmann <>
FOREACH is a macro that should make it easier to loop over Lisp
lists with checks for cycles and proper lists.
* lisp.h (LIST_END_P, FOREACH): New macros.
2001-10-04 Gerd Moellmann <>
On some systems, XtCloseDisplay seems to cause a SIGSEGV when
called for a lost connection. Prevent dumping core in this case.
Instead print the X error, and exit. On user request.
* xterm.c (error_msg): New variable.
(x_fatal_error_signal): New function.
(x_connection_closed): Set error_msg. Install x_fatal_error_signal
as fatal_error_signal_hook around the call to XtCloseDisplay.
* emacs.c (fatal_error_signal_hook): New variable.
(fatal_error_signal): Call that function.
2001-10-04 Gerd Moellmann <>
With this, Emacs prints how much pure storage it will
approximately need in case pure storage overflows while dumping.
* alloc.c (purebeg, pure_size, pure_bytes_used_before_overflow):
New variables.
(init_alloc_once): Initialize new variables.
(PURE_POINTER_P): Use new variables.
(pure_alloc): If pure storage overflows, allocate from the heap.
(check_pure_size): New function.
(Fgarbage_collect): Don't GC if pure storage has overflowed.
* lisp.h (pure_size) [HAVE_SHM]: Declare extern size_t.
(check_pure_size): Add prototype.
* emacs.c (Fdump_emacs_data, Fdump_emacs): Call check_pure_size.
2001-10-04 Gerd Moellmann <>
This adds a post-gc-hook that's run with GC inhibited.
Requested by François Pinard. XEmacs has it. Added to NEWS.
* alloc.c (Vpost_gc_hook, Qpost_gc_hook): New variables.
(syms_of_alloc): DEFVAR_LISP post-gc-hook, initialize Qpost_gc_hook.
(Fgarbage_collect): Run post-gc-hook.
2001-10-04 Gerd Moellmann <>
This adds `defvaralias' and `indirect-variable'. Changes not
directly related to this feature are there to gain the same
performance again as before variable aliases.
You must use the SYMBOL_VALUE and SET_SYMBOL_VALUE macros in C
code to get and set symbol values, to take defvaralias into account.
(Note: the new `constant' bit-flag in symbols would make it
possible to define arbitrary read-only variables, e.g. with
Documentation is in lispref/variables.texi. Added to NEWS.
* lisp.h (enum symbol_interned): New enumeration.
(struct Lisp_Symbol): Remove member `obarray', add
`indirect_variable', `constant', and `interned'.
(indirect_variable): Add prototype.
* print.c (print_preprocess, print_object): Test internedness of
symbols differently.
* lread.c (Fintern, Funintern): Set symbol's interned and constant
(init_obarray): Likewise for t and nil.
(Fdefvaralias): New function.
(specbind): Simplify the test if symbol is a constant.
(syms_of_eval): Defsubr Fdefvaralias.
(Qcyclic_variable_indirection): New variable.
(Fkeywordp): Check for internedness differently.
(Fmakunbound): Simplify the test if symbol is a constant.
(indirect_variable, Findirect_variable): New functions.
(swap_in_symval_forwarding): If SYMBOL is an alias, use the
aliased symbol.
(let_shadows_buffer_binding_p): Check for variable aliases.
(set_internal): Simplify the test if SYMBOL is a constant.
If SYMBOL has a buffer-local value and is an alias, use the aliased
symbol instead.
(syms_of_data): Initialize Qcyclic_variable_indirection and defsubr
* bytecode.c (Fbyte_code) <varref>: Use SYMBOL_VALUE.
(Fbyte_code) <varset>: Simplify the test if symbol's value can be
set directly.
* alloc.c (Fmake_symbol): Adapt to changes of struct Lisp_Symbol.
* abbrev.c, buffer.c, coding.c, fns.c, frame.c, keyboard.c:
* minibuf.c, sunfns.c, w16select.c: Use SYMBOL_VALUE/
SET_SYMBOL_VALUE macros instead of accessing symbol values directly.
2001-10-04 Gerd Moellmann <>
* Branch for 21.1.
2001-10-03 Miles Bader <>
* callproc.c (syms_of_callproc): Explicitly state in the
documentation for `process-environment' that earlier entries take
precedence over later ones.
2001-10-02 Miles Bader <>
* textprop.c (Fnext_char_property_change)
(Fprevious_char_property_change): Remove reference to non-existent
argument OBJECT from doc-string.
2001-10-01 Gerd Moellmann <>
* xdisp.c (display_line): Set row's ends_in_newline_from_string_p.
(try_window_id): Skip back over lines ending in a newline from a
* dispextern.h (struct glyph_row) <ends_in_newline_from_string_p>:
New bit flag
2001-10-01 Richard M. Stallman <>
* search.c (Freplace_match): Doc fix.
2001-09-28 Andrew Innes <>
* w32menu.c (set_frame_menubar): Take into account that
f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
2001-09-30 Eli Zaretskii <>
* frame.c (syms_of_frame) <default-minibuffer-frame>: Doc fix.
2001-09-28 Pavel Janík <>
* s/gnu-linux.h: Fix a typo in comment.
2001-09-28 Andreas Schwab <>
* s/gnu-linux.h (LD_SWITCH_SYSTEM_TEMACS): Link temacs with -z
nocombreloc, in case -z combreloc is the default.
2001-09-28 Gerd Moellmann <>
* m/macppc.h [DATA_SEG_BITS]: Put in #if 0 until we know what's
really going on here.
2001-09-27 Stefan Monnier <>
* search.c (trivial_regexp_p): Catch \{N,M\} as well.
2001-09-27 Eli Zaretskii <>
* (shortlisp): Resync with loadup.el: add backquote,
utf-8, menu-bar, and latin-N.
(SOME_MACHINE_LISP): Remove menu-bar, since it's loaded
unconditionally now.
(lisp): Add latin-N, since they are preloaded.
2001-09-27 Gerd Moellmann <>
* xterm.c (x_draw_relief_rect): Draw bottom relief 1 pixel more
to the left. Some cleanup.
* xdisp.c (display_mode_element): One more case where a string's
multibyteness should be used for display.
2001-09-26 Gerd Moellmann <>
* fileio.c (Finsert_file_contents): If REPLACE is non-nil, stop
reading at EOF.
* xdisp.c (with_echo_area_buffer): Use echo_kboard instead
of the only temporarily set echoing flag for deciding when
the cancel echoing.
* keyboard.c (echo_kboard): Make externally visible.
* lisp.h (echo_kboard): Declare extern.
* xdisp.c (make_cursor_line_fully_visible): Return 0 and set
fonts_changed_p if we need larger matrices due to vscrolling.
(try_scrolling, try_cursor_movement, redisplay_window): Give up on
this round of redisplay if make_cursor_line_fully_visible fails.
(CURSOR_MOVEMENT_*, SCROLLING_*): New enumerators.
(try_cursor_movement, try_scrolling): Use them instead of integers.
* dispextern.h (required_matrix_width, required_matrix_height):
Add prototypes.
* dispnew.c (required_matrix_width, required_matrix_height):
New functions.
(allocate_matrices_for_frame_redisplay: Use them.
Remove parameters CH_DIM.
* xdisp.c (display_mode_lines): Temporarily set selected_frame
and selected_window to the frame of the window whose mode-lines
are displayed, and to the window itself.
(redisplay_window, redisplay_mode_lines): Don't set selected_frame
2001-09-25 Gerd Moellmann <>
* xfns.c (x_kill_gs_process): Recognize if someone has cleared
the image cache under us.
* xdisp.c (display_mode_element): If the mode element is a symbol
with a string value, use that string's multibyteness for displaying.
* keyboard.c (read_char): Don't clear a message for a switch-frame
event. From Stefan Monnier <>.
* xterm.c (fast_find_position) [0]: Add a presumably more correct
version for after 21.1.
* xdisp.c (row_containing_pos): Make externally visible.
* dispextern.h (row_containing_pos): Add prototype.
* process.c (send_process): Disable composition if from_byte < 0.
From Kenichi Handa <>.
2001-09-24 Gerd Moellmann <>
* xterm.c (refreshicon): Function removed.
* (xterm.o): Remove references to sink.h and sinkmask.h.
* sink11.h, sink11mask.h, sink.h, sinkmask.h: Removed.
* xterm.c (toplevel): Remove includes in #if 0.
* process.c (sigchld_handler) [LINUX]: Don't return from
the signal handler at the end of the loop.
2001-09-21 Gerd Moellmann <>
* sysdep.c (wait_for_termination) [POSIX_SIGNALS]:
Terminate only if kill returns -1, and errno is ESRCH.
2001-09-21 Markus Rost <>
* (shortlisp): Add ../lisp/env.elc.
2001-09-20 Gerd Moellmann <>
* process.c (sigchld_handler): Use GC_CONSP, GC_INTEGERP, GC_EQ
since this function can be called during GC.
* callproc.c (Fcall_process): Handle errors from pipe(2).
(child_setup): Delete code in #ifdef vipc.
2001-09-19 Gerd Moellmann <>
* xdisp.c (decode_mode_spec): Add parameter MULTIBYTE.
(display_mode_element): Display the string from decode_mode_spec
depending on its multibyteness.
* s/netbsd.h (LD_SWITCH_SYSTEM, C_SWITCH_SYSTEM): Add /usr/pkg.
* m/macppc.h (DATA_SEG_BITS): Also define for GCC 3.
2001-09-18 Gerd Moellmann <>
* keyboard.c (Frecursive_edit): Pass (BUFFER . SINGLE-KBOARD) to
(recursive_edit_unwind): Set kboard state according to
* buffer.c (modify_overlay): Don't do nothing if START == END;
This can still be a modification, for example when an overlay has
a before-string or after-string.
(Fdelete_overlay): Prevent redisplay optimizations when deleting
an overlay with before-string or after-string.
* s/netbsd.h (C_SWITCH_SYSTEM): Add.
(LD_SWITCH_SYSTEM): Include /usr/local/lib.
* xdisp.c (try_window_id) [!GLYPH_DEBUG]: Give up if
first_unchanged_at_end_row is in front of
last_unchanged_at_beg_row. This code should be removed after the
release of 21.1.
2001-09-17 Gerd Moellmann <>
* m/macppc.h (DATA_SEG_BITS) [__linux__]: Define for GCC
versions >= 2.95.
2001-09-14 Eli Zaretskii <>
* dired.c (Ffile_attributes): Doc fix.
2001-09-14 Gerd Moellmann <>
* fileio.c (Ffile_symlink_p): Fix last change.
* filelock.c (current_lock_owner): Fix last change.
2001-09-13 Gerd Moellmann <>
* filelock.c (current_lock_owner): If readlink returns ERANGE,
take that to mean that the buffer is too small.
* fileio.c (Ffile_symlink_p): If readlink returns ERANGE, take
that to mean that the buffer is too small.
* xdisp.c (reseat_1): Set IT's multibyte_p flag according to the
current buffer's multibyteness when discarding the iterator's
* xfns.c (Fx_window_property): Handle case that property gets
deleted between the two calls to XGetWindowProperty.
2001-09-11 Gerd Moellmann <>
* minibuf.c (read_minibuf_unwind): Bind inhibit-modification-hooks.
* minibuf.c (read_minibuf): Bind inhibit-modification-hooks to t,
in addition to read-only.
* xdisp.c (with_echo_area_buffer): Bind inhibit-modification-hooks
to t in addition to read-only.
* lisp.h (Qinhibit_modification_hooks): Declare.
* insdel.c (Qinhibit_modification_hooks): New variable.
(syms_of_insdel): Initialize and staticpro it.
* textprop.c (verify_interval_modification): Don't run
modification-hooks if inhibit_modification_hooks.
* dispnew.c (set_window_cursor_after_update): Fix code
finding glyph row containing cursor when cursor_in_echo_area
is >= 0.
* xdisp.c (init_from_display_pos): Put some code in #if 0.
(add_to_log): Use bcopy instead of strcpy.
(init_from_display_pos): Use an explicit loop over bytes in
overlay strings instead of calling index.
2001-09-10 Gerd Moellmann <>
* alloc.c (allocate_buffer): Call VALIDATE_LISP_STORAGE.
* dispnew.c (direct_output_for_insert): Don't change IT's
stop_charpos to something in front of its current position.
* xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: Take args like
2001-09-10 Richard M. Stallman <>
* frame.c (Fmouse_position): Doc fix.
2001-09-07 Gerd Moellmann <>
* xdisp.c (init_from_display_pos): Don't compare the result
of calling index with NULL.
2001-09-06 Gerd Moellmann <>
* xfns.c (x_set_background_color): Don't change the colors
of the X window of scroll bar widgets.
2001-09-05 Andrew Innes <>
* w32fns.c (w32_createwindow): Undo last change.
2001-09-05 Gerd Moellmann <>
* macros.c (store_kbd_macro_char): Fix computation of kbd_macro_end.
* xdisp.c (string_buffer_position): Use *single_char_property*
functions instead of the *single_property* functions.
2001-09-04 Andrew Innes <>
* w32term.c (w32_read_socket): Add more information to debugging
* w32fns.c (w32_createwindow): Remove the WS_CLIPCHILDREN style
from Emacs frames, so that calls to GetClipBox in w32term.c
correctly report when part of a frame is visible (including
scrollbars, etc). This prevents repeated redrawing of frames when
only a scrollbar is visible.
(w32_wnd_proc): Add more frame information to debugging output.
2001-09-03 Stefan Monnier <>
* xdisp.c (handle_single_display_prop): Fix for int/Lisp_Object mixup.
2001-09-03 Gerd Moellmann <>
* xterm.c (note_mouse_highlight) <help-echo>: When looking for
help-echo for a string which doesn't have help-echo itself, use
get-char-property to obtain the help-echo from the string's buffer.
(note_mouse_highlight) <mouse-face>: When on a string that doesn't
have mouse-face, look ``under'' the string for mouse-face from an
(fast_find_position): Add parameter STOP. In the final row, stop
before glyphs having STOP as object. Don't consider glyphs that
are not from a buffer.
* buffer.c (syms_of_buffer) <default-directory>: Doc fix.
2001-09-01 Eli Zaretskii <>
* fns.c (Fmd5): Doc fix.
2001-08-31 Gerd Moellmann <>
* composite.c (update_compositions): Do nothing if
inhibit-modification-hooks is set.
2001-08-30 Gerd Moellmann <>
* emacs.c (shut_down_emacs): Don't call check_glyph_memory
and check_message_stack if terminating abnormally. We want
glyph matrices etc. in a core dump.
* xdisp.c (Qbuffer_position, Qposition, Qobject): New variables.
(syms_of_xdisp): Initialize them.
(handle_single_display_prop): Don't change point, bind `object',
`position', and `buffer-position' instead to the object having the
`display' property, position in the object and position in the buffer.
* fileio.c (Finsert_file_contents): Don't change the multibyteness
of the buffer if REPLACE is non-nil.
2001-08-29 Gerd Moellmann <>
* fileio.c (Finsert_file_contents): Undo change of 2001-08-27.
2001-08-28 Eli Zaretskii <>
* w32term.c (x_set_glyph_string_background_width)
(show_mouse_face): Track the last changes in xterm.c.
2001-08-28 Gerd Moellmann <>
* xterm.c (x_set_glyph_string_background_width): Set the glyph
string's background width so that multi-line mouse-face is drawn
to the right edge of the window.
(show_mouse_face): Set the row's mouse_face_p flag after drawing
* dispnew.c (direct_output_for_insert): Set updated_area
before inserting/writing glyphs.
* xdisp.c (display_mode_element): Use string_byte_to_char to
determine character positions in strings, use chars_in_text
instead of strwidth.
(dump_glyph_row) [GLYPH_DEBUG]: Take a glyph row instead of
a matrix as parameter; this is easier to use from GDB.
2001-08-28 Miles Bader <>
* textprop.c (Fprevious_single_char_property_change)
(Fnext_single_char_property_change): Doc fixes.
2001-08-27 Gerd Moellmann <>
* fileio.c (Finsert_file_contents): Allocate, restore, and
free composition data in the case of REPLACE not being nil.
* xdisp.c (init_from_display_pos, init_to_row_end): Return 0 if
there exist overlay strings with newlines at POS.
(text_outside_line_unchanged_p): Return 0 if changes start at
START and overlays exist at START. Likewise for END.
(try_window_id): Give up if init_to_row_end returns 0.
* fileio.c (Finsert_file_contents): Call Fset_buffer_multibyte
2001-08-24 Gerd Moellmann <>
* keymap.c (access_keymap): Return the cdr of the binding of
a generic character instead of its definition (KEY . BINDING).
* fileio.c (Finsert_file_contents): Set coding's dest_multibyte
to 0 also in the REPLACE case.
2001-08-24 Andrew Choi <>
* fileio.c (Ffile_readable_p) [macintosh]: Call access instead of
open to determine whether file is readable (as for DOS_NT).
2001-08-23 Gerd Moellmann <>
* fileio.c (Finsert_file_contents): If VISIT is non-nil, and
coding.type is coding_type_no_conversion or coding_type_raw_text,
use Fset_buffer_multibyte to make the buffer unibyte if REPLACE is
non-nil instead of just setting enable_multibyte_characters in the
buffer to nil.
2001-08-22 Gerd Moellmann <>
* dispextern.h (struct face_cache): Add member
* xfaces.c (menu_face_changed_default): New variable.
(menu_face_changed_count): Variable removed.
(Finternal_set_lisp_face_attribute): Doc fix. If FRAME is t, set
the menu_face_changed_default flag, otherwise set the FRAME's
menu_face_changed_p flag if the `menu' face has been changed.
Prevent calling set_font_frame_param if FRAME is t.
(make_face_cache): Initialize cache's menu_face_changed_p
from menu_face_changed_default.
(realize_basic_faces): Look into the frame's face cache to
determine if the menu appearance needs updating.
* keymap.c (access_keymap): Fix last change to not consider
IDX when it has modifiers.
2001-08-21 Gerd Moellmann <>
* keymap.c (access_keymap): If a binding of the form (GENERIC-CHAR
. BINDING) exists, where GENERIC-CHAR is the generic character of
the charset of IDX, return BINDING unless there exists a binding
for IDX itself.
2001-08-16 Gerd Moellmann <>
* xrdb.c (SYSV): Don't define on Solaris 2.
From Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>.
* xdisp.c (move_it_by_lines) <DVPOS < 0>: Start at the beginning
of the screen line, not text line, containing IT's current position.
2001-08-15 Gerd Moellmann <>
* window.c (window_scroll_pixel_based): Don't recenter if
PT is partially visible in the window.
* xterm.c (expose_window_tree, expose_window, expose_line):
Return 1 when overwriting mouse-face.
(expose_frame): If mouse-face was overwritten, redo it.
* xfaces.c (x_update_menu_appearance): Don't call
set_frame_menubar, let the next redisplay do it.
2001-08-14 Andrew Innes <>
* w32term.c (x_draw_glyph_string): Draw relief (if any) before
drawing glyph string.
2001-08-14 Eli Zaretskii <>
* s/hiuxwe2.h: New file, for the HITACHI SR2001/SR2201 series
running HI-UX/MPP.
2001-08-14 Gerd Moellmann <>
* xfaces.c (x_update_menu_appearance): Save and restore value of
2001-08-13 Gerd Moellmann <>
* xdisp.c (move_it_by_lines) <DVPOS < 0>: If not already on
a line start, move back to the line start.
* xdisp.c (resize_echo_area_exactly): Don't resize the mini-window
exactly when a mini-buffer is active.
* keyboard.c (make_lispy_event): Interpret double_click_fuzz
in units of 1/8 character on non window-system frames.
(syms_of_keyboard) <double-click-fuzz>: Doc fix.
2001-08-10 Eli Zaretskii <>
* keyboard.c (syms_of_keyboard) <double-click-fuzz>: Fix a typo in
a doc string.
2001-08-09 Gerd Moellmann <>
* keyboard.c (Vpre_help_message): New variable.
(syms_of_keyboard): Initialize and staticpro it.
(show_help_echo): Record current message before displaying a
help-echo, and restore that message when clearing the help.
* xfns.c (x_create_im): Remove prototype.
* xdisp.c (mark_window_display_accurate_1): Remove an assertion.
* dispnew.c (adjust_glyph_matrix): Undo last change.
2001-08-08 Gerd Moellmann <>
* dispnew.c (adjust_glyph_matrix): In the optimization for
windows whose height has changed, disable partially visible lines.
2001-08-07 Gerd Moellmann <>
* window.c (Frecenter): If ARG < 0, and on a window system
frame, count in some empty lines when we can't move -ARG lines down.
* xdisp.c (start_display): Don't try to determine the continuation
lines width if lines are truncated. It's superfluous and leads to
incorrect results if POS is not visible in the window after
reseating the iterator at the previous line start.
2001-08-06 Gerd Moellmann <>
* xterm.c (x_dump_glyph_string): Put in #if GLYPH_DEBUG.
2001-08-06 Pavel Janík <>
* alloc.c (init_stack): Remove declaration.
2001-08-03 Gerd Moellmann <>
* keyboard.c (read_key_sequence): Check that key is an integer
before comparing it with quit_char.
(add_command_key): Use larger_vector.
(read_char_x_menu_prompt): Instead of converting symbol and
integer events into conses (EVENT . nil), use (EVENT . disabled)
which cannot be confused with valid events.
(read_char): When reading from Vunread_command_events, check for
events of the form (EVENT . disabled) instead of
(EVENT . nil).
* xdisp.c (resize_mini_window): If Vmax_mini_window_height is
a float, determine the max height from the frame's height.
2001-08-02 Gerd Moellmann <>
* xdisp.c (redisplay_internal): Take message_cleared_p into
account only if minibuf_level == 0.
2001-08-01 Gerd Moellmann <>
* xdisp.c (redisplay_internal): Add a check for the last
displayed message.
* xdisp.c (message_cleared_p): New variable.
(clear_message): Set message_cleared_p when clearing the current
(redisplay_internal): Look at message_cleared_p to capture
the case that the echo area should be cleared.
* keyboard.c (command_loop_1): Fix spelling of
* dispextern.h (resize_echo_area_exactly): Fix typo in function name.
* xdisp.c (resize_echo_area_exactly): Fix typo in function name.
* xfns.c (x_set_tool_bar_lines): Clear the tool bar window's
current matrix when the window gets smaller.
2001-08-01 Eli Zaretskii <>
* print.c (strout): Cast the character passed to insert_char to
unsigned char, to avoid sign extension when it is promoted to int.
2001-07-31 Gerd Moellmann <>
* fileio.c (Finsert_file_contents): Don't treat a return value
of 0 from emacs_read as an IO error.
2001-07-30 Gerd Moellmann <>
* keyboard.c (abs): New macro.
(double_click_fuzz): New variable.
(make_lispy_event): Use it to determine what makes a double-click.
(syms_of_keyboard): DEFVAR_INT it.
* xmenu.c (set_frame_menubar): Take into account that
f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
2001-07-27 Gerd Moellmann <>
* xterm.c (x_get_glyph_string_clip_rect): Minor cleanup.
* dispnew.c (shift_glyph_matrix, blank_row): Fix computation
of row's visible height.
* xdisp.c (init_from_display_pos): If POS is in an overlay string,
deal with the first overlay string having an image `display' property.
(try_window_reusing_current_matrix, compute_line_metrics):
Fix computation of row's visible height for the case that part of the
row is invisible above and part of the row is at the same time
invisible below the window.
2001-07-26 Gerd Moellmann <>
* xfns.c (x-show-tip): Doc fix.
* xfns.c (Vx_max_tooltip_size): New variable.
(syms_of_xfns): DEFVAR_LISP it.
(Fx_show_tip): Set frame's window_width to the width of the
window. Use a maximum tooltip size specified by
Vx_max_tooltip_size, if that has valid contents.
(x_create_tip_frame): Set tooltip buffer's truncate-lines to nil.
2001-07-26 Andrew Innes <>
* w32term.c (x_display_list): New variable.
(w32_term_init): Set it.
* w32term.h (x_display_list): New extern.
2001-07-26 Gerd Moellmann <>
* xdisp.c (resize_mini_window): Give up when inhibit-redisplay
is non-nil, instead of when redisplaying_p is non-zero.
See comment there.
(mark_window_display_accurate_1): Add an assertion.
2001-07-25 Gerd Moellmann <>
* dispextern.h (struct it): Increase size of ctl_chars to 16.
* xfns.c (Fx_file_dialog): Block/unblock input while processing
events so that we get a chance of processing expose events.
* xdisp.c (resize_mini_window): Don't resize while redisplaying.
2001-07-24 Gerd Moellmann <>
* xfns.c (valid_image_p): Protect better against invalid image
specifications. Previous code could signal an error.
2001-07-23 Gerd Moellmann <>
* indent.c (current_column): Fix column computation in the
presence of display table entries.
(current_column_1, Fmove_to_column, compute_motion): Likewise.
* dispnew.c (adjust_glyph_matrix): In the optimization for
windows whose height has changed, use the new window height
to compute which rows to invalidate.
* editfns.c (toplevel) [STDC_HEADERS]: Include float.h.
(MAX_10_EXP): New macro.
(Fformat): Use it.
* coding.c (code_convert_region): Handle the multibyte case if
2001-07-20 Gerd Moellmann <>
* dispextern.h (struct face): Change type of `stipple' to
int; it's an ID.
* xterm.c (x_fill_stretch_glyph_string): Remove an assertion.
2001-07-19 Gerd Moellmann <>
* dispnew.c (update_window): Don't set the cursor at the end
of the update if display update has been paused.
* composite.h (syms_of_composite): Renamed from syms_of_composition.
2001-07-18 Ken Raeburn <>
* fns.c (Fset_char_table_default): Check that a charset is defined
before checking its dimension.
2001-07-17 Ken Raeburn <>
* coding.c (setup_coding_system): Don't do any designation based
on reg_bits if charset is not yet defined.
* lisp.h (XVECTOR): Verify correct object type before returning a
pointer, using eassert.
2001-07-17 Gerd Moellmann <>
Increase to 4096 because of paste problems reported on GNU/Linux.
2001-07-17 Jan Nieuwenhuizen <>
* emacs.c (USAGE1): Add +LINE:COLUMN option help.
2001-07-16 Gerd Moellmann <>
* fileio.c (unwind_read): Function removed.
(read_non_regular, read_non_regular_quit): New functions.
(Finsert_file_contents): When reading from non-regular files,
arrange to catch a `quit' and terminate the loop. Rearrange
code so that a `quit' when reading from a regular file doesn't
insert text in the buffer.
* xfaces.c (clear_face_cache): Clear fonts on a display basis.
Clear faces afterwards.
(clear_font_table): Take a x_display_info parameter. Don't free
fonts being the default font of any frame on the given display.
2001-07-13 Gerd Moellmann <>
* xdisp.c (get_next_display_element): Use CHAR_STRING_NO_SIGNAL
instead of CHAR_STRING which can signal an error.
* charset.c (char_to_string_1): Extracted from char_to_string.
Return -1 instead of signaling an error.
(char_to_string): Use it.
* charset.h (CHAR_STRING_NO_SIGNAL): New macro.
2001-07-12 Stefan Monnier <>
* coding.c (Ffind_coding_systems_region_internal): If safe_codings
is t, don't try to append anything to it.
2001-07-12 Eli Zaretskii <>
* dired.c (file_name_completion): Pass dp->d_name to
Fstring_match, not elt, which is always nil here.
2001-07-12 Gerd Moellmann <>
* xselect.c (x_decline_selection_request): Handle errors
caused by receivers that have vanished.
* xterm.c (XTread_socket) <PropertyNotify>: Put the code
ignoring events on foreign windows in #if 0. Always dispatch
the event after checking it with x_handle_property_notify.
* xselect.c (TRACE0, TRACE1, TRACE2): New macros, defined
depending on TRACE_SELECTION. Replace fprintfs in #if 0 with
TRACE macros to facilitate debugging. Add additional trace statements.
(toplevel): Add prototypes for file-local functions.
(x_atom_to_symbol): Remove DPYINFO parameter.
2001-07-11 Stefan Monnier <>
* w32menu.c (menubar_selection_callback, w32_menu_show):
Initialize `entry' to nil.
(w32_dialog_show): Remove unused `save_wv' variable.
(name_is_separator): Recognize "--:foo" and "--foo-bar".
2001-07-11 Gerd Moellmann <>
* xdisp.c (try_cursor_movement): Prevent a warning from GCC 3.0.
* fileio.c (unwind_read): Print a message when discarding inserted
text or switching the buffer to unibyte. Change parameter.
(Finsert_file_contents): Don't pass VISIT to unwind_read.
* fileio.c (unwind_read): New function.
(Finsert_file_contents): Record it as unwind-function for
the case that reading is interrupted by C-g.
2001-07-10 Gerd Moellmann <>
* dispnew.c (update_window): Don't skip the header-line
update when scrolling_window returns 0.
* xfaces.c (unload_color): Do nothing if PIXEL is -1.
* xfns.c (Fx_create_frame): Initialize frame colors to -1,
for the case that x_decode_color signals an error.
* xdisp.c (add_to_log): Do nothing if called asynchronously.
2001-07-09 Gerd Moellmann <>
* sound.c (toplevel): Include <signal.h> and "syssignal.h".
(vox_configure, vox_close) [SIGIO]: Block/unblock SIGIO
around ioctls.
2001-07-06 Eli Zaretskii <>
* dosfns.c (syms_of_dosfns): Add \n\ at the end of a line in the
doc string line for dos-timezone-offset.
* msdos.c (do_visible_bell): Add \n\ at the end of each line of
inline assembly, to avoid compiler warnings.
(syms_of_msdos): Add \n\ at the end of a line in the doc string
line for dos-unsupported-char-glyph.
* buffer.c (syms_of_buffer) [if 0]: Avoid a warning from GCC 3.0.
2001-07-05 Gerd Moellmann <>
* sound.c: Include Emacs' header files with #include "...".
* eval.c (specbind): Additionally record the buffer that was
current when a buffer-local or frame-local variable was bound.
2001-07-04 Gerd Moellmann <>
* xterm.c (x_produce_glyphs): Don't convert multibyte characters
to unibyte characters in unibyte buffers.
2001-07-03 Gerd Moellmann <>
* eval.c (specbind): If SYMBOL has a frame-local binding, record
the frame on the binding stack. Change format of entries for
local bindings on the binding stack to '(SYMBOL . WHERE)'.
(unbind_to): Handle unbinding a frame-local variable.
* xdisp.c (compute_line_metrics): On ttys, subtract continuation
glyphs and truncation glyphs at the end of a row from its pixel width.
(dump_glyph_row): Print row's continuation_lines_width.
(try_window_id): Take the shortcut if ZV is visible in the
window, but there are actually no changes at ZV.
2001-07-02 Gerd Moellmann <>
* xterm.h (x_free_dpy_colors): Add prototype.
* xterm.c (cvt_pixel_dtor): Call x_free_dpy_colors with the
right number of arguments.
* (tags): Depend on $(lwlibdir)/TAGS.
($(lwlibdir)TAGS): New target.
(TAGS): Fix dependency list.
* xterm.c (x_list_fonts): Make sure XFreeFont is called
with input blocked.
2001-06-30 Gerd Moellmann <>
* emacs.c (main): Remove extern declaration for sys_nerr, which
isn't used and causes a compilation error with GCC 3.0 on
FreeBSD 4.3.
2001-06-27 Gerd Moellmann <>
* widget.c (EmacsFrameSetCharSize): Turn off atimers and block
SIGIO around the code where Xt might wait for a ConfigureNotifyEvent.
(toplevel): Include <signal.h> and syssignal.h.
* sound.c (vox_configure, vox_close): Turn off atimers
around ioctls.
2001-06-26 Gerd Moellmann <>
* keyboard.c (read_char) <non_reread>: Record the previous idle
start time before calling timer_stop_idle.
(read_char) <reread_first>: After processing a help-echo event,
restore the previous idle start time.
* xdisp.c (handle_invisible_prop): Deal with overlay strings at
the start of invisible text.
(setup_for_ellipsis): New function.
(next_overlay_string): After all overlay strings have been
processed, display an ellipsis if necessary.
(load_overlay_strings, get_overlay_strings): Add parameter CHARPOS.
(push_it): Initialize display_ellipsis_p on the iterator's stack.
* dispextern.h (struct iterator_stack_entry): Add member
2001-06-25 Gerd Moellmann <>
* widget.c (EmacsFrameSetCharSize): Set XtNwaitForWm depending
on the value of the wait-for-wm frame parameter.
* xterm.h (struct x_output): Add member wait_for_wm.
* xfns.c (Qwait_for_wm): New variable.
(x_frame_parms): Add entry for `wait-for-wm".
(x_set_wait_for_wm): New function.
(Fx_create_frame): Call x_default_parameter for wait-for-wm.
(syms_of_xfns): Initialize and staticpro Qwait_for_wm.
* xdisp.c (try_window_id) <all changes below window end>: Don't
take this shortcut if ZV is visible in the window.
(try_window_id): When checking for window start being in changed
text, don't check that the buffer's size has changed.
2001-06-23 Richard M. Stallman <>
* minibuf.c (Fcompleting_read): Doc fix.
2001-06-19 Gerd Moellmann <>
* composite.c (Ffind_composition_internal): Accept ZV
and a string's end position as POS.
2001-06-18 Gerd Moellmann <>
* composite.c (Ffind_composition_internal): Check POS
for validity.
2001-06-15 Eli Zaretskii <>
* editfns.c (Fmessage_box): If the frame is not under a window
system, output the message in the echo area.
2001-06-14 Richard M. Stallman <>
* xdisp.c (try_window_id): When EOB is visible, don't treat
insertion at EOB as if it were "off the bottom of the screen."
2001-06-11 Andrew Innes <>
* w32proc.c (create_child): Add new parameter is_gui_app.
(w32_executable_type): Add new parameter is_gui_app.
(sys_spawnve): Use it.
(sys_kill): Fake ^C for SIGINT, and ^Break (if possible) for
SIGQUIT. This matches better how the signals are interpreted by
MSVC compiled programs.
(syms_of_ntproc): Update docstring.
2001-06-02 Stefan Monnier <>
* xterm.c (clear_mouse_face): Reset dpyinfo->mouse_face_overlay as
well otherwise note_mouse_highlight might optimize away highlighting
if we pass over that same overlay again.
2001-06-02 Eli Zaretskii <>
* lread.c (Fload): Document that the argument is run via
2001-05-31 Gerd Moellmann <>
* (bootstrap-doc): New target.
(bootstrap-emacs): Depend on it.
* fileio.c (Fdo_auto_save): Don't try to create the directory of
auto-save-list-file-name when shutting down Emacs, because
creating the directory might signal an error, and leaves
Emacs in a strange state.
* term.c (tty_cursor_hidden): New variable.
(update_begin): Don't call tty_hide_cursor. Clean up.
(update_end, set_terminal_window, set_scroll_region): Clean up.
(ring_bell, reset_terminal_modes): Clean up.
(tty_hide_cursor, tty_show_cursor): Hide/show cursor depending
on tty_cursor_hidden.
(write_glyphs): Call tty_hide_cursor.
2001-05-30 Stefan Monnier <>
* buffer.c (copy_overlays): Make ENABLE_CHECKING happy.
2001-05-30 Gerd Moellmann <>
* xfns.c (enum image_value_type): New enumerator
(parse_image_spec): Handle it.
(xbm_format, pbm_format): Use it for :foreground and :background.
(xbm_load, pbm_load): Check for nil color names.
* xterm.c (note_mouse_highlight): If an overlapping overlay
exists, but we find that we highlight the same overlay as before,
don't do the highlighting again.
2001-05-29 Gerd Moellmann <>
* xmenu.c (single_submenu, xmenu_show) [!HAVE_MULTILINGUAL_MENU]:
Protect unibyte strings created by replacing their multibyte
equivalents in menu_items.
* keymap.c (Fsingle_key_description): NUL-terminate the string
buffer before calling build_string.
* callproc.c (Fcall_process): Deal with decode_coding returning
2001-05-28 Gerd Moellmann <>
* xmenu.c (xmenu_show) [!HAVE_MULTILINGUAL_MENU]: Don't overwrite
an item's name with its key description in case the description
is a multibyte string.
* keymap.c (Fsingle_key_description): Create a multibyte string
only if necessary.
* macros.c (Fstart_kbd_macro): Doc fix.
* xterm.c (cursor_in_mouse_face_p): New function.
(x_draw_stretch_glyph_string): Use it to choose a different GC
when drawing a cursor within highlighted text.
* editfns.c (char_property_eq): Put in #if 0.
* indent.c (string_display_width): Put in #if 0.
* lread.c (Fload): Remove unused label.
* termcap.c (speeds): Put in #if 0.
2001-05-18 Gerd Moellmann <>
* eval.c (call_debugger): Don't bind inhibit-eval-during-redisplay.
* xfaces.c (xlfd_point_size): Don't divide pixel size from
transformation matrix by 10.
2001-05-16 Gerd Moellmann <>
* xfns.c (x_set_foreground_color): Change frame's cursor_pixel
only if it's equal to the former foreground pixel color.
(x_set_foreground_color, x_set_background_color)
(x_set_mouse_color, x_set_cursor_color): Cleaned up.
2001-05-16 Dave Love <>
* insdel.c (signal_before_change, signal_after_change): Consider a
local change hook which changes the buffer.
* process.c (read_process_output): Don't call signal_after_change
and update_compositions after insert_from_string_before_markers.
2001-05-16 Gerd Moellmann <>
* xfaces.c (split_font_name): Use the right field when
checking for `[...]' syntax.
* buffer.c (copy_overlays): New function.
(clone_per_buffer_values): Use it.
* buffer.h (OVERLAY_PLIST): New macro.
* keymap.c (Fsingle_key_description): Replace a build_string with
a make_multibyte_string. From Kenichi Handa <>.
* fontset.c (Ffontset_info): Check that face is non-null
before accessing its fields.
2001-05-15 Gerd Moellmann <>
* keyboard.c (read_key_sequence): Prevent generating a fake
prefix key twice.
* xfaces.c (split_font_name): Handle `[...]' for the right
font name fields.
* ccl.c (ccl_driver): Don't copy remaining bytes in case
2001-05-14 Stefan Monnier <>
* eval.c (Fdefvar): Only record (defvar <var>) in the load-history
in <var> has no default value yet.
* xfaces.c (try_alternative_families): First try the FAMILY.
And if nothing is found in the end, try again with scalable fonts.
(try_font_list): Let try_alternative_families do a bit more of
the work. Only use FAMILY if it is not nil.
(syms_of_xfaces) <scalable-fonts-allowed>: Fix docstring.
2001-05-14 Gerd Moellmann <>
* xterm.c (note_mouse_highlight): Avoid changing the mouse
pointer shape when show_mouse_face has already done it.
* xterm.c (x_draw_glyphs): Fix computation of rightmost x for
full-width rows.
* xfaces.c (split_font_name): Make sure to leave the loop
with the right value of `i'.
* xfaces.c (split_font_name): Handle matrix transformations
in the pixel and point size fields of XLFD font names.
(xlfd_point_size): Likewise.
2001-05-12 Eli Zaretskii <>
* w32fns.c (w32_to_x_font): Change prototype to fit the declaration.
(x_to_w32_font): Add prototype.
* regex.c (malloc, realloc, free) [emacs]: Undefine before
redefining, to avoid compiler warnings.
* w32proc.c: Include syssignal.h, to avoid compiler warnings.
* w32bdf.c (search_file_line, set_bdf_font_info, seek_char)
(w32_get_bdf_glyph): Cast between unsigned char and char when
passing arguments to subroutines, to shut up compiler warnings.
(w32_get_bdf_glyph): Don't mix signed and unsigned when calling
* xfaces.c: Include keyboard.h before frame.h, not after it.
* widget.c: Include keyboard.h before frame.h.
* w32term.h (struct image, struct face): Forward declaration, to
avoid compiler warnings.
2001-05-11 Gerd Moellmann <>
* keyboard.c (read_key_sequence): Don't modify events when
generating fake prefix keys (mode-line, scroll-bar, ...) since
this prevents proper processing of such events when pushed back
into unread-command-events.
* xterm.c (clear_mouse_face): Return 1 if text with mouse face was
actually redrawn. Make the function static.
(note_mouse_highlight): Fix a case where the mouse cursor
was changed back to the text cursor.
* xterm.h (clear_mouse_face): Remove prototype.
* xdisp.c (try_window_id): Fix the fix and set the right
* xdisp.c (try_window_id): Fix computation of window end in the
case that lines were deleted at the end of the window. Add some
more debug_method_adds.
* xfaces.c (try_alternative_families): New function.
(try_font_list): Use it. If ATTRS specifies a family, check
fonts from that family first.
(choose_face_font): Remove code setting the family part of
the pattern to nil.
2001-05-10 Gerd Moellmann <>
* xdisp.c (try_window_id): Fix case of all changes before
the window start.
* xdisp.c (try_window_id): Add some xasserts.
2001-05-09 Gerd Moellmann <>
2001-05-09 Dave Love <>
* xdisp.c (GIVE_UP): Fix for K&R C.
2001-05-09 Gerd Moellmann <>
* print.c (syms_of_print) <print-length, print-level>: Doc fix.
* xterm.c (note_mouse_highlight): Don't change the mouse cursor
back to the text cursor shape without need.
2001-05-07 Gerd Moellmann <>
* xfns.c (x_set_foreground_color): Set frame's cursor_pixel.
* dispextern.h (inverse_video): Declare extern.
* keyboard.c (delete_kboard): Handle the case that selected_frame
has been deleted in the course of x_connection_closed.
2001-05-03 Eli Zaretskii <>
* xterm.c (XTread_socket) <Expose> [!USE_TOOLKIT_SCROLL_BARS]:
Fix the change from 2001-04-30.
2001-05-03 Gerd Moellmann <>
* xfns.c (file_dialog_unmap_cb): New function.
(Fx_file_dialog): Use it as XmNunmapCallback to capture the case
where a dialog is closed via the window manager.
* xdisp.c (try_window_id): Cases of changes all in front of
the window start or all below the window end mostly rewritten.
(redisplay_window): Move the tests if try_window_id is
applicable to try_window_id.
(GIVE_UP): New macro.
2001-05-02 Gerd Moellmann <>
* xterm.c (expose_window): Return int. If W is the window
currently being updated, mark the frame garbaged.
Fix computation of rows intersecting the exposed rectangle.
(expose_window_tree): Stop when expose_window returns 0.
* xterm.c (x_draw_stretch_glyph_string): Don't draw background
again if it has already been drawn.
2001-05-01 Stefan Monnier <>
* syntax.c (update_syntax_table): Check that oldi has the same
properties as old_prop before deciding not to invalidate.
2001-04-30 Gerd Moellmann <>
* undo.c (Fprimitive_undo): In a writable buffer, enable undoing
read-only text that is so because of text properties.
* xterm.c (x_window_to_menu_bar) [USE_LUCID]: New function.
(XTread_socket) <Expose> [USE_LUCID]: Handle events for
windows that are components of a Lucid menu bar.
2001-04-27 Gerd Moellmann <>
* term.c (turn_on_face): Fix reverse video handling on terminals
that don't support colors.
2001-04-26 Gerd Moellmann <>
* editfns.c (save_excursion_restore): Don't use XBUFFER on
a non-buffer.
2001-04-25 Gerd Moellmann <>
* term.c (toggle_highlight): New function.
(turn_on_face): Change handling of reverse video.
* process.c (wait_reading_process_input):
Call record_asynch_buffer_change only if a timer really changed buffers.
* buffer.c (mouse_face_overlay_overlaps): Fix the computation
of the number of overlays to check.
* keyboard.c (command_loop_1): Redo change of 2001-03-12.
* xdisp.c (try_window_id): Fix a case where window_end_pos
and window_end_bytepos were not adjusted.
2001-04-23 Gerd Moellmann <>
* xfaces.c (compute_char_face): If buffer is unibyte, set CH to
zero instead of -1.
2001-04-21 Eli Zaretskii <>
* process.c (wait_reading_process_input) [!subprocesses]:
Don't reference waiting_for_user_input_p, it's not defined in the
branch without async subprocesses support.
2001-04-19 Gerd Moellmann <>
* keyboard.c (delete_kboard): Prevent a dangling reference
from current_kboard to KB, which is freed.
* process.c (wait_reading_process_input):
Call record_asynch_buffer_change after running timers, to make
read_key_sequence aware of buffer changes from under it.
2001-04-18 Gerd Moellmann <>
* xfaces.c (Qscalable_fonts_allowed): New variable.
(realizing_basic_faces_p): Removed.
(x_face_list_fonts): Special handling for realizing_basic_faces_p
(realize_basic_faces): Specbind Qscalable_fonts_allowed to t.
(syms_of_xfaces): Initialize Qscalable_fonts_allowed. Change default
for scalable-fonts-allowed to t.
* fileio.c (Finsert_file_contents): If the file size returned from
stat is zero, set END to READ_BUF_SIZE. This makes sure we can
read from files on a procfs whose contents are generated dynamically.
2001-04-18 Eli Zaretskii <>
* gmalloc.c (__malloc_size_t) [__GNUC__]: If STDC_HEADERS is not
defined, include stddef.h and use __SIZE_TYPE__ instead of size_t.
(__memalign_hook): Make the two prototypes consistent.
2001-04-17 Gerd Moellmann <>
* xdisp.c (redisplay_window): Make sure to clear the desired glyph
matrix of mini-windows.
2001-04-12 Stefan Monnier <>
* intervals.c (find_interval): Don't rebalance during signal handling.
2001-04-11 Gerd Moellmann <>
* fns.c: Include blockinput.h.
* fns.c (Fplist_get): Don't QUIT if interrupt_input_blocked.
2001-04-10 Gerd Moellmann <>
* fns.c (Fcompare_strings): Fix return values.
* window.c (window_scroll): Change the meaning of N to mean
N screen-fulls or N lines.
(window_scroll_pixel_based, window_scroll_line_based)
(scroll_command, Fscroll_other_window): Change accordingly.
* window.c (window_scroll_pixel_based, Frecenter):
Call window_box_height instead of using it.last_visible_y for the
height of the window.
* xdisp.c (redisplay_window) <recenter>: Call window_box_height
instead of using it.last_visible_y for the height of the window.
* w32proc.c (sys_spawnve): Quote more chars for Cygwin.
From Dan Holmsand <>.
* w32.c (sys_open): Try to open file without _O_CREAT first, to be
able to write to hidden and system files. From Dan Holmsand
* fileio.c (Fcopy_file) [WINDOWSNT]: Use CopyFile. From Dan
Holmsand <>.
2001-04-09 Gerd Moellmann <>
* fns.c (Fplist_get, Fplist_put): Add QUITs.
* window.c (window_internal_height): Return 1 less if the
window has a header line.
* xdisp.c (try_window_id): When scrolling on a terminal, take
the change of window_internal_height into account.
2001-04-09 Eli Zaretskii <>
* gmalloc.c (align): If the argument SIZE would overflow
__malloc_ptrdiff_t, fail right away.
2001-04-06 Gerd Moellmann <>
* xfns.c (compute_tip_xy): Add parameters WIDTH and HEIGHT.
Make sure the tooltip is completely visible.
(x_make_gc): Use FRAME_X_SCREEN_NUMBER.
* xterm.h (FRAME_X_SCREEN_NUMBER): New macro.
* xmenu.c (xmenu_show): Use FRAME_X_SCREEN_NUMBER.
2001-04-06 Dave Love <>
* composite.c (update_compositions) <check_mask & CHECK_HEAD>:
Fix test of `from'.
2001-04-06 Gerd Moellmann <>
* composite.h (COMPOSITION_VALID_P): Allow integers as cdrs of PROP.
* xdisp.c (Qinhibit_eval_during_redisplay): Make it a Lisp_Object.
2001-04-05 Gerd Moellmann <>
* sysdep.c (getwd) [!HAVE_GETWD]: Unblock input before returning.
* editfns.c (Fcurrent_time_zone): Accept spaces in timezone names.
* xfns.c (Vmotif_version_string) [USE_MOTIF]: New variable.
(syms_of_xfns): DEFVAR_LISP it. Initialize from XmVERSION_STRING.
* xmenu.c (free_frame_menubar) [USE_MOTIF]: Preserve the
shell widget's position only if it is non-null.
* xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]:
Set f->output_data.x->widget to null after destroying it.
* fns.c (Frequire): Doc fix. Rename parameter FILE_NAME to
FILENAME to bring it in synch with the documentation.
* xfaces.c (realizing_basic_faces_p): Renamed from
(realize_basic_faces): Set/clear realizing_basic_faces_p.
(realize_default_face): Don't set the flag.
2001-04-04 Gerd Moellmann <>
* lisp.h (echoing, echo_message_buffer, cancel_echoing): Declare.
* keyboard.c (echoing, echo_message_buffer): Make externally visible.
* xdisp.c (with_echo_area_buffer): Avoid confusion from reusing
the buffer that was used for echoing.
* xfaces.c (best_matching_font): Remove unused parameter PATTERN.
(first_font_matching): Removed unused function.
(x_face_list_fonts): Remove unused parameter SCALABLE_P.
(may_use_scalable_font_p): Remove parameter FONT; rename
parameter NAME to FONT.
(x_face_list_fonts): Fix missing bounds check.
(realizing_default_face_p): New variable.
(realize_default_face): Set and clear that flag.
(x_face_list_fonts): When called during the realization of the
default face, and no matching fonts are found when ignoring
scalable fonts and fonts matching a regexp from
face-ignored-fonts, try without ignoring fonts.
2001-04-03 Gerd Moellmann <>
* xfns.c (postprocess_image): New function.
(lookup_image): Call it for all image types except PostScript.
(x_kill_gs_process): Call postprocess_image.
* xterm.c (x_use_underline_position_properties): New variable.
(x_draw_glyph_string): Use it.
(syms_of_xterm): DEFVAR_BOOL it.
2001-04-02 Gerd Moellmann <>
* xterm.c (x_alloc_nearest_color_1): New function.
(x_alloc_nearest_color): Use it.
(x_color_cells): Take a Display as argument, instead of a frame.
(cvt_string_to_pixel_args, cvt_string_to_pixel_value): New variables.
(cvt_string_to_pixel, cvt_pixel_dtor): New functions.
(x_initialize): Register cvt_string_to_pixel as resource converter
string -> Pixel and cvt_pixel_dtor as pixel resource destructor.
2001-03-30 Gerd Moellmann <>
* xdisp.c (get_overlay_strings): Set iterator's end_charpos.
(set_iterator_to_next): If a string from a display property ends,
consider the case that this might also be the end of an
overlay string having the display property.
* xdisp.c (handle_display_prop): Fix recognition of subproperty lists.
* xdisp.c (reseat_to_string): Undo last change.
* dispnew.c (adjust_glyph_matrix): Don't try to reuse the current
matrix of a window when the header line changes, when
new rows are allocated, or when the width changes.
2001-03-30 Eli Zaretskii <>
* print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Fix last change.
2001-03-29 Eli Zaretskii <>
* fileio.c (syms_of_fileio) <directory-sep-char>: Warn that it is
2001-03-29 Gerd Moellmann <>
* data.c (Fsubr_interactive_form): New function.
(syms_of_data): Defsubr it.
* alloc.c (live_string_p, live_cons_p, live_symbol_p)
(live_float_p, live_misc_p): Return 1 only if the offset of the
pointer in its block is >= 0.
2001-03-28 Paul Eggert <>
* editfns.c (Ffloat_time): Fix off-by-factor-of-10 bug in the
microseconds calculation. Avoid double-rounding problem.
In doc string, warn that the result is approximate.
2001-03-28 Gerd Moellmann <>
* eval.c (call_debugger): Bind `inhibit-redisplay' to nil, and
bind `inhibit-eval-during-redisplay' to t.
* lisp.h (Qinhibit_eval_during_redisplay): Declare extern.
* xdisp.c (inhibit_eval_during_redisplay)
(Qinhibit_eval_during_redisplay): New variables.
(safe_eval, safe_call): If inhibit_eval_during_redisplay is set,
don't eval, return nil instead.
(syms_of_xdisp): DEFVAR_BOOL inhibit-eval-during-redisplay.
Initialize Qinhibit_eval_during_redisplay.
* xdisp.c (reseat_to_string): If STRING is multibyte, set
the iterator's multibyte_p flag.
* xfaces.c (realize_basic_faces): Decrement menu_face_change_count
instead of setting it to zero; it's incremented for each frame
where the menu face is changed.
* xterm.c (x_draw_relief_rect): Extend left shadow to the bottom;
change bottom shadow accordingly.
* xterm.c (expose_window_tree, expose_frame): Don't compute
intersections here.
(expose_window): Do it here instead.
(x_draw_glyph_string): Fix a computation of the underline position.
* bytecode.c (BYTE_CODE_QUIT): New macro.
(Fbyte_code): Use BYTE_CODE_QUIT instead of QUIT.
2001-03-27 Gerd Moellmann <>
* xdisp.c (try_window_reusing_current_matrix) <scrolling up>:
Give up if matrix starts in an ellipsis.
(init_from_display_pos): Do nothing if POS doesn't specify
a dpvec_index but the iterator has such a position.
* xdisp.c (init_from_display_pos): Remove unwarranted assertion.
* xmenu.c (free_frame_menubar) [USE_MOTIF]: If the shell widget's
x/y position is (0, 0) after destroying the menu bar, restore
its original position.
* xdisp.c (in_ellipses_for_invisible_text_p): New function.
(init_from_display_pos): Use it.
(try_window_reusing_current_matrix): Don't use cursor_row_p.
2001-03-26 Gerd Moellmann <>
* xdisp.c (try_window_id): Undo last change.
2001-03-26 Eli Zaretskii <>
* print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Doc fix.
* buffer.c (syms_of_buffer): Doc fix.
2001-03-26 Gerd Moellmann <>
* xfaces.c (x_update_menu_appearance): Use local variable
popup_path for setting font resources.
2001-03-25 Eli Zaretskii <>
* frame.c (Fframe_list): Don't reference tip_frame if
HAVE_WINDOW_SYSTEM is not defined.
* emacs.c (main): Update the copyright year. From Werner LEMBERG
2001-03-25 Gerd Moellmann <>
* xdisp.c (init_from_display_pos): Test invisible property
* xdisp.c (redisplay_internal) <update one window>: Make sure
last_arrow_position and last_arrow_string are set.
* frame.c (Fframe_list): Don't return a tooltip frame.
2001-03-23 Gerd Moellmann <>
* xdisp.c (mark_window_display_accurate_1): New function,
extracted from mark_window_display_accurate.
(mark_window_display_accurate): Use it.
(redisplay_internal): Use it for the selected window.
(redisplay_internal): Avoid duplicate mark_window_display_accurate
for the selected frame.
* xdisp.c: Use make_number, for readability.
(try_window_id): Disable rows below the window end.
(try_window_reusing_current_matrix): Use cursor_row_p.
(try_window_reusing_current_matrix) <scrolling up>: Fix disabling
of rows.
(init_from_display_pos): If POS specifies a position in a display
vector, maybe get the iterator set up for that ellipsis.
* xdisp.c (dump_glyph_row): Fix output for NGLYPHS == 2.
2001-03-23 Eli Zaretskii <>
* xmenu.c: Include widget.h only if USE_X_TOOLKIT is defined.
2001-03-23 Gerd Moellmann <>
* xfaces.c (x_update_menu_appearance): Use a different path
for Lucid popup menus.
2001-03-22 Stefan Monnier <>
* xterm.c (note_mouse_highlight): Dec the int, not the Lisp_Object.
* xdisp.c (init_iterator): Check WINDOWP before using XWINDOW.
(string_buffer_position): Use `make_number'.
2001-03-22 Gerd Moellmann <>
* xfaces.c (x_update_menu_appearance): Renamed from
x_set_menu_face_resources. Use different resources for popups.
* lisp.h (Vx_resource_name) [HAVE_X_WINDOWS]: Declare extern.
(GC_CHECK_STRING_BYTES): Don't define.
* xfaces.c (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]:
Removed, together with subroutines.
(x_set_menu_face_resources) [USE_X_TOOLKIT]: New function.
(realize_basic_faces) [USE_X_TOOLKIT]: Call x_set_menu_face_resources.
* dispextern.h (x_set_menu_resources_from_menu_face):
Remove prototype.
* xmenu.c (update_frame_menubar, set_frame_menubar, xmenu_show):
Remove calls to x_set_menu_resources_from_menu_face.
* xfaces.c (xm_set_menu_resources_from_menu_face):
Remove #ifndef LESSTIF_VERSION.
* xmenu.c: Include widget.h.
(single_submenu): Return int. Some cleanup.
(set_frame_menubar): Call x_set_menu_resources_from_menu_face.
2001-03-21 Gerd Moellmann <>
* xterm.c (x_update_window_end): Handle overwritten mouse face
also for tool bar windows.
(show_mouse_face): Set the glyph row's mouse_face_p flag also when
2001-03-20 Gerd Moellmann <>
* print.c (syms_of_print): Doc fixes.
* fns.c (Fmd5): Doc fix.
2001-03-19 Gerd Moellmann <>
* xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
Clear area of the frame not occupied by the scroll bar.
* xfns.c (x_create_tip_frame): Add parameter TEXT. Set the
tip frame's root window buffer to *tip* right after creating
the frame.
* xdisp.c (highlight_trailing_whitespace): Glyphs whose object
is an integer don't have to be for space characters.
2001-03-16 Gerd Moellmann <>
* indent.c (current_column, current_column_1, Fmove_to_column)
(compute_motion): Handle characters from display vectors differently.
2001-03-15 Kenichi Handa <>
* xterm.c (x_draw_glyph_string): Draw relief (if any) before
drawing glyph string.
2001-03-15 Gerd Moellmann <>
* keyboard.c (timer_check): Preserve the value of deactivate-mark.
(command_loop_1): Undo last change.
* xterm.c (fast_find_position): Return the correct vpos.
* data.c (store_symval_forwarding): Add parameter BUF. If BUF is
non-null, set a per-buffer value in BUF instead of the current buffer.
(swap_in_global_binding, swap_in_symval_forwarding, Fset_default):
Call store_symval_forwarding with BUF null.
(set_internal): Call store_symval_forwarding with the BUF
parameter passed to set_internal. Formerly, the value was always
set in the current buffer; the buffer recorded in specbind for
this case wasn't used.
(arith_driver): Reindent.
* buffer.c (swap_out_buffer_local_variables):
Call store_symval_forwarding with BUF null.
* lisp.h (store_symval_forwarding): Change prototype.
* eval.c (specbind): Call store_symval_forwarding with BUF null.
2001-03-14 Gerd Moellmann <>
* frame.c (do_switch_frame): Remove unused parameter NO_EVENT, add
FOR_DELETION. Avoid resizing the mini-window of the selected
frame if FOR_DELETION is set.
(Fselect_frame, Fhandle_switch_frame, Fdelete_frame)
(Fmake_frame_invisible): Change calls to do_switch_frame for new
* window.c (Fset_window_configuration): Change call to
do_switch_frame to new format.
* keyboard.c (quit_throw_to_read_char): Change call to
do_switch_frame to new format.
* lisp.h (do_switch_frame): Change prototype.
* frame.c (Fframe_parameters): In the `buffer-list' frame
parameter, store the buffer list of FRAME, not the list of the
selected frame.
* xterm.c (x_draw_glyph_string_box): Don't draw a full-width
box just because the glyph row's full_width_p flag is set.
2001-03-14 Eli Zaretskii <>
* xdisp.c (highlight_trailing_whitespace): On character terminals,
skip the padding blanks inserted in extend_face_to_end_of_line,
before checking for trailing whitespace.
2001-03-13 Gerd Moellmann <>
* xmenu.c (popup_activate_callback, popup_deactivate_callback):
Remove special handling for LessTif/Motif.
(toplevel): Don't include Xm/Xm.h.
* xterm.c (XTread_socket) <LeaveNotify, EnterNotify>:
Remove workaround code for LessTif; it doesn't work anymore.
* xterm.c [USE_TOOLKIT_SCROLL_BARS && USE_MOTIF]: Don't include
* xterm.c (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]:
Don't access private scroll bar data; it's no longer necessary with
contemporary LessTif.
* xfaces.c (xm_set_menu_resources_from_menu_face):
Change #if 0 to #ifndef LESSTIF_VERSION.
* xmenu.c (xmenu_show) [LESSTIF_VERSION]: Take out the code
removing button grabs.
2001-03-13 Kenichi Handa <>
* fontset.c (syms_of_fontset): Describe highlight-wrong-size-font
and clip-large-size-font as obsolete.
* lread.c (read_multibyte): Check the validity of multibyte
sequence. If invalid, return the first byte.
2001-03-12 Gerd Moellmann <>
* keyboard.c (command_loop_1): Set Vdeactivate_mark to nil
before running the command; timer functions or process
filters may have set it.
2001-03-12 Eli Zaretskii <>
* keyboard.c (syms_of_keyboard) <overriding-terminal-local-map>:
Doc fix.
2001-03-12 Gerd Moellmann <>
* xrdb.c (x_load_resources) [USE_MOTIF]: Remove extraneous arg
to sprintf.
2001-03-09 Gerd Moellmann <>
* dispextern.h (string_buffer_position): Add prototype.
* xdisp.c (string_buffer_position, display_prop_string_p)
(single_display_prop_string_p): New functions.
* xterm.c (note_mouse_highlight): If there's no help-echo on
a string, look at the buffer text ``under'' it.
* keyboard.c (make_lispy_event): Add string info to the event,
analogous to what's done on mode lines.
(read_key_sequence): For a click on a string, consider `local-map'
and `keymap' of that string.
* keyboard.c (make_lispy_event, make_lispy_movement):
Adjust calls to buffer_posn_from_coords to new format.
* dispextern.h (buffer_posn_from_coords): Adjust prototype.
* dispnew.c (buffer_posn_from_coords): Add parameters OBJECT and
POS; return void.
* fileio.c (Fwrite_region) [DOS_NT]: Remove O_TRUNC from open
flags argument to emacs_open; it seems to conflict with O_EXCL.
2001-03-09 Kenichi Handa <>
* composite.h (struct composition): Change types of members;
glyph_len to unsigned, width to unsigned short.
2001-03-08 Andrew Innes <>
* w32menu.c (add_menu_item): Fix problems with using ownerdraw for
menu titles.
2001-03-08 Gerd Moellmann <>
* xdisp.c (handle_display_prop): Use it->w->buffer as object,
instead of nil.
* xterm.c (note_mouse_highlight): Handle mouse-face and
help-echo in strings.
(x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
(fast_find_string_pos): New function.
* xdisp.c (handle_face_prop, face_before_or_after_it_pos)
(display_string): Call face_at_string_position with new parameter.
* xfaces.c (face_at_string_position): Add parameter MOUSE_P.
Handle `mouse-face'.
* dispextern.h (face_at_string_position): Change prototype.
* dired.c (directory_files_internal): Handle EAGAIN more efficiently.
* keyboard.c (make_lispy_event): Avoid generating drag events
if the mouse hasn't actually moved to another buffer position.
2001-03-08 Dave Love <>
* eval.c (syms_of_eval) <debug-on-error>: Doc fix.
2001-03-08 Gerd Moellmann <>
* process.c (Fset_process_window_size): Fix a typo.
2001-03-08 Kenichi Handa <>
* coding.c (detect_coding_sjis): Do more rigid check.
(detect_coding_big5): Likewise.
(decode_coding_sjis_big5): Likewise.
(Fdetect_coding_region): Call detect_coding_system with tailing
anchor byte `\0' for more rigid detection.
(detect_coding_mask): Fix the incorrect handling of arg MULTIBYTEP.
(Fdetect_coding_string): Likewise.
2001-03-07 Stefan Monnier <>
* bytecode.c (Fbyte_code) <Btemp_output_buffer_setup>: Check the arg is
a string before extracting its data.
2001-03-07 Gerd Moellmann <>
* window.c (Frecenter): Rewrite code handling negative values
of ARG on graphical frames.
2001-03-07 Eli Zaretskii <>
* window.c (displayed_window_lines): If W->start is outside the
accessible portion of the buffer, call start_display with BEGV or
ZV instead of W->start.
2001-03-07 Gerd Moellmann <>
* buffer.c (syms_of_buffer) <header-line-format>: Doc fix.
* process.c (Fset_process_filter): Don't crash if the input
file descriptor of PROCESS is closed.
(Fset_process_window_size): Likewise.
2001-03-06 Kenichi Handa <>
* xterm.c (XTflash): Make the timeout of select shorter, and call
select repeatedly until the desired time expires.
2001-03-06 Gerd Moellmann <>
* w32fns.c (Fx_create_frame): Clear Vwindow_list.
* xfns.c (Fx_create_frame): Clear Vwindow_list.
* lisp.h (Vwindow_list): Declare extern.
2001-03-06 Eli Zaretskii <>
* dispnew.c (syms_of_display) <glyph-table>: Doc fix.
2001-03-06 Gerd Moellmann <>
* xterm.c (note_mouse_highlight): Call mouse_face_overlay_overlaps
to detect a case where we have to highlight a different region
despite not having left the currently highlighted region.
Set mouse_face_overlay in the x_display_info.
(x_term_init): Initialize the x_display_info's mouse_face_overlay.
* xterm.h (struct x_display_info): Add mouse_face_overlay.
* buffer.c (mouse_face_overlay_overlaps): New function.
* lisp.h (mouse_face_overlay_overlaps): Add prototype.
(Qmouse_face): Declare extern.
* xdisp.c (redisplay_internal): Set windows_or_buffers_changed
if face_change_count is non-zero.
2001-03-06 Kenichi Handa <>
* ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix for the case
that the source is unibyte.
2001-03-05 Dave Love <>
* xterm.c (XTmouse_position): Fix typo.
2001-03-05 Gerd Moellmann <>
* minibuf.c (read_minibuf): Clean up the binding stack if
called noninteractively.
2001-03-05 Kenichi Handa <>
* coding.c (syms_of_coding): Docstring modified.
2001-03-05 Kenichi Handa <>
* charset.c (char_to_string): If a single byte char has modifier
bits that can't be reflected to the character code, ignore them
instead of signaling an error.
2001-03-04 Eli Zaretskii <>
* s/msdos.h: Update copyright notice.
* dosfns.h: Update copyright notice.
* dosfns.c: Update copyright notice.
* msdos.c: Update copyright notice.
2001-03-02 Gerd Moellmann <>
* xterm.c (glyph_rect): New function.
(XTmouse_position): Use it to raise the threshold for mouse
movement event generation.
2001-03-02 Eli Zaretskii <>
* msdos.c (Fmsdos_remember_default_colors): If default-frame-alist
specifies (reverse . t), reverse the initial screen colors.
(IT_set_frame_parameters): If the property is foreground-color,
but we are reversing the colors, set bg_set, not fg_set.
Likewise for setting background-color and reversing: set fg_set.
Set unspecified-fg and unspecified-bg correctly when (reverse . t) is
in effect.
* xfaces.c (Finternal_set_lisp_face_attribute)
[!HAVE_WINDOW_SYSTEM]: Record the new attribute in the frame's
parameters alist.
2001-03-02 Gerd Moellmann <>
* fileio.c (Fexpand_file_name): Collapse sequences of slashes
to a single slash in the middle of file names.
* editfns.c (Fcurrent_time_zone) [HAVE_TM_ZONE || HAVE_TZNAME]:
Accept only alphanumeric time zone names.
* xterm.c (XTset_vertical_scroll_bar): Don't clear a zero height
or width area.
(XTset_vertical_scroll_bar, x_scroll_bar_create): Don't configure
a widget to zero height.
2001-03-01 Gerd Moellmann <>
* window.c (Fwindow_end): Call move_it_past_eol only if
ending up on a partially visible line.
2001-03-01 Dave Love <>
* ccl.c (Fccl_execute): Doc fix.
2001-03-01 Gerd Moellmann <>
* xfns.c (Fx_create_frame): Adjust the frame's height for presence
of the tool bar before calling x_figure_window_size.
* xmenu.c (free_frame_menubar): Set the frame's menubar_widget to
NULL after destroying it, otherwise XTread_socket can access a
destroyed widget when input is unblocked.
* xfns.c (x_set_foreground_color): Set the background of the cursor GC.
* xfns.c (x_set_font): Handle case of x_new_fontset returning the
same name as before, although there was a change in fontsets.
2001-02-28 Ken Raeburn <>
* lisp.h (Fframe_parameter): Declare.
* window.c (set_window_buffer): Field vscroll is an int, not a
2001-02-28 Gerd Moellmann <>
* xterm.c (x_set_window_size): Don't use `None' with widgets; use
NULL instead.
* xfns.c (Fx_hide_tip): Don't use `None' with widgets; use
NULL instead.
* alloc.c (toplevel): Include process.h.
(allocate_vectorlike): Make it a static function. Add parameter TYPE.
(allocate_vector, allocate_hash_table, allocate_window)
(allocate_frame, allocate_process, allocate_other_vector):
New functions.
(Fmake_vector): Call allocate_vector instead of allocate_vectorlike.
(mark_maybe_pointer): New function.
(mark_memory): Also mark Lisp data to which only pointers
remain and not Lisp_Objects.
(min_heap_address, max_heap_address): New variables.
(mem_find): Return MEM_NIL if START is below min_heap_address or
above max_heap_address.
(mem_insert): Compute min_heap_address and max_heap_address.
* process.c (make_process): Use allocate_process.
* frame.c (make_frame): Use allocate_frame.
* window.c (make_window, make_dummy_parent): Use allocate_window.
(Fcurrent_window_configuration): Use allocate_other_vector.
* lisp.h (allocate_vectorlike): Remove prototype.
(allocate_vector, allocate_other_vector, allocate_frame)
(allocate_window, allocate_process, allocate_hash_table):
Add prototypes.
* fns.c (Fdelete, larger_vector): Use allocate_vector.
(make_hash_table, copy_hash_table): Use allocate_hash_table.
2001-02-27 Kenichi Handa <>
* coding.c (ccl_coding_driver): If ccl->eight_bit_control is zero,
treat the produced bytes as a valid multibyte sequence.
* ccl.c (CCL_WRITE_MULTIBYTE_CHAR): New macro.
(ccl_driver) <CCL_WriteMultibyteChar2>:
<ccl_finish>: Set ccl->eight_bit_control properly.
* ccl.h (struct ccl_program): New member eight_bit_control.
2001-02-26 Stefan Monnier <>
* keymap.c (Faccessible_keymaps): Pass `is_metized' to
(accessible_keymaps_char_table): Obey `is_metized'.
(where_is_internal, Fwhere_is_internal): Don't confuse int and
2001-02-26 Gerd Moellmann <>
* dispnew.c: Check HAVE_TERM_H before including term.h.
2001-02-24 Andrew Innes <>
* makefile.w32-in: Update copyright notice.
2001-02-24 Stefan Monnier <>
* keymap.c (where_is_internal): Accept non-ascii integer prefixes.
2001-02-24 Kenichi Handa <>
* (lisp): Add international/utf-8.elc.
* fontset.c (Fnew_fontset): Fix handling of the case that an
element of FONTLIST is a cons of family and registry.
2001-02-23 Jason Rumney <>
* w32fns.c (Fx_create_frame): Don't add FRAME_TOOL_BAR_LINES
to height unconditionally.
* w32term.c (x_set_glyph_string_background_width): Extend the
background face to the end of the drawing area in the text area, only.
(x_insert_glyphs): Call window_box_left to obtain the left
x-coordinate of the area to shift.
* w32menu.c (set_frame_menubar): Run activate-menu-bar-hook with
2001-02-22 Andrew Innes <>
* makefile.nt ($(BLD)\dired.obj): Remove reference to VMS header files.
($(BLD)\sysdep.obj): Ditto.
* makefile.w32-in ($(BLD)/dired.$(O)): Remove reference to VMS
header files.
($(BLD)/sysdep.$(O)): Ditto.
2001-02-22 Gerd Moellmann <>
* xdisp.c (forward_to_next_line_start): When taking the shortcut
at the start of the function, check that the \n in it->c is
from the iterator's current position.
* xdisp.c (handle_single_display_prop): Add parameter
DISPLAY_REPLACED_BEFORE_P. If it is non-zero ignore display
properties which replace the display of text with something else.
(handle_display_prop): Call handle_single_display_prop with
additional argument saying if we already replaced text display
with something else. Use AREF.
(with_echo_area_buffer_unwind_data, display_menu_bar)
(decode_mode_spec_coding): Use AREF and ASIZE.
* vms-pp.c, vmsdir.h, vmsmap.c, vmsproc.h, vms-pp.trans, vmsfns.c,
* vmspaths.h, vmstime.c, vms-pwd.h, vmsgmalloc.c, vmsproc.c,
* vmstime.h: Files removed.
* unexencap.c, unexfx2800.c: Files removed.
* dispnew.c (direct_output_for_insert): Give up if we are showing
a message or just cleared the message because we might need to
resize the echo area window or display an empty echo area.
2001-02-21 Gerd Moellmann <>
* xdisp.c (redisplay_internal): Do the
mark_window_display_accurate after all windows have been
redisplayed because this call resets flags in buffers which are
needed for proper redisplay.
* keyboard.c, minibuf.c, lread.c, fns.c, eval.c:
Use display_hourglass_p, start_hourglass, cancel_hourglass instead of
the old names.
* w32term.h (struct x_output): Rename busy_cursor to hourglass_cursor,
busy_window to hourglass_window, busy_p to hourglass_p.
* msdos.h (struct x_output): Rename busy_window to
hourglass_window, busy_p to hourglass_p.
* xterm.h (struct x_output): Rename busy_cursor to hourglass_cursor,
busy_window to hourglass_window, busy_p to hourglass_p.
* xfns.c: Rename everything containing *busy_cursor* and similar
to *hourglass*.
(syms_of_w32fns): Rename x-busy-pointer-shape to
x-hourglass-pointer-shape, display-busy-cursor to
display-hourglass, busy-cursor-delay to hourglass-delay.
* w32fns.c: Rename everything containing *busy_cursor* and similar
to *hourglass*.
(syms_of_w32fns): Rename x-busy-pointer-shape to
x-hourglass-pointer-shape, display-busy-cursor to
display-hourglass, busy-cursor-delay to hourglass-delay.
* xterm.c (XTread_socket): Test x_output's hourglass_p instead
of its busy_p flag.
* dispextern.h (start_hourglass, cancel_hourglass)
(display_hourglass_p): Renamed from *busy_cursor*.
2001-02-20 Gerd Moellmann <>
* keyboard.c (read_char): When an event from unread-command-events
is from the tool or menu bar, set *USE_MOUSE_MENU to 1.
* window.c (Fwindow_end): Handle case that WINDOW's buffer is not
equal to the current buffer.
* xdisp.c (setup_echo_area_for_printing): Set truncate_lines to
nil, otherwise we're left with truncate_lines t when a message
is printed with message-truncate-lines bound to t.
2001-02-19 Gerd Moellmann <>
* window.c (Fmove_to_window_line): Undo last change.
(displayed_window_lines): Call line_bottom_y to determine
the line's bottom position.
* dispextern.h (line_bottom_y): Add prototype.
* xdisp.c (line_bottom_y): New function extracted from pos_visible_p.
(pos_visible_p): Use it.
* keyboard.c (recursive_edit_1): Bind `inhibit-redisplay' and
set redisplaying_p to 0 here instead of in Frecursive_edit.
(Frecursive_edit): Don't bind `inhibit-redisplay' and don't
set redisplaying_p.
* xdisp.c (Qinhibit_menubar_update, inhibit_menubar_update):
New variables.
(syms_of_xdisp): Initialize new variables.
(update_menu_bar): Do nothing if inhibit_menubar_update is set.
Specbind `inhibit-menubar-update' when updating the menu bar.
* xmenu.c (set_frame_menubar): Run activate-menu-bar-hook with
* xdisp.c (update_menu_bar): Run activate-menu-bar-hook with
* emacs.c (malloc_initialize_hook): Handle case that `environ'
is null.
* ralloc.c (__morecore) [!SYSTEM_MALLOC]: Move declaration
to the start of the file.
2001-02-16 Gerd Moellmann <>
* window.c (set_window_buffer): Fix last change.
* window.c (set_window_buffer): Set window's vscroll to 0.
* window.c (coordinates_in_window): Increase width of area
where the vertical line can be dragged.
* xterm.c (x_set_glyph_string_background_width): Extend the
background face to the end of the drawing area in the text
area, only.
* xdisp.c (handle_single_display_prop): Set iterator's position
to where the `display' property starts, like for images.
(dump_glyph): New function.
(dump_glyph_row): Use it. Dump info about marginal areas.
* dispnew.c (direct_output_for_insert): Recognize more cases where
glyphs can be written instead of being inserted.
* xterm.c (x_insert_glyphs): Call window_box_left to obtain
the left x-coordinate of the area to shift.
* dired.c (directory_files_internal): Set result list to nil
before retrying.
2001-02-15 Kenichi Handa <>
* ccl.c (ccl_driver) [CCL_ReadMultibyteChar2]: If SRC points an
invalid multibyte sequence, treat *SRC as a character of
2001-02-15 Eli Zaretskii <>
* textprop.c (Fset_text_properties): Doc fix.
2001-02-15 Gerd Moellmann <>
* dispnew.c (update_text_area): Undo change of 2001-01-12.
2001-02-14 Dave Love <>
* coding.c: Doc and message fixes.
2001-02-14 Andrew Innes <>
* w32fns.c (w32_wnd_proc) <WM_GETMINMAXINFO>: Allow resizing the
Emacs frame above the screen size.
2001-02-14 Gerd Moellmann <>
* xdisp.c (reseat_1): Set iterator's end_charpos to ZV.
2001-02-13 Gerd Moellmann <>
* insdel.c (del_range_1, del_range_byte, del_range_both): Handle
case that TO ends up beyond ZV after running before-change-functions.
* window.c (window_loop) <GET_BUFFER_WINDOW>: Prefer to return
the selected window if it is showing the buffer in question.
* dired.c (directory_files_internal): Initialize errno.
(toplevel): Include errno.h.
2001-02-13 Kenichi Handa <>
* xfaces.c (best_matching_font): New parameter width_ratio.
Multiply avgwidth by width_ratio.
(choose_face_font): Call best_matching_font with width_ratio
calculated from the column width of C.
2001-02-12 Andrew Innes <>
The following changes are to draw box lines inside characters area
if line-width is negative.
* w32term.c (x_produce_image_glyph): Pay attention to the case that
face->box_line_width is negative.
(x_produce_stretch_glyph): Likewise.
(x_produce_glyphs): Likewise.
(x_estimate_mode_line_height): Likewise.
(x_draw_glyph_string_background): Likewise.
(x_draw_glyph_string_foreground): Likewise.
(x_draw_composite_glyph_string_foreground): Likewise.
(x_draw_glyph_string_box): Likewise.
(x_draw_image_foreground): Likewise.
(x_draw_image_relief): Likewise.
(x_draw_image_foreground_1): Likewise.
(x_draw_image_glyph_string): Likewise.
2001-02-09 Kenichi Handa <>
The following changes are to draw box lines inside characters area
if line-width is negative.
* xterm.c (x_produce_image_glyph): Pay attention to the case that
face->box_line_width is negative.
(x_produce_stretch_glyph): Likewise.
(x_produce_glyphs): Likewise.
(x_estimate_mode_line_height): Likewise.
(x_draw_glyph_string_background): Likewise.
(x_draw_glyph_string_foreground): Likewise.
(x_draw_composite_glyph_string_foreground): Likewise.
(x_draw_glyph_string_box): Likewise.
(x_draw_image_foreground): Likewise.
(x_draw_image_relief): Likewise.
(x_draw_image_foreground_1): Likewise.
(x_draw_image_glyph_string): Likewise.
* xfaces.c (Finternal_set_lisp_face_attribute): The value of :box
and :line-width can be negative.
(realize_x_face): The value of attrs[LFACE_BOX_INDEX] can be negative.
2001-02-09 Jason Rumney <>
* w32term.c (w32_encode_char): Treat eight bit graphic and control
characters the same as ASCII and latin-1.
(x_display_and_set_cursor): Check for the focus frame's selected
window instead of selected_window.
(x_after_update_window_line): Don't clear if frame's internal
border width is zero.
(x_new_font): Don't change a tooltip's size.
(w32_initialize): Set char_ins_del_ok to 1.
* w32fns.c (Fx_show_tip): Fix calls to make_number.
(x_set_font): If font hasn't changed, avoid recomputing
faces and other things.
(x_set_tool_bar_lines): Do nothing if frame is minibuffer-only.
(Fx_create_frame): Add the tool bar height to the frame height.
(x_create_tip_frame): Prevent changing the tooltip's
background color by specifying a color for the default font
in .Xdefaults.
(Qcancel_timer): New variable.
(syms_of_w32fns): Initialize and staticpro it.
(Fx_hide_tip, Fx_show_tip): Use it.
(Fx_show_tip): Make sure to set tip_timer to nil when canceling
the timer.
(toplevel): Lisp code for generating parts of syms_of_w32fns removed.
* w32.c (init_environment): Duplicate local string before putenv.
2001-02-09 ShengHuo ZHU <>
* charset.c (Fstring): A typo.
2001-02-09 Kenichi Handa <>
* charset.c (Fstring): If all arguments are less than 256, return
a unibyte string.
* editfns.c (Fchar_to_string): If CHARACTER is less than 256,
return a unibyte string.
* coding.c (code_convert_region): After detecting a coding, if
nothing found, set coding->composing to COMPOSITION_NO.
(decode_coding_string): Likewise.
2001-02-08 Stefan Monnier <>
* w32term.c (w32_set_scroll_bar_thumb): Use `double' for `range'
to avoid overflow.
2001-02-07 Kenichi Handa <>
* charset.c (parse_str_to_multibyte): New function.
* charset.h (parse_str_to_multibyte): Extern it.
* print.c (print_string): If we are going to print a unibyte
string into a multibyte buffer, convert the string to multibyte by
2001-02-06 Andrew Innes <>
* w32xfns.c (select_palette): Do nothing if palette hasn't yet
been created. It seems we can get sent window messages such as
WM_ERASEBKGND before we properly update a frame.
2001-02-06 Gerd Moellmann <>
* dispnew.c (update_frame_line): Rename parameter FRAME to F.
Avoid some unnecessary cursor positioning.
2001-02-05 Gerd Moellmann <>
* xfaces.c (split_font_name): Compute numeric value of XLFD_AVGWIDTH.
(LFACE_AVGWIDTH): New macro.
(check_lface_attrs): Check LFACE_AVGWIDTH.
(lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
(set_lface_from_font_name): Set LFACE_AVGWIDTH.
(merge_face_vectors): Check LFACE_AVGWIDTH.
(Finternal_make_lisp_face): Use AREF.
(xl_set_menu_resources_from_menu_face): Check LFACE_AVGWIDTH.
(Finternal_lisp_face_empty_p): Use AREF.
(lface_same_font_attributes_p): Compare LFACE_AVGWIDTH.
(better_font_p, exact_face_match_p): Add parameter AVGWIDTH.
Compare average widths..
(best_matching_font): Arrange for comparing average widths.
* dispextern.h (enum lface_attribute_index):
Add LFACE_AVGWIDTH_INDEX (invisible from Lisp).
2001-02-05 Dave Love <>
* puresize.h: Revert last change following loadup.el change.
2001-02-05 Andrew Innes <>
* makefile.w32-in ($(EMACS)): Use $(THISDIR) instead of . in
invocation of temacs, to work with Windows 2000.
(bootstrap-emacs): Ditto.
2001-02-05 Gerd Moellmann <>
* xterm.c (x_display_and_set_cursor): Check for the focus
frame's selected window instead of selected_window.
* xdisp.c (try_scrolling): If point is in the line below the
window, make sure to move the iterator at least a canonical
char height down.
* window.c (Fmove_to_window_line): Don't add 1 if window is vscrolled.
2001-02-05 Kenichi Handa <>
* ccl.c (CCL_WRITE_CHAR): Check if CH is valid or not.
If invalid, execute CCL_INVALID_CMD.
(ccl_driver): If the CCL program is terminated because of
CCL_STAT_INVALID_CMD, copy the remaining source data to the
destination instead of throwing them away.
2001-02-02 Gerd Moellmann <>
* xfns.c (x_set_font): If font hasn't changed, avoid recomputing
faces and other things.
* xdisp.c (get_next_display_element): Fix case of empty
display table entry.
2001-02-02 Eli Zaretskii <>
* editfns.c (Fconstrain_to_field): Doc fix.
* xfaces.c (Fclear_face_cache): Rename the `thorougly' argument
into `thoroughly', to make it consistent with the doc string.
* window.c (Fenlarge_window, Fshrink_window): Doc fix.
2001-02-01 Gerd Moellmann <>
* search.c (search_buffer): Call set_search_regs with a byte
position, not a character position.
* xfns.c (x_set_tool_bar_lines): Do nothing if frame is
2001-02-01 Eli Zaretskii <>
* frame.c (Fmodify_frame_parameters): Doc fix.
2001-01-31 Gerd Moellmann <>
* frame.h (EMACS_FRAME_H_INCLUDED): Use an include blocker
identifier which is not reserved by Standard C.
* frame.h (FRAME_RIGHT_SCROLL_BAR_WIDTH): New define.
* window.c (enum window_part): New enumeration.
(Qleft_fringe, Qright_fringe): Replace Qleft_bitmap_area and
(coordinates_in_window): Return an enumerator from enum
window_part. Fix handling of right scroll bar.
(Fcoordinates_in_window_p): Doc fix. Return `left-fringe' and
`right-fringe' instead of `left-bitmap-area' and
`right-bitmap-area'. Use enumerators from enum window_part
instead of hard-coded integers.
(check_window_containing, window_from_coordinates):
Use enumerators from enum window_part instead of hard-coded integers.
(syms_of_window): Replace Qleft_bitmap_area and
Qright_bitmap_area.with Qleft_fringe and Qright_fringe.
2001-01-31 Eli Zaretskii <>
* editfns.c (Fformat_time_string): Doc fix.
2001-01-31 Stefan Monnier <>
* keymap.c (Fwhere_is_internal): Use the first valid binding
if no ascii binding is found (when firstonly is t).
2001-01-31 Gerd Moellmann <>
* window.c (Fscroll_right, Fscroll_left): Use interactive_p
instead of Finteractive_p.
* lisp.h (interactive_p): Add prototype.
* eval.c (interactive_p): New function.
(Finteractive_p): Use it.
* alloc.c (Fmake_list): Add a QUIT in the loop; unroll the loop.
2001-01-31 Dave Love <>
* .gdbinit (hook-run): Define to run xreload.
* textprop.c (Fset_text_properties): Fix newline in doc string.
2001-01-30 Gerd Moellmann <>
* xdisp.c (build_desired_tool_bar_string, syms_of_xdisp):
* dispextern.h (Vtool_bar_button_margin:): Declare extern.
* xfns.c (Fx_create_frame): Add the tool bar height to the frame
2001-01-30 Dave Love <>
* bytecode.c (Fbyte_code) <Bgeq>: Add BEFORE_POTENTIAL_GC and
2001-01-29 Gerd Moellmann <>
* bytecode.c (Fbyte_code) <Bcurrent_column>:
2001-01-29 Eli Zaretskii <>
* textprop.c (Fset_text_properties): Doc fix.
2001-01-29 Gerd Moellmann <>
* xdisp.c (forward_to_next_line_start): Remove xassert.
2001-01-29 Jason Rumney <>
* w32term.c (x_draw_row_bitmaps): Delay obtaining HDC to avoid
returning without releasing it.
2001-01-29 Kenichi Handa <>
* w32fns.c (w32_font_match): Allocate three more bytes to regex
for '^', '$', and '\0'.
2001-01-28 Andrew Choi <>
* fontset.c (fontset_pattern_regexp): Allocate three more bytes to
regex for '^', '$', and '\0'.
* alloc.c (allocate_string) [macintosh]: Call check_string_bytes
only if current_sblock has been initialized.
* frame.c (Fdelete_frame) [macintosh]: Allow deletion of initial
terminal frame even if it is the only visible frame.
2001-01-28 Kenichi Handa <>
* fontset.c (font_family_registry): Even if FONTNAME conform to
XLFD, if it specifies other fields than family and registry,
return FONTNAME. New argument FORCE if nonzero cancel that feature.
(fontset_font_pattern): Call font_family_registry with FORCE 1 for
a single byte character. Don't set FAMILY part to nil here.
It is handled by the caller choose_face_font.
(Fnew_fontset): Call font_family_registry with FORCE 0.
(Fset_fontset_font): Likewise.
2001-01-27 Gerd Moellmann <>
* xdisp.c (display_line): Don't treat a newline as fitting
on the line.
2001-01-26 Gerd Moellmann <>
* window.c (size_window): Set the window's orig_top to nil when
changing heights, so that a future shrink_mini_window won't
restore a bogus height.
* frame.c (do_switch_frame): If selected frame has a mini-window,
resize that to exact size.
* dispnew.c (adjust_glyph_matrix): Always clear desired matrices.
* xdisp.c (display_line): Simplify check for glyphs fitting
entirely in the line.
* xfns.c (xic_style): New variable.
(create_frame_xic): Move static variable to global scope for
the case that `static' gets defined away.
2001-01-26 Kenichi Handa <>
* coding.c (decode_coding): Set a flag for inhibiting
inconsistent eol.
(code_convert_region): Always set saved_coding_symbol.
(decode_coding_string): Likewise. Update coding->symbol when we
encounter a inconsistent eol by the same way as code_convert_region.
2001-01-25 Gerd Moellmann <>
* xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
* xterm.c (x_after_update_window_line): Don't clear if frame's
internal border width is zero.
(x_clear_area): New function.
(x_after_update_window_line, x_clear_end_of_line)
(x_scroll_bar_create, x_scroll_bar_set_handle)
(XTset_vertical_scroll_bar, x_erase_phys_cursor): Use x_clear_area
instead of XClearArea.
* xterm.h (x_clear_area): Add prototype.
* xfns.c (Fx_file_dialog): Remove a workaround for Lesstif
which doesn't seem necessary anymore with Lesstif 0.92.
2001-01-25 Dave Love <>
* puresize.h (BASE_PURESIZE): Up to 720000.
* keymap.c (Fwhere_is_internal): Declare gcpro3, gcpro4.
2001-01-25 Gerd Moellmann <>
* xdisp.c (echo_area_display): Don't call redisplay_internal
when Emacs is shutting down. We can't run hooks etc. that
would be necessary to do a redisplay.
* lread.c (read_integer): Use type EMACS_INT instead of int.
2001-01-25 Eli Zaretskii <>
* ccl.c (ccl_driver): Fix last change.
2001-01-25 Kenichi Handa <>
* ccl.h (struct ccl_program): New member suppress_error.
* ccl.c (ccl_driver): If ccl->suppress_error is nonzero, don't
insert error message to the output.
(setup_ccl_program): Initialize ccl->suppress_error to 0.
* coding.h (struct coding_system): New member suppress_error.
* coding.c (ccl_coding_driver): Setup ccl->suppress_error.
(Fset_terminal_coding_system_internal): Set the member
suppress_error to 1.
(Fset_safe_terminal_coding_system_internal): Likewise.
2001-01-24 Stefan Monnier <>
* regex.c (mutually_exclusive_p): Don't blindly handle `charset_not'
as if it was a `charset'.
2001-01-24 Gerd Moellmann <>
* keymap.c (Fwhere_is_internal): Don't nreverse the cached
value in where_is_cache; the next lookup in the cache returns
something bogus if we do.
2001-01-24 Eli Zaretskii <>
* xdisp.c (syms_of_xdisp) <Stool_bar_lines_needed>: Don't defsubr
if HAVE_WINDOW_SYSTEM isn't defined.
2001-01-24 Gerd Moellmann <>
* fns.c (sweep_weak_table): Fix code taking items out of
the hash collision chain. Some cleanup.
* xterm.c (x_new_font): Don't change a tooltip's size.
* xfns.c (x_create_tip_frame): Prevent changing the tooltip's
background color by specifying a color for the default font
in .Xdefaults.
2001-01-24 Kenichi Handa <>
* ccl.c (CCL_READ_CHAR): Change the argument name from r to REG as
a workaround for SunOS 4's cc.
(CCL_CALL_FOR_MAP_INSTRUCTION): Use "if (1)..." not "do {...".
(ccl_driver) <CCL_ReadMultibyteChar2>: Remove unnecessary "do"
2001-01-23 Gerd Moellmann <>
* xterm.c (x_set_window_size_1): New function extracted from
(x_set_window_size): Use it.
(x_set_window_size) [USE_X_TOOLKIT]: Handle case that window
doesn't have a widget, like tooltips.
2001-01-23 Eli Zaretskii <>
* window.c (syms_of_window) <scroll-preserve-screen-position>: Doc fix.
2001-01-23 Kenichi Handa <>
* fns.c (Fset_char_table_default): Fix to make sub char-table
2001-01-22 Gerd Moellmann <>
* xdisp.c (build_desired_tool_bar_string): Make sure we have
a desired tool bar string, even if there are no tool bar items.
* xdisp.c (Ftool_bar_lines_needed): New function.
(syms_of_xdisp): Defsubr it.
* editfns.c (Fformat): Don't extend text properties from arguments
to padding chars in the result.
2001-01-20 Eli Zaretskii <>
* s/msdos.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS.
2001-01-20 Andrew Innes <>
* w32term.c (w32_ring_bell): Only support visible bell on w32 frames.
(w32_initialize): Don't set term hooks that aren't actually needed
in windowed mode.
* xfaces.c (realize_default_face):
(realize_tty_face): Remove references to FRAME_W32_CONSOLE_P.
* xdisp.c (handle_single_display_prop): Remove references to
* dispnew.c (Fredraw_frame): Remove reference to FRAME_W32_CONSOLE_P.
* frame.h (output_method): Remove output_w32_console method.
(FRAME_W32_CONSOLE_P): Remove macro.
* frame.c (Qw32_console): Remove variable.
(Fframep): Remove references to it.
(syms_of_frame): Ditto.
(Fframe_parameters): Remove references to FRAME_W32_CONSOLE_P.
* term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Reinstate original
2001-01-20 Kenichi Handa <>
* editfns.c (Fformat): Use lisp_string_width instead of strwidth.
2001-01-19 Andrew Innes <>
* w32.c (init_environment): Add a version-independent site-lisp
directory to EMACSLOADPATH, after the version dependent one.
2001-01-19 Gerd Moellmann <>
* editfns.c (Fbuffer_substring): Doc fix.
* xdisp.c (message_dolog, message2, message2_nolog):
Rename parameter LEN to NBYTES.
2001-01-19 Kenichi Handa <>
* charset.c (strwidth): Use c_string_width.
(c_string_width): New function.
(lisp_string_width): New arguments PRECISION, NCHARS, NBYTES.
Caller changed.
* charset.h (c_string_width, lisp_string_width): Extern them.
* doprnt.c (doprnt1): Get byte length of Lisp string correctly.
* indent.c (check_composition): Check validity of composition.
* xdisp.c (store_frame_title): Pay attention to width of non-ASCII
characters by calling c_string_width.
(x_consider_frame_title): Get byte length of frame tile string
(display_mode_element): Pay attention to width of non-ASCII
characters by calling strwidth.
2001-01-18 Gerd Moellmann <>
* xfns.c (Qcancel_timer): New variable.
(syms_of_xfns): Initialize and staticpro it.
(Fx_hide_tip, Fx_show_tip): Use it.
(Fx_show_tip): Make sure to set tip_timer to nil when canceling
the timer.
(toplevel): Lisp code for generating parts of syms_of_xfns removed.
* window.c (Fwindow_live_p): Use WINDOW_LIVE_P.
* window.h (WINDOW_LIVE_P): New macro.
* window.c (window_size_fixed): New variable.
(syms_of_window): Add a DEFVAR_BOOL for window-size-fixed, for
the doc string.
* eval.c (specbind): If binding a per-buffer variable which
doesn't have a buffer-local value in the current buffer, change
the global value by changing the value of the symbol bound in all
buffers not having their own value, to make it consistent with
what happens with other buffer-local variables.
* xterm.c (x_initialize): Set char_ins_del_ok to 1.
* xdisp.c (forward_to_next_line_start): Stop at end of buffer
when searching for a newline.
2001-01-18 Kenichi Handa <>
* xdisp.c (display_string): Fix previous change.
2001-01-18 Jason Rumney <>
* w32term.c (x_produce_stretch_glyph): Only use Qspace when
GLYPH_DEBUG is defined.
(x_produce_glyphs): Don't xassert `it->descent > 0'; this isn't
true for images with `:ascent 100'.
(x_set_mouse_face_gc): If the last used mouse face has gone in the
meantime, use face MOUSE_FACE_ID.
If first glyph isn't a character glyph, use the ASCII NUL
character to determine the face.
(expose_area): Do not treat left margin specially.
(note_mode_line_highlight): If no local_map, check global keymap.
(note_mouse_highlight): Initialize overlay.
(clear_mouse_face): Don't return if tip_frame is non-nil.
(show_scroll_bars): Remove unused function.
(w32_read_socket) [WM_KILLFOCUS]: Set help_echo to Qnil.
(x_draw_bar_cursor): Remove extra test for out of bounds cursor.
Clip to row.
(x_erase_phys_cursor): Don't apply XWINDOW to variable that may be nil.
(x_free_frame_resources): Unload relief colors.
2001-01-17 Gerd Moellmann <>
* xdisp.c (forward_to_next_line_start): Avoid calling
get_next_display_element when the newline is already found.
This may change the iterator's position, when its current position is
equal to the iterator's stop_charpos.
* dispnew.c (direct_output_for_insert): If char_ins_del_ok is
zero, use this method only at the end of a line.
* xfaces.c (x_face_list_fonts): Don't BLOCK_INPUT around the
call to x_list_fonts. Call x_list_fonts with SIZE -1 only
* xfaces.c (x_face_list_fonts): Call x_list_fonts with SIZE -1,
so that scalable fonts are included.
* xterm.c (x_list_fonts): Allow scalable fonts if SIZE is < 0,
In the cache, use a key containing the information if scalable
fonts are included.
(x_load_font): Adapt to change of keys in the font cache.
2001-01-17 Kim F. Storm <>
* xfaces.c (x_face_list_fonts): Use x_list_fonts instead of
XListFonts to take advantage of font caching.
* xterm.c (x_list_fonts): Ensure caching font information when
called for a null frame, which is the case frequently when Emacs
2001-01-17 Gerd Moellmann <>
* xfns.c (QCconversion): Replaces QCalgorithm.
* w32fns.c (QCconversion): Replaces QCalgorithm. Update copyright.
* xdisp.c (build_desired_tool_bar_string): Use :conversion instead
of :algorithm.
* xdisp.c (redisplay_tool_bar): Change tool bar's height when
not everything could be displayed.
* line.h, x-list-font.c: Files removed because unused.
2001-01-17 Andrew Innes <>
* dired.c (directory_files_internal): Convert result from readdir
to a unibyte string initially, to avoid possible misinterpretation
of some bytes as the internal form of Emacs characters.
2001-01-17 Kenichi Handa <>
* fns.c (concat): Be sure to avoid putting the same `composition'
property on the adjacent regions.
2001-01-16 Gerd Moellmann <>
* window.c (Fset_window_hscroll): Don't set window's min_hscroll here.
(Fscroll_right, Fscroll_left): Set it here instead, if called
* buffer.c (Fset_buffer_modified_p): Set buffer's
prevent_redisplay_optimizations_p flag.
* dispnew.c, callproc.c, fns.c, keyboard.c, process.c, sunfns.c,
* sysdep.c, vmsproc.c, xselect.c: Call redisplay_preserve_echo_area
with additional arg.
* dispextern.h, lisp.h (redisplay_preserve_echo_area):
Change prototype.
* xdisp.c (redisplay_preserve_echo_area): Add parameter
FROM_WHERE, for debugging.
2001-01-16 Kenichi Handa <>
* ccl.c (Fregister_ccl_program): Handle the return value of
resolve_symbol_ccl_program correctly.
(CCL_Extension): Fix typo (originally CCL_Extention). Caller changed.
2001-01-15 Gerd Moellmann <>
* xterm.c (x_set_mouse_face_gc): If the last used mouse face
has gone in the meantime, use face MOUSE_FACE_ID.
* xterm.c (x_connection_closed) [USE_X_TOOLKIT]:
If x_display_info_for_display returns null, don't try to close
the display; we didn't open it.
* dispnew.c (save_or_restore_current_matrices): Function removed.
(save_current_matrix, restore_current_matrix): New functions.
(adjust_frame_glyphs_for_frame_redisplay): Use them to save and
restore the frame's current matrix. Due to the glyph pointer
setup done in adjust_glyph_matrix, there is no easy way to make
saving the current matrix in the desired matrix generally correct,
so don't try it.
2001-01-15 Kenichi Handa <>
* xdisp.c (insert_left_trunc_glyphs): Overwrite padding glyphs by
truncation glyphs.
(display_line): Optimize for wide characters.
(display_string): Don't try to display a multi-column character
partially. On ttys, produce more than one truncation glyph for
multi-column characters that don't fit on the line.
2001-01-13 Kenichi Handa <>
Define it instead of WORDS_BIGENDIAN. Caller changed.
2001-01-13 Jason Rumney <>
* w32fns.c (Fimage_size, image_ascent, lookup_image)
(xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
(tiff_format, gif_format, gs_format): Adapt to change of image margins.
* w32term.c (x_produce_image_glyph, x_draw_image_foreground)
(x_draw_image_relief, x_draw_image_foreground_1)
(x_draw_image_glyph_string): Adapt to change of image margins.
* w32.c (init_environment, sys_shutdown, sys_pipe): Remove unused
* w32bdf.c (search_file_line, get_cached_font_char)
(cache_char_offset, create_offscreen_bitmap): Remove unused variables.
* w32inevt.c (w32_console_toggle_lock_key): Add parentheses.
* w32fns.c (x_to_w32_color, x_set_icon_name, xlfd_strip_height)
(w32_list_synthesized_fonts, lookup_image, Fx_file_dialog)
(Fw32_send_sys_command): Remove unused variables.
(w32_msg_pump): Add parentheses.
* w32term.c (w32_fill_rect, w32_read_socket, x_bitmap_icon)
(x_new_fontset, x_calc_absolute_position, x_iconify_frame):
Add parentheses.
2001-01-12 Gerd Moellmann <>
* xdisp.c (Vtool_bar_button_margin): Replaces tool_bar_button_margin.
(build_desired_tool_bar_string): Handle Vtool_bar_button_margin
being a pair of margins.
(syms_of_xdisp): Change DEFVAR_INT of tool-bar-button-margins
to DEFVAR_LISP. Extend doc.
* xfns.c (Fimage_size, image_ascent): Adapt to the change of image
(lookup_image): If `:margin MARGIN' is specified, and MARGIN is a
pair of integers `(X . Y)', use X for the horizontal and Y for the
vertical margin.
(parse_image_spec): Check it.
(xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
(tiff_format, gif_format, gs_format):
* xterm.c (x_produce_image_glyph, x_draw_image_foreground)
(x_draw_image_relief, x_draw_image_foreground_1)
(x_draw_image_glyph_string): Adapt to the change of image margins.
* dispextern.h (struct image): Replace member `margin' with
`hmargin' and `vmargin'.
* xdisp.c (Fdump_tool_bar_row) [GLYPH_DEBUG]: Add parameters ROW
* dispnew.c (update_text_area): Put code which decrements the
stop position when the row's face extends to the end of the
line in #if 0.
* xfns.c (x_set_mouse_color): Fix color allocation.
* keyboard.c: Call get_local_map with new argument list.
* intervals.c (get_local_map): Change TYPE to Lisp_Object.
* intervals.h (enum map_property): Removed.
(get_local_map): Change prototype.
* keymap.c: Call get_local_map with new argument list.
(Fwhere_is_internal): Rename parameter XKEYMAP to KEYMAP.
2001-01-11 Gerd Moellmann <>
* xdisp.c (build_desired_tool_bar_string): Correct the computation
of the size needed for the tool bar string. For the last image,
use a `display' property that reaches to the end of the string.
* xselect.c (selection_request_dpyinfo): New variable.
(x_handle_selection_request): Set it.
(x_selection_request_lisp_error): Don't call
x_decline_selection_request if selection request's display has
been closed.
* xfaces.c (x_free_colors, x_free_dpy_colors) [DEBUG_X_COLORS]:
Do the unregister_colors before calling XFreeColors.
2001-01-10 Dave Love <>
* (${etc}DOC): Depend on ${shortlisp} and
${SOME_MACHINE_LISP}, not ${lisp}.
2001-01-10 Gerd Moellmann <>
* xdisp.c (display_line): On ttys, produce more than one truncation
glyph for multi-column characters that don't fit on the line.
* xselect.c (x_reply_selection_request): Add a comment.
* xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and
XkbGetNames instead of XkbGetKeyboard.
2001-01-10 Dave Love <>
* sysdep.c (random): Revert the declaration.
2001-01-09 Gerd Moellmann <>
Call function string_bytes.
(GC_CHECK_STRING_BYTES): Moved here from alloc.c.
(check_sblock, string_bytes) [GC_CHECK_STRING_BYTES]: New functions.
(check_string_bytes) [GC_CHECK_STRING_BYTES]: Add parameter ALL_P.
(allocate_string) [GC_CHECK_STRING_BYTES]: Always check strings in
the current sblock.
(gc_sweep) [GC_CHECK_STRING_BYTES]: Call check_string_bytes
after sweeping strings, and at the end.
(GC_CHECK_STRING_BYTES): Moved to lisp.h.
* alloc.c (Fgarbage_collect): Use a record_unwind_protect to
ensure that pop_message is called.
* keyboard.c (Fexecute_extended_command): Use a
record_unwind_protect to ensure that pop_message is called.
* lisp.h (push_message_unwind): Add prototype.
* xdisp.c (push_message_unwind): New function.
* fileio.c (do_auto_save_unwind): Do the pop_message here
instead of in Fdo_auto_save.
(Fdo_auto_save): Don't call pop_message.
2001-01-08 Ken Raeburn <>
* xfns.c (xpm_load) [!ALLOC_XPM_COLORS]: Declare local variable I
in inner block.
2001-01-08 Gerd Moellmann <>
* window.c (window_scroll_pixel_based): Adjust glyph matrices
when increasing window's vscroll.
* macros.c (Qkbd_macro_termination_hook): New variable.
(syms_of_macros): Initialize and staticpro it.
(pop_kbd_macro): Run kbd-macro-termination-hook.
* xterm.c (XTread_socket) <LeaveNotify>: Set help_echo to nil.
2001-01-07 Dave Love <>
* keyboard.c (Fread_key_sequence_vector): Avoid newline in
arglist, for documentation's sake.
2001-01-06 Andrew Innes <>
* makefile.w32-in (clean): Delete $(COMPILER_TEMP_FILES) instead
of *.pdb.
2001-01-05 Andrew Innes <>
* term.c (update_end): Don't check updating_frame; for some reason
this can be 0 sometimes, such as after dismissing a popup menu,
and isn't necessary given the explicit frame argument.
2001-01-05 Gerd Moellmann <>
* sysdep.c: Don't prototype srandom; it takes an unsigned argument
on some systems, and an unsigned long on others, like FreeBSD 4.1.
2001-01-04 Gerd Moellmann <>
* xterm.c (clear_mouse_face): Don't return if tip_frame is non-nil.
* xfns.c (x_create_tip_frame): Preserve the value of
face_change_count around the creation of the tip frame.
* xfns.c (last_show_tip_args): New variable.
(compute_tip_xy): New function.
(Fx_show_tip): Reuse an existing tip frame, if possible.
(syms_of_xfns): Initialize and staticpro last_show_tip_args.
2001-01-04 Dave Love <>
* editfns.c (Fformat): Doc fix.
* systime.h (set_file_times): Prototype.
* widget.h (EmacsFrameSetCharSize_): Prototype.
* sysdep.c (random, srandom): Declare explicitly.
* dispextern.h (move_it_vertically_backward): Declare.
2001-01-04 Gerd Moellmann <>
* xfns.c (x_create_tip_frame): Call face-set-after-frame-default,
like in Fx_create_frame.
* xfaces.c (set_font_frame_param): Don't do anything for
non-graphical frames.
* window.c (Fdelete_other_windows): Set window's window_end_valid
to nil when changing the window's start. Don't change the
window's start when its top position hasn't changed. If we do,
this will set the window's optional_new_start, which act's like a
force_start during redisplay with C-x 1 M-> under particular
circumstances (see report from Per Starbäck to emacs-pretest-bug
from 2000-12-13.).
2001-01-03 Gerd Moellmann <>
* xdisp.c (forward_to_next_line_start): Reset it->c if taking the
short cut at the start of the function. Add an assertion.
(reseat_at_next_visible_line_start): Add an assertion.
* window.c (Frecenter): When changing the window start, set the
window's window_end_valid to nil.
(Fwindow_end): Fix window-end computation when UPDATE is non-nil.
* dispextern.h (move_it_past_eol): Add prototype.
* xdisp.c (move_it_past_eol): New function.
* window.c (Fwindow_end): Doc fix.
2001-01-03 Dave Love <>
* dired.c (Ffile_attributes): Fix last change, removing BSD4_3 kluge.
2001-01-03 Gerd Moellmann <>
* xdisp.c (try_window_reusing_current_matrix): Fix bug setting
the enabled_p flag of the glyph row at window_end_vpos to 0.
(handle_single_display_prop): Fix last change.
2001-01-02 Richard M. Stallman <>
* window.c (Frecenter): Doc fix.
2001-01-02 Andrew Innes <>
* term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Remove redefinition.
* frame.h (output_method): Add output_w32_console method.
(FRAME_W32_CONSOLE_P): New macro.
* frame.c (make_terminal_frame) [WINDOWSNT]: Make terminal frames
use output_w32_console method.
(Qw32_console): New Lisp_Object.
(Fframep): Return it.
(syms_of_frame): Init it.
(Fframe_parameters): Report w32console as font for w32_console frames.
* xfaces.c (realize_default_face): Set face foreground and
background to unspecified for w32_console frames.
(realize_face): Realize face cache for w32_console frames.
(realize_tty_face): Accept w32_console frames.
* xdisp.c (handle_single_display_prop): Return if frame is w32_console.
(init_iterator) [WINDOWSNT]: Initialize frame face cache if
necessary, even if running interactively.
* dispnew.c (Fredraw_frame): Call set_terminal_modes for
w32_console frames.
* w32term.c (x_update_begin):
(w32_frame_raise_lower): Do nothing if not w32 frame.
* w32xfns.c (get_frame_dc): Abort if called on a non-w32 frame.
* w32fns.c (Fx_display_color_cells): Determine correct value, when
system doesn't tell us directly.
(Fx_display_visual_class): Implement properly.
2001-01-02 Gerd Moellmann <>
* window.c (Frecenter): Handle centering in graphical frames
specially. Centering on the basis of line counts doesn't work
reliably with variable-height lines.
2001-01-02 Eli Zaretskii <>
* widget.c (EmacsFrameSetCharSize): Remove unused variables `ac'
and al[].
* composite.c (run_composition_function): Remove unused var `val'.
(update_compositions): Remove unused variable `hook'.
* intervals.c (get_local_map): Remove unused variable `tem'.
* doprnt.c (doprnt1): Remove unused variable `size'.
* fns.c (Flength): Remove unused variable `tail'.
(Fdelete): Remove unused variable `size'.
* editfns.c (Ftranspose_regions): Remove unused variables `gcpro1'
and `gcpro2'.
* doc.c (Fsnarf_documentation): Remove unused vars `fun' and `tem'.
* data.c (find_symbol_value): Remove extra 3rd argument in the
call to swap_in_symval_forwarding.
* undo.c (Fprimitive_undo): Remove unused block-scope variable `end'.
* search.c (shrink_regexp_cache): Remove unused variable `cpp'.
(trivial_regexp_p): Remove unused variable `c'.
(boyer_moore): Remove unused variable `k'.
* indent.c (current_column): Remove unused variable `stopchar'.
(Fcompute_motion): Remove unused variable `contin'.
* casefiddle.c (casify_object): Remove unused variable `tolen'.
* dired.c (directory_files_internal): Fix a typo in a comment.
Remove an unused variable `handler'.
(file_name_completion): Remove unused function-scope variable `dp'.
(Ffile_attributes) <dirname, sdir>: Make declarations conditioned
on BSD4_2.
* fileio.c (e_write): Remove unused variable `require_encoding_p'.
* marker.c (Fmarker_position): Remove unused variables `pos', `i',
and `buf'.
(Fmarker_insertion_type): Remove unused variable `buf'.
* insdel.c (make_gap): Remove unused variable `result'.
* keyboard.c (record_char): Remove unused function-scope var `help'.
(kbd_buffer_get_event): Remove unused block-scope variable `idx'.
(menu_bar_items): Remove unused function-scope variable `tem'.
* fontset.c (fontset_ref): Remove unused variable `i'.
(fontset_set): Remove unused variables `j' and `tmp'.
(make_fontset): Remove unused variables `i', `j', `elt' and `base_elt'.
(make_fontset_for_ascii_face): Remove unused variable `name'.
(fs_load_font): Remove unused variable `font_idx'.
(fs_query_fontset): Remove unused function-local variable `fontset'.
(list_fontsets): Remove unused variable `tail'.
(Fnew_fontset): Remove unused variables `family' and `registry'.
(accumulate_font_info): Remove unused variable `tmp'.
(Ffontset_font): Remove unused variable `id'.
(syms_of_fontset): Remove unused variable `i'.
* xfns.c (x_display_info_for_name): Cast 0 to "char *" in the call
to x_term_init.
(lookup_image): Remove unused variable `file'.
(xbm_load): Remove unused variables `bitmap_data', `height', and
`width'. Remove function-local variable `i', leave the
block-local one.
(gif_load): Remove unused variable `inc'.
* xterm.c (XTread_socket): Remove unused variables `p' and `pend'.
(XTread_socket) <LeaveNotify>: Remove unused variable `frame',
leave only the one in the inner block.
* xfaces.c (face_fontset, realize_default_face): Remove unused
variable `fontset'.
(face_at_buffer_position): Remove unused variable `multibyte_p'.
* term.c (encode_terminal_code): Remove unused variable `c'.
* ccl.c (Fccl_execute): Cast ccl_driver parameters to `unsigned
char *' instead of `char *'.
* category.c (Fcategory_docstring): Remove unused variable `doc'.
(Fget_unused_category): Remove unused variable `docstring_vector'.
(Fchar_category_set): Remove unused variables `val', `charset',
`c1' and `c2'.
* coding.c (detect_coding_iso2022, setup_coding_system):
Remove unused variable `i'.
(detect_coding_mask): Remove unused variable `idx'.
(detect_coding): Remove unused variable `i'.
(ccl_coding_driver): Remove unused variable `result'.
(run_pre_post_conversion_on_str): Remove unused variable `prev'.
(decode_coding_string): Remove unused variables `to' and `gcpro1'.
(encode_coding_string): Remove unused variables `gcpro1' and
(Ffind_coding_systems_region_internal): Remove function-local
variable args[], leave only the block-local one.
(code_convert_region1): Remove unused variable `len'.
* charset.c (char_printable_p): Remove unused variable `chars'.
(Fsplit_char, Fchar_bytes): Remove unused variable `val'.
(str_to_multibyte): Remove unused variable `c'.
* window.c (size_window): Remove block-local variable `min_size'.
* xdisp.c (make_cursor_line_fully_visible): Remove unused variable
(append_space, extend_face_to_end_of_line): Declare `saved_what'
enum display_element_type.
2001-01-02 Gerd Moellmann <>
* xterm.c (x_connection_closed): Catch X errors around all
statements that call X. Save away the error message in a local copy.
* xterm.c (x_connection_closed): Set handling_signal to 0 at
the start.
* xdisp.c (pos_visible_p): Take into account that CHARPOS maybe
in or at the start of invisible text.
* dispnew.c (update_window): Don't check_current_matrix_flags.
2001-01-01 Jason Rumney <>
* w32fns.c (x_figure_window_size): Do not allow new_height and
new_width of frame to override specified values.
2000-12-30 Kenichi Handa <>
* composite.c (find_composition): Fix a code for searching backward.
2000-12-29 Gerd Moellmann <>
* dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New function.
(update_window) [GLYPH_DEBUG]: Call it.
(scrolling_window): Prevent including current rows which are below
what's displayed in the window.
* xdisp.c (try_window_reusing_current_matrix)
<new start <= old start>: Disable rows in the current matrix
which are below the window after scrolling.
* xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
is zero. It's not worth the complexity.
(invisible_text_between_p): Put in #if 0 because unused.
2000-12-28 Gerd Moellmann <>
* xfns.c (Fx_backspace_delete_keys_p): Check library and server
XKB versions. Call XkbFreeKeyboard with 2nd arg 0.
* keyboard.c (echo_char): If C is an integer, always call
push_key_description. Former code could signal an invalid
character error.
* keymap.c (push_key_description): Add parameter FORCE_MULTIBYTE.
If set, print multibyte text.
(Fsingle_key_description): Call push_key_description with
(describe_buffer_bindings): Likewise.
* lisp.h (push_key_description): Add prototype.
* xdisp.c (echo_area_display): Bind redisplay-dont-pause to t
around the call to redisplay_internal.
* xfns.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
* dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
2000-12-28 Kenichi Handa <>
* ccl.c (CCL_WRITE_CHAR): Check variable `extra_bytes'.
(ccl_driver): New local variable `extra_bytes'.
* ccl.h (struct ccl_spec): New member eight_bit_carryover.
* coding.c (setup_coding_system):
Initialize coding->spec.ccl.eight_bit_carryover.
(ccl_coding_driver): Pay attention to carried over 8-bit bytes.
2000-12-28 Kenichi Handa <>
* coding.c (SAFE_ONE_MORE_BYTE): New macro.
(decode_composition_emacs_mule): New function.
(decode_coding_emacs_mule): Decode composition sequence by calling
(encode_coding_emacs_mule): Changed from macro to function.
If a text contains compositions, encode them correctly.
(setup_coding_system): Set coding->commong_flags for emacs-mule so
that decoding and encoding are required.
2000-12-27 Gerd Moellmann <>
* xfaces.c (PT_PER_INCH): New macro.
(xlfd_point_size): Compute real point size from font's pixel size.
(pixel_point_size, build_scalable_font_name): Use PT_PER_INCH
instead of 72.
* .gdbinit: Comment out the line pointing to the Lesstif source
* window.c (Frecenter): Use displayed_window_lines instead
of window_internal_height.
* xterm.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
instead of x-toolkit-scroll-bars-p.
(Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
* w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
instead of x-toolkit-scroll-bars-p.
(Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
* dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New.
(redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]:
New variables.
(add_window_display_history, add_frame_display_history)
(Fdump_redisplay_history) [GLYPH_DEBUG]: New functions.
(build_frame_matrix_from_leaf_window): Remove unused code.
(build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to
redisplay history.
(update_frame) [GLYPH_DEBUG]: Add to redisplay history.
(update_window) [GLYPH_DEBUG]: Likewise.
(syms_of_display): Defsubr dump-redisplay-history.
2000-12-23 Gerd Moellmann <>
* keyboard.c (echo_prompt): Always set current_kboard->echoptr to
the end of the prompt. Set echo_after_prompt to the offset
of echoptr in echobuf.
* xdisp.c (init_from_display_pos): Pop until the iterator's
stack is empty; there may be frames for stretch or images
on the stack.
* dispnew.c (save_frame_matrix, restore_frame_matrix): Removed.
(save_or_restore_current_matrix): New function for the same
purpose, but more efficient.
(adjust_frame_glyphs_for_frame_redisplay): Use it.
2000-12-23 Eli Zaretskii <>
* xdisp.c (syms_of_xdisp): Fix last change.
2000-12-23 Gerd Moellmann <>
* xdisp.c (syms_of_xdisp): Doc fix.
* xdisp.c (redisplay_window): Remove label restore_buffers;
use finish_scroll_bars instead to make sure that scroll bars
are redeemed. If we don't do this, flickering can result from
scroll bars being destroyed and recreated.
2000-12-22 Jason Rumney <>
* w32term.c (w32_draw_bitmap): Fix drawing so it does not appear
in the wrong colors when the foreground is not black.
(expose_window): Don't redraw the window that's currently being
2000-12-22 Gerd Moellmann <>
* window.c (size_window): When setting the window's too_small_ok
flag, compare old size with minimum size depending on WIDTH_P,
don't compare with window_min_width.
* window.c (delete_window): Simplify somewhat.
(Fset_window_configuration): Don't SET_FRAME_GARBAGED after
freeing window matrices. The flag windows_or_buffers_changed is
set, so the next redisplay will consider all windows; this should
2000-12-22 Kenichi Handa <>
* coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
* ccl.h (struct ccl_program): New member cr_consumed.
* ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
(CCL_READ_CHAR): Handle EOL conversion here.
(ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
2000-12-21 Gerd Moellmann <>
* xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg GLYPHS.
* dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths,
otherwise tabs of different size compare equal.
* callint.c (Fcall_interactively): Prevent a compiler warning.
* print.c (print_unwind): Return nil.
(PRINTDECLARE): Initialize all local variables.
(print_preprocess): Add a default case.
* lisp.h (Qinhibit_point_motion_hooks): Declare extern.
* undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t.
* window.c (delete_window, Fsplit_window)
(Fset_window_configuration): Calls to ensure_frame_matrix removed.
* dispextern.h (ensure_frame_matrix): Function declaration removed.
* dispnew.c (ensure_frame_matrix): Removed.
(save_frame_matrix, restore_frame_matrix): New functions.
(adjust_frame_glyphs_for_frame_redisplay): Use them.
* xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix)
[GLYPH_DEBUG]: Extended to dump glyphs in short form.
2000-12-21 Andrew Innes <>
* w32term.c (x_update_begin): Regenerate the palette here, rather
than for each window.
* w32xfns.c (select_palette): Avoid calling SelectPalette if
palette is NULL, since this corrupts memory! Also get
display_info reference from frame.
2000-12-21 Jason Rumney <>
* w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
* w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
to avoid returning without releasing it.
2000-12-21 Kenichi Handa <>
* keymap.c (push_key_description): Don't convert eight-bit-control
and eight-bit-graphic to multibyte character.
* charset.c (Fmake_char_internal): If CHARSET doesn't have a
generic character and CODE1 is nil, return the smallest character
2000-12-20 Dave Love <>
* s/osf5-0.h (NSIG): Don't redefine.
2000-12-20 Stefan Monnier <>
* keymap.c (where_is_internal): Check ascii_sequence_p rather than
excluding menu-bar and tool-bar.
(Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
(menu_item_p): Remove.
(where_is_internal_1): Don't ignore menu-items.
2000-12-20 Gerd Moellmann <>
* xdisp.c (hscroll_window_tree): Take window's min_hscroll
into account.
* window.c (make_window): Initialize window's min_hscroll.
(Fset_window_hscroll): Set window's hscroll and min_hscroll.
(set_window_buffer, temp_output_buffer_show): Set min_hscroll
to zero.
(struct saved_window): New member min_hscroll.
(Fset_window_configuration): Set window's min_hscroll.
(save_window_save): Save window's min_hscroll.
(compare_window_configurations): Compare min_hscroll values.
* window.h (struct window): New member min_hscroll.
* keyboard.c (echo_prompt): Prevent a compiler warning.
* xdisp.c (try_cursor_movement): Fix last change. The real
condition is that PT is at the end of the row, and should
be displayed at the start of the next row.
* xdisp.c (try_cursor_movement): If we end on a partially
visible line, end we already decided to scroll, return -1.
* dispextern.h (ensure_frame_matrix): Add prototype.
* window.c (delete_window, Fsplit_window)
(Fset_window_configuration): Call ensure_frame_matrix.
* dispnew.c (fake_current_matrices, ensure_frame_matrix):
New functions.
(adjust_frame_glyphs_for_frame_redisplay): If display has been
completed, call fake_current_matrices instead of marking frame
2000-12-20 Jason Rumney <>
* w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
2000-12-19 Eli Zaretskii <>
* fns.c (Frequire): Doc fix.
2000-12-19 Gerd Moellmann <>
* window.c (window_scroll_pixel_based): Don't use move_it_vertically.
* dispnew.c (direct_output_for_insert): Fix check for mini-window
currently displaying a message.
* bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
(Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
2000-12-18 Andrew Innes <>
* w32.c (w32_strerror): New function.
* w32.h (w32_strerror): New extern.
* w32fns.c (Fw32_shell_execute): Use it.
2000-12-18 Gerd Moellmann <>
* s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
2000-12-18 Eli Zaretskii <>
* msdos.c (IT_set_face): Obey inverse_video.
2000-12-18 Kenichi Handa <>
* dired.c (directory_files_internal): Always return decoded filenames.
2000-12-18 Gerd Moellmann <>
* xterm.c (x_connection_closed): Prevent being called recursively
because of an error condition in XtCloseDisplay.
* xdisp.c (init_iterator): If noninteractive, and the frame's
face cache is null, make one.
* xfns.c (show_busy_cursor): Check for live frames more thoroughly.
* process.c (wait_reading_process_input): Check for pending
input when running timers.
2000-12-18 Eli Zaretskii <>
* msdos.c (IT_write_glyphs): Compute the glyph face from str->face_id.
2000-12-18 Kenichi Handa <>
* process.c (read_process_output): Don't run a filter if the code
decoder produces nothing but carryover.
2000-12-17 Andrew Innes <>
* w32.c (sys_rename): Only check errno against EEXIST, and not
EACCES, when determining whether rename failed because the target
exists. This was resulting in indefinite looping on Windows 9x if
the source file was locked by another process.
* w32fns.c (Ffile_system_info): New function.
(syms_of_w32fns): Defsubr it.
2000-12-17 Gerd Moellmann <>
* window.c (coordinates_in_window): Fix computation for
position on vertical line between mode lines.
* xfns.c (unwind_create_frame): Return t if frame was deleted.
Don't alter tip_frame or tip_window.
(unwind_create_tip_frame): Set tip_frame to nil only if frame
was deleted.
* w32fns.c (unwind_create_frame): Return t if frame was deleted.
Don't alter tip_frame or tip_window.
(unwind_create_tip_frame): Set tip_frame to nil only if frame
was deleted.
2000-12-16 Eli Zaretskii <>
* fileio.c (Fcopy_file): Rename the last argument to keep_time, to
be consistent with the doc string. Reported by NAKAJIMA Mikio
2000-12-16 Kenichi Handa <>
* xfaces.c (Vface_ignored_fonts): New variable.
(x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
(syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
2000-12-15 Gerd Moellmann <>
* dispnew.c (update_window): Detect pending input every nth line
updated, i.e. do it depending on real work done, and not on the
vpos of the line.
* xterm.c (expose_window): Don't redraw the window that's
currently being updated.
* window.c (Fset_window_point): Remove test for
* lread.c (read1): Recognize end of file after `\\'.
* xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
not unwind_create_frame.
2000-12-15 Dave Love <>
* s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
bcopy & al.
* s/irix6-5.h: #undef bcopy & al here. Include strings.h.
2000-12-15 Kenichi Handa <>
* coding.c (setup_coding_system): Clear all members of the struct
coding_system at first.
(detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
(code_convert_region): Don't override coding->src_multibyte and
* fns.c (Fmd5): Docstring improved.
2000-12-15 Miles Bader <>
* xdisp.c (window_box_height): Only use mode-line glyph-rows that
are actually marked as mode-lines; otherwise use
2000-12-14 Gerd Moellmann <>
* editfns.c (Fformat): Prevent a buffer overrun when the format
specifies a precision.
2000-12-14 Eli Zaretskii <>
* msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
argument is outside the range [2..3].
2000-12-14 Andrew Innes <>
* w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
nothing to do. Bind inhibit-quit.
(tip_frame): Make it a Lisp_Object.
(x_create_tip_frame): Set tip_frame after it has been added to
(Fx_show_tip): Don't set tip_frame here.
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New variables.
(unwind_create_frame, unwind_create_tip_frame): New functions.
(Fx_create_frame, x_create_tip_frame): Handle errors signaled
while a frame is only partially constructed.
* w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
(x_free_frame_resources): New function.
(x_destroy_window): Use it.
2000-12-14 Gerd Moellmann <>
* xfns.c (Fx_backspace_delete_keys_p): New function.
(syms_of_xfns): Defsubr it.
2000-12-14 Kenichi Handa <>
* keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
Always store string in multibyte representation in echobuf.
(echo_char): Always store string in multibyte representation in
(echo_now): Call message2_nolog with the arg MULTIBYTE 1.
(read_key_sequence): Adjusted for the change of echo_prompt.
* fns.c (Fmd5): Docstring improved.
* lisp.h (detect_coding_system): Prototype adjusted.
* coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
(detect_coding_emacs_mule, detect_coding_iso2022)
(detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
(detect_coding_utf_16, detect_coding_ccl): Make them static.
New argument MULTIBYTEP. Callers changed.
(detect_coding_mask, detect_coding_system): New argument
MULTIBYTEP. Callers changed.
(decode_coding_string): Set coding->src_multibyte and
coding->dst_multibyte before calling detect_coding and detect_eol.
Update them after some coding system is detected.
2000-12-13 Stefan Monnier <>
* keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
* keyboard.c (menu_bar_items, tool_bar_items):
Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
2000-12-13 Gerd Moellmann <>
* xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
New variables.
(unwind_create_frame, unwind_create_tip_frame): New functions.