* lisp/subr.el (decode-char, encode-char): Use advertised-calling-convention
[bpt/emacs.git] / src / ChangeLog
index 7f4c3f7..c201df1 100644 (file)
@@ -1,3 +1,821 @@
+2013-10-03  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * charset.c (Fdecode_char, Fencode_char): Remove description of
+       `restriction' arg. now that it's hidden by advertised-calling-convention.
+
+2013-10-02  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * macfont.m (mac_ctfont_create_preferred_family_for_attributes):
+       Remove unused variable (from mac-port).
+       (macfont_draw): Use s->ybase for correct y position.
+
+2013-10-02  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * frame.h (struct frame): Drop has_minibuffer member because...
+       (FRAME_HAS_MINIBUF_P): ...this macro can be implemented without it.
+       * frame.c (make_frame, make_minibuffer_frame): Adjust users.
+
+2013-10-02  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * window.h (struct window): Prefer enum text_cursor_kinds to int
+       for phys_cursor_type member.  Move the latter, phys_cursor_width,
+       phys_cursor_ascent and phys_cursor_height under HAVE_WINDOW_SYSTEM.
+       * window.c (replace_window, make_window): Adjust users.
+
+2013-10-02  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * fringe.c (toplevel): Do not use HAVE_WINDOW_SYSTEM because
+       this module is never compiled otherwise.
+
+2013-10-01  Alp Aker  <alp.tekin.aker@gmail.com>
+
+       * macfont.m (macfont_draw): Use CGRectMake rather than NSMakeRect
+       (Bug#15500).
+
+2013-09-29  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (get_next_display_element): Don't call face_for_font in
+       a build configured --without-x.  (Bug#15484)
+
+2013-09-29  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * window.c (calc_absolute_offset): #elif should be #elif defined.
+
+       * frame.c (delete_frame): Block/unblock input to overcome race
+       condition (Bug#15475).
+
+2013-09-29  Andreas Politz  <politza@hochschule-trier.de>  (tiny change)
+
+       * frame.c (delete_frame): Record selected frame only after
+       calling Qdelete_frame_functions (Bug#15477).
+
+2013-09-28  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (ns_selection_color): Remove.
+       (ns_get_color): Check for ns_selection_(fg|bg)_color using
+       NSColor selectedText(Background)Color.  Only for COCOA.
+       (ns_term_init): Remove assignment of ns_selection_color, logic
+       moved to ns_get_color.
+
+       * nsterm.h (NS_SELECTION_BG_COLOR_DEFAULT): Rename from
+       NS_SELECTION_COLOR_DEFAULT.
+       (NS_SELECTION_FG_COLOR_DEFAULT): New.
+
+2013-09-28  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (Fdump_tool_bar_row): Ifdef away the body if 'struct
+       frame' does not have the tool_bar_window member.
+
+2013-09-26  Barry O'Reilly  <gundaetiapo@gmail.com>
+
+       Signal error when reading an empty byte-code object (Bug#15405)
+       * lread.c (read1): signal error
+       * alloc.c (make_byte_code): eassert header size
+       (sweep_vectors): change an int to size_t
+
+2013-09-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * dispnew.c (clear_glyph_row, copy_row_except_pointers): Use enums
+       instead of ints, as it's the usual style for offsetof constants.  See:
+       http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00478.html
+
+       * data.c (POPCOUNT_STATIC_INLINE): New macro, as a hack for popcount.
+       This is ugly, but it should fix the performance problem for older
+       GCC versions in the short run.  I'll look into integrating the
+       Gnulib module for popcount, as a better fix.
+       See the thread starting in:
+       http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00474.html
+       (popcount_size_t_generic) [NEED_GENERIC_POPCOUNT]:
+       (popcount_size_t_msc) [USE_MSC_POPCOUNT]:
+       (popcount_size_t_gcc) [USE_GCC_POPCOUNT]:
+       (popcount_size_t): Use it.
+
+2013-09-24  Daniel Colascione  <dancol@dancol.org>
+
+       * process.c (Fnetwork_interface_info): Fix build break due to
+       vector changes.
+
+2013-09-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * dispnew.c (clear_glyph_row, copy_row_except_pointers):
+       Prefer signed to unsigned integers where either will do.
+       No need for 'const' on locals that do not escape.
+       Omit easserts with unnecessary and unportable assumptions about
+       alignment.  Avoid unnecessary casts to char *.
+
+2013-09-24  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Use union for the payload of struct Lisp_Vector.
+       This helps to avoid a few glitches dictated by C's aliasing rules.
+       * lisp.h (struct Lisp_Vector): Use union for next and
+       contents member.  Adjust comment.  Change related users.
+       * alloc.c (next_in_free_list, set_next_in_free_list): Remove.
+       Related users changed.
+       * buffer.c, bytecode.c, ccl.c, character.h, chartab.c, composite.c:
+       * composite.h, disptab.h, fns.c, fontset.c, indent.c, keyboard.c:
+       * lread.c, msdos.c, process.c, w32menu.c, window.c, xdisp.c:
+       * xfaces.c, xfont.c, xmenu.c: Related users changed.
+
+2013-09-24  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Optimize glyph row clearing and copying routines.
+       * dispextern.h (struct glyph_row): Change layout of struct
+       glyph_row to help copy_row_except_pointers.  Adjust comment.
+       * dispnew.c (null_row): Remove.
+       (clear_glyph_row): Use offsetof and memset to find and clear
+       just the members that need clearing.  Adjust comment.
+       (copy_row_except_pointers): Likewise for copying.
+
+2013-09-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Some minor cleanups of recently-added bool vector code.
+       * conf_post.h (assume): Always return void.  Use lint version
+       only if GCC and MSC versions don't apply.
+       * conf_post.h (assume):
+       * data.c (USC_MSC_POPCOUNT, count_trailing_zero_bits):
+       Depend on _MSC_VER, not __MSC_VER, for consistency with
+       the rest of Emacs.
+       * data.c (bool_vector_spare_mask, popcount_size_t_generic)
+       (popcount_size_t_msc, popcount_size_t_gcc, popcount_size_t)
+       (bool_vector_binop_driver, count_trailing_zero_bits)
+       (size_t_to_host_endian): Now static, not static inline;
+       the latter isn't needed with modern compilers and doesn't
+       work with older compilers anyway.
+
+       * alloc.c (valgrind_p): Use bool for boolean.
+
+2013-09-23  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xdisp.c (noninteractive_need_newline, message_log_need_newline)
+       (overlay_arrow_seen, message_enable_multibyte, line_number_displayed)
+       (display_last_displayed_message_p, message_buf_print)
+       (message_cleared_p, help_echo_showing_p, hourglass_shown_p):
+       Use bool for boolean.
+       * dispextern.h (cancel_line, init_desired_glyphs):
+       Remove ancient leftover.
+       (help_echo_showing_p, hourglass_shown_p):
+       * lisp.h (noninteractive_need_newline): Adjust declaration.
+
+2013-09-23  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * dispnew.c (frame_garbaged, selected_frame, last_nonminibuf_frame):
+       Move to...
+       * frame.c (frame_garbaged, selected_frame, last_nonminibuf_frame):
+       ...this file and convert the latter to static.  Adjust comment.
+       (make_initial_frame):
+       * window.c (init_window_once): Adjust user.
+       * frame.h (last_nonminibuf_frame): Remove declaration.
+       * lisp.h (selected_frame): Likewise.
+       * msdos.c (the_only_display_info): Adjust comment.
+
+2013-09-23  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (mouse_face_from_string_pos): Fix off-by-one error in
+       computing the end column of mouse-highlight that comes from
+       display or overlay strings.  (Bug#15437)
+       (note_mouse_highlight): Adapt calculation of last argument to
+       mouse_face_from_string_pos to the above change.
+
+       * conf_post.h (__has_builtin): Define to zero, if undefined, on
+       all platforms, not just for clang.
+
+2013-09-23  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * filelock.c (lock_file_1): Rearrange to remove compiler warning
+       about excess arguments to snprintf.
+
+       * conf_post.h(assume): Use __builtin_unreachable for clang.
+
+2013-09-23  Juanma Barranquero  <lekktu@gmail.com>
+
+       * w32console.c (initialize_w32_display): Remove unused variable hlinfo.
+       * w32term.c (w32_scroll_bar_handle_click): Remove unused variable f.
+
+2013-09-23  Daniel Colascione  <dancol@dancol.org>
+
+       * alloc.c (USE_VALGRIND): New macro; on by default
+       when ENABLE_CHECKING.
+       (mark_maybe_object,mark_maybe_pointer)
+       [USE_VALGRIND]: Mark conservatively-scanned regions valid for
+       valgrind purposes.
+       (valgrind_p) [USE_VALGRIND]: New variable.
+       (init_alloc) [USE_VALGRIND]: Initialize valgrind_p.
+
+2013-09-22  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * process.c (wait_reading_process_output): Change int pnamelen to
+       socklen_t.
+
+       * nsterm.m (setMarkedText:selectedRange:):
+       (deleteWorkingText):
+       * nsmenu.m (addDisplayItemWithImage:idx:tag:helpText:enabled:):
+       * nsfont.m (ns_get_covering_families, ns_findfonts): Cast NSLog
+       argument to unsigned long to avoid warning.
+       (nsfont_draw): Use 0.25 instead of  Fix2X (kATSItalicQDSkew).
+
+       * conf_post.h (assume): Fix compiler error: x shall be cond.
+
+2013-09-22  Daniel Colascione  <dancol@dancol.org>
+
+       * xfns.c (x_get_monitor_attributes): Suppress unused variable
+       warning when compiling without a window system.
+
+2013-09-22  Daniel Colascione  <dancol@dancol.org>
+
+       * data.c (Qbool_vector_p): New symbol.
+       (bool_vector_spare_mask,popcount_size_t_generic)
+       (popcount_size_t_msc,popcount_size_t_gcc)
+       (popcount_size_t)
+       (bool_vector_binop_driver)
+       (count_trailing_zero_bits,size_t_to_host_endian)
+       (Fbool_vector_exclusive_or)
+       (Fbool_vector_union)
+       (Fbool_vector_intersection,Fbool_vector_set_difference)
+       (Fbool_vector_subsetp,Fbool_vector_not)
+       (Fbool_vector_count_matches)
+       (Fbool_vector_count_matches_at): New functions.
+       (syms_of_data): Intern new symbol, functions.
+       * alloc.c (bool_vector_payload_bytes): New function.
+       (Fmake_bool_vector): Instead of calling Fmake_vector,
+       which performs redundant initialization and argument checking,
+       just call allocate_vector ourselves.  Make sure we clear any
+       terminating padding to zero.
+       (vector_nbytes,sweep_vectors): Use bool_vector_payload_bytes
+       instead of open-coding the size calculation.
+       (vroundup_ct): New macro.
+       (vroundup): Assume argument >= 0; invoke vroundup_ct.
+       * casetab.c (shuffle,set_identity): Change lint_assume to assume.
+       * composite.c (composition_gstring_put_cache):
+       Change lint_assume to assume.
+       * conf_post.h (assume): New macro.
+       (lint_assume): Remove.
+       * dispnew.c (update_frame_1): Change lint_assume to assume.
+       * ftfont.c (ftfont_shape_by_flt): Change lint_assume
+       to assume.
+       * image.c (gif_load): Change lint_assume to assume.
+       * lisp.h (eassert_and_assume): New macro.
+       (Qbool_vector_p): Declare.
+       (CHECK_BOOL_VECTOR,ROUNDUP,BITS_PER_SIZE_T): New macros.
+       (swap16,swap32,swap64): New inline functions.
+       * macfont.c (macfont_shape): Change lint_assume to assume.
+       * ralloc.c: Rename ROUNDUP to PAGE_ROUNDUP throughout.
+       * xsettings.c (parse_settings): Use new swap16 and
+       swap32 from lisp.h instead of file-specific macros.
+
+2013-09-22  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (try_window_id): Don't abort if cursor row could not be
+       found (which can legitimately happen when the glyph row at the
+       window start is disabled in the current_matrix.  (Bug#15365)
+
+2013-09-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix syntax.h bug introduced by recent INLINE change.
+       syntax.h defined an extern inline function SYNTAX_ENTRY that was
+       conditionally compiled one way in some modules, and a different
+       way in others.  This doesn't work with extern inline functions,
+       which must have the same definition in all modules, because the
+       defining code might be shared across modules, depending on the
+       implementation.  Symptoms reported by Martin Rudalics in:
+       http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00414.html
+       * regex.c, syntax.c (SYNTAX_ENTRY_VIA_PROPERTY): Remove.
+       (SYNTAX, SYNTAX_ENTRY, SYNTAX_WITH_FLAGS): New macros,
+       overriding the corresponding functions in syntax.h.
+       * syntax.h (syntax_property_entry, syntax_property_with_flags)
+       (syntax_property): New inline functions.
+       (SYNTAX_ENTRY, SYNTAX_WITH_FLAGS, SYNTAX):
+       Rewrite in terms of these new functions.
+
+2013-09-21  Eli Zaretskii  <eliz@gnu.org>
+
+       * dired.c (directory_files_internal): Use multibyte_chars_in_text,
+       not chars_in_text, whose result depends on the multibyteness of
+       the current buffer.  (Bug#15426)
+
+2013-09-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port recent change to hosts where pointers aren't 'long'.
+       * xterm.c (x_send_scroll_bar_event, x_scroll_bar_to_input_event):
+       Don't assume that pointers are the same width as 'long'.
+       Add a compile-time check that a pointer fits into two X slots.
+
+       A simpler, centralized INLINE.
+       * conf_post.h (INLINE): Define only if not already defined.
+       This allows us to use a single INLINE, defined by one file
+       per executable.
+       * emacs.c (INLINE): Define it.
+       Also, include category.h, charset.h, composite.h, dispextern.h,
+       syntax.h, systime.h, so that their INLINE definitions are expanded
+       properly for Emacs.
+       * blockinput.h, keyboard.c (BLOCKINPUT_INLINE):
+       * buffer.h, buffer.c (BUFFER_INLINE):
+       * category.h, category.c (CATEGORY_INLINE):
+       * character.h, character.c (CHARACTER_INLINE):
+       * charset.h, charset.c (CHARSET_INLINE):
+       * composite.h, composite.c (COMPOSITE_INLINE):
+       * dispextern.h, dispnew.c (DISPEXTERN_INLINE):
+       * frame.h, frame.c (FRAME_INLINE):
+       * intervals.h, intervals.c (INTERVALS_INLINE):
+       * keyboard.h, keyboard.c (KEYBOARD_INLINE):
+       * lisp.h, alloc.c (LISP_INLINE):
+       * process.h, process.c (PROCESS_INLINE):
+       * syntax.h, syntax.c (SYNTAX_INLINE):
+       * systime.h, sysdep.c (SYSTIME_INLINE):
+       * termhooks.h, terminal.h (TERMHOOKS_INLINE):
+       * window.h, window.c (WINDOW_INLINE):
+       Remove.  All uses replaced with INLINE.
+
+2013-09-20  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xterm.c (handle_one_xevent): Revert part of 2013-09-17 change
+       to avoid Bug#15398.
+
+2013-09-19  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32reg.c (w32_get_string_resource): Make the first 2 arguments
+       'const char *' to avoid compiler warnings due to similar change in
+       the prototype of x_get_string_resource.
+
+2013-09-19  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xterm.h (struct x_display_info): New members last_mouse_glyph_frame,
+       last_mouse_scroll_bar, last_mouse_glyph and last_mouse_movement_time,
+       going to replace static variables below.  Adjust comments.
+       * xterm.c (last_mouse_glyph, last_mouse_glyph_frame)
+       (last_mouse_scroll_bar, last_mouse_movement_time): Remove.
+       (note_mouse_movement, XTmouse_position, x_scroll_bar_note_movement)
+       (x_scroll_bar_report_motion, handle_one_xevent, syms_of_xterm):
+       Related users changed.
+       * w32term.h (struct w32_display_info): New members last_mouse_glyph_frame,
+       last_mouse_scroll_bar, last_mouse_scroll_bar_pos, last_mouse_glyph and
+       last_mouse_movement_time, going to replace static variables below.
+       Adjust comments.
+       * w32term.c (last_mouse_glyph_frame, last_mouse_scroll_bar)
+       (last_mouse_scroll_bar_pos, last_mouse_glyph, last_mouse_movement_time):
+       Remove.
+       (note_mouse_movement, w32_mouse_position, w32_scroll_bar_handle_click)
+       (x_scroll_bar_report_motion, syms_of_w32term): Related users changed.
+       * nsterm.h (struct ns_display_info): New members last_mouse_glyph,
+       last_mouse_movement_time and last_mouse_scroll_bar, going to replace
+       static variables below.
+       * nsterm.m (last_mouse_glyph, last_mouse_movement_time)
+       (last_mouse_scroll_bar): Remove.
+       (note_mouse_movement, ns_mouse_position, mouseMoved, mouseEntered)
+       (mouseExited): Related users changed.
+
+2013-09-19  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Do not use external array to process X scroll bar messages.
+       * xterm.c (scroll_bar_windows, scroll_bar_windows_size): Remove.
+       (x_send_scroll_bar_event): Pack window pointer into two slots
+       of XClientMessageEvent if we're 64-bit.  Adjust comment.
+       (x_scroll_bar_to_input_event): Unpack accordingly.
+
+2013-09-18  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Ifdef away recent changes which aren't relevant to NS port.
+       * dispextern.h (x_mouse_grabbed, x_redo_mouse_highlight)
+       [!HAVE_NS]: Declare as such.
+       * frame.c (x_mouse_grabbed, x_redo_mouse_highlight)
+       [!HAVE_NS]: Define as such.
+
+2013-09-18  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * frame.c (x_redo_mouse_highlight): New function
+       to factor out common code used in W32 and X ports.
+       * dispextern.h (x_redo_mouse_highlight): Add prototype.
+       * xterm.h (struct x_display_info):
+       * w32term.h (struct w32_display_info):
+       * nsterm.h (struct ns_display_info): New members
+       last_mouse_motion_frame, last_mouse_motion_x and
+       last_mouse_motion_y, going to replace static variables below.
+       * xterm.c (last_mouse_motion_event, last_mouse_motion_frame)
+       (redo_mouse_highlight): Remove.
+       (note_mouse_movement, syms_of_xterm): Adjust user.
+       (handle_one_xevent): Likewise.  Use x_redo_mouse_highlight.
+       * w32term.c (last_mouse_motion_event, last_mouse_motion_frame)
+       (redo_mouse_highlight): Remove.
+       (note_mouse_movement, syms_of_w32term): Adjust user.
+       (w32_read_socket): Likewise.  Use x_redo_mouse_highlight.
+       * nsterm.m (last_mouse_motion_position, last_mouse_motion_frame):
+       Remove.
+       (note_mouse_movement, mouseMoved, syms_of_nsterm):
+       * nsfns.m (compute_tip_xy): Adjust user.
+
+2013-09-18  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * frame.c (x_mouse_grabbed): New function.
+       * dispextern.h (x_mouse_grabbed): Add prototype.
+       (last_mouse_frame): Remove declaration.
+       * xterm.h (struct x_display_info):
+       * w32term.h (struct w32_display_info):
+       * nsterm.h (struct ns_display_info): New member
+       last_mouse_frame, going to replace...
+       * xdisp.c (last_mouse_frame): ...global variable.
+       (note_tool_bar_highlight):
+       * w32term.c (w32_mouse_position, w32_read_socket):
+       * xterm.c (XTmouse_position, handle_one_xevent):
+       Use x_mouse_grabbed.
+       * nsterm.m (ns_mouse_position, mouseDown): Adjust user.
+
+2013-09-17  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * w32term.c (w32_read_socket): Avoid temporary
+       variables in a call to x_real_positions.
+       * xterm.c (handle_one_xevent): Likewise.
+
+2013-09-17  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * frame.h (x_set_bitmap_icon) [!HAVE_NS]: New function.
+       (x_icon_type): Remove prototype.
+       (x_bitmap_icon) [!HAVE_NS]: Declare as such.
+       * frame.c (x_icon_type): Remove.
+       * w32term.c (x_make_frame_visible, x_iconify_frame):
+       * xterm.c (x_make_frame_visible, x_iconify_frame):
+       Use x_set_bitmap_icon to factor out common code.
+
+2013-09-17  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * dispextern.h (check_x_display_info, x_get_string_resource):
+       Declare here just once and unify the latter.
+       * frame.c (check_x_display_info, x_get_string_resource):
+       * nsterm.h (check_x_display_info):
+       * xrdb.c (x_get_string_resource):
+       * xterm.h (check_x_display_info): Remove prototypes.
+       * nsfns.m (x_get_string_resource): Likewise.  Adjust definition.
+       * w32reg.c (x_get_string_resource): Likewise.
+       (w32_get_rdb_resource): Adjust user.
+
+2013-09-17  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xterm.h (struct x_display_info): New member
+       x_pending_autoraise_frame, going to replace...
+       * xterm.c (pending_autoraise_frame): ...static variable.
+       (x_new_focus_frame, XTread_socket): Adjust users.
+       * w32term.h (struct w32_display_info): New member
+       w32_pending_autoraise_frame, going to replace...
+       * w32term.c (pending_autoraise_frame): ...global variable.
+       (x_new_focus_frame, w32_read_socket): Adjust users.
+
+2013-09-17  Glenn Morris  <rgm@gnu.org>
+
+       * xdisp.c (message_dolog): If we create *Messages*,
+       switch it to messages-buffer-mode.
+
+2013-09-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Don't overuse 'const' in types of locals.
+       * bidi.c (bidi_count_bytes):
+       * gtkutil.c, gtkutil.h (xg_event_is_for_menubar)
+       (xg_event_is_for_scrollbar):
+       * xselect.c (x_handle_property_notify)
+       (x_handle_selection_notify, x_handle_dnd_message):
+       * xsettings.c, xsettings.h (xft_settings_event):
+       * xterm.c (x_handle_net_wm_state, handle_one_event)
+       (x_menubar_window_to_frame, x_detect_focus_change)
+       (construct_mouse_click, note_mouse_movement)
+       (x_scroll_bar_to_input_event, x_scroll_bar_expose)
+       (x_scroll_bar_handle_click, x_scroll_bar_note_movement)
+       (handle_one_xevent, x_handle_net_wm_state):
+       * xterm.h (x_handle_property_notify, x_handle_selection_notify)
+       (x_handle_dnd_message):
+       Avoid unnecessary 'const', typically the second 'const' in
+       'const foo * const arg', a 'const' that does not affect the API
+       and doesn't significantly help the human reader.
+
+2013-09-17  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * image.c (fn_g_type_init) [WINDOWSNT]: Define and load
+       only if Glib < 2.36.0.
+       (fn_g_type_init) [!WINDOWSNT]: Define only if Glib < 2.36.0.
+       * xsettings.c (init_gconf, init_gsettings): Do not check
+       for g_type_init.
+       * xterm.c (handle_one_xevent): Do not call to x_clear_area
+       if GTK >= 2.7.0.
+       (toplevel) [USE_MOTIF]: Include xlwmenu.h to pacify GCC.
+
+2013-09-16  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * xsettings.c (init_gconf, init_gsettings): Check for Glib 2.36.0
+       before calling g_type_init.
+
+       * font.c (syms_of_font): Move call to syms_of_(ns|mac)font ...
+
+       * nsterm.m (syms_of_nsterm): ... to here.
+
+2013-09-16  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xterm.c (toolkit_scroll_bar_interaction): Use bool for boolean.
+       (ignore_next_mouse_click_timeout): Use Time as X does.
+       (handle_one_xevent): Avoid cast and use unsigned comparison.
+
+2013-09-16  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Do not copy X event in handle_one_xevent except KeyPress case.
+       Wnen XEvent is processed, it is unlikely to be changed except
+       KeyPress case, so we can avoid copying and use const pointer to
+       const data to make sure that an event is not changed elsewhere.
+       * xterm.c (handle_one_xevent): Change 2nd arg to 'const XEvent *
+       const' and do not create local copy except for the KeyPress event.
+       Use casts to avoid a few glitches.  Adjust formatting.  Add comments.
+       (SET_SAVED_BUTTON_EVENT): Remove and move the code to the only user.
+       (x_handle_net_wm_state, x_menubar_window_to_frame)
+       (x_detect_focus_change, construct_mouse_click, note_mouse_movement)
+       (x_scroll_bar_to_input_event, x_scroll_bar_expose)
+       (x_scroll_bar_handle_click, x_scroll_bar_note_movement):
+       * gtkutil.c (xg_event_is_for_menubar, xg_event_is_for_scrollbar):
+       * xselect.c (x_handle_property_notify, x_handle_selection_notify)
+       (x_handle_dnd_message):
+       * xsettings.c (xft_settings_event):
+       Use 'const XEvent * const' where appropriate.
+       * xterm.h, gtkutil.h, xsettngs.h: Adjust related prototypes.
+
+2013-09-16  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fix X event waiting to handle multiple frames.
+       * frame.h (struct frame) [HAVE_X_WINDOWS]: New member wait_event_type.
+       * xterm.c (pending_event_wait): Remove.  Adjust users.
+       (x_detect_focus_change): Pass frame arg.
+       (handle_one_xevent): Find related frame early and clear per-frame
+       wait_event_type only if this is an event for the relevant frame.
+       (x_wait_for_event): Use per-frame wait_event_type.
+
+2013-09-15  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsfns.m (Fx_create_frame): Fix font driver registration for
+       GNUStep.
+
+       * font.c (syms_of_font): Check MAC_OS_X_VERSION_MAX_ALLOWED >= 1050
+       for syms_of_macfont.
+
+       * nsterm.m: Include macfont.h.
+       (ns_tmp_flags, ns_tmp_font): Remove.
+       (ns_compute_glyph_string_overhangs): Check for driver Qns.
+       (ns_draw_glyph_string): Use local variables instead of ns_tmp_flags,
+       ns_tmp_font.  Call ns_draw_text_decoration here instead of nsfont.m.
+       (changeFont:): Fix code style.  Check for font driver type when
+       getiing font.
+
+       * nsterm.h (FONT_DESCENT, FONT_ASCENT): Define to (f)->ascent and
+       (f)->descent.
+
+       * nsfont.m (ns_tmp_flags, ns_tmp_font): Remove.
+       (nsfont_open): Set font driver type.
+       Set font->ascent and font->descent.  Figure out font instead of
+       ns_tmp_font, and flags instead of ns_tmp_flags.
+       Fix indentation. Remove call to ns_draw_text_decoration,
+       moved to nsterm.
+
+       * nsfns.m: Include macfont.h.
+       (Fx_create_frame): Register macfont driver, make a better default font.
+       (Fns_popup_font_panel): Get font from macfont driver, if used.
+
+       * macfont.m, macfont.h, maccuvs.h: New files.
+
+       * font.h: Declare syms_of_macfont.
+
+       * font.c (syms_of_font): Call syms_of_macfont.
+
+       * Makefile.in (NS_OBJ, SOME_MACHINE_OBJECTS): Add macfont.o.
+
+2013-09-15  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Drop VERTICAL_SCROLL_BAR_WIDTH_TRIM.  For X, it is zero since 1999,
+       and it is always zero for others, so I assume that this is an ancient
+       leftover which nobody will want to change any more.
+       * xterm.h, w32term.h, nsterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Remove.
+       (VERTICAL_SCROLL_BAR_INSIDE_WIDTH):
+       * frame.c (x_set_scroll_bar_width):
+       * w32fns.c (w32_createscrollbar):
+       * w32term.c (w32_set_vertical_scroll_bar):
+       * xfns.c (x_set_scroll_bar_default_width):
+       * xterm.c (XTflash, x_scroll_bar_create, XTset_vertical_scroll_bar)
+       (x_scroll_bar_expose): Related users changed.
+
+2013-09-15  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xterm.h (FRAME_X_SCREEN_NUMBER): Add comment.
+       (BLACK_PIX_DEFAULT, WHITE_PIX_DEFAULT): Use FRAME_X_SCREEN_NUMBER.
+       (SCROLL_BAR_X_WIDGET, SET_SCROLL_BAR_X_WIDGET) [USE_X_TOOLKIT]:
+       Define as such.
+       * frame.h (FRAME_SMALLEST_CHAR_WIDTH, FRAME_SMALLEST_FONT_HEIGHT):
+       Define once here...
+       * nsterm.h, w32term.h, xterm.h: ...and not here.
+       * w32term.h (SCROLL_BAR_X_WIDGET, SET_SCROLL_BAR_X_WIDGET):
+       Remove unused Xisms.
+       * xterm.c, xfns.c (toplevel): Remove #ifdef HAVE_X_WINDOWS because
+       these modules are never compiled otherwise.
+
+2013-09-14  Eli Zaretskii  <eliz@gnu.org>
+
+       * buffer.c (syms_of_buffer) <left-margin-width, right-margin-width>:
+       Doc fix.  (Bug#15375)
+
+2013-09-13  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Unify Fx_focus_frame between all ports.
+       * frame.h (x_focus_frame): New prototype.
+       * xfns.c (Fx_focus_frame): Remove.
+       (syms_of_xfns): Do not defsubr it.
+       (x_focus_frame): X implementation.
+       * nsfns.m (Fx_focus_frame): Remove.
+       (syms_of_nsfns): Do not defsubr it.
+       (x_focus_frame): NS implementation.
+       * w32term.c (Fx_focus_frame): Remove.
+       (x_focus_on_frame): Rename to...
+       (x_focus_frame): W32 implementation.
+       * w32term.h (x_focus_on_frame): Remove prototype.
+       * w32fns.c (Fx_focus_frame): Remove.
+       (syms_of_w32fns): Do not defsubr it.
+       * frame.c (Fx_focus_frame): Define here.
+       (syms_of_frame): Defsubr here.
+       * gtkutil.c (xg_tool_bar_callback): Use x_focus_frame.
+
+2013-09-13  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Unify FRAME_window_system_DISPLAY_INFO macros between all ports.
+       All of them are replaced with FRAME_DISPLAY_INFO, defined in
+       each port to reference the port-specific window system data.
+       * msdos.h (FRAME_X_DISPLAY_INFO): Remove.
+       (FRAME_DISPLAY_INFO): Define.
+       * w32term.h (FRAME_W32_DISPLAY_INFO, FRAME_X_DISPLAY_INFO): Remove.
+       (FRAME_DISPLAY_INFO): Define.  Adjust users.
+       * xterm.h (FRAME_X_DISPLAY_INFO): Remove.
+       (FRAME_DISPLAY_INFO): Define.  Adjust users.
+       * frame.h (FRAME_RES_X, FRAME_RES_Y): Unify.
+       * font.c, frame.c, gtkutil.c, image.c, menu.c, msdos.c, nsfns.m:
+       * nsfont.m, nsterm.m, w32fns.c, w32font.c, w32menu.c, w32term.c:
+       * w32xfns.c, widget.c, xdisp.c, xfaces.c, xfns.c, xfont.c, xmenu.c:
+       * xselect.c, xterm.c: All related users changed.
+
+2013-09-13  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xterm.h (x_window_to_frame, x_any_window_to_frame)
+       (x_menubar_window_to_frame): Remove prototypes.
+       * xfns.c (x_window_to_frame, x_any_window_to_frame)
+       (x_menubar_window_to_frame, x_top_window_to_frame):
+       Move from here...
+       * xterm.c (x_window_to_frame, x_any_window_to_frame)
+       (x_menubar_window_to_frame, x_top_window_to_frame):
+       ...to here and convert all but the last to static.
+
+2013-09-12  Eli Zaretskii  <eliz@gnu.org>
+
+       * lisp.mk (lisp): Add w32-common-fns.elc.
+
+2013-09-12  Xue Fuqiao  <xfq.free@gmail.com>
+
+       * charset.c (char_charset): Document an exception for char-charset.
+
+2013-09-12  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xterm.h (x_display_info): New field last_user_time...
+       * xterm.c (toplevel): ...to replace static last_user_time.
+       (handle_one_xevent, x_ewmh_activate_frame): Adjust users.
+
+2013-09-12  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xterm.c (x_set_scroll_bar_thumb) [USE_LUCID && !HAVE_XAW3D]: Clip
+       scroll bar values to prevent thumb from disappear and update comment.
+
+2013-09-11  Glenn Morris  <rgm@gnu.org>
+
+       * emacs.c (usage_message): Possessive apostrophe tweak.
+
+2013-09-11  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * nsterm.m (syms_of_nsterm): Use Qns.
+       * w32fns.c (Fx_open_connection): Remove old '#if 0' code.
+       * w32term.c (w32_create_terminal, syms_of_w32term): Use Qw32.
+       * xfns.c (x_display_info_for_name, Fx_open_connection):
+       Remove old '#if 0' code.
+       (syms_of_xfns): Use Qx.
+       * termhooks.h (fullscreen_hook): Remove the leftover.
+       (struct terminal): Fix typo in comment.
+
+2013-09-11  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Cleaning up a few X scroll bar bits.
+       * termhooks.h (enum scroll_bar_part): Add scroll_bar_nowhere member.
+       * xterm.h (struct scroll_bar) [USE_TOOLKIT_SCROLL_BARS && USE_LUCID]:
+       New member last_seen_part, going to replace...
+       * xterm.c [USE_TOOLKIT_SCROLL_BARS]: ...global last_scroll_bar_part.
+       (xt_action_hook) [USE_LUCID]: Adjust user.
+       (xm_scroll_callback, xg_scroll_callback): Do not bloat with
+       Lucid-specific scroll bar support.
+       (xaw_jump_callback, xaw_scroll_callback): Prefer enum scroll_par_part
+       to int and adjust to use last_seen_part member.
+       (x_set_toolkit_scroll_bar_thumb) [USE_LUCID]: Adjust user.
+       (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS && USE_LUCID]:
+       Initialize last_seen_part.
+
+2013-09-11  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * insdel.c (insert_from_buffer_1): Don't mark buffer as modified when
+       insert-buffer-substring an empty string.
+
+2013-09-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * xdisp.c (Ftool_bar_lines_needed): Declare as 'const' if ifdeffed out,
+       avoiding a GCC warning.
+
+2013-09-11  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Ifdef away frame tool bar code when it is not really used.
+       * frame.h (struct frame) [HAVE_WINDOW_SYSTEM && !USE_GTK && !HAVE_NS]:
+       Move tool_bar_window, desired_tool_bar_string, current_tool_bar_string
+       and minimize_tool_bar_window_p under the above.
+       (fset_current_tool_bar_string, fset_desired_tool_bar_string)
+       (fset_tool_bar_window): Likewise.
+       * dispnew.c (clear_current_matrices, clear_desired_matrices)
+       (adjust_frame_glyphs_for_window_redisplay, free_glyphs, update_frame)
+       (change_frame_size_1):
+       * window.c (window_from_coordinates, Frecenter): Adjust users.
+       * window.h (WINDOW_TOOL_BAR_P): Define to zero when frame tool bar
+       code is not really used.
+       * xdisp.c (build_desired_tool_bar_string, display_tool_bar_line)
+       (tool_bar_lines_needed, MAX_FRAME_TOOL_BAR_HEIGHT, tool_bar_item_info)
+       (get_tool_bar_item, handle_tool_bar_click, note_tool_bar_highlight)
+       [!USE_GTK && !HAVE_NS]: Define as such.
+       (Ftool_bar_lines_needed, redisplay_tool_bar, show_mouse_face)
+       (note_mouse_highlight, expose_frame):
+       * xfns.c (x_set_tool_bar_lines):
+       * xterm.c (handle_one_xevent): Adjust users.
+
+2013-09-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix corruption with multiple emacsclient -t instances (Bug#15222).
+       This bug was introduced by my 2013-08-26 patch, which incorrectly
+       assumed that the terminfo implementation doesn't use termcap buffers.
+       * term.c (init_tty) [TERMINFO]: Remove optimization, as
+       these buffers apparently are used after all.
+       * termchar.h (TERMCAP_BUFFER_SIZE) [TERMINFO]: Define here too.
+       (struct tty_display_info): Define members termcap_term_buffer and
+       termcap_strings_buffer even if TERMINFO.
+
+2013-09-11  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fix last change.
+       * data.c (Feqlsign, Flss, Fgtr, Fleq, Fgeq): Add convenient
+       'usage' docstring entry to pacify make-docfile.
+
+2013-09-11  Barry O'Reilly  <gundaetiapo@gmail.com>
+
+       Change comparison functions =, <, >, <=, >= to take many arguments.
+       * data.c: Change comparison functions' interface and implementation.
+       * lisp.h: Make arithcompare available for efficient two arg
+       comparisons.
+       * bytecode.c: Use arithcompare.
+       * fileio.c: Use new interface.
+
+2013-09-11  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * keyboard.c (read_char): Don't break immediate_echo (bug#15332).
+
+2013-09-10  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * eval.c (Feval): Document the new use of `lexical'.
+
+2013-09-09  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Review and drop old frame resize hack.
+       * frame.h (struct frame): Remove force_flush_display_p.
+       * dispnew.c (update_frame): Adjust user and don't call
+       flush_frame here.  The comment has said that there was an issues
+       with redisplaying fringes, but I don't see any differences with
+       and without this hack.  Hopefully we can continue without it.
+       * xdisp.c (clear_garbaged_frames): Adjust user and do not clear
+       current frame matrices twice if resized_p is set.
+
+2013-09-09  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Do not populate pure Xism x_sync to other ports.
+       * frame.h (x_sync): Move under HAVE_X_WINDOWS.
+       * frame.c (other_visible_frames) [HAVE_X_WINDOWS]: Use as such.
+       * nsfns.m, w32xfns.c (x_sync): Remove no-op.
+       * w32term.h (x_sync): Remove prototype.
+
+2013-09-09  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Cleanup frame flushing.
+       * dispextern.h (struct redisplay_interface):
+       Drop flush_display_optional because flush_display is enough
+       for X and flushing via RIF is just a no-op for others.
+       * frame.h (flush_frame): New function.
+       * dispnew.c (update_frame):
+       * minibuf.c (read_minibuf):
+       * xdisp.c (echo_area_display, redisplay_preserve_echo_area):
+       Use it.
+       * keyboard.c (detect_input_pending_run_timers): Do not flush
+       all frames but selected one in redisplay_preserve_echo_area.
+       * nsterm.m (ns_flush): Remove no-op.
+       (ns_redisplay_interface): Adjust user.
+       * w32term.h (x_flush): Remove no-op.
+       (w32_redisplay_interface): Adjust user.
+       * xterm.c (x_flush): Simplify because we do not flush all
+       frames at once any more.  Adjust comment.
+       (x_redisplay_interface): Adjust user.
+
 2013-09-07  Paul Eggert  <eggert@cs.ucla.edu>
 
        Port --without-x --enable-gcc-warnings to Fedora 19.