* lisp/tool-bar.el (tool-bar--image-expression): New function.
(tool-bar-local-item, tool-bar--image-exp): Use it.
(tool-bar-setup): Initialize tool-bar-separator-image-expression.
Use :enable instead of :visible to avoid changing the tool-bar
configuration unnecessarily.
* src/keyboard.c (Vtool_bar_separator_image_expression): New variable.
(parse_tool_bar_item): Use it to obtain image separators for
displays not using native tool-bar separators.
* src/xdisp.c (build_desired_tool_bar_string): Don't handle separators
specially, since this is now done in parse_tool_bar_item.
* lisp/info.el (info-tool-bar-map): Add separators.
* src/gtkutil.c (XG_BIN_CHILD): New macro.
(xg_get_menu_item_label, xg_update_menubar)
(xg_update_menu_item, xg_tool_bar_menu_proxy)
(xg_show_toolbar_item, update_frame_tool_bar): Use it.
(separator_names, xg_separator_p): Move to keyboard.c.
(create_menus, xg_update_submenu, update_frame_tool_bar): Use
menu_separator_name_p.
* src/keyboard.c (parse_tool_bar_item): Allow menu separators in
tool-bar maps.
(menu_separator_name_p): New function, from gtkutil.c.
(separator_names): Move from gtkutil.c.
* src/keyboard.h (menu_separator_name_p): Add prototype.
* src/nsmenu.m (name_is_separator): Function deleted.
(addItemWithWidgetValue): Use menu_separator_name_p.
* src/w32menu.c (name_is_separator): Function deleted.
(add_menu_item): Use menu_separator_name_p.
w32fns.c (Fx_show_tip): Call try_window with last argument
TRY_WINDOW_IGNORE_FONTS_CHANGE. Delete the TODO ifdef: problem
solved. Round up the tip height to an integral multiple of the
frame's line height. Add FRAME_COLUMN_WIDTH to the tip width.
w32fns.c (Fx_show_tip): Call try_window with last argument
TRY_WINDOW_IGNORE_FONTS_CHANGE. Delete the TODO ifdef: problem
solved. Round up the tip height to an integral multiple of the
frame's line height. Add FRAME_COLUMN_WIDTH to the tip width.
xdisp.c (string_pos_nchars_ahead, c_string_pos)
(face_before_or_after_it_pos, next_element_from_string)
(next_element_from_c_string, produce_stretch_glyph): Remove unused
calculations of maximum string length before calling
string_char_and_length and STRING_CHAR_AND_LENGTH.
(string_char_and_length): Update commentary: MAXLEN is no longer
needed.
* keyboard.c (kbd_buffer_get_event): Construct SAVE_SESSION_EVENT
as (Qsave_session arg).
* xsmfns.c (smc_interact_CB): Set arg to Qnil.
(smc_die_CB): Make an event with arg Qt.
(Fhandle_save_session): If event has Qt as argument,
call Fkill_emacs.
* src/fileio.c (Fverify_visited_file_modtime): Default to current buffer.
* doc/lispref/buffers.texi (Modification Time):
verify-visited-file-modtime now defaults to the current buffer.
Disallow old-style backquotes inside new-style backquotes.
Don't count unquotes to figure out when we're "syntactically inside
but semantically outside of a backquote" any more.
Extend the restriction no-unescaped-commas-and-backquotes-in-symbols
to all contexts.
* src/dispextern.h (struct it): New member overlay_strings_charpos.
* src/xdisp.c (next_overlay_string, load_overlay_strings): Record the
charpos where we computed n_overlay_strings.
(next_overlay_string): Load overlay strings at recorded position,
which may not be the same as the iterator's charpos (Bug#7016).
* src/nsterm.h (FRAME_NS_TOOLBAR_HEIGHT): Rename to FRAME_TOOLBAR_HEIGHT.
* src/nsterm.m (x_set_window_size, windowWillResize, initFrameFromEmacs):
Use FRAME_TOOLBAR_HEIGHT.
(x_set_offset): Handle XNegative and YNegative in
f->size_hint_flags.
src/xdisp.c (set_message_1): Force paragraph direction in echo area
be left-to-right.
lisp/simple.el (prog-mode): Set bidi-paragraph-direction to left-to-right.
src/keyboard.c (make_lispy_position): Put a meaningful value in yret
when the click is on the header or mode line.
doc/lispref/commands.texi (Click Events): Document the values of X, Y and
COL, ROW in the event's position, when the click is on the header or
mode line, on the fringes, or in the margins.
Ditto Alt and Command.
* src/nsterm.m (NSLeftControlKeyMask, NSLeftCommandKeyMask)
(NSLeftAlternateKeyMask): New defines.
(keyDown): Parse left and right keys separatly.
so that they do not get optimized away.
* configure.in (EXTERNALLY_VISIBLE): New definition.
* src/emacs.c (gdb_use_union, gdb_valbits,gdb_gctypebits)
(gdb_data_seg_bits, gdb_array_mark_flag, PVEC_FLAG)
(gdb_pvec_type):
* src/print.c (print_output_debug_flag):
* src/lisp.h (debug_print): Mark as EXTERNALLY_VISIBLE.
(safe_debug_print): New declaration.