(find_composition): Fix a code for searching a composition backward.
[bpt/emacs.git] / src / ChangeLog
index 3de7bcc..7299bc4 100644 (file)
@@ -1,3 +1,445 @@
+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
+       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.