+2005-02-15 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
+
+ * w32select.c: Summary: Thorough rework to implement Unicode
+ clipboard operations and delayed rendering.
+
+ Drop last_clipboard_text and related code, keep track of
+ ownership via clipboard_owner instead. Drop old #if0
+ sections.
+
+ (DEFAULT_LCID, ANSICP, OEMCP, QUNICODE, QANSICP, QOEMCP)
+ (clipboard_owner, modifying_clipboard, cfg_coding_system)
+ (cfg_codepage, cfg_lcid, cfg_clipboard_type, current_text)
+ (current_coding_system, current_requires_encoding)
+ (current_num_nls, current_clipboard_type, current_lcid): New
+ static variables.
+
+ (convert_to_handle_as_ascii, convert_to_handle_as_coded)
+ (render, render_all, run_protected, lisp_error_handler)
+ (owner_callback, create_owner, setup_config)
+ (enum_locale_callback, cp_from_locale, coding_from_cp): New
+ local functions.
+
+ (term_w32select, globals_of_w32select): New global functions.
+
+ (Fw32_set_clipboard_data): Ignore parameter FRAME, use
+ clipboard_owner instead. Use delayed rendering and provide
+ all text formats. Provide CF_LOCALE if necessary.
+
+ (Fw32_get_clipboard_data): Handle CF_UNICODETEXT and
+ CF_LOCALE. Fall back to CF_TEXT, if CF_UNICODETEXT is not
+ available. Force DOS line-ends for decoding.
+
+ (Fx_selection_exists_p): Handle CF_UNICODETEXT.
+
+ (syms_of_w32select): Init and register new variables.
+
+ * w32.h: Add prototypes for globals_of_w32select and
+ term_w32select. Make the neighboring K&R declarations into
+ prototypes, too.
+
+ * emacs.c: Include w32.h to get function prototypes.
+ (main): Call globals_of_w32select.
+
+ * w32.c (term_ntproc): Call term_w32select.
+
+ * s/ms-w32.h: Guard MSC-specific #pragmas with an #ifdef.
+
+2005-02-16 Kim F. Storm <storm@cua.dk>
+
+ * xdisp.c (BUFFER_POS_REACHED_P): Return true if pos reached and
+ at end of display vector.
+
+2005-02-15 Richard M. Stallman <rms@gnu.org>
+
+ * xdisp.c (get_next_display_element): Fix escape-glyph criterion
+ for mode and header lines.
+
+ * lread.c (syms_of_lread) <user-init-file>: Doc fix.
+
+ * keymap.h (describe_map_tree): Change decl.
+
+ * keyboard.c (command_loop_1): Always use safe_run_hooks
+ to run Qdeferred_action_function.
+
+ * keymap.c (describe_map_tree): New arg MENTION_SHADOW. Calls changed.
+ (describe_map, describe_vector): Likewise. When it's 1,
+ don't omit shadowed bindings, instead mark them as shadowed.
+
+ * doc.c (Fsubstitute_command_keys): Compute list of shadowing maps
+ for describe_map_tree. Pass 1 for MENTION_SHADOW.
+
+ * data.c (Fsetq_default): Allow no arg case.
+
+2005-02-14 Kenichi Handa <handa@m17n.org>
+
+ * coding.c (encode_coding_string): Always return a unibyte string.
+ If NOCOPY is nonzero and there's no need of encoding, make STR
+ unibyte directly.
+
+ * xselect.c (lisp_data_to_selection_data): If OBJ is a non-ASCII
+ multibyte string, signal an error instead of aborting.
+
+2005-02-12 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * keyboard.c: If HAVE_FCNTL_H include fcntl.h.
+
+2005-02-12 Kim F. Storm <storm@cua.dk>
+
+ * xdisp.c (expose_window): Don't fix overlaps for mode lines.
+
+2005-02-10 Kim F. Storm <storm@cua.dk>
+
+ * xdisp.c (try_window_id): Set first_unchanged_at_end_row to NULL
+ if it moves outside window or it doesn't display text.
+
+2005-02-09 Kim F. Storm <storm@cua.dk>
+
+ * undo.c (Fprimitive_undo): Check that undo function does not
+ switch buffer.
+
+2005-02-08 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * xselect.c (selection_data_to_lisp_data): For the special case
+ type == XA_ATOM, data contains array of int, not array of Atom.
+ (x_property_data_to_lisp, selection_data_to_lisp_data): Comment
+ update: data must be array of int for format == 32.
+
+2005-02-08 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * undo.c (Fprimitive_undo): Check veracity of delta,start,end.
+
+2005-02-07 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * xfns.c (Fx_change_window_property): Use long array when format is 32.
+ (Fx_window_property): If format is 32 and long is bigger than 32 bits,
+ convert long array returned from XGetWindowProperty to an int array.
+ (x_set_tool_bar_lines): Check that width and height is greater than
+ zero before clearing area.
+
+ * xselect.c (x_reply_selection_request): Pass long array to
+ XChangeProperty so that 64 bit longs are handeled correctly.
+ (x_get_window_property): If format is 32 and long is bigger than 32
+ bits convert data from XGetWindowProperty from long array to int array.
+ (lisp_data_to_selection_data): When the input is a vector and the
+ format is 32, allocate a long array even if long is bigger than 32 bits.
+ (x_fill_property_data): Use char, short and long as the man page
+ for XChangeProperty specifies. This way the data returned is OK for
+ both 32 and 64 bit machines.
+ (x_handle_dnd_message): Calculate size correctly even for 64 bit
+ machines.
+ (Fx_send_client_event): Undo change from 2005-02-05,
+ x_fill_property_data now handles that case.
+
+ * xfns.c (Fx_backspace_delete_keys_p): Add comment about the
+ reason for the approach in the code.
+
+2005-02-07 Kim F. Storm <storm@cua.dk>
+
+ * undo.c (Fprimitive_undo): Record max one dummmy apply element.
+
+2005-02-06 Richard M. Stallman <rms@gnu.org>
+
+ * eval.c (Frun_hook_with_args)
+ (Frun_hook_with_args_until_success)
+ (Frun_hook_with_args_until_failure): Doc fixes.
+
+2005-02-05 Andreas Schwab <schwab@suse.de>
+
+ * sysdep.c (sys_subshell): Properly terminate execlp argument list.
+
+2005-02-05 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * xselect.c (Fx_send_client_event, x_handle_dnd_message): Handle
+ the longs in a XClientMessageEvent correctly when long is 64 bits.
+
+2005-02-05 Eli Zaretskii <eliz@gnu.org>
+
+ * xfaces.c (face_color_supported_p): Use HAVE_WINDOW_SYSTEM
+ instead of HAVE_X_WINDOWS, for non-X windowed sessions.
+
+2005-02-03 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * xmenu.c (menubar_selection_callback): Force out GTK buffered
+ events so the menu event comes after them. This is to prevent sit-for
+ from exiting on buffered events directly after a menu selection,
+ lisp code for Help => About Emacs uses sit-for.
+
+ * gtkutil.c (create_menus): Connect selection-done event instead of
+ the deactivate event to deactivate_cb. This will make the last
+ leave event come before the call to deactivate_cb, so the leave
+ event does not make sit-for exit after a menu selection.
+
+2005-02-03 Kim F. Storm <storm@cua.dk>
+
+ * dispnew.c (build_frame_matrix_from_leaf_window)
+ [!GLYPH_DEBUG]: Fix xassert.
+
+ * xfaces.c (x_free_gc) [!GLYPH_DEBUG]: Fix xassert.
+
+ * xfns.c (unwind_create_frame) [!GLYPH_DEBUG]: Fix xassert.
+
+2005-02-03 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * mac.c: Use MAC_OS_X_VERSION_MAX_ALLOWED to conditionalize by
+ the compiling OS version.
+
+ * macfns.c (x_create_tip_frame): Likewise.
+
+ * macterm.c (mac_draw_string_common, x_make_frame_visible): Likewise.
+
+2005-02-03 Richard M. Stallman <rms@gnu.org>
+
+ * xterm.c (x_error_quitter): On GCC 3 and up, specify noinline.
+
+ * xdisp.c (echo_area_display): Clear echo_message_buffer.
+
+ * buffer.c (Fbury_buffer): Doc fix.
+
+2005-02-02 Steven Tamm <steventamm@mac.com>
+
+ * macfns.c (unwind_create_frame): Fixing compile error due to
+ xassert being uncondition, but predicate is.
+ * dispnew.c (update_window): Fixing compile error due to
+ xassert being uncondition, but predicate is.
+
+2005-02-02 Miles Bader <miles@gnu.org>
+
+ * dispextern.h (xassert): Enable unconditionally.
+
+2005-02-02 Kim F. Storm <storm@cua.dk>
+
+ * undo.c (Fprimitive_undo): Fix dummy apply undo entry.
+
+2005-02-02 Kenichi Handa <handa@m17n.org>
+
+ * casefiddle.c (casify_object): Enable changing characters of
+ different byte length.
+ (casify_region): Fix loop condition, args to replace_range_2, and
+ update opoint_byte.
+
+ * insdel.c (replace_range_2): Fix bugs in adjusting markers and
+ point.
+
+2005-02-01 Kim F. Storm <storm@cua.dk>
+
+ * xdisp.c (back_to_previous_visible_line_start): Reset iterator
+ stack before calling handle_display_prop.
+
+2005-01-31 Kim F. Storm <storm@cua.dk>
+
+ * undo.c (Qapply): New lisp var.
+ (syms_of_undo): Intern and staticpro it.
+ (Fprimitive_undo): Support formats (apply FUNNAME . ARGS) and
+ (apply DELTA BEG END FUNNAME . ARGS) instead of (FUNNAME . ARGS).
+
+ * buffer.c (syms_of_buffer) <buffer-undo-list>: Doc fix.
+
+2005-01-30 Jesper Harder <harder@phys.au.dk>
+
+ * macterm.c (syms_of_macterm) <mac-reverse-ctrl-meta>
+ <mac-emulate-three-button-mouse>: Fix docstring indentation.
+
+2005-01-29 Luc Teirlinck <teirllm@auburn.edu>
+
+ * undo.c (syms_of_undo) <undo-outer-limit>: Doc update.
+ Increase value to 3 Meg.
+
+2005-01-29 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * xfns.c (show_hourglass): Use FRAME_X_WINDOW as parent for GTK,
+ button events are not received otherwise.
+
+2005-01-29 Richard M. Stallman <rms@gnu.org>
+
+ * buffer.c (syms_of_buffer) <buffer-undo-list>: Doc fix.
+
+ * undo.c (Fprimitive_undo): Handle (FUNNAME . ARGS) by calling FUNNAME.
+
+2005-01-28 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * keymap.c (access_keymap): YAILOM.
+
+2005-01-27 Kim F. Storm <storm@cua.dk>
+
+ * xdisp.c (get_phys_cursor_geometry): New function to calculate
+ phys cursor position and size for hollow cursor. Position is
+ aligned with get_glyph_string_clip_rect and ensures that a hollow
+ cursor is shown, even when the actual glyph is not visible.
+
+ * dispextern.h (get_phys_cursor_geometry): Add prototype.
+
+ * xterm.c (x_clip_to_row): Ensure y >= 0.
+ (x_draw_hollow_cursor): Use get_phys_cursor_geometry.
+
+ * w32term.c (x_draw_hollow_cursor): Use get_phys_cursor_geometry.
+
+ * macterm.c (x_draw_hollow_cursor): Use get_phys_cursor_geometry.
+
+2005-01-27 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * xterm.c (x_error_quitter): Add a prototype. Make it static again.
+
+2005-01-27 Kim F. Storm <storm@cua.dk>
+
+ * xdisp.c (get_glyph_string_clip_rect): Always show a cursor
+ glyph, even when row is only partially visible and actual cursor
+ position is not visible.
+
+2005-01-24 Richard M. Stallman <rms@gnu.org>
+
+ * xterm.c (x_error_quitter): No longer static, and moved after
+ x_error_handler.
+
+2005-01-24 Kim F. Storm <storm@cua.dk>
+
+ * xdisp.c (move_it_by_lines): If we move forward after going too
+ far back, cancel move if end position is same as start position.
+
+2005-01-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * dispextern.h (struct glyph_string): New members clip_head and
+ clip_tail.
+
+ * xdisp.c (get_glyph_string_clip_rect): Restrict horizontal clip
+ region to the area between clip_head and clip_tail.
+ (draw_glyphs): Record the area that need to be actually redrawn to
+ the new variables clip_head and clip_tail when there are
+ overhangs. Set values of these variables to the corresponding
+ members in struct glyph_string. Refine x coordinates for
+ notice_overwritten_cursor using clip_head and clip_tail.
+
+ * macgui.h (STORE_XCHARSETSTRUCT): New macro.
+
+ * macterm.c (mac_compute_glyph_string_overhangs): Implement with
+ QDTextBounds.
+ (x_draw_glyph_string): Don't fill the background of the successor
+ of a glyph with a right overhang if the successor will draw a cursor.
+ (XLoadQueryFont): Obtain font metrics using QDTextBounds.
+ (x_redisplay_interface): Add entry for compute_glyph_string_overhangs.
+
+2005-01-24 Kim F. Storm <storm@cua.dk>
+
+ * window.c (window_scroll_pixel_based): Fix scrolling in the wrong
+ direction if window height was smaller than next-screen-context-lines.
+ Now always scroll at least one line in the requested direction.
+ Ensure that we actually do scroll backwards when requested to do so.
+
+ * xdisp.c (redisplay_window): Only try to make cursor line fully
+ visible once (to avoid redisplay loop).
+