2001-10-20 Gerd Moellmann * Version 21.1 released. 2001-10-19 Richard M. Stallman * eval.c (syms_of_eval): Doc fixes. 2001-10-19 Miles Bader * 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-19 Gerd Moellmann * xdisp.c (redisplay_internal): Don't clear echo area if the mini-window is selected. 2001-10-18 Ken Raeburn * config.in (HAVE_LIBHESIOD, HAVE_LIBK5CRYPTO): Undef these. 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. * fontset.h (struct font_info) [WINDOWSNT]: Add codepage field. * w32fns.c (w32_load_system_font): Cache codepage in font_info. * 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-18 Gerd Moellmann * xdisp.c (display_line): Indicate empty lines in active mini-window. 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 (display_line): Don't indicate empty lines in mini-windows. 2001-10-15 Pavel Jan,Bm(Bk * editfns.c (Fchar_to_string): Make the doc string consistent with arguments. 2001-10-15 Gerd Moellmann * window.c (select_window_1): Unfreeze window start. Remove a doubled test for WINDOW being live. * xterm.c (x_draw_glyph_string): Restore clipping after drawing box. 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-10 Gerd Moellmann * s/osf5-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Add `-nointrinsics' options. From Dave Love . 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 Gerd Moellmann * sysdep.c (child_setup_tty) [HAVE_TERMIO || HAVE_TERMIOS]: Clear ICRNL and INLCR. From Daiki Ueno . 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-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 list. * intervals.c (get_local_map): Change TYPE to Lisp_Object. * intervals.h (enum map_property): Removed. (get_local_map): Change prototype. * keymap.c: Call get_local_map with new argument list. (Fwhere_is_internal): Rename parameter XKEYMAP to KEYMAP. 2001-01-11 Gerd Moellmann * xdisp.c (build_desired_tool_bar_string): Correct the computation of the size needed for the tool bar string. For the last image, use a `display' property that reaches to the end of the string. * xselect.c (selection_request_dpyinfo): New variable. (x_handle_selection_request): Set it. (x_selection_request_lisp_error): Don't call x_decline_selection_request if selection request's display has been closed. * xfaces.c (x_free_colors, x_free_dpy_colors) [DEBUG_X_COLORS]: Do the unregister_colors before calling XFreeColors. 2001-01-10 Dave Love * Makefile.in (${etc}DOC): Depend on ${shortlisp} and ${SOME_MACHINE_LISP}, not ${lisp}. 2001-01-10 Gerd Moellmann * xdisp.c (display_line): On ttys, produce more than one truncation glyph for multi-column characters that don't fit on the line. * xselect.c (x_reply_selection_request): Add a comment. * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and XkbGetNames instead of XkbGetKeyboard. 2001-01-10 Dave Love * sysdep.c (random): Revert the declaration. 2001-01-09 Gerd Moellmann * lisp.h (STRING_BYTES) [GC_CHECK_STRING_BYTES]: Call function string_bytes. (GC_CHECK_STRING_BYTES): Moved here from alloc.c. * alloc.c (CHECK_STRING_BYTES) [GC_CHECK_STRING_BYTES]: New macro. (check_sblock, string_bytes) [GC_CHECK_STRING_BYTES]: New functions. (check_string_bytes) [GC_CHECK_STRING_BYTES]: Add parameter ALL_P. (allocate_string) [GC_CHECK_STRING_BYTES]: Always check strings in the current sblock. (mark_object) [GC_CHECK_STRING_BYTES]: Use CHECK_STRING_BYTES. (gc_sweep) [GC_CHECK_STRING_BYTES]: Call check_string_bytes after sweeping strings, and at the end. (GC_CHECK_STRING_BYTES): Moved to lisp.h. * alloc.c (Fgarbage_collect): Use a record_unwind_protect to ensure that pop_message is called. * keyboard.c (Fexecute_extended_command): Use a record_unwind_protect to ensure that pop_message is called. * lisp.h (push_message_unwind): Add prototype. * xdisp.c (push_message_unwind): New function. * fileio.c (do_auto_save_unwind): Do the pop_message here instead of in Fdo_auto_save. (Fdo_auto_save): Don't call pop_message. 2001-01-08 Ken Raeburn * xfns.c (xpm_load) [!ALLOC_XPM_COLORS]: Declare local variable I in inner block. 2001-01-08 Gerd Moellmann * window.c (window_scroll_pixel_based): Adjust glyph matrices when increasing window's vscroll. * macros.c (Qkbd_macro_termination_hook): New variable. (syms_of_macros): Initialize and staticpro it. (pop_kbd_macro): Run kbd-macro-termination-hook. * xterm.c (XTread_socket) : Set help_echo to nil. 2001-01-07 Dave Love * keyboard.c (Fread_key_sequence_vector): Avoid newline in arglist, for documentation's sake. 2001-01-06 Andrew Innes * makefile.w32-in (clean): Delete $(COMPILER_TEMP_FILES) instead of *.pdb. 2001-01-05 Andrew Innes * term.c (update_end): Don't check updating_frame; for some reason this can be 0 sometimes, such as after dismissing a popup menu, and isn't necessary given the explicit frame argument. 2001-01-05 Gerd Moellmann * sysdep.c: Don't prototype srandom; it takes an unsigned argument on some systems, and an unsigned long on others, like FreeBSD 4.1. 2001-01-04 Gerd Moellmann * xterm.c (clear_mouse_face): Don't return if tip_frame is non-nil. * xfns.c (x_create_tip_frame): Preserve the value of face_change_count around the creation of the tip frame. * xfns.c (last_show_tip_args): New variable. (compute_tip_xy): New function. (Fx_show_tip): Reuse an existing tip frame, if possible. (syms_of_xfns): Initialize and staticpro last_show_tip_args. 2001-01-04 Dave Love * editfns.c (Fformat): Doc fix. * systime.h (set_file_times): Prototype. * widget.h (EmacsFrameSetCharSize_): Prototype. * sysdep.c (random, srandom): Declare explicitly. * dispextern.h (move_it_vertically_backward): Declare. 2001-01-04 Gerd Moellmann * xfns.c (x_create_tip_frame): Call face-set-after-frame-default, like in Fx_create_frame. * xfaces.c (set_font_frame_param): Don't do anything for non-graphical frames. * window.c (Fdelete_other_windows): Set window's window_end_valid to nil when changing the window's start. Don't change the window's start when its top position hasn't changed. If we do, this will set the window's optional_new_start, which act's like a force_start during redisplay with C-x 1 M-> under particular circumstances (see report from Per Starback to emacs-pretest-bug from 2000-12-13.). 2001-01-03 Gerd Moellmann * xdisp.c (forward_to_next_line_start): Reset it->c if taking the short cut at the start of the function. Add an assertion. (reseat_at_next_visible_line_start): Add an assertion. * window.c (Frecenter): When changing the window start, set the window's window_end_valid to nil. (Fwindow_end): Fix window-end computation when UPDATE is non-nil. * dispextern.h (move_it_past_eol): Add prototype. * xdisp.c (move_it_past_eol): New function. * window.c (Fwindow_end): Doc fix. 2001-01-03 Dave Love * dired.c (Ffile_attributes): Fix last change, removing BSD4_3 kluge. 2001-01-03 Gerd Moellmann * xdisp.c (try_window_reusing_current_matrix): Fix bug setting the enabled_p flag of the glyph row at window_end_vpos to 0. (handle_single_display_prop): Fix last change. 2001-01-02 Richard M. Stallman * window.c (Frecenter): Doc fix. 2001-01-02 Andrew Innes * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Remove redefinition. * frame.h (output_method): Add output_w32_console method. (FRAME_W32_CONSOLE_P): New macro. * frame.c (make_terminal_frame) [WINDOWSNT]: Make terminal frames use output_w32_console method. (Qw32_console): New Lisp_Object. (Fframep): Return it. (syms_of_frame): Init it. (Fframe_parameters): Report w32console as font for w32_console frames. * xfaces.c (realize_default_face): Set face foreground and background to unspecified for w32_console frames. (realize_face): Realize face cache for w32_console frames. (realize_tty_face): Accept w32_console frames. * xdisp.c (handle_single_display_prop): Return if frame is w32_console. (init_iterator) [WINDOWSNT]: Initialize frame face cache if necessary, even if running interactively. * dispnew.c (Fredraw_frame): Call set_terminal_modes for w32_console frames. * w32term.c (x_update_begin): (x_update_end): (x_clear_frame): (x_ins_del_lines): (x_change_line_highlight): (x_delete_glyphs): (w32_ring_bell): (x_update_begin): (x_update_end): (w32_reassert_line_highlight): (w32_frame_rehighlight): (w32_frame_raise_lower): Do nothing if not w32 frame. * w32xfns.c (get_frame_dc): Abort if called on a non-w32 frame. * w32fns.c (Fx_display_color_cells): Determine correct value, when system doesn't tell us directly. (Fx_display_visual_class): Implement properly. 2001-01-02 Gerd Moellmann * window.c (Frecenter): Handle centering in graphical frames specially. Centering on the basis of line counts doesn't work reliably with variable-height lines. 2001-01-02 Eli Zaretskii * widget.c (EmacsFrameSetCharSize): Remove unused variables `ac' and al[]. * composite.c (run_composition_function): Remove unused var `val'. (update_compositions): Remove unused variable `hook'. * intervals.c (get_local_map): Remove unused variable `tem'. * doprnt.c (doprnt1): Remove unused variable `size'. * fns.c (Flength): Remove unused variable `tail'. (Fdelete): Remove unused variable `size'. * editfns.c (Ftranspose_regions): Remove unused variables `gcpro1' and `gcpro2'. * doc.c (Fsnarf_documentation): Remove unused vars `fun' and `tem'. * data.c (find_symbol_value): Remove extra 3rd argument in the call to swap_in_symval_forwarding. * undo.c (Fprimitive_undo): Remove unused block-scope variable `end'. * search.c (shrink_regexp_cache): Remove unused variable `cpp'. (trivial_regexp_p): Remove unused variable `c'. (boyer_moore): Remove unused variable `k'. * indent.c (current_column): Remove unused variable `stopchar'. (Fcompute_motion): Remove unused variable `contin'. * casefiddle.c (casify_object): Remove unused variable `tolen'. * dired.c (directory_files_internal): Fix a typo in a comment. Remove an unused variable `handler'. (file_name_completion): Remove unused function-scope variable `dp'. (Ffile_attributes) : Make declarations conditioned on BSD4_2. * fileio.c (e_write): Remove unused variable `require_encoding_p'. * marker.c (Fmarker_position): Remove unused variables `pos', `i', and `buf'. (Fmarker_insertion_type): Remove unused variable `buf'. * insdel.c (make_gap): Remove unused variable `result'. * keyboard.c (record_char): Remove unused function-scope var `help'. (kbd_buffer_get_event): Remove unused block-scope variable `idx'. (menu_bar_items): Remove unused function-scope variable `tem'. * fontset.c (fontset_ref): Remove unused variable `i'. (fontset_set): Remove unused variables `j' and `tmp'. (make_fontset): Remove unused variables `i', `j', `elt' and `base_elt'. (make_fontset_for_ascii_face): Remove unused variable `name'. (fs_load_font): Remove unused variable `font_idx'. (fs_query_fontset): Remove unused function-local variable `fontset'. (list_fontsets): Remove unused variable `tail'. (Fnew_fontset): Remove unused variables `family' and `registry'. (accumulate_font_info): Remove unused variable `tmp'. (Ffontset_font): Remove unused variable `id'. (syms_of_fontset): Remove unused variable `i'. * xfns.c (x_display_info_for_name): Cast 0 to "char *" in the call to x_term_init. (lookup_image): Remove unused variable `file'. (xbm_load): Remove unused variables `bitmap_data', `height', and `width'. Remove function-local variable `i', leave the block-local one. (gif_load): Remove unused variable `inc'. * xterm.c (XTread_socket): Remove unused variables `p' and `pend'. (XTread_socket) : Remove unused variable `frame', leave only the one in the inner block. * xfaces.c (face_fontset, realize_default_face): Remove unused variable `fontset'. (face_at_buffer_position): Remove unused variable `multibyte_p'. * term.c (encode_terminal_code): Remove unused variable `c'. * ccl.c (Fccl_execute): Cast ccl_driver parameters to `unsigned char *' instead of `char *'. * category.c (Fcategory_docstring): Remove unused variable `doc'. (Fget_unused_category): Remove unused variable `docstring_vector'. (Fchar_category_set): Remove unused variables `val', `charset', `c1' and `c2'. * coding.c (detect_coding_iso2022, setup_coding_system): Remove unused variable `i'. (detect_coding_mask): Remove unused variable `idx'. (detect_coding): Remove unused variable `i'. (ccl_coding_driver): Remove unused variable `result'. (run_pre_post_conversion_on_str): Remove unused variable `prev'. (decode_coding_string): Remove unused variables `to' and `gcpro1'. (encode_coding_string): Remove unused variables `gcpro1' and `saved_coding_symbol'. (Ffind_coding_systems_region_internal): Remove function-local variable args[], leave only the block-local one. (code_convert_region1): Remove unused variable `len'. * charset.c (char_printable_p): Remove unused variable `chars'. (Fsplit_char, Fchar_bytes): Remove unused variable `val'. (str_to_multibyte): Remove unused variable `c'. * window.c (size_window): Remove block-local variable `min_size'. * xdisp.c (make_cursor_line_fully_visible): Remove unused variable `header_line_height'. (append_space, extend_face_to_end_of_line): Declare `saved_what' enum display_element_type. 2001-01-02 Gerd Moellmann * xterm.c (x_connection_closed): Catch X errors around all statements that call X. Save away the error message in a local copy. * xterm.c (x_connection_closed): Set handling_signal to 0 at the start. * xdisp.c (pos_visible_p): Take into account that CHARPOS maybe in or at the start of invisible text. * dispnew.c (update_window): Don't check_current_matrix_flags. 2001-01-01 Jason Rumney * w32fns.c (x_figure_window_size): Do not allow new_height and new_width of frame to override specified values. 2000-12-30 Kenichi Handa * composite.c (find_composition): Fix a code for searching backward. 2000-12-29 Gerd Moellmann * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New function. (update_window) [GLYPH_DEBUG]: Call it. (scrolling_window): Prevent including current rows which are below what's displayed in the window. * xdisp.c (try_window_reusing_current_matrix) : Disable rows in the current matrix which are below the window after scrolling. * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P is zero. It's not worth the complexity. (invisible_text_between_p): Put in #if 0 because unused. 2000-12-28 Gerd Moellmann * xfns.c (Fx_backspace_delete_keys_p): Check library and server XKB versions. Call XkbFreeKeyboard with 2nd arg 0. * keyboard.c (echo_char): If C is an integer, always call push_key_description. Former code could signal an invalid character error. * keymap.c (push_key_description): Add parameter FORCE_MULTIBYTE. If set, print multibyte text. (Fsingle_key_description): Call push_key_description with FORCE_MULTIBYTE set. (describe_buffer_bindings): Likewise. * lisp.h (push_key_description): Add prototype. * xdisp.c (echo_area_display): Bind redisplay-dont-pause to t around the call to redisplay_internal. * xfns.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG. * dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG. 2000-12-28 Kenichi Handa * ccl.c (CCL_WRITE_CHAR): Check variable `extra_bytes'. (ccl_driver): New local variable `extra_bytes'. * ccl.h (struct ccl_spec): New member eight_bit_carryover. * coding.c (setup_coding_system): Initialize coding->spec.ccl.eight_bit_carryover. (ccl_coding_driver): Pay attention to carried over 8-bit bytes. 2000-12-28 Kenichi Handa * coding.c (SAFE_ONE_MORE_BYTE): New macro. (DECODE_EMACS_MULE_COMPOSITION_CHAR): New macro. (DECODE_EMACS_MULE_COMPOSITION_RULE): New macro. (decode_composition_emacs_mule): New function. (decode_coding_emacs_mule): Decode composition sequence by calling decode_composition_emacs_mule. (ENCODE_COMPOSITION_EMACS_MULE): New macro. (encode_coding_emacs_mule): Changed from macro to function. If a text contains compositions, encode them correctly. (setup_coding_system): Set coding->commong_flags for emacs-mule so that decoding and encoding are required. 2000-12-27 Gerd Moellmann * xfaces.c (PT_PER_INCH): New macro. (xlfd_point_size): Compute real point size from font's pixel size. (pixel_point_size, build_scalable_font_name): Use PT_PER_INCH instead of 72. * .gdbinit: Comment out the line pointing to the Lesstif source directory. * window.c (Frecenter): Use displayed_window_lines instead of window_internal_height. * xterm.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars instead of x-toolkit-scroll-bars-p. (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p. * w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars instead of x-toolkit-scroll-bars-p. (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p. * dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New. (REDISPLAY_HISTORY_SIZE) [GLYPH_DEBUG]: New macro. (redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]: New variables. (add_window_display_history, add_frame_display_history) (Fdump_redisplay_history) [GLYPH_DEBUG]: New functions. (build_frame_matrix_from_leaf_window): Remove unused code. (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to redisplay history. (update_frame) [GLYPH_DEBUG]: Add to redisplay history. (update_window) [GLYPH_DEBUG]: Likewise. (syms_of_display): Defsubr dump-redisplay-history. 2000-12-23 Gerd Moellmann * keyboard.c (echo_prompt): Always set current_kboard->echoptr to the end of the prompt. Set echo_after_prompt to the offset of echoptr in echobuf. * xdisp.c (init_from_display_pos): Pop until the iterator's stack is empty; there may be frames for stretch or images on the stack. * dispnew.c (save_frame_matrix, restore_frame_matrix): Removed. (save_or_restore_current_matrix): New function for the same purpose, but more efficient. (adjust_frame_glyphs_for_frame_redisplay): Use it. 2000-12-23 Eli Zaretskii * xdisp.c (syms_of_xdisp): Fix last change. 2000-12-23 Gerd Moellmann * xdisp.c (syms_of_xdisp): Doc fix. * xdisp.c (redisplay_window): Remove label restore_buffers; use finish_scroll_bars instead to make sure that scroll bars are redeemed. If we don't do this, flickering can result from scroll bars being destroyed and recreated. 2000-12-22 Jason Rumney * w32term.c (w32_draw_bitmap): Fix drawing so it does not appear in the wrong colors when the foreground is not black. (expose_window): Don't redraw the window that's currently being updated. 2000-12-22 Gerd Moellmann * window.c (size_window): When setting the window's too_small_ok flag, compare old size with minimum size depending on WIDTH_P, don't compare with window_min_width. * window.c (delete_window): Simplify somewhat. (Fset_window_configuration): Don't SET_FRAME_GARBAGED after freeing window matrices. The flag windows_or_buffers_changed is set, so the next redisplay will consider all windows; this should suffice. 2000-12-22 Kenichi Handa * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed. * ccl.h (struct ccl_program): New member cr_consumed. * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here. (CCL_READ_CHAR): Handle EOL conversion here. (ccl_driver) : Likewise. 2000-12-21 Gerd Moellmann * xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg GLYPHS. * dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths, otherwise tabs of different size compare equal. * callint.c (Fcall_interactively): Prevent a compiler warning. * print.c (print_unwind): Return nil. (PRINTDECLARE): Initialize all local variables. (print_preprocess): Add a default case. * lisp.h (Qinhibit_point_motion_hooks): Declare extern. * undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t. * window.c (delete_window, Fsplit_window) (Fset_window_configuration): Calls to ensure_frame_matrix removed. * dispextern.h (ensure_frame_matrix): Function declaration removed. * dispnew.c (ensure_frame_matrix): Removed. (save_frame_matrix, restore_frame_matrix): New functions. (adjust_frame_glyphs_for_frame_redisplay): Use them. * xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix) [GLYPH_DEBUG]: Extended to dump glyphs in short form. 2000-12-21 Andrew Innes * w32term.c (x_update_begin): Regenerate the palette here, rather than for each window. * w32xfns.c (select_palette): Avoid calling SelectPalette if palette is NULL, since this corrupts memory! Also get display_info reference from frame. 2000-12-21 Jason Rumney * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap. * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC to avoid returning without releasing it. 2000-12-21 Kenichi Handa * keymap.c (push_key_description): Don't convert eight-bit-control and eight-bit-graphic to multibyte character. * charset.c (Fmake_char_internal): If CHARSET doesn't have a generic character and CODE1 is nil, return the smallest character in CHARSET. 2000-12-20 Dave Love * s/osf5-0.h (NSIG): Don't redefine. 2000-12-20 Stefan Monnier * keymap.c (where_is_internal): Check ascii_sequence_p rather than excluding menu-bar and tool-bar. (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache. (menu_item_p): Remove. (where_is_internal_1): Don't ignore menu-items. 2000-12-20 Gerd Moellmann * xdisp.c (hscroll_window_tree): Take window's min_hscroll into account. * window.c (make_window): Initialize window's min_hscroll. (Fset_window_hscroll): Set window's hscroll and min_hscroll. (set_window_buffer, temp_output_buffer_show): Set min_hscroll to zero. (struct saved_window): New member min_hscroll. (SAVED_WINDOW_VECTOR_SIZE): Set to 17. (Fset_window_configuration): Set window's min_hscroll. (save_window_save): Save window's min_hscroll. (compare_window_configurations): Compare min_hscroll values. * window.h (struct window): New member min_hscroll. * keyboard.c (echo_prompt): Prevent a compiler warning. * xdisp.c (try_cursor_movement): Fix last change. The real condition is that PT is at the end of the row, and should be displayed at the start of the next row. * xdisp.c (try_cursor_movement): If we end on a partially visible line, end we already decided to scroll, return -1. * dispextern.h (ensure_frame_matrix): Add prototype. * window.c (delete_window, Fsplit_window) (Fset_window_configuration): Call ensure_frame_matrix. * dispnew.c (fake_current_matrices, ensure_frame_matrix): New functions. (adjust_frame_glyphs_for_frame_redisplay): If display has been completed, call fake_current_matrices instead of marking frame garbaged. 2000-12-20 Jason Rumney * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame. 2000-12-19 Eli Zaretskii * fns.c (Frequire): Doc fix. 2000-12-19 Gerd Moellmann * window.c (window_scroll_pixel_based): Don't use move_it_vertically. * dispnew.c (direct_output_for_insert): Fix check for mini-window currently displaying a message. * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and xterm.h. (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font. 2000-12-18 Andrew Innes * w32.c (w32_strerror): New function. * w32.h (w32_strerror): New extern. * w32fns.c (Fw32_shell_execute): Use it. 2000-12-18 Gerd Moellmann * s/hpux10.h (_FILE_OFFSET_BITS): Undef again. 2000-12-18 Eli Zaretskii * msdos.c (IT_set_face): Obey inverse_video. 2000-12-18 Kenichi Handa * dired.c (directory_files_internal): Always return decoded filenames. 2000-12-18 Gerd Moellmann * xterm.c (x_connection_closed): Prevent being called recursively because of an error condition in XtCloseDisplay. * xdisp.c (init_iterator): If noninteractive, and the frame's face cache is null, make one. * xfns.c (show_busy_cursor): Check for live frames more thoroughly. * process.c (wait_reading_process_input): Check for pending input when running timers. 2000-12-18 Eli Zaretskii * msdos.c (IT_write_glyphs): Compute the glyph face from str->face_id. 2000-12-18 Kenichi Handa * process.c (read_process_output): Don't run a filter if the code decoder produces nothing but carryover. 2000-12-17 Andrew Innes * w32.c (sys_rename): Only check errno against EEXIST, and not EACCES, when determining whether rename failed because the target exists. This was resulting in indefinite looping on Windows 9x if the source file was locked by another process. * w32fns.c (Ffile_system_info): New function. (syms_of_w32fns): Defsubr it. 2000-12-17 Gerd Moellmann * window.c (coordinates_in_window): Fix computation for position on vertical line between mode lines. * xfns.c (unwind_create_frame): Return t if frame was deleted. Don't alter tip_frame or tip_window. (unwind_create_tip_frame): Set tip_frame to nil only if frame was deleted. * w32fns.c (unwind_create_frame): Return t if frame was deleted. Don't alter tip_frame or tip_window. (unwind_create_tip_frame): Set tip_frame to nil only if frame was deleted. 2000-12-16 Eli Zaretskii * fileio.c (Fcopy_file): Rename the last argument to keep_time, to be consistent with the doc string. Reported by NAKAJIMA Mikio . 2000-12-16 Kenichi Handa * xfaces.c (Vface_ignored_fonts): New variable. (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts. (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable. 2000-12-15 Gerd Moellmann * dispnew.c (update_window): Detect pending input every nth line updated, i.e. do it depending on real work done, and not on the vpos of the line. * xterm.c (expose_window): Don't redraw the window that's currently being updated. * window.c (Fset_window_point): Remove test for cursor_in_non_selected_windows. * lread.c (read1): Recognize end of file after `\\'. * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame, not unwind_create_frame. 2000-12-15 Dave Love * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of bcopy & al. * s/irix6-5.h: #undef bcopy & al here. Include strings.h. 2000-12-15 Kenichi Handa * coding.c (setup_coding_system): Clear all members of the struct coding_system at first. (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP argument. (code_convert_region): Don't override coding->src_multibyte and coding->dst_multibyte. * fns.c (Fmd5): Docstring improved. 2000-12-15 Miles Bader * xdisp.c (window_box_height): Only use mode-line glyph-rows that are actually marked as mode-lines; otherwise use estimate_mode_line_height. 2000-12-14 Gerd Moellmann * editfns.c (Fformat): Prevent a buffer overrun when the format specifies a precision. 2000-12-14 Eli Zar