+2000-12-30 Kenichi Handa <handa@etl.go.jp>
+
+ * composite.c (find_composition): Fix a code for searching
+ backward.
+
+2000-12-29 Gerd Moellmann <gerd@gnu.org>
+
+ * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New
+ function.
+ (update_window) [GLYPH_DEBUG]: Call it.
+ (scrolling_window): Prevent including current rows which are below
+ what's displayed in the window.
+
+ * xdisp.c (try_window_reusing_current_matrix)
+ <new start <= old start>: Disable rows in the current matrix
+ which are below the window after scrolling.
+
+ * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
+ is zero. It's not worth the complexity.
+ (invisible_text_between_p): Put in #if 0 because unused.
+
+2000-12-28 Gerd Moellmann <gerd@gnu.org>
+
+ * 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 <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