+2000-12-28 Gerd Moellmann <gerd@gnu.org>
+
+ * dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
+
+2000-12-28 Kenichi Handa <handa@etl.go.jp>
+
+ * 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 <handa@etl.go.jp>
+
+ * 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 <gerd@gnu.org>
+
+ * 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 <gerd@gnu.org>
+
+ * 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 <eliz@is.elta.co.il>
+
+ * xdisp.c (syms_of_xdisp): Fix last change.
+
+2000-12-23 Gerd Moellmann <gerd@gnu.org>
+
+ * 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 <jasonr@gnu.org>
+
+ * 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 <gerd@gnu.org>
+
+ * 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 <handa@etl.go.jp>
+
+ * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
+
+ * ccl.h (struct ccl_program): New member cr_consumed.
+
+ * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
+ (CCL_READ_CHAR): Handle EOL conversion here.
+ (ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
+
+2000-12-21 Gerd Moellmann <gerd@gnu.org>
+
+ * 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 <andrewi@gnu.org>
+
+ * 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 <jasonr@gnu.org>
+
+ * 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 <handa@etl.go.jp>
+
+ * 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 <fx@gnu.org>
+
+ * s/osf5-0.h (NSIG): Don't redefine.
+
+2000-12-20 Stefan Monnier <monnier@cs.yale.edu>
+
+ * 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 <gerd@gnu.org>
+
+ * 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 <jasonr@gnu.org>
+
+ * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
+
+2000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * fns.c (Frequire): Doc fix.
+
+2000-12-19 Gerd Moellmann <gerd@gnu.org>
+
+ * 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 <andrewi@gnu.org>
+
+ * w32.c (w32_strerror): New function.
+
+ * w32.h (w32_strerror): New extern.
+
+ * w32fns.c (Fw32_shell_execute): Use it.
+
+2000-12-18 Gerd Moellmann <gerd@gnu.org>
+
+ * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
+
+2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * msdos.c (IT_set_face): Obey inverse_video.
+
+2000-12-18 Kenichi Handa <handa@etl.go.jp>
+
+ * dired.c (directory_files_internal): Always return decoded filenames.
+
+2000-12-18 Gerd Moellmann <gerd@gnu.org>
+
+ * 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 <eliz@is.elta.co.il>
+
+ * msdos.c (IT_write_glyphs): Compute the glyph face from
+ str->face_id.
+
+2000-12-18 Kenichi Handa <handa@etl.go.jp>
+
+ * process.c (read_process_output): Don't run a filter if the code
+ decoder produces nothing but carryover.
+
+2000-12-17 Andrew Innes <andrewi@gnu.org>
+
+ * 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 <gerd@gnu.org>
+
+ * 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 <eliz@is.elta.co.il>
+
+ * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
+ be consistent with the doc string. Reported by NAKAJIMA Mikio
+ <minakaji@osaka.email.ne.jp>.
+
+2000-12-16 Kenichi Handa <handa@etl.go.jp>
+
+ * 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 <gerd@gnu.org>
+
+ * 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 <fx@gnu.org>
+
+ * 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 <handa@etl.go.jp>
+
+ * 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 <miles@gnu.org>
+
+ * 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 <gerd@gnu.org>
+
+ * editfns.c (Fformat): Prevent a buffer overrun when the format
+ specifies a precision.
+
+2000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
+ argument is outside the range [2..3].
+
+2000-12-14 Andrew Innes <andrewi@gnu.org>
+
+ * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
+ nothing to do. Bind inhibit-quit.
+ (tip_frame): Make it a Lisp_Object.
+ (x_create_tip_frame): Set tip_frame after it has been added to
+ Vframe_list.
+ (Fx_show_tip): Don't set tip_frame here.
+ (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New
+ variables.
+ (unwind_create_frame, unwind_create_tip_frame): New functions.
+ (Fx_create_frame, x_create_tip_frame): Handle errors signaled
+ while a frame is only partially constructed.
+
+ * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
+ (x_free_frame_resources): New function.
+ (x_destroy_window): Use it.
+
+2000-12-14 Gerd Moellmann <gerd@gnu.org>
+
+ * xfns.c (Fx_backspace_delete_keys_p): New function.
+ (syms_of_xfns): Defsubr it.
+
+ * config.in (HAVE_XKBGETKEYBOARD): Add.
+
+2000-12-14 Kenichi Handa <handa@etl.go.jp>
+
+ * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
+ Always store string in multibyte representation in echobuf.
+ (echo_char): Always store string in multibyte representation in
+ echobuf.
+ (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
+ (read_key_sequence): Adjusted for the change of echo_prompt.
+
+ * fns.c (Fmd5): Docstring improved.
+
+ * lisp.h (detect_coding_system): Prototype adjusted.
+
+ * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
+ (detect_coding_emacs_mule, detect_coding_iso2022,)
+ (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
+ (detect_coding_utf_16, detect_coding_ccl): Make them static. New
+ argument MULTIBYTEP. Callers changed.
+ (detect_coding_mask, detect_coding_system): New argument
+ MULTIBYTEP. Callers changed.
+ (decode_coding_string): Set coding->src_multibyte and
+ coding->dst_multibyte before calling detect_coding and detect_eol.
+ Update them after some coding system is detected.
+
+2000-12-13 Stefan Monnier <monnier@cs.yale.edu>
+
+ * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
+
+ * keyboard.c (menu_bar_items, tool_bar_items):
+ Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
+
+2000-12-13 Gerd Moellmann <gerd@gnu.org>
+
+ * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
+ New variables.
+ (unwind_create_frame, unwind_create_tip_frame): New functions.
+ (Fx_create_frame, x_create_tip_frame): Handle errors signaled
+ while a frame is only partially constructed.
+
+ * xterm.h (x_free_frame_resources): Declare.
+
+ * xterm.c (x_free_frame_resources): New function.
+ (x_destroy_window): Use it.
+
+ * dispnew.c (update_window): If do_mouse_tracking is non-nil,
+ don't interrupt the update for pending input initially, i.e.
+ update at least some lines.
+
+ * keyboard.c (do_mouse_tracking): Make externally visible.
+
+ * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
+
+ * xfns.c (gray_bitmap_bits): Declare `char *'.
+
+2000-12-12 Gerd Moellmann <gerd@gnu.org>
+
+ * xdisp.c (display_tool_bar_line): Make sure that tool bar
+ lines start with a relief line.
+
+2000-12-12 Dave Love <fx@gnu.org>
+
+ * window.c (Fdisplay_buffer): Doc fix.
+ (Fwindow_list): Remove unused var.
+
+ * buffer.h (mmap_set_vars): Declare.
+
+ * window.h (Fset_window_point): Declare.
+
+2000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * msdos.c (fast_find_position): Don't overstep the last window row.
+ (IT_note_mouse_highlight): Initialize portion to -1. Remove
+ unused variable `area'. When looking for a row under (X,Y), give
+ up if some of the previous rows is not enabled.
+
+2000-12-12 Gerd Moellmann <gerd@gnu.org>
+
+ * window.c (Fset_window_point): If displaying cursors in windows
+ other than the selected window, make sure redisplay updates
+ other windows to show the new value of point in the window.
+
+ * dispextern.h (cursor_in_non_selected_windows): Declare extern.
+
+ * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
+ the buffer is the sole visible buffer when in the mini-buffer.
+
+ * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
+ Bind `inhibit-read-only' to t.
+ (unwind_with_echo_area_buffer): Use AREF.
+
+ * xfns.c (Fx_hide_tip): Simplified.
+
+ * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use
+ GC_MAKE_GCPROS_NOOPS instead of `1'.
+
+ * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
+
+2000-12-11 Gerd Moellmann <gerd@gnu.org>
+
+ * xfns.c (Fx_hide_tip): Fix last change.
+
+ * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
+ nothing to do. Bind inhibit-quit.
+ (tip_frame): Make it a Lisp_Object.
+ (x_create_tip_frame): Set tip_frame after it has been added to
+ Vframe_list.
+ (Fx_show_tip): Don't set tip_frame here.
+
+ * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
+
+ * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
+ Lisp_Object.
+
+ * dispextern.h: Change external declaration of tip_frame.
+
+ * keymap.c (Fkey_description): If KEYS is an empty key sequence,
+ return an empty string.
+
+ * xdisp.c (try_cursor_movement): Check update_mode_lines instead
+ of the window's update_mode_line flag, since the former is set by
+ force-mode-line-update, not the latter. This makes
+ column-number-mode slightly faster.
+
+ * xdisp.c (try_window_id) <all changes above window start>:
+ Set the cursor.
+
+2000-12-11 Paul Eggert <eggert@twinsun.com>
+
+ * config.in (HAVE_FTELLO): Remove.
+ (HAVE_FSEEKO): Add.
+ (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
+ * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
+ HAVE_FTELLO.
+ * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
+ * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
+
+2000-12-11 Miles Bader <miles@gnu.org>
+
+ * window.c (displayed_window_lines): Don't round up when
+ converting empty space at bottom to lines.
+ Handle non-newline-terminated final lines properly.
+ (Fwindow_text_height): New function (used to be in lisp).
+ (syms_of_window): Initialize it.
+
+2000-12-09 Stefan Monnier <monnier@cs.yale.edu>
+
+ * syntax.c (scan_lists): Check that the right quote char has the
+ right Sstring syntax when jumping over strings.
+ (init_syntax_once): Use Smax rather than 13.
+
2000-12-09 Miles Bader <miles@gnu.org>
* window.c (Fpos_visible_in_window_p): Replace FULLY parameter