2001-10-20 Gerd Moellmann * (Version 21.1 released.) 2001-10-20 Pavel Jan,Bm(Bk * 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 change_line_highlight_hook. (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 anymore: * 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 `chars_wasted'. (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 `clear_end_of_line_raw'. (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]. (DOC_STRINGS_IN_COMMENTS): Macro removed. * 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 *scratch*. 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_AS_LVALUE, XCDR_AS_LVALUE): Rename from old XCAR, XCDR. (XCAR, XCDR): Apply LISP_MAKE_RVALUE to the _AS_LVALUE versions. (XSETCAR, XSETCDR): New macros. (XSETCARFASTINT, XSETCDRFASTINT): New macros. (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR): New macros. * keyboard.h (POSN_BUFFER_SET_POSN): New macro. * alloc.c (Fcons, pure_cons, Fgarbage_collect): Use XSETCAR and XSETCDR. (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): Likewise. * 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): Likewise. * w32term.c (x_delete_display): Likewise. * xfaces.c (remove_duplicates, Finternal_set_lisp_face_attribute): Likewise. * 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 CHECK_NUMBER_CDR. (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 CHECK_NUMBER_CDR. * 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. * lread.c (Fload): Use XSETCARFASTINT and XSETCDRFASTINT. (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,Bm(Bk * buffer.c: Put doc strings in comments. * sound.c: Include also on systems without . 2001-10-15 Sam Steingold * fns.c (Vafter_load_alist): Declare extern (w32 build problem). 2001-10-15 Pavel Jan,Bm(Bk * 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,Bm(Bk * 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,Bm(Bk * 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 TEXT_PROP_MEANS_INVISIBLE. * 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. * intervals.h (TEXT_PROP_MEANS_INVISIBLE_WITH_ELLIPSIS) (TEXT_PROP_MEANS_INVISIBLE_NOELLIPSIS, invisible_noellipsis_p) (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): Use new retval of TEXT_PROP_MEANS_INVISIBLE. 2001-10-14 Pavel Jan,Bm(Bk * lisp.h (Ftop_level): Add prototype. * xterm.c: (xlwmenu_window_p, xlwmenu_redisplay): Add prototypes. (XTread_socket): Improve style of comments to follow other comments. * 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 * lisp.h (DEFUN, DEFVAR_LISP, ...) [DOC_STRINGS_IN_COMMENTS]: 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) : 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. (DOLIST, LOOP_PROPVAL): New macros. (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) : Update docstring. * print.c (Fwith_output_to_temp_buffer): Align with internal_with_output_to_temp_buffer. (print_preprocess): Use traverse_intervals_noorder. (print_object): Update call to traverse_intervals. * intervals.h (TEXT_PROP_MEANS_INVISIBLE_NOELLIPSIS): New macro. (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 account. 2001-10-12 Eli Zaretskii * lread.c (syms_of_lread) : Fix last change: multi-line strings without a trailing "\n\". 2001-10-12 Pavel Jan,Bm(Bk * floatfns.c: float_error() is defined iff FLOAT_CATCH_SIGILL is defined. 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. (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE) (SETUP_SYNTAX_TABLE, SETUP_SYNTAX_TABLE_FOR_OBJECT): Update to the 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 * Makefile.in (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,Bm(Bk * 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,Bm(Bk * 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. * Makefile.in: Fix typo. * README: Remove obsolete part mentioning removed VMS file. 2001-10-07 Miles Bader * Makefile.in (lisp, shortlisp): Add `button.elc'. 2001-10-07 Ken Raeburn * minibuf.c (Fminibuffer_prompt_end): Don't apply make_number to a Lisp_Object. * 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. * floatfns.c (FLOAT_TO_INT2, FLOAT_TO_INT): Use FIXNUM_OVERFLOW_P. * dired.c (Ffile_attributes): Use FIXNUM_OVERFLOW_P. * bytecode.c (syms_of_bytecode) [BYTE_CODE_METER]: Doc fix. (METER_CODE, Fbyte_code): Use MOST_POSITIVE_FIXNUM. * 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 most-negative-fixnum. * lisp.h (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM) (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 Francois 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 `defconst'.) 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'. (SYMBOL_INTERNED_P, SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P) (SYMBOL_CONSTANT_P, SYMBOL_VALUE, SET_SYMBOL_VALUE): New macros. (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 bit-fields. (init_obarray): Likewise for t and nil. * eval.c: Use SYMBOL_VALUE/SET_SYMBOL_VALUE. (Fdefvaralias): New function. (specbind): Simplify the test if symbol is a constant. (syms_of_eval): Defsubr Fdefvaralias. * data.c: Use SYMBOL_VALUE/SET_SYMBOL_VALUE. (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 Sindirect_variable. * bytecode.c (Fbyte_code) : Use SYMBOL_VALUE. (Fbyte_code) : 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-existant 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 string. * dispextern.h (struct glyph_row) : 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) : Doc fix. 2001-09-28 Pavel Jan,Bm(Bk * 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 * Makefile.in (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_window_redisplay) (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 here. 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. * Makefile.in (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 * Makefile.in (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. (recursive_edit_unwind): Set kboard state according to SINGLE-KBOARD. * 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 * buffer.h (BUF_COMPUTE_UNCHANGED): Use BUF_MODIFF and BUF_OVERLAY_MODIFF instead of MODIFF and OVERLAY_MODIFF. * 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 stack. * 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 `format'. 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 output. * 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) : 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) : When on a string that doesn't have mouse-face, look ``under'' the string for mouse-face from an overlay. (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) : 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 glyphs. * 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 unconditionally. 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 menu_face_changed_p. * 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 . * xdisp.c (move_it_by_lines) : 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 interrupt_input_blocked. 2001-08-13 Gerd Moellmann * xdisp.c (move_it_by_lines) : 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) : Doc fix. 2001-08-10 Eli Zaretskii * keyboard.c (syms_of_keyboard) : 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,Bm(Bk * 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 message. (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 resize_echo_area_exactly. * 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 decoding ends with CODING_FINISH_INSUFFICIENT_SRC. 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 * keyboard.c (KBD_BUFFER_SIZE) [!HAVE_WINDOW_SYSTEM]: 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) : 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 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. * Makefile.in (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 and syssignal.h. * sound.c (vox_configure, vox_close): Turn off atimers around ioctls. 2001-06-26 Gerd Moellmann * keyboard.c (read_char) : Record the previous idle start time before calling timer_stop_idle. (read_char) : 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 display_ellipsis_p. 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) : 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 substitute-in-file-name. 2001-05-31 Gerd Moellmann * Makefile.in (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 IMAGE_STRING_OR_NIL_VALUE. (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 CODING_FINISH_INCONSISTENT_EOL. 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 of CCL_STAT_INVALID_CMD. 2001-05-14 Stefan Monnier * eval.c (Fdefvar): Only record (defvar ) in the load-history in 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) : 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 GET_HEX_VAL. * 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 window_end_vpos. * 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 * lisp.h (GLYPH_CHAR_VALID_P): Use CHAR_VALID_P. 2001-05-09 Dave Love * xdisp.c (GIVE_UP): Fix for K&R C. 2001-05-09 Gerd Moellmann * print.c (syms_of_print) : 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) [!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) [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 removed. (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) : 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) : 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_default_face_p. (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) : Warn that it is deprecated. 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 calcuation. 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) : 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 with TEXT_PROP_MEANS_INVISIBLE instead of NILP. * xdisp.c (redisplay_internal) : 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. Compute BUF_UNCHANGED_MODIFIED, BUF_OVERLAY_UNCHANGED_MODIFIED, BUF_BEG_UNCHANGED, BUF_END_UNCHANGED. (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) : 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 DRAW is DRAW_IMAGE_RAISED. 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 signature. * 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) : Remove workaround code for LessTif; it doesn't work anymore. * xterm.c [USE_TOOLKIT_SCROLL_BARS && USE_MOTIF]: Don't include Xm/ScrollBarP.h. * 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) : 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) : 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) : 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) : 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) : 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) : 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 Lisp_Object. 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. (enum mem_type): Add MEM_TYPE_PROCESS, MEM_TYPE_HASH_TABLE, MEM_TYPE_FRAME, MEM_TYPE_WINDOW enumerators. (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) : Use CCL_WRITE_MULTIBYTE_CHAR instead of CCL_WRITE_CHAR. : 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. (accessible_keymaps_char_table): Obey `is_metized'. (where_is_internal, Fwhere_is_internal): Don't confuse int and Lisp_Object. 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 * Makefile.in (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 safe_run_hooks. 2001-02-22 Andrew Innes * makefile.nt ($(BLD)\dired.obj): Remove reference to VMS header files. ($(BLD)\dispnew.obj): ($(BLD)\editfns.obj): ($(BLD)\fileio.obj): ($(BLD)\filelock.obj): ($(BLD)\keyboard.obj): ($(BLD)\w32proc.obj): ($(BLD)\process.obj): ($(BLD)\sysdep.obj): Ditto. * makefile.w32-in ($(BLD)/dired.$(O)): Remove reference to VMS header files. ($(BLD)/dispnew.$(O)): ($(BLD)/editfns.$(O)): ($(BLD)/fileio.$(O)): ($(BLD)/filelock.$(O)): ($(BLD)/keyboard.$(O)): ($(BLD)/w32proc.$(O)): ($(BLD)/process.$(O)): ($(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 safe_run_hooks. * xdisp.c (update_menu_bar): Run activate-menu-bar-hook with safe_run_hooks. * emacs.c (malloc_initialize_hook): Handle case thet `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 eight-bit-graphic. 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) : 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) : 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 str_to_multibyte. 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. (LFACEP): Use AREF. (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. (xm_set_menu_resources_from_menu_face) (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 minibuffer-only, 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 Qright_bitmap_area. (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): Use DEFAULT_TOOL_BAR_BUTTON_MARGIN and DEFAULT_TOOL_BAR_BUTTON_RELIEF. * dispextern.h (Vtool_bar_button_margin:): Declare extern. (DEFAULT_TOOL_BAR_BUTTON_MARGIN, DEFAULT_TOOL_BAR_BUTTON_RELIEF) (DEFAULT_TOOL_BAR_IMAGE_HEIGHT): New defines. * xfns.c (Fx_create_frame): Add the tool bar height to the frame height. 2001-01-30 Dave Love * bytecode.c (Fbyte_code) : Add BEFORE_POTENTIAL_GC and AFTER_POTENTIAL_GC. 2001-01-29 Gerd Moellmann * bytecode.c (Fbyte_code) : Add BEFORE_POTENTIAL_GC and AFTER_POTENTIAL_GC. 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 FONTANME. New argument FORCE if nonzero cancel that feature. (fontset_font_pattern): Call font_family_registry with FORCE 1 for a signle 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 XClearArea. * 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 (sturct 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) : 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_SUCCESS, CCL_SUSPEND, CCL_INVALID_CMD): Likewise. (ccl_driver) : Remove unnecessay "do" statement. 2001-01-23 Gerd Moellmann * xterm.c (x_set_window_size_1): New function extracted from x_set_window_size. (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) : Doc fix. 2001-01-23 Kenichi Handa * fns.c (Fset_char_table_default): Fix to make sub char-table correctly. 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_face): (realize_tty_face): Remove references to FRAME_W32_CONSOLE_P. * xdisp.c (handle_single_display_prop): Remove references to FRAME_W32_CONSOLE_P. * 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 redefinition. 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 correctly. (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 if SCALABLE_FONTS_P is set. * 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 starts. 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 interactively. * 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 * md5.c (WORDS_BIG_ENDIAN) [__BYTE_ORDER == __BIG_ENDIAN]: Define it instead of WORDS_BIGENDIAN. Caller changed. 2001-01-13 Jason Rumney * w32fns.c (Fimage_size, image_ascent, lookup_image) (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, parse_image_spec) (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 variables. * 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 margins. (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. (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR): New enumerator. (parse_image_spec): Check it. (xbm_format, xpm_format, pbm_format, png_format, jpeg_format) (tiff_format, gif_format, gs_format): Use IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR for :margin. * 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 and GLYPHS. * 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 li