(specbind): Additionally record the buffer that was
[bpt/emacs.git] / src / ChangeLog
index 16ed417..ea5463c 100644 (file)
+2001-07-05  Gerd Moellmann  <gerd@gnu.org>
+
+       * 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  <gerd@gnu.org>
+
+       * xterm.c (x_produce_glyphs): Don't convert multibyte characters
+       to unibyte characters in unibyte buffers.
+
+2001-07-03  Gerd Moellmann  <gerd@gnu.org>
+
+       * 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  <gerd@gnu.org>
+
+       * 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  <gerd@gnu.org>
+
+       * 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  <gerd@gnu.org>
+
+       * widget.c (EmacsFrameSetCharSize): Turn off atimers and block
+       SIGIO around the code where Xt might wait for a
+       ConfigureNotifyEvent.
+       (toplevel): Include <signal.h> and syssignal.h.
+
+       * sound.c (vox_configure, vox_close): Turn off atimers
+       around ioctls.
+
+2001-06-26  Gerd Moellmann  <gerd@gnu.org>
+
+       * keyboard.c (read_char) <non_reread>: Record the previous idle
+       start time before calling timer_stop_idle.
+       (read_char) <reread_first>: After processing a help-echo event,
+       restore the previous idle start time.
+
+       * xdisp.c (handle_invisible_prop): Deal with overlay strings at
+       the start of invisible text.
+       (setup_for_ellipsis): New function.
+       (next_overlay_string): After all overlay strings have been
+       processed, display an ellipsis if necessary.
+       (load_overlay_strings, get_overlay_strings): Add parameter CHARPOS.
+       (push_it): Initialize display_ellipsis_p on the iterator's stack.
+
+       * dispextern.h (struct iterator_stack_entry): Add member
+       display_ellipsis_p.
+
+2001-06-25  Gerd Moellmann  <gerd@gnu.org>
+
+       * widget.c (EmacsFrameSetCharSize): Set XtNwaitForWm depending
+       on the value of the wait-for-wm frame parameter.
+
+       * xterm.h (struct x_output): Add member wait_for_wm.
+
+       * xfns.c (Qwait_for_wm): New variable.
+       (x_frame_parms): Add entry for `wait-for-wm".
+       (x_set_wait_for_wm): New function.
+       (Fx_create_frame): Call x_default_parameter for wait-for-wm.
+       (syms_of_xfns): Initialize and staticpro Qwait_for_wm.
+
+       * xdisp.c (try_window_id) <all changes below window end>: Don't
+       take this shortcut if ZV is visible in the window.
+       (try_window_id): When checking for window start being in changed
+       text, don't check that the buffer's size has changed.
+
+2001-06-23  Richard M. Stallman  <rms@gnu.org>
+
+       * minibuf.c (Fcompleting_read): Doc fix.
+
+2001-06-19  Gerd Moellmann  <gerd@gnu.org>
+
+       * composite.c (Ffind_composition_internal): Accept ZV
+       and a string's end position as POS.
+
+2001-06-18  Gerd Moellmann  <gerd@gnu.org>
+
+       * composite.c (Ffind_composition_internal): Check POS
+       for validity.
+
+2001-06-15  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * 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  <rms@gnu.org>
+
+       * 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  <andrewi@gnu.org>
+
+       * 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  <monnier@cs.yale.edu>
+
+       * 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  <eliz@is.elta.co.il>
+
+       * lread.c (Fload): Document that the argument is run via
+       substitute-in-file-name.
+
+2001-05-31  Gerd Moellmann  <gerd@gnu.org>
+
+       * 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  <monnier@cs.yale.edu>
+
+       * buffer.c (copy_overlays): Make ENABLE_CHECKING happy.
+
+2001-05-30  Gerd Moellmann  <gerd@gnu.org>
+
+       * 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  <gerd@gnu.org>
+
+       * 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  <gerd@gnu.org>
+
+       * 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  <gerd@gnu.org>
+
+       * 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  <gerd@gnu.org>
+
+       * 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  <fx@gnu.org>
+
+       * 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  <gerd@gnu.org>
+
+       * 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 <handa@etl.go.jp>.
+
+       * fontset.c (Ffontset_info): Check that face is non-null
+       before accessing its fields.
+
+2001-05-15  Gerd Moellmann  <gerd@gnu.org>
+
+       * 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  <monnier@cs.yale.edu>
+
+       * eval.c (Fdefvar): Only record (defvar <var>) in the load-history
+       in <var> has no default value yet.
+
+       * xfaces.c (try_alternative_families): First try the FAMILY.
+       And if nothing is found in the end, try again with scalable fonts.
+       (try_font_list): Let try_alternative_families do a bit more of
+       the work.  Only use FAMILY if it is not nil.
+       (syms_of_xfaces) <scalable-fonts-allowed>: Fix docstring.
+
+2001-05-14  Gerd Moellmann  <gerd@gnu.org>
+
+       * 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  <eliz@is.elta.co.il>
+
+       * 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  <gerd@gnu.org>
+
+       * 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  <gerd@gnu.org>
+
+       * 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  <gerd@gnu.org>
+
+       * lisp.h (GLYPH_CHAR_VALID_P): Use CHAR_VALID_P.
+
+2001-05-09  Dave Love  <fx@gnu.org>
+
+       * xdisp.c (GIVE_UP): Fix for K&R C.
+
+2001-05-09  Gerd Moellmann  <gerd@gnu.org>
+
+       * print.c (syms_of_print) <print-length, print-level>: Doc fix.
+
+       * xterm.c (note_mouse_highlight): Don't change the mouse cursor
+       back to the text cursor shape without need.
+
+2001-05-07  Gerd Moellmann  <gerd@gnu.org>
+
+       * 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  <eliz@is.elta.co.il>
+
+       * xterm.c (XTread_socket) <Expose> [!USE_TOOLKIT_SCROLL_BARS]:
+       Fix the change from 2001-04-30.
+
+2001-05-03  Gerd Moellmann  <gerd@gnu.org>
+
+       * 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  <gerd@gnu.org>
+
+       * 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  <monnier@cs.yale.edu>
+
+       * 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  <gerd@gnu.org>
+
+       * undo.c (Fprimitive_undo): In a writable buffer, enable undoing
+       read-only text that is so because of text properties.
+
+       * xterm.c (x_window_to_menu_bar) [USE_LUCID]: New function.
+       (XTread_socket) <Expose> [USE_LUCID]: Handle events for
+       windows that are components of a Lucid menu bar.
+
+2001-04-27  Gerd Moellmann  <gerd@gnu.org>
+
+       * term.c (turn_on_face): Fix reverse video handling on terminals
+       that don't support colors.
+
+2001-04-26  Gerd Moellmann  <gerd@gnu.org>
+
+       * editfns.c (save_excursion_restore): Don't use XBUFFER on
+       a non-buffer.
+
+2001-04-25  Gerd Moellmann  <gerd@gnu.org>
+
+       * 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  <gerd@gnu.org>
+
+       * xfaces.c (compute_char_face): If buffer is unibyte, set CH to
+       zero instead of -1.
+
+2001-04-21  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * 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  <gerd@gnu.org>
 
        * 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
+       * 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  <gerd@gnu.org>
        (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.
+       (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.
+       read from files on a procfs whose contents are generated dynamically.
 
 2001-04-18  Eli Zaretskii  <eliz@is.elta.co.il>
 
        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 <dan@eyebee.com>.
 
        * w32.c (sys_open): Try to open file without _O_CREAT first, to be
-       able to write to hidden and system files.  Make file handles
-       non-inheritable.
+       able to write to hidden and system files.  From Dan Holmsand
+       <dan@eyebee.com>.
 
-       * fileio.c (Fcopy_file) [WINDOWSNT]: Use CopyFile.
+       * fileio.c (Fcopy_file) [WINDOWSNT]: Use CopyFile.  From Dan
+       Holmsand <dan@eyebee.com>.
 
 2001-04-09  Gerd Moellmann  <gerd@gnu.org>