"Fossies" - the Fresh Open Source Software Archive

Member "emacs-26.1/src/ChangeLog.13" (23 Apr 2018, 713783 Bytes) of package /linux/misc/emacs-26.1.tar.xz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "ChangeLog.13": 25.3_vs_26.1.

    1 2015-04-06  Koichi Arakawa  <arakawa@pp.iij4u.or.jp>  (tiny change)
    2 
    3 	* w32proc.c (w32_executable_type): Look for the DLL name in the
    4 	correct section.  This avoids segfaults with some executables.
    5 	(Bug#20264)
    6 
    7 2015-04-04  Jan Djärv  <jan.h.d@swipnet.se>
    8 
    9 	* xselect.c (x_reply_selection_request)
   10 	(receive_incremental_selection): Call set_property_change_object
   11 	inside block_input.
   12 	(wait_for_property_change): Move set property_change_reply(_object)
   13 	outside of this function (Bug#16737).
   14 	(set_property_change_object): New function.
   15 
   16 2015-04-03  Jan Djärv  <jan.h.d@swipnet.se>
   17 
   18 	* xterm.c (handle_one_xevent): Always redraw tool tips on
   19 	MapNotify.  Update tool tip frame sizes on ConfigureNotify.
   20 
   21 2015-03-31  Eli Zaretskii  <eliz@gnu.org>
   22 
   23 	* keyboard.c (read_key_sequence): Don't let
   24 	this_single_command_key_start become negative.  (Bug#20223)
   25 
   26 2015-03-29  Jan Djärv  <jan.h.d@swipnet.se>
   27 
   28 	* gtkutil.c (xg_display_open):
   29 	* xterm.c (x_display_ok, x_term_init): Block SIGIO when opening
   30 	a display (Bug#19175).
   31 
   32 2015-03-29  Martin Rudalics  <rudalics@gmx.at>
   33 
   34 	* gtkutil.c (update_theme_scrollbar_width): Don't round up
   35 	scroll bar width with GTK3 (Bug#20182).
   36 
   37 2015-03-28  Jan Djärv  <jan.h.d@swipnet.se>
   38 
   39 	* xsmfns.c (smc_save_yourself_CB): Return if Vinvocation_name or
   40 	user_login_name are not strings.
   41 
   42 2015-03-28  Eli Zaretskii  <eliz@gnu.org>
   43 
   44 	* w32.c (sys_connect): Fix a mistake in previous commit that broke
   45 	blocking connections.  (Bug#20159)
   46 
   47 2015-03-27  Paul Eggert  <eggert@cs.ucla.edu>
   48 
   49 	Avoid some core dumps in X session management
   50 	Derived from a bug report by Nicolas Richard in:
   51 	https://bugs.gnu.org/20191#20
   52 	* xsmfns.c (smc_save_yourself_CB): Don't dump core if
   53 	invocation-name is not a string.  Initialize user-login-name if it
   54 	is not already initialized, and don't dump core if it is not a
   55 	string.
   56 	(create_client_leader_window): Don't dump core if x-resource-name
   57 	and x-resource-class are not both strings.
   58 	(x_session_initialize): Don't dump core if x-session-previous-id,
   59 	invocation-directory, and invocation-name are not strings.
   60 
   61 	Port user-login-name initialization to Qnil == 0
   62 	Derived from a bug report by Nicolas Richard in:
   63 	https://bugs.gnu.org/20191#20
   64 	* editfns.c (Fuser_login_name, Fuser_real_login_name)
   65 	(syms_of_editfns): Don't rely on all-bits-zero being an Elisp integer,
   66 	as this is no longer true now that Qnil == 0.
   67 
   68 	Assume !BROKEN_NON_BLOCKING_CONNECT
   69 	From a suggestion by Eli Zaretskii in:
   70 	https://lists.gnu.org/r/emacs-devel/2015-03/msg00824.html
   71 	* process.c (NON_BLOCKING_CONNECT): Simplify by assuming that
   72 	BROKEN_NON_BLOCKING_CONNECT is not defined.
   73 	(SELECT_CAN_DO_WRITE_MASK): Remove, and assume it's now true.
   74 
   75 2015-03-27  Eli Zaretskii  <eliz@gnu.org>
   76 
   77 	* lread.c (substitute_object_recurse): For sub-char-tables, start
   78 	the recursive SUBSTITUTE loop from index of 2, to skip the
   79 	non-Lisp members of the sub-char-table.  See the discussion at
   80 	https://lists.gnu.org/r/emacs-devel/2015-03/msg00520.html
   81 	for the details.
   82 
   83 	Support non-blocking connect on MS-Windows.
   84 	Based on ideas from Kim F. Storm <storm@cua.dk>, see
   85 	https://lists.gnu.org/r/emacs-devel/2006-12/msg00873.html.
   86 
   87 	* w32proc.c (reader_thread): If the FILE_CONNECT flag is set, call
   88 	'_sys_wait_connect'.  If it returns STATUS_CONNECT_FAILED, exit
   89 	the thread with code 2.
   90 	(sys_select): Support 'wfds' in addition to 'rfds'.  If a
   91 	descriptor in 'wfds' has its bit set, but the corresponding
   92 	fd_info member doesn't have its FILE_CONNECT flag set, ignore the
   93 	descriptor.  Otherwise, acknowledge a successful non-blocking
   94 	connect by resetting the FILE_CONNECT flag and setting cp->status
   95 	to STATUS_READ_ACKNOWLEDGED.  (Bug#20159)
   96 
   97 	* w32.h (STATUS_CONNECT_FAILED): New enumeration value.
   98 	(struct _child_process): New member 'errcode'.
   99 	(FILE_CONNECT): New flag.
  100 	(_sys_wait_connect): Add prototype.
  101 
  102 	* w32.c (pfn_WSAEnumNetworkEvents): New function pointer.
  103 	(init_winsock): Load WSAEnumNetworkEvents from winsock DLL.
  104 	(set_errno): Map WSAEWOULDBLOCK and WSAENOTCONN.
  105 	(sys_connect): Support non-blocking 'connect' calls by setting the
  106 	FILE_CONNECT flag in the fd_info member and returning EINPROGRESS.
  107 	(_sys_read_ahead): Add debug message if this function is called
  108 	for a descriptor that waits for a non-blocking connect to complete.
  109 	(_sys_wait_connect): New function.
  110 	(sys_read): Support STATUS_CONNECT_FAILED.  Return the error code
  111 	recorded by _sys_wait_connect when the non-blocking connect
  112 	failed.  Don't call WSAGetLastError before a call to set_errno had
  113 	a chance to use its value, since WSAGetLastError clears the last
  114 	error.
  115 
  116 2015-03-25  Stefan Monnier  <monnier@iro.umontreal.ca>
  117 
  118 	* editfns.c (save_excursion_save): Don't save the mark.
  119 	(save_excursion_restore): Don't restore the mark.
  120 	(Fsave_excursion): Fix docstring accordingly.
  121 
  122 2015-03-24  Paul Eggert  <eggert@cs.ucla.edu>
  123 
  124 	Fix minor ldexp issues
  125 	* floatfns.c (Fldexp): Require 2 args.  Avoid undefined behavior
  126 	if the exponent is out of 'int' range.  Improve documentation.
  127 	(Bug#20185)
  128 
  129 2015-03-24  Daniel Colascione  <dancol@dancol.org>
  130 
  131 	* process.c (Fprocess_running_child_p): Return number identifier of
  132 	the foreground process group if we know it.
  133 
  134 2015-03-23  Paul Eggert  <eggert@cs.ucla.edu>
  135 
  136 	Minor refactoring of new Fmake_process code
  137 	* process.c (Fmake_process): Refactor to avoid call to Flength, to
  138 	avoid cast to 'char **', and to reduce indenting and reuse of locals.
  139 
  140 2015-03-23  Daiki Ueno  <ueno@gnu.org>
  141 
  142 	* process.c (Fmake_process): New function.
  143 	(create_process, create_pty): Check p->pty_flag instead of
  144 	Vprocess_connection_type.
  145 	(syms_of_process): Register QCcommand, QCconnection_type, Qpty,
  146 	Qpipe, and Smake_process.  Unregister Sstart_process.
  147 
  148 2015-03-22  Jan Djärv  <jan.h.d@swipnet.se>
  149 
  150 	* fontset.c (fontset_pattern_regexp): Replace + 1 with + 3 for
  151 	regexsize (Bug#20156).
  152 
  153 2015-03-21  Eli Zaretskii  <eliz@gnu.org>
  154 
  155 	* emacs.c (synchronize_locale) [WINDOWSNT]: Ignore 'category' and
  156 	always use LC_ALL instead.  Fixes problems with setting
  157 	system-time-locale to something non-default.
  158 
  159 2015-03-18  Glenn Morris  <rgm@gnu.org>
  160 
  161 	* frame.h (x_set_bitmap_icon): Don't set the icon if icon-type is
  162 	nil/not present in the parameter alist.  (Bug#19680)
  163 
  164 2015-03-18  Stefan Monnier  <monnier@iro.umontreal.ca>
  165 
  166 	* alloc.c (purecopy): Handle hash-tables.
  167 
  168 2015-03-16  Stefan Monnier  <monnier@iro.umontreal.ca>
  169 
  170 	* minibuf.c (Fread_buffer): Add `predicate' argument.
  171 	* callint.c (Fcall_interactively): Adjust calls accordingly.
  172 
  173 2015-03-15  Eli Zaretskii  <eliz@gnu.org>
  174 
  175 	* xdisp.c (handle_invisible_prop): Fix up it->position even when
  176 	we are going to load overlays at the beginning of the invisible text.
  177 	(setup_for_ellipsis): Reset the ignore_overlay_strings_at_pos_p
  178 	flag also here.
  179 	(next_overlay_string): Set the overlay_strings_at_end_processed_p
  180 	flag only if the overlays just processed were actually loaded at EOB.
  181 
  182 2015-03-14  Daniel Colascione  <dancol@dancol.org>
  183 
  184 	* emacs.c (standard_args): Add --no-x-resources.
  185 	(usage_message): Document that -Q implies --no-x-resources.
  186 
  187 2015-03-13  Paul Eggert  <eggert@cs.ucla.edu>
  188 
  189 	* frame.c (x_get_resource_string) [!USE_GTK]: Don't define.
  190 
  191 	* editfns.c, systime.h (mktime_z) [!HAVE_TZALLOC]: Now static.
  192 
  193 2015-03-12  Eli Zaretskii  <eliz@gnu.org>
  194 
  195 	* w32font.c (font_supported_scripts): Add subranges for Latin
  196 	Supplement, Latin Extended-A/B, Vai, Supplemental Punctuation, Tai
  197 	Le, Buginese, Yijing Hexagrams, Ancient Greek Numbers, Tai Xuan
  198 	Jing, Counting Rods, Sundanese, Lepcha, Ol Chiki, Saurashtra,
  199 	Kayah Li, Rejang, Ancient Symbols, Phistos Disc, Carian, Lycian,
  200 	Lydian, Dominoe Tiles, and Mahjong Tiles.  Break the Mathematical
  201 	Alphanumeric Symbols into several "scripts" like fontset.el does.
  202 	(Bug#19993)
  203 	(syms_of_w32font): DEFSYM all the new script symbols.
  204 
  205 2015-03-07  Eli Zaretskii  <eliz@gnu.org>
  206 
  207 	* w32fns.c <ImmReleaseContext_Proc, ImmSetCompositionWindow_Proc>:
  208 	Fix typedefs to be consistent with the corresponding w32 API
  209 	signatures.
  210 	(w32_wnd_proc) <WM_IME_STARTCOMPOSITION>: Don't invoke
  211 	DefWindowProc if we successfully handled the message, as doing so
  212 	causes problems in displaying selection dialogs.  (Bug#11732)
  213 
  214 2015-03-05  Paul Eggert  <eggert@cs.ucla.edu>
  215 
  216 	Work around x86 glibc backtrace bug
  217 	* sysdep.c (emacs_backtrace): Don't dump core on x86.
  218 	(Bug#19959)
  219 
  220 2015-03-05  Eli Zaretskii  <eliz@gnu.org>
  221 
  222 	* keyboard.c (make_lispy_position): When the click is on the
  223 	right-side vertical scroll bar, pass the rightmost X coordinate to
  224 	buffer_posn_from_coords, so that the returned text position
  225 	reflects the closest point to the click.  Fixes region extension
  226 	when mouse moves outside the Emacs frame that has scroll bars on
  227 	the right.
  228 
  229 2015-03-04  Martin Rudalics  <rudalics@gmx.at>
  230 
  231 	* frame.c (x_set_font): Try to keep frame height and width
  232 	unchanged if tool bar size changes with new font.
  233 
  234 2015-03-03  Eli Zaretskii  <eliz@gnu.org>
  235 
  236 	* search.c (find_newline): Avoid assertion violations in
  237 	CHAR_TO_BYTE when a portion of the buffer was deleted and we look
  238 	for newlines near the end of the buffer.  This happens in Rmail
  239 	when JIT font-lock fontifies a newly displayed portion of the
  240 	buffer.
  241 
  242 2015-03-03  Eli Zaretskii  <eliz@gnu.org>
  243 
  244 	* w32fns.c (Fw32__menu_bar_in_use): New internal function.
  245 	(Bug#19925)
  246 
  247 2015-03-03  Glenn Morris  <rgm@gnu.org>
  248 
  249 	* fileio.c (Fmake_temp_name): Doc tweaks.  (Bug#19858)
  250 
  251 2015-03-03  Eli Zaretskii  <eliz@gnu.org>
  252 
  253 	* menu.c (Fx_popup_menu) [HAVE_X_WINDOWS]: Call
  254 	mouse_position_for_popup only for X frames.  (Bug#19862)
  255 
  256 2015-03-03  Eli Zaretskii  <eliz@gnu.org>
  257 
  258 	* buffer.c (syms_of_buffer): Doc fix.  (Bug#19841)
  259 
  260 2015-03-03  Eli Zaretskii  <eliz@gnu.org>
  261 
  262 	* xfaces.c (map_tty_color): Use assoc_no_quit instead of
  263 	assq_no_quit to fetch color definition by its string name.
  264 	(Bug#19802)
  265 
  266 2015-03-03  Eli Zaretskii  <eliz@gnu.org>
  267 
  268 	* xdisp.c (move_it_in_display_line_to): Handle the case where the
  269 	last character of a screen line is whitespace, and we are under
  270 	word-wrap with overflow-newline-into-fringe turned on.
  271 	(Bug#19769)
  272 
  273 2015-03-03  Eli Zaretskii  <eliz@gnu.org>
  274 
  275 	* xdisp.c (handle_stop, handle_single_display_spec)
  276 	(next-element_from_image): Don't reset the
  277 	ignore_overlay_strings_at_pos_p flag here.
  278 	(next_element_from_buffer): Reset ignore_overlay_strings_at_pos_p
  279 	here.
  280 	(next_overlay_string): Set ignore_overlay_strings_at_pos_p here,
  281 	after we've exhausted all the overlay strings at the current
  282 	position.  (Bug#19307)
  283 
  284 2015-03-03  Eli Zaretskii  <eliz@gnu.org>
  285 
  286 	* xdisp.c (set_iterator_to_next): Set value of stop_charpos
  287 	according to the object we are about to resume iterating.
  288 	(Bug#19307)
  289 
  290 	* dispnew.c (adjust_glyph_matrix): Set the update_mode_line flag
  291 	of the window whose current glyph matrix was resized, which
  292 	disables the mode-line row as side effect.
  293 
  294 	* xdisp.c (redisplay_window): Don't avoid redisplay of a window
  295 	whose update_mode_line flag is set.  (Bug#19721)
  296 
  297 2015-03-03  Eli Zaretskii  <eliz@gnu.org>
  298 
  299 	* dispextern.h (FACE_FOR_CHAR): Fix the commentary.
  300 
  301 2015-03-03  Daniel Colascione  <dancol@dancol.org>
  302 
  303 	* alloc.c (syms_of_alloc): Rename `gc-precise-p' to `gc-precise'.
  304 
  305 2015-03-03  Paul Eggert  <eggert@cs.ucla.edu>
  306 
  307 	* alloc.c (run_finalizers): Omit unused local.
  308 	Also, redo newly-added code as per usual Emacs style.
  309 
  310 2015-03-03  Martin Rudalics  <rudalics@gmx.at>
  311 
  312 	* frame.c (adjust_frame_size): If the pixel sizes remain
  313 	unchanged but the number of lines or columns of the frame
  314 	changes, run `window--pixel-to-total' (Bug#19972).
  315 	(Qwindow_pixel_to_total): DEFSYM it.
  316 
  317 2015-03-03  Daniel Colascione  <dancol@dancol.org>
  318 
  319 	* print.c (print_object): Print whether a finalizer has
  320 	been called.
  321 
  322 	* data.c (Ftype_of): Make `type-of' work with finalizers.
  323 	(syms_of_data): Register Qfinalizer.
  324 
  325 2015-03-02  Daniel Colascione  <dancol@dancol.org>
  326 
  327 	* print.c (print_object): Print finalizers.
  328 
  329 	* alloc.c:
  330 	(finalizers, doomed_finalizers): New variables.
  331 	(init_finalizer_list, finalizer_insert, unchain_finalizer)
  332 	(mark_finalizer_list, queue_doomed_finalizers)
  333 	(run_finalizer_handler, run_finalizer_function, run_finalizers):
  334 	New functions.
  335 	(garbage_collect_1, mark_object, sweep_misc)
  336 	(init_alloc_once, syms_of_alloc): Support finalizers.
  337 	(gc-precise-p): New Lisp variable.
  338 
  339 	* lisp.h (Lisp_Misc_Type): New value Lisp_Misc_Finalizer.
  340 	(FINALIZERP, XFINALIZER): New functions.
  341 	(Lisp_Finalizer): New structure.
  342 
  343 2015-02-28  Paul Eggert  <eggert@cs.ucla.edu>
  344 
  345 	* character.c (alphabeticp, decimalnump): Avoid undefined behavior
  346 	if CATEGORY is not an integer, or is an integer out of
  347 	unicode_category_t range.
  348 
  349 2015-02-28  Martin Rudalics  <rudalics@gmx.at>
  350 
  351 	* frame.c (make_initial_frame, Fmake_terminal_frame):
  352 	Set can_x_set_window_size and after_make_frame (Bug#19962).
  353 
  354 2015-02-28  Eli Zaretskii  <eliz@gnu.org>
  355 
  356 	* character.c (alphabeticp, decimalnump): New functions.
  357 	* character.h (alphabeticp, decimalnump): Add prototypes.
  358 
  359 	* regex.c (ISALNUM, ISALPHA): Check Unicode character properties
  360 	for multibyte characters by calling alphabeticp and decimalnump.
  361 	(BIT_ALPHA, BIT_ALNUM): New bit masks.
  362 	(re_wctype_to_bit): Return them when the class is RECC_ALPHA or
  363 	RECC_ALNUM.
  364 	(re_match_2_internal): Call ISALPHA and ISALNUM when appropriate.
  365 	(Bug#19878)
  366 
  367 2015-02-27  Jan Djärv  <jan.h.d@swipnet.se>
  368 
  369 	* xterm.h (x_real_pos_and_offsets): Take outer_border as arg also.
  370 
  371 	* xmenu.c (x_menu_show): Adjust for new arg to x_real_pos_and_offsets.
  372 
  373 	* xfns.c (x_real_pos_and_offsets): Take outer_border as arg also.
  374 	Initialize all args.  Get outer_border from window attributes.
  375 	Fix typo for top_offset_y.
  376 	(x_real_positions): Adjust for new arg to x_real_pos_and_offsets.
  377 	(Fx_frame_geometry): Get outer_border also.  Use attrs.width/height.
  378 
  379 2015-02-27  Mark Laws  <mdl@60hz.org>
  380 
  381 	Support daemon mode on MS-Windows (bug#19688)
  382 	* emacs.c <w32_daemon_event> [WINDOWSNT]: New global var.
  383 	(main) [WINDOWSNT]: Initialize it to NULL.  Create the event to
  384 	signal clients we are ready for connections.
  385 	(Fdaemon_initialized): Use DAEMON_RUNNING.
  386 	[WINDOWSNT]: MS-Windows specific code to signal clients we are
  387 	ready for connections.
  388 
  389 	* lisp.h (DAEMON_RUNNING): New macro, encapsulates Posix and
  390 	MS-Windows conditions for running in daemon mode.
  391 
  392 	* minibuf.c (read_minibuf): Use DAEMON_RUNNING.
  393 
  394 	* keyboard.c (kbd_buffer_get_event): Use DAEMON_RUNNING.
  395 
  396 	* dispnew.c (init_display) [WINDOWSNT]: Initialize frames/terminal
  397 	even in daemon mode.
  398 
  399 2015-02-26  Jan Djärv  <jan.h.d@swipnet.se>
  400 
  401 	* xmenu.c (create_and_show_popup_menu): Call XTranslateCoordinates,
  402 	dont use OUTER_TO_INNER macros.
  403 	(x_menu_show): Call x_real_pos_and_offsets, don't use
  404 	OUTER_TO_INNER macros.
  405 
  406 2015-02-26  Eli Zaretskii  <eliz@gnu.org>
  407 
  408 	* dispextern.h (FACE_FOR_CHAR): Fix the commentary.
  409 
  410 2015-02-26  Hans Wennborg  <hwennborg@google.com>  (tiny change)
  411 
  412 	* emacs.c (decode_env_path): Add parentheses around ternary
  413 	operator to increase readability and pacify compiler warnings.
  414 
  415 2015-02-26  Eli Zaretskii  <eliz@gnu.org>
  416 
  417 	* w32.c (sys_readdir): Map ERROR_NOT_READY (as in "device not
  418 	ready") to ENOENT.
  419 
  420 2015-02-26  Paul Eggert  <eggert@cs.ucla.edu>
  421 
  422 	* xfns.c (x_real_pos_and_offsets): Fix pointer signedness.
  423 
  424 2015-02-25  Jan Djärv  <jan.h.d@swipnet.se>
  425 
  426 	* xterm.h (struct x_output): Remove x_pixels_outer_diff,
  427 	y_pixels_outer_diff, FRAME_OUTER_TO_INNER_DIFF_X,
  428 	FRAME_OUTER_TO_INNER_DIFF_Y. Declare x_real_pos_and_offsets.
  429 
  430 	* xmenu.c (create_and_show_popup_menu): Use XTranslateCoordinates
  431 	instead of OUTER_TO_INNER_DIFF macros.
  432 
  433 	* xfns.c (x_real_pos_and_offsets): New function, basically the code
  434 	from x_real_positions.
  435 	(x_real_positions): Call x_real_pos_and_offsets.
  436 	(x_relative_mouse_position): Use XTranslateCoordinates instead of
  437 	OUTER_TO_INNER_DIFF macros.
  438 	(Fx_frame_geometry): Get offsets with x_real_pos_and_offsets,
  439 	border from window attributes.  Adjust tool bar and menu widths.
  440 
  441 	* w32fns.c (x_real_positions): Remove setting of x_pixels_diff,
  442 	y_pixels_diff.
  443 
  444 	* frame.h (struct frame): Remove x_pixels_diff, y_pixels_diff.
  445 
  446 2015-02-25  Paul Eggert  <eggert@cs.ucla.edu>
  447 
  448 	Backtrace after malloc arena is corrupted
  449 	Without this change, if the malloc arena is corrupted and then
  450 	'backtrace' is called, the backtrace can crash because 'backtrace'
  451 	calls 'malloc'.  For more, please see:
  452 	https://sourceware.org/ml/libc-alpha/2015-02/msg00678.html
  453 	* emacs.c (main): Initialize tables used by 'backtrace'.
  454 	* sysdep.c (emacs_backtrace): Document the newly used part of the API.
  455 
  456 2015-02-22  Jan Djärv  <jan.h.d@swipnet.se>
  457 
  458 	* nsfns.m (Fx_frame_geometry): New function.
  459 	(syms_of_nsfns): Defsubr Sx_frame_geometry.
  460 
  461 2015-02-22  Paul Eggert  <eggert@cs.ucla.edu>
  462 
  463 	Spelling fixes
  464 	* lisp.h (DEFINE_NON_NIL_Q_SYMBOL_MACROS):
  465 	Rename from DEFINE_NONNIL_Q_SYMBOL_MACROS.  All uses changed.
  466 
  467 2015-02-21  Eli Zaretskii  <eliz@gnu.org>
  468 
  469 	* w32term.c (queue_notifications):
  470 	* w32inevt.c (handle_file_notifications):
  471 	* w32font.c (w32_enumfont_pattern_entity): Prefer 'Qfoo' to
  472 	'intern ("foo")'.
  473 
  474 2015-02-21  Paul Eggert  <eggert@cs.ucla.edu>
  475 
  476 	Prefer 'Qfoo' to 'intern ("foo")'
  477 	* buffer.c (syms_of_buffer):
  478 	* bytecode.c (exec_byte_code):
  479 	* callint.c (Fcall_interactively):
  480 	* callproc.c (create_temp_file):
  481 	* charset.c (define_charset_internal):
  482 	* coding.c (syms_of_coding):
  483 	* editfns.c (syms_of_editfns):
  484 	* emacs.c (main):
  485 	* fns.c (syms_of_fns):
  486 	* frame.c (delete_frame, Fframe_parameters):
  487 	* keyboard.c (syms_of_keyboard):
  488 	* keymap.c (syms_of_keymap):
  489 	* minibuf.c (read_minibuf, syms_of_minibuf):
  490 	* nsfns.m (ns_cursor_type_to_lisp):
  491 	* textprop.c (syms_of_textprop):
  492 	* xdisp.c (Fformat_mode_line, syms_of_xdisp):
  493 	* xfns.c (x_create_tip_frame, Fx_select_font):
  494 	* xml.c (parse_region):
  495 	Prefer constants like 'Qfoo' to calls like 'intern ("foo")'.
  496 	* buffer.c (syms_of_buffer): OK to do (put 'erase-buffer 'disabled
  497 	t) here now ...
  498 	(keys_of_buffer): ... instead of here.
  499 	* ftfont.c (syms_of_ftfont): Move DEFSYM of Qmono from here ...
  500 	* xfns.c (syms_of_xfns): ... to here, since ftfont.c is more
  501 	optional than xfns.c.
  502 
  503 2015-02-20  Jan Djärv  <jan.h.d@swipnet.se>
  504 
  505 	* emacs.c (terminate_due_to_signal): Move totally_unblock_input after
  506 	setting fatal_error_in_progress, so gobble_input and *read_socket are
  507 	not read if there are pending_signals.
  508 
  509 2015-02-20  Paul Eggert  <eggert@cs.ucla.edu>
  510 
  511 	Simplify binary I/O configuration
  512 	* lread.c (Fload): Prefer FOPEN_TEXT and FOPEN_BINARY to #ifdef DOS_NT.
  513 	* sysstdio.h: Add copyright notice.  Include <fcntl.h>.
  514 	(FOPEN_BINARY, FOPEN_TEXT): New macros.
  515 	* xfaces.c (Fx_load_color_file): Use FOPEN_TEXT, since POSIX
  516 	doesn't guarantee that "t" will work.
  517 
  518 2015-02-19  Eli Zaretskii  <eliz@gnu.org>
  519 
  520 	* keyboard.c (read_char): Make sure this_single_command_key_start
  521 	is in sync with this_command_key_count, around the call to
  522 	input-method-function.  (Bug#19774)
  523 
  524 2015-02-19  Fujii Hironori  <fujii.hironori@gmail.com>  (tiny change)
  525 
  526 	* w32fns.c (w32_wnd_proc) <WM_IME_STARTCOMPOSITION>: Pass the
  527 	message to DefWindowProc, after positioning the IME window, to
  528 	trigger its display.  (Bug#11732)
  529 
  530 2015-02-18  Eli Zaretskii  <eliz@gnu.org>
  531 
  532 	* emacs.c (Fkill_emacs): Exit with specified exit code even if
  533 	stdin is at EOF.  (Bug#19897)
  534 
  535 2015-02-18  Oscar Fuentes <ofv@wanadoo.es>
  536 
  537 	* keyboard.c (read_char): When there is an input method function,
  538 	do not restore the echo area if a prefix argument is being
  539 	introduced.  (Bug#19875)
  540 
  541 2015-02-16  Kelly Dean  <kelly@prtime.org>
  542 
  543 	* src/keyboard.c (timer_check_2): Fix incorrect comment.
  544 
  545 2015-02-14  Martin Rudalics  <rudalics@gmx.at>
  546 
  547 	* xterm.c (x_frame_normalize_before_maximize): Fix doc-string.
  548 	Suggested by Alan Mackenzie <acm@muc.de>.
  549 
  550 2015-02-14  Eli Zaretskii  <eliz@gnu.org>
  551 
  552 	* menu.c (Fx_popup_menu) [HAVE_X_WINDOWS]: Call
  553 	x_relative_mouse_position only for X frames.  (Bug#19862)
  554 
  555 2015-02-13  Paul Eggert  <eggert@cs.ucla.edu>
  556 
  557 	Better support for future plugins
  558 	* lisp.h (DEFINE_LISP_SYMBOL): New macro, replacing and simplifying
  559 	DEFINE_LISP_SYMBOL_BEGIN / DEFINE_LISP_SYMBOL_END.  All uses changed.
  560 	(DEFINE_NONNIL_Q_SYMBOL_MACROS): New macro, defaulting to true.
  561 
  562 2015-02-11  Martin Rudalics  <rudalics@gmx.at>
  563 
  564 	* w32term.c (w32_read_socket): In SIZE_MAXIMIZED and
  565 	SIZE_RESTORED cases correctly handle `maximized' value for the
  566 	`fullscreen' parameter.  Don't use 'maximized' frame parameter
  567 	any more.
  568 	(w32fullscreen_hook): Include menu bar height when calculating
  569 	new text height in FULLSCREEN_BOTH case.
  570 	* xterm.c (do_ewmh_fullscreen): Handle transition from
  571 	FULLSCREEN_BOTH to FULLSCREEN_MAXIMIZED when
  572 	x_frame_normalize_before_maximize is set.
  573 
  574 2015-02-10  Paul Eggert  <eggert@cs.ucla.edu>
  575 
  576 	Use bool for boolean in xdisp.c
  577 	* dispextern.h (display_prop_intangible_p, resize_mini_window)
  578 	(pixel_to_glyph_coords, mark_window_display_accurate)
  579 	(compute_display_string_pos, handle_tool_bar_click)
  580 	(x_intersect_rectangles, clear_mouse_face, display_tty_menu_item):
  581 	* lisp.h (setup_echo_area_for_printing, message_with_string)
  582 	(pos_visible_p): Use bool for boolean.
  583 	* xdisp.c: Use bool, true, false intstead of int, 1, 0.
  584 	Remove unnecessary forward decls.
  585 	(trace_move) [DEBUG_TRACE_MOVE]: Now static.
  586 	(CHECK_IT, CHECK_WINDOW_END):
  587 	Now an inline function that is always defined.
  588 	(check_it) [0]:
  589 	(check_window_end) [oGLYPH_DEBUG && ENABLE_CHECKING]:
  590 	Remove; no longer needed.
  591 	(handle_stop): Prefer (X && !Y) to (X ? !Y : 0).
  592 	(get_overlay_strings): Omit unnecessary casts.
  593 	(forward_to_next_line_start):
  594 	(Ftool_bar_height):
  595 	Prefer !BOOL to (BOOL ? 0 : 1).
  596 	(next_element_function): New typedef.
  597 	(get_next_element): Use it.  Now const.
  598 	(IT_POS_VALID_AFTER_MOVE_P): Prefer !X || Y==0 to (X ? Y==0 : 1).
  599 	(vmessage): Now ATTRIBUTE_FORMAT_PRINTF (1, 0), to pacify GCC 4.9.2
  600 	(display_echo_area): Prefer BOOLEXPR to BOOLEXPR ? 1 : 0.
  601 	(tool_bar_item_info): Simplify.
  602 	(invisible_prop): Rename from invisible_p, since it doesn't
  603 	return bool.  All callers changed.
  604 	(x_produce_glyphs): Simplify.
  605 
  606 2015-02-09  Paul Eggert  <eggert@cs.ucla.edu>
  607 
  608 	Check for some overflows in vertical-motion
  609 	* indent.c (window_column_x): New function.
  610 	(Fvertical_motion): Use it to protect against integer overflow
  611 	when computing column.  Prefer extract_float to doing things by hand.
  612 	Avoid unnecessary casts.
  613 
  614 	* xfont.c: Minor style fixes
  615 	(xfont_list_pattern): Reindent to 80 cols and use Emacs-style comments.
  616 	Redo loop so that less indentation is needed.
  617 
  618 2015-02-09  Eli Zaretskii  <eliz@gnu.org>
  619 
  620 	* indent.c (Fvertical_motion): Accept an additional argument
  621 	CUR-COL and use it as the starting screen coordinate.
  622 	* window.c (window_scroll_line_based, Fmove_to_window_line):
  623 	All callers of vertical-motion changed.
  624 
  625 2015-02-09  Dima Kogan  <dima@secretsauce.net>
  626 
  627 	* font.c (font_score): Remove unused variable assignment.
  628 
  629 2015-02-09  Dima Kogan  <dima@secretsauce.net>
  630 
  631 	* xfaces.c (realize_basic_faces): Don't set Qscalable_fonts_allowed to
  632 	t.
  633 	* font.c (font_score): Try to find a font without scaling first,
  634 	and only accept scalable fonts if we did not get a match (Bug#19117).
  635 
  636 2015-02-09  Stefan Monnier  <monnier@iro.umontreal.ca>
  637 
  638 	* keyboard.c (syms_of_keyboard): Use non-nil default value.
  639 
  640 2015-02-09  Paul Eggert  <eggert@cs.ucla.edu>
  641 
  642 	Use C99's INFINITY and NAN macros
  643 	* lread.c: Include <math.h>.
  644 	(string_to_number): Use INFINITY and NAN rather than rolling our own.
  645 	This avoids some runtime diagnostics when building with
  646 	gcc -fsanitize=undefined.
  647 
  648 	Fix bidi_explicit_dir_char undefined behavior
  649 	* bidi.c (bidi_explicit_dir_char): Avoid subscript error when
  650 	argument is BIDI_EOB.  This can happen in bidi_level_of_next_char.
  651 
  652 	Better distinguish infinite from invalid times
  653 	* editfns.c (check_time_validity): New function.
  654 	(decode_time_components): Return int, not bool.
  655 	Return -1 (not 0) if the time is out of range.
  656 	All callers changed.
  657 	(lisp_time_struct, lisp_seconds_argument): Distinguish better
  658 	between time overflow and invalid time values.
  659 
  660 2015-02-08  Paul Eggert  <eggert@cs.ucla.edu>
  661 
  662 	Minor tweaks to frame_size_history_add
  663 	* frame.c (frame_size_history_add): Don't assume length fits in 'int'.
  664 	Prefer XCAR and XCDR to Fcar and Fcdr when the arg is a cons.
  665 	(Fframe_after_make_frame): Simplify.
  666 	* gtkutil.c: Remove commented-out code.
  667 	* xfns.c (Fx_create_frame): Fix indenting.
  668 
  669 2015-02-08  Eli Zaretskii  <eliz@gnu.org>
  670 
  671 	* frame.c (Fframe_parameter): Don't replace a non-nil value of
  672 	foreground-color or background-color parameters with a nil value.
  673 	(Bug#19802)
  674 
  675 2015-02-08  Stefan Monnier  <monnier@iro.umontreal.ca>
  676 
  677 	* data.c (Findirect_function): Like `symbol-function', don't signal an
  678 	error for void functions any more.
  679 
  680 2015-02-07  Martin Rudalics  <rudalics@gmx.at>
  681 
  682 	* frame.c (frame_size_history_add): New function.
  683 	(frame_inhibit_resize): Consider frame_inhibit_implied_resize
  684 	only after frame's after_make_frame slot is true.
  685 	Inhibit resizing fullwidth-/height frames in one direction only.
  686 	Update frame_size_history.
  687 	(adjust_frame_size): Call frame_size_history_add.
  688 	(make_frame): Initalize after_make_frame slot.
  689 	(Fmake_terminal_frame): Adjust adjust_frame_size call.
  690 	(Fcan_run_window_configuration_change_hook): Rename to
  691 	Fframe_after_make_frame.  Set after_make_frame slot.
  692 	Return second argument.
  693 	(x_set_frame_parameters): Postpone handling fullscreen parameter
  694 	until after width and height parameters have been set.
  695 	Apply width and height changes only if can_x_set_window_size is true.
  696 	Update frame_size_history.
  697 	(Qadjust_frame_size_1, Qadjust_frame_size_2)
  698 	(Qadjust_frame_size_3, QEmacsFrameResize, Qframe_inhibit_resize)
  699 	(Qx_set_fullscreen, Qx_check_fullscreen, Qx_set_window_size_1)
  700 	(Qxg_frame_resized, Qxg_frame_set_char_size_1)
  701 	(Qxg_frame_set_char_size_2, Qxg_frame_set_char_size_3)
  702 	(Qxg_change_toolbar_position, Qx_net_wm_state)
  703 	(Qx_handle_net_wm_state, Qtb_size_cb, Qupdate_frame_tool_bar)
  704 	(Qfree_frame_tool_bar): New symbol for updating frame_size_history.
  705 	(Qtip_frame, Qterminal_frame): New symbols.
  706 	(Vframe_adjust_size_history): Rename to frame_size_history.
  707 	* frame.h (struct frame):
  708 	Rename can_run_window_configuration_change_hook slot to
  709 	after_make_frame.
  710 	(frame_size_history_add): Extern.
  711 	* gtkutil.c (xg_frame_resized): Call frame_size_history_add.
  712 	Don't set FRAME_PIXEL_WIDTH and FRAME_PIXEL_HEIGHT here.
  713 	(xg_frame_set_char_size): Try to preserve the status of
  714 	fullwidth/-height frames.  Call frame_size_history_add.
  715 	(tb_size_cb, update_frame_tool_bar, free_frame_tool_bar)
  716 	(xg_change_toolbar_position): Call frame_size_history_add.
  717 	* w32fns.c (x_change_tool_bar_height): Handle frame's fullscreen
  718 	status.
  719 	(Fx_create_frame): Process fullscreen parameter after frame has
  720 	been resized.
  721 	(x_create_tip_frame): Pass Qtip_frame to adjust_frame_size.
  722 	(Fx_frame_geometry): Don't pollute pure storage.
  723 	* w32term.c (w32_read_socket): For WM_WINDOWPOSCHANGED,
  724 	WM_ACTIVATE and WM_ACTIVATEAPP set frame's visibility before
  725 	calling w32fullscreen_hook.  For WM_DISPLAYCHANGE call
  726 	w32fullscreen_hook immediately.
  727 	(x_fullscreen_adjust, x_check_fullscreen): Remove.
  728 	(w32fullscreen_hook): Call change_frame_size just as with a
  729 	"normal" frame resize operation.  Call do_pending_window_change.
  730 	(x_set_window_size): Try to handle fullwidth and fullheight more
  731 	accurately.  Don't rely on w32_enable_frame_resize_hack.
  732 	(w32_enable_frame_resize_hack): Remove variable.
  733 	* widget.c (EmacsFrameResize): Remove dead code.
  734 	Call frame_size_history_add
  735 	* window.c (run_window_configuration_change_hook):
  736 	Check f->after_make_frame instead of
  737 	f->can_run_window_configuration_change_hook.
  738 	* xfns.c (x_change_tool_bar_height): Handle frame's fullscreen status.
  739 	(Fx_create_frame): Process fullscreen parameter after frame has
  740 	been resized.
  741 	(Fx_frame_geometry): Don't pollute pure storage.
  742 	* xterm.c (x_net_wm_state, x_handle_net_wm_state):
  743 	Call frame_size_history_add.
  744 	(do_ewmh_fullscreen): Handle x_frame_normalize_before_maximize.
  745 	(x_check_fullscreen): Count in menubar when calling
  746 	XResizeWindow.  Wait for ConfigureNotify event.
  747 	Call frame_size_history_add.
  748 	(x_set_window_size_1): Remove PIXELWISE argument.  Try to handle
  749 	changing a fullheight frame's width or a fullwidth frame's
  750 	height.  Call frame_size_history_add.
  751 	(x_set_window_size): Simplify xg_frame_set_char_size and
  752 	x_set_window_size_1 calls.
  753 	(x_frame_normalize_before_maximize): New variable.
  754 
  755 2015-02-07  Paul Eggert  <eggert@cs.ucla.edu>
  756 
  757 	Remove no-longer-used cursor_in_echo_area code
  758 	* dispnew.c (set_window_cursor_after_update, update_frame_1):
  759 	Remove checks for negative cursor_in_echo_area, since this var is
  760 	a boolean, and has been a boolean for some time.  Simplify.
  761 	* dispnew.c (init_display):
  762 	* xdisp.c (message3_nolog, vmessage): Use bool for boolean.
  763 
  764 2015-02-05  Stefan Monnier  <monnier@iro.umontreal.ca>
  765 
  766 	* eval.c (Ffunction): Handle the new (:documentation ...) form.
  767 	(syms_of_eval): Declare `:documentation'.
  768 
  769 2015-02-05  Martin Rudalics  <rudalics@gmx.at>
  770 
  771 	* xdisp.c (Fwindow_text_pixel_size): Remove optional BUFFER
  772 	argument added on 2015-02-01.
  773 
  774 2015-02-04  Paul Eggert  <eggert@cs.ucla.edu>
  775 
  776 	Remove no-longer-used two_byte_p calculations
  777 	* dispextern.h (struct glyph_string): Remove member two_byte_p.
  778 	All uses removed.
  779 	* xdisp.c (get_glyph_face_and_encoding): Remove arg two_byte_p.
  780 	All callers changed.
  781 
  782 2015-02-03  Paul Eggert  <eggert@cs.ucla.edu>
  783 
  784 	Omit unnecessary var if GTK or NS
  785 	* frame.c, frame.h (frame_default_tool_bar_height) [USE_GTK||HAVE_NS]:
  786 	Now a constant zero on these platforms.
  787 
  788 2015-02-01  Martin Rudalics  <rudalics@gmx.at>
  789 
  790 	* xdisp.c (Fwindow_text_pixel_size): Add optional argument BUFFER.
  791 
  792 2015-01-31  Eli Zaretskii  <eliz@gnu.org>
  793 
  794 	* coding.c (raw_text_coding_system_p): New function.
  795 
  796 	* keyboard.c (read_decoded_event_from_main_queue): Use it when the
  797 	keyboard coding-system is 'raw-text'.  (Bug#19532)
  798 
  799 	* coding.h (raw_text_coding_system_p): Add prototype.
  800 
  801 2015-01-31  Andreas Schwab  <schwab@linux-m68k.org>
  802 
  803 	* Makefile.in (gl-stamp): Generate globals.h through the use of
  804 	move-if-change.
  805 	(globals.h): Replace with empty command.
  806 
  807 2015-01-31  Eli Zaretskii  <eliz@gnu.org>
  808 
  809 	* keyboard.c (kbd_buffer_store_event_hold): Ignore FOCUS_OUT_EVENT
  810 	and ICONIFY_EVENT for the purposes of breaking while-no-input
  811 	loops.  (Bug#19547)
  812 
  813 	* dired.c (read_dirent): Correct the "MSDOS hacks" hack: the
  814 	special code for errno = ENOENT or EACCES is needed for WINDOWSNT,
  815 	not for MSDOS.
  816 
  817 2015-01-31  Paul Eggert  <eggert@cs.ucla.edu>
  818 
  819 	Simplify read_dirent's MSDOS hacks
  820 	* dired.c (read_dirent): Simplify by removing the need for the
  821 	DIR_ENTRY argument.  All callers changed.  This separates the
  822 	MS-DOS idiosyncrasies better from the rest of the code.
  823 
  824 2015-01-30  Eli Zaretskii  <eliz@gnu.org>
  825 
  826 	* dired.c (read_dirent): Accept an additional argument
  827 	FIRST_ENTRY.  If readdir fails with ENOENT or EACCES the first
  828 	time it is called, report the error as if it happened in
  829 	open_directory.
  830 	(directory_files_internal, file_name_completion): Adjust callers
  831 	or read_dirent.
  832 
  833 2015-01-30  Paul Eggert  <eggert@cs.ucla.edu>
  834 
  835 	Refactor calls to opendir for simplicity
  836 	* dired.c (open_directory): Accept Lisp_Object, not char *, for
  837 	dirname.  Signal an error if the open fails.  All callers changed.
  838 
  839 2015-01-29  Paul Eggert  <eggert@cs.ucla.edu>
  840 
  841 	Report readdir failures
  842 	Previously, on non-MS-Windows platforms the code treated most
  843 	readdir failures as EOF.  This was incorrect, e.g., when readdir
  844 	fails with errno == EOVERFLOW.  Signal an error instead.
  845 	* dired.c (read_dirent):
  846 	New function, which signals an error when readdir fails.
  847 	(directory_files_internal, file_name_completion): Use it.
  848 
  849 2015-01-29  Eli Zaretskii  <eliz@gnu.org>
  850 
  851 	Use bool for boolean in w32menu.c, w32font.c, w32uniscribe.c.
  852 	* w32uniscribe.c (uniscribe_list, uniscribe_match): Use bool where
  853 	appropriate.
  854 
  855 	* w32font.c (struct font_callback_data, w32font_list_internal)
  856 	(w32font_driver, w32font_match_internal): Use bool where appropriate.
  857 
  858 	* w32menu.c (x_activate_menubar, set_frame_menubar)
  859 	(w32_dialog_show, initialize_frame_menubar, w32_menu_show)
  860 	(is_simple_dialog): Use bool where appropriate.
  861 
  862 2015-01-28  Paul Eggert  <eggert@cs.ucla.edu>
  863 
  864 	Use bool, not int, to track face changes
  865 	* xfaces.c (face_change): Rename from face_change_count, and
  866 	change from int to bool.  The var is now true (instead of nonzero)
  867 	if attributes have changed; this is simpler.  All uses changed.
  868 	(Bug#19698)
  869 
  870 2015-01-28  Eli Zaretskii  <eliz@gnu.org>
  871 
  872 	* dired.c (directory_files_internal, file_name_completion)
  873 	[WINDOWSNT]: Signal an error when errno is set non-zero by
  874 	'readdir', regardless of its value.
  875 
  876 	* w32.c (sys_readdir): Set errno to ENOENT when the directory
  877 	doesn't exist and to EACCES when it's not accessible to the
  878 	current user.  Set errno to zero when FindNextFile exhausts the
  879 	directory, so that callers don't interpret that as an error and
  880 	don't signal a file-error.
  881 	(open_unc_volume): Set errno to ENOENT if WNetOpenEnum fails.
  882 
  883 	* dired.c (directory_files_internal) [WINDOWSNT]: If readdir
  884 	returns NULL and errno is ENOTDIR, behave as if opendir failed to
  885 	open the directory.  (Bug#19701)
  886 
  887 	* w32.c (sys_readdir): If FindFirstFile fails because the
  888 	directory doesn't exist, set errno to ENOTDIR.
  889 
  890 2015-01-28  Jan Djärv  <jan.h.d@swipnet.se>
  891 
  892 	* nsterm.m (drawRect:): Add block/unblock_input (Bug#19660).
  893 
  894 2015-01-28  Paul Eggert  <eggert@cs.ucla.edu>
  895 
  896 	Fix coding.c subscript error
  897 	* coding.c (CODING_ISO_INVOKED_CHARSET):
  898 	Avoid undefined behavior if CODING_ISO_INVOCATION returns negative.
  899 
  900 2015-01-28  Eli Zaretskii  <eliz@gnu.org>
  901 
  902 	* xdisp.c (produce_image_glyph): Fix display of images in R2L
  903 	screen lines: prepend the new glyph to the ones already there
  904 	instead of appending it.
  905 
  906 	* w32fns.c (w32_set_title_bar_text): New function, including
  907 	support for titles with non-ASCII characters outside of the
  908 	current system codepage.
  909 	(x_set_name, x_set_title): Use it.  (Bug#19590)
  910 
  911 	* indent.c (Fvertical_motion): Return zero if we started from ZV
  912 	and there's an overlay after-string there.  (Bug#19553)
  913 
  914 	* emacs.c (usage_message): Fix the description of the -nl switch.
  915 	(Bug#19542)
  916 
  917 	* xdisp.c (move_it_to, try_cursor_movement): Don't use the window
  918 	end information if the window_end_valid flag is unset.
  919 	(try_window_id): If the call to display_line invalidated the
  920 	window end information, give up the try_window_id optimization.
  921 	(Bug#19511)
  922 
  923 	* w32fns.c (Fx_server_version, Fx_server_vendor): Doc fix.
  924 	* xfns.c (Fx_server_version, Fx_server_vendor): Doc fix.
  925 
  926 	* emacs.c (syms_of_emacs) <system-configuration>: Doc fix.  (Bug#19502)
  927 
  928 2015-01-28  Stefan Monnier  <monnier@iro.umontreal.ca>
  929 
  930 	* lisp.mk (lisp): Add cl-preloaded.
  931 
  932 2015-01-27  Paul Eggert  <eggert@cs.ucla.edu>
  933 
  934 	Use bool for boolean in xfaces.c
  935 	* dispextern.h: Adjust to signature changes.
  936 	* font.c (font_at, font_range):
  937 	* fontset.c (Finternal_char_font):
  938 	* fringe.c (draw_fringe_bitmap_1):
  939 	* xdisp.c (handle_face_prop, face_before_or_after_it_pos)
  940 	(get_next_display_element, highlight_trailing_whitespace)
  941 	(display_string, calc_line_height_property)
  942 	(note_mode_line_or_margin_highlight, note_mouse_highlight):
  943 	* xfaces.c (tty_suppress_bold_inverse_default_colors_p)
  944 	(menu_face_changed_default, recompute_basic_faces)
  945 	(Fbitmap_spec_p, parse_rgb_list, tty_lookup_color)
  946 	(tty_defined_color, defined_color, face_color_gray_p)
  947 	(face_color_supported_p, load_color2, load_face_colors)
  948 	(Fx_list_fonts, LFACEP, push_named_merge_point)
  949 	(resolve_face_name, lface_from_face_name_no_resolve)
  950 	(lface_from_face_name, get_lface_attributes_no_remap)
  951 	(get_lface_attributes, lface_fully_specified_p)
  952 	(set_lface_from_font, merge_face_vectors, merge_named_face)
  953 	(merge_face_ref, Finternal_make_lisp_face)
  954 	(Finternal_lisp_face_p, Finternal_copy_lisp_face)
  955 	(Finternal_set_lisp_face_attribute)
  956 	(update_face_from_frame_parameter, set_font_frame_param)
  957 	(face_boolean_x_resource_value)
  958 	(Finternal_set_lisp_face_attribute_from_resource)
  959 	(x_update_menu_appearance, Finternal_get_lisp_face_attribute)
  960 	(Finternal_merge_in_global_face, Fface_font, face_attr_equal_p)
  961 	(lface_equal_p, Finternal_lisp_face_equal_p)
  962 	(Finternal_lisp_face_empty_p, lface_same_font_attributes_p)
  963 	(Fcolor_distance, lookup_named_face, lookup_basic_face)
  964 	(lookup_derived_face, Fface_attributes_as_vector)
  965 	(x_supports_face_attributes_p, tty_supports_face_attributes_p)
  966 	(Fdisplay_supports_face_attributes_p, realize_basic_faces)
  967 	(realize_default_face, realize_named_face)
  968 	(realize_non_ascii_face, realize_x_face, map_tty_color)
  969 	(realize_tty_face, compute_char_face, face_at_buffer_position)
  970 	(face_for_overlay_string, face_at_string_position):
  971 	Use bool for boolean.
  972 	* xfaces.c (set_lface_from_font):
  973 	Return void, since callers never use the result.
  974 
  975 2015-01-26  Andreas Schwab  <schwab@linux-m68k.org>
  976 
  977 	* image.c (lookup_pixel_color): Reorder conditions that are
  978 	written backwards.
  979 	(x_to_xcolors): Likewise.
  980 	(x_detect_edges): Likewise.
  981 	(png_load_body): Likewise.
  982 	(gif_close): Likewise.
  983 	(gif_load): Likewise.
  984 
  985 2015-01-25  Eli Zaretskii  <eliz@gnu.org>
  986 
  987 	Use bool for boolean in w32term.c
  988 	* w32term.c (x_update_window_begin, x_update_window_end)
  989 	(x_update_end, x_after_update_window_line)
  990 	(x_set_glyph_string_gc, x_draw_glyph_string_background)
  991 	(x_draw_glyph_string_foreground)
  992 	(x_draw_composite_glyph_string_foreground)
  993 	(x_draw_glyphless_glyph_string_foreground)
  994 	(x_draw_image_glyph_string, x_draw_glyph_string)
  995 	(x_draw_stretch_glyph_string, note_mouse_movement)
  996 	(w32_mouse_position, x_scroll_bar_report_motion)
  997 	(x_horizontal_scroll_bar_report_motion, w32_read_socket)
  998 	(w32_set_vertical_scroll_bar, w32_set_horizontal_scroll_bar)
  999 	(w32_draw_window_cursor, x_new_font, x_set_offset)
 1000 	(x_set_window_size, x_make_frame_invisible, x_iconify_frame):
 1001 	Use bool where appropriate.
 1002 
 1003 	Use bool for boolean in w32fns.c
 1004 	* w32fns.c (w32_defined_color, x_decode_color)
 1005 	(Fxw_color_defined_p, Fxw_color_values, x_set_icon_type)
 1006 	(x_set_menu_bar_lines, x_change_tool_bar_height)
 1007 	(x_set_internal_border_width, x_explicitly_set_name)
 1008 	(x_implicitly_set_name, Fx_create_frame, w32_window)
 1009 	(x_create_tip_frame, Fx_show_tip): Use bool where appropriate.
 1010 
 1011 2015-01-25  Paul Eggert  <eggert@cs.ucla.edu>
 1012 
 1013 	Use bool for boolean in xfns.c
 1014 	* xfaces.c (x_update_menu_appearance):
 1015 	* xfns.c (x_real_positions, x_defined_color, x_decode_color)
 1016 	(xg_set_icon, xg_set_icon_from_xpm_data, x_set_cursor_color)
 1017 	(x_set_icon_type, x_set_icon_name, x_set_menu_bar_lines)
 1018 	(x_change_tool_bar_height, x_set_internal_border_width)
 1019 	(x_encode_text, x_set_name_internal, x_explicitly_set_name)
 1020 	(x_implicitly_set_name, x_default_scroll_bar_color_parameter)
 1021 	(hack_wm_protocols, xic_create_fontsetname, xic_free_xfontset)
 1022 	(x_window, x_icon, Fx_wm_set_size_hint, Fx_create_frame)
 1023 	(Fxw_color_defined_p, Fxw_color_values, x_create_tip_frame)
 1024 	(Fx_show_tip, clean_up_file_dialog, Fx_file_dialog)
 1025 	(clean_up_dialog, syms_of_xfns):
 1026 	* xterm.h (xg_set_icon, xg_set_icon_from_xpm_data)
 1027 	(xic_create_fontsetname):
 1028 	Use bool for boolean.
 1029 	* xfns.c: Include bitmaps/gray.xbm unconditionally.
 1030 
 1031 	Count MANY function args more reliably
 1032 	* alloc.c (Fgc_status, purecopy, unbind_to, garbage_collect_1):
 1033 	* buffer.c (Fbuffer_list, Fkill_buffer):
 1034 	* callint.c (read_file_name, Fcall_interactively):
 1035 	* charset.c (Fset_charset_priority, syms_of_charset):
 1036 	* chartab.c (uniprop_encode_value_numeric):
 1037 	* coding.c (syms_of_coding):
 1038 	* composite.c (syms_of_composite):
 1039 	* data.c (wrong_range):
 1040 	* dbusbind.c (syms_of_dbusbind):
 1041 	* dired.c (file_attributes):
 1042 	* editfns.c (Fdecode_time, update_buffer_properties, format2):
 1043 	* eval.c (run_hook_with_args_2, apply1, call1, call2, call3)
 1044 	(call4, call5, call6, call7):
 1045 	* fileio.c (Finsert_file_contents, choose_write_coding_system)
 1046 	(Fcar_less_than_car, build_annotations, auto_save_error):
 1047 	* filelock.c (get_boot_time):
 1048 	* fns.c (internal_equal, nconc2, Fyes_or_no_p, Fwidget_apply):
 1049 	(maybe_resize_hash_table, secure_hash):
 1050 	* font.c (font_style_to_value, font_open_by_name, Flist_fonts):
 1051 	* fontset.c (fontset_add, Fset_fontset_font):
 1052 	* ftfont.c (ftfont_lookup_cache):
 1053 	* gtkutil.c (xg_get_font):
 1054 	* insdel.c (signal_before_change, signal_after_change):
 1055 	* keymap.c (append_key):
 1056 	* lread.c (load_warn_old_style_backquotes, Fload, init_lread):
 1057 	* minibuf.c (Fread_buffer):
 1058 	* print.c (print_preprocess):
 1059 	* process.c (Fformat_network_address, Fmake_network_process)
 1060 	(server_accept_connection):
 1061 	* sound.c (Fplay_sound_internal):
 1062 	* term.c (Fsuspend_tty, Fresume_tty):
 1063 	* window.c (window_list):
 1064 	* xdisp.c (run_redisplay_end_trigger_hook, add_to_log)
 1065 	(message_with_string):
 1066 	* xfaces.c (Fx_list_fonts):
 1067 	* xfont.c (syms_of_xfont):
 1068 	* xselect.c (x_handle_selection_request)
 1069 	(x_handle_selection_clear, x_clear_frame_selections)
 1070 	(x_clipboard_manager_error_1):
 1071 	Prefer CALLMANY and CALLN to counting args by hand.
 1072 	* doc.c (reread_doc_file): Remove unused code.
 1073 	* fns.c (concat2, concat3): Redo to avoid need for local-var vector.
 1074 	(cmpfn_user_defined, hashfn_user_defined, Fmaphash):
 1075 	Prefer call1 and call2 to Ffuncall.
 1076 	* keyboard.c (safe_run_hook_funcall, safe_run_hooks):
 1077 	Use struct literal rather than a local var, for simplicity.
 1078 	* keymap.c (where_is_internal): Use NULL rather than a pointer
 1079 	to unused args.
 1080 	* lisp.h (CALLMANY, CALLN): New macros.
 1081 	* sound.c (Fplay_sound_internal): Coalesce duplicate code.
 1082 	(Bug#19634)
 1083 
 1084 	Use gnustep-config if available
 1085 	* emacs.c [NS_IMPL_GNUSTEP]: Don't include <GNUstepBase/GSConfig.h>.
 1086 	It doesn't appear to be needed, and the inclusion breaks on
 1087 	Ubuntu 14.10 when 'configure' uses 'gnustep-config'.
 1088 
 1089 2015-01-22  Eli Zaretskii  <eliz@gnu.org>
 1090 
 1091 	* xdisp.c (init_iterator): Restore a comment lost in transition.
 1092 
 1093 2015-01-22  Paul Eggert  <eggert@cs.ucla.edu>
 1094 
 1095 	Use bool for boolean in xfont.c, xftfont.c, xgselect.c
 1096 	* xfont.c (xfont_driver, xfont_chars_supported)
 1097 	(xfont_text_extents):
 1098 	* xftfont.c (xftfont_get_colors, xftfont_open)
 1099 	(xftfont_prepare_face, xftfont_done_face)
 1100 	(xftfont_cached_font_ok):
 1101 	* xgselect.c (xg_select):
 1102 	Use bool for boolean.
 1103 
 1104 	Don't downcase system diagnostics' first letters
 1105 	* fileio.c (report_file_errno): Don't downcase, and simplify.
 1106 	(Bug#19642)
 1107 
 1108 	Isolate NIL_IS_ZERO-assuming code better
 1109 	Suggested by Stefan Monnier in:
 1110 	https://lists.gnu.org/r/emacs-devel/2015-01/msg00588.html
 1111 	* alloc.c (allocate_pseudovector):
 1112 	Use memclear, not memsetnil, to remove a 'verify'.
 1113 	* callint.c (Fcall_interactively):
 1114 	* dispnew.c (realloc_glyph_pool):
 1115 	* xdisp.c (init_iterator):
 1116 	Use memclear, not memset, to remove a 'verify'.
 1117 	* lisp.h (memclear): Rename from memsetnil, and take a byte
 1118 	count rather than a word count.  All callers changed.
 1119 
 1120 2015-01-20  Paul Eggert  <eggert@cs.ucla.edu>
 1121 
 1122 	Undo port to hypothetical nonzero Qnil case
 1123 	This mostly undoes the previous change in this area.  See:
 1124 	https://lists.gnu.org/r/emacs-devel/2015-01/msg00570.html
 1125 	* alloc.c (allocate_pseudovector):
 1126 	* callint.c (Fcall_interactively):
 1127 	* dispnew.c (realloc_glyph_pool):
 1128 	* fringe.c (init_fringe):
 1129 	* lisp.h (memsetnil):
 1130 	* xdisp.c (init_iterator):
 1131 	Simplify by assuming that Qnil is zero, but verify the assumption.
 1132 	* lisp.h (NIL_IS_ZERO): Revert back to this symbol, removing
 1133 	NIL_IS_NONZERO.  All uses changed.
 1134 
 1135 2015-01-20  Jan Djärv  <jan.h.d@swipnet.se>
 1136 
 1137 	* nsterm.m (EV_TRAILER2): Set Vinhibit_quit to Qt (Bug#19531).
 1138 
 1139 2015-01-20  Dmitry Antipov  <dmantipov@yandex.ru>
 1140 
 1141 	Prefer xlispstrdup to avoid dumb calls to strlen.
 1142 	* nsfont.m (ns_get_family):
 1143 	* nsterm.m (ns_term_init):
 1144 	* w32fns.c (w32_window):
 1145 	* xfns.c (x_window, Fx_select_font): Use xlispstrdup.
 1146 
 1147 2015-01-20  Paul Eggert  <eggert@cs.ucla.edu>
 1148 
 1149 	Correct an old fix for GTK font selection
 1150 	* gtkutil.c (xg_get_font): Fix off-by-2 typo.
 1151 	(Bug#3228)
 1152 
 1153 	Fix minor bugs with printing null bytes
 1154 	* minibuf.c (read_minibuf_noninteractive):
 1155 	* xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]:
 1156 	Work even if the Lisp string contains a null byte.
 1157 
 1158 	Port to hypothetical case where Qnil is nonzero
 1159 	* alloc.c (allocate_pseudovector):
 1160 	* callint.c (Fcall_interactively):
 1161 	* coding.c (syms_of_coding):
 1162 	* dispnew.c (realloc_glyph_pool):
 1163 	* fringe.c (init_fringe):
 1164 	* lisp.h (memsetnil):
 1165 	* xdisp.c (init_iterator):
 1166 	Port to the currently-hypothetical case where Qnil is nonzero.
 1167 	* dispnew.c (adjust_glyph_matrix): Remove unnecessary verification,
 1168 	as there are no Lisp_Object values in the data here.
 1169 	* lisp.h (NIL_IS_NONZERO): New symbol, replacing NIL_IS_ZERO.
 1170 	All uses changed.  Define only if not already defined, so that one
 1171 	can debug with -DNIL_IS_NONZERO.
 1172 	* xdisp.c (init_iterator): Remove unnecessary initializations to 0.
 1173 
 1174 2015-01-19  Eli Zaretskii  <eliz@gnu.org>
 1175 
 1176 	* dispnew.c (adjust_glyph_matrix, realloc_glyph_pool): Verify that
 1177 	Qnil is represented as zero, before using that to initialize parts
 1178 	of the glyph structure.
 1179 
 1180 	* xdisp.c (init_iterator): Verify that Qnil is represented as
 1181 	zero, before using that to initialize parts of the iterator
 1182 	structure.
 1183 
 1184 2015-01-19  Paul Eggert  <eggert@cs.ucla.edu>
 1185 
 1186 	Prefer memset to repeatedly assigning Qnil
 1187 	* alloc.c (allocate_pseudovector): Catch more bogus values.
 1188 	* alloc.c (allocate_pseudovector):
 1189 	* callint.c (Fcall_interactively):
 1190 	* coding.c (syms_of_coding):
 1191 	* fringe.c (init_fringe):
 1192 	Verify that Qnil == 0.
 1193 	* callint.c (Fcall_interactively):
 1194 	* eval.c (Fapply, Ffuncall):
 1195 	* fns.c (mapcar1, larger_vector):
 1196 	* font.c (font_expand_wildcards):
 1197 	* fringe.c (init_fringe):
 1198 	Prefer memset to assigning zeros by hand.
 1199 	* callint.c (Fcall_interactively):
 1200 	Remove duplicate assignment of Qnil to args[i].
 1201 	* coding.c (syms_of_coding):
 1202 	Prefer LISP_INITIALLY_ZERO to assigning zeros by hand.
 1203 	* fileio.c (Ffile_selinux_context):
 1204 	Rewrite to avoid need for Lisp_Object array.
 1205 	* lisp.h (XLI_BUILTIN_LISPSYM): New macro.
 1206 	(DEFINE_LISP_SYMBOL_END): Use it.
 1207 	(NIL_IS_ZERO): New constant.
 1208 	(memsetnil): New function.
 1209 
 1210 2015-01-16  Dmitry Antipov  <dmantipov@yandex.ru>
 1211 
 1212 	Tune pseudovector allocation assuming Qnil == 0.
 1213 	* alloc.c (allocate_pseudovector): Use memset for both
 1214 	Lisp_Objects and regular slots.  Add zerolen arg.
 1215 	* lisp.h (allocate_pseudovector): Adjust prototype.
 1216 	(ALLOCATE_PSEUDOVECTOR): Adjust user.
 1217 	(ALLOCATE_ZEROED_PSEUDOVECTOR): New macro.
 1218 	(allocate_hash_table, allocate_window, allocate_frame)
 1219 	(allocate_process, allocate_terminal): Remove prototypes.
 1220 	* fns.c (allocate_hash_table): Now static here.
 1221 	* frame.c (allocate_frame):
 1222 	* process.c (allocate_process):
 1223 	* terminal.c (allocate_terminal):
 1224 	* window.c (allocate_window): Now static here.
 1225 	Use ALLOCATE_ZEROED_PSEUDOVECTOR.  Add comment.
 1226 
 1227 	* lisp.h (XTERMINAL): Add eassert.
 1228 	* process.c (make_lisp_proc): Now static here.
 1229 
 1230 	Prefer INLINE functions in font.h to match style used in lisp.h.
 1231 	* font.h (FONTP, FONT_SPEC_P, FONT_ENTITY_P, FONT_OBJECT_P)
 1232 	(CHECK_FONT, CHECK_FONT_SPEC, CHECK_FONT_ENTITY, CHECK_FONT_OBJECT)
 1233 	(XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT, CHECK_FONT_GET_OBJECT):
 1234 	Now functions.
 1235 	* font.c (Ffont_otf_alternates, Fquery_font, Ffont_get_glyphs):
 1236 	* ftfont.c (ftfont_shape):
 1237 	* macfont.m (macfont_shape):
 1238 	* w32uniscribe.c (uniscribe_shape):
 1239 	* xftfont.c (xftfont_shape): Adjust CHECK_FONT_GET_OBJECT users.
 1240 
 1241 2015-01-16  Paul Eggert  <eggert@cs.ucla.edu>
 1242 
 1243 	Give up on -Wsuggest-attribute=const
 1244 	* decompress.c (Fzlib_available_p):
 1245 	* gnutls.c (Fgnutls_available_p):
 1246 	* gtkutil.h (xg_uses_old_file_dialog):
 1247 	* xdisp.c (Ftool_bar_height):
 1248 	* xmenu.c (popup_activated):
 1249 	No longer const, since it's not const on at lest some
 1250 	configurations, and we shouldn't lie to the compiler.
 1251 
 1252 2015-01-15  Eli Zaretskii  <eliz@gnu.org>
 1253 
 1254 	* fileio.c: Include binary-io.h.
 1255 	(Fset_binary_mode): New function.
 1256 	(syms_of_fileio): Defsubr it.
 1257 	(syms_of_fileio) <Qstdin, Qstdout, Qstderr>: DEFSYM them.
 1258 
 1259 2015-01-15  Teodor Zlatanov  <tzz@lifelogs.com>
 1260 
 1261 	* gnutls.c (init_gnutls_functions): Import gnutls_x509_crt_check_issuer.
 1262 	(Fgnutls_peer_status): Use it to set the :self-signed flag.
 1263 	Rename the previous :self-signed to :unknown-ca. (Bug#19404)
 1264 	(Fgnutls_peer_status_warning_describe): Explain :unknown-ca flag.
 1265 
 1266 2015-01-14  Eli Zaretskii  <eliz@gnu.org>
 1267 
 1268 	* w32fns.c (w32_wnd_proc): Ignore MENUITEMINFO's dwItemData data
 1269 	when FLAGS indicate the item is not highlighted.  (Bug#19596)
 1270 
 1271 2015-01-14  Martin Rudalics  <rudalics@gmx.at>
 1272 
 1273 	* xmenu.c (update_frame_menubar): Remove garbaged code.
 1274 
 1275 2015-01-14  Paul Eggert  <eggert@cs.ucla.edu>
 1276 
 1277 	remove_slash_colon need not be inline
 1278 	* process.c, process.h (remove_slash_colon): No longer inline.
 1279 	This saves text bytes without hurting runtime performance.
 1280 
 1281 2015-01-14  Dmitry Antipov  <dmantipov@yandex.ru>
 1282 
 1283 	Avoid extra multibyteness check in ENCODE_FILE users.
 1284 	* callproc.c (encode_current_directory, Fcall_process, call_process):
 1285 	* dired.c (directory_files_internal, file_name_completion):
 1286 	Do not check for STRING_MULTIBYTE because encode_file_name
 1287 	is a no-op for unibyte strings.
 1288 
 1289 	* process.h (remove_slash_colon): New function.
 1290 	* callproc.c (encode_current_directory, call_process):
 1291 	* process.c (Fstart_process): Use it.
 1292 
 1293 	Consistently handle time zone specification.
 1294 	* editfns.c (decode_time_zone): New function, refactored out from ...
 1295 	(Fencode_time): ... adjusted user.
 1296 	(Fset_time_zone_rule): Use decode_time_zone.
 1297 
 1298 	* editfns.c (make_buffer_string_both): If requested range intersects
 1299 	the gap, don't move the latter but copy in two regions, thus avoiding
 1300 	unnecessary relocation of buffer data.
 1301 
 1302 2015-01-14  Paul Eggert  <eggert@cs.ucla.edu>
 1303 
 1304 	Use bool for boolean in xmenu.c, xml.c
 1305 	* xmenu.c (x_menu_set_in_use, popup_get_selection)
 1306 	(Fx_menu_bar_open_internal, popup_widget_loop)
 1307 	(x_activate_menubar, xg_crazy_callback_abort)
 1308 	(update_frame_menubar, set_frame_menubar)
 1309 	(initialize_frame_menubar, free_frame_menubar)
 1310 	(create_and_show_popup_menu, x_menu_show)
 1311 	(create_and_show_dialog, x_dialog_show):
 1312 	* xml.c (libxml2_loaded_p, init_libxml2_functions, parse_region)
 1313 	(Flibxml_parse_html_region, Flibxml_parse_xml_region):
 1314 	* xrdb.c (main) [TESTRM]:
 1315 	* xsettings.c (init_gsettings):
 1316 	* xterm.c (XFillRectangle, xg_scroll_callback)
 1317 	(xg_end_scroll_callback):
 1318 	* xterm.h (x_menu_set_in_use) [USE_GTK || USE_MOTIF]:
 1319 	Use bool for boolean.
 1320 	* xmenu.c (TRUE): Remove; no longer used.
 1321 	(show_help_event): Remove long-unused code.
 1322 	(set_frame_menubar): Remove "#if 1" and corresponding "#endif" lines.
 1323 
 1324 2015-01-13  Paul Eggert  <eggert@cs.ucla.edu>
 1325 
 1326 	Don't say Fnext_read_file_uses_dialog_p is const
 1327 	It's const only if a windowing system is not used; don't say it's
 1328 	const otherwise.  See:
 1329 	https://lists.gnu.org/r/emacs-devel/2015-01/msg00310.html
 1330 	* fileio.c (next_read_file_uses_dialog_p): Remove.
 1331 	Move guts back to ...
 1332 	(Fnext_read_file_uses_dialog_p): ... here.
 1333 	Don't declare as const, as make-docfile.c now has a special case
 1334 	for this function.  This is an ugly hack, but it's better than
 1335 	lying to the compiler.
 1336 
 1337 	Remove now-unnecessary forward XTYPE decl
 1338 	* lisp.h (XTYPE): Remove forward declaration.  The recent merge
 1339 	from emacs-24 fixed the problem in a better way, by moving XPNTR's
 1340 	definition to after XTYPE's.
 1341 
 1342 2015-01-13  Eli Zaretskii  <eliz@gnu.org>
 1343 
 1344 	Fix problems with 32-bit wide-int build exposed by MinGW.
 1345 	* lisp.h (XPNTR): Move definition to after XTYPE, to avoid
 1346 	compilation error in an unoptimized build when !USE_LSB_TAG.
 1347 
 1348 	* w32heap.c (DUMPED_HEAP_SIZE): For 32-bit wide-int build, use the
 1349 	same larger value as for the 64-bit build.
 1350 
 1351 	* w32term.h (SCROLL_BAR_PACK): Cast the result to UINT_PTR to
 1352 	avoid compiler warnings.
 1353 
 1354 	* w32proc.c (Fw32_get_codepage_charset, Fw32_set_keyboard_layout):
 1355 	Avoid compiler warnings about cast from integer to pointer of
 1356 	different size.
 1357 
 1358 	* w32menu.c (menubar_selection_callback, w32_menu_show): Cast to
 1359 	UINT_PTR instead of EMACS_INT, to avoid compiler warnings about
 1360 	casting from integer to pointer of different size.
 1361 	(add_menu_item): Pass the help-echo string as a pointer to
 1362 	Lisp_String, not as a Lisp_Object.
 1363 	(w32_menu_display_help): Use make_lisp_ptr to reconstruct a Lisp
 1364 	string object from its C pointer.
 1365 
 1366 	* w32fns.c (w32_msg_pump) <WM_EMACS_UNREGISTER_HOT_KEY>: Use
 1367 	make_lisp_ptr instead of XIL, to reconstruct a Lisp_Cons from its
 1368 	C pointer.
 1369 	<WM_EMACS_TOGGLE_LOCK_KEY>: msg.lparam is now a C integer.
 1370 	(Fx_create_frame): Type-cast the result of XFASTINT to avoild
 1371 	compiler warnings about size differences.
 1372 	(Fw32_unregister_hot_key): Pass the tail of w32_grabbed_keys as a
 1373 	pointer to a Lisp_Cons struct, not as a disguised EMACS_INT.
 1374 	(Fw32_toggle_lock_key): Pass the new state of the key as a C
 1375 	integer; use -1 for nil.  Doc fix.
 1376 
 1377 	* .gdbinit (xgetsym): New subroutine.
 1378 	(xsymname, xsymbol): Use it.
 1379 	(xprintsym): No need to call xgetptr.
 1380 
 1381 2015-01-13  Martin Rudalics  <rudalics@gmx.at>
 1382 
 1383 	* frame.c (adjust_frame_size): Make sure new numbers of
 1384 	lines/columns get installed after font size change (Bug#19575).
 1385 
 1386 2015-01-13  Dmitry Antipov  <dmantipov@yandex.ru>
 1387 
 1388 	Add DEFUN attributes.
 1389 	* callint.c (Finteractive):
 1390 	* character.c (Fcharacterp, Fmax_char):
 1391 	* data.c (Feq, Fnull, Fconsp, Fatom, Flistp, Fnlistp, Fsymbolp)
 1392 	(Fstringp, Fchar_or_string_p, Fintegerp, Fnatnump, Fnumberp)
 1393 	(Ffloatp, Fbyteorder):
 1394 	* decompress.c (Fzlib_available_p):
 1395 	* fns.c (Fidentity):
 1396 	* frame.c (Fframe_windows_min_size):
 1397 	* gnutls.c (Fgnutls_error_p, Fgnutls_available_p):
 1398 	* window.c (Fwindow__sanitize_window_sizes):
 1399 	* xdisp.c (Ftool_bar_height):
 1400 	* xfaces.c (Fface_attribute_relative_p): Add const attribute.
 1401 	* emacs.c (Fkill_emacs):
 1402 	* eval.c (Fthrow):
 1403 	* keyboard.c (Ftop_level, Fexit_recursive_edit)
 1404 	(Fabor_recursive_edit): Add noreturn attribute.
 1405 
 1406 	* search.c (fast_string_match_internal): New function,
 1407 	consolidated from...
 1408 	(fast_string_match, fast_string_match_ignore_case): ...functions
 1409 	which are...
 1410 	* lisp.h (fast_string_match, fast_string_match_ignore_case):
 1411 	inlined from here now.
 1412 	(fast_string_match_internal): Add prototype.
 1413 	* dired.c (file_name_completion): Use fast_string_match_internal.
 1414 
 1415 	* fileio.c (next_read_file_uses_dialog_p): New workaround ...
 1416 	(Fnext_read_file_uses_dialog_p): ... called from here to avoid
 1417 	ATTRIBUTE_CONST dependency from #ifdefs.  For details, see
 1418 	https://lists.gnu.org/r/emacs-devel/2015-01/msg00289.html.
 1419 
 1420 2015-01-12  Paul Eggert  <eggert@cs.ucla.edu>
 1421 
 1422 	Port to 32-bit MingGW --with-wide-int
 1423 	Problem reported by Eli Zaretskii in:
 1424 	https://lists.gnu.org/r/emacs-devel/2015-01/msg00265.html
 1425 	* lisp.h (struct Lisp_Sub_Char_Table): Check that offset matches
 1426 	what we think it is, rather than checking only its alignment (and
 1427 	doing so incorrectly on MinGW).
 1428 
 1429 2015-01-12  Dmitry Antipov  <dmantipov@yandex.ru>
 1430 
 1431 	* fileio.c (Ffile_name_as_directory, Fdirectory_file_name):
 1432 	Remove dead NILP check.
 1433 	* image.c (Flookup_image): Use regular format for docstring.
 1434 	* keyboard.c (apply_modifiers_uncached): Use stpcpy.
 1435 
 1436 2015-01-12  Martin Rudalics  <rudalics@gmx.at>
 1437 
 1438 	* dispnew.c (change_frame_size_1): Pass Qchange_frame_size to
 1439 	adjust_frame_size.
 1440 	* frame.c (frame_default_tool_bar_height): New variable.
 1441 	(adjust_frame_size): Possibly add requested adjustment to
 1442 	Vframe_adjust_size_history.
 1443 	(make_frame): Initialize tool_bar_redisplayed_once slot.
 1444 	(Fset_frame_height, Fset_frame_width, Fset_frame_size): Clarify
 1445 	doc-string.  Call adjust_frame_size unconditionally (the frame's
 1446 	text size may remain unaltered but the pixel size may change).
 1447 	(x_figure_window_size): If frame_default_tool_bar_height was
 1448 	set, use it instead of calculating the tool bar height from
 1449 	DEFAULT_TOOL_BAR_IMAGE_HEIGHT.  Don't set
 1450 	Vframe_initial_frame_tool_bar_height.
 1451 	(Qchange_frame_size, Qxg_frame_set_char_size)
 1452 	(Qset_window_configuration, Qx_create_frame_1)
 1453 	(Qx_create_frame_2): New symbols.
 1454 	(Vframe_initial_frame_tool_bar_height): Remove.
 1455 	(Vframe_adjust_size_history): New history variable for debugging
 1456 	frame size adjustments.
 1457 	* frame.h (struct frame): New boolean slot
 1458 	tool_bar_redisplayed_once.
 1459 	(frame_default_tool_bar_height): Extern.
 1460 	* gtkutil.c (xg_frame_set_char_size): Pass Qxg_frame_set_char_size
 1461 	to adjust_frame_size.
 1462 	* nsfns.m (Fx_create_frame): Pass Pass Qx_create_frame_1 and
 1463 	Qx_create_frame_2 to adjust_frame_size.
 1464 	* w32fns.c (x_change_tool_bar_height): Call adjust_frame_size with
 1465 	inhibit 1 when we have not redisplayed the tool bar yet.
 1466 	(Fx_create_frame): Pass Pass Qx_create_frame_1 and
 1467 	Qx_create_frame_2 to adjust_frame_size.
 1468 	* w32menu.c (set_frame_menubar): Simplify adjust_frame_size
 1469 	call.
 1470 	* window.c (Fset_window_configuration):
 1471 	Pass Qset_window_configuration to adjust_frame_size.
 1472 	* xdisp.c (redisplay_tool_bar): Assign new height to
 1473 	frame_default_tool_bar_height.
 1474 	(redisplay_internal): If we haven't redisplayed this frame's
 1475 	tool bar, call redisplay_tool_bar early so we can adjust the
 1476 	frame size accordingly.
 1477 	* xfns.c (x_change_tool_bar_height): Call adjust_frame_size with
 1478 	inhibit 1 when we have not redisplayed the tool bar yet.
 1479 	(Fx_create_frame): Pass Pass Qx_create_frame_1 and
 1480 	Qx_create_frame_2 to adjust_frame_size.
 1481 
 1482 2015-01-12  Paul Eggert  <eggert@cs.ucla.edu>
 1483 
 1484 	Have 'make' output better GEN names
 1485 	* Makefile.in (gl-stamp, globals.h): Simplify by putting the new
 1486 	contents of globals.h into gl-stamp.  This lets us use AM_V_GEN
 1487 	more naturally so that 'make' can output more-accurate names.
 1488 
 1489 2015-01-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 1490 
 1491 	* buffer.c (init_buffer_once): Initialize buffer_local_flags before
 1492 	calling reset_buffer_local_variables, and make sure we initialize
 1493 	it completely.
 1494 
 1495 2015-01-11  Dmitry Antipov  <dmantipov@yandex.ru>
 1496 
 1497 	* coding.c (Fcoding_system_plist): Use common style for docstring.
 1498 
 1499 2015-01-11  Paul Eggert  <eggert@cs.ucla.edu>
 1500 
 1501 	Port to MSB hosts without optimization
 1502 	E.g., when configuring --with-wide-int CFLAGS='-O0' on x86,
 1503 	the inline function XTYPE needs to be declared before being used.
 1504 	* lisp.h (XTYPE): New forward declaration.
 1505 
 1506 2015-01-10  Paul Eggert  <eggert@cs.ucla.edu>
 1507 
 1508 	Port to 32-bit --with-wide-int
 1509 	Prefer symbol indexes to struct Lisp_Symbol * casted and then
 1510 	widened, as the latter had trouble with GCC on Fedora 21 when
 1511 	configured --with-wide-int and when used in static initializers.
 1512 	* alloc.c (garbage_collect_1, which_symbols):
 1513 	* lread.c (init_obarray):
 1514 	Prefer builtin_lisp_symbol when it can be used.
 1515 	* dispextern.h (struct image_type.type):
 1516 	* font.c (font_property_table.key):
 1517 	* frame.c (struct frame_parm_table.sym):
 1518 	* keyboard.c (scroll_bar_parts, struct event_head):
 1519 	* xdisp.c (struct props.name):
 1520 	Use the index of a builtin symbol rather than its address.
 1521 	All uses changed.
 1522 	* lisp.h (TAG_SYMPTR, XSYMBOL_INIT): Remove, replacing with ...
 1523 	(TAG_SYMOFFSET, SYMBOL_INDEX): ... new macros that deal with
 1524 	symbol indexes rather than pointers, and which work better on MSB
 1525 	hosts because they shift right before tagging.  All uses changed.
 1526 	(DEFINE_LISP_SYMBOL_BEGIN, DEFINE_LISP_SYMBOL_END):
 1527 	No longer noops on wide-int hosts, since they work now.
 1528 	(builtin_lisp_symbol): New function.
 1529 
 1530 	Port to HAVE_FREETYPE && !HAVE_XFT
 1531 	* dispextern.h (struct face.extra) [HAVE_FREETYPE && !HAVE_XFT]:
 1532 	* font.h (syms_of_xftfont) [HAVE_FREETYPE && !HAVE_XFT]:
 1533 	Declare in this case too.
 1534 
 1535 2015-01-10  Eli Zaretskii  <eliz@gnu.org>
 1536 
 1537 	* w32fns.c (Fw32_register_hot_key): Use XINT instead of XLI.
 1538 
 1539 	* w32notify.c (Fw32notify_add_watch, w32_get_watch_object):
 1540 	Use make_pointer_integer instead of XIL.
 1541 	(Fw32notify_rm_watch): Use XINTPTR instead of XLI.
 1542 
 1543 	* w32inevt.c (handle_file_notifications): Use make_pointer_integer
 1544 	instead of XIL.  Put a list of the descriptor, action, and file
 1545 	name in event->arg, instead of spreading them between event->code
 1546 	and event->arg.
 1547 
 1548 	* w32term.c (queue_notifications): Use make_pointer_integer
 1549 	instead of XIL.  Put a list of the descriptor, action, and file
 1550 	name in event->arg, instead of spreading them between event->code
 1551 	and event->arg.
 1552 
 1553 	* keyboard.c (kbd_buffer_get_event) [HAVE_W32NOTIFY]: Adjust Lisp
 1554 	event creation to changes in w32term.c and w32inevt.c above.
 1555 
 1556 2015-01-09  Paul Eggert  <eggert@cs.ucla.edu>
 1557 
 1558 	Port Qnil==0 changes to 32-bit --with-wide-int
 1559 	* lisp.h (lisp_h_XSYMBOL, XSYMBOL): Assume USE_LSB_TAG in the
 1560 	macro-implemented version.  For the non-USE_LSB_TAG case, supply
 1561 	a new inline function that is the inverse of the new TAG_SYMPTR.
 1562 	(lisp_h_XUNTAGBASE, XUNTAGBASE): Remove.  All uses removed.
 1563 	(TAG_SYMPTR) [!USE_LSB_TAG]: If the pointer subtraction yields a
 1564 	negative number, don't allow sign bits to bleed into the encoded
 1565 	value.  Shift in zero bits instead.
 1566 
 1567 	Refactor pointer-to-integer conversion
 1568 	* gfilenotify.c (monitor_to_lisp, lisp_to_monitor):
 1569 	Rename and move to lisp.h.  All uses changed.
 1570 	* lisp.h (XINTPTR, make_pointer_integer): New inline functions,
 1571 	which are renamed from gfilenotify.c's lisp_to_monitor and
 1572 	monitor_to_lisp, and with more-generic void * signatures.
 1573 
 1574 2015-01-08  Eli Zaretskii  <eliz@gnu.org>
 1575 
 1576 	* dispnew.c (buffer_posn_from_coords): Fix the value of the column
 1577 	returned for right-to-left screen lines.  (Before the change on
 1578 	2014-12-30, the incorrectly-computed X pixel coordinate concealed
 1579 	this bug.)
 1580 
 1581 	* .gdbinit (xsymname): New subroutine.
 1582 	(xprintsym, initial-tbreak): Use it to access the name of a symbol
 1583 	in a way that doesn't cause GDB to barf when it tries to
 1584 	dereference a NULL pointer.
 1585 
 1586 	* xdisp.c (next_element_from_c_string): Use Lisp integer zero as
 1587 	the object.
 1588 	(set_cursor_from_row, try_cursor_movement, dump_glyph)
 1589 	(insert_left_trunc_glyphs, append_space_for_newline)
 1590 	(extend_face_to_end_of_line, highlight_trailing_whitespace)
 1591 	(find_row_edges, ROW_GLYPH_NEWLINE_P, Fmove_point_visually)
 1592 	(Fbidi_resolved_levels, produce_special_glyphs)
 1593 	(rows_from_pos_range, mouse_face_from_buffer_pos)
 1594 	(note_mouse_highlight): Use nil as the object for glyphs inserted
 1595 	by the display engine, and test with NILP instead of INTEGERP.
 1596 	(Bug#19535)
 1597 
 1598 	* w32fns.c (Fx_show_tip): Use NILP to test for glyphs inserted by
 1599 	the display engine.
 1600 
 1601 	* xfns.c (Fx_show_tip): Use NILP to test for glyphs inserted by
 1602 	the display engine.
 1603 
 1604 	* dispextern.h (struct glyph, struct it): Update comments for the
 1605 	OBJECT members.
 1606 
 1607 2015-01-08  Paul Eggert  <eggert@cs.ucla.edu>
 1608 
 1609 	Port new Lisp symbol init to x86 --with-wide-int
 1610 	* lisp.h (DEFINE_LISP_SYMBOL_BEGIN, DEFINE_LISP_SYMBOL_END):
 1611 	Define to empty on platforms where EMACS_INT_MAX != INTPTR_MAX, as
 1612 	GCC (at least) does not allow a constant initializer to widen an
 1613 	address constant.
 1614 
 1615 	* lisp.h (TAG_SYMPTR): Don't do arithmetic on NULL.
 1616 	This is a followup to the "Port Qnil==0 XUNTAG to clang" patch.
 1617 	Although clang doesn't need it, some other compiler might, and
 1618 	it's easy enough to be safe.
 1619 
 1620 	* conf_post.h (ATTRIBUTE_ALLOC_SIZE): Port to clang 3.5.0.
 1621 	Apparently clang removed support for the alloc_size attribute.
 1622 
 1623 	Port Qnil==0 XUNTAG to clang
 1624 	clang has undefined behavior if the program subtracts an integer
 1625 	from (char *) 0.  Problem reported by YAMAMOTO Mitsuharu in:
 1626 	https://lists.gnu.org/r/emacs-devel/2015-01/msg00132.html
 1627 	* lisp.h (lisp_h_XUNTAG) [USE_LSB_TAG]:
 1628 	(XUNTAG) [!USE_LSB_TAG]: Port to clang 3.5.0.
 1629 
 1630 	Port GFileMonitor * hack to Qnil==0 platforms
 1631 	Reported by Glenn Morris in: https://bugs.gnu.org/15880#112
 1632 	* gfilenotify.c (monitor_to_lisp, lisp_to_monitor): New functions.
 1633 	(dir_monitor_callback, Fgfile_add_watch, Fgfile_rm_watch): Use them.
 1634 
 1635 2015-01-06  Jan Djärv  <jan.h.d@swipnet.se>
 1636 
 1637 	* nsterm.m (x_set_window_size): Call updateFrameSize to get real
 1638 	size instead of using widht/height.  The frame may be
 1639 	constrained (Bug#19482).
 1640 
 1641 2015-01-05  Paul Eggert  <eggert@cs.ucla.edu>
 1642 
 1643 	* lisp.h (XSYMBOL): Parenthesize id in forward decl.
 1644 	Needed when neither optimizing nor inlining.
 1645 	Also, sort decls alphabetically.
 1646 
 1647 2015-01-05  Eli Zaretskii  <eliz@gnu.org>
 1648 
 1649 	* w32proc.c, w32.h, w32fns.c, w32font.c, w32menu.c, w32notify.c:
 1650 	* w32proc.c, w32select.c, w32term.c, w32uniscribe.c: Remove
 1651 	declarations of Q* variables that represent symbols.
 1652 
 1653 2015-01-05  Paul Eggert  <eggert@cs.ucla.edu>
 1654 
 1655 	Use 0 for Qnil
 1656 	Fixes Bug#15880.
 1657 	If USE_LSB_TAG, arrange for the representation of Qnil to be zero so
 1658 	that NILP (x) is equivalent to testing whether x is 0 at the
 1659 	machine level.  The overall effects of this and the previous patch
 1660 	shrink the size of the text segment by 2.3% and speeds up
 1661 	compilation of all the .elc files by about 0.5% on my platform,
 1662 	which is Fedora 20 x86-64.
 1663 	* lisp.h (lisp_h_XPNTR, lisp_h_XSYMBOL, lisp_h_XUNTAG)
 1664 	(make_lisp_symbol) [USE_LSB_TAG]:
 1665 	Symbols now tag the difference from lispsym, not the pointer.
 1666 	(lisp_h_XUNTAGBASE, TAG_SYMPTR): New macros.
 1667 	(Lisp_Int0, Lisp_Int1, Lisp_Symbol, Lisp_Misc, Lisp_String, Lisp_Cons):
 1668 	Renumber so that Lisp_Symbol is 0, so that Qnil is zero.
 1669 	(XSYMBOL): New forward decl.
 1670 	(XUNTAGBASE): New function.
 1671 	(XUNTAG): Use it.
 1672 
 1673 	Compute C decls for DEFSYMs automatically
 1674 	Fixes Bug#15880.
 1675 	This patch also makes Q constants (e.g., Qnil) constant addresses
 1676 	from the C point of view.
 1677 	* alloc.c, bidi.c, buffer.c, bytecode.c, callint.c, casefiddle.c:
 1678 	* casetab.c, category.c, ccl.c, charset.c, chartab.c, cmds.c, coding.c:
 1679 	* composite.c, data.c, dbusbind.c, decompress.c, dired.c, dispnew.c:
 1680 	* doc.c, editfns.c, emacs.c, eval.c, fileio.c, fns.c, font.c, fontset.c:
 1681 	* frame.c, fringe.c, ftfont.c, ftxfont.c, gfilenotify.c, gnutls.c:
 1682 	* image.c, inotify.c, insdel.c, keyboard.c, keymap.c, lread.c:
 1683 	* macfont.m, macros.c, minibuf.c, nsfns.m, nsfont.m, nsimage.m:
 1684 	* nsmenu.m, nsselect.m, nsterm.m, print.c, process.c, profiler.c:
 1685 	* search.c, sound.c, syntax.c, term.c, terminal.c, textprop.c, undo.c:
 1686 	* window.c, xdisp.c, xfaces.c, xfns.c, xftfont.c, xmenu.c, xml.c:
 1687 	* xselect.c, xsettings.c, xterm.c:
 1688 	Remove Q vars that represent symbols (e.g., Qnil, Qt, Qemacs).
 1689 	These names are now defined automatically by make-docfile.
 1690 	* alloc.c (init_symbol): New function.
 1691 	(Fmake_symbol): Use it.
 1692 	(c_symbol_p): New function.
 1693 	(valid_lisp_object_p, purecopy): Use it.
 1694 	* alloc.c (marked_pinned_symbols):
 1695 	Use make_lisp_symbol instead of make_lisp_ptr.
 1696 	(garbage_collect_1): Mark lispsym symbols.
 1697 	(CHECK_ALLOCATED_AND_LIVE_SYMBOL): New macro.
 1698 	(mark_object): Use it.
 1699 	(sweep_symbols): Sweep lispsym symbols.
 1700 	(symbol_uses_obj): New function.
 1701 	(which_symbols): Use it.  Work for lispsym symbols, too.
 1702 	(init_alloc_once): Initialize Vpurify_flag here; no need to wait,
 1703 	since Qt's address is already known now.
 1704 	(syms_of_alloc): Add lispsym count to symbols_consed.
 1705 	* buffer.c (init_buffer_once): Compare to Qnil, not to make_number (0),
 1706 	when testing whether storage is all bits zero.
 1707 	* dispextern.h (struct image_type):
 1708 	* font.c (font_property_table):
 1709 	* frame.c (struct frame_parm_table, frame_parms):
 1710 	* keyboard.c (scroll_bar_parts, struct event_head):
 1711 	* xdisp.c (struct props):
 1712 	Use XSYMBOL_INIT (Qfoo) and struct Lisp_Symbol * rather than &Qfoo and
 1713 	Lisp_Object *, since Qfoo is no longer an object whose address can be
 1714 	taken.  All uses changed.
 1715 	* eval.c (run_hook): New function.  Most uses of Frun_hooks changed to
 1716 	use it, so that they no longer need to take the address of a Lisp sym.
 1717 	(syms_of_eval): Don't use DEFSYM on Vrun_hooks, as it's a variable.
 1718 	* frame.c (syms_of_frame): Add defsyms for the frame_parms table.
 1719 	* keyboard.c (syms_of_keyboard): Don't DEFSYM Qmenu_bar here.
 1720 	DEFSYM Qdeactivate_mark before the corresponding var.
 1721 	* keymap.c (syms_of_keymap): Use DEFSYM for Qmenu_bar and Qmode_line
 1722 	instead of interning their symbols; this avoids duplicates.
 1723 	(LISP_INITIALLY, TAG_PTR)
 1724 	(DEFINE_LISP_SYMBOL_BEGIN, DEFINE_LISP_SYMBOL_END, XSYMBOL_INIT):
 1725 	New macros.
 1726 	(LISP_INITIALLY_ZERO): Use it.
 1727 	(enum symbol_interned, enum symbol_redirect, struct Lisp_Symbol)
 1728 	(EXFUN, DEFUN_ARGS_MANY, DEFUN_ARGS_UNEVALLED, DEFUN_ARGS_*):
 1729 	Move decls up, to avoid forward uses.  Include globals.h earlier, too.
 1730 	(make_lisp_symbol): New function.
 1731 	(XSETSYMBOL): Use it.
 1732 	(DEFSYM): Now just a placeholder for make-docfile.
 1733 	* lread.c (DEFINE_SYMBOLS): Define, for globals.h.
 1734 	(intern_sym): New function, with body taken from old intern_driver.
 1735 	(intern_driver): Use it.  Last arg is now Lisp integer, not ptrdiff_t.
 1736 	All uses changed.
 1737 	(define_symbol): New function.
 1738 	(init_obarray): Define the C symbols taken from lispsym.
 1739 	Use plain DEFSYM for Qt and Qnil.
 1740 	* syntax.c (init_syntax_once): No need to worry about
 1741 	Qchar_table_extra_slots.
 1742 
 1743 2015-01-04  Paul Eggert  <eggert@cs.ucla.edu>
 1744 
 1745 	'temacs -nw' should not call missing functions
 1746 	Without this patch, "temacs -nw" fails with the diagnostic
 1747 	"emacs: Symbol's function definition is void: frame-windows-min-size"
 1748 	and messes up the tty's state.
 1749 	* frame.c (Fframe_windows_min_size): New placeholder function.
 1750 	(syms_of_frame): Define it.
 1751 	* window.c (Fwindow__sanitize_window_sizes): New placeholder.
 1752 	(syms_of_window): Define it.
 1753 
 1754 	Less 'make' chatter for lisp dir
 1755 	* Makefile.in (%.elc): Adjust to compile-onefile change in
 1756 	../lisp/Makefile.in.
 1757 
 1758 	batch write-region no longer says "Wrote FOO"
 1759 	This cuts down on 'make' chatter a bit.
 1760 	* fileio.c (Fwrite_region):
 1761 	Don't output "Wrote /whatever/foo.elc" if noninteractive.
 1762 
 1763 2015-01-03  Paul Eggert  <eggert@cs.ucla.edu>
 1764 
 1765 	Revert previous change to produce_composite_glyph
 1766 	* term.c (produce_composite_glyph): Revert previous change (Bug#19496).
 1767 
 1768 	Pacify gcc -Wparentheses
 1769 	* frame.c (x_set_frame_parameters): Add parens (Bug#19428).
 1770 
 1771 2015-01-03  Martin Rudalics  <rudalics@gmx.at>
 1772 
 1773 	* frame.c (x_set_frame_parameters): Call Fset_frame_size only if
 1774 	f->can_x_set_window_size is true.
 1775 	* xterm.c (x_set_window_size_1): Call change_frame_size with
 1776 	text sizes instead of pixel sizes (Bug#19428).
 1777 
 1778 2015-01-01  Eli Zaretskii  <eliz@gnu.org>
 1779 
 1780 	* xdisp.c (pos_visible_p): Fix up the X coordinate for
 1781 	right-to-left screen lines.  (Bug#19473)
 1782 
 1783 2015-01-01  Eli Zaretskii  <eliz@gnu.org>
 1784 
 1785 	* w32proc.c (Fw32_get_codepage_charset): Doc fix.  (Bug#19458)
 1786 
 1787 2014-12-31  Paul Eggert  <eggert@cs.ucla.edu>
 1788 
 1789 	Simplify setfattr use by assuming GNU make
 1790 	* Makefile.in (PAXCTL_if_present, SETFATTR_if_present): New macros.
 1791 	(emacs$(EXEEXT), temacs$(EXEEXT), bootstrap-emacs$(EXEEXT)): Use them.
 1792 	Simplify by using GNU make rather than shell conditionals,
 1793 	by using ln -f rather than rm -f followed by ln,
 1794 	and by preferring $@ to spelling out the destination.
 1795 
 1796 2014-12-29  Eli Zaretskii  <eliz@gnu.org>
 1797 
 1798 	* sysdep.c [WINDOWSNT]: Include sys/socket.h, without which this
 1799 	file doesn't compile on MS-Windows.
 1800 
 1801 2014-12-29  Paul Eggert  <eggert@cs.ucla.edu>
 1802 
 1803 	Allow return value of system-name to vary.  (Bug#19438)
 1804 	* filelock.c (current_lock_owner):
 1805 	* xrdb.c (get_environ_db):
 1806 	* xterm.c (same_x_server):
 1807 	* xterm.c (x_term_init):
 1808 	Prefer (system-name) to system-name, and avoid naming
 1809 	locals 'system-name'.
 1810 	* editfns.c (cached_system_name): New static var.
 1811 	(init_and_cache_system_name): New function.
 1812 	(init_editfns, Fsystem_name): Use it.
 1813 	(syms_of_editfns): Initialize it and Vsystem_name to the same value.
 1814 	* sysdep.c [HAVE_SOCKETS]: Don't include <sys/socket.h>, <netdb.h>.
 1815 	(h_errno) [TRY_AGAIN && !HAVE_H_ERRNO]: Remove decl.
 1816 	(init_system_name) [HAVE_SOCKETS]: Don't canonicalize the name.
 1817 	Don't create a new string if the current value is already correct.
 1818 
 1819 2014-12-28  Paul Eggert  <eggert@cs.ucla.edu>
 1820 
 1821 	Fix produce_composite_width typo
 1822 	* term.c (produce_composite_glyph):
 1823 	Fix typo that confused number of columns for pixel width.
 1824 
 1825 2014-12-28  Paul Eggert  <eggert@Penguin.CS.UCLA.EDU>
 1826 
 1827 	Wrap dll functions more simply
 1828 	* decompress.c, gnutls.c, image.c, xml.c:
 1829 	If WINDOWSNT, use '#define FOO fn_FOO' to wrap dll functions,
 1830 	rather than the inverse when not WINDOWSNT.  This isolates the
 1831 	fn_* business into the WINDOWSNT-specific section of the code,
 1832 	which makes it easier to maintain the generic code.
 1833 	* decompress.c (DEF_ZLIB_FN, LOAD_ZLIB_FN):
 1834 	* gnutls.c (DEF_GNUTLS_FN, LOAD_GNUTLS_FN):
 1835 	* image.c (DEF_IMGLIB_FN, LOAD_IMGLIB_FN):
 1836 	* xml.c (DEF_XML2_FN, LOAD_XML2_FN):
 1837 	Remove.  All uses replaced by DEF_DLL_FN.
 1838 	* decompress.c (inflateInit2): Remove; no longer needed.
 1839 	* w32.h (DEF_DLL_FN, LOAD_DLL_FN): New macros.
 1840 
 1841 	Port memory-full checking to GnuTLS 3.3
 1842 	Instead of using gnutls_global_set_mem_functions, check every call
 1843 	to a GnuTLS function that might return an indication of memory
 1844 	exhaustion.  Suggested by Dmitry Antipov in:
 1845 	https://lists.gnu.org/r/emacs-devel/2014-12/msg02056.html
 1846 	* gnutls.c (gnutls_global_set_mem_functions) [WINDOWSNT]: Remove.
 1847 	(init_gnutls_functions): Do not load gnutls_global_set_mem_functions.
 1848 	(fn_gnutls_global_set_mem_functions) [!WINDOWSNT]: Remove.
 1849 	All uses removed.
 1850 	(check_memory_full): New function.
 1851 	(emacs_gnutls_handshake, emacs_gnutls_handle_error)
 1852 	(gnutls_make_error, gnutls_certificate_details, Fgnutls_peer_status)
 1853 	(Fgnutls_boot): Use it.
 1854 	(emacs_gnutls_global_init): Avoid gnutls_global_set_mem_functions.
 1855 
 1856 2014-12-27  Paul Eggert  <eggert@cs.ucla.edu>
 1857 
 1858 	Fix parse_settings to match internal documentation
 1859 	* xsettings.c (parse_settings): Return the number of settings seen.
 1860 	Count the settings changes accurately.
 1861 	(read_settings): Don't confuse number of settings changes with
 1862 	the return code from XGetWindowProperty.
 1863 
 1864 2014-12-27  Eli Zaretskii  <eliz@gnu.org>
 1865 
 1866 	* xdisp.c (set_iterator_to_next) <GET_FROM_STRING>: Limit search in
 1867 	composition_compute_stop_pos to the number of characters in the
 1868 	string.  (Bug#19435)
 1869 	<GET_FROM_BUFFER, GET_FROM_STRING>: Simplify code.
 1870 
 1871 	* composite.c (composition_compute_stop_pos): If no composition
 1872 	was found in a string before ENDPOS, and ENDPOS is the string end,
 1873 	no need to back up to a safe point.
 1874 
 1875 	* dispextern.h (struct it) <end_charpos>: Improve commentary.
 1876 
 1877 2014-12-27  Jan Djärv  <jan.h.d@swipnet.se>
 1878 
 1879 	* nsimage.m (allocInitFromFile:): Initialize bmRep.
 1880 	(dealloc): Release bmRep.
 1881         (setPixmapData): Make bmRep local so class member is not
 1882         set (Bug#19133).
 1883 	(setPixmapData): Rename local variable bmRep to avoid compiler
 1884 	warning.
 1885 
 1886 2014-12-27  Jan Djärv  <jan.h.d@swipnet.se>
 1887 
 1888 	* xterm.c (do_ewmh_fullscreen): Don't remove maximized_horz/vert
 1889 	when going to fullscreen (Bug#0x180004f).
 1890 
 1891 2014-12-27  Eli Zaretskii  <eliz@gnu.org>
 1892 
 1893 	* window.c (Fwindow_body_width): Doc fix.  (Bug#19395)
 1894 
 1895 2014-12-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 1896 
 1897 	* buffer.c (syms_of_buffer) <Vafter_change_functions>: fix docstring.
 1898 
 1899 2014-12-27  Eli Zaretskii  <eliz@gnu.org>
 1900 
 1901 	* gnutls.c (gnutls_init): Fix deprecation warning from GCC.
 1902 
 1903 2014-12-26  Paul Eggert  <eggert@cs.ucla.edu>
 1904 
 1905 	Use bool for boolean in xselect.c, xsettings.c
 1906 	* xselect.c (x_get_local_selection, struct selection_data)
 1907 	(x_selection_request_lisp_error, struct prop_location)
 1908 	(x_handle_selection_request, x_convert_selection)
 1909 	(waiting_for_other_props_on_window, expect_property_change)
 1910 	(wait_for_property_change, x_handle_property_notify)
 1911 	(x_get_foreign_selection, x_get_window_property)
 1912 	(receive_incremental_selection)
 1913 	(x_get_window_property_as_lisp_data)
 1914 	(lisp_data_to_selection_data, Fx_get_selection_internal)
 1915 	(x_send_client_event):
 1916 	* xselect.c, xterm.h (x_handle_dnd_message):
 1917 	* xsettings.c (dpyinfo_valid, parse_settings, read_settings)
 1918 	(apply_xft_settings, read_and_apply_settings)
 1919 	(xft_settings_event, init_gsettings, init_xsettings)
 1920 	(syms_of_xsettings):
 1921 	Use bool for boolean.
 1922 	* xselect.c (x_get_window_property): Omit last arg, which was an
 1923 	unused boolean.
 1924 	* xsettings.c (apply_xft_settings): Remove 2nd arg, which was
 1925 	always true.  All callers changed.
 1926 
 1927 2014-12-26  Eli Zaretskii  <eliz@gnu.org>
 1928 
 1929 	* w32proc.c (sys_spawnve, get_lcid_callback): Use strcpy instead
 1930 	of strcat.
 1931 
 1932 	* w32menu.c (add_menu_item): Use stpcpy instead of strcat.
 1933 
 1934 	* w32.c (sys_readdir, stat_worker, symlink): Use strcpy instead of
 1935 	strcat.
 1936 
 1937 2014-12-26  Paul Eggert  <eggert@cs.ucla.edu>
 1938 
 1939 	Use bool for boolean in xsmfns.c
 1940 	* xsmfns.c, xterm.h (x_session_have_connection):
 1941 	* xsmfns.c (doing_interact, smc_interact_CB, Fhandle_save_session):
 1942 	Use bool for boolean.
 1943 	(x_session_initialize, Fhandle_save_session):
 1944 	Prefer NILP (x) to EQ (x, Qnil).
 1945 
 1946 2014-12-25  Paul Eggert  <eggert@cs.ucla.edu>
 1947 
 1948 	* callproc.c (child_setup):
 1949 	* dbusbind.c (xd_signature_cat):
 1950 	* doc.c (get_doc_string, Fsnarf_documentation):
 1951 	* editfns.c (Fuser_full_name):
 1952 	* frame.c (xrdb_get_resource):
 1953 	* gtkutil.c (xg_get_file_with_chooser):
 1954 	* tparam.c (tparam1):
 1955 	* xfns.c (xic_create_fontsetname):
 1956 	* xrdb.c (gethomedir, get_user_db, get_environ_db):
 1957 	* xsmfns.c (smc_save_yourself_CB):
 1958 	Rewrite to avoid the need for strcat, typically by using stpcpy
 1959 	and/or lispstpcpy.  strcat tends to be part of O(N**2) algorithms.
 1960 	* doc.c (sibling_etc):
 1961 	* xrdb.c (xdefaults):
 1962 	Now a top-level static constant.
 1963 
 1964 2014-12-23  Didier Verna  <didier@didierverna.net> (tiny change).
 1965 
 1966 	* nsselect.m (Fns_selection_owner_p): Return a Lisp boolean, not a
 1967 	C one (Bug#19396).
 1968 
 1969 2014-12-22  Jan Djärv  <jan.h.d@swipnet.se>
 1970 
 1971 	* xterm.c (x_bitmap_icon): Partly revert change from 2014-03-21 which
 1972 	breaks icon setting for Gtk+ except for initial frame (Bug#19403).
 1973 
 1974 2014-12-22  Paul Eggert  <eggert@cs.ucla.edu>
 1975 
 1976 	Use bool for boolean in xterm.c
 1977 	* frame.h, nsterm.m, w32term.c, w32term.h, xterm.c:
 1978 	(x_set_window_size, x_bitmap_icon):
 1979 	* nsterm.m (ns_frame_raise_lower, x_new_font):
 1980 	* termhooks.h (struct terminal.toggle_invisible_pointer_hook)
 1981 	(struct terminal.frame_raise_lower_hook):
 1982 	* w32term.c (w32_frame_raise_lower):
 1983 	* xterm.c, xterm.h (x_text_icon):
 1984 	* xterm.c (x_update_window_begin, x_update_window_end)
 1985 	(x_update_end, x_after_update_window_line)
 1986 	(x_set_glyph_string_gc, x_draw_glyph_string_background)
 1987 	(x_draw_glyph_string_foreground)
 1988 	(x_draw_composite_glyph_string_foreground)
 1989 	(x_alloc_lighter_color, x_draw_relief_rect)
 1990 	(x_draw_glyph_string_box, x_draw_image_relief)
 1991 	(x_draw_image_glyph_string, x_draw_stretch_glyph_string)
 1992 	(x_draw_underwave, x_draw_glyph_string, x_show_hourglass)
 1993 	(x_hide_hourglass):
 1994 	(XFillRectangle) [HAVE_GTK3]:
 1995 	(XTtoggle_invisible_pointer, frame_highlight, frame_unhighlight)
 1996 	(x_focus_changed, x_find_modifier_meanings, note_mouse_movement)
 1997 	(XTmouse_position, xt_action_hook, xt_horizontal_action_hook)
 1998 	(x_send_scroll_bar_event, xm_scroll_callback)
 1999 	(xg_scroll_callback, xaw_jump_callback, xaw_scroll_callback)
 2000 	(x_create_toolkit_scroll_bar)
 2001 	(x_create_horizontal_toolkit_scroll_bar)
 2002 	(x_set_toolkit_horizontal_scroll_bar_thumb, x_scroll_bar_create)
 2003 	(x_scroll_bar_set_handle, XTset_vertical_scroll_bar)
 2004 	(XTset_horizontal_scroll_bar, x_scroll_bar_expose)
 2005 	(x_scroll_bar_handle_click, x_scroll_bar_note_movement)
 2006 	(x_scroll_bar_report_motion)
 2007 	(x_horizontal_scroll_bar_report_motion, x_net_wm_state)
 2008 	(handle_one_xevent, XTread_socket, x_draw_bar_cursor)
 2009 	(x_draw_window_cursor, x_clear_errors)
 2010 	(x_trace_wire, x_new_font, x_set_offset, wm_supports)
 2011 	(set_wm_state, x_set_sticky, get_current_wm_state)
 2012 	(do_ewmh_fullscreen, x_handle_net_wm_state)
 2013 	(x_check_expected_move, x_sync_with_move, x_wait_for_event)
 2014 	(x_set_window_size_1, XTframe_raise_lower)
 2015 	(x_make_frame_visible, x_iconify_frame)
 2016 	(x_timeout_atimer_activated_flag, same_x_server, x_display_ok)
 2017 	(x_term_init, x_process_timeouts, x_activate_timeout_atimer)
 2018 	(x_delete_terminal, x_initialize, syms_of_xterm):
 2019 	Use bool for boolean.
 2020 
 2021 2014-12-20  Paul Eggert  <eggert@cs.ucla.edu>
 2022 
 2023 	* composite.h (struct composition.width): Now int
 2024 	instead of unsigned short, as we prefer signed integers.
 2025 
 2026 	Let charset tick grow past USHRT_MAX
 2027 	* charset.c, charset.h (charset_ordered_list_tick):
 2028 	Now EMACS_UINT, not unsigned short.
 2029 	* fontset.c (reorder_font_vector): Allow the tick to grow to the
 2030 	maximum representable Emacs integer value before wrapping it around.
 2031 
 2032 	Simplify unexec file mode setting
 2033 	* unexaix.c, unexcoff.c, unexelf.c, unexmacosx.c:
 2034 	Don't include <sys/stat.h> when no longer needed.
 2035 	(unexec): Create file with correct mode in the first place,
 2036 	rather than overwriting the mode later and fiddling with the
 2037 	global umask in the mean time.  Avoid bogus usage like
 2038 	'umask (777)', which should have been 'umask (0777)'.
 2039 	(mark_x): Remove. All callers removed.
 2040 
 2041 2014-12-19  Paul Eggert  <eggert@cs.ucla.edu>
 2042 
 2043 	Minor cleanups for Lisp objects and symbols
 2044 	* alloc.c (next_vector, set_next_vector):
 2045 	* lisp.h (lisp_h_INTEGERP, make_number, XFASTINT, make_natnum):
 2046 	(lisp_h_make_number) [USE_LSB_TAG]:
 2047 	Use Lisp_Int0 instead of the mystery constant 0.
 2048 	* alloc.c (mark_object): Always set and use po; that's simpler.
 2049 	(CHECK_LIVE, CHECK_ALLOCATED_AND_LIVE):
 2050 	Properly parenthesize definientia.
 2051 	* bidi.c (bidi_initialize):
 2052 	* buffer.c (init_buffer_once):
 2053 	* nsfns.m (syms_of_nsfns):
 2054 	* nsmenu.m (syms_of_nsmenu):
 2055 	* nsselect.m (syms_of_nsselect):
 2056 	Prefer DEFSYM to defining by hand.
 2057 	* buffer.c (syms_of_buffer): Omit unneeded staticpros.
 2058 	* data.c: Fix too-long line.
 2059 	* lisp.h (DECLARE_GDB_SYM): New macro.
 2060 	(DEFINE_GDB_SYMBOL_BEGIN): Use it.
 2061 	(DEFINE_GDB_SYMBOL_BEGIN, DEFINE_GDB_SYMBOL_END) [!MAIN_PROGRAM]:
 2062 	Declare the symbol, so it's visible to everywhere lisp.h is included.
 2063 	Move forward decls as far forward as they can go,
 2064 	to allow future changes to use them.
 2065 
 2066 2014-12-18  Paul Eggert  <eggert@cs.ucla.edu>
 2067 
 2068 	* gnutls.c: Include gnutls.h.
 2069 	This to check syms_of_gnutls's API even when !HAVE_GNUTLS.
 2070 	* image.c (svg_load): Fix pointer signedness.
 2071 
 2072 2014-12-18  Martin Rudalics  <rudalics@gmx.at>
 2073 
 2074 	* frame.c (frame_windows_min_size): New argument IGNORE.
 2075 	(adjust_frame_size): When called from change_frame_size call
 2076 	frame_windows_min_size with IGNORE Qt so we can ignore size
 2077 	restrictions.
 2078 
 2079 2014-12-18  Eli Zaretskii  <eliz@gnu.org>
 2080 
 2081 	* font.c (Ffont_info): Add more font information to the vector
 2082 	returned by the function, inspired by query-font.  Doc fix.
 2083 	(Bug#19395)
 2084 
 2085 2014-12-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 2086 
 2087 	* keyboard.c (input_was_pending): New var.
 2088 	(read_char): Use it to make sure we only skip redisplay when we can't
 2089 	keep up with the repeat rate.
 2090 
 2091 2014-12-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 2092 
 2093 	* keyboard.c (swallow_events): Don't redisplay if there's input pending.
 2094 
 2095 2014-12-17  Ulf Jasper  <ulf.jasper@web.de>
 2096 
 2097 	* image.c (svg_load): Watch out for nil value of current buffer's
 2098 	filename.  Re-enable filename thing for not-a-file case.
 2099 
 2100 2014-12-17  Ulf Jasper  <ulf.jasper@web.de>
 2101 
 2102 	Partially disabled previous change.
 2103 
 2104 	* image.c (svg_load): Temporarily disabled filename thing for
 2105 	not-a-file case as it can cause crashs.
 2106 
 2107 2014-12-17  Ulf Jasper  <ulf.jasper@web.de>
 2108 
 2109 	Fix problem with images referenced within svg files. (bug#19373)
 2110 
 2111 	* image.c: Additional parameter 'filename' for
 2112 	svg_load_image. Include "buffer.h".  Define library function
 2113 	rsvg_handle_set_base_uri for WINDOWSNT.
 2114 	(init_svg_functions): Initialize rsvg_handle_set_base_uri.
 2115 	(fn_rsvg_handle_set_base_uri): Define fn_rsvg_handle_set_base_uri.
 2116 	(svg_load): Pass a filename to svg_load_image: either name of
 2117 	actual file or of current buffer's file.
 2118 	(svg_load_image): New parameter 'filename', used for setting
 2119 	base_uri, necessary for loading referenced images. (bug#19373)
 2120 
 2121 2014-12-16  Paul Eggert  <eggert@cs.ucla.edu>
 2122 
 2123 	* lread.c (init_obarray): Declare Qt as special.
 2124 	This fixes a typo in the 2012-05-15 patch that
 2125 	tried to declare Qt as special.
 2126 
 2127 2014-12-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 2128 
 2129 	Various fixes to use bool type and constants.
 2130 	* dispnew.c (update_single_window): Remove arg `force_p' since it's
 2131 	always true.
 2132 	* xfaces.c (clear_face_cache): Use bool for the argument type.
 2133 
 2134 2014-12-15  Paul Eggert  <eggert@cs.ucla.edu>
 2135 
 2136 	Correct same_at_end when restoring window points
 2137 	* fileio.c (Finsert_file_contents): Compute same_at_end character
 2138 	position using the old buffer size, not the new one, since
 2139 	restore_window_points wants the old size.
 2140 	(Bug#19161)
 2141 
 2142 2014-12-14  Alan Mackenzie  <acm@muc.de>
 2143 
 2144 	New feature optionally to accelerate auto-repeated scrolling.
 2145 
 2146 	* xdisp.c: Remove "static" from declaration of Qfontification_functions.
 2147 
 2148 	* window.c (window_scroll): Bind fontification-functions to nil
 2149 	when scrolling by whole screens and
 2150 	fast-but-imprecise-scrolling is non-nil.
 2151 	(syms_of_window): New DEFVAR_BOOL fast-but-imprecise-scrolling.
 2152 
 2153 	* lisp.h (bool): Declare Qfontification_functions extern.
 2154 
 2155 2014-12-14  Eli Zaretskii  <eliz@gnu.org>
 2156 
 2157 	Load system's default trusted Certificate Authorities if available.
 2158 	* gnutls.c (gnutls_certificate_set_x509_system_trust)
 2159 	[GNUTLS >= 3.0.20]: Declare for WINDOWSNT.
 2160 	(init_gnutls_functions)(gnutls_certificate_set_x509_system_trust)
 2161 	[GNUTLS >= 3.0.20]: Load from shared library for WINDOWSNT.
 2162 	(fn_gnutls_certificate_set_x509_system_trust) [!WINDOWSNT]:
 2163 	Define new macro.
 2164 	(Fgnutls_boot) [GNUTLS >= 3.0.20]:
 2165 	Call gnutls_certificate_set_x509_system_trust.  Log an error message if
 2166 	it fails.
 2167 
 2168 2014-12-14  Paul Eggert  <eggert@cs.ucla.edu>
 2169 
 2170 	* regex.c (analyze_first): Rename from analyze_first.
 2171 
 2172 2014-12-13  Paul Eggert  <eggert@cs.ucla.edu>
 2173 
 2174 	* alloc.c (XMALLOC_BASE_ALIGNMENT): Use max_align_t instead of
 2175 	a hack involving a union.
 2176 
 2177 2014-12-13  Eli Zaretskii  <eliz@gnu.org>
 2178 
 2179 	* gnutls.c (Fgnutls_available_p, syms_of_gnutls):
 2180 	Move gnutls-available-p out of the HAVE_GNUTLS conditional, and define
 2181 	them only once.
 2182 
 2183 2014-12-13  Teodor Zlatanov  <tzz@lifelogs.com>
 2184 
 2185 	* emacs.c (main): Always include gnutls.h and run syms_of_gnutls.
 2186 
 2187 	* gnutls.h: Always declare syms_of_gnutls.
 2188 
 2189 	* gnutls.c (Fgnutls_available_p syms_of_gnutls): Move later for
 2190 	clarity.  Let the availability check return Qnil when the GnuTLS
 2191 	integration is not available, instead of erroring out.
 2192 	(Bug#19346)
 2193 
 2194 2014-12-13  Eli Zaretskii  <eliz@gnu.org>
 2195 
 2196 	* xdisp.c (move_it_in_display_line_to, display_line):
 2197 	Don't disallow overflow-newline-into-fringe when word-wrap is in
 2198 	effect.  (Bug#19300)
 2199 
 2200 2014-12-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 2201 
 2202 	* fileio.c: Better preserve window-points during revert (bug#19161).
 2203 	(Qget_buffer_window_list): New var.
 2204 	(get_window_points_and_markers, restore_window_points): New functions.
 2205 	(Finsert_file_contents): Use them to save and restore window-points.
 2206 
 2207 2014-12-11  Dmitry Antipov  <dmantipov@yandex.ru>
 2208 
 2209 	* xterm.c (x_delete_terminal): Call emacs_close for X connection
 2210 	descriptor if called from x_connection_closed and always delete
 2211 	this descriptor from keyboard waiting set (Bug#19147).
 2212 
 2213 2014-12-10  Eli Zaretskii  <eliz@gnu.org>
 2214 
 2215 	* bidi.c (BIDI_CACHE_MAX_ELTS_PER_SLOT): New macro.
 2216 	(bidi_cache_max_elts): New global variable.
 2217 	(bidi_shelve_header_size): Add the sizeof bidi_cache_max_elts.
 2218 	(bidi_cache_shrink, bidi_initialize): Reset bidi_cache_max_elts to
 2219 	its initial value.
 2220 	(bidi_cache_search): Handle overflown cache.  Improve commentary.
 2221 	(bidi_cache_ensure_space): Limit allocations to the current value
 2222 	of bidi_cache_max_elts.  Force xpalloc not to over-allocate.
 2223 	If less than a full BIDI_CACHE_CHUNK is left to the limit, decrease
 2224 	the increment to not exceed the limit.
 2225 	(bidi_cache_iterator_state): Now returns non-zero if succeeded to
 2226 	cache, zero otherwise (meaning the cache overflowed).  In the
 2227 	latter case, set bidi_cache_last_idx to -1.
 2228 	(bidi_peek_at_next_level): Handle overflown cache.
 2229 	(bidi_push_it): Increase the cache limit for iterating the new object.
 2230 	(bidi_pop_it): Decrease the cache limit back to previous value.
 2231 	(bidi_shelve_cache): Shelve the current value of the cache limit.
 2232 	(bidi_unshelve_cache): Restore the value of cache limit.
 2233 	(bidi_find_bracket_pairs): If the cache overflows while looking
 2234 	for the paired bracket, give up and let bidi_resolve_neutrals
 2235 	process the bracket as a simple neutral.  (Bug#19322)
 2236 	(bidi_find_other_level_edge): If the cache overflows, fall back on
 2237 	Plan B, which effectively stops the reordering and restarts it on
 2238 	the next character (after resetting the cache).
 2239 	(bidi_move_to_visually_next): When the cache overflows, reset it
 2240 	after processing the last cached character.
 2241 
 2242 2014-12-10  Paul Eggert  <eggert@cs.ucla.edu>
 2243 
 2244 	Fix glitches in gnutls.c, mostly memory-related
 2245 	* gnutls.c: Sort macro definitions by name.
 2246 	(fn_gnutls_transport_set_errno): Omit unreachable definition.
 2247 	(fn_gnutls_x509_crt_get_signature): Omit unused symbol.
 2248 	(gnutls_hex_string): Arg is now unsigned char *, to avoid a cast.
 2249 	Prefer ptrdiff_t for sizes.  Check for arithmetic overflow when
 2250 	calculating string length.  Use make_uninit_string, to avoid
 2251 	copying the string.  Cast the char, not the pointer.
 2252 	(gnutls_certificate_details): Use xmalloc and xfree, not malloc
 2253 	and free.  Work even for dates past the year 9999.  Use void *
 2254 	for buffers, to avoid casts.
 2255 
 2256 2014-12-09  Andy Moreton  <andrewjmoreton@gmail.com>  (tiny change)
 2257 
 2258 	* gnutls.c (gnutls_protocol_get_name): Fix a copy/paste typo.
 2259 
 2260 2014-12-08  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 2261 
 2262 	* gnutls.c (Fgnutls_peer_status): Return the key exchange, cipher
 2263 	and MAC algorithms.
 2264 
 2265 2014-12-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 2266 
 2267 	* process.c: Whitespace and line-break nitpicks.
 2268 
 2269 2014-12-08  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 2270 
 2271 	* gnutls.c (gnutls_certificate_details): The :signature isn't
 2272 	that useful, so remove it.
 2273 	(gnutls_certificate_details): Clean up whitespace slightly.
 2274 	(Fgnutls_peer_status): Return the Diffie-Hellman prime bits for
 2275 	the connection.
 2276 	(gnutls_certificate_details): Put :signature-algorithm back again,
 2277 	which was removed by mistake.
 2278 	(emacs_gnutls_handle_error): Fatal errors should be on level 1, so
 2279 	that they are not messaged by default (bug#16253).
 2280 	(Fgnutls_error_fatalp): Doc fix (bug#18210).
 2281 
 2282 	* gnutls.c: Add Windows specs for gnutls_dh_get_prime_bits.
 2283 
 2284 2014-12-07  Jan Djärv  <jan.h.d@swipnet.se>
 2285 
 2286 	* nsimage.m (setPixmapData): Make bmRep local so class member is not
 2287 	set (Bug#19133).
 2288 
 2289 2014-12-05  Lee Duhem  <lee.duhem@gmail.com>  (tiny change)
 2290 
 2291 	* eval.c (Fsignal): Remove duplicate test.
 2292 	(Fautoload_do_load): Fix up docstring.
 2293 
 2294 2014-12-05  Jan Djärv  <jan.h.d@swipnet.se>
 2295 
 2296 	* nsterm.m (represented_filename, represented_frame): New variables.
 2297 	(ns_set_represented_filename): New function.
 2298 	(sendEvent:): Set represented filename here to avoid flicker,
 2299 	related to Bug#18757.
 2300 
 2301 	* nsterm.h: Declare ns_set_represented_filename.
 2302 
 2303 	* nsfns.m (ns_set_name_as_filename): Don't set represented filename
 2304 	at once, call ns_set_represented_filename instead.
 2305 
 2306 2014-12-05  Eli Zaretskii  <eliz@gnu.org>
 2307 
 2308 	* dispextern.h (enum bidi_dir_t): Force NEUTRAL_DIR to be zero.
 2309 	(struct bidi_stack): Reduce size by using bit fields and by
 2310 	packing sos, override, and isolate_status into a single 8-bit
 2311 	byte called 'flags'.
 2312 
 2313 	* bidi.c (ISOLATE_STATUS, OVERRIDE): New macros.
 2314 	(bidi_push_embedding_level): Construct flags from individual
 2315 	bits.  Adapt to changes in prev_for_neutral and next_for_neutral
 2316 	members.
 2317 	(bidi_pop_embedding_level): Use ISOLATE_STATUS.  Extract 'sos'
 2318 	from flags.  Adapt to changes in prev_for_neutral,
 2319 	next_for_neutral, and last_strong members.
 2320 	(bidi_line_init): Initialize flags to zero.
 2321 	(bidi_resolve_explicit, bidi_resolve_weak, bidi_resolve_brackets)
 2322 	(bidi_resolve_neutral): Use ISOLATE_STATUS and OVERRIDE.
 2323 
 2324 2014-12-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 2325 
 2326 	* eval.c (backtrace_eval_unrewind): Rewind also the excursions.
 2327 	(Fapply): Try and simplify the control flow.
 2328 
 2329 2014-12-03  Chris Zheng  <chriszheng99@gmail.com>  (tiny change)
 2330 
 2331 	* gnutls.c (init_gnutls_functions, gnutls_certificate_details):
 2332 	Use gnutls_sign_get_name directly because
 2333 	gnutls_sign_algorithm_get_name is a macro on MinGW (bug#19231).
 2334 	(init_gnutls_functions): Load missing gnutls_server_name_set.
 2335 
 2336 2014-12-02  Eli Zaretskii  <eliz@gnu.org>
 2337 
 2338 	* bidi.c (bidi_find_first_overridden): New function.
 2339 
 2340 	* xdisp.c (Fbidi_find_overridden_directionality): New function.
 2341 	(syms_of_xdisp): Defsubr it.
 2342 
 2343 	* dispextern.h (bidi_find_first_overridden): Add prototype.
 2344 
 2345 2014-12-02  Jan Djärv  <jan.h.d@swipnet.se>
 2346 
 2347 	* nsimage.m (initFromSkipXBM:width:height:flip:length:): Set bmRep
 2348 	to nil after release (Bug#9133).
 2349 
 2350 2014-11-30  Paul Eggert  <eggert@cs.ucla.edu>
 2351 
 2352 	Port better to AddressSanitizer.
 2353 	These changes suffice for temacs on x86-64 with GCC 4.9.2 and
 2354 	-fsanitize=address.
 2355 	* alloc.c (valid_pointer_p) [ADDRESS_SANITIZER]:
 2356 	Return -1 or 0, as the pipe trick doesn't work.
 2357 	* alloc.c (relocatable_string_data_p, mark_object, sweep_symbols):
 2358 	* data.c (Ffset):
 2359 	* print.c (print_object):
 2360 	When a pointer-check primitive returns -1, do not assume this
 2361 	means the pointer is valid or that the underlying system has failed.
 2362 	It could just be that addresses are being sanitized so Emacs can't
 2363 	test for pointer validity.
 2364 	* lisp.h (defined_GC_CHECK_STRING_BYTES): New constant.
 2365 	(USE_STACK_STRING) [GC_CHECK_STRING_BYTES]: Now false, since the
 2366 	string validity checker doesn't work on stack-based strings.
 2367 
 2368 2014-11-29  Paul Eggert  <eggert@cs.ucla.edu>
 2369 
 2370 	Improve clarity of USE_LSB_TAG definition.
 2371 	Reported by Lee Duhem.  Suggested by Andreas Schwab in:
 2372 	https://lists.gnu.org/r/emacs-devel/2014-11/msg02222.html
 2373 	* lisp.h (USE_LSB_TAG): Define in terms of the (simpler)
 2374 	VAL_MAX / 2 rather than in terms of the (more complicated)
 2375 	EMACS_INT_MAX >> GCTYPEBITS, and adjust commentary to match.
 2376 
 2377 2014-11-29  Eli Zaretskii  <eliz@gnu.org>
 2378 
 2379 	* xdisp.c (handle_single_display_spec): When ignoring a fringe
 2380 	bitmap display, reset the ignore_overlay_strings_at_pos_p flag.
 2381 	(next_element_from_buffer): When done with overlays, reset the
 2382 	ignore_overlay_strings_at_pos_p flag.  (Bug#19201)
 2383 
 2384 2014-11-29  Eli Zaretskii  <eliz@gnu.org>
 2385 
 2386 	* w32fns.c (Fw32_shell_execute): Convert forward slashes in
 2387 	DOCUMENT to backslashes, if DOCUMENT is a file.  (Bug#19141)
 2388 
 2389 2014-11-29  Ulrich Müller  <ulm@gentoo.org>
 2390 
 2391 	* Makefile.in (temacs$(EXEEXT)): Use consistent flag settings
 2392 	for paxctl and setfattr. Fixes temacs startup failure with
 2393 	grsecurity/PaX enabled Linux kernel (bug#19067).
 2394 
 2395 2014-11-27  Oscar Fuentes  <ofv@wanadoo.es>
 2396 
 2397 	* w32.c, w32heap.c, w32term.c:
 2398 	Use MINGW_W64 instead of _W64.
 2399 
 2400 2014-11-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 2401 
 2402 	* frame.c (Fhandle_switch_frame): Deactivate shift-region (bug#19003).
 2403 
 2404 2014-11-26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 2405 
 2406 	* gnutls.c (gnutls_ip_address_p): New function.
 2407 	(Fgnutls_boot): Only send SNI if the host name is not an IP address.
 2408 
 2409 2014-11-26  Toke Høiland-Jørgensen  <toke@toke.dk>  (tiny change)
 2410 
 2411 	* gnutls.c (Fgnutls_boot): Send the server name over (bug#18208).
 2412 
 2413 2014-11-25  Paul Eggert  <eggert@cs.ucla.edu>
 2414 
 2415 	Fix gnutls problems caught by static checking.
 2416 	* gnutls.c (Fgnutls_boot): Remove unused local.
 2417 	(Fgnutls_boot): Fix pointer signedness.
 2418 
 2419 2014-11-25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 2420 
 2421 	* gnutls.c (gnutls_certificate_details): Don't include certain
 2422 	certificate details on older gnutls versions (bug#19168).
 2423 	(syms_of_gnutls): Export gnutls_peer_status_warning_describe.
 2424 	(gnutls_certificate_details): Reversed check in last checkin.
 2425 
 2426 2014-11-25  Teodor Zlatanov  <tzz@lifelogs.com>
 2427 
 2428 	* gnutls.c (Fgnutls_peer_status): Check GNUTLS_INITSTAGE, not gnutls_p.
 2429 	(Fgnutls_peer_status_warning_describe): Add function to describe a
 2430 	peer verification warning symbol.
 2431 	(Fgnutls_peer_status): Use it.
 2432 	(Fgnutls_boot): Use it.  Minor logging fixes.
 2433 
 2434 2014-11-24  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 2435 
 2436 	* gnutls.c: Fix compilation warnings given fix --enable-gcc-warnings.
 2437 
 2438 2014-11-24  Glenn Morris  <rgm@gnu.org>
 2439 
 2440 	* emacs.c (main) <--version>: Make use of PACKAGE_NAME.
 2441 
 2442 	* Makefile.in (emacs.res): Use ../nt rule, rather than duplicating it.
 2443 	(ntsource, WINDRES, EMACS_MANIFEST): Remove, now unused.
 2444 
 2445 2014-11-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 2446 
 2447 	* gnutls.c: Fix Windows function definition of
 2448 	gnutls_x509_crt_get_fingerprint.
 2449 
 2450 	* gnutls.c: Fix Windows return value for gnutls_pk_algorithm_get_name.
 2451 
 2452 	* gnutls.c (Fgnutls_boot): Save certificate for later inspection.
 2453 
 2454 	* process.h: Added more fields to Lisp_Process to track
 2455 	certificate details.
 2456 
 2457 	* gnutls.c (gnutls_hex_string, gnutls_certificate_details)
 2458 	(Fgnutls_peer_status): New functions to export TLS certificate
 2459 	details to Emacs Lisp.
 2460 
 2461 2014-11-23  Jan Djärv  <jan.h.d@swipnet.se>
 2462 
 2463 	* gtkutil.c (gtk_adjustment_configure): Define for Gtk+ < 2.14.
 2464 	(xg_set_toolkit_horizontal_scroll_bar_thumb): Remove wrong version
 2465 	check for gtk_adjustment_configure (Bug#19149).
 2466 	(gtk_adjustment_configure): Don't use 2.14 functions (Bug#19149).
 2467 
 2468 2014-11-22  Glenn Morris  <rgm@gnu.org>
 2469 
 2470 	* Makefile.in (emacs.res): Add dependency on icons/hand.cur.  Use $<.
 2471 
 2472 2014-11-22  Martin Rudalics  <rudalics@gmx.at>
 2473 
 2474 	Don't shrink frame when using desktop-save-mode (Bug#19048).
 2475 	* w32fns.c (x_set_tool_bar_lines): Always call
 2476 	x_change_tool_bar_height (Bug#19048).
 2477 	(x_change_tool_bar_height): Mark frame as garbaged since
 2478 	adjust_frame_size might not have done that.
 2479 	* xfns.c (x_set_tool_bar_lines): Always call
 2480 	x_change_tool_bar_height (Bug#19048).
 2481 	(x_change_tool_bar_height): Mark frame as garbaged since
 2482 	adjust_frame_size might not have done that.
 2483 
 2484 2014-11-21  Ulf Jasper  <ulf.jasper@web.de>
 2485 
 2486 	* xml.c (parse_region): Take care of new optional parameter
 2487 	'discard-comments' of 'libxml-parse(html|xml)-region'.
 2488 	(Flibxml_parse_html_region, Flibxml_parse_xml_region):
 2489 	New optional parameter 'discard-comments'.
 2490 
 2491 2014-11-17  Paul Eggert  <eggert@cs.ucla.edu>
 2492 
 2493 	Improve time stamp handling, and be more consistent about it.
 2494 	* editfns.c (invalid_time): New function.
 2495 	Use it instead of 'error ("Invalid time specification")'.
 2496 	(time_add, time_subtract, time_arith, Ftime_add, Ftime_less_p)
 2497 	(decode_float_time, lisp_to_timespec, lisp_time_struct):
 2498 	New functions.
 2499 	(make_time_tail, make_time): Remove.  All uses changed to use
 2500 	new functions or plain list4i.
 2501 	(disassemble_lisp_time): Return effective length if successful.
 2502 	Check that LOW is an integer, if it's combined with other components.
 2503 	(decode_time_components): Decode into struct lisp_time, not
 2504 	struct timespec, so that we can support a wide set of times
 2505 	regardless of whether time_t is signed.  Decode plain numbers
 2506 	as seconds since the Epoch, and nil as the current time.
 2507 	(lisp_time_argument, lisp_seconds_argument, Ffloat_time):
 2508 	Reimplement in terms of new functions.
 2509 	(Fencode_time): Just use list2i.
 2510 	(syms_of_editfns): Add time-add, time-subtract, time-less-p.
 2511 	* keyboard.c (decode_timer): Don't allow the new formats (floating
 2512 	point or nil) in timers.
 2513 	* systime.h (LO_TIME_BITS): New constant.  Use it everywhere in
 2514 	place of the magic number '16'.
 2515 	(struct lisp_time): New type.
 2516 	(decode_time_components): Use it.
 2517 	(lisp_to_timespec): New decl.
 2518 
 2519 2014-11-16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 2520 
 2521 	* intervals.h (INTERVAL_WRITABLE_P): Check the `inhibit-read-only'
 2522 	text property.
 2523 
 2524 	* callint.c (Fcall_interactively): Pass in nil as argument to
 2525 	Fbarf_if_buffer_read_only.
 2526 
 2527 	* fileio.c (Finsert_file_contents): Ditto.
 2528 
 2529 	* insdel.c (prepare_to_modify_buffer_1): Pass start region in.
 2530 
 2531 	* textprop.c (verify_interval_modification): Check buffer
 2532 	readedness after the last interval.
 2533 
 2534 	* buffer.c (Fbarf_if_buffer_read_only): Don't raise an error if
 2535 	the text at POSITION (new optional argument) has the
 2536 	`inhibit-read-only' text property set.
 2537 
 2538 2014-11-16  Eli Zaretskii  <eliz@gnu.org>
 2539 
 2540 	* window.c (window_scroll_pixel_based): Avoid truncation/rounding
 2541 	errors in computing the number of pixels to scroll.
 2542 	Suggested by Kelly Dean <kelly@prtime.org>.  (Bug#19060)
 2543 
 2544 2014-11-16  Jan Djärv  <jan.h.d@swipnet.se>
 2545 
 2546 	* nsmenu.m (update_frame_tool_bar): If tool bar changes height,
 2547 	call updateFrameSize.
 2548 
 2549 	* nsterm.m (setFrame:): Remove call to display (Bug#18757).
 2550 
 2551 2014-11-16  Jan Djärv  <jan.h.d@swipnet.se>
 2552 
 2553 	* nsfns.m (x_set_foreground_color, x_set_background_color)
 2554 	(x_set_cursor_color, Fxw_color_values): Block/unblock input,
 2555 	use SET_FRAME_GARBAGED instead of redraw_frame (Bug#19036).
 2556 
 2557 2014-11-15  Jan Djärv  <jan.h.d@swipnet.se>
 2558 
 2559 	* nsterm.m (ns_send_appdefined): Check for application defined
 2560 	event on Cocoa (Bug#18993).
 2561 	(run): Restore code before the previous 18993 fix.
 2562 
 2563 2014-11-14  David Reitter  <david.reitter@gmail.com>
 2564 
 2565 	* nsterm.m (run): Set timeout for event loop to prevent hang.
 2566 	(Bug#18993)
 2567 
 2568 2014-11-14  Paul Eggert  <eggert@cs.ucla.edu>
 2569 
 2570 	* .gitignore: Add emacs-[1-9]*, to ignore files like emacs-25.0.50.1.
 2571 
 2572 2014-11-14  Dmitry Antipov  <dmantipov@yandex.ru>
 2573 
 2574 	* xfont.c (xfont_list_pattern): Do not allocate font entity object
 2575 	for each candidate font but attempt to reuse it from previous improper
 2576 	candidate, if any.
 2577 
 2578 2014-11-13  Paul Eggert  <eggert@cs.ucla.edu>
 2579 
 2580 	Avoid undefined behavior in color table hashing.
 2581 	* image.c (CT_HASH_RGB) [COLOR_TABLE_SUPPORT]: Remove, replacing with ...
 2582 	(ct_hash_rgb) [COLOR_TABLE_SUPPORT]: New function.  All uses changed.
 2583 	This function avoids undefined behavior with signed shift overflow.
 2584 
 2585 2014-11-10  Eli Zaretskii  <eliz@gnu.org>
 2586 
 2587 	* fileio.c (Finsert_file_contents): Invalidate buffer caches also
 2588 	when the inserted text does not need decoding.  (Bug#18982)
 2589 
 2590 2014-11-10  Jan Djärv  <jan.h.d@swipnet.se>
 2591 
 2592 	* nsterm.h (EmacsScroller): judge returns bool.
 2593 
 2594 	* nsterm.m (ns_set_vertical_scroll_bar): Release bar.
 2595 	(ns_judge_scroll_bars): Only set removed if judge returns true.
 2596 	(judge): Returns bool == condemned.  Remove self from window.
 2597 	(setPosition:portion:whole:): Remove raise SIGIO (Bug#18757).
 2598 
 2599 2014-11-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 2600 
 2601 	* keyboard.c (command_loop_1): Record this-command in recent-keys.
 2602 	(Frecent_keys): Rewrite. and add optional `include-cmds' arg.
 2603 
 2604 2014-11-09  Jan Djärv  <jan.h.d@swipnet.se>
 2605 
 2606 	* nsterm.m (ns_set_vertical_scroll_bar)
 2607 	(ns_set_horizontal_scroll_bar): Cleanup merge error.
 2608 
 2609 2014-11-09  Paul Eggert  <eggert@cs.ucla.edu>
 2610 
 2611 	* xgselect.c (xg_select): Don't assume n_gfds is nonnegative
 2612 	merely because tmo_in_millisec is nonnegative.  The 1st call
 2613 	to g_main_context_query could succeed while the 2nd one fails.
 2614 
 2615 	* frame.c (Fcan_run_window_configuration_change_hook): Return a value.
 2616 
 2617 2014-11-08  Jan Djärv  <jan.h.d@swipnet.se>
 2618 
 2619 	* nsterm.m (run): Only use non-system event loop if OSX version is
 2620 	exactly 10.9 (Bug#18993).
 2621 	(ns_set_vertical_scroll_bar): Don't call bar setPosition: unless
 2622 	needed (Bug#18757).
 2623 
 2624 2014-11-08  Michael Albinus  <michael.albinus@gmx.de>
 2625 
 2626 	* callproc.c (encode_current_directory): Support handling of file
 2627 	names prepended by "/:".  (Bug#18891)
 2628 
 2629 2014-11-08  Alan Mackenzie  <acm@muc.de>
 2630 
 2631 	* syntax.c (back_comment): Fix off-by-one error (bug#18022).
 2632 
 2633 2014-11-08  Dima Kogan  <dima@secretsauce.net>
 2634 
 2635 	* xgselect.c (xg_select): Use g_main_context_acquire (bug#18861).
 2636 
 2637 2014-11-08  Michael Albinus  <michael.albinus@gmx.de>
 2638 
 2639 	* dired.c (Ffile_attributes): Return Qnil, if Fexpand_file_name
 2640 	raises an error.  (Bug#18891)
 2641 
 2642 2014-11-08  Martin Rudalics  <rudalics@gmx.at>
 2643 
 2644 	* frame.c (adjust_frame_size): Call x_set_window_size only if
 2645 	f->can_x_set_window_size is set.
 2646 	(make_frame): Initialize f->can_x_set_window_size and
 2647 	f->can_run_window_configuration_change_hook.
 2648 	(Fcan_run_window_configuration_change_hook): New function.
 2649 	* frame.h (frame): Split `official' into `can_x_set_window_size'
 2650 	and `can_run_window_configuration_change_hook'.
 2651 	* nsfns.m (Fx_create_frame): Set f->can_x_set_window_size.
 2652 	* w32fns.c (Fx_create_frame, x_create_tip_frame):
 2653 	Set f->can_x_set_window_size.
 2654 	* window.c (run_window_configuration_change_hook):
 2655 	Return immediately if either f->can_x_set_window_size or
 2656 	f->can_run_window_configuration_change_hook are false.
 2657 	(Fset_window_configuration): Instead of f->official set
 2658 	f->can_x_set_window_size.
 2659 	* xfns.c (Fx_create_frame, x_create_tip_frame):
 2660 	Set f->can_x_set_window_size.
 2661 
 2662 2014-11-08  Jan Djärv  <jan.h.d@swipnet.se>
 2663 
 2664 	* nsterm.m (EmacsScroller.dealloc): Reinstate, removed at merge
 2665 	cleanup from 2014-11-01 (Bug#18972).
 2666 
 2667 2014-11-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 2668 
 2669 	* keyboard.c: Call gui-set-selection instead of x-set-selection.
 2670 	* xdisp.c (window-scroll-functions): Improve docstring.
 2671 
 2672 2014-11-07  Paul Eggert  <eggert@cs.ucla.edu>
 2673 
 2674 	Uniquify the 'size' symbol.
 2675 	* frame.c (Qsize):
 2676 	* w32notify.c (Qsize): Remove.
 2677 	* lisp.h (Qsize): New decl.
 2678 	* lread.c (Qsize): Now extern.
 2679 	* w32notify.c (syms_of_w32notify): No need to defsym.
 2680 
 2681 2014-11-07  Martin Rudalics  <rudalics@gmx.at>
 2682 
 2683 	* dispnew.c (change_frame_size_1): Fix call of
 2684 	adjust_frame_size.
 2685 	* frame.c (Qsize, Qframe_position, Qframe_outer_size)
 2686 	(Qframe_inner_size, Qexternal_border_size, Qtitle_height)
 2687 	(Qmenu_bar_external, Qmenu_bar_size, Qtool_bar_external)
 2688 	(Qtool_bar_size): New constants.
 2689 	(frame_inhibit_resize, adjust_frame_size): New argument to
 2690 	handle case where frame_inhibit_implied_resize is a list.
 2691 	(Fmake_terminal_frame, Fset_frame_height, Fset_frame_width)
 2692 	(Fset_frame_size, x_set_left_fringe, x_set_right_fringe)
 2693 	(x_set_right_divider_width, x_set_bottom_divider_width)
 2694 	(x_set_vertical_scroll_bars, x_set_horizontal_scroll_bars)
 2695 	(x_set_scroll_bar_width, x_set_scroll_bar_height):
 2696 	Update callers.
 2697 	(frame-inhibit-implied-resize): Rewrite doc-string.
 2698 	* frame.h (frame_inhibit_resize, adjust_frame_size):
 2699 	Fix external declarations.
 2700 	(Qframe_position, Qframe_outer_size)
 2701 	(Qframe_inner_size, Qexternal_border_size, Qtitle_height)
 2702 	(Qmenu_bar_external, Qmenu_bar_size, Qtool_bar_external)
 2703 	(Qtool_bar_size): Extern them.
 2704 	* gtkutil.c (FRAME_TOTAL_PIXEL_HEIGHT, FRAME_TOTAL_PIXEL_WIDTH)
 2705 	(xg_height_or_width_changed): Remove.
 2706 	(xg_frame_set_char_size): Adjust adjust_frame_size calls.
 2707 	(menubar_map_cb, xg_update_frame_menubar, free_frame_menubar)
 2708 	(tb_size_cb, update_frame_tool_bar, free_frame_tool_bar)
 2709 	(xg_change_toolbar_position): Call adjust_frame_size directly.
 2710 	* nsfns.m (x_set_internal_border_width, Fx_create_frame):
 2711 	Fix calls of adjust_frame_size.
 2712 	* w32fns.c (x_set_internal_border_width, x_set_menu_bar_lines)
 2713 	(Fx_create_frame, x_create_tip_frame): Adjust adjust_frame_size calls.
 2714 	(x_set_tool_bar_lines, x_change_tool_bar_height): Make sure that
 2715 	frame can get resized when tool-bar-lines parameter changes from
 2716 	or to zero.
 2717 	(Fw32_frame_menu_bar_size): Return fourth value.
 2718 	(Fw32_frame_rect): Block input around system calls
 2719 	(Fx_frame_geometry): New function.
 2720 	* w32menu.c (set_frame_menubar): Adjust adjust_frame_size call.
 2721 	* w32term.c (x_new_font): Adjust adjust_frame_size call.
 2722 	* widget.c (EmacsFrameSetCharSize): Adjust frame_inhibit_resize call.
 2723 	* window.c (Fset_window_configuration): Adjust adjust_frame_size call.
 2724 	* xfns.c (x_set_menu_bar_lines, x_set_internal_border_width)
 2725 	(Fx_create_frame): Adjust adjust_frame_size calls.
 2726 	(x_set_tool_bar_lines, x_change_tool_bar_height): Make sure that
 2727 	frame can get resized when tool-bar-lines parameter changes from
 2728 	or to zero.
 2729 	(Fx_frame_geometry): New function.
 2730 	* xmenu.c (update_frame_menubar): On Lucid call
 2731 	adjust_frame_size with one pixel less height to avoid that
 2732 	repeatedly adding/removing the menu bar grows the frame.
 2733 	(free_frame_menubar): On Motif arrange to optionally preserve
 2734 	the old frame height when removing the menu bar.
 2735 	* xterm.c (x_new_font): Adjust adjust_frame_size call.
 2736 
 2737 2014-11-03  Eli Zaretskii  <eliz@gnu.org>
 2738 
 2739 	* xdisp.c (Fdump_glyph_matrix, Fdump_frame_glyph_matrix): Doc fix.
 2740 	(Fdump_frame_glyph_matrix): Don't segfault if invoked on a GUI
 2741 	frame; instead, print an error message.
 2742 
 2743 2014-11-03  Jan Djärv  <jan.h.d@swipnet.se>
 2744 
 2745 	* nsfns.m (ns_set_doc_edited): Check for FRAME_NS (Bug#18925).
 2746 
 2747 2014-11-02  Jan Djärv  <jan.h.d@swipnet.se>
 2748 
 2749 	* nsimage.m (allocInitFromFile:): Initialize bmRep.
 2750 	(dealloc): Release bmRep.
 2751 
 2752 	* nsterm.h (EmacsImage): Remove imageListNext, refCount, reference,
 2753 	imageListSetNext, imageListNext.
 2754 
 2755 	* nsimage.m (ImageList, imageListNext, imageListSetNext:)
 2756 	(reference): Remove.
 2757 	(allocInitFromFile:): Remove searching ImageList and calling
 2758 	reference (Bug#18918).
 2759 	(dealloc): Remove handling if ImageList.
 2760 
 2761 2014-11-02  Andreas Schwab  <schwab@linux-m68k.org>
 2762 
 2763 	* process.c (catch_child_signal): Fix incorrect assertion.
 2764 
 2765 2014-11-01  Jan Djärv  <jan.h.d@swipnet.se>
 2766 
 2767 	* macfont.m (macfont_draw):
 2768 	* nsterm.m (ns_mouse_position, judge): Clean up merge conflict.
 2769 
 2770 	* macfont.m (macfont_glyph_extents): Turn off synthetic bold
 2771 	if force_integral_p (i.e. no antialias).
 2772 	(macfont_draw): Check ns_antialias_text, also turn off synthetic
 2773 	bold if no antialias (Bug#18876).
 2774 
 2775 	* emacs.c (main): Don't chdir to $HOME on Cocoa if --chdir
 2776 	was given (Bug#18846).
 2777 
 2778 	* nsterm.h (ns_set_doc_edited): Declare taking no args.
 2779 
 2780 	* nsfns.m (ns_set_doc_edited): Do all logic (check frames) here
 2781 	instead of in xdisp.c, function now takes void. (Bug#18884).
 2782 
 2783 	* xdisp.c (prepare_menu_bars): Remove HAVE_NS code.
 2784 	(redisplay_internal): Call ns_set_doc_edited if HAVE_NS (Bug#18884).
 2785 
 2786 	* nsterm.h (EmacsScroller): Replace Lisp_Object win with
 2787 	struct window* (Bug#18889).
 2788 	Remove getMouseMotionPart.
 2789 	(ns_output): Make icon_top/left int.
 2790 
 2791 	* nsfns.m (x_icon): icon_top/left is int.
 2792 
 2793 	* nsterm.m (ns_mouse_position): Remove unused code.
 2794 	(initFrame:window:, dealloc): Use window instead of win.
 2795 	(getMouseMotionPart:window:x:y:): Remove, unused.
 2796 	(sendScrollEventAtLoc:fromEvent:): Make Lisp_Object win from window.
 2797 
 2798 2014-11-01  Eli Zaretskii  <eliz@gnu.org>
 2799 
 2800 	* keyboard.c (readable_events): When FLAGS include
 2801 	READABLE_EVENTS_FILTER_EVENTS, ignore BUFFER_SWITCH_EVENT events.
 2802 	This avoids returning non-nil from input-pending-p when only such
 2803 	events are in the queue.  (Bug#18856)
 2804 
 2805 2014-11-01  Jan Djärv  <jan.h.d@swipnet.se>
 2806 
 2807 	* nsselect.m (QCLIPBOARD, QSECONDARY, QTEXT, QFILE_NAME)
 2808 	(NXPrimaryPboard, NXSecondaryPboard): Declare static.
 2809 	(Qforeign_selection): Remove.
 2810 	(ns_get_local_selection): Identation fix.
 2811 	(syms_of_nsselect): Remove Qforeign_selection, ns-lost-selection-hooks
 2812 
 2813 	* nsselect.m (ns_get_local_selection): Remove calling of
 2814 	functions in Vselection_converter_alist (Bug#18911).
 2815 	(syms_of_nsselect): Remove Vselection_converter_alist.
 2816 
 2817 2014-10-31  Dmitry Antipov  <dmantipov@yandex.ru>
 2818 
 2819 	* font.c (copy_font_spec): Redesign to avoid Fcopy_alist
 2820 	and unnecessary initialization.  Adjust comments.
 2821 
 2822 2014-10-30  Eli Zaretskii  <eliz@gnu.org>
 2823 
 2824 	* bidi.c (bidi_cache_reset_to): Invalidate bidi_cache_last_idx by
 2825 	setting it to -1.
 2826 	(bidi_find_bracket_pairs): Pass to bidi_cache_reset_to a relative
 2827 	index, not an absolute one, as that's what the function expects.
 2828 
 2829 2014-10-30  Dmitry Antipov  <dmantipov@yandex.ru>
 2830 
 2831 	* xfaces.c (Finternal_set_lisp_face_attribute): Don't try to realize
 2832 	font on an initial frame when running as a daemon (Bug#18869).
 2833 
 2834 	* fontset.c (toplevel): Adjust comment to match 2014-06-19 change.
 2835 
 2836 2014-10-30  Eli Zaretskii  <eliz@gnu.org>
 2837 
 2838 	* fileio.c (Fexpand_file_name): Use make_unibyte_string, not
 2839 	build_string, when importing a home directory.  (Bug#18873)
 2840 
 2841 2014-12-27  Eli Zaretskii  <eliz@gnu.org>
 2842 
 2843 	* dispnew.c (buffer_posn_from_coords):
 2844 	Use WINDOW_WANTS_HEADER_LINE_P, not WINDOW_WANTS_MODELINE_P, to
 2845 	account for the header-line height.  (Bug#18839)
 2846 
 2847 2014-10-28  Ulf Jasper  <ulf.jasper@web.de>
 2848 
 2849 	* xml.c (parse_region): Do not forget the first document child.
 2850 
 2851 2014-10-25  Jan Djärv  <jan.h.d@swipnet.se>
 2852 
 2853 	* nsselect.m: pasteboard_changecount is new.
 2854 	(ns_store_pb_change_count, ns_get_pb_change_count)
 2855 	(ns_get_our_change_count_for): New functions.
 2856 	(ns_string_to_pasteboard_internal): Correct comment.
 2857 	type => gtype in eassert, Call ns_store_pb_change_count.
 2858 	(Fns_own_selection_internal): Remove data, use value (Bug#18799).
 2859 	(Fns_disown_selection_internal, Fns_selection_owner_p):
 2860 	Replace Vselection_alist check, with change count check.
 2861 	(Fns_get_selection): Initialize val to Qnil.  Only get local
 2862 	selection if change counts match (Bug#18799).
 2863 	(nxatoms_of_nsselect): Initialize pasteboard_changecount.
 2864 
 2865 2014-10-25  Noam Postavsky  <npostavs@users.sourceforget.net>
 2866 
 2867 	* w32proc.c (create_child): If calling a quoted batch file,
 2868 	pass NULL for exe.  (Bug#18745)
 2869 
 2870 2014-10-24  Eli Zaretskii  <eliz@gnu.org>
 2871 
 2872 	* bidi.c (bidi_resolve_explicit, bidi_find_bracket_pairs)
 2873 	(bidi_resolve_brackets): Use end of string position rather than ZV
 2874 	when iterating over a string.  (Bug#18815)
 2875 
 2876 2014-10-24  Martin Rudalics  <rudalics@gmx.at>
 2877 
 2878 	* keyboard.c (make_lispy_position): Return coordinates also when
 2879 	on scroll bars, fringes, margins or not in a window.
 2880 	* xdisp.c (show_mouse_face): Don't change cursor face during
 2881 	mouse tracking.
 2882 
 2883 2014-10-23  Martin Rudalics  <rudalics@gmx.at>
 2884 
 2885 	* frame.c (Fset_frame_height, Fset_frame_width, Fset_frame_size)
 2886 	(frame_resize_pixelwise, frame_inhibit_implied_resize):
 2887 	Fix doc-strings (Bug#18789).
 2888 
 2889 2014-10-23  Paul Eggert  <eggert@cs.ucla.edu>
 2890 
 2891 	* Makefile.in (ACLOCAL_INPUTS): Omit unnecessary use of 'wildcard'.
 2892 
 2893 2014-10-22  Eli Zaretskii  <eliz@gnu.org>
 2894 
 2895 	Optimize redisplay of simple bracketed text.
 2896 	* bidi.c (bidi_cache_reset_to): New function.
 2897 	(bidi_cache_reset): Call it.
 2898 	(bidi_init_it, bidi_line_init): Initialize the bracket_pairing_pos
 2899 	member to -1.
 2900 	(bidi_resolve_explicit): Reset bracket_pairing_pos and
 2901 	bracket_enclosed_type only if bracket_pairing_pos's value is not
 2902 	ZV.
 2903 	(MAX_BPA_STACK): Make sure the value is signed.
 2904 	(PUSH_BPA_STACK): If the BPA stack overflows, don't bail out, but
 2905 	stop pushing values onto the stack.
 2906 	(bidi_find_bracket_pairs): If the bracketed text is only on the
 2907 	base embedding level, remove all the states cached by this
 2908 	function from the cache, and return zero, so that the brackets in
 2909 	this segment of text are processed as normal neutrals.
 2910 	(bidi_resolve_brackets): Detect the brackets that are to be
 2911 	processed as neutrals, and don't call bidi_find_bracket_pairs on
 2912 	them.  (Bug#18778)
 2913 
 2914 2014-10-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 2915 
 2916 	* w32select.c (Fw32_selection_exists_p): Rename from
 2917 	Fx_selection_exists_p.
 2918 	(syms_of_w32select): Adjust accordingly.
 2919 
 2920 	* w16select.c (Fw16_selection_exists_p): Rename from
 2921 	Fx_selection_exists_p.
 2922 	(syms_of_win16select): Adjust accordingly.
 2923 
 2924 	* nsselect.m (ns_get_local_selection): Signal error rather than `quit'.
 2925 	(Fns_own_selection_internal): Tighten scoping.
 2926 	(Fns_selection_exists_p): Rename from Fx_selection_exists_p.
 2927 	(Fns_get_selection): Rename from Fx_get_selection_internal.
 2928 	(Fns_get_selection_internal, Fns_store_selection_internal):
 2929 	Remove functions.
 2930 	(syms_of_nsselect): Adjust accordingly.
 2931 
 2932 2014-10-21  Martin Rudalics  <rudalics@gmx.at>
 2933 
 2934 	* w32fns.c (Fw32_frame_menu_bar_size): New function.
 2935 	* w32term.c (x_set_window_size): Account for wrapped menu bar
 2936 	lines when setting up frame height (Bug#15174 and Bug#18720).
 2937 	(w32_add_wrapped_menu_bar_lines): New variable.
 2938 
 2939 2014-10-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 2940 
 2941 	* xdisp.c (redisplay_window): Re-run pre-redisplay-function after we
 2942 	move point.
 2943 
 2944 2014-10-20  Glenn Morris  <rgm@gnu.org>
 2945 
 2946 	* Merge in all changes up to 24.4 release.
 2947 
 2948 2014-10-19  Jan Djärv  <jan.h.d@swipnet.se>
 2949 
 2950 	* gtkutil.c (xg_update_menubar, xg_update_menu_item): Only call
 2951 	g_object_notify for label if Gtk+ >= 2.16 (Bug#16522).
 2952 
 2953 	* xterm.h (x_output): Remove net_wm_state_hidden_seen.
 2954 
 2955 	* xterm.c (handle_one_xevent): Check return value from
 2956 	x_handle_net_wm_state, remove net_wm_state_hidden_seen (Bug#18722).
 2957 	(get_current_wm_state): Remove net_wm_state_hidden_seen setting.
 2958 
 2959 	* gtkutil.c (create_dialog): Don't use gtk_dialog_get_action_area on
 2960 	Gt+ >= 3.12, or gtk_misc_set_alignment on Gtk+ >= 3.14 (Bug#18674).
 2961 	(make_widget_for_menu_item): Don't use gtk_misc_set_alignment on
 2962 	Gtk+ >= 3.14 (Bug#18674).
 2963 	(update_frame_tool_bar): Don't use  gtk_misc_set_padding on
 2964 	Gtk+ >= 3.14 (Bug#18674).
 2965 
 2966 2014-10-18  Paul Eggert  <eggert@cs.ucla.edu>
 2967 
 2968 	* gtkutil.c: Remove no-longer-used code.
 2969 	(xg_update_menubar): Remove unused local and unnecessary call to
 2970 	gtk_menu_item_get_submenu.
 2971 	(XG_TOOL_BAR_PROXY_BUTTON, xg_tool_bar_proxy_callback)
 2972 	(xg_get_tool_bar_widgets, xg_tool_bar_proxy_help_callback)
 2973 	(TOOLBAR_TOP_WIDGET): Remove; no longer used.
 2974 
 2975 2014-10-18  Jan Djärv  <jan.h.d@swipnet.se>
 2976 
 2977 	* xfns.c (syms_of_xfns): Remove x-gtk-whole-detached-tool-bar.
 2978 
 2979 	* xterm.h (handlebox_widget): Remove.
 2980 
 2981 	* xmenu.c (set_frame_menubar): Remove GTK block that calls
 2982 	xg_have_tear_offs.
 2983 
 2984 	* gtkutil.h (xg_have_tear_offs): Remove declaration.
 2985 
 2986 	* gtkutil.c (XG_TEXT_CANCEL, XG_TEXT_OPEN, XG_TEXT_OK): New defines
 2987 	to handle Gtk versions.
 2988 	(xg_get_file_with_chooser): Use them.
 2989 	(xg_have_tear_offs, tearoff_remove, tearoff_activate):
 2990 	Remove (create_menus): Remove teroff argument and code.
 2991 	Remove call to gtk_menu_set_title.
 2992 	(xg_update_menubar, xg_update_submenu): Remove tearoff code.
 2993 	Adjust args to create_menus.
 2994 	(xg_tool_bar_menu_proxy, xg_tool_bar_detach_callback)
 2995 	(xg_tool_bar_attach_callback, TOOLBAR_TOP_WIDGET): Remove.
 2996 	(xg_pack_tool_bar): Replace TOOLBAR_TOP_WIDGET, remove detach code.
 2997 	(xg_make_tool_item): Remove detach code.
 2998 	(xg_update_tool_bar_sizes): Replace TOOLBAR_TOP_WIDGET.
 2999 	(find_icon_from_name): New function.
 3000 	(update_frame_tool_bar): Remove GtkStockItem code, move to
 3001 	find_icon_from_name.  Let stock be a list of icon names to try.
 3002 	Only use gtk_image_new_from_stock on Gtk+ < 3.10.
 3003 	Replace TOOLBAR_TOP_WIDGET.
 3004 	(free_frame_tool_bar, xg_change_toolbar_position ):
 3005 	Replace TOOLBAR_TOP_WIDGET.
 3006 	(xg_initialize): Remove tearoff code.
 3007 
 3008 2014-10-18  Eli Zaretskii  <eliz@gnu.org>
 3009 
 3010 	* xterm.c (x_draw_bar_cursor, x_draw_hollow_cursor): Subtract 1
 3011 	pixel from the window's cursor glyph width, since X renders hollow
 3012 	blocks 1 pixel wider than the 'width' parameter.
 3013 
 3014 	* xdisp.c (get_phys_cursor_geometry): Don't subtract 1 pixel from
 3015 	glyph->pixel_width; this is now done in xterm.c.
 3016 
 3017 	Fix reordering of bracket characters in isolates.
 3018 	* bidi.c (bidi_cache_find): Rename the argument NEUTRALS_OK to
 3019 	RESOLVED_ONLY; when non-zero, return from the cache only fully
 3020 	resolved states.  All callers changed.
 3021 	(CANONICAL_EQU): New macro.
 3022 	(PUSH_BPA_STACK): Use it to push onto the BPA stack the canonical
 3023 	equivalent of the paired closing bracket character.
 3024 	(bidi_find_bracket_pairs): Set the bracket_pairing_pos member to
 3025 	the default non-negative value, to be checked later in
 3026 	bidi_resolve_brackets.  Use CANONICAL_EQU to test candidate
 3027 	characters against those pushed onto the BPA stack.
 3028 	(bidi_record_type_for_neutral): New function.
 3029 	(bidi_resolve_brackets): Record next_for_neutral and
 3030 	prev_for_neutral when embedding level gets pushed.  Force
 3031 	resolution of bracket pairs when entering a level run that was not
 3032 	yet BPA-resolved.
 3033 	(bidi_resolve_neutral): Add assertions before calling
 3034 	bidi_resolve_neutral_1.
 3035 	(bidi_level_of_next_char): Remove the code that attempted to
 3036 	resolve unresolved neutrals; that is now done by
 3037 	bidi_resolve_neutral.
 3038 
 3039 	* w32select.c (owner_callback): Mark with ALIGN_STACK attribute.
 3040 
 3041 2014-10-17  Eli Zaretskii  <eliz@gnu.org>
 3042 
 3043 	* xterm.c (x_draw_hollow_cursor): Fix display of hollow cursor on
 3044 	1-pixel R2L characters.
 3045 	Reported by Dmitry Antipov <dmantipov@yandex.ru>, see
 3046 	https://lists.gnu.org/r/emacs-devel/2014-10/msg00518.html.
 3047 
 3048 2014-10-16  Eli Zaretskii  <eliz@gnu.org>
 3049 
 3050 	* bidi.c (bidi_find_bracket_pairs): Avoid a loop that does nothing
 3051 	useful.
 3052 
 3053 2014-10-15  Paul Eggert  <eggert@cs.ucla.edu>
 3054 
 3055 	* bidi.c (bidi_find_bracket_pairs): Initialize local var.
 3056 	This pacifies GCC 4.9.1 with --enable-gcc-warnings.
 3057 	It's not clear to me whether the initialization is needed,
 3058 	but it can't hurt so I played it safe.
 3059 
 3060 2014-10-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 3061 
 3062 	* lisp.mk (lisp): Add emacs-lisp/eldoc.elc.
 3063 
 3064 2014-10-15  Eli Zaretskii  <eliz@gnu.org>
 3065 
 3066 	Update the bidirectional reordering engine for Unicode 6.3 and 7.0.
 3067 	* bidi.c (bidi_ignore_explicit_marks_for_paragraph_level):
 3068 	Remove variable.
 3069 	(bidi_get_type): Return the isolate initiators and terminator types.
 3070 	(bidi_isolate_fmt_char, bidi_paired_bracket_type)
 3071 	(bidi_fetch_char_skip_isolates, find_first_strong_char)
 3072 	(bidi_find_bracket_pairs, bidi_resolve_brackets): New functions.
 3073 	(bidi_set_sos_type): Rename from bidi_set_sor_type and updated
 3074 	for the new features.
 3075 	(bidi_push_embedding_level, bidi_pop_embedding_level): Update to
 3076 	push and pop correctly for isolates.
 3077 	(bidi_remember_char): Modify to accept an additional argument
 3078 	and record the bidi type according to its value.
 3079 	(bidi_cache_iterator_state): Accept an additional argument to only
 3080 	update an existing state.  Handle the new members of struct bidi_it.
 3081 	(bidi_cache_find): Arguments changed: no longer accepts a level,
 3082 	instead accepts a flag telling it whether it is okay to return
 3083 	unresolved neutrals.
 3084 	(bidi_initialize): Initiate and staticpro the bracket-type uniprop
 3085 	table.  Initialize new isolate-related members.
 3086 	(bidi_paragraph_init): Some code factored out into
 3087 	find_first_strong_char.
 3088 	(bidi_resolve_explicit_1): Function deleted, its code incorporated
 3089 	into bidi_resolve_explicit.
 3090 	(bidi_resolve_explicit): Support the isolate initiators and
 3091 	terminator.  Fix handling of embeddings and overrides according to
 3092 	new UBA requirements.  Record information about previously seen
 3093 	characters here (moved from bidi_level_of_next_char).
 3094 	(bidi_resolve_weak): Adapt to changes in struct members.
 3095 	(FLAG_EMBEDDING_INSIDE, FLAG_OPPOSITE_INSIDE, MAX_BPA_STACK)
 3096 	(STORE_BRACKET_CHARPOS, PUSH_BPA_STACK): New macros.
 3097 	(bidi_resolve_neutral): Call bidi_resolve_brackets to handle the
 3098 	paired bracket resolution.  Handle isolate initiators and
 3099 	terminator.
 3100 	(bidi_type_of_next_char): Remove unneeded code for BN limit.
 3101 	(bidi_level_of_next_char): Move the code that records information
 3102 	about previous characters to bidi_resolve_explicit.  Fix logic of
 3103 	resolving neutrals and make sure their cache entries are updated.
 3104 	Remove now unneeded special handling of PDF level.
 3105 
 3106 	* dispextern.h (struct glyph): Enlarge the width of resolved_level.
 3107 	(BIDI_MAXDEPTH): New macro, renamed from BIDI_MAXLEVEL and
 3108 	enlarged per Unicode 6.3.
 3109 	(enum bidi_bracket_type_t): New data type.
 3110 	(struct bidi_saved_info): Leave only 2 type members out of 4.
 3111 	Remove bytepos.
 3112 	(struct bidi_stack): Add members necessary to support isolating
 3113 	sequences.
 3114 	(struct bidi_it): Add new members necessary to support isolating
 3115 	sequences and bracket pair resolution.
 3116 
 3117 	* xdisp.c (Fbidi_resolved_levels): New function.
 3118 	(syms_of_xdisp): Defsubr it.
 3119 	(append_glyph, append_composite_glyph, produce_image_glyph)
 3120 	(append_stretch_glyph, append_glyphless_glyph): Convert aborts to
 3121 	assertions.
 3122 	(syms_of_xdisp) <inhibit-bidi-mirroring>: New variable.
 3123 
 3124 	* term.c (append_glyph, append_composite_glyph)
 3125 	(append_glyphless_glyph): Convert aborts to assertions.
 3126 
 3127 	* .gdbinit (pgx): Display the character codepoint, resolved level,
 3128 	and bidi type also for glyphless glyphs.
 3129 
 3130 2014-10-15  Dmitry Antipov  <dmantipov@yandex.ru>
 3131 
 3132 	Avoid unwanted point motion in Fline_beginning_position.
 3133 	* lisp.h (scan_newline_from_point): Add prototype.
 3134 	* search.c (scan_newline_from_point): New function, refactored from...
 3135 	* cmds.c (Fforward_line): ...adjusted user.
 3136 	* editfns.c (Fline_beginning_position): Use scan_newline_from_point
 3137 	and simplify the former since the latter doesn't move point.
 3138 
 3139 2014-10-14  Dmitry Antipov  <dmantipov@yandex.ru>
 3140 
 3141 	Cleanup terminal handling code.
 3142 	* dispextern.h (get_named_tty): Remove prototype but...
 3143 	* termhooks.h (get_named_terminal): ...resurrect it under
 3144 	more meaningful name.
 3145 	(get_terminal): Likewise, but with...
 3146 	(decode_live_terminal): ...this name.
 3147 	(decode_tty_terminal): Add prototype.
 3148 	* term.c (get_tty_terminal): Remove.
 3149 	(get_named_tty): Remove.
 3150 	(Ftty_display_color_p, Ftty_display_color_cells, Ftty_type)
 3151 	(Fcontrolling_tty_p, Fsuspend_tty, Fresume_tty):
 3152 	Use decode_tty_terminal.
 3153 	(Ftty_no_underline, Ftty_top_frame): Use decode_live_terminal.
 3154 	* terminal.c (get_terminal): Refactor to...
 3155 	(decode_terminal, decode_live_terminal): ...new functions.
 3156 	(decode_tty_terminal): Replacement for get_tty_terminal.
 3157 	(get_named_terminal): Likewise for get_named_tty.
 3158 	* coding.c (Fset_terminal_coding_system_internal)
 3159 	(Fterminal_coding_system, Fset_keyboard_coding_system_internal):
 3160 	(Fkeyboard_coding_system):
 3161 	* composite.c (Fcomposition_get_gstring):
 3162 	* dispnew.c (Fsend_string_to_terminal):
 3163 	* frame.c (Fmake_terminal_frame):
 3164 	* nsfns.m (check_ns_display_info):
 3165 	* w32fns.c, xfns.c (check_x_display_info):
 3166 	* xselect.c (frame_for_x_selection): Use decode_live_terminal.
 3167 	* keyboard.c (handle_interrupt_signal, handle_interrupt)
 3168 	(Fset_quit_char): Use get_named_terminal.
 3169 	(Fset_output_flow_control, Fset_input_meta_mode):
 3170 	Use decode_tty_terminal.
 3171 
 3172 2014-10-13  Eli Zaretskii  <eliz@gnu.org>
 3173 
 3174 	* w32term.h (ALIGN_STACK): Use _WIN64, not _W64, to distinguish
 3175 	between 32-bit and 64-bit MinGW builds.  (Bug#18699)
 3176 
 3177 2014-10-12  Paul Eggert  <eggert@cs.ucla.edu>
 3178 
 3179 	Fix port to Debian GNU/kFreeBSD 7 (wheezy) (Bug#18666).
 3180 	* process.c (accept4) [!HAVE_ACCEPT4]: New macro.
 3181 
 3182 2014-10-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 3183 
 3184 	* frame.c (Fmouse_pixel_position): Call Vmouse_position_function
 3185 	(bug#18638).
 3186 
 3187 2014-10-12  Paul Eggert  <eggert@cs.ucla.edu>
 3188 
 3189 	* editfns.c (dump_tz_string): No longer const.
 3190 	It might be modified.
 3191 
 3192 	* nsmenu.m (clear): Assume OS X 10.6 or later.
 3193 
 3194 2014-10-12  Jan Djärv  <jan.h.d@swipnet.se>
 3195 
 3196 	* unexmacosx.c: Remove include ppc/reloc.h.
 3197 	(unrelocate, copy_dysymtab): Remove PPC code.
 3198 	(rebase_reloc_address): Remove, only used for PPC:
 3199 
 3200 	* nsterm.m: Always include macfont.h on COCOA.
 3201 	(ns_update_auto_hide_menu_bar, ns_draw_fringe_bitmap)
 3202 	(ns_dumpglyphs_image, ns_check_menu_open)
 3203 	(applicationDidFinishLaunching)
 3204 	(antialiasThresholdDidChange:)
 3205 	(keyDown:, toggleFullScreen:, setPosition:portion:whole:):
 3206 	Remove checks for OSX <= 10.5/10.6.
 3207 	(changeFont:): Use macfont on COCOA, nsfont on GNUSTEP.
 3208 	(syms_of_nsterm): Call syms_of_macfont on COCOA, syms_of_nsfont on
 3209 	GNUSTEP.
 3210 
 3211 	* nsterm.h (MAC_OS_X_VERSION_10_4, MAC_OS_X_VERSION_10_5): Remove.
 3212 	(NS_HAVE_NSINTEGER): Remove block.
 3213 	Remove >= OSX 10.6 tests.
 3214 
 3215 	* nsmenu.m (NSMenuDidBeginTrackingNotification): Remove.
 3216 	(x_activate_menubar, trackingNotification:): Remove check for
 3217 	OSX >= 10.5.
 3218 	(menuNeedsUpdate:): Remove check for OSX < 10.5.
 3219 
 3220 	* nsimage.m (allocInitFromFile:): Remove code for OSX < 10.6.
 3221 
 3222 	* nsfns.m: Always include macfont.h on COCOA.
 3223 	(ns_filename_from_panel, ns_directory_from_panel)
 3224 	(Fx_create_frame, Fns_popup_font_panel, ns_run_file_dialog)
 3225 	(Fns_read_file_name, Fns_list_services): Remove code for OSX < 10.6
 3226 
 3227 	* macfont.m: Remove >= 1050 check.
 3228 	(macfont_create_family_with_symbol)
 3229 	(macfont_get_glyph_for_character)
 3230 	(mac_font_get_glyphs_for_variants)
 3231 	(mac_ctfont_create_available_families, syms_of_macfont):
 3232 	Remove code for OSX < 10.6.
 3233 	(mac_font_family_group, mac_font_family_compare): Remove, only used
 3234 	for OSX < 10.6.
 3235 
 3236 	* macfont.h (MAC_FONT_FORMAT_ATTRIBUTE, MAC_FONT_FORMAT_BITMAP)
 3237 	(mac_font_copy_non_synthetic_table): Remove versions for OSX < 10.6
 3238 
 3239 	* Makefile.in: Replace nsfont.o macfont.o with ns_fontfile in
 3240 	comment.
 3241 
 3242 2014-10-12  Paul Eggert  <eggert@cs.ucla.edu>
 3243 
 3244 	Fix putenv race conditions with undefined behavior (Bug#8705).
 3245 	Do all putenv calls before Emacs creates any threads.
 3246 	Use a safer way to modify the TZ environment variable in the
 3247 	presence of multiple threads.  For further thread-safety,
 3248 	prefer localtime_r and gmtime_r to localtime and gmtime,
 3249 	and prefer struct tm's tm_gmtoff (if available) to calling
 3250 	both localtime_r and gmtime_r.
 3251 	* dbusbind.c (Fdbus__init_bus): Move xputenv call from here ...
 3252 	(init_dbusbind): ... to this new function.
 3253 	* emacs.c (main) [HAVE_DBUS]: Call it before creating threads.
 3254 	* xterm.c (x_term_init): Move xputenv call from here ...
 3255 	(init_xterm): ... to this new function.
 3256 	* emacs.c (main) [USE_GTK]: Call it before creating threads.
 3257 	* editfns.c (HAVE_TM_GMTOFF): Default to false.
 3258 	(dump_tz_string): New constant.
 3259 	(init_editfns): Use it.  This centralizes the dump_tz stuff.
 3260 	Call set_time_zone_rule here, so that its xputenv is done
 3261 	before Emacs goes multithreaded.
 3262 	(mktime_z) [!HAVE_TZALLOC]: New function, which is typically
 3263 	thread-safe enough for Emacs.
 3264 	(format_time_string, Fdecode_time, Fcurrent_time_string)
 3265 	(Fcurrent_time_zone):
 3266 	Prefer localtime_r and gmtime_r, which are more thread-safe, to
 3267 	localtime and gmtime.  Remove now-unnecessary calls to block_input.
 3268 	(tm_gmtoff): New static function.
 3269 	(Fdecode_time, Fcurrent_time_zone): Use it.
 3270 	(Fencode_time): Use mktime_z, for better thread-safety.
 3271 	(set_time_zone_rule): Now static.  Rewrite to be mostly thread-safe,
 3272 	i.e., not quite thread-safe but good enough for Emacs typical usage.
 3273 	Do not reclaim storage that is in the environment; let it leak.
 3274 	Always call tzset, since localtime_r does not.
 3275 	* emacs.c (dump_tz, Fdump_emacs) [HAVE_TZSET]: Remove dump_tz stuff.
 3276 	This is now done in init_editfns.
 3277 	* systime.h (mktime_z, timezone_t, tzalloc, tzfree) [!HAVE_TZALLOC]:
 3278 	New macros and declarations, for platforms lacking tzalloc & friends.
 3279 
 3280 2014-10-09  Paul Eggert  <eggert@cs.ucla.edu>
 3281 
 3282 	* lisp.h (USE_STACK_STRING): Now true only if USE_STACK CONS.
 3283 	On x86 platforms this works around GCC bug 63495
 3284 	<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63495>,
 3285 	and more generally should fix a portability problem in Emacs.
 3286 	Reported by Stefan Monnier in:
 3287 	https://lists.gnu.org/r/emacs-devel/2014-10/msg00261.html
 3288 
 3289 2014-10-08  Leo Liu  <sdl.web@gmail.com>
 3290 
 3291 	Enhance terpri to allow conditionally output a newline.  (Bug#18652)
 3292 	* keymap.c (describe_vector_princ):
 3293 	* keyboard.c (Fcommand_error_default_function): Adapt to change to
 3294 	Fterpri.
 3295 
 3296 	* print.c (printchar_stdout_last): Declare.
 3297 	(printchar): Record the last char written to stdout.
 3298 	(Fterpri): Add optional argument ENSURE.
 3299 
 3300 2014-10-08  Eli Zaretskii  <eliz@gnu.org>
 3301 
 3302 	* w32inevt.c (maybe_generate_resize_event): Pass non-zero as the
 3303 	DELAY argument to change_frame_size, so that the frame size
 3304 	changes, if any are needed, are delayed until the next redisplay.
 3305 	This is to avoid a too early QUIT inside change_frame_size, when
 3306 	it calls Lisp in frame_windows_min_size, in case one of the events
 3307 	we've read sets the quit-flag.  (Bug#18649)
 3308 
 3309 	* w32fns.c (check_x_display_info): Accept terminal objects as
 3310 	argument, to follow what xfns.c does.
 3311 
 3312 2014-10-07  Glenn Morris  <rgm@gnu.org>
 3313 
 3314 	* Makefile.in ($(srcdir)/macuvs.h)
 3315 	($(lispsource)/international/charprop.el): Add explicit FORCE.
 3316 
 3317 2014-10-07  Eli Zaretskii  <eliz@gnu.org>
 3318 
 3319 	* decompress.c (init_zlib_functions): Move the message about zlib
 3320 	being unavailable from here...
 3321 	(Fzlib_decompress_region): ...to here.  (Bug#18650)
 3322 
 3323 2014-10-07  Dmitry Antipov  <dmantipov@yandex.ru>
 3324 
 3325 	* font.c (Ffont_get_glyphs): Use validate_subarray and fix
 3326 	the case where an optional string is used.  Adjust docstring.
 3327 
 3328 2014-10-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 3329 
 3330 	* lisp.mk (lisp): Remove w32-common-fns.elc.
 3331 
 3332 2014-10-05  Paul Eggert  <eggert@cs.ucla.edu>
 3333 
 3334 	* keyboard.c (Qleft, Qright): Remove duplicate definitions (Bug#9927).
 3335 	These were already defined in buffer.c, and the duplicate
 3336 	definitions cause problems on platforms like 'gcc -fno-common'.
 3337 	Reported by Peter Dyballa in: https://bugs.gnu.org/9927#137
 3338 
 3339 2014-10-05  Jan Djärv  <jan.h.d@swipnet.se>
 3340 
 3341 	* nsterm.m (updateFrameSize:): Only call update_frame_tool_bar
 3342 	if toolbar is visible.
 3343 
 3344 	* nsfont.m (nsfont_draw): Use CGFloat for GNUstep newer than
 3345 	0.23 (Bug#18030).
 3346 
 3347 	* nsterm.m (syms_of_nsterm): ns-use-fullscreen-animation is new.
 3348 	(toggleFullScreen:): Use ns-use-fullscreen-animation for animate.
 3349 	(ns_select, ns_read_socket): Use unwind_protect to decrease
 3350 	apploopnr (Bug#18345).
 3351 	(ns_draw_window_cursor): Adjust y for hbar cursor only if smaller than
 3352 	line height (Bug#17977).
 3353 
 3354 	* macfont.m: Fix indentation and import changes from macport 24.3.94.
 3355 	(macfont_closest_traits_index): New function.
 3356 	(macfont_closest_traits_index_p): Rename from
 3357 	macfont_closest_traits_index.
 3358 	(macfont_list): Use macfont_closest_traits_index_p.
 3359 
 3360 2014-10-05  K. Handa  <handa@gnu.org>
 3361 
 3362 	* coding.c (detect_coding_iso_2022): Set coding->rejected
 3363 	correctly when an invalid escape sequence is found (Bug#18610).
 3364 
 3365 2014-10-04  Jan Djärv  <jan.h.d@swipnet.se>
 3366 
 3367 	* gtkutil.c (create_menus): Only add tearoffs to empty menus.
 3368 	(xg_update_submenu): Remove has_tearoff_p, pass 1 to create_menus
 3369 	for add_tearoff_p.
 3370 
 3371 2014-10-04  Martin Rudalics  <rudalics@gmx.at>
 3372 
 3373 	* buffer.c (scroll_bar_width, scroll_bar_height):
 3374 	Fix doc-strings.
 3375 	* window.c (Fset_window_scroll_bars): Fix doc-string.
 3376 	(Fwindow_scroll_bars): Have it return what the doc-string says.
 3377 
 3378 2014-10-03  Eli Zaretskii  <eliz@gnu.org>
 3379 
 3380 	* xdisp.c (move_it_by_lines): Call reseat_1 after moving the
 3381 	iterator backwards, to resync the bidi iterator.  (Bug#18584)
 3382 
 3383 2014-10-03  Dmitry Antipov  <dmantipov@yandex.ru>
 3384 
 3385 	Consistently use min and max macros from lisp.h.
 3386 	* coding.c (min, max):
 3387 	* font.c (MAX):
 3388 	* unexhp9k800.c (min):
 3389 	* unexw32.c (min, max): Use definitions from lisp.h.
 3390 	* regex.c (MAX, MIN) [!emacs]: Define own max and min as such.
 3391 	Adjust users.
 3392 	* gmalloc.c (min): Tiny style change.
 3393 
 3394 	* fileio.c (emacs_readlinkat, Finsert_file_contents):
 3395 	* w32fns.c, xfns.c (x_create_tip_frame): Use AUTO_STRING.
 3396 
 3397 2014-10-03  Paul Eggert  <eggert@cs.ucla.edu>
 3398 
 3399 	Fix x-focus-frame bug with "Not an in-range integer" (Bug#18586).
 3400 	* xselect.c (X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX, X_LONG_MIN)
 3401 	(X_ULONG_MAX): Move these macros to xterm.h.
 3402 	(x_fill_property_data): Be more generous about allowing either
 3403 	signed or unsigned data of the appropriate width.
 3404 	* xterm.h (x_display_set_last_user_time): New function.
 3405 	All setters of last_user_time changd to use this function.
 3406 	If ENABLE_CHECKING, check that the times are in range.
 3407 
 3408 2014-10-02  Eli Zaretskii  <eliz@gnu.org>
 3409 
 3410 	* dispnew.c (adjust_decode_mode_spec_buffer): Use 'int' instead of
 3411 	'ssize_t'.  Suggested by Paul Eggert <eggert@cs.ucla.edu>.
 3412 
 3413 2014-10-02  Jan Djärv  <jan.h.d@swipnet.se>
 3414 
 3415 	* xfaces.c (Finternal_set_lisp_face_attribute): Don't try to
 3416 	make a font_object from a tty frame (Bug#18573).
 3417 	(Finternal_set_lisp_face_attribute): Add FIXME comment.
 3418 
 3419 2014-10-02  Dmitry Antipov  <dmantipov@yandex.ru>
 3420 
 3421 	* alloc.c (mark_overlay): Assume that overlay boundaries are
 3422 	always markers.  Add comment.
 3423 	* lread.c (read_internal_start): Use convenient validate_subarray.
 3424 	Adjust docstring.
 3425 	(Fread_from_string): Adjust docstring.
 3426 
 3427 2014-10-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 3428 
 3429 	* lisp.h: Fix up compilation for USE_STACK_LISP_OBJECTS=false.
 3430 
 3431 	* nsselect.m (ns-own-selection-internal, ns-disown-selection-internal):
 3432 	Rename from the "x-" prefix.
 3433 
 3434 2014-10-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 3435 
 3436 	* xselect.c (selection-converter-alist): Fix docstring.
 3437 
 3438 2014-10-01  Eli Zaretskii  <eliz@gnu.org>
 3439 
 3440 	* w32proc.c (sys_spawnve): Avoid modification of the CMDNAME
 3441 	argument passed by the caller, when we mirror all slashes into
 3442 	backslashes.
 3443 
 3444 2014-10-01  Dmitry Antipov  <dmantipov@yandex.ru>
 3445 
 3446 	* gtkutil.c (xg_set_toolkit_horizontal_scroll_bar_thumb):
 3447 	Resurrect old code and fix compilation with GTK < 2.13.6.
 3448 
 3449 2014-10-01  Paul Eggert  <eggert@cs.ucla.edu>
 3450 
 3451 	Use AUTO_CONS instead of SCOPED_CONS, etc.
 3452 	* frame.h (AUTO_FRAME_ARG): Rename from FRAME_PARAMETER.
 3453 	* lisp.h (AUTO_CONS): Rename from scoped_cons.
 3454 	(AUTO_LIST1): Rename from scoped_list1.
 3455 	(AUTO_LIST2): Rename from scoped_list2.
 3456 	(AUTO_LIST3): Rename from scoped_list3.
 3457 	(AUTO_LIST4): Rename from scoped_list4.
 3458 	(AUTO_STRING): Rename from SCOPED_STRING.
 3459 	* frame.h (AUTO_FRAME_ARG):
 3460 	* lisp.h (AUTO_CONS, AUTO_LIST1, AUTO_LIST2, AUTO_LIST3)
 3461 	(AUTO_LIST4, AUTO_STRING):
 3462 	Prepend a new argument 'name'.
 3463 	Declare a variable instead of yielding a value.
 3464 	All uses changed.
 3465 	* lisp.h (STACK_CONS, AUTO_CONS_EXPR): New internal macros.
 3466 
 3467 2014-09-30  Eli Zaretskii  <eliz@gnu.org>
 3468 
 3469 	* w32fns.c (w32_createwindow): Accept an additional argument, an
 3470 	array of 2 values specifying the coordinates of the frame's
 3471 	top-left corner.  Use these values instead of calling x_get_arg,
 3472 	which can cons Lisp objects, and therefore cannot be called except
 3473 	from the main thread.  Remove redundant tests for the default
 3474 	values.
 3475 	(my_create_window): Move the calculation of the coordinates of the
 3476 	frame's top-left edge here.  Pass them to the input thread via the
 3477 	second parameter of the WM_EMACS_CREATEWINDOW message.
 3478 	See https://lists.gnu.org/r/emacs-devel/2014-09/msg00892.html
 3479 	for the details.
 3480 
 3481 2014-09-30  Eli Zaretskii  <eliz@gnu.org>
 3482 
 3483 	* xdisp.c (cursor_row_fully_visible_p): Update commentary.
 3484 	(redisplay_window): Treat the frame's frozen_window_starts flag
 3485 	the same way as the optional_new_start flag for the window: only
 3486 	obey it if the glyph row showing point will be fully visible.
 3487 	Likewise when the window start is in a continuation line.  If,
 3488 	after trying everything under the 'force_start' label, point is
 3489 	still not fully visible, give up and scroll the window.
 3490 	Add debugging traces.  (Bug#18545)
 3491 
 3492 	* window.c (Frecenter): Set the window's redisplay flag.
 3493 
 3494 2014-09-30  Eli Zaretskii  <eliz@gnu.org>
 3495 
 3496 	* w32term.c (w32_read_socket): Don't use frame dimensions for
 3497 	resizing if GetClientRect returned an empty (0, 0, 0, 0)
 3498 	rectangle.  Check the return value of GetClientRect, and don't use
 3499 	the results if it didn't succeed.
 3500 
 3501 	* dispnew.c (change_frame_size_1): Recompute the frame dimensions
 3502 	in columns and lines after correcting the pixel dimensions in
 3503 	check_frame_size.
 3504 	(adjust_decode_mode_spec_buffer): Add assertion to avoid passing
 3505 	negative values to xrealloc.  (Bug#18528)
 3506 
 3507 2014-09-30  Paul Eggert  <eggert@cs.ucla.edu>
 3508 
 3509 	* alloc.c: Remove now-unnecessary check.
 3510 	Suggested by Dmitry Antipov in:
 3511 	https://lists.gnu.org/r/emacs-devel/2014-09/msg00891.html
 3512 
 3513 	* xterm.c (x_term_init): Allocate temps on stack, not on heap.
 3514 
 3515 	* frame.c (x_set_frame_parameters): Port --enable-gcc-warnings
 3516 	to Ubuntu 14.04.1 x86-64.
 3517 
 3518 	Simplify stack-allocated Lisp objects, and make them more portable.
 3519 	The build_local_string macro was used in two ways: (1) string
 3520 	literals for which scoped allocation suffices, and (2) file name
 3521 	components, where it's not safe in general to assume bounded-size
 3522 	ASCII data.  Simplify by defining a new macro SCOPED_STRING that
 3523 	allocates a block-scope string, and by using SCOPED_STRING for (1)
 3524 	and build_string for (2).  Furthermore, actually use stack
 3525 	allocation only for objects known to have sufficient alignment.
 3526 	This simpler implementation means Emacs can make
 3527 	USE_STACK_LISP_OBJECTS the default unless GC_MARK_STACK !=
 3528 	GC_MAKE_GCPROS_NOOPS.
 3529 	* lisp.h (GCALIGNED): Align even if !USE_STACK_LISP_OBJECTS,
 3530 	for fewer differences among implementations.
 3531 	(struct Lisp_String): Now GCALIGNED.
 3532 	(USE_STACK_LISP_OBJECTS): Default to true, since the
 3533 	implementation no longer insists on a nonempty GCALIGNED.
 3534 	But make it false if GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS.
 3535 	(SCOPED_CONS_INITIALIZER): Remove, since it's no longer needed
 3536 	separately.  Move definiens to scoped_cons.  The old definition
 3537 	was incorrect when GCALIGNED was defined to be empty.
 3538 	(union Aligned_String): New type.
 3539 	(USE_STACK_CONS, USE_STACK_STRING): New constants, so that the
 3540 	implementation ports to compilers that don't align strictly enough.
 3541 	Don't worry about the union sizes; it's not worth bothering about.
 3542 	(scoped_cons, scoped_list1, scoped_list3, scoped_list4):
 3543 	Rewrite using USE_STACK_CONS.
 3544 	(scoped_cons): Assume the use of union Aligned_Cons.
 3545 	(lisp_string_size, make_local_string, build_local_string): Remove.
 3546 	Unless otherwise specified, all callers of build_local_string
 3547 	changed to use SCOPED_STRING.
 3548 	(SCOPED_STRING): New macro.
 3549 	* data.c (wrong_choice):
 3550 	* menu.c (single_menu_item):
 3551 	* process.c (Fformat_network_address):
 3552 	Hoist use of SCOPED_STRING out of a scope, so that its returned
 3553 	object lives long enough.
 3554 	* fileio.c (Fexpand_file_name): Use build_string, not SCOPED_STRING,
 3555 	as the string might be long or might not be ASCII.
 3556 
 3557 2014-09-29  Eli Zaretskii  <eliz@gnu.org>
 3558 
 3559 	* msdos.c (internal_terminal_init): Bump version to 25.
 3560 
 3561 2014-09-29  Dmitry Antipov  <dmantipov@yandex.ru>
 3562 
 3563 	Keep stack-allocated Lisp objects fast rather than versatile.
 3564 	* lisp.h (union Aligned_Cons) [!GCALIGNED]: Define as such.
 3565 	(SCOPED_CONS_INITIALIZER): New macro.
 3566 	(scoped_cons) [USE_STACK_LISP_OBJECTS]: Use it.
 3567 	(USE_LOCAL_ALLOCA): Remove.
 3568 	(local_cons, local_list1, local_list2, local_list3, local_list4):
 3569 	Remove.  Stack overflow checking makes them too slow.
 3570 	(make_local_vector): Likewise.  Also we just don't have enough
 3571 	users for it.
 3572 	(enum LISP_STRING_OVERHEAD): Remove.
 3573 	(local_string_init, local_vector_init): Remove prototypes.
 3574 	(make_local_string, build_local_string): Redesign to target short
 3575 	compile-time string constants, fall back to regular string allocation
 3576 	where appropriate.
 3577 	(lisp_string_size): New function.
 3578 	(verify_ascii) [ENABLE_CHECKING]: Add prototype.
 3579 	* alloc.c (local_string_init, local_vector_init): Remove.
 3580 	(verify_ascii) [ENABLE_CHECKING]: New function.
 3581 	* buffer.c, charset.c, chartab.c, data.c, editfns.c, emacs.c, fileio.c:
 3582 	* fns.c, font.c, fontset.c, frame.c, keyboard.c, keymap.c, lread.c:
 3583 	* menu.c, minibuf.c, process.c, textprop.c, xdisp.c, xfns.c, xfont.c:
 3584 	* xselect.c, xterm.c: All related users changed.
 3585 
 3586 2014-09-28  Ken Brown  <kbrown@cornell.edu>
 3587 
 3588 	* sheap.c (bss_sbrk_buffer_beg): Remove redundant variable.
 3589 	* gmalloc.c [CYGWIN]: Adapt to change in sheap.c.
 3590 
 3591 2014-09-27  Ken Brown  <kbrown@cornell.edu>
 3592 
 3593 	Fix implementation of HYBRID_MALLOC on Cygwin.
 3594 	* sheap.c (bss_sbrk_buffer_end): Cast to void *.
 3595 	(bss_sbrk_buffer_beg): New variable.  Use it...
 3596 	* gmalloc.c (ALLOCATED_BEFORE_DUMPING) [CYGWIN]: ...here, to fix
 3597 	incorrect definition.
 3598 
 3599 2014-09-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 3600 
 3601 	* keyboard.c (track-mouse): Rename to internal--track-mouse.
 3602 	Make it into a function and change arg to be a function.
 3603 
 3604 	* lisp.mk (lisp): Add elisp-mode.elc.
 3605 
 3606 2014-09-26  Paul Eggert  <eggert@cs.ucla.edu>
 3607 
 3608 	* xfns.c (x_default_scroll_bar_color_parameter):
 3609 	Use USE_LOCAL_ALLOCA only if USE_TOOLKIT_SCROLL_BARS,
 3610 	to pacify --enable-gcc-warnings in non-scrollbar builds.
 3611 
 3612 2014-09-26  Ken Brown  <kbrown@cornell.edu>
 3613 
 3614 	* w32term.h (ALIGN_STACK): Fix the cpp condition.
 3615 
 3616 2014-09-25  Eli Zaretskii  <eliz@gnu.org>
 3617 
 3618 	* lisp.h (USE_STACK_LISP_OBJECTS): Default to false for 32-bit
 3619 	MinGW builds that use GCC before 4.2.
 3620 
 3621 	Default to stack objects on DOS_NT platforms as well.
 3622 	* w32term.h (ALIGN_STACK) [__GNUC__]: Define to
 3623 	__attribute__((force_align_arg_pointer)) for GCC 4.2 and later.
 3624 
 3625 	* lisp.h (USE_STACK_LISP_OBJECTS): Remove the !DOS_NT condition.
 3626 
 3627 	* w32proc.c (enum_locale_fn, enum_codepage_fn): Add the
 3628 	ALIGN_STACK attribute.
 3629 
 3630 	* w32fns.c (w32_monitor_enum): Add the ALIGN_STACK attribute.
 3631 
 3632 	* w32uniscribe.c (add_opentype_font_name_to_list): Add the
 3633 	ALIGN_STACK attribute.
 3634 
 3635 	* w32font.c (add_font_name_to_list, add_font_entity_to_list)
 3636 	(add_one_font_entity_to_list): Add the ALIGN_STACK attribute.
 3637 
 3638 2014-09-25  Martin Rudalics  <rudalics@gmx.at>
 3639 
 3640 	* frame.c (frame_inhibit_resize):
 3641 	* widget.c (EmacsFrameResize):
 3642 	* window.c (resize_frame_windows, Fset_window_configuration):
 3643 	* xdisp.c (expose_frame):
 3644 	* xfns.c (x_change_tool_bar_height):
 3645 	* xmenu.c (update_frame_menubar):
 3646 	* xterm.c (handle_one_xevent, x_new_font, x_set_window_size_1):
 3647 	Remove code left dead after 2014-07-27 changes.
 3648 
 3649 2014-09-25  Paul Eggert  <eggert@cs.ucla.edu>
 3650 
 3651 	Fix local_cons etc. to not exhaust the stack when in a loop.
 3652 	Problem reported in:
 3653 	https://lists.gnu.org/r/emacs-devel/2014-09/msg00696.html
 3654 	* buffer.c (Fother_buffer, other_buffer_safely, init_buffer):
 3655 	* charset.c (load_charset_map_from_file, Ffind_charset_region)
 3656 	(Ffind_charset_string):
 3657 	* chartab.c (uniprop_encode_value_numeric, uniprop_table):
 3658 	* data.c (wrong_range):
 3659 	* editfns.c (Fpropertize, format2):
 3660 	* emacs.c (init_cmdargs, decode_env_path):
 3661 	* fileio.c (auto_save_error):
 3662 	* fns.c (Fyes_or_no_p):
 3663 	* font.c (font_style_to_value, font_parse_xlfd)
 3664 	(font_parse_family_registry, font_delete_unmatched)
 3665 	(font_add_log):
 3666 	* fontset.c (Fset_fontset_font):
 3667 	* frame.c (x_get_arg):
 3668 	* keyboard.c (echo_dash, safe_run_hooks_error, parse_menu_item)
 3669 	(read_char_minibuf_menu_prompt):
 3670 	* keymap.c (silly_event_symbol_error, describe_vector):
 3671 	* lread.c (load_warn_old_style_backquotes):
 3672 	* menu.c (single_menu_item):
 3673 	* minibuf.c (Fread_buffer):
 3674 	* process.c (status_message, Fformat_network_address)
 3675 	(server_accept_connection):
 3676 	* textprop.c (copy_text_properties):
 3677 	* xdisp.c (Fcurrent_bidi_paragraph_direction):
 3678 	* xfns.c (x_default_scroll_bar_color_parameter):
 3679 	* xfont.c (xfont_open):
 3680 	* xselect.c (x_clipboard_manager_error_1):
 3681 	* xterm.c (x_term_init):
 3682 	Put USE_LOCAL_ALLOCA at the start of the function.
 3683 	* fns.c (maybe_resize_hash_table): Use build_string instead of
 3684 	build_local_string, since we'd otherwise need a conditional
 3685 	USE_LOCAL_ALLOCA here, but this is just debugging output and is
 3686 	not worth the bother of optimization.
 3687 	* font.c (font_delete_unmatched): Remove by-hand code that
 3688 	observed MAX_ALLOCA limit, since it's now done automatically.
 3689 	* keymap.c (Fsingle_key_description): Put USE_SAFE_ALLOCA at top,
 3690 	since build_local_string needs its sa_alloc.
 3691 	* lisp.h (lisp_word_count): New function.
 3692 	(SAFE_ALLOCA_LISP): Use it.
 3693 	(USE_LOCAL_ALLOCA): New macro.
 3694 	(local_cons, make_local_vector, make_local_string):
 3695 	Observe the MAX_ALLOCA limit.
 3696 	(LISP_STRING_OVERHEAD): New constant.
 3697 	(make_local_string): Use it.
 3698 
 3699 2014-09-24  Paul Eggert  <eggert@cs.ucla.edu>
 3700 
 3701 	Default to stack objects on non-GNU/Linux, non-DOS_NT platforms.
 3702 	* lisp.h (USE_STACK_LISP_OBJECTS): Also default to true
 3703 	if !defined DOS_NT && !defined GNU_LINUX.  I've tested this on AIX
 3704 	and Solaris and it's likely to work on similar platforms.
 3705 
 3706 	Avoid signed integer overflow when converting Time to ptrdiff_t.
 3707 	* keyboard.c (INPUT_EVENT_POS_MAX, INPUT_EVENT_POS_MIN):
 3708 	New macros.
 3709 	(position_to_Time, Time_to_position): New functions.
 3710 	(gen_help_event, kbd_buffer_get_event): Use them.
 3711 	* systime.h (Time) [emacs && !HAVE_X_WINDOWS]:
 3712 	Go back to plain 'unsigned long', so that 'Time' is the same
 3713 	for both X and non-X builds; this is less likely to cause surprise.
 3714 	* termhooks.h: Remove compile-time check that Time and ptrdiff_t
 3715 	are the same size; this is no longer required.
 3716 
 3717 	* keyboard.c (make_lispy_event): Avoid unnecessary tests
 3718 	of bit 28 and of whether an unsigned value is negative.
 3719 	This simplifies the code a bit, and pacifies clang 3.4.
 3720 
 3721 2014-09-24  Eli Zaretskii  <eliz@gnu.org>
 3722 
 3723 	* systime.h (Time): Define as size_t, to be consistent with 64-bit
 3724 	Windows builds, where 'long' is a 32-bit type.
 3725 
 3726 	* w32inevt.h (w32_console_mouse_position): Update the argument
 3727 	types to use 'Time'.
 3728 
 3729 	* w32term.c (w32_mouse_position)
 3730 	(x_horizontal_scroll_bar_report_motion)
 3731 	(x_scroll_bar_report_motion): Update the argument types to use
 3732 	'Time'.
 3733 
 3734 2014-09-24  Dmitry Antipov  <dmantipov@yandex.ru>
 3735 
 3736 	* termhooks.h (enum scroll_bar_part): Begin from 0 to allow...
 3737 	(struct input_event): ...unsigned bitfields.  Likewise for
 3738 	`event_kind' member.  Prefer unsigned for `code' and 'modifiers'.
 3739 	Use `timestamp' for HELP_EVENT position.  Add compile-time assert.
 3740 	* keyboard.c (gen_help_event, kbd_buffer_store_help_event)
 3741 	(kbd_buffer_get_event): Adjust users.
 3742 	(scroll_bar_parts): Add Qnil to match scroll_bar_nowhere.
 3743 	(make_scroll_bar_position): New function, refactored out of...
 3744 	(make_lispy_event): ...adjusted user.
 3745 	* nsterm.h (EmacsScroller): Use enum for `last_hit_part' member.
 3746 	* nsterm.m (ns_mouse_position, mouseUp):
 3747 	* term.c (term_mouse_position):
 3748 	* w32inevt.c (w32_console_mouse_position):
 3749 	* w32term.c (w32_mouse_position):
 3750 	* xterm.c (XTmouse_position): Use scroll_bar_above_handle.
 3751 	(x_send_scroll_bar_event, xm_scroll_callback, xg_scroll_callback):
 3752 	Prefer enum and explicit enum members to integers and numeric values.
 3753 
 3754 	* chartab.c (uniprop_encode_value_numeric):
 3755 	* font.c (font_style_to_value): Use make_local_vector.
 3756 	(font_delete_unmatched): Use local_cons but respect MAX_ALLOCA.
 3757 	* keymap.c (append_key): Use scoped_list1.
 3758 
 3759 	* lisp.h (USE_STACK_LISP_OBJECTS): Enable by default if GNU_LINUX
 3760 	&& __GNUC__ && !__clang__.  Mention known problems.  Adjust comment.
 3761 
 3762 2014-09-24  Paul Eggert  <eggert@cs.ucla.edu>
 3763 
 3764 	Fix some slow uses and misuses of strcat.
 3765 	* doc.c (get_doc_string):
 3766 	* gtkutil.c (get_utf8_string):
 3767 	* xsmfns.c (x_session_initialize):
 3768 	Avoid recomputation of string length.
 3769 	* ftfont.c (ftfont_spec_pattern):
 3770 	* xfns.c (xic_create_fontsetname):
 3771 	Don't assume output buffer is initially zero.
 3772 
 3773 2014-09-23  Paul Eggert  <eggert@cs.ucla.edu>
 3774 
 3775 	* lisp.h (lispstpcpy): Rename from lispstrcpy, and act like stpcpy.
 3776 	All callers changed.
 3777 	* xterm.c (x_term_init): Use new functionality to avoid two needs
 3778 	to compute a string length.
 3779 
 3780 	* dispextern.h, xdisp.c (window_box_right_offset): Now static.
 3781 
 3782 2014-09-23  Dmitry Antipov  <dmantipov@yandex.ru>
 3783 
 3784 	Use known length of a Lisp string to copy it faster.
 3785 	* lisp.h (lispstrcpy): New function.  Add comment.
 3786 	* callproc.c (child_setup):
 3787 	* dbusbind.c (xd_append_arg):
 3788 	* doc.c (get_doc_string):
 3789 	* font.c (Ffont_xlfd_name):
 3790 	* frame.c (xrdb_get_resource):
 3791 	* process.c (Fmake_network_process, network_interface_info):
 3792 	* w32fns.c (Fx_open_connection):
 3793 	* w32proc.c (sys_spawnve):
 3794 	* xfns.c (select_visual):
 3795 	* xfont.c (xfont_list):
 3796 	* xsmfns.c (x_session_initialize):
 3797 	* xterm.c (x_term_init): Use it.
 3798 
 3799 2014-09-23  Paul Eggert  <eggert@cs.ucla.edu>
 3800 
 3801 	Fix SAFE_ALLOCA to not exhaust the stack when in a loop.
 3802 	Reported by Dmitry Antipov in thread leading to:
 3803 	https://lists.gnu.org/r/emacs-devel/2014-09/msg00713.html
 3804 	This patch fixes only SAFE_ALLOCA, SAFE_NALLOCA, and SAFE_ALLOCA_LISP;
 3805 	the experimental local_* macros enabled by USE_LOCAL_ALLOCATORS
 3806 	remain unfixed.
 3807 	* callproc.c (call_process): Save and restore sa_avail.
 3808 	* lisp.h (USE_SAFE_ALLOCA): Define sa_avail.
 3809 	(AVAIL_ALLOCA): New macro.
 3810 	(SAFE_ALLOCA, SAFE_NALLOCA, SAFE_ALLOCA_LISP):
 3811 	Use it, and check against sa_avail rather than MAX_ALLOCA.
 3812 
 3813 2014-09-22  Dmitry Antipov  <dmantipov@yandex.ru>
 3814 
 3815 	On OSX, do not free font-specific data more than once (Bug#18501).
 3816 	* macfont.m (macfont_close): Release and free font-specific data
 3817 	only if it wasn't previously freed.
 3818 
 3819 2014-09-22  David Caldwell <david@porkrind.org>  (tiny change)
 3820 
 3821 	* unexmacosx.c (dump_it): Improve error message.
 3822 
 3823 2014-09-22  Juri Linkov  <juri@jurta.org>
 3824 
 3825 	* image.c (imagemagick_load_image): Add delay to imagemagick metadata.
 3826 	(Bug#10747, bug#18334)
 3827 
 3828 2014-09-22  Eli Zaretskii  <eliz@gnu.org>
 3829 
 3830 	* frame.c (Fmouse_position, Fset_mouse_position): Clarify the
 3831 	units in which the position is measured.  (Bug#18493)
 3832 
 3833 	* xdisp.c (redisplay_internal): Force redisplay of all windows
 3834 	that show a buffer whose narrowing has changed.  (Bug#18490)
 3835 
 3836 2014-09-22  Eli Zaretskii  <eliz@gnu.org>
 3837 
 3838 	* xterm.c (x_draw_hollow_cursor, x_draw_bar_cursor):
 3839 	* w32term.c (x_draw_hollow_cursor, x_draw_bar_cursor): In R2L
 3840 	lines, draw the hollow-box and hbar cursors on the right side of
 3841 	cursor-glyph.  Thanks to martin rudalics <rudalics@gmx.at> for
 3842 	testing on X.
 3843 
 3844 	* xterm.c (x_draw_stretch_glyph_string):
 3845 	* w32term.c (x_draw_stretch_glyph_string): Fix a thinko that
 3846 	caused the block cursor to disappear on a TAB in R2L lines in
 3847 	every window except the leftmost one.  Reported by Martin Rudalics
 3848 	<rudalics@gmx.at>.
 3849 
 3850 2014-09-22  Dmitry Antipov  <dmantipov@yandex.ru>
 3851 
 3852 	Always use matched specpdl entry to record call arguments (Bug#18473).
 3853 	* lisp.h (record_in_backtrace): Adjust prototype.
 3854 	* eval.c (record_in_backtrace): Return current specpdl level.
 3855 	(set_backtrace_args, set_backtrace_nargs): Merge.  Adjust all users.
 3856 	(eval_sub, Ffuncall): Record call arguments in matched specpdl
 3857 	entry and use that entry in call to backtrace_debug_on_exit.
 3858 	(apply_lambda): Likewise.  Get current specpdl level as 3rd arg.
 3859 	(do_debug_on_call): Get current specpdl level as 2nd arg.
 3860 
 3861 	Prefer ptrdiff_t to int and avoid integer overflows.
 3862 	* fileio.c (make_temp_name):
 3863 	* font.c (font_parse_family_registry): Avoid integer
 3864 	overflow on string size calculation.
 3865 	* data.c (Faset): Likewise for byte index.
 3866 
 3867 2014-09-22  Eli Zaretskii  <eliz@gnu.org>
 3868 
 3869 	Fix display of R2L lines in partial-width windows.
 3870 	* xdisp.c (init_iterator): Don't use it->bidi_p before it is
 3871 	assigned the correct value.
 3872 	(extend_face_to_end_of_line): Account for truncation and
 3873 	continuation glyphs in R2L rows when one of the fringes is not
 3874 	displayed.
 3875 	(display_line): Don't assign negative X offset to a row if we are
 3876 	going to produce a truncation glyph for it.  When handling
 3877 	truncated R2L rows, consider the width of the left fringe instead
 3878 	of the right one.
 3879 	(produce_special_glyphs): Fix bogus assignments.
 3880 
 3881 2014-09-22  Eli Zaretskii  <eliz@gnu.org>
 3882 
 3883 	* fileio.c (Fexpand_file_name) [DOS_NT]: Make sure newdirlim is
 3884 	always set to a valid value.  Make sure the size passed to alloca
 3885 	is always positive.  (Bug#18516)
 3886 
 3887 2014-09-22  Dmitry Antipov  <dmantipov@yandex.ru>
 3888 
 3889 	Avoid extra call to oblookup when interning symbols.
 3890 	* lisp.h (intern_driver): Add prototype.
 3891 	* lread.c (intern_driver): New function.
 3892 	(intern1, intern_c_string_1, Fintern):
 3893 	* font.c (font_intern_prop):
 3894 	* w32font.c (intern_font_name): Use it.
 3895 
 3896 2014-09-21  Paul Eggert  <eggert@cs.ucla.edu>
 3897 
 3898 	Minor improvements to new stack-allocated Lisp objects.
 3899 	* frame.h (FRAME_PARAMETER):
 3900 	Prefer scoped_list1 to local_list1 where either would do.
 3901 	* lisp.h (scoped_list4): New macro.
 3902 	(local_cons, local_list1, local_list2, local_list3, local_list4)
 3903 	(make_local_vector, make_local_string, build_local_string):
 3904 	Prefer functions to macros where either would do.
 3905 	* xdisp.c (build_desired_tool_bar_string):
 3906 	Prefer scoped_list4 to local_list4 where either would do.
 3907 
 3908 2014-09-18  Dmitry Antipov  <dmantipov@yandex.ru>
 3909 
 3910 	More and more stack-allocated Lisp objects if USE_LOCAL_ALLOCATORS.
 3911 	* lisp.h (local_list4) [USE_LOCAL_ALLOCATORS]: New macro.
 3912 	[!USE_LOCAL_ALLOCATORS]: Fall back to regular list4.
 3913 	* frame.h (FRAME_PARAMETER): New macro.
 3914 	* dispnew.c (init_display):
 3915 	* fontset.c (Fset_fontset_font):
 3916 	* frame.c (x_default_parameter):
 3917 	* xfaces.c (set_font_frame_param, Finternal_merge_in_global_face):
 3918 	* xfns.c (x_default_scroll_bar_color_parameter)
 3919 	(x_default_font_parameter, x_create_tip_frame): Use it.
 3920 	* editfns.c (Fpropertize): Use local_cons.
 3921 	* process.c (status_message): Use build_local_string.
 3922 	* xfont.c (xfont_open): Use make_local_string.
 3923 	* xdisp.c (build_desired_tool_bar_string): Use local_list4.
 3924 
 3925 2014-09-18  Paul Eggert  <eggert@cs.ucla.edu>
 3926 
 3927 	Port USE_LOCAL_ALLOCATORS code to clang 3.4 x86-64.
 3928 	* lisp.h (USE_LOCAL_ALLOCATORS): Define only if __GNUC__ &&
 3929 	!__clang__.  This works with GCC and with clang and is safer for
 3930 	compilers we don't know about.
 3931 	(local_cons): Rename parameter to make capture less likely.
 3932 
 3933 2014-09-17  Samuel Bronson  <naesten@gmail.com>
 3934 
 3935 	* unexmacosx.c (copy_data_segment): Port to GCC 4.6+ (Bug#9927).
 3936 
 3937 2014-09-17  Paul Eggert  <eggert@cs.ucla.edu>
 3938 
 3939 	Fix minor problems found by static checking.
 3940 	* alloc.c, lisp.h (SAVE_TYPE_INT_OBJ, make_save_int_obj):
 3941 	Remove; now unused.
 3942 	* buffer.h (decode_buffer): Doc and indentation fixes.
 3943 	* fns.c (Qstring_collate_lessp, Qstring_collate_equalp): Now static.
 3944 
 3945 2014-09-17  Dmitry Antipov  <dmantipov@yandex.ru>
 3946 
 3947 	Avoid clang-specific warnings.
 3948 	* buffer.c (init_buffer): Shut up -Wself-assign.
 3949 	* process.c (server_accept_connection): Shut up -Wunsequenced.
 3950 
 3951 2014-09-16  Daniel Colascione  <dancol@dancol.org>
 3952 
 3953 	* fns.c (sxhash): For symbols, use address as hash code.
 3954 
 3955 2014-09-16  Dmitry Antipov  <dmantipov@yandex.ru>
 3956 
 3957 	If USE_LOCAL_ALLOCATORS, allocate even more Lisp objects on stack.
 3958 	* charset.c (load_charset_map_from_file): Use scoped_list2
 3959 	and build_local_string.
 3960 	* buffer.c (Fother_buffer, other_buffer_safely, init_buffer):
 3961 	* emacs.c (init_cmdargs, decode_env_path):
 3962 	* fileio.c (Fexpand_file_name):
 3963 	* fns.c (maybe_resize_hash_table) [ENABLE_CHECKING]:
 3964 	* frame.c (x_get_arg):
 3965 	* keyboard.c (safe_run_hooks_error):
 3966 	* lread.c (load_warn_old_style_backquotes):
 3967 	* xdisp.c (Fcurrent_bidi_paragraph_direction):
 3968 	* xfns.c (x_default_scroll_bar_color_parameter, select_visual):
 3969 	* xselect.c (x_clipboard_manager_error_1)
 3970 	(x_clipboard_manager_save_all):
 3971 	* xterm.c (x_term_init): Use build_local_string.
 3972 
 3973 	Avoid more integer overflows on string size calculations.
 3974 	* category.c (Fmake_category_set):
 3975 	* xdisp.c (get_overlay_arrow_glyph_row):
 3976 	* w32font.c (intern_font_name): Prefer ptrdiff_t to int.
 3977 
 3978 2014-09-15  Eli Zaretskii  <eliz@gnu.org>
 3979 
 3980 	* sound.c [WINDOWSNT]: Include w32common.h and mbstring.h.
 3981 	(SOUND_WARNING) [WINDOWSNT]: Include in do..while and improve the
 3982 	error message format.  Use message_with_string to have non-ASCII
 3983 	file names properly displayed.
 3984 	(do_play_sound) [WINDOWSNT]: Use Unicode APIs to play sound files
 3985 	when w32-unicode-filenames is non-nil, but not on Windows 9X,
 3986 	where these APIs are not available even in UNICOWS.DLL.
 3987 	Improve the format of error messages and include the file name in them
 3988 	where appropriate.
 3989 	(Fplay_sound_internal) [WINDOWSNT]: Make the MS-Windows branch
 3990 	call play-sound-functions, per documentation.
 3991 
 3992 	* w32.c (w32_get_long_filename, w32_get_short_filename):
 3993 	Constify the input file name arguments.
 3994 
 3995 	* w32.h (w32_get_long_filename, w32_get_short_filename):
 3996 	Update prototypes.
 3997 
 3998 2014-09-15  Dmitry Antipov  <dmantipov@yandex.ru>
 3999 
 4000 	If USE_LOCAL_ALLOCATORS, allocate some Lisp objects on stack.
 4001 	* lisp.h (local_cons, local_list1, local_list2, local_list3)
 4002 	[USE_LOCAL_ALLOCATORS]: New macros.
 4003 	[!USE_LOCAL_ALLOCATORS]: Fall back to regular functions.
 4004 	(build_local_string): Avoid argument name expansion clash with
 4005 	make_local_string.
 4006 	* alloc.c (toplevel)
 4007 	[USE_LOCAL_ALLOCATORS && GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS]:
 4008 	Preprocessor guard to avoid impossible configuration.
 4009 	* charset.c (Ffind_charset_region, Ffind_charset_string):
 4010 	Use make_local_vector.
 4011 	* lread.c (read1, substitute_object_recurse): Use scoped_cons.
 4012 	* textprop.c (Fput_text_property, Fadd_face_text_property):
 4013 	Use scoped_list2.
 4014 	(copy_text_properties): Use local_cons and local_list3.
 4015 	* chartab.c (uniprop_table):
 4016 	* data.c (wrong_choice, wrong_range):
 4017 	* doc.c (get_doc_string):
 4018 	* editfns.c (format2):
 4019 	* fileio.c (Fexpand_file_name, auto_save_error):
 4020 	* fns.c (Fyes_or_no_p):
 4021 	* font.c (font_parse_xlfd, font_parse_family_registry, font_add_log):
 4022 	* fontset.c (Fset_fontset_font):
 4023 	* keyboard.c (echo_add_key, echo_dash, parse_menu_item)
 4024 	(read_char_minibuf_menu_prompt):
 4025 	* keymap.c (silly_event_symbol_error, describe_vector):
 4026 	* menu.c (single_menu_item):
 4027 	* minibuf.c (Fread_buffer):
 4028 	* process.c (status_message, Fformat_network_address)
 4029 	(server_accept_connection): Use make_local_string and
 4030 	build_local_string.  Prefer compound literals where appropriate.
 4031 
 4032 2014-09-15  Daniel Colascione  <dancol@dancol.org>
 4033 
 4034 	* fns.c (Fsort): Tweak sort docstring.
 4035 
 4036 2014-09-15  Eli Zaretskii  <eliz@gnu.org>
 4037 
 4038 	* w32.c (fcntl): Support O_NONBLOCK fcntl on the write side of pipes.
 4039 	(sys_write): When a write to a non-blocking pipe returns ENOSPC,
 4040 	set errno to EAGAIN instead, to allow the caller to retry the
 4041 	write after some waiting.  Fixes deadlocks when Emacs exchanges a
 4042 	lot of data through the pipe.  (Bug#18420)
 4043 
 4044 	* sound.c (Fplay_sound_internal): Encode the sound file name in
 4045 	the ANSI codepage.  Expand it against data-directory, as per docs,
 4046 	not against the current directory.  No need to make a local copy
 4047 	of the file name; pass the encoded file name directly to
 4048 	do_play_sound.  (Bug#18463)
 4049 
 4050 	* w32.c (ansi_encode_filename): If w32_get_short_filename returns
 4051 	NULL, and the file name is not encodable in ANSI codepage, return
 4052 	the string with "?" replacement characters, which will fail the
 4053 	caller.  This avoids returning a random value in that case.
 4054 
 4055 2014-09-15  Martin Rudalics  <rudalics@gmx.at>
 4056 
 4057 	* window.c (Fresize_mini_window_internal): Set w->total_lines
 4058 	from w->pixel_height (Bug#18422).
 4059 
 4060 2014-09-15  Jan Djärv  <jan.h.d@swipnet.se>
 4061 
 4062 	* nsterm.m (updateFrameSize:, initFrameFromEmacs:)
 4063 	(toggleFullScreen:): Take frame_resize_pixelwise into account when
 4064 	setting resize increments (Bug#18435).
 4065 
 4066 2014-09-15  Eli Zaretskii  <eliz@gnu.org>
 4067 
 4068 	* xdisp.c (pos_visible_p): Properly save and restore the iterator
 4069 	state around the call to line_bottom, since it can move the
 4070 	iterator to another screen line.  This fixes off-by-one errors in
 4071 	the reported row in some rare cases.
 4072 
 4073 2014-09-14  Jan Djärv  <jan.h.d@swipnet.se>
 4074 
 4075 	* callproc.c (init_callproc): Fix bug introduced at
 4076 	2014-09-07 (Bug#18474).
 4077 
 4078 2014-09-13  Dmitry Antipov  <dmantipov@yandex.ru>
 4079 
 4080 	Prefer ptrdiff_t to int and avoid integer overflows.
 4081 	* fileio.c (make_temp_name):
 4082 	* font.c (font_parse_family_registry): Avoid integer
 4083 	overflow on string size calculation.
 4084 	* data.c (Faset): Likewise for byte index.
 4085 
 4086 2014-09-12  Detlev Zundel  <dzu@member.fsf.org>
 4087 
 4088 	* buffer.c (syms_of_buffer): DEFSYM Qchoice (Bug#18337).
 4089 
 4090 2014-09-11  Dmitry Antipov  <dmantipov@yandex.ru>
 4091 
 4092 	* lisp.h (make_local_string): Nitpick indent.
 4093 	* print.c (Fprin1_to_string): Remove unused GCPROs.
 4094 
 4095 	More debugging aids around GCPROs.
 4096 	* lisp.h (struct gcpro) [DEBUG_GCPRO]: Add extra members.
 4097 	(GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, GCPRO7):
 4098 	Minor restyle.  If DEBUG_GCPRO, initialize extra fields.
 4099 
 4100 	* lread.c (readevalloop_eager_expand_eval): Add GCPRO and fix
 4101 	bootstrap broken if GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE.
 4102 
 4103 	Remove redundant GCPROs around Ffuncall and Fapply calls.
 4104 	This is safe because Ffuncall protects all of its arguments by itself.
 4105 	* charset.c (map_charset_for_dump): Remove redundant GCPRO.
 4106 	* eval.c (Fapply, apply1, call0, call1, call2, call3, call4, call5)
 4107 	(call6, call7): Likewise.  Use compound literals where applicable.
 4108 	(run_hook_with_args_2): Use compound literal.
 4109 
 4110 2014-09-11  Paul Eggert  <eggert@cs.ucla.edu>
 4111 
 4112 	Pacify --enable-gcc-warnings when no window system is used.
 4113 	These warnings found that subscript error, so they seem worthwhile.
 4114 	* composite.c (char_composable_p): Simplify a bit.
 4115 	* frame.c (x_set_frame_parameters): Add an IF_LINT.
 4116 	* frame.c (x_set_horizontal_scroll_bars, x_set_scroll_bar_height):
 4117 	* frame.h (FRAME_HAS_HORIZONTAL_SCROLL_BARS):
 4118 	* window.c (set_window_scroll_bars):
 4119 	Use USE_HORIZONTAL_SCROLL_BARS for simplicity.
 4120 	* frame.h [! USE_HORIZONTAL_SCROLL_BARS]:
 4121 	Ignore -Wsuggest-attribute=const.
 4122 	* window.h (USE_HORIZONTAL_SCROLL_BARS): New macro.
 4123 	(WINDOW_HAS_HORIZONTAL_SCROLL_BAR): Use it.
 4124 
 4125 2014-09-10  Paul Eggert  <eggert@penguin.cs.ucla.edu>
 4126 
 4127 	* charset.c (Fget_unused_iso_final_char): Fix subscript error.
 4128 	Use check_iso_charset_parameter instead of doing the checks by hand.
 4129 	(check_iso_charset_parameter): Move up.  Check parameters a bit
 4130 	more carefully, and return true for 96-char sets.  All callers changed.
 4131 
 4132 2014-09-10  Paul Eggert  <eggert@cs.ucla.edu>
 4133 
 4134 	Simplify lisp.h by removing the __COUNTER__ business.
 4135 	Reported by Dmitry Antipov in:
 4136 	https://lists.gnu.org/r/emacs-devel/2014-09/msg00220.html
 4137 	* lisp.h (make_local_vector, make_local_string)
 4138 	(build_local_string): Simplify by not bothering with __COUNTER__.
 4139 	The __COUNTER__ business wasn't working properly, and was needed
 4140 	only for hypothetical future expansion anyway.
 4141 
 4142 2014-09-10  Alp Aker  <alp.tekin.aker@gmail.com>
 4143 
 4144 	* nsterm.m (ns_draw_fringe_bitmap): Use the same logic as other
 4145 	terms to determine bitmap color.  (Bug#18437)
 4146 
 4147 2014-09-10  Eli Zaretskii  <eliz@gnu.org>
 4148 
 4149 	* w32.c (sys_write): Use SAFE_NALLOCA for the NL -> CRLF
 4150 	translation buffer.
 4151 
 4152 2014-09-10  Paul Eggert  <eggert@cs.ucla.edu>
 4153 
 4154 	* xterm.c (handle_one_xevent): Add braces to pacify gcc -Wall.
 4155 
 4156 2014-09-10  Jan Djärv  <jan.h.d@swipnet.se>
 4157 
 4158 	* xterm.c (handle_one_xevent): Detect iconified by looking at
 4159 	_NET_WM_STATE_HIDDEN.
 4160 
 4161 2014-09-10  Paul Eggert  <eggert@cs.ucla.edu>
 4162 
 4163 	* lisp.h (DEFINE_GDB_SYMBOL_ENUM): Remove.
 4164 	These can generate a constant with the correct value but the wrong
 4165 	width, which doesn't work as a printf argument.  All uses removed.
 4166 	Reported by Dmitry Antipov in:
 4167 	https://lists.gnu.org/r/emacs-devel/2014-09/msg00213.html
 4168 	(ENUMABLE): Remove; no longer needed.
 4169 	(ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
 4170 	Remove; no longer needed because of the above change.
 4171 	Each definiens moved to the only use.
 4172 
 4173 	Improve the experimental local and scoped allocation.
 4174 	* alloc.c (local_string_init, local_vector_init):
 4175 	New functions, defined if USE_LOCAL_ALLOCATORS.
 4176 	Mostly, these are moved here from lisp.h, as it's not
 4177 	clear it's worth making them inline.
 4178 	* lisp.h (USE_STACK_LISP_OBJECTS): Default to false.
 4179 	(GCALIGNED): Depend on HAVE_STRUCT_ATTRIBUTE_ALIGNED and
 4180 	USE_STACK_LISP_OBJECTS, not on a laundry list.
 4181 	(local_string_init, local_vector_init): New decls.
 4182 	(union Aligned_Cons): New type.
 4183 	(scoped_cons): Use it.  Give up on the char trick, as it's a too
 4184 	much of a maintenance hassle; if someone wants this speedup
 4185 	they'll just need to convince their compiler to align properly.
 4186 	Conversely, use the speedup if struct Lisp_Cons happens to
 4187 	be aligned even without a directive.  Better yet, help it along
 4188 	by using union Aligned_Cons rather than struct Lisp_Cons.
 4189 	(pointer_valid_for_lisp_object): Remove.  This check is not
 4190 	necessary, since make_lisp_ptr is already doing it.  All uses removed.
 4191 	(local_vector_init, local_string_init): Move to alloc.c.
 4192 	(build_local_vector): Remove this awkward macro, replacing with ...
 4193 	(make_local_vector): New macro, which acts more like a function.
 4194 	Use statement expressions and use __COUNTER__ to avoid macro
 4195 	capture.  Fall back on functions if these features are not supported.
 4196 	(build_local_string, make_local_string): Likewise.
 4197 
 4198 2014-09-09  Dmitry Antipov  <dmantipov@yandex.ru>
 4199 
 4200 	* xterm.c (x_term_init): Consolidate duplicated code.
 4201 	[USE_LUCID]: Revert 2014-04-02 change (Bug#18403).  Add comment.
 4202 	(x_delete_terminal): Do not close X connection fd (Bug#18403).
 4203 	Add eassert and mark dpyinfo as dead only if it was alive.
 4204 
 4205 	Add macros to allocate temporary Lisp objects with alloca.
 4206 	Respect MAX_ALLOCA and fall back to regular GC for large objects.
 4207 	* character.h (parse_str_as_multibyte): Move prototype to ...
 4208 	* lisp.h (parse_str_as_multibyte): ... here.
 4209 	(struct Lisp_Cons): Add GCALIGNED attribute if supported.
 4210 	(scoped_cons, scoped_list2, build_local_vector, build_local_string):
 4211 	New macros.
 4212 	(scoped_cons_init, pointer_valid_for_lisp_object, local_vector_init)
 4213 	(local_string_init): New functions.
 4214 	* alloc.c (verify_alloca) [ENABLE_CHECKING]: New function.
 4215 	(init_alloc_once): Call it.
 4216 
 4217 	Cleanup last change and make all new stuff conditional.
 4218 	* lisp.h (build_local_string): Rename to ...
 4219 	(make_local_string): ... this macro.
 4220 	(build_local_string, scoped_list1, scoped_list3): New macros.
 4221 	(toplevel) [USE_STACK_LISP_OBJECTS]: Define all new macros
 4222 	and functions as such, use regular fallbacks otherwise.
 4223 	* alloc.c (verify_alloca) [USE_STACK_LISP_OBJECTS]: Define
 4224 	conditionally.
 4225 
 4226 2014-09-08  Eli Zaretskii  <eliz@gnu.org>
 4227 
 4228 	* dispnew.c (prepare_desired_row): When MODE_LINE_P is zero,
 4229 	always make sure the marginal areas of the row are in sync with
 4230 	what the window wants.  (Bug#18419)
 4231 
 4232 	* data.c (set_internal): Use assq_no_quit, not Fassq, to find an
 4233 	existing binding of a variable, to avoid silently aborting
 4234 	commands that use specbind.  (Bug#18331)
 4235 
 4236 2014-09-07  Paul Eggert  <eggert@cs.ucla.edu>
 4237 
 4238 	Fix bug uncovered by changing alloca to auto buffer (Bug#18410).
 4239 	* coding.c (growable_destination): New function.
 4240 	(produce_chars): Use it for sanity checks.  Do not fiddle with
 4241 	dst_end if the source and destination are both nil, as it's
 4242 	the caller's responsibility to avoid overlap.
 4243 	* keyboard.c (read_decoded_event_from_main_queue):
 4244 	The destination must be MAX_MULTIBYTE_LENGTH times the max source
 4245 	length, not 4 times, to prevent decode_coding_c_string from trying
 4246 	to reallocate a destination.  This removes the need for the FIXME.
 4247 
 4248 	* callproc.c (exec_failed) [DOS_NT]: Define a dummy.
 4249 	All callers simplified.  Add a comment about exec_failed, vfork,
 4250 	and alloca.
 4251 
 4252 	Adjust drag-and-drop fix when window is above top (Bug#18303).
 4253 	* xselect.c (x_fill_property_data): Don't let sign bit of negative
 4254 	XCDR bleed into XCAR's encoded value.  Improve checks for
 4255 	out-of-range data while we're at it.
 4256 
 4257 2014-09-07  Jan Djärv  <jan.h.d@swipnet.se>
 4258 
 4259 	* xselect.c (x_fill_property_data): Handle negative XCDR when data
 4260 	is CONSP (Bug#18303).
 4261 
 4262 2014-09-07  Eli Zaretskii  <eliz@gnu.org>
 4263 
 4264 	* callproc.c (child_setup) [WINDOWSNT]: Don't call exec_failed if
 4265 	'alloca' gets passed arguments larger than MAX_ALLOCA.
 4266 
 4267 	* font.c (MAX): Define if not defined elsewhere.
 4268 
 4269 2014-09-07  Paul Eggert  <eggert@cs.ucla.edu>
 4270 
 4271 	* keyboard.c (read_decoded_event_from_main_queue): Reinstitute alloca
 4272 	here for destination buffer, to work around what appears to be a
 4273 	bug in decode_coding_c_string when the source and destination are
 4274 	both C strings.
 4275 
 4276 	Use SAFE_ALLOCA etc. to avoid unbounded stack allocation (Bug#18410).
 4277 	This follows up on the recent thread in emacs-devel on alloca; see:
 4278 	https://lists.gnu.org/r/emacs-devel/2014-09/msg00042.html
 4279 	This patch also cleans up alloca-related glitches noted while
 4280 	examining the code looking for unbounded alloca.
 4281 	* alloc.c (listn):
 4282 	* callproc.c (init_callproc):
 4283 	Rewrite to avoid need for alloca.
 4284 	* buffer.c (mouse_face_overlay_overlaps)
 4285 	(report_overlay_modification):
 4286 	* buffer.h (GET_OVERLAYS_AT):
 4287 	* coding.c (make_subsidiaries):
 4288 	* doc.c (Fsnarf_documentation):
 4289 	* editfns.c (Fuser_full_name):
 4290 	* fileio.c (Ffile_name_directory, Fexpand_file_name)
 4291 	(search_embedded_absfilename, Fsubstitute_in_file_name):
 4292 	* fns.c (Fmake_hash_table):
 4293 	* font.c (font_vconcat_entity_vectors, font_update_drivers):
 4294 	* fontset.c (fontset_pattern_regexp, Ffontset_info):
 4295 	* frame.c (Fmake_terminal_frame, x_set_frame_parameters)
 4296 	(xrdb_get_resource, x_get_resource_string):
 4297 	* ftfont.c (ftfont_get_charset, ftfont_check_otf, ftfont_drive_otf):
 4298 	* ftxfont.c (ftxfont_draw):
 4299 	* image.c (xbm_load, xpm_load, jpeg_load_body):
 4300 	* keyboard.c (echo_add_key, menu_bar_items, tool_bar_items)
 4301 
 4302 	* keymap.c (Fdescribe_buffer_bindings, describe_map):
 4303 	* lread.c (openp):
 4304 	* menu.c (digest_single_submenu, find_and_call_menu_selection)
 4305 	(find_and_return_menu_selection):
 4306 	* print.c (PRINTFINISH):
 4307 	* process.c (Fformat_network_address):
 4308 	* scroll.c (do_scrolling, do_direct_scrolling, scrolling_1):
 4309 	* search.c (search_buffer, Fmatch_data, Fregexp_quote):
 4310 	* sound.c (wav_play, au_play):
 4311 	* syntax.c (skip_chars):
 4312 	* term.c (tty_menu_activate, tty_menu_show):
 4313 	* textprop.c (get_char_property_and_overlay):
 4314 	* window.c (Fset_window_configuration):
 4315 	* xdisp.c (safe__call, next_overlay_change, vmessage)
 4316 	(compute_overhangs_and_x, draw_glyphs, note_mouse_highlight):
 4317 	* xfaces.c (face_at_buffer_position):
 4318 	* xmenu.c (x_menu_show):
 4319 	Use SAFE_ALLOCA etc. instead of plain alloca, since the
 4320 	allocation size isn't bounded.
 4321 	* callint.c (Fcall_interactively): Redo memory_full check
 4322 	so that it can be done at compile-time on some platforms.
 4323 	* coding.c (MAX_LOOKUP_MAX): New constant.
 4324 	(get_translation_table): Use it.
 4325 	* callproc.c (call_process): Use SAFE_NALLOCA instead of
 4326 	SAFE_ALLOCA, to catch integer overflows on size calculation.
 4327 	(exec_failed) [!DOS_NT]: New function.
 4328 	(child_setup) [!DOS_NT]: Use it.
 4329 	* editfns.c (Ftranspose_regions):
 4330 	Hoist USE_SAFE_ALLOC + SAFE_FREE out of 'if'.
 4331 	* editfns.c (check_translation):
 4332 	Allocate larger buffers on the heap.
 4333 	* eval.c (internal_lisp_condition_case):
 4334 	Check for MAX_ALLOCA overflow.
 4335 	* fns.c (sort_vector): Use SAFE_ALLOCA_LISP rather than Fmake_vector.
 4336 	(Fbase64_encode_region, Fbase64_decode_region):
 4337 	Avoid unnecessary calls to SAFE_FREE before 'error'.
 4338 	* buffer.c (mouse_face_overlay_overlaps):
 4339 	* editfns.c (Fget_pos_property, check_translation):
 4340 	* eval.c (Ffuncall):
 4341 	* font.c (font_unparse_xlfd, font_find_for_lface):
 4342 	* ftfont.c (ftfont_drive_otf):
 4343 	* keyboard.c (echo_add_key, read_decoded_event_from_main_queue)
 4344 	(menu_bar_items, tool_bar_items):
 4345 	* sound.c (Fplay_sound_internal):
 4346 	* xdisp.c (load_overlay_strings, dump_glyph_row):
 4347 	Use an ordinary auto buffer rather than alloca, since the
 4348 	allocation size is fixed and small.
 4349 	* ftfont.c: Include <c-strcase.h>.
 4350 	(matching_prefix): New function.
 4351 	(get_adstyle_property): Use it, to avoid need for alloca.
 4352 	* keyboard.c (echo_add_key):
 4353 	* keymap.c (describe_map): Use ptrdiff_t, not int.
 4354 	* keyboard.c (echo_add_key): Prefer sizeof to strlen.
 4355 	* keymap.c (Fdescribe_buffer_bindings): Use SBYTES, not SCHARS,
 4356 	when counting bytes.
 4357 	* lisp.h (xlispstrdupa): Remove, replacing with ...
 4358 	(SAFE_ALLOCA_STRING): ... new macro with different API.
 4359 	This fixes a portability problem, namely, alloca result
 4360 	passed to another function.  All uses changed.
 4361 	(SAFE_ALLOCA, SAFE_ALLOCA_LISP): Check for MAX_ALLOCA,
 4362 	not MAX_ALLOCA - 1.
 4363 	* regex.c (REGEX_USE_SAFE_ALLOCA, REGEX_SAFE_FREE)
 4364 	(REGEX_ALLOCATE): New macros.
 4365 	(REGEX_REALLOCATE, REGEX_ALLOCATE_STACK, REGEX_REALLOCATE_STACK)
 4366 	(REGEX_FREE_STACK, FREE_VARIABLES, re_match_2_internal):
 4367 	Use them.
 4368 	* xdisp.c (message3): Use SAFE_ALLOCA_STRING rather than doing it
 4369 	by hand.
 4370 	(decode_mode_spec_coding): Store directly into buf rather than
 4371 	into an alloca temporary and copying the temporary to the buf.
 4372 
 4373 2014-09-06  Eli Zaretskii  <eliz@gnu.org>
 4374 
 4375 	* Makefile.in (EMACS_HEAPSIZE): Remove, no longer used.  (Bug#18416)
 4376 
 4377 2014-09-04  Jan D  <jan.h.d@swipnet.se>
 4378 
 4379 	* xterm.c (x_term_init): Don't call x_session_initialize if running
 4380 	as a daemon (Bug#18375).
 4381 
 4382 	* xsmfns.c: Initialize ice_fd.
 4383 
 4384 2014-09-04  Paul Eggert  <eggert@cs.ucla.edu>
 4385 
 4386 	Less chatter in 'make' output.
 4387 	* Makefile.in (AM_V_GEN, am__v_GEN_, am__v_GEN_0, am__v_GEN_1, AM_V_at)
 4388 	(am__v_at_, am__v_at_0, am__v_at_1):  New macros, taken from Automake.
 4389 	($(etc)/DOC, buildobj.h, gl-stamp): Use them.
 4390 
 4391 2014-09-03  Martin Rudalics  <rudalics@gmx.at>
 4392 
 4393 	* buffer.c (scroll-bar-height): Fix typo in doc-string.
 4394 	* frame.c (Vdefault_frame_horizontal_scroll_bars):
 4395 	Remove variable.
 4396 	* nsfns.m (Fx_create_frame):
 4397 	* w32fns.c (Fx_create_frame):
 4398 	* xfns.c (Fx_create_frame): Default horizontal scroll bars to
 4399 	nil.
 4400 
 4401 2014-09-03  Eli Zaretskii  <eliz@gnu.org>
 4402 
 4403 	* dispnew.c (buffer_posn_from_coords): Fix an off-by-one error in
 4404 	the reported row in the case of a window with a header line, by
 4405 	improving on the fix committed in 2011-10-08T10:58:50Z!eliz@gnu.org
 4406 	eliz@gnu.org-20111008105850-ht4tvsayohvr1kjc.  (Bug#18384)
 4407 
 4408 2014-09-03  Paul Eggert  <eggert@cs.ucla.edu>
 4409 
 4410 	* eval.c (internal_lisp_condition_case): Don't overrun the stack
 4411 	when configured --with-wide-int on typical 32-bit platforms.
 4412 
 4413 2014-09-03  Eli Zaretskii  <eliz@gnu.org>
 4414 
 4415 	* xdisp.c (display_and_set_cursor): Call erase_phys_cursor also
 4416 	when HPOS is negative, for the benefit of R2L glyph rows whose
 4417 	newline overflows into the fringe.
 4418 
 4419 2014-09-03  Ken Brown  <kbrown@cornell.edu>
 4420 
 4421 	* conf_post.h (strnicmp) [CYGWIN && HAVE_NTGUI]: Define.  (Bug#18366)
 4422 
 4423 2014-09-02  Paul Eggert  <eggert@cs.ucla.edu>
 4424 
 4425 	Minor cleanup of recent strlen-avoiding patch.
 4426 	* fileio.c (CHECK_LENGTH): Remove.
 4427 	Rewrite callers so that they don't need it.
 4428 	(Fexpand_file_name) [DOS_NT]: Fix a case where directory length
 4429 	variable wasn't set.
 4430 
 4431 2014-09-02  Dmitry Antipov  <dmantipov@yandex.ru>
 4432 
 4433 	* fileio.c (CHECK_LENGTH): New macro.
 4434 	(Fexpand_file_name): Use it and get rid of a few more calls
 4435 	to strlen and strcat.
 4436 	* callproc.c (egetenv_internal): Add arg and rename from egetenv ...
 4437 	* lisp.h (egetenv): ... because of a new inline function used to
 4438 	avoid calls to strlen for a compile-time constants.
 4439 
 4440 	* buffer.h (decode_buffer): New function.
 4441 	* buffer.c (Fbuffer_name, Fbuffer_file_name, Fbuffer_base_buffer)
 4442 	(Fbuffer_local_variables, Fbuffer_modified_p, Fbuffer_modified_tick)
 4443 	(Fbuffer_chars_modified_tick, Fdelete_all_overlays):
 4444 	* data.c (Flocal_variables_p):
 4445 	* fileio.c (Fverify_visited_file_modtime):
 4446 	* marker.c (live_buffer): Use it.
 4447 
 4448 2014-09-01  Dmitry Antipov  <dmantipov@yandex.ru>
 4449 
 4450 	Avoid extra calls to strlen in filesystem I/O routines.
 4451 	* fileio.c (Fexpand_file_name): Avoid calls to strlen if
 4452 	the length of 'newdir' is known or may be precalculated.
 4453 	(file_accessible_directory_p): Prefer to pass Lisp_Object,
 4454 	not 'char *', and so use precalculated length.
 4455 	(Ffile_accessible_directory_p):
 4456 	* callproc.c (encode_current_directory, init_callproc):
 4457 	* charset.c (init_charset):
 4458 	* lread.c (load_path_check, load_path_default): Adjust users.
 4459 	* lisp.h (file_accessible_directory_p): Tweak prototype.
 4460 
 4461 2014-09-01  Eli Zaretskii  <eliz@gnu.org>
 4462 
 4463 	* w32proc.c (w32_compare_strings): Support "C" and "POSIX"
 4464 	locales.
 4465 
 4466 2014-09-01  Paul Eggert  <eggert@cs.ucla.edu>
 4467 
 4468 	--enable-silent-rules now suppresses more chatter.
 4469 	* Makefile.in (AM_DEFAULT_VERBOSITY, AM_V_CC, am__v_CC_)
 4470 	(am__v_CC_0, am__v_CC_1, AM_V_CCLD, am__v_CCLD_, am__v_CCLD_0)
 4471 	(am__v_CCLD_1): New macros, taken from Automake.
 4472 	(.c.o, .m.o, temacs$(EXEEXT)): Use them.
 4473 
 4474 	Clean up extern decls a bit.
 4475 	* bytecode.c: Include blockinput.h and keyboard.h rather
 4476 	than rolling their APIs by hand.
 4477 	* emacs.c: Include regex.h and rely on its and lisp.h's API
 4478 	rather than rolling them by hand.
 4479 	* lastfile.c: Include lisp.h, to check this file's API.
 4480 	* lisp.h (lisp_eval_depth, my_edata, my_endbss, my_endbss_static):
 4481 	New decls.
 4482 	* regex.h (re_max_failures): New decl.
 4483 	* unexcw.c, unexmacosx.c, unexw32.c:
 4484 	Rely on lisp.h's API rather than rolling it by hand.
 4485 	* vm-limit.c (__after_morecore_hook, __morecore, real_morecore):
 4486 	Declare at top level, to pacify GCC -Wnested-externs.
 4487 
 4488 2014-08-31  Eli Zaretskii  <eliz@gnu.org>
 4489 
 4490 	* xdisp.c (get_glyph_string_clip_rects): Don't let the width of a
 4491 	clipping rectangle become negative (i.e. large positive, since
 4492 	it's an unsigned data type).  This can happen in R2L hscrolled
 4493 	glyph rows, and caused us to draw the cursor glyph on the fringe.
 4494 	For the details, see
 4495 	https://lists.gnu.org/r/emacs-devel/2014-08/msg00543.html.
 4496 
 4497 2014-08-31  Ken Brown  <kbrown@cornell.edu>
 4498 
 4499 	* gmalloc.c: Don't include <stdlib.h>.  Declare system malloc and
 4500 	friends before defining hybrid_malloc and friends if HYBRID_MALLOC
 4501 	is defined.  (Bug#18368)
 4502 
 4503 2014-08-30  Paul Eggert  <eggert@cs.ucla.edu>
 4504 
 4505 	Vector-sorting fixes (Bug#18361).
 4506 	It's not safe to call qsort or qsort_r, since they have undefined
 4507 	behavior if the user-specified predicate is not a total order.
 4508 	Also, watch out for garbage-collection while sorting vectors.
 4509 	* fns.c: Include <vla.h>.
 4510 	(sort_vector_predicate) [!HAVE_QSORT_R]: Remove.
 4511 	(sort_vector_compare): Remove, replacing with ....
 4512 	(inorder, merge_vectors, sort_vector_inplace, sort_vector_copy):
 4513 	... these new functions.
 4514 	(sort_vector): Rewrite to use the new functions.
 4515 	GCPRO locals, since the predicate can invoke the GC.
 4516 	Since it's in-place return void; caller changed.
 4517 	(merge): Use 'inorder', for clarity.
 4518 
 4519 	* sysdep.c (str_collate): Clear errno just before wcscoll(_l).
 4520 	One can't hoist this out of the 'if', because intervening calls to
 4521 	newlocale, twolower, etc. can change errno.
 4522 
 4523 2014-08-30  Eli Zaretskii  <eliz@gnu.org>
 4524 
 4525 	* sysdep.c (str_collate) [__STDC_ISO_10646__]: Improve the
 4526 	wording of the error messages.
 4527 	(str_collate) [WINDOWSNT]: Signal an error if w32_compare_strings
 4528 	sets errno.
 4529 
 4530 	* w32proc.c (get_lcid_callback): Accept locale specifications
 4531 	without the country part, as in "enu" vs "enu_USA".
 4532 	(w32_compare_strings): Signal an error if a locale was specified,
 4533 	but couldn't be translated into a valid LCID.
 4534 
 4535 2014-08-29  Michael Albinus  <michael.albinus@gmx.de>
 4536 
 4537 	* sysdep.c (str_collate) [__STDC_ISO_10646__]: Move up setting errno.
 4538 
 4539 2014-08-29  Paul Eggert  <eggert@cs.ucla.edu>
 4540 
 4541 	* sysdep.c (str_collate) [__STDC_ISO_10646__]: Do not look at
 4542 	errno after towlower_l.  errno's value is not specified after
 4543 	towlower_l.  Instead, assume that towlower_l returns its argument
 4544 	on failure, which is portable in practice.
 4545 
 4546 2014-08-29  Eli Zaretskii  <eliz@gnu.org>
 4547 
 4548 	* fns.c (Fstring_collate_lessp, Fstring_collate_equalp): Doc fix.
 4549 
 4550 	* w32proc.c (w32_compare_strings): Accept additional argument
 4551 	IGNORE_CASE.  Set up the flags for CompareStringW to ignore case
 4552 	if requested.  If w32-collate-ignore-punctuation is non-nil, add
 4553 	NORM_IGNORESYMBOLS to the flags.
 4554 	(LINGUISTIC_IGNORECASE): Define if not already defined.
 4555 	(syms_of_ntproc) <Vw32_collate_ignore_punctuation>: New variable.
 4556 
 4557 	* sysdep.c (str_collate) [WINDOWSNT]: Adapt to the interface
 4558 	change.
 4559 
 4560 2014-08-29  Michael Albinus  <michael.albinus@gmx.de>
 4561 
 4562 	* sysdep.c (LC_CTYPE, LC_CTYPE_MASK, towlower_l):
 4563 	Define substitutes for platforms that lack them.
 4564 	(str_collate): Add arguments locale and ignore_case.
 4565 
 4566 	* fns.c (Fstring_collate_lessp, Fstring_collate_equalp):
 4567 	Add optional arguments LOCALE and IGNORE-CASE.
 4568 
 4569 	* lisp.h (str_collate): Adapt argument list.
 4570 
 4571 2014-08-29  Dmitry Antipov  <dmantipov@yandex.ru>
 4572 
 4573 	Add vectors support to Fsort.
 4574 	* fns.c (sort_vector, sort_vector_compare): New functions.
 4575 	(sort_list): Likewise, refactored out of ...
 4576 	(Fsort): ... adjusted user.  Mention vectors in docstring.
 4577 	(sort_vector_predicate) [!HAVE_QSORT_R]: New variable.
 4578 	* alloc.c (make_save_int_obj): New function.
 4579 	* lisp.h (enum Lisp_Save_Type): New member SAVE_TYPE_INT_OBJ.
 4580 	(make_save_int_obj): Add prototype.
 4581 
 4582 	Fix last change to support Darwin/OSX and FreeBSD (Bug#18354).
 4583 	* sysdep.c (sort_vector_compare) [DARWIN_OS || __FreeBSD__]:
 4584 	Conditionally define to match system's qsort_r signature.
 4585 	(sort_vector) [DARWIN_OS || __FreeBSD__]: Likewise in call to qsort_r.
 4586 
 4587 2014-08-28  Ken Brown  <kbrown@cornell.edu>
 4588 
 4589 	Add support for HYBRID_MALLOC, allowing the use of gmalloc before
 4590 	dumping and the system malloc after dumping.  (Bug#18222)
 4591 
 4592 	* conf_post.h (malloc, realloc, calloc, free) [HYBRID_MALLOC]:
 4593 	Define as macros, expanding to hybrid_malloc, etc.
 4594 	(HYBRID_GET_CURRENT_DIR_NAME): New macro.
 4595 	(get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]: Define as
 4596 	macro.
 4597 	* gmalloc.c: Set up the infrastructure for HYBRID_MALLOC, with a
 4598 	full implementation on Cygwin.  Remove Cygwin-specific code that
 4599 	is no longer needed.
 4600 	(malloc, realloc, calloc, free, aligned_alloc) [HYBRID_MALLOC]:
 4601 	Redefine as macros expanding to gmalloc, grealloc, etc.
 4602 	(DUMPED, ALLOCATED_BEFORE_DUMPING) [CYGWIN]: New macros.
 4603 	(get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]: Undefine.
 4604 	(USE_PTHREAD, posix_memalign) [HYBRID_MALLOC]: Don't define.
 4605 	(hybrid_malloc, hybrid_calloc, hybrid_free, hybrid_realloc)
 4606 	[HYBRID_MALLOC]:
 4607 	(hybrid_get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]:
 4608 	(hybrid_aligned_alloc) [HYBRID_MALLOC && (HAVE_ALIGNED_ALLOC ||
 4609 	HAVE_POSIX_MEMALIGN)]: New functions.
 4610 	* alloc.c (aligned_alloc) [HYBRID_MALLOC && (ALIGNED_ALLOC ||
 4611 	HAVE_POSIX_MEMALIGN)]: Define as macro expanding to
 4612 	hybrid_aligned_alloc; declare.
 4613 	(USE_ALIGNED_ALLOC) [HYBRID_MALLOC && (ALIGNED_ALLOC ||
 4614 	HAVE_POSIX_MEMALIGN)]: Define.
 4615 	(refill_memory_reserve) [HYBRID_MALLOC]: Do nothing.
 4616 	* sysdep.c (get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]:
 4617 	Define as macro, expanding to gget_current_dir_name, and define
 4618 	the latter.
 4619 	* emacs.c (main) [HYBRID_MALLOC]: Don't call memory_warnings() or
 4620 	malloc_enable_thread().  Don't initialize malloc.
 4621 	* lisp.h (NONPOINTER_BITS) [CYGWIN]: Define (because GNU_MALLOC is
 4622 	no longer defined on Cygwin).
 4623 	(refill_memory_reserve) [HYBRID_MALLOC]: Don't declare.
 4624 	* sheap.c (bss_sbrk_buffer_end): New variable.
 4625 	* unexcw.c (__malloc_initialized): Remove variable.
 4626 	* ralloc.c: Throughout, treat HYBRID_MALLOC the same as
 4627 	SYSTEM_MALLOC.
 4628 	* xdisp.c (decode_mode_spec) [HYBRID_MALLOC]: Don't check
 4629 	Vmemory_full.
 4630 
 4631 2014-08-28  Martin Rudalics  <rudalics@gmx.at>
 4632 
 4633 	* w32term.c (w32_horizontal_scroll_bar_handle_click):
 4634 	In `event->y' return entire range (the size of the scroll bar minus
 4635 	that of the thumb).
 4636 	* xterm.c (xm_scroll_callback, xaw_jump_callback): In `whole'
 4637 	return entire range (the scaled size of the scroll bar minus
 4638 	that of the slider).  In `portion' return the scaled position of
 4639 	the slider.
 4640 	(xaw_jump_callback): Restore part of code for vertical scroll
 4641 	bar broken in change from 2014-07-27.
 4642 	(xaw_scroll_callback): Provide incremental scrolling with
 4643 	horizontal scroll bars.
 4644 
 4645 2014-08-28  Eli Zaretskii  <eliz@gnu.org>
 4646 
 4647 	* conf_post.h (_GL_EXECINFO_INLINE) [MSDOS]: Don't define.
 4648 
 4649 	* indent.c (Fvertical_motion): Fix vertical motion up through a
 4650 	display property after a newline.  (Bug#18276)
 4651 
 4652 	* xdisp.c (display_line): Don't assume that the call to
 4653 	reseat_at_next_visible_line_start ends up at a character
 4654 	immediately following the newline on the previous line.
 4655 	Avoids setting the ends_at_zv_p flag on screen lines that are not at or
 4656 	beyond ZV, which causes infloop in redisplay.  For the details, see
 4657 	https://lists.gnu.org/r/emacs-devel/2014-08/msg00368.html.
 4658 
 4659 	* dispnew.c (buffer_posn_from_coords): Fix mirroring of X
 4660 	coordinate for hscrolled R2L screen lines.  (Bug#18277)
 4661 
 4662 2014-08-28  Paul Eggert  <eggert@cs.ucla.edu>
 4663 
 4664 	* sysdep.c (LC_COLLATE, LC_COLLATE_MASK): Give individual defaults
 4665 	(Bug#18051).
 4666 
 4667 2014-08-27  Eli Zaretskii  <eliz@gnu.org>
 4668 
 4669 	* syntax.c (scan_lists): Don't examine positions before BEGV.
 4670 	(Bug#18339)
 4671 
 4672 2014-08-27  Paul Eggert  <eggert@cs.ucla.edu>
 4673 
 4674 	Improve robustness of new string-collation code (Bug#18051).
 4675 	* sysdep.c (LC_COLLATE, LC_COLLATE_MASK, freelocale, locale_t)
 4676 	(newlocale, wcscoll_l): Define substitutes for platforms that
 4677 	lack them, so as to simplify the mainline code.
 4678 	(str_collate): Simplify the code by assuming the above definitions.
 4679 	Use wcscoll_l, not uselocale, as uselocale is too fragile.
 4680 	For example, the old version left the Emacs in the wrong locale if
 4681 	wcscoll reported an error.  Use 'int', not ptrdiff_t, for the int
 4682 	result.  Report an error if newlocale fails.
 4683 
 4684 2014-08-27  Michael Albinus  <michael.albinus@gmx.de>
 4685 
 4686 	* lisp.h (str_collate):
 4687 	* sysdep.c (str_collate): Return int.
 4688 	(str_collate) [__STDC_ISO_10646__]: Propagate error of wcscoll.
 4689 
 4690 2014-08-27  Dmitry Antipov  <dmantipov@yandex.ru>
 4691 
 4692 	Fix some glitches in previous change.
 4693 	* sysdep.c (stack_direction): Replace stack_grows_down
 4694 	to simplify calculation of stack boundaries.
 4695 	(handle_sigsegv): Check whether we really crash somewhere near
 4696 	to stack boundary, and handle fatal signal as usual if not.
 4697 	(init_sigsegv): Adjust accordingly.
 4698 	* keyboard.c (Vtop_level_message): Rename to
 4699 	Vinternal__top_level_message, as suggested by Stefan Monnier in
 4700 	https://lists.gnu.org/r/emacs-devel/2014-08/msg00493.html
 4701 	All related users changed.
 4702 
 4703 2014-08-26  Dmitry Antipov  <dmantipov@yandex.ru>
 4704 
 4705 	Handle C stack overflow caused by too nested Lisp evaluation.
 4706 	* lisp.h (toplevel) [HAVE_STACK_OVERFLOW_HANDLING]: Declare
 4707 	siglongjmp point to transfer control from SIGSEGV handler.
 4708 	* keyboard.c (return_to_command_loop, recover_top_level_message)
 4709 	[HAVE_STACK_OVERFLOW_HANDLING]: New variables.
 4710 	(regular_top_level_message): New variable.
 4711 	(command_loop) [HAVE_STACK_OVERFLOW_HANDLING]: Handle non-local
 4712 	exit from SIGSEGV handler and adjust message displayed by Vtop_level
 4713 	if appropriate.
 4714 	(syms_of_keyboard): DEFVAR Vtop_level_message and initialize
 4715 	new variables described above.
 4716 	* sysdep.c [HAVE_SYS_RESOURCE_H]: Include sys/resource.h as such.
 4717 	(stack_grows_down, sigsegv_stack, handle_sigsegv)
 4718 	[HAVE_STACK_OVERFLOW_HANDLING]: New variables and function.
 4719 	(init_sigsegv): New function.
 4720 	(init_signals): Use it.
 4721 
 4722 2014-08-25  Ken Brown  <kbrown@cornell.edu>
 4723 
 4724 	* emacs.c (main): Remove use of obsolete macro
 4725 	G_SLICE_ALWAYS_MALLOC.
 4726 
 4727 2014-08-25  Eli Zaretskii  <eliz@gnu.org>
 4728 
 4729 	Implement locale-sensitive string collation for MS-Windows.
 4730 	* w32proc.c (get_lcid_callback, get_lcid, w32_compare_strings):
 4731 	New functions.  (Bug#18051)
 4732 
 4733 	* w32.h (w32_compare_strings): Add prototype.
 4734 
 4735 	* w32.c <g_b_init_compare_string_w>: New global flag.
 4736 	(globals_of_w32): Initialize it.
 4737 
 4738 	* sysdep.c (str_collate) [WINDOWSNT]: Implementation for MS-Windows.
 4739 
 4740 	* fns.c (Fstring_collate_lessp, Fstring_collate_equalp)
 4741 	[WINDOWSNT]: Call str_collate on MS-Windows.
 4742 
 4743 2014-08-25  Dmitry Antipov  <dmantipov@yandex.ru>
 4744 
 4745 	One more minor cleanup of font subsystem.
 4746 	* font.h (struct font_driver): Convert text_extents to
 4747 	return void because returned value is never actually used.
 4748 	* macfont.m (macfont_text_extents):
 4749 	* w32font.c (w32font_text_extents):
 4750 	* xftfont.c (xftfont_text_extents): Adjust to return void
 4751 	and assume that 'metrics' argument is always non-NULL.
 4752 	* ftfont.c (ftfont_text_extents):
 4753 	* xfont.c (xfont_text_extents): Likewise.  Avoid redundant memset.
 4754 
 4755 2014-08-25  Paul Eggert  <eggert@cs.ucla.edu>
 4756 
 4757 	Minor cleanups of str_collate fix (Bug#18051).
 4758 	* fns.c (str_collate): Move decl from here ...
 4759 	* lisp.h (str_collate): ... to here.
 4760 	* sysdep.c (str_collate): Prune away some of the forest of ifdefs.
 4761 	Remove unnecessary casts.  Use SAFE_NALLOCA to avoid
 4762 	potential problems with integer overflow.  Don't assume
 4763 	setlocale succeeds.  Remove unnecessary test before restoring
 4764 	locale via setlocale, and free the copied setlocale string
 4765 	when done with it.
 4766 
 4767 2014-08-24  Michael Albinus  <michael.albinus@gmx.de>
 4768 
 4769 	* fns.c (Fstring_collate_lessp, Fstring_collate_equalp): New DEFUNs.
 4770 
 4771 	* sysdep.c (str_collate): New function.  (Bug#18051)
 4772 
 4773 2014-08-23  Karol Ostrovsky  <karol.ostrovsky@gmail.com>  (tiny change)
 4774 
 4775 	* Makefile.in (emacs$(EXEEXT)): Retry deletion of bootstrap-emacs
 4776 	if the initial "rm -f" fails.  This is for MinGW builds, where
 4777 	MS-Windows will not allow deleting the executable file of a
 4778 	running program.
 4779 
 4780 2014-08-20  Eli Zaretskii  <eliz@gnu.org>
 4781 
 4782 	* w32term.c (w32_scroll_bar_handle_click)
 4783 	(w32_horizontal_scroll_bar_handle_click)
 4784 	(x_scroll_bar_report_motion)
 4785 	(x_horizontal_scroll_bar_report_motion): For SB_THUMBPOSITION and
 4786 	SB_THUMBTRACK, use the 32-bit position information returned by
 4787 	GetScrollInfo, not the 16-bit information returned in the Windows
 4788 	message sent to us.
 4789 
 4790 2014-08-19  Eli Zaretskii  <eliz@gnu.org>
 4791 
 4792 	* w32term.c (w32_horizontal_scroll_bar_handle_click): Fix the
 4793 	second coordinate ('y') reported for dragging the horizontal
 4794 	scroll bar thumb.
 4795 
 4796 2014-08-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 4797 
 4798 	* xdisp.c (erase_phys_cursor): Fix confusion between window-relative
 4799 	and text area-relative x-coordinates.
 4800 
 4801 2014-08-17  Eli Zaretskii  <eliz@gnu.org>
 4802 
 4803 	Avoid overwriting the reversed_p flags in the glyph matrices when
 4804 	init_iterator or start_display are called.
 4805 	* xdisp.c (init_iterator): Don't initialize the reversed_p flag of
 4806 	the glyph row here.
 4807 	(tool_bar_height, redisplay_tool_bar, try_window)
 4808 	(try_window_reusing_current_matrix, try_window_id)
 4809 	(get_overlay_arrow_glyph_row, display_menu_bar): Initialize the
 4810 	reversed_p flag of the iterator's glyph row where the glyph row
 4811 	is going to be redrawn.
 4812 
 4813 2014-08-16  Paul Eggert  <eggert@cs.ucla.edu>
 4814 
 4815 	* xdisp.c (set_horizontal_scroll_bar): Don't use uninitialized local.
 4816 
 4817 2014-08-16  Martin Rudalics  <rudalics@gmx.at>
 4818 
 4819 	* w32term.c (w32_horizontal_scroll_bar_handle_click): In y part
 4820 	of emacs_event return length from si.nPage to si.nMax.
 4821 	* xdisp.c (set_horizontal_scroll_bar): For right-to-left text
 4822 	interchange start and end of thumb.
 4823 
 4824 2014-08-15  Ken Brown  <kbrown@cornell.edu>
 4825 
 4826 	* gmalloc.c (_malloc_mutex, _aligned_blocks_mutex) [CYGWIN]: Use
 4827 	ERRORCHECK mutexes.  (Bug#18222)
 4828 
 4829 2014-08-12  Martin Rudalics  <rudalics@gmx.at>
 4830 
 4831 	* frame.c (set_menu_bar_lines_1): Remove.
 4832 	(set_menu_bar_lines): Call change_frame_size instead of
 4833 	set_menu_bar_lines_1.
 4834 
 4835 2014-08-11  Jan Djärv  <jan.h.d@swipnet.se>
 4836 
 4837 	* nsfns.m (Fx_create_frame): Call adjust_frame_size,
 4838 	set f->official.
 4839 
 4840 2014-08-11  Glenn Morris  <rgm@gnu.org>
 4841 
 4842 	* fileio.c: Revert 2013-01-31 change, which chose coding system for
 4843 	writing before backing up, since it causes a more serious problem
 4844 	than the one it solves.  (Closes Bug#18141, reopens Bug#13522.)
 4845 	(choose_write_coding_system): No longer callable from Lisp.
 4846 	Move last piece back here from Fwrite_region.
 4847 	(Fwrite_region, syms_of_fileio): Update for above changes.
 4848 
 4849 2014-08-11  Martin Rudalics  <rudalics@gmx.at>
 4850 
 4851 	* window.c (Fwindow_valid_p): Fix doc-string (Bug#18194).
 4852 	(Fwindow_new_total, Fwindow_normal_size, Fwindow_new_normal)
 4853 	(Fwindow_new_pixel, Fset_window_new_pixel)
 4854 	(Fset_window_new_total, Fset_window_new_normal)
 4855 	(Fwindow_resize_apply): Fix doc-strings (see Bug#18112).
 4856 	See also:
 4857 	https://lists.gnu.org/r/bug-gnu-emacs/2014-08/msg00287.html
 4858 
 4859 2014-08-11  Eli Zaretskii  <eliz@gnu.org>
 4860 
 4861 	* fontset.c (Finternal_char_font): Recompute basic faces if the
 4862 	frame's face cache was cleared.  (Bug#18162)
 4863 
 4864 2014-08-11  Dmitry Antipov  <dmantipov@yandex.ru>
 4865 
 4866 	Fix bug with uninitialized undo list of an indirect buffer (Bug#18180).
 4867 	* buffer.c (Fmake_indirect_buffer): Initialize undo list with the
 4868 	base buffer's undo list.
 4869 
 4870 2014-08-10  Reuben Thomas  <rrt@sc3d.org>
 4871 
 4872 	Fix a couple of recent inadvertent breaks of the MSDOS port.
 4873 	* msdos.c: include required menu.h
 4874 	* term.c: set correct menu_show_hook on MSDOS.
 4875 
 4876 2014-08-10  Martin Rudalics  <rudalics@gmx.at>
 4877 
 4878 	Fix handling of menu bar line on TTY frames (Bug#18136)
 4879 	(Bug#18196).
 4880 	* dispnew.c (handle_window_change_signal):
 4881 	* keyboard.c (Fsuspend_emacs): Call change_frame_size with
 4882 	frame's menu bar lines subtracted from height.
 4883 	* frame.c (frame_inhibit_resize): Inhibit resizing of TTY
 4884 	frames.
 4885 	(adjust_frame_size): Count in menu bar when setting FrameRows.
 4886 	(make_terminal_frame): When setting up the frame's lines and
 4887 	text height don't count in the menu bar.
 4888 	(Fmake_terminal_frame): Call adjust_frame_size with menu bar
 4889 	lines subtracted from height.
 4890 	(do_switch_frame): Set tty's FrameRows to number of total lines
 4891 	of frame.
 4892 	(Fframe_pixel_height, Fframe_pixel_width): If no window system
 4893 	is used, return total number of lines and columns.
 4894 	* menu.c (emulate_dialog_with_menu): Use FRAME_TOTAL_LINES instead
 4895 	of FRAME_LINES.
 4896 	* term.c (OUTPUT, tty_set_terminal_modes)
 4897 	(tty_set_terminal_window, tty_set_scroll_region)
 4898 	(tty_clear_to_end, tty_write_glyphs, tty_write_glyphs_with_face)
 4899 	(tty_ins_del_lines, tty_menu_display, tty_menu_activate):
 4900 	Use FRAME_TOTAL_LINES instead of FRAME_LINES.
 4901 	(Fresume_tty): Use FRAME_TOTAL_LINES instead of FRAME_LINES.
 4902 	Call change_frame_size with frame's menu bar lines subtracted
 4903 	from height.
 4904 	* w32console.c (w32con_clear_to_end, w32con_clear_frame)
 4905 	(w32con_ins_del_lines): Use FRAME_TOTAL_LINES instead of
 4906 	FRAME_LINES.
 4907 
 4908 2014-08-09  Reuben Thomas  <rrt@sc3d.org>
 4909 
 4910 	* alloc.c (Fmemory_info): Remove a stray brace.
 4911 
 4912 	* process.c: Fix a comment typo.
 4913 
 4914 	* msdos.c, dosfns.c (init_dosfns): Remove support for DJGPP < 2.02.
 4915 
 4916 2014-08-09  Jan Djärv  <jan.h.d@swipnet.se>
 4917 
 4918 	* widgetprv.h (EmacsFramePart): Remove font.
 4919 
 4920 	* widget.c (DEFAULT_FACE_FONT, EmacsFrameSetValues, setup_frame_gcs)
 4921 	(resources, setup_frame_cursor_bits): Remove unused variables and
 4922 	functions, esp. wrt. font (Bug#18227).
 4923 
 4924 2014-08-07  Paul Eggert  <eggert@cs.ucla.edu>
 4925 
 4926 	* xterm.c (x_delete_terminal): Plug file descriptor leak (Bug#17691).
 4927 
 4928 2014-08-07  Reuben Thomas  <rrt@sc3d.org>
 4929 
 4930 	Refer to MS-DOS using the same name everywhere.
 4931 
 4932 	* editfns.c: Fix a couple of ``MS-DOG''s missed in the previous
 4933 	commit.
 4934 	* xfaces.c: ditto.
 4935 
 4936 2014-08-05  Martin Rudalics  <rudalics@gmx.at>
 4937 
 4938 	* w32term.c (w32_redeem_scroll_bar):
 4939 	* xterm.c (XTredeem_scroll_bar): Revert part of last change by
 4940 	not redeeming scroll bars that have been turned off.
 4941 
 4942 2014-08-05 Dmitry Antipov  <dmantipov@yandex.ru>
 4943 
 4944 	* keyboard.c (safe_run_hooks): Follow the convenient style to bind
 4945 	inhibit-quit to t and pass 2 args to safe_run_hook_funcall.  See
 4946 	<https://lists.gnu.org/r/emacs-devel/2014-08/msg00077.html>.
 4947 	(safe_run_hook_funcall): Adjust accordingly.
 4948 
 4949 2014-08-04  Martin Rudalics  <rudalics@gmx.at>
 4950 
 4951 	* frame.h (FRAME_HAS_HORIZONTAL_SCROLL_BARS):
 4952 	Condition correctly according to toolkit used.
 4953 	* frame.c (make_initial_frame, make_terminal_frame)
 4954 	(x_set_horizontal_scroll_bars, x_set_scroll_bar_height)
 4955 	(Vdefault_frame_horizontal_scroll_bars): Correctly condition
 4956 	assignments according to presence of toolkit scrollbars.
 4957 	* window.h (WINDOW_HAS_HORIZONTAL_SCROLL_BAR):
 4958 	Condition correctly according to toolkit used.
 4959 	* window.c (set_window_scroll_bars): Set horizontal scroll bar
 4960 	only if toolkit supports it.
 4961 	* w32term.c (w32_redeem_scroll_bar): Always redeem scroll bar if
 4962 	present.
 4963 	* xterm.c (x_scroll_bar_create): Initialize horizontal slot for
 4964 	non-toolkit builds.
 4965 	(XTredeem_scroll_bar): Always redeem scroll bar if present.
 4966 
 4967 2014-08-04 Dmitry Antipov  <dmantipov@yandex.ru>
 4968 
 4969 	* keyboard.c (safe_run_hook_funcall): Avoid consing around
 4970 	Vinhibit_quit and prefer internal_condition_case_n to pass args.
 4971 	(safe_run_hooks_error, safe_run_hooks_1): Adjust accordingly.
 4972 	(safe_run_hooks): Remove comment which is not relevant any more.
 4973 
 4974 2014-08-03  Paul Eggert  <eggert@cs.ucla.edu>
 4975 
 4976 	Don't let big frames overrun the stack.
 4977 	* dispnew.c (mirrored_line_dance, mirror_line_dance, scrolling):
 4978 	Use SAFE_NALLOCA, not alloca.
 4979 
 4980 	Fix bug with clang + directory_files_internal + GC (Bug#16986).
 4981 	* dired.c (directory_files_internal): Use a volatile variable
 4982 	to prevent the compiler from optimizing away all copies of a local.
 4983 	I wonder how many other GC-related bugs like this lurk elsewhere?
 4984 
 4985 	Avoid 100% CPU utilization on ssh session exit (Bug#17691).
 4986 	* xterm.h (struct x_display_info): New member 'connection'.
 4987 	* xterm.c (x_term_init, x_delete_terminal): Set and use it,
 4988 	so that x_delete_terminal has a file descriptor to pass to
 4989 	delete_keyboard_wait_descriptor.
 4990 
 4991 	Don't mishandle year-9999 dates (Bug#18176).
 4992 	* editfns.c (decode_time_components): Store an invalid timespec
 4993 	on overflow, instead of returning false, so that the caller can
 4994 	distinguish overflow from other errors.
 4995 	(lisp_time_argument, lisp_seconds_argument): If the time is out
 4996 	of range, signal a time overflow instead of an invalid time spec.
 4997 	* keyboard.c (decode_timer): Treat time overflow like other
 4998 	timespec errors.
 4999 
 5000 	Avoid undefined behavior with signed left shift.
 5001 	Caught by 'gcc -fsanitize=undefined'.
 5002 	* dispextern.h, scroll.c (scrolling_max_lines_saved, scrolling_1):
 5003 	* dispnew.c (line_hash_code, scrolling):
 5004 	* scroll.c (calculate_scrolling, calculate_direct_scrolling):
 5005 	Use 'unsigned', not 'int', for line hashes.
 5006 	(scrolling_max_lines_saved): Avoid mystery constants for hash sizes.
 5007 
 5008 2014-08-02  Paul Eggert  <eggert@cs.ucla.edu>
 5009 
 5010 	Make compare-strings more compatible with old behavior (Bug#17903).
 5011 	* fns.c (Fcompare_strings): Silently bring too-large ends into range.
 5012 
 5013 2014-08-02  Jan Djärv  <jan.h.d@swipnet.se>
 5014 
 5015 	* gtkutil.c (create_dialog): Force min spacing 10 between buttons.
 5016 	Don't add label between left and right buttons (Bug#18129).
 5017 
 5018 2014-08-01  Paul Eggert  <eggert@cs.ucla.edu>
 5019 
 5020 	Make functions static that no longer need to be extern.
 5021 	* frame.c, frame.h (set_menu_bar_lines):
 5022 	* keyboard.c (Qleftmost, Qrightmost):
 5023 	* xfns.c, frame.h, menu.h (x_set_menu_bar_lines, x_set_tool_bar_lines)
 5024 	(x_set_internal_border_width):
 5025 	Now static.
 5026 
 5027 2014-08-01  Eli Zaretskii  <eliz@gnu.org>
 5028 
 5029 	Fix display of R2L lines when the last character fits only partially.
 5030 	See https://lists.gnu.org/r/emacs-devel/2014-07/msg00476.html
 5031 	for the details.
 5032 	* xdisp.c (extend_face_to_end_of_line): If the last glyph of an
 5033 	R2L row is visible only partially, give the row a negative x
 5034 	offset.
 5035 	(display_line): Fix the calculation of the glyph whose pixel width
 5036 	is used to decide whether the last produced glyph fits on the
 5037 	line.  When the last glyph fits only partially, give the row a
 5038 	negative x offset.
 5039 
 5040 	Fix hscroll of R2L lines that begin with a TAB or another wide glyph.
 5041 	* xdisp.c (append_stretch_glyph): In a R2L glyph row, decrease the
 5042 	pixel width of the first glyph that is hscrolled from display.
 5043 	(display_line): In R2L glyph rows, don't give a negative offset to
 5044 	row->x when the first glyph begins before first_visible_x.
 5045 
 5046 	* xdisp.c (display_line): If called with iterator set up to write
 5047 	to a marginal area, delay the call to handle_line_prefix until we
 5048 	switch back to the text area.  (Bug#18035)
 5049 
 5050 	* .gdbinit (xwindow): The members total_cols, total_lines,
 5051 	left_col, and top_line are C integers (and has been so for the
 5052 	last 1.5 years).
 5053 
 5054 2014-08-01  Andreas Schwab  <schwab@suse.de>
 5055 
 5056 	* macros.c (Fstart_kbd_macro): Initialize kbd_macro_ptr and
 5057 	kbd_macro_end together with kbd_macro_buffer.  (Bug#18140)
 5058 
 5059 2014-08-01  Dmitry Antipov  <dmantipov@yandex.ru>
 5060 
 5061 	* atimer.c (toplevel) [HAVE_TIMERFD]: Include errno.h.
 5062 	(timerfd_callback): Ignore weird events with no data.  Add tight
 5063 	assertions and comments.
 5064 	(init_atimer) [HAVE_TIMERFD]: Add environment variable to optionally
 5065 	disable timerfd-based timer.  Use TFD_NONBLOCK for timer descriptor.
 5066 
 5067 2014-08-01  Paul Eggert  <eggert@cs.ucla.edu>
 5068 
 5069 	* frame.c (x_set_frame_parameters): Fix typo in previous patch.
 5070 	I had confused && with ||.
 5071 
 5072 2014-07-31  Paul Eggert  <eggert@cs.ucla.edu>
 5073 
 5074 	Simplify timerfd configuration and fix some minor glitches.
 5075 	* atimer.c (TIMERFD_CREATE_FLAGS): Remove; we now assume TFD_CLOEXEC.
 5076 	(alarm_timer, alarm_timer_ok, set_alarm, init_atimer):
 5077 	Fall back on timer_create if timerfd_create fails at runtime.
 5078 	(resolution) [HAVE_CLOCK_GETRES]: Remove; we now rely on the
 5079 	kernel primitives to do resolution.  All uses removed.
 5080 	(timerfd) [!HAVE_TIMERFD]: Define to be -1, for convenience.
 5081 	(turn_on_atimers): Clear timer_create-based timers too,
 5082 	for consistency.
 5083 
 5084 	* frame.c (x_set_frame_parameters): Don't use uninitialized locals.
 5085 	Without this change, the code can access the local variable 'width'
 5086 	even when it has not been initialized, and likewise for 'height';
 5087 	in either case this leads to undefined behavior.
 5088 
 5089 2014-07-30  Dmitry Antipov  <dmantipov@yandex.ru>
 5090 
 5091 	* xrdb.c (x_load_resources) [USE_MOTIF]: Although not strictly
 5092 	necessary, put horizontal scroll bar resources as well.  See
 5093 	<https://lists.gnu.org/r/emacs-devel/2014-07/msg00430.html>.
 5094 	* xterm.c (x_sync_with_move): Really wait 0.5s, not 0.0005s.
 5095 
 5096 2014-07-29  Dmitry Antipov  <dmantipov@yandex.ru>
 5097 
 5098 	* xrdb.c (x_load_resources) [!USE_MOTIF]: Put horizontal scroll bar
 5099 	background value to match the resource of its vertical counterpart.
 5100 
 5101 2014-07-29  Martin Rudalics  <rudalics@gmx.at>
 5102 
 5103 	* frame.c (adjust_frame_size): Use FRAME_WINDOW_P instead of
 5104 	FRAME_X_WINDOW when calling x_set_window_size (Bug#18138).
 5105 
 5106 2014-07-28  Martin Rudalics  <rudalics@gmx.at>
 5107 
 5108 	* frame.c (x_set_frame_parameters): Revert part of 2014-07-24
 5109 	change that added the top margin height to the requested height
 5110 	and revert (undocumented) part of 2014-07-28 change that changed
 5111 	the logic of whether a size change occurred.
 5112 
 5113 2014-07-28  Eli Zaretskii  <eliz@gnu.org>
 5114 
 5115 	* .gdbinit (xwindow): The members total_cols, total_lines,
 5116 	left_col, and top_line are C integers (and has been so for the
 5117 	last 1.5 years).
 5118 
 5119 	* .gdbinit (xsubchartable): The members 'depth' and 'min_char' are
 5120 	now C integers.
 5121 
 5122 2014-07-28  Dmitry Antipov  <dmantipov@yandex.ru>
 5123 
 5124 	On GNU/Linux, use timerfd for asynchronous timers.
 5125 	* atimer.c (toplevel) [HAVE_TIMERFD]: Include sys/timerfd.h.
 5126 	(toplevel): Rename alarm_timer_ok to special_timer_available.
 5127 	[HAVE_TIMERFD]: Declare timerfd.
 5128 	[HAVE_CLOCK_GETRES]: Declare resolution.
 5129 	(start_atimer) [HAVE_CLOCK_GETRES]: Round up timestamp to
 5130 	system timer resolution.
 5131 	(set_alarm) [HAVE_TIMERFD]: Use timerfd_settime.
 5132 	(timerfd_callback) [HAVE_TIMERFD]: New function.
 5133 	(atimer_result, debug_timer_callback, Fdebug_timer_check)
 5134 	[ENABLE_CHECKING]: New function for the sake of automated tests.
 5135 	(init_atimer) [HAVE_TIMERFD]: Setup timerfd.
 5136 	[HAVE_CLOCK_GETRES]: Likewise for system timer resolution.
 5137 	[ENABLE_CHECKING]: Defsubr test function.
 5138 	* atimer.h (timerfd_callback) [HAVE_TIMERFD]: Add prototype.
 5139 	* lisp.h (add_timer_wait_descriptor) [HAVE_TIMERFD]: Likewise.
 5140 	* process.c (add_timer_wait_descriptor) [HAVE_TIMERFD]: New function.
 5141 
 5142 	Fix --without-x build and pacify --enable-gcc-warnings.
 5143 	Problems reported in Bug#18122 and Bug#18124.
 5144 	* frame.c (get_frame_param): Define even if !HAVE_WINDOW_SYSTEM.
 5145 	(frame_windows_min_size): Now static.
 5146 	* frame.h (FRAME_HAS_HORIZONTAL_SCROLL_BARS) [!HAVE_WINDOW_SYSTEM]:
 5147 	Define as no-op.
 5148 	(adjust_frame_size): Always declare prototype.
 5149 
 5150 	Fix Gnus-related issues reported by David Kastrup <dak@gnu.org> in
 5151 	<https://lists.gnu.org/r/emacs-devel/2014-07/msg00370.html>.
 5152 	* atimer.c (timerfd_callback): Always read expiration data.
 5153 	Add comment.
 5154 	(turn_on_atimers) [HAVE_TIMERFD]: Disarm timerfd timer.
 5155 	* process.c (add_timer_wait_descriptor): Add timer descriptor
 5156 	to input_wait_mask and non_process_wait_mask as well.
 5157 
 5158 2014-07-28  Paul Eggert  <eggert@cs.ucla.edu>
 5159 
 5160 	* frame.c (x_set_frame_parameters): Don't use uninitialized locals.
 5161 
 5162 2014-07-27  Jan Djärv  <jan.h.d@swipnet.se>
 5163 
 5164 	* nsterm.m (applicationDidFinishLaunching antialiasThresholdDidChange):
 5165 	Reinstate code removed by the prevoius commit to this file.
 5166 
 5167 2014-07-27  Martin Rudalics  <rudalics@gmx.at>
 5168 
 5169 	* buffer.h (struct buffer): New fields scroll_bar_height and
 5170 	horizontal_scroll_bar_type.
 5171 	* buffer.c (bset_scroll_bar_height)
 5172 	(bset_horizontal_scroll_bar_type): New functions.
 5173 	(Fbuffer_swap_text): Handle old_pointm field.
 5174 	(init_buffer_once): Set defaults for scroll_bar_height and
 5175 	horizontal_scroll_bar_type.
 5176 	(syms_of_buffer): New variables scroll_bar_height and
 5177 	horizontal_scroll_bar_type.
 5178 	* dispextern.h (window_part): Rename ON_SCROLL_BAR to
 5179 	ON_VERTICAL_SCROLL_BAR.  Add ON_HORIZONTAL_SCROLL_BAR.
 5180 	(set_vertical_scroll_bar): Remove prototype.
 5181 	(x_change_tool_bar_height): Add prototype.
 5182 	* dispnew.c (adjust_frame_glyphs_for_frame_redisplay)
 5183 	(window_to_frame_vpos, update_frame_1, scrolling, init_display):
 5184 	Use FRAME_TOTAL_COLS and FRAME_TOTAL_LINES instead of FRAME_COLS
 5185 	and FRAME_LINES.
 5186 	(adjust_frame_glyphs_for_window_redisplay): Rearrange lines.
 5187 	(update_window): Start mode_line_row->y after horizontal scroll
 5188 	bar.
 5189 	(change_frame_size_1): Call adjust_frame_size.
 5190 	(init_display): When changing the size of a tty frame do not
 5191 	pass height of menu bar.
 5192 	(Qframe_windows_min_size): New symbol.
 5193 	* frame.h (struct frame): List tool bar fields after menu bar
 5194 	fields.  Add official, total_lines, horizontal_scroll_bars,
 5195 	config_scroll_bar_height and config_scroll_bar_lines fields.
 5196 	(FRAME_HAS_HORIZONTAL_SCROLL_BARS)
 5197 	(FRAME_CONFIG_SCROLL_BAR_HEIGHT, FRAME_CONFIG_SCROLL_BAR_LINES)
 5198 	(FRAME_SCROLL_BAR_AREA_HEIGHT, FRAME_SCROLL_BAR_COLS)
 5199 	(FRAME_SCROLL_BAR_LINES, FRAME_TOTAL_LINES, SET_FRAME_LINES)
 5200 	(FRAME_WINDOWS_HEIGHT): New macros.
 5201 	(SET_FRAME_HEIGHT, FRAME_TEXT_LINES_TO_PIXEL_HEIGHT)
 5202 	(FRAME_PIXEL_Y_TO_LINE, FRAME_PIXEL_HEIGHT_TO_TEXT_LINES)
 5203 	(FRAME_TEXT_TO_PIXEL_HEIGHT): Separately count top margin and
 5204 	horizontal scroll bar.
 5205 	(frame_inhibit_resize, adjust_frame_size)
 5206 	(frame_windows_min_size): Add declarations.
 5207 	(Qscroll_bar_height, Qhorizontal_scroll_bars)
 5208 	(x_set_scroll_bar_default_height, x_set_left_fringe)
 5209 	(x_set_right_fringe, x_set_vertical_scroll_bars)
 5210 	(x_set_horizontal_scroll_bars, x_set_scroll_bar_width)
 5211 	(x_set_scroll_bar_height): Add external declarations.
 5212 	* frame.c: (frame_inhibit_resize, frame_windows_min_size)
 5213 	(adjust_frame_size): New functions.
 5214 	(make_frame): Initial horizontal_scroll_bars field.
 5215 	Use SET_FRAME_LINES.  Don't allow horizontal scroll bar in
 5216 	minibuffer window.
 5217 	(make_initial_frame, make_terminal_frame): No horizontal scroll
 5218 	bar in initial and terminal frames.  Use adjust_frame_size.
 5219 	(Fframe_total_cols): Fix doc-string.
 5220 	(Fframe_total_lines, Fscroll_bar_height): New Lisp functions.
 5221 	(Fset_frame_height, Fset_frame_width, Fset_frame_size):
 5222 	Rewrite using adjust_frame_size.
 5223 	(Qscroll_bar_height, Qhorizontal_scroll_bars)
 5224 	(Qframe_windows_min_size): New symbols.
 5225 	(x_set_frame_parameters): Remove call of check_frame_size.
 5226 	(x_report_frame_params): Return scroll_bar_height value.
 5227 	(x_set_left_fringe, x_set_right_fringe): New functions.
 5228 	(adjust_frame_height, x_set_internal_border_width)
 5229 	(x_set_fringe_width): Remove.
 5230 	(x_set_internal_border_width, x_set_vertical_scroll_bars)
 5231 	(x_set_scroll_bar_width, x_set_right_divider_width)
 5232 	(x_set_bottom_divider_width): Rewrite using adjust_frame_size.
 5233 	(x_set_horizontal_scroll_bars, x_set_scroll_bar_height):
 5234 	New functions.
 5235 	(x_figure_window_size): Rewrite to make frame display the
 5236 	expected number of lines.
 5237 	(Vdefault_frame_scroll_bars): Rewrite doc-string.
 5238 	(Vdefault_frame_horizontal_scroll_bars)
 5239 	(Vframe_initial_frame_tool_bar_height)
 5240 	(frame_inhibit_implied_resize): New variables.
 5241 	* fringe.c (compute_fringe_widths): Remove.
 5242 	* gtkutil.h (YG_SB_MIN, YG_SB_MAX, YG_SB_RANGE): Define.
 5243 	(xg_create_horizontal_scroll_bar)
 5244 	(xg_update_horizontal_scrollbar_pos)
 5245 	(xg_set_toolkit_horizontal_scroll_bar_thumb)
 5246 	(xg_get_default_scrollbar_height)
 5247 	(xg_clear_under_internal_border): Extern.
 5248 	* gtkutil.c (xg_frame_resized): Call do_pending_window_change.
 5249 	(xg_frame_set_char_size): Use adjust_frame_size.
 5250 	(style_changed_cb): Call update_theme_scrollbar_height and
 5251 	x_set_scroll_bar_default_height.
 5252 	(x_wm_set_size_hint): Don't call check_frame_size.
 5253 	(update_theme_scrollbar_height)
 5254 	(xg_get_default_scrollbar_height)
 5255 	(xg_create_horizontal_scroll_bar)
 5256 	(xg_update_horizontal_scrollbar_pos)
 5257 	(xg_set_toolkit_horizontal_scroll_bar_thumb): New functions.
 5258 	(xg_create_scroll_bar): Set horizontal slot of bar.
 5259 	(xg_initialize): Call update_theme_scrollbar_height.
 5260 	(xg_clear_under_internal_border): No more static.
 5261 	* insdel.c (adjust_suspend_auto_hscroll): New function.
 5262 	(adjust_markers_for_delete, adjust_markers_for_insert)
 5263 	(adjust_markers_for_replace): Call adjust_suspend_auto_hscroll.
 5264 	* keyboard.c (readable_events, discard_mouse_events)
 5265 	(make_lispy_event): Handle horizontal scroll bar click events.
 5266 	(Fsuspend_emacs): When changing the size of a tty frame do not
 5267 	pass height of menu bar.
 5268 	(Qbefore_handle, Qhorizontal_handle, Qafter_handle, Qleft)
 5269 	(Qright, Qleftmost, Qrightmost): New symbols.
 5270 	* menu.c (Fx_popup_dialog): Use FRAME_TOTAL_LINES instead of
 5271 	FRAME_LINES.
 5272 	* minibuf.c (read_minibuf): Initialize suspend_auto_hscroll.
 5273 	* nsfns.m (x_set_internal_border_width): New function.
 5274 	* nsterm.m (ns_draw_fringe_bitmap, ns_set_vertical_scroll_bar):
 5275 	Remove extended fringe code.
 5276 	(x_set_window_size, x_new_font): Don't call
 5277 	compute_fringe_widths.
 5278 	* term.c (Fresume_tty): When changing the size of a tty frame do
 5279 	not pass height of menu bar.
 5280 	(clear_tty_hooks, set_tty_hooks):
 5281 	Clear horizontal_scroll_bar_hook.
 5282 	(init_tty): Frame has no horizontal scroll bars.
 5283 	* termhooks.h (enum scroll_bar_part): Add scroll_bar_move_ratio,
 5284 	scroll_bar_before_handle, scroll_bar_horizontal_handle,
 5285 	scroll_bar_after_handle, scroll_bar_left_arrow,
 5286 	scroll_bar_right_arrow, scroll_bar_to_leftmost and
 5287 	scroll_bar_to_rightmost entries.
 5288 	(enum event_kind): Add HORIZONTAL_SCROLL_BAR_CLICK_EVENT
 5289 	(struct terminal): Add set_horizontal_scroll_bar_hook.
 5290 	* w32console.c (initialize_w32_display):
 5291 	Clear horizontal_scroll_bar_hook.
 5292 	* w32fns.c (x_set_mouse_color): Use FRAME_W32_DISPLAY instead of
 5293 	FRAME_X_DISPLAY.
 5294 	(x_clear_under_internal_border, x_set_internal_border_width):
 5295 	New functions.
 5296 	(x_set_menu_bar_lines): Rewrite using frame_inhibit_resize.
 5297 	Set windows_or_buffers_changed when adding the menu bar.
 5298 	(x_set_tool_bar_lines): Rewrite using adjust_frame_size.
 5299 	(x_change_tool_bar_height, x_set_scroll_bar_default_height)
 5300 	(w32_createhscrollbar): New functions.
 5301 	(w32_createscrollbar): Rename to w32_createvscrollbar.
 5302 	(w32_createwindow): Init WND_HSCROLLBAR_INDEX.
 5303 	(w32_name_of_message): Replace WM_EMACS_CREATESCROLLBAR by
 5304 	WM_EMACS_CREATEVSCROLLBAR and WM_EMACS_CREATEHSCROLLBAR.
 5305 	Add WM_EMACS_SHOWCURSOR.
 5306 	(w32_wnd_proc): Handle WM_HSCROLL case.  In WM_WINDOWPOSCHANGING
 5307 	case do not artificially impose WM size hints.
 5308 	Handle WM_EMACS_SHOWCURSOR case.  Replace WM_EMACS_CREATESCROLLBAR case
 5309 	by WM_EMACS_CREATEVSCROLLBAR and WM_EMACS_CREATEHSCROLLBAR
 5310 	cases.
 5311 	(my_create_tip_window): Replace WND_SCROLLBAR_INDEX by
 5312 	WND_VSCROLLBAR_INDEX and WND_HSCROLLBAR_INDEX.
 5313 	(unwind_create_frame_1): Remove.
 5314 	(Fx_create_frame): Make both scrollbars the system standard
 5315 	width and height.  Use official field of frame structure to
 5316 	inhibit running window-configuration-change-hook.
 5317 	(x_create_tip_frame): Call SET_FRAME_LINES and change_frame_size
 5318 	pixelwise.  Handle frame's official field.
 5319 	(w32_frame_parm_handlers): Remove x_set_fringe_width
 5320 	entries. Add x_set_scroll_bar_height,
 5321 	x_set_horizontal_scroll_bars, x_set_left_fringe and
 5322 	x_set_right_fringe.
 5323 	* w32inevt.c (resize_event, maybe_generate_resize_event): Do not
 5324 	pass height of menu bar to change_frame_size.
 5325 	* w32menu.c (set_frame_menubar): Rewrite using
 5326 	frame_inhibit_resize.
 5327 	* w32term.h (struct w32_display_info):
 5328 	Add horizontal_scroll_bar_cursor and cursor_display_counter.
 5329 	(struct scroll_bar): Add horizontal.
 5330 	(HORIZONTAL_SCROLL_BAR_INSIDE_HEIGHT)
 5331 	(HORIZONTAL_SCROLL_BAR_LEFT_RANGE)
 5332 	(HORIZONTAL_SCROLL_BAR_INSIDE_WIDTH)
 5333 	(HORIZONTAL_SCROLL_BAR_LEFT_BORDER)
 5334 	(HORIZONTAL_SCROLL_BAR_RIGHT_BORDER)
 5335 	(HORIZONTAL_SCROLL_BAR_TOP_BORDER)
 5336 	(HORIZONTAL_SCROLL_BAR_BOTTOM_BORDER)
 5337 	(HORIZONTAL_SCROLL_BAR_MIN_HANDLE): New macros.
 5338 	(WM_EMACS_CREATEVSCROLLBAR, WM_EMACS_CREATEHSCROLLBAR):
 5339 	Define instead of WM_EMACS_CREATESCROLLBAR.
 5340 	(WND_VSCROLLBAR_INDEX, WND_HSCROLLBAR_INDEX): Define instead of
 5341 	WND_SCROLLBAR_INDEX.
 5342 	* w32term.c (horizontal_scroll_bar_min_handle)
 5343 	(horizontal_scroll_bar_left_border)
 5344 	(horizontal_scroll_bar_right_border): New integers.
 5345 	(x_set_frame_alpha): Replace x_highlight_frame by
 5346 	w32_focus_frame.
 5347 	(x_window_to_scroll_bar): New argument "type".  Update callers
 5348 	accordingly.
 5349 	(w32_set_horizontal_scroll_bar_thumb)
 5350 	(x_horizontal_scroll_bar_report_motion)
 5351 	(w32_set_horizontal_scroll_bar)
 5352 	(w32_horizontal_scroll_bar_handle_click)
 5353 	(x_horizontal_scroll_bar_report_motion): New functions.
 5354 	(w32_mouse_position): Discriminate horizontal and vertical
 5355 	scrollbar cases.
 5356 	(my_create_scrollbar): Replace with two new functions
 5357 	my_create_vscrollbar and my_create_hscrollbar.
 5358 	(x_scroll_bar_create): New argument "horizontal".
 5359 	Update callers accordingly.
 5360 	(x_scroll_bar_remove, w32_condemn_scroll_bars)
 5361 	(w32_redeem_scroll_bar, x_scroll_bar_clear): Handle horizontal
 5362 	scroll bar case.
 5363 	(w32_read_socket): Handle WM_HSCROLL cae.
 5364 	(x_new_font): Don't recompute fringe widths.
 5365 	Use frame_inhibit_resize.  Calculate new menu bar height iff we
 5366 	build without toolkit.  Always clear under internal border.
 5367 	(x_set_window_size): Don't check frame size or recompute
 5368 	fringes.  Reset fullscreen status before applying sizes.
 5369 	Always resize as requested by pixelwise argument.  Call
 5370 	do_pending_window_change.
 5371 	(x_wm_set_size_hint): Add call for FRAME_SCROLL_BAR_AREA_HEIGHT.
 5372 	(w32_initialize_display_info): Initialize dpyinfo's
 5373 	horizontal_scroll_bar_cursor entry.
 5374 	(w32_create_terminal): Add set_horizontal_scroll_bar_hook.
 5375 	(w32_initialize): Init horizontal_scroll_bar_min_handle and
 5376 	horizontal_scroll_bar_left_border.
 5377 	(w32fullscreen_hook): Intermittently resize window to normal
 5378 	when switching from fullscreen to maximized state.
 5379 	(run_window_configuration_change_hook): Don't run it if frame is
 5380 	not official yet.
 5381 	(unwind_change_frame): Remove.
 5382 	(Fset_window_configuration): Rewrite using frame's official field.
 5383 	* widget.c (set_frame_size): Don't call compute_fringe_widths.
 5384 	(EmacsFrameSetCharSize): Obey frame_inhibit_resize.
 5385 	* window.h (struct window): New fields old_pointm,
 5386 	horizontal_scroll_bar, horizontal_scroll_bar_type, hscroll_whole,
 5387 	scroll_bar_height and suspend_auto_hscroll.
 5388 	(wset_horizontal_scroll_bar, wset_horizontal_scroll_bar_type):
 5389 	New functions.
 5390 	(sanitize_window_sizes): Extern.
 5391 	(MINI_NON_ONLY_WINDOW_P, MINI_ONLY_WINDOW_P, WINDOW_PSEUDO_P)
 5392 	(WINDOW_TOPMOST_P, WINDOW_HAS_HORIZONTAL_SCROLL_BAR)
 5393 	(WINDOW_CONFIG_SCROLL_BAR_HEIGHT)
 5394 	(WINDOW_CONFIG_SCROLL_BAR_LINES)
 5395 	(WINDOW_SCROLL_BAR_LINES, WINDOW_SCROLL_BAR_AREA_HEIGHT):
 5396 	New macros.
 5397 	(WINDOW_LEFT_FRINGE_COLS, WINDOW_RIGHT_FRINGE_COLS)
 5398 	(WINDOW_FRINGE_COLS, WINDOW_FRINGE_EXTENDED_P): Remove macros.
 5399 	(WINDOW_VERTICAL_SCROLL_BAR_TYPE)
 5400 	(WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT)
 5401 	(WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT)
 5402 	(WINDOW_HAS_VERTICAL_SCROLL_BAR): Minor rewrite.
 5403 	(WINDOW_BOX_HEIGHT_NO_MODE_LINE, WINDOW_BOX_TEXT_HEIGHT)
 5404 	(WINDOW_SCROLL_BAR_AREA_Y): Count in scroll bar height.
 5405 	* window.c (wset_old_pointm, Fwindow_scroll_bar_height)
 5406 	(Fwindow_old_point, sanitize_window_sizes): New functions.
 5407 	(Qwindow_sanitize_window_sizes): New symbol.
 5408 	(window_body_height): Count in horizontal scroll bar.
 5409 	(set_window_hscroll, Fscroll_left, Fscroll_right):
 5410 	Set suspend_auto_hscroll slot.
 5411 	(Fwindow_inside_edges): Count fringes pixelwise.
 5412 	(coordinates_in_window, Fcoordinates_in_window_p):
 5413 	Consider horizontal scroll bar.
 5414 	(check_frame_size, adjust_window_margins): Remove functions and
 5415 	corresponding calls.
 5416 	(set_window_buffer): Initialize old_pointm and horizontal scroll bars.
 5417 	(temp_output_buffer_show): Reset hscroll related fields.
 5418 	Initialize old_pointm.
 5419 	(make_parent_window): Initialize old_pointm.
 5420 	(make_window): Initialize old_pointm, horizontal scroll bar type,
 5421 	and scroll bar height.
 5422 	(resize_frame_windows): Don't count top margin in new sizes.
 5423 	Don't use safe sizes when shrinking a frame; let the window
 5424 	manager do the clipping.
 5425 	(Fsplit_window_internal): Inherit horizontal scroll bar type and
 5426 	height.
 5427 	(Fdelete_window_internal): Unchain old_pointm marker.
 5428 	(window_scroll_pixel_based, Fscroll_other_window):
 5429 	Adjust old_pointm.
 5430 	(Fwindow_text_width, Fwindow_text_height): New argument
 5431 	"pixelwise".
 5432 	(struct saved_window): New fields, old_pointm, hscroll_whole,
 5433 	suspend_auto_hscroll, scroll_bar_height and
 5434 	horizontal_scroll_bar_type.
 5435 	(Fset_window_configuration, save_window_save): Set new fields of
 5436 	saved_window.
 5437 	(apply_window_adjustment): Don't call adjust_window_margins.
 5438 	(set_window_margins): Don't change margins if new sizes don't
 5439 	fit into window.
 5440 	(set_window_scroll_bars): New argument "horizontal_type".
 5441 	Handle horizontal scroll bars.  Don't change scroll bars if they
 5442 	don't fit into window.
 5443 	(Fset_window_scroll_bars): New argument "horizontal_type".
 5444 	(Fwindow_scroll_bars): Return values for horizontal scroll bars.
 5445 	(compare_window_configurations): Compare horizontal scroll bar
 5446 	settings.
 5447 	* xdisp.c (window_text_bottom_y, window_box_height): Count in
 5448 	horizontal scroll bar height.
 5449 	(pixel_to_glyph_coords, init_xdisp): Use FRAME_TOTAL_LINES
 5450 	instead of FRAME_LINES.
 5451 	(remember_mouse_glyph): Case ON_SCROLL_BAR changed to
 5452 	ON_VERTICAL_SCROLL_BAR.
 5453 	(with_echo_area_buffer): Initialize old_pointm.
 5454 	(with_echo_area_buffer_unwind_data): Store old_pointm values in
 5455 	vector.
 5456 	(unwind_with_echo_area_buffer): Handle old_pointm.
 5457 	(update_tool_bar): Set do_update when the tool bar window has at
 5458 	least one line (since this is what the user sets).
 5459 	(MAX_FRAME_TOOL_BAR_HEIGHT): Remove macro.
 5460 	(redisplay_tool_bar): Return early when toolbar has zero lines.
 5461 	Call x_change_tool_bar_height.  Don't use max_tool_bar_height.
 5462 	(hscroll_window_tree): Handle suspension of auto_hscroll and
 5463 	old_pointm.
 5464 	(set_horizontal_scroll_bar): New function.
 5465 	(redisplay_window): Set ignore_mouse_drag_p when tool bar has
 5466 	more than one line.  Handle horizontal scroll bars.
 5467 	(note_mouse_highlight): Handle horizontal scrol bars.
 5468 	(expose_frame): Set dimensions of XRectangle from frame's text
 5469 	sizes.
 5470 	(Vvoid_text_area_pointer): Update doc-string.
 5471 	* xfns.c (x_set_menu_bar_lines): Use adjust_frame_size.
 5472 	(x_change_tool_bar_height, x_set_scroll_bar_default_height)
 5473 	(x_set_internal_border_width): New functions.
 5474 	(x_set_tool_bar_lines): Call x_change_tool_bar_height.
 5475 	(unwind_create_frame_1): Remove.
 5476 	(Fx_create_frame): Handle horizontal scroll bars.  Use official
 5477 	field of frame structure to inhibit running
 5478 	window-configuration-change-hook.
 5479 	(x_create_tip_frame): Call SET_FRAME_LINES and change_frame_size
 5480 	pixelwise.  Handle frame's official field.
 5481 	(x_frame_parm_handlers): Add x_set_scroll_bar_height,
 5482 	x_set_horizontal_scroll_bars, x_set_left_fringe,
 5483 	x_set_right_fringe.
 5484 	* xmenu.c (update_frame_menubar, free_frame_menubar):
 5485 	Use adjust_frame_size.
 5486 	* xterm.h (struct x_display_info):
 5487 	Add horizontal_scroll_bar_cursor and Xatom_Horizontal_Scrollbar
 5488 	slots.
 5489 	(struct scroll_bar): Add horizontal slot.
 5490 	(HORIZONTAL_SCROLL_BAR_INSIDE_HEIGHT)
 5491 	(HORIZONTAL_SCROLL_BAR_LEFT_RANGE)
 5492 	(HORIZONTAL_SCROLL_BAR_INSIDE_WIDTH): New macros.
 5493 	(HORIZONTAL_SCROLL_BAR_LEFT_BORDER)
 5494 	(HORIZONTAL_SCROLL_BAR_RIGHT_BORDER)
 5495 	(HORIZONTAL_SCROLL_BAR_TOP_BORDER)
 5496 	(HORIZONTAL_SCROLL_BAR_BOTTOM_BORDER)
 5497 	(HORIZONTAL_SCROLL_BAR_MIN_HANDLE): Define.
 5498 	(x_clear_under_internal_border): Remove.
 5499 	* xterm.c (XTmouse_position): Handle horizontal scroll bars.
 5500 	(x_window_to_scroll_bar): New argument TYPE.  Update callers.
 5501 	(x_send_scroll_bar_event, x_scroll_bar_create): New arguments
 5502 	HORIZONTAL.  Update callers.
 5503 	(horizontal_action_hook_id): New action hook id.
 5504 	(x_horizontal_scroll_bar_to_input_event)
 5505 	(x_create_horizontal_toolkit_scroll_bar)
 5506 	(xt_horizontal_action_hook)
 5507 	(x_set_toolkit_horizontal_scroll_bar_thumb)
 5508 	(XTset_horizontal_scroll_bar, x_net_wm_state)
 5509 	(x_horizontal_scroll_bar_report_motion): New functions.
 5510 	(xg_scroll_callback, x_scroll_bar_handle_click):
 5511 	Handle horizontal scroll bars.
 5512 	(SCROLL_BAR_HORIZONTAL_NAME): Define.
 5513 	(XTset_vertical_scroll_bar): Attempt to clear areas not covered
 5514 	by scroll bar.
 5515 	(XTcondemn_scroll_bars, XTredeem_scroll_bar): Rewrite.
 5516 	Handle horizontal scroll bars.
 5517 	(handle_one_xevent): Handle horizontal scroll bar events.
 5518 	Call x_net_wm_state.
 5519 	(x_set_window_size_1, x_wm_set_size_hint): Don't call
 5520 	check_frame_size.
 5521 	(x_set_window_size): Don't call check_frame_size.  Call
 5522 	do_pending_window_change.
 5523 	(x_term_init): Init horizontal_scroll_bar_cursor display info.
 5524 	(x_create_terminal): Add set_horizontal_scroll_bar_hook.
 5525 	(x_scroll_bar_set_handle): Add some checks when calling
 5526 	x_clear_area.
 5527 
 5528 2014-07-26  Paul Eggert  <eggert@cs.ucla.edu>
 5529 
 5530 	Revert previous change.
 5531 	There is certainly nothing wrong with writing code like 'lo <= i
 5532 	&& i <= hi', even if LO happens to a constant.  There isn't even
 5533 	anything wrong in general with writing 'a <= b' if A happens to
 5534 	be a constant.  At any rate stylistic changes shouldn't
 5535 	be done like this without discussion.
 5536 
 5537 2014-07-26  Andreas Schwab  <schwab@linux-m68k.org>
 5538 
 5539 	* alloc.c (xnmalloc, xnrealloc, xpalloc, make_save_value)
 5540 	(Fgarbage_collect): Reorder conditions that are written backwards.
 5541 	* data.c (cons_to_unsigned): Likewise.
 5542 	* dispnew.c (update_frame_1, sit_for): Likewise.
 5543 	* fileio.c (file_offset): Likewise.
 5544 	* filelock.c (read_lock_data, lock_file): Likewise.
 5545 	* fns.c (larger_vector, make_hash_table, Fmake_hash_table):
 5546 	Likewise.
 5547 	* font.c (font_intern_prop, font_style_symbolic): Likewise.
 5548 	* lisp.h (FIXNUM_OVERFLOW_P): Likewise.
 5549 	* lread.c (read1): Likewise.
 5550 	* minibuf.c (read_minibuf_noninteractive): Likewise.
 5551 	* nsterm.m (x_set_frame_alpha): Likewise.
 5552 	* process.c (wait_reading_process_output): Likewise.
 5553 	* region-cache.c (delete_cache_boundaries): Likewise.
 5554 	* xterm.c (x_set_frame_alpha): Likewise.
 5555 
 5556 2014-07-25  Paul Eggert  <eggert@cs.ucla.edu>
 5557 
 5558 	* dispextern.h, xdisp.c (hourglass_shown_p, hourglass_atimer):
 5559 	Now static.
 5560 
 5561 2014-07-26  Dmitry Antipov  <dmantipov@yandex.ru>
 5562 
 5563 	* atimer.c (set_alarm) [HAVE_ITIMERSPEC]: Use TIMER_ABSTIME
 5564 	because atimer expiration is absolute rather than relative.
 5565 
 5566 2014-07-25  Eli Zaretskii  <eliz@gnu.org>
 5567 
 5568 	* w32term.h (current_popup_menu, menubar_in_use):
 5569 	Move declarations from w32term.c.
 5570 
 5571 2014-07-25  Martin Rudalics  <rudalics@gmx.at>
 5572 
 5573 	* w32fns.c (menubar_in_use): No more static.
 5574 	* w32term.c (current_popup_menu, menubar_in_use): Declare.
 5575 
 5576 2014-07-25  Dmitry Antipov  <dmantipov@yandex.ru>
 5577 
 5578 	Move hourglass machinery to RIF.
 5579 	* dispextern.h (struct redisplay_interface): New members
 5580 	show_hourglass and hide_hourglass.  Indent comments.
 5581 	(show_hourglass, hide_hourglass): Remove prototypes.
 5582 	* nsterm.m (show_hourgass, hide_hourglass): Refactor to ...
 5583 	(ns_show_hourglass, ns_hide_hourglass): ... new no-ops.
 5584 	(ns_redisplay_interface): Add them.
 5585 	* w32fns.c (show_hourglass, hide_hourglass): Refactor to ...
 5586 	* w32term.c (w32_show_hourglass, w32_hide_hourglass): ... these.
 5587 	(w32_arrow_cursor): New function to hack around non-GUI frames.
 5588 	(w32_redisplay_interface): Add new functions.
 5589 	* w32term.h (w32_arror_cursor): Add prototype.
 5590 	* xdisp.c (show_hourglass): New function, refactored out from
 5591 	platform-dependent code.
 5592 	(cancel_hourglass): Now call to RIF function.
 5593 	* xfns.c (show_hourglass, hide_hourglass): Refactor to ...
 5594 	* xterm.c (x_show_hourglass, x_hide_hourglass): ... these.
 5595 	(x_redisplay_interface): Add new functions.
 5596 
 5597 2014-07-24  Dmitry Antipov  <dmantipov@yandex.ru>
 5598 
 5599 	Fix error reported by Angelo Graziosi <angelo.graziosi@alice.it> in
 5600 	<https://lists.gnu.org/r/emacs-devel/2014-07/msg00274.html>
 5601 	and complete previous change.
 5602 	* frame.c (adjust_frame_height): New function.
 5603 	(Fset_frame_height, Fset_frame_size): Use it.
 5604 	(x_set_frame_parameters): Take frame top margin into account.
 5605 
 5606 2014-07-23  Dmitry Antipov  <dmantipov@yandex.ru>
 5607 
 5608 	* frame.c (Fset_frame_height): Take frame top margin into account.
 5609 	Incorrect behavior was reported by Martin Rudalics <rudalics@gmx.at> in
 5610 	<https://lists.gnu.org/r/emacs-devel/2014-07/msg00258.html>
 5611 
 5612 2014-07-22  Dmitry Antipov  <dmantipov@yandex.ru>
 5613 
 5614 	* xterm.h (struct x_output) [USE_X_TOOLKIT || USE_GTK]: Define
 5615 	menubar_height as such.  Tweak comment.
 5616 	[USE_LUCID && USE_TOOLKIT_SCROLL_BARS]: Likewise for
 5617 	scroll_bar_top_shadow_pixel and scroll_bar_bottom_shadow_pixel.
 5618 	All related users changed.
 5619 	(FRAME_MENUBAR_HEIGHT) [!USE_X_TOOLKIT && !USE_GTK]: No-op.
 5620 	* xterm.c (handle_one_xevent):
 5621 	* gtkutil.c (xg_event_is_for_menubar):
 5622 	* xfns.c (x_window) [USE_X_TOOLKIT]:
 5623 	* xmenu.c (set_frame_menubar, free_frame_menubar):
 5624 	Prefer to use FRAME_MENUBAR_HEIGHT.
 5625 
 5626 2014-07-21  Dmitry Antipov  <dmantipov@yandex.ru>
 5627 
 5628 	* frame.c (Fframe_parameters): Always report frame height without
 5629 	menu and tool bar lines.
 5630 
 5631 2014-07-21  Jan Djärv  <jan.h.d@swipnet.se>
 5632 
 5633 	* nsterm.m (applicationDidFinishLaunching:): Call
 5634 	antialiasThresholdDidChange, register for antialias changes (Bug#17534).
 5635 	(antialiasThresholdDidChange:): New method for EmacsApp.
 5636 
 5637 	* nsterm.h (EmacsApp): Add antialiasThresholdDidChange.
 5638 
 5639 	* macfont.m (macfont_update_antialias_threshold): Remove static.
 5640 
 5641 	* macfont.h (macfont_update_antialias_threshold): Declare.
 5642 
 5643 2014-07-21  Eli Zaretskii  <eliz@gnu.org>
 5644 
 5645 	* w32select.c (setup_windows_coding_system):
 5646 	Apply CODING_ANNOTATION_MASK to the common_flags member of struct
 5647 	coding_system.  Reported by martin rudalics <rudalics@gmx.at>.
 5648 
 5649 	* w16select.c (Fw16_get_clipboard_data):
 5650 	Apply CODING_ANNOTATION_MASK to the common_flags member of struct
 5651 	coding_system.
 5652 
 5653 	* xdisp.c (init_iterator): Initialize it->stop_charpos to the
 5654 	buffer position where we are to start the iteration.
 5655 	(handle_invisible_prop): Record in it->stop_charpos the position
 5656 	where the invisible text ends.  (Bug#18035)
 5657 	(hscroll_window_tree): Don't try hscrolling windows whose cursor
 5658 	row has zero buffer position as their start position.
 5659 	Reported by martin rudalics <rudalics@gmx.at>.
 5660 
 5661 	* xdisp.c (move_it_vertically_backward, move_it_by_lines): Prevent
 5662 	infinite looping in redisplay when display lines don't have enough
 5663 	space to display even a single character.  (Bug#18036)
 5664 
 5665 2014-07-20  Dmitry Antipov  <dmantipov@yandex.ru>
 5666 
 5667 	* frame.h (struct frame) [USE_X_TOOLKIT]: New member shell_position.
 5668 	* xfns.c (x_window): Use it to allow xfree later.
 5669 	(x_encode_text): Drop 3rd arg; unused.  Tweak comment and adjust users
 5670 	where appropriate.  Use bool for booleans and remove redundant checks.
 5671 	(Fx_backspace_delete_keys_p): Use XkbFreeKeyboard; explain why.
 5672 	* xterm.c (x_free_frame_resources): Free shell_position.
 5673 
 5674 2014-07-19  K. Handa  <handa@gnu.org>
 5675 
 5676 	* xfaces.c (realize_x_face): Call font_load_for_lface with no
 5677 	mandatory font spec (Bug#17973).
 5678 
 5679 2014-07-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 5680 
 5681 	* font.c (font_score): Return the worst score if the size of
 5682 	ENTITY is wrong by more than a factor 2 (Bug#17973).
 5683 
 5684 2014-07-18  Dmitry Antipov  <dmantipov@yandex.ru>
 5685 
 5686 	* frame.c (frame_unspecified_color): New function
 5687 	refactored out from ...
 5688 	(Fframe_parameters, Fframe_parameter): ... adjusted users.
 5689 	(x_fullscreen_adjust, set_frame_param): Move Windows-specific
 5690 	function to ...
 5691 	* w32term.c (x_fullscreen_adjust, set_frame_param): ... static here.
 5692 	* frame.h (x_fullscreen_adjust) [HAVE_NTGUI]:
 5693 	* lisp.h (set_frame_param): Remove prototype.
 5694 	* xterm.c (x_display_pixel_width, x_display_pixel_height): Now ...
 5695 	* xterm.h (x_display_pixel_width, x_display_pixel_height): ...
 5696 	inlined from here.
 5697 
 5698 	Prefer 'x_display_info *' to 'Display *' in X selection code.
 5699 	This helps to avoid unneeded calls to x_display_info_for_display.
 5700 	* xterm.h (struct selection_input_event): Record 'x_display_info *'
 5701 	instead of 'Display *'.
 5702 	(SELECTION_EVENT_DPYINFO): New macro.
 5703 	(SELECTION_EVENT_DISPLAY): Now inline function to prohibit using
 5704 	it as an lvalue.  Mention this in comment.
 5705 	* xterm.c (handle_one_xevent): Use SELECTION_EVENT_DPYINFO.
 5706 	* xselect.c (x_get_window_property_as_lisp_data, x_atom_to_symbol)
 5707 	(selection_data_to_lisp_data, receive_incremental_selection):
 5708 	Convert to use 'x_display_info *'.  Adjust users where appropriate.
 5709 	(lisp_data_to_selection_data): Likewise.  Also pass 'struct
 5710 	selection data *' as last arg to not return values in args.
 5711 	(unexpect_property_change): Use common removal technique.
 5712 
 5713 2014-07-17  Dmitry Antipov  <dmantipov@yandex.ru>
 5714 
 5715 	* print.c (print_preprocess): Adjust to match changed
 5716 	sub char-table structure and avoid crash (Bug#18038).
 5717 
 5718 	* data.c (wrong_choice): Not static any more.
 5719 	* lisp.h (wrong_choice): Add prototype.
 5720 	* frame.h (struct frame) [USE_X_TOOLKIT || HAVE_NTGUI]:
 5721 	Declare namebuf as such.  Tweak comment.
 5722 	[USE_GTK]: Likewise for tool_bar_position.
 5723 	(fset_tool_bar_position) [USE_GTK]: Ditto.
 5724 	(FRAME_TOOL_BAR_POSITION): New macro.
 5725 	* frame.c (x_report_frame_params):
 5726 	* gtkutil.c (update_frame_tool_bar):
 5727 	* xfns.c (Fx_create_frame): Use it.
 5728 	(x_set_tool_bar_position): Add meaningful diagnostic messages.
 5729 
 5730 2014-07-16  Eli Zaretskii  <eliz@gnu.org>
 5731 
 5732 	* xdisp.c (decode_mode_spec): Call file-remote-p on the current
 5733 	buffer's default-directory only if it is a string.  (Bug#17986)
 5734 
 5735 2014-07-16  Dmitry Antipov  <dmantipov@yandex.ru>
 5736 
 5737 	More precise control over values of some buffer-local variables.
 5738 	* keyboard.c (Qvertical_scroll_bar):
 5739 	* frame.c (Qleft, Qright): Move to ...
 5740 	* buffer.c (Qleft, Qright, Qvertical_scroll_bar): ... here.
 5741 	* buffer.c (Qchoice, Qrange, Qoverwrite_mode, Qfraction): New symbols.
 5742 	(syms_of_buffer): DEFSYM all of the above, attach special properties.
 5743 	Use special symbols to DEFVAR_PER_BUFFER overwrite-mode,
 5744 	vertical-scroll-bar, scroll-up-aggressively
 5745 	and scroll-down-aggressively.
 5746 	* buffer.h (Qchoice, Qrange, Qleft, Qright, Qvertical_scroll_bar):
 5747 	Add declarations.
 5748 	* nsfns.m, frame.h (Qleft, Qright):
 5749 	* nsterm.m (Qleft): Remove declarations.
 5750 	* gtkutil.c (toplevel): Include buffer.h.
 5751 	* data.c (wrong_choice, wrong_range): New functions.
 5752 	(store_symval_forwarding): Handle special properties of buffer-local
 5753 	variables and use functions from the above to signal error, if any.
 5754 
 5755 	* frame.h (enum fullscreen_type) [HAVE_WINDOW_SYSTEM]: Use more natural
 5756 	values.  Add comment.
 5757 	(struct frame): Re-arrange layout to avoid extra padding and use bit
 5758 	fields for output_method, want_fullscreen and vertical_scroll_bar_type.
 5759 	(FRAME_VERTICAL_SCROLL_BAR_TYPE, FRAME_HAS_VERTICAL_SCROLL_BARS)
 5760 	(FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT)
 5761 	(FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT) [!HAVE_WINDOW_SYSTEM]:
 5762 	Define as no-ops because there are no scroll bars anyway.
 5763 	* frame.c (make_frame, make_terminal_frame, make_initial_frame):
 5764 	Adjust users.
 5765 
 5766 	* font.c (fset_font_data) [HAVE_XFT || HAVE_FREETYPE]:
 5767 	Add convenient setter.
 5768 	(font_put_frame_data, font_get_frame_data): Use it.
 5769 
 5770 2014-07-15  Daiki Ueno  <ueno@gnu.org>
 5771 
 5772 	* nsgui.h (XCHAR2B_BYTE1): Add missing parentheses around
 5773 	pointer argument, before dereferencing.
 5774 	(XCHAR2B_BYTE2): Likewise.
 5775 
 5776 2014-07-15  Dmitry Antipov  <dmantipov@yandex.ru>
 5777 
 5778 	* xmenu.c (toplevel): Use LWLIB_ID for next_menubar_widget_id.
 5779 	(pop_down_menu) [USE_X_TOOLKIT]: Accept integer arg.
 5780 	(create_and_show_popup_menu, create_and_show_dialog) [USE_X_TOOLKIT]:
 5781 	Use record_unwind_protect_int and avoid consing.
 5782 	(syms_of_xmenu) [USE_X_TOOLKIT]: Declare WIDGET_ID_TICK_START.
 5783 
 5784 	* regex.c (re_search_2): Use ssize_t to avoid integer overflow.
 5785 
 5786 2014-07-14  Paul Eggert  <eggert@cs.ucla.edu>
 5787 
 5788 	Use binary-io module, O_BINARY, and "b" flag (Bug#18006).
 5789 	* callproc.c (create_temp_file): Use mkostemp's O_BINARY flag.
 5790 	* emacs.c [MSDOS]:
 5791 	* emacs.c (main) [DOS_NT]: Don't mess with _fmode.
 5792 	(main) [MSDOS]: Use SET_BINARY instead of setmode.
 5793 	* minibuf.c: Include binary-io.h instead of fcntl.h.
 5794 	(read_minibuf_noninteractive):
 5795 	Use set_binary_mode instead of handcrafted code.
 5796 	Don't call emacs_set_tty if emacs_get_tty failed.
 5797 	* sysdep.c, systty.h (emacs_get_tty): Return int, not void.
 5798 	* sysdep.c (emacs_open, emacs_pipe): Use O_BINARY.
 5799 	* w32.c (pipe2): Adjust eassert to include O_BINARY.
 5800 
 5801 	* macros.c (Fstart_kbd_macro): Avoid need for overflow check.
 5802 	This works around a GCC compiler bug when Emacs is configured with
 5803 	--enable-gcc-warnings.
 5804 
 5805 2014-07-14  Dmitry Antipov  <dmantipov@yandex.ru>
 5806 
 5807 	* lisp.h (CHECK_VECTOR_OR_STRING): Return number of elements
 5808 	or characters in string, respectively.  Add comment.
 5809 	* fringe.c (Fdefine_fringe_bitmap):
 5810 	* fns.c (Fsubstring, substring_both): Use it.
 5811 	* keymap.c (Fdefine_key, Flookup_key):
 5812 	* macros.c (Fstart_kbd_macro): Likewise.  Avoid call to Flength.
 5813 
 5814 	* term.c (tty_menu_add_pane, tty_menu_add_selection):
 5815 	Use menu_item_width.
 5816 	(tty_menu_show): Simplify because tty_menu_create never return NULL.
 5817 
 5818 2014-07-13  Paul Eggert  <eggert@cs.ucla.edu>
 5819 
 5820 	Improve behavior of 'bzr up; cd src; make -k'.
 5821 	* Makefile.in (top_srcdir): New var.
 5822 	(ntsource, lispsource, ALL_CFLAGS, gl-stamp, emacs.res):
 5823 	Use '$(top_srcdir)' instead of '$(srcdir)/..';
 5824 	its expansion is a bit shorter.
 5825 	(../config.status): Actually build config.status instead of
 5826 	just complaining.
 5827 	(ACLOCAL_INPUTS, AUTOCONF_INPUTS):
 5828 	New macros, copied and relocated from ../Makefile.in.
 5829 	($(top_srcdir)/aclocal.m4, $(top_srcdir)/configure, config.in)
 5830 	(../config.status, Makefile): New dependencies and rules,
 5831 	copied with relocation from ../Makefile.in.  This should be more
 5832 	likely to rebuild the build machinery properly if you do a 'make'
 5833 	in the src directory.
 5834 
 5835 2014-07-12  Eli Zaretskii  <eliz@gnu.org>
 5836 
 5837 	* xdisp.c (display_line): Don't call FETCH_BYTE with argument less
 5838 	than 1.  (Bug#17962)
 5839 
 5840 	* w32fns.c (Fx_file_dialog): Mention in the doc string the
 5841 	behavior on Windows 7 and later when the function is repeatedly
 5842 	invoked with the same value of DIR.  (Bug#17950)
 5843 
 5844 	* xfns.c (Fx_file_dialog) [USE_MOTIF, USE_GTK]: Update the doc
 5845 	string to match the one in w32fns.c.
 5846 
 5847 	* minibuf.c (read_minibuf_noninteractive) [WINDOWSNT]: Switch
 5848 	stdin to binary mode only if it is connected to a terminal.
 5849 
 5850 2014-07-11  Paul Eggert  <eggert@cs.ucla.edu>
 5851 
 5852 	Coalesce extern decls.
 5853 	* minibuf.c (emacs_get_tty, emacs_set_tty, suppress_echo_on_tty):
 5854 	* sysdep.c (emacs_get_tty, emacs_set_tty):
 5855 	Move duplicate extern decls from here ...
 5856 	* systty.h: ... to here, so that there's just one copy.
 5857 
 5858 2014-07-11  Jan Djärv  <jan.h.d@swipnet.se>
 5859 
 5860 	* nsterm.m (changeFont:): Add ifdef NS_IMPL_COCOA.
 5861 
 5862 	* nsfns.m (Fns_popup_font_panel): Ditto.
 5863 
 5864 2014-07-11  Eli Zaretskii  <eliz@gnu.org>
 5865 
 5866 	* minibuf.c (read_minibuf_noninteractive): Finish reading on '\r',
 5867 	not only on '\n'.
 5868 	[WINDOWSNT]: Switch stdin to binary mode when not echoing input.
 5869 
 5870 	* sysdep.c (emacs_get_tty, emacs_set_tty, suppress_echo_on_tty)
 5871 	[DOS_NT]: Implement for WINDOWSNT.
 5872 
 5873 	* systty.h (struct emacs_tty) [DOS_NT]: The struct member is now
 5874 	unsigned.
 5875 
 5876 2014-07-11  Michael Albinus  <michael.albinus@gmx.de>
 5877 
 5878 	* sysdep.c (suppress_echo_on_tty): New function.
 5879 	* minibuf.c (read_minibuf_noninteractive): Use it.
 5880 
 5881 2014-07-11  Dmitry Antipov  <dmantipov@yandex.ru>
 5882 
 5883 	* alloc.c (Fmemory_info) [HAVE_LINUX_SYSINFO]: Return nil if
 5884 	sysinfo failed.  Adjust docstring.
 5885 
 5886 2014-07-11  Eli Zaretskii  <eliz@gnu.org>
 5887 
 5888 	Implement memory-info for MS-DOS.
 5889 	* dosfns.c (dos_memory_info): New function.
 5890 	* dosfns.h (dos_memory_info): Add prototype.
 5891 	* alloc.c (Fmemory_info) [MSDOS]: Call dos_memory_info.
 5892 	* vm-limit.c (get_lim_data) [MSDOS]: Call dos_memory_info, instead
 5893 	of doing some of its job.
 5894 
 5895 	* minibuf.c (read_minibuf_noninteractive) [WINDOWSNT]: Don't
 5896 	reference termios structure members.
 5897 
 5898 2014-07-11  Michael Albinus  <michael.albinus@gmx.de>
 5899 
 5900 	* sysdep.c (emacs_get_tty, emacs_set_tty): Make them externally visible.
 5901 
 5902 	* minibuf.c (top): Include systty.h.  Declare external
 5903 	emacs_get_tty and emacs_set_tty.
 5904 	(Vread_hide_char): New lisp variable.
 5905 	(read_minibuf_noninteractive): Hide characters with
 5906 	Vread_hide_char if it is a character.  (Bug#17839)
 5907 
 5908 2014-07-10  Eli Zaretskii  <eliz@gnu.org>
 5909 
 5910 	Implement memory-info for MS-Windows.
 5911 	* w32.c (w32_memory_info): New function.
 5912 	* w32.h (w32_memory_info): Prototype it.
 5913 	* alloc.c (Fmemory_info) [WINDOWSNT]: Call it.
 5914 
 5915 2014-07-10  Dmitry Antipov  <dmantipov@yandex.ru>
 5916 
 5917 	* coding.h (struct coding_system): Remove 'error_positions' (unused)
 5918 	and 'errors' (set but unused) fields.  Use bitfields for 'eol_seen',
 5919 	'mode', 'common_flags' and 'result' fields, adjust layout to avoid
 5920 	extra padding and shrink struct coding_system by 56 bytes (x86_64).
 5921 	* coding.c (decode_coding_utf_8, decode_coding_utf_16)
 5922 	(decode_coding_emacs_mule, decode_coding_iso_2022, decode_coding_sjis)
 5923 	(decode_coding_big5, decode_coding_charset, decode_coding)
 5924 	(encode_coding): Adjust users.
 5925 
 5926 	* alloc.c (Fmemory_info): New function.
 5927 
 5928 2014-07-09  Paul Eggert  <eggert@cs.ucla.edu>
 5929 
 5930 	* syntax.c (back_comment): Use more-natural location for label.
 5931 
 5932 	* font.c, font.h (font_unparse_fcname): Now static.
 5933 	Define only if HAVE_XFT || HAVE_FREETYPE || HAVE_NS.
 5934 
 5935 2014-07-09  Dmitry Antipov  <dmantipov@yandex.ru>
 5936 
 5937 	Next minor cleanup of font subsystem.
 5938 	* font.h (enum font_property_index): Remove FONT_ENTITY_INDEX (no
 5939 	users) and FONT_FORMAT_INDEX (set by a few font drivers but never
 5940 	really used).
 5941 	(FONT_ENTITY_NOT_LOADABLE, FONT_ENTITY_SET_NOT_LOADABLE): Remove;
 5942 	unused.
 5943 	* ftfont.h (ftfont_font_format): Remove prototype.
 5944 	* ftfont.c (ftfont_font_format): Remove; now unused.
 5945 	(ftfont_open):
 5946 	* nsfont.m (nsfont_open):
 5947 	* w32font.c (w32font_open_internal):
 5948 	* w32uniscribe.c (uniscribe_open):
 5949 	* xfont.c (xfont_open):
 5950 	* xftfont.c (xftfont_open): All users changed.
 5951 
 5952 	* coding.c (ALLOC_CONVERSION_WORK_AREA): Prefer ptrdiff_t to int and
 5953 	so avoid integer overflow if decoded gap size exceeds INT_MAX bytes.
 5954 
 5955 2014-07-09  Eli Zaretskii  <eliz@gnu.org>
 5956 
 5957 	* xdisp.c (move_it_to): Adjust calculation of line_start_x to what
 5958 	x_produce_glyphs does when it generates a stretch glyph that
 5959 	represents a TAB.  (Bug#17969)
 5960 
 5961 	* xdisp.c (pos_visible_p): If CHARPOS is at beginning of window,
 5962 	and there is a display property at that position, don't call
 5963 	move_it_to to move to a position before window start.  (Bug#17942)
 5964 	Fix condition for finding CHARPOS by the first call to move_it_to.
 5965 	(Bug#17944)
 5966 
 5967 2014-07-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 5968 
 5969 	* syntax.c (find_defun_start): Try the cache even
 5970 	if !open_paren_in_column_0_is_defun_start.
 5971 	(back_comment): If find_defun_start was pessimistic, use the
 5972 	scan_sexps_forward result to improve the cache (bug#16526).
 5973 
 5974 2014-07-09  Eli Zaretskii  <eliz@gnu.org>
 5975 
 5976 	* xdisp.c (redisplay_window): If redisplay of a window ends up
 5977 	with point in a partially visible line at end of the window, make
 5978 	sure the amended position of point actually has smaller Y
 5979 	coordinate; if not, give up and scroll the display.  (Bug#17905)
 5980 
 5981 	* window.c (window_scroll_pixel_based): When point ends up at the
 5982 	last fully visible line, don't let move_it_to stop at the left
 5983 	edge of the line and dupe us into thinking point is inside the
 5984 	scroll margin.
 5985 
 5986 	* w32.c (network_interface_info): Make sure the argument is a
 5987 	Lisp string.
 5988 
 5989 2014-07-08  Paul Eggert  <eggert@cs.ucla.edu>
 5990 
 5991 	* process.c (read_and_dispose_of_process_output): Fix typo
 5992 	in previous patch: we want nonnegative fds, not nonzero fds.
 5993 
 5994 2014-07-08  Dmitry Antipov  <dmantipov@yandex.ru>
 5995 
 5996 	* chartab.c (char_table_translate): Move to...
 5997 	* character.h (char_table_translate): ... inline function here.
 5998 	Avoid Faref and assume that args are always valid.  This helps to
 5999 	speedup search, which is especially important for a huge buffers.
 6000 	* lisp.h (char_table_translate): Remove prototype.
 6001 
 6002 	* nsfont.m (nsfont_close): Free glyphs and metrics arrays as well.
 6003 	* font.c (font_build_object) [HAVE_XFT || HAVE_FREETYPE || HAVE_NS]:
 6004 	New function, with an intention to avoid code duplication between
 6005 	a few font drivers.
 6006 	* font.h (font_build_object) [HAVE_XFT || HAVE_FREETYPE || HAVE_NS]:
 6007 	Add prototype.
 6008 	* ftfont.c (ftfont_open):
 6009 	* macfont.m (macfont_open):
 6010 	* xftfont.c (xftfont_open): Use it.
 6011 
 6012 2014-07-08  Paul Eggert  <eggert@cs.ucla.edu>
 6013 
 6014 	* process.c: Add sanity checks for file descriptors (Bug#17844).
 6015 	(wait_reading_process_output, Fprocess_filter_multibyte_p):
 6016 	Check that infd is nonnegative before using it as an fd.
 6017 	(read_and_dispose_of_process_output, Fprocess_send_eof):
 6018 	Likewise, for outfd.
 6019 	(wait_reading_process_output): Omit unnecessary check of infd.
 6020 
 6021 2014-07-07  Paul Eggert  <eggert@cs.ucla.edu>
 6022 
 6023 	Minor fixups related to usage of the 'long' type.
 6024 	* gnutls.c (emacs_gnutls_handshake):
 6025 	* xfaces.c (dump_realized_face):
 6026 	Work even if 'long' is narrower than 'void *'.
 6027 	* termcap.c (scan_file):
 6028 	* xselect.c (x_decline_selection_request)
 6029 	(x_reply_selection_request, x_get_window_property):
 6030 	* xterm.c (x_set_frame_alpha):
 6031 	Remove unnecessary 'L' suffixes of integer constants.
 6032 	* xfns.c (hack_wm_protocols):
 6033 	* xselect.c (x_fill_property_data):
 6034 	* xterm.c (x_set_offset, x_set_window_size_1, x_make_frame_invisible):
 6035 	Remove unnecessary casts to 'long'.
 6036 	(set_machine_and_pid_properties): Don't assume pid_t fits in 32 bits.
 6037 
 6038 	Minor ImageMagick safety fixes.
 6039 	* image.c (imagemagick_compute_animated_image):
 6040 	Remove useless assignment to local.  Avoid problems if dest_width is 0.
 6041 	(imagemagick_load_image): Use int for pixel counts that can't
 6042 	exceed INT_MAX.  Avoid problem if PixelGetNextIteratorRow returns
 6043 	a row width greater than the image width (or greater than LONG_MAX!).
 6044 
 6045 2014-07-04  K. Handa  <handa@gnu.org>
 6046 
 6047 	* coding.c (MIN_CHARBUF_SIZE): Delete it.
 6048 	(MAX_CHARBUF_EXTRA_SIZE): New macro.
 6049 	(ALLOC_CONVERSION_WORK_AREA): Use MAX_CHARBUF_EXTRA_SIZE.
 6050 
 6051 2014-07-04  Dmitry Antipov  <dmantipov@yandex.ru>
 6052 
 6053 	* font.h (struct font_driver): Remove get_outline and free_outline;
 6054 	not used by any font driver.
 6055 	* ftfont.c (ftfont_driver):
 6056 	* macfont.m (macfont_driver):
 6057 	* nsfont.m (nsfont_driver):
 6058 	* w32font.c (w32font_driver):
 6059 	* w32uniscribe.c (uniscribe_font_driver):
 6060 	* xfont.c (xfont_driver): Related users changed.
 6061 	* xselect.c (x_get_window_property): Use convenient xmalloc.
 6062 	Call to xfree only if some data was really allocated.
 6063 
 6064 2014-07-03  Dmitry Antipov  <dmantipov@yandex.ru>
 6065 
 6066 	On MS-Windows, display busy cursor on all GUI frames.
 6067 	This is similar to what we have on X.  Quickly tested by Dani Moncayo.
 6068 	* w32fns.c (toplevel): Remove hourglass_hwnd; no longer used.
 6069 	(w32_show_hourglass, w32_hide_hourglass, w32_note_current_window):
 6070 	Likewise.
 6071 	(hide_hourglass, show_hourglass): Redesign to match X counterparts.
 6072 	* xdisp.c (start_hourglass): Remove Windows-specific bits.
 6073 
 6074 2014-07-03  Dmitry Antipov  <dmantipov@yandex.ru>
 6075 
 6076 	Use convenient alists to manage per-frame font driver-specific data.
 6077 	* frame.h (struct frame): Rename font_data_list to...
 6078 	[HAVE_XFT || HAVE_FREETYPE]: ... font_data, which is a Lisp_Object now.
 6079 	* font.h (struct font_data_list): Remove; no longer need a special
 6080 	data type.
 6081 	(font_put_frame_data, font_get_frame_data) [HAVE_XFT || HAVE_FREETYPE]:
 6082 	Adjust prototypes.
 6083 	* font.c (font_put_frame_data, font_get_frame_data)
 6084 	[HAVE_XFT || HAVE_FREETYPE]: Prefer alist functions to ad-hoc list
 6085 	management.
 6086 	* xftfont.c (xftfont_get_xft_draw, xftfont_end_for_frame):
 6087 	Related users changed.
 6088 	* ftxfont.c (ftxfont_get_gcs, ftxfont_end_for_frame): Likewise.
 6089 	Prefer convenient xmalloc and xfree.
 6090 
 6091 2014-07-03  Eli Zaretskii  <eliz@gnu.org>
 6092 
 6093 	* dispnew.c (prepare_desired_row): Accept 2 additional arguments:
 6094 	the window whose glyph row is being prepared and a flag whether it
 6095 	is for mode/header line.  Make sure the glyph row's marginal areas
 6096 	are in sync with what the window wants.
 6097 	(Bug#17892)
 6098 
 6099 	* xdisp.c (display_line, display_mode_line):
 6100 	Call prepare_desired_row with additional arguments, as appropriate.
 6101 
 6102 	* dispextern.h (prepare_desired_row): Adjust prototype.
 6103 
 6104 2014-07-03  Dmitry Antipov  <dmantipov@yandex.ru>
 6105 
 6106 	* xfaces.c (init_frame_faces): Always realize basic faces (Bug#17889).
 6107 	* menu.c (Fx_popup_dialog): Set Vmenu_updating_frame to avoid crash
 6108 	caused by xw_popup_dialog in daemon mode (Bug#17891).
 6109 
 6110 2014-07-03  Eli Zaretskii  <eliz@gnu.org>
 6111 
 6112 	* frame.c (do_switch_frame): When switching to another TTY frame,
 6113 	make sure FrameCols and FrameRows are in sync with the new frame's
 6114 	data.  (Bug#17875)
 6115 
 6116 2014-07-02  Dmitry Antipov  <dmantipov@yandex.ru>
 6117 
 6118 	Shrink Lisp_Sub_Char_Table by preferring C integers to Lisp_Objects.
 6119 	* lisp.h (struct Lisp_Sub_Char_Table): Use C integers for depth and
 6120 	min_char slots.  Adjust comment.
 6121 	(enum char_table_specials): Rename from CHAR_TABLE_STANDARD_SLOTS.
 6122 	Add SUB_CHAR_TABLE_OFFSET member.
 6123 	(make_uninit_sub_char_table): New function.
 6124 	(toplevel): Add compile-time assert to verify suitable member layout
 6125 	in Lisp_Sub_Char_Table.
 6126 	* alloc.c (mark_char_table): Add extra argument to denote char table
 6127 	subtype.  Adjust to match new layout of sub char-table.
 6128 	(mark_object): Always mark sub char-tables with mark_char_table.
 6129 	* chartab.c (make_sub_char_table, copy_sub_char_table)
 6130 	(sub_char_table_ref, sub_char_table_ref_and_range, sub_char_table_set)
 6131 	(sub_char_table_set_range, optimize_sub_char_table, map_sub_char_table)
 6132 	(map_sub_char_table_for_charset, uniprop_table_uncompress):
 6133 	All related users changed.
 6134 	* lread.c (read1): Adjust to match new layout of sub char-table.
 6135 	* print.c (print_object): Likewise (Bug#17898).
 6136 
 6137 2014-07-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 6138 
 6139 	* keymap.c (get_keyelt): Simplify.
 6140 	(copy_keymap_item): Remove left-over code for when we had
 6141 	key-shortcut caches.
 6142 
 6143 2014-06-30  Jan Djärv  <jan.h.d@swipnet.se>
 6144 
 6145 	* nsterm.m (judge): EmacsScroller: Move dealloc code here.
 6146 	(dealloc): Remove for EmacsScroller.
 6147 
 6148 	* nsterm.h (EmacsScroller): Remove dealloc.
 6149 
 6150 2014-06-30  Eli Zaretskii  <eliz@gnu.org>
 6151 
 6152 	* coding.c (MIN_CHARBUF_SIZE): Enlarge to 32.  (Bug#17881)
 6153 
 6154 2014-06-30  Jan Djärv  <jan.h.d@swipnet.se>
 6155 
 6156 	* nsmenu.m (update_frame_tool_bar): Set wait_for_tool_bar to NO
 6157 	when setNeedsDisplay is called so we don't trigger redisplay for every
 6158 	tool bar update.
 6159 
 6160 	* nsterm.m (any_help_event_p): New variable.
 6161 	(mouseMoved:): Set any_help_event_p to YES if help event is
 6162 	generated.  Remove else with empty help event that triggered redisplay
 6163 	for every mouse move.
 6164 	(windowDidResignKey:): If any_help_event_p, generate empty help event.
 6165 
 6166 2014-06-29  Dmitry Antipov  <dmantipov@yandex.ru>
 6167 
 6168 	* xfns.c (Qsuppress_icon): Remove; no real users.
 6169 	(syms_of_xfns): Don't DEFSYM it.  Remove ancient comments.
 6170 	* w32fns.c (Qsuppress_icon): Remove, for the same reason.
 6171 	(syms_of_w32fns): Don't DEFSYM it.
 6172 
 6173 2014-06-29  Glenn Morris  <rgm@gnu.org>
 6174 
 6175 	* Makefile.in (ns-app): Mark as PHONY.
 6176 
 6177 2014-06-28  Glenn Morris  <rgm@gnu.org>
 6178 
 6179 	* Makefile.in (mostlyclean): There are no libXMenu11.a,
 6180 	liblw.a in this directory.
 6181 
 6182 2014-06-28  Andreas Schwab  <schwab@linux-m68k.org>
 6183 
 6184 	* coding.c (encode_coding_utf_8): Correctly count produced_chars
 6185 	also in unibyte case.  (Bug#17865)
 6186 
 6187 2014-06-28  K. Handa  <handa@gnu.org>
 6188 
 6189 	* coding.c (MAX_CHARBUF_SIZE): Rename from CHARBUF_SIZE.
 6190 	(MIN_CHARBUF_SIZE): New macro.
 6191 	(ALLOC_CONVERSION_WORK_AREA): New arg SIZE.  Callers changed.
 6192 
 6193 2014-06-27  Glenn Morris  <rgm@gnu.org>
 6194 
 6195 	* Makefile.in: Replace BOOTSTRAPEMACS sleight-of-hand
 6196 	with an order-only dependence on bootstrap-emacs.  (Bug#2151)
 6197 	(.el.elc): Replace suffix rule with pattern rule.
 6198 	(%.elc): New pattern rule, with order-only prerequisite.
 6199 	($(lisp)): No more need to depend on BOOTSTRAPEMACS.
 6200 	($(lispsource)/loaddefs.el): Use an order-only prerequisite
 6201 	in place of BOOTSTRAPEMACS.
 6202 
 6203 2014-06-26  Dmitry Antipov  <dmantipov@yandex.ru>
 6204 
 6205 	* fns.c (Fcompare_strings): Use FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE.
 6206 
 6207 2014-06-25  Dmitry Antipov  <dmantipov@yandex.ru>
 6208 
 6209 	Consistently use validate_subarray to verify substring.
 6210 	* fns.c (validate_substring): Not static any more.  Adjust to
 6211 	use ptrdiff_t, not EMACS_INT, because string and vector limits
 6212 	can't exceed ptrdiff_t even if EMACS_INT is wider.
 6213 	(Fcompare_strings, Fsubstring, Fsubstring_no_properties)
 6214 	(secure_hash): Adjust user.
 6215 	* lisp.h (validate_subarray): Add prototype.
 6216 	* coding.c (Fundecodable_char_position):
 6217 	* composite.c (Fcomposition_get_gstring, Fcompose_string_internal):
 6218 	Use validate_subarray.  Adjust comment to mention substring.
 6219 
 6220 2014-06-25  Dmitry Antipov  <dmantipov@yandex.ru>
 6221 
 6222 	Do not allow out-of-range character position in Fcompare_strings.
 6223 	* fns.c (validate_subarray): Add prototype.
 6224 	(Fcompare_substring): Use validate_subarray to check ranges.
 6225 	Adjust comment to mention that the semantics was changed.  Also see
 6226 	https://lists.gnu.org/r/emacs-devel/2014-06/msg00447.html.
 6227 
 6228 2014-06-24  Paul Eggert  <eggert@cs.ucla.edu>
 6229 
 6230 	Be more consistent about the 'Qfoo' naming convention.
 6231 	* image.c (Fimagemagick_types):
 6232 	* lisp.h (lisp_h_CHECK_TYPE, CHECK_TYPE, CHECK_ARRAY):
 6233 	* process.c (Fmake_network_process):
 6234 	Rename C local identifier 'Qfoo to avoid giving the false
 6235 	impression that it stands for the symbol 'foo'.
 6236 
 6237 2014-06-23  Dmitry Antipov  <dmantipov@yandex.ru>
 6238 
 6239 	Simplify and cleanup character conversion stuff.
 6240 	* lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe):
 6241 	Remove prototypes.
 6242 	* character.c (multibyte_char_to_unibyte)
 6243 	(multibyte_char_to_unibyte_safe): Remove; no longer used.
 6244 	* character.h (make_char): Remove; unused.
 6245 	(CHAR_TO_BYTE8, CHAR_TO_BYTE_SAFE): Simplify.
 6246 	(ASCII_BYTE_P): Remove; ASCII_CHAR_P does the same thing.
 6247 	* buffer.c, charset.c, charset.h, cmds.c, coding.c, editfns.c:
 6248 	* fileio.c, indent.c, insdel.c, keyboard.c, lread.c, print.c:
 6249 	* search.c, term.c, xdisp.c, xterm.c: Related users changed.
 6250 
 6251 2014-06-22  Mario Lang  <mlang@delysid.org>
 6252 
 6253 	* w32fns.c (Fw32_shell_execute): The the -> the.
 6254 
 6255 2014-06-22  Dmitry Antipov  <dmantipov@yandex.ru>
 6256 
 6257 	* xmenu.c (mouse_position_for_popup):
 6258 	* xselect.c (mouse_position_for_drop): Do not duplicate ...
 6259 	* xfns.c (x_relative_mouse_position): ... and prefer this function.
 6260 	* menu.c (Fx_popup_menu):
 6261 	* xselect.c (x_handle_dnd_message): Adjust users.
 6262 	* menu.h (mouse_position_for_popup): Remove prototype.
 6263 	* xterm.h (x_relative_mouse_position): Add prototype.
 6264 	* xterm.c (x_find_topmost_parent): Break from the loop and do not
 6265 	call XFree if XQueryTree returns zero.
 6266 
 6267 2014-06-21  Eli Zaretskii  <eliz@gnu.org>
 6268 
 6269 	* indent.c (Fvertical_motion): Doc fix.
 6270 	Move to the goal column, if any, with a single call to
 6271 	move_it_in_display_line, not in two calls.  Doing this with two
 6272 	calls causes move_it_in_display_line apply the line-prefix
 6273 	handling twice instead of just once.  (Bug#17823)
 6274 
 6275 2014-06-21  Paul Eggert  <eggert@cs.ucla.edu>
 6276 
 6277 	Port to OS X ACLs (Bug#17810).
 6278 	* fileio.c (Ffile_acl): Port to OS X, where acl_get_file (...,
 6279 	ACL_TYPE_ACCESS) doesn't work.
 6280 
 6281 2014-06-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 6282 
 6283 	* keyboard.c (read_key_sequence): Don't invoke Vprefix_help_command
 6284 	before checking key-translation-map (bug#17659).
 6285 
 6286 2014-06-21  Dmitry Antipov  <dmantipov@yandex.ru>
 6287 
 6288 	* font.c (font_make_object): Avoid dangling pointer which may
 6289 	crash GC (Bug#17771).
 6290 
 6291 2014-06-21  Eli Zaretskii  <eliz@gnu.org>
 6292 
 6293 	* image.c [5 < GIFLIB_MAJOR + (1 <= GIFLIB_MINOR)]: Declare the
 6294 	prototype of DGifCloseFile as appropriate for older and newer
 6295 	versions of giflib.
 6296 	(gif_close): New function, encapsulates the differences in the
 6297 	calling sequence of DGifCloseFile before v5.1.0 and after it.
 6298 	(gif_load): Call gif_close instead of DGifCloseFile.  Divulge the
 6299 	error string where appropriate.  (Bug#17790)
 6300 
 6301 	* xdisp.c (Fmove_point_visually): Instead of testing for keyboard
 6302 	macro execution, make sure point didn't move since last complete
 6303 	redisplay, as the condition for using the glyph matrix
 6304 	information.  (Bug#17777)
 6305 
 6306 2014-06-19  Dmitry Antipov  <dmantipov@yandex.ru>
 6307 
 6308 	Minor cleanup of fonset code.
 6309 	* fontset.c (FONTSET_ID, set_fontset_id, FONTSET_NAME)
 6310 	(set_fontset_name, FONTSET_ASCII, set_fontset_ascii)
 6311 	(FONTSET_BASE, set_fontset_base, FONTSET_FRAME)
 6312 	(set_fontset_frame, FONTSET_NOFONT_FACE, set_fontset_nofont_face)
 6313 	(FONTSET_DEFAULT, set_fontset_default, FONTSET_FALLBACK)
 6314 	(set_fontset_fallback): Reorder extra slots and avoid unused slots.
 6315 	(free_realized_fontset): Remove because a no-op since 2008.
 6316 	(free_face_fontset): Adjust user.
 6317 	(syms_of_fontset): Shrink fontset by one extra slot.
 6318 
 6319 2014-06-17  Paul Eggert  <eggert@cs.ucla.edu>
 6320 
 6321 	Omit redundant extern decls.
 6322 	Most of this patch is from Dmitry Antipov, in:
 6323 	https://lists.gnu.org/r/emacs-devel/2014-06/msg00263.html
 6324 	* commands.h (update_mode_lines):
 6325 	* frame.h (Qbackground_color, Qforeground_color)
 6326 	(x_set_menu_bar_lines):
 6327 	* ftfont.c (ftfont_font_format):
 6328 	* intervals.h (Qkeymap, Qfont):
 6329 	* keyboard.c (timer_check, safe_run_hooks, Qregion_extract_function):
 6330 	* lisp.h (Ffboundp, Qnil, Qt, Qlambda, Qintegerp, Qwholenump)
 6331 	(Qsymbolp, Qlisp, Qconsp, Qstringp, Qarrayp, Qbufferp, Qmarkerp)
 6332 	(Qvectorp, Qbuffer_or_string_p, Qchar_table_p, Qvector_or_char_table_p)
 6333 	(Qfloatp, Qnumberp, Qfont_spec, Qfont_entity, Qfont_object)
 6334 	(Fbyteorder, wrong_type_argument, Fmax_char, syms_of_composite)
 6335 	(Fidentity, extract_float, init_display, syms_of_display, Qdisplay):
 6336 	(Qimage, Qbox, redisplay_preserve_echo_area, char_table_ref)
 6337 	(char_table_set, char_table_translate, Qautoload, Qbottom, Qtop)
 6338 	(Qvisible, Qfont, Qfront_sticky, Qrear_nonsticky, init_sigio)
 6339 	(Qtool_bar, Qheader_line):
 6340 	* macros.c (Fexecute_kbd_macro):
 6341 	* xdisp.c (Ftool_bar_height, Ftool_bar_height):
 6342 	* xterm.c (x_delete_terminal, XSetIMValues):
 6343 	* xterm.h (x_set_window_size, x_query_color, x_get_focus_frame)
 6344 	(x_implicitly_set_name, popup_activated)
 6345 	(widget_store_internal_border):
 6346 	Remove redundant decls.
 6347 	* frame.c [USE_X_TOOLKIT]: Include widget.h.
 6348 	* keyboard.c (Fexit_recursive_edit, Fabort_recursive_edit):
 6349 	Remove _Noreturn, as make-docfile now does that for us.
 6350 	* lisp.h (DEFUN): Don't declare fnname here; rely on make-docfile.
 6351 	(Qregion_extract_function): New decl.
 6352 	* window.c, xfns.c: Include menu.h.
 6353 
 6354 2014-06-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 6355 
 6356 	* callint.c (Fcall_interactively): Fix up last change (bug#17701).
 6357 
 6358 2014-06-17  Dmitry Antipov  <dmantipov@yandex.ru>
 6359 
 6360 	* fileio.c (Fread_file_name): Do not pass redundant args and ...
 6361 	* callint.c (read_file_name): ... convert to static here.
 6362 	* lisp.h (Fread_file_name): Do not EXFUN it.
 6363 	(STRING_COPYIN): Remove; unused.
 6364 	* composite.c (CHAR_COMPOSABLE_P): Replace unsafe macro with ...
 6365 	(char_composable_p): ... static function.  All users changed.
 6366 	* eval.c (toplevel): Remove redundant #include directives.
 6367 	* xterm.c (x_initialize): Add static to match prototype.
 6368 	* ccl.c (Fccl_execute_on_string):
 6369 	* font.c (fon_intern_prop): Use make_specified_string.
 6370 
 6371 2014-06-16  Paul Eggert  <eggert@cs.ucla.edu>
 6372 
 6373 	* Makefile.in (ns-app): Fix typo that broke build on OS X.
 6374 	Reported by David Caldwell in:
 6375 	https://lists.gnu.org/r/emacs-devel/2014-06/msg00251.html
 6376 
 6377 2014-06-16  Dmitry Antipov  <dmantipov@yandex.ru>
 6378 
 6379 	Do not ask for XRender extension each time XFT font is opened.
 6380 	* xftfont.c (xftfont_open): Move call to XRenderQueryExtension ...
 6381 	* xterm.c (x_term_init) [HAVE_XFT]: ... to here.  Adjust comment.
 6382 
 6383 2014-06-15  Glenn Morris  <rgm@gnu.org>
 6384 
 6385 	* Makefile.in: Use `make -C' rather than `cd && make' throughout.
 6386 
 6387 2014-06-15  Eli Zaretskii  <eliz@gnu.org>
 6388 
 6389 	* xdisp.c (Fmove_point_visually): Don't use the glyph matrix
 6390 	information if we are in the middle of executing a keyboard macro,
 6391 	since redisplay doesn't update the screen until the macro is
 6392 	finished.  (Bug#17777)
 6393 
 6394 	* alloc.c (cleanup_vector): Don't dereference a font driver
 6395 	pointer if it is NULL.  (Bug#17771)
 6396 
 6397 2014-06-13  Glenn Morris  <rgm@gnu.org>
 6398 
 6399 	* Makefile.in ($(leimdir)/leim-list.el, $(srcdir)/macuvs.h)
 6400 	($(lispsource)/international/charprop.el)
 6401 	($(libsrc)/make-docfile$(EXEEXT), $(lwlibdir)/liblw.a)
 6402 	($(oldXMenudir)/libXMenu11.a, ns-app, .el.elc)
 6403 	($(lispsource)/loaddefs.el, bootstrap-emacs$(EXEEXT)):
 6404 	GNU make automatically passes command-line arguments to sub-makes.
 6405 
 6406 2014-06-13  Paul Eggert  <eggert@cs.ucla.edu>
 6407 
 6408 	Avoid hangs in accept-process-output (Bug#17647).
 6409 	* lisp.h, process.c (wait_reading_process_input):
 6410 	Return int, not bool.  All uses changed.
 6411 	* process.c (SELECT_CANT_DO_WRITE_MASK):
 6412 	Remove macro, replacing with ...
 6413 	(SELECT_CAN_DO_WRITE_MASK): ... new constant, with inverted sense.
 6414 	All uses changed.
 6415 	(status_notify): New arg WAIT_PROC.  Return int, not void.
 6416 	All uses changed.
 6417 
 6418 2014-06-13  Eli Zaretskii  <eliz@gnu.org>
 6419 
 6420 	* menu.c (Fx_popup_menu): Don't call the frame's menu_show_hook if
 6421 	the frame is the initial frame, because the hook is not set up
 6422 	then, and Emacs crashes.
 6423 	Reported by Fabrice Popineau <fabrice.popineau@gmail.com>.
 6424 
 6425 2014-06-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 6426 
 6427 	* keymap.c (silly_event_symbol_error): Don't recommend the use
 6428 	of strings.
 6429 
 6430 2014-06-11  Eli Zaretskii  <eliz@gnu.org>
 6431 
 6432 	* xdisp.c (set_cursor_from_row): Fix an off-by-one error when
 6433 	matching overlay strings with 'cursor' property against buffer
 6434 	positions traversed in the glyph row.  (Bug#17744)
 6435 
 6436 2014-06-11  Jan Djärv  <jan.h.d@swipnet.se>
 6437 
 6438 	* nsterm.h (EmacsApp): Always compile in shouldKeepRunning, isFirst
 6439 	on Cocoa.
 6440 
 6441 	* nsterm.m (run): Always compile for Cocoa.  Use runtime check to
 6442 	determine 10.9 (Bug#17751).
 6443 
 6444 	* macfont.m (macfont_draw): Positions were not freed.
 6445 
 6446 2014-06-10  Dmitry Antipov  <dmantipov@yandex.ru>
 6447 
 6448 	* dispextern.h (PREPARE_FACE_FOR_DISPLAY): Remove as a duplicate of ...
 6449 	* xfaces.c (prepare_face_for_display) [HAVE_WINDOW_SYSTEM]: ... this
 6450 	function.  Also adjust comment.
 6451 	* fringe.c, w32term.c, xdisp.c, xterm.c: All users changed.
 6452 
 6453 	* dispextern.h (struct face) [HAVE_XFT]: Ifdef 'extra' member.
 6454 	* font.c (font_done_for_face):
 6455 	* xfaces.c (realize_non_ascii_face): Adjust user.
 6456 	* font.h (struct font_driver): Convert 'prepare_face' to return
 6457 	void because its return value is never used anyway.
 6458 	* xfont.c (xfont_prepare_face): Return void.
 6459 	* xftfont.c (xftfont_prepare_face): Likewise.  Use xmalloc.
 6460 	(xftfont_done_face): Use xfree.
 6461 
 6462 	* dispextern.h (last_tool_bar_item): Remove declaration.
 6463 	* frame.h (struct frame): New member last_tool_bar_item.
 6464 	* frame.c (make_frame): Initialize it.
 6465 	* xdisp.c (toplevel): Remove last_tool_bar_item.
 6466 	(handle_tool_bar_click, note_tool_bar_highlight):
 6467 	* w32term.c (w32_read_socket, w32_initialize):
 6468 	* xterm.c (handle_one_xevent, x_initialize): Adjust users.
 6469 
 6470 	* frame.h (window_system_available) [!HAVE_WINDOW_SYSTEM]: Always false.
 6471 	* frame.c (window_system_available) [HAVE_WINDOW_SYSTEM]: Now here.
 6472 
 6473 2014-06-09  Paul Eggert  <eggert@cs.ucla.edu>
 6474 
 6475 	Say (accept-process-output P)'s result pertains to P if P is non-nil.
 6476 	* process.c (Faccept_process_output)
 6477 	(wait_reading_process_output): Mention that if PROCESS is non-nil,
 6478 	the return value is about PROCESS, not about other processes.
 6479 
 6480 2014-06-09  Dmitry Antipov  <dmantipov@yandex.ru>
 6481 
 6482 	Further adjustments to mark_object and friends.
 6483 	Now the mark_object's stack is just 32 bytes on a 64-bit
 6484 	system, which means extra 20% off the stack usage.
 6485 	* alloc.c (mark_save_value): As before, refactored out from ...
 6486 	(mark_object): ... adjusted user.  Also add comment.
 6487 
 6488 2014-06-09  Paul Eggert  <eggert@cs.ucla.edu>
 6489 
 6490 	Fix core dump after a dropped X connection (Bug#17704).
 6491 	* sysdep.c (stuff_char): Don't abort merely because the selected frame
 6492 	is dead, as we may be shutting down.
 6493 
 6494 2014-06-08  Glenn Morris  <rgm@gnu.org>
 6495 
 6496 	* fileio.c (write-region-inhibit-fsync): Doc tweak.
 6497 
 6498 	* data.c (Flss, Fgtr, Fleq, Fgeq): Doc tweaks.
 6499 
 6500 2014-06-08  Paul Eggert  <eggert@cs.ucla.edu>
 6501 
 6502 	If a C name must be extern on some platforms, make it extern on all.
 6503 	* dispextern.h (set_vertical_scroll_bar, erase_phys_cursor)
 6504 	(load_color):
 6505 	* font.h (ftxfont_driver) [HAVE_XFT]:
 6506 	* keyboard.h (menu_items_inuse, ignore_mouse_drag_p, make_ctrl_char):
 6507 	* lisp.h (get_frame_param):
 6508 	* menu.h (tty_menu_show):
 6509 	* process.h (conv_sockaddr_to_lisp, catch_child_signal):
 6510 	* termhooks.h (encode_terminal_code):
 6511 	* xterm.h (x_menu_wait_for_event):
 6512 	Always declare.
 6513 	* frame.c (get_frame_param):
 6514 	* fringe.c (max_used_fringe_bitmap):
 6515 	* ftxfont.c (ftxfont_driver):
 6516 	* keyboard.c (ignore_mouse_drag_p, make_ctrl_char):
 6517 	* menu.c (menu_items_inuse):
 6518 	* process.c (conv_sockaddr_to_lisp, catch_child_signal):
 6519 	* term.c (encode_terminal_code, tty_menu_show):
 6520 	* xdisp.c (set_vertical_scroll_bar, erase_phys_cursor):
 6521 	* xfaces.c (load_color):
 6522 	* xmenu.c (x_menu_wait_for_event):
 6523 	Now always extern.
 6524 
 6525 2014-06-08  Dmitry Antipov  <dmantipov@yandex.ru>
 6526 
 6527 	Change object marking routines to minimize stack usage.
 6528 	This change moves a few cold paths from mark_object to NO_INLINE
 6529 	functions and adjusts symbol marking loop.  According to GCC 4.8.2
 6530 	-Wstack-usage, this reduces mark_object's stack usage from 80 to
 6531 	48 bytes on a 64-bit system.  For a long byte-force-recompile runs,
 6532 	stack usage at the mark phase is reduced up to 28%.  Surprisingly,
 6533 	it also gains up to 3% in speed (with default '-O2 -g3' flags).
 6534 	* alloc.c (mark_compiled, mark_localized_symbol): New functions,
 6535 	refactored out from ...
 6536 	(mark_object): ... adjusted user.  Also mark symbols in a tight
 6537 	inner loop.
 6538 	(mark_face_cache): Add NO_INLINE.
 6539 
 6540 2014-06-08  Eli Zaretskii  <eliz@gnu.org>
 6541 
 6542 	* sysdep.c (reset_sys_modes): Use cursorX, not curX, as the latter
 6543 	contains garbage on WINDOWSNT (which could potentially infloop at
 6544 	exit).
 6545 
 6546 	Minimize cursor motion during TTY menu updates.
 6547 	* term.c (tty_menu_display): Don't position cursor here.
 6548 	Instead, pass the cursor coordinates to update_frame_with_menu.
 6549 	(tty_menu_activate): Send the hide cursor command only once in an
 6550 	iteration through the outer 'while' loop.
 6551 
 6552 	* dispnew.c (update_frame_1): Accept an additional argument
 6553 	SET_CURSOR_P, and position the cursor at the end of the frame
 6554 	update only if that argument is non-zero.  All callers changed to
 6555 	provide the additional argument as non-zero, except for
 6556 	update_frame_with_menu.
 6557 	(update_frame_with_menu): Accept 2 additional arguments ROW and
 6558 	COL; if they are non-negative, instruct update_frame_1 not to
 6559 	position the cursor, and instead position it according to ROW and COL.
 6560 
 6561 	* dispextern.h (update_frame_with_menu): Update prototype.
 6562 
 6563 2014-06-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 6564 
 6565 	* callproc.c (call_process): Don't check read-only if we don't insert
 6566 	anything (bug#17666).
 6567 
 6568 2014-06-08  Eli Zaretskii  <eliz@gnu.org>
 6569 
 6570 	* dispnew.c (update_frame_with_menu): Set display_completed.
 6571 
 6572 2014-06-07  Eli Zaretskii  <eliz@gnu.org>
 6573 
 6574 	* term.c (tty_menu_show) [WINDOWSNT]: Make tty_menu_show extern
 6575 	only for WINDOWSNT.
 6576 	* menu.h (tty_menu_show) [WINDOWSNT]: Declare extern only for WINDOWSNT.
 6577 
 6578 2014-06-06  Paul Eggert  <eggert@cs.ucla.edu>
 6579 
 6580 	* term.c (tty_menu_show) [!HAVE_NTGUI]: Now static.
 6581 	* menu.h (tty_menu_show) [!HAVE_NTGUI]: Omit extern decl.
 6582 
 6583 2014-06-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 6584 
 6585 	* window.c (Frecenter): Signal an error if window-buffer is not
 6586 	current-buffer.
 6587 
 6588 	* keyboard.c (make_lispy_position): Don't include a buffer position in
 6589 	mode/header-line mouse events.
 6590 
 6591 	* keyboard.c (read_char): Handle (t . <event>) in the second use of
 6592 	Vunread_command_events (bug#17650).
 6593 
 6594 2014-06-06  Dmitry Antipov  <dmantipov@yandex.ru>
 6595 
 6596 	* xterm.c (x_setup_pointer_blanking):
 6597 	Conditionally probe Xfixes until this stuff is stabilized (Bug#17609).
 6598 
 6599 2014-06-05  Dmitry Antipov  <dmantipov@yandex.ru>
 6600 
 6601 	* keyboard.c, process.c: Do not define POLL_FOR_INPUT here
 6602 	because it will be defined in generated config.h if needed.
 6603 
 6604 2014-06-04  Dmitry Antipov  <dmantipov@yandex.ru>
 6605 
 6606 	Use terminal-specific hooks to display popup dialogs.
 6607 	* termhooks.h (struct terminal): New field popup_dialog_hook.
 6608 	* menu.c (emulate_dialog_with_menu): New function, refactored from ...
 6609 	(Fx_popup_dialog): ... adjusted user.  Also remove old #if 0
 6610 	code and use popup_dialog_hook.
 6611 	* nsmenu.m (ns_popup_dialog): Make hook-compatible.
 6612 	* nsterm.h (ns_popup_dialog): Adjust prototype.
 6613 	* nsterm.m (ns_create_terminal):
 6614 	* w32term.c (w32_create_terminal):
 6615 	* xterm.c (x_create_terminal) [USE_X_TOOLKIT || USE_GTK]:
 6616 	Setup popup_dialog_hook.
 6617 
 6618 2014-06-04  Eli Zaretskii  <eliz@gnu.org>
 6619 
 6620 	* w32heap.c (report_temacs_memory_usage): Improve the report by
 6621 	reporting the large blocks that are actually occupied at dump time.
 6622 
 6623 	* w32console.c (initialize_w32_display): Set the console
 6624 	menu_show_hook, otherwise TTY menus are broken on w32.
 6625 
 6626 2014-06-04  Dmitry Antipov  <dmantipov@yandex.ru>
 6627 
 6628 	Use terminal-specific hooks to display menus.
 6629 	* termhooks.h (struct terminal): New field menu_show_hook.
 6630 	* menu.h (<anonymous enum>): Bit flags for menu hooks.
 6631 	(x_menu_show, w32_menu_show, ns_menu_show, tty_menu_show):
 6632 	Adjust prototypes.
 6633 	* menu.c (Fx_popup_menu): Use bit flags and menu_show_hook.
 6634 	* nsmenu.m (ns_menu_show):
 6635 	* w32menu.c (w32_menu_show):
 6636 	* xmenu.c (x_menu_show):
 6637 	* term.c (tty_menu_show): Adjust to use bit flags.
 6638 	(set_tty_hooks): Set menu_show_hook.
 6639 	* xterm.c (x_create_terminal):
 6640 	* nsterm.m (ns_create_terminal):
 6641 	* msdos.c (initialize_msdos_display):
 6642 	* w32term.c (w32_create_terminal): Likewise.
 6643 
 6644 2014-06-03  Juanma Barranquero  <lekktu@gmail.com>
 6645 
 6646 	* w32heap.c (DUMPED_HEAP_SIZE) [!_WIN64]: Reduce to 11 MB.
 6647 
 6648 2014-06-03  Eli Zaretskii  <eliz@gnu.org>
 6649 
 6650 	* sysselect.h (fd_CLR, fd_ISSET, fd_SET, FD_CLR, FD_ISSET)
 6651 	(FD_SET): Don't define on WINDOWSNT.
 6652 
 6653 2014-06-03  Paul Eggert  <eggert@cs.ucla.edu>
 6654 
 6655 	* emacs.c: Include "sysselect.h", to define its inline functions.
 6656 	Reported by Glenn Morris in:
 6657 	https://lists.gnu.org/r/emacs-devel/2014-06/msg00077.html
 6658 
 6659 	Do not require libXt-devel when building with gtk.
 6660 	* gtkutil.h, menu.h: Include lwlib-widget.h, not lwlib-h, to avoid
 6661 	dependency on libXt-devel.
 6662 	* menu.h [HAVE_NTGUI]: Include lwlib-widget.h in this case too.
 6663 	(enum button_type, widget_value) [HAVE_NTGUI]: Remove, as
 6664 	lwlib-widget.h now does this.
 6665 	* nsmenu.m (ns_menu_show): "enabled" -> "enable" to fix typo.
 6666 
 6667 2014-06-03  Paul Eggert  <eggert@penguin.cs.ucla.edu>
 6668 
 6669 	If ENABLE_CHECKING, range-check args of FD_CLR, FD_ISSET, FD_SET.
 6670 	* process.c (add_read_fd, delete_read_fd, add_write_fd)
 6671 	(delete_write_fd, wait_reading_process_output):
 6672 	Remove now-redundant easserts.
 6673 	* sysselect.h (SYSSELECT_H): New macro, to avoid double-inclusion woes.
 6674 	Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
 6675 	(fd_CLR, fd_ISSET, fd_SET): New inline functions.
 6676 	(FD_CLR, FD_ISSET, FD_SET): Redefine in terms of these functions.
 6677 
 6678 2014-06-03  Eli Zaretskii  <eliz@gnu.org>
 6679 
 6680 	* w32heap.c (DUMPED_HEAP_SIZE): Move from w32heap.h.  Don't use
 6681 	HEAPSIZE; instead, define separate values for the 32- and 64-bit builds.
 6682 	(calloc): Don't undef, it is never defined.
 6683 	(HEAP_ENTRY_SHIFT): Remove unused macro.
 6684 
 6685 	* Makefile.in (C_HEAP_SWITCH): Remove.
 6686 	(ALL_CFLAGS): Don't use $(C_HEAP_SWITCH).
 6687 
 6688 	Fix MS-Windows build broken by menu changes on 2014-06-02.
 6689 	* w32menu.c (w32_menu_show): Fix a typo that broke compilation.
 6690 
 6691 	* menu.h (enum button_type, struct _widget_value) [HAVE_NTGUI]:
 6692 	Define instead of including ../lwlib/lwlib.h, which causes
 6693 	compilation errors due to missing X11 headers.
 6694 
 6695 2014-06-03  Paul Eggert  <eggert@cs.ucla.edu>
 6696 
 6697 	* process.c (wait_reading_process_output): Omit incorrect test of
 6698 	p->infd against zero.  Add easserts for infd having a plausible value.
 6699 
 6700 2014-06-02  Dmitry Antipov  <dmantipov@yandex.ru>
 6701 
 6702 	Adjust to match recent lwlib changes.
 6703 	* menu.h (xmalloc_widget_value): Replace by ...
 6704 	(make_widget_value): ... new prototype.
 6705 	* menu.c (xmalloc_widget_value): Replace by ...
 6706 	(make_widget_value): ... new function.
 6707 	(free_menubar_widget_value_tree, digest_single_submenu): Adjust users.
 6708 	* gtkutil.c (malloc_widget_value, free_widget_value):
 6709 	(widget_value_free_list, malloc_cpt): Remove old lwlib-compatible code.
 6710 	* keyboard.h (enum button_type, struct _widget_value):
 6711 	* gtkutil.h, nsgui.h, w32gui.h (malloc_widget_value, free_widget_value):
 6712 	Likewise.
 6713 	* nsmenu.m (ns_update_menubar, ns_menu_show):
 6714 	* w32menu.c (set_frame_menubar, w32_menu_show, w32_dialog_show):
 6715 	* xmenu.c (set_frame_menubar, xmenu_show, x_dialog_show): Adjust users.
 6716 	* xterm.h (XtParent) [USE_GTK]: Remove unused macro.
 6717 
 6718 2014-06-02  Dmitry Antipov  <dmantipov@yandex.ru>
 6719 
 6720 	* image.c (x_query_frame_background_color)
 6721 	[HAVE_PNG || HAVE_NS || HAVE_IMAGEMAGICK || HAVE_RSVG]:
 6722 	Fix --enable-gcc-warnings compilation without image libraries.
 6723 
 6724 2014-06-02  Eli Zaretskii  <eliz@gnu.org>
 6725 
 6726 	* w32heap.c (malloc_after_dump, realloc_after_dump): Update the
 6727 	emulated break value only if it goes up.
 6728 	(sbrk): Add assertion that the INCREMENT argument is strictly
 6729 	zero.  Improve and correct the commentary.
 6730 
 6731 2014-06-02  Paul Eggert  <eggert@cs.ucla.edu>
 6732 
 6733 	Improve AIX-related merge from emacs-24.
 6734 	* conf_post.h (FLEXIBLE_ARRAY_MEMBER): Fix comment.
 6735 	* lisp.h (ENUMABLE) [!_AIX]: Don't define to 0 merely because we're
 6736 	not on AIX; since we're on the trunk we can use enums more broadly.
 6737 
 6738 	* frame.c (x_set_frame_parameters): Don't read uninitialized storage.
 6739 
 6740 2014-06-02  Jan Djärv  <jan.h.d@swipnet.se>
 6741 
 6742 	* xterm.c (xg_scroll_callback): Remove position, for jump set portion
 6743 	to min(value, whole).
 6744 
 6745 2014-06-02  Paul Eggert  <eggert@cs.ucla.edu>
 6746 
 6747 	Bring back the changes to GDB-visible symbols, but only on AIX.
 6748 	And only if it's not pre-4.2 GCC.
 6749 	* lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): New macros.
 6750 	(ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Use them.
 6751 	(ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
 6752 	New macros.
 6753 
 6754 2014-06-02  Eli Zaretskii  <eliz@gnu.org>
 6755 
 6756 	* fileio.c (Finsert_file_contents): Call prepare_to_modify_buffer
 6757 	with PT, not GPT.  (Bug#16433)
 6758 
 6759 	Revert last changes to GDB-visible symbols.
 6760 	* lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): Delete macros.
 6761 	(ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Don't use them.
 6762 	(ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
 6763 	Delete macros.
 6764 
 6765 2014-06-02  Glenn Morris  <rgm@gnu.org>
 6766 
 6767 	* cmds.c (Fself_insert_command): Allow zero repeat count.  (Bug#17649)
 6768 
 6769 2014-06-02  Paul Eggert  <eggert@cs.ucla.edu>
 6770 
 6771 	Fix port to 32-bit AIX with xlc (Bug#17598).
 6772 	* alloc.c (gdb_make_enums_visible): Remove FLOAT_TO_STRING_BUFSIZE.
 6773 	* conf_post.h (FLEXIBLE_ARRAY_MEMBER) [__IBMC__]: Don't define to empty.
 6774 	* lisp.h (FLOAT_TO_STRING_BUFSIZE): Make it a macro, instead of an enum,
 6775 	to work around a compiler bug in IBM xlc 12.1.
 6776 
 6777 2014-06-02  Eli Zaretskii  <eliz@gnu.org>
 6778 
 6779 	* xterm.c (x_update_window_end): Don't invalidate the entire
 6780 	mouse-highlight info, just signal frame_up_to_date_hook that mouse
 6781 	highlight needs to be redisplayed.  (Bug#17588)
 6782 
 6783 2014-06-02  Paul Eggert  <eggert@cs.ucla.edu>
 6784 
 6785 	Port the GDB-visible symbols to AIX.
 6786 	Without them, GDB doesn't work to debug Emacs, since the AIX linker
 6787 	optimizes away the relevant external symbols.  Use enums instead;
 6788 	this suffices for the AIX port, which is 32-bit-only anyway.
 6789 	* lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): New macros.
 6790 	(ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Use them.
 6791 	(ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
 6792 	New macros.
 6793 
 6794 	Include sources used to create macuvs.h.
 6795 	* Makefile.in ($(srcdir)/macuvs.h): New rule.
 6796 	* macuvs.h: Use automatically-generated header.
 6797 
 6798 2014-06-01  Paul Eggert  <eggert@cs.ucla.edu>
 6799 
 6800 	Port signal-handling to DragonFly BSD (Bug#17646).
 6801 	* callproc.c, sysdep.c (block_child_signal, unblock_child_signal):
 6802 	Move implementations from callproc.c to sysdep.c.
 6803 	* process.h, syssignal.h (block_child_signal, unblock_child_signal):
 6804 	Move declarations from process.h to syssignal.h.
 6805 
 6806 2014-06-01  Juanma Barranquero  <lekktu@gmail.com>
 6807 
 6808 	* callint.c (Ffuncall_interactively): Add usage.
 6809 
 6810 2014-06-01  Jan Djärv  <jan.h.d@swipnet.se>
 6811 
 6812 	* nsfns.m (ns_appkit_version_str): Add os version for Cocoa.
 6813 
 6814 2014-05-30  Eli Zaretskii  <eliz@gnu.org>
 6815 
 6816 	* w32heap.c (malloc_before_dump, malloc_after_dump)
 6817 	(malloc_before_dump, realloc_after_dump, realloc_before_dump)
 6818 	(mmap_alloc, mmap_realloc): Check for errors more thoroughly and
 6819 	set errno where appropriate to emulate CRT functions.
 6820 
 6821 2014-05-30  Dmitry Antipov  <dmantipov@yandex.ru>
 6822 
 6823 	Debugging facility to check whether 'const char *' points to
 6824 	relocatable data of non-pure Lisp string.
 6825 	* alloc.c (maybe_lisp_pointer): New function, refactored out of ...
 6826 	(mark_maybe_pointer): ... adjusted user.
 6827 	(relocatable_string_data_p): New function.
 6828 	* lisp.h (relocatable_string_data_p): Add prototype.
 6829 	* xdisp.c (message_with_string): If ENABLE_CHECKING, make sure
 6830 	the pointer to relocatable Lisp data is not used.
 6831 
 6832 2014-05-30  Paul Eggert  <eggert@cs.ucla.edu>
 6833 
 6834 	Don't let SIGINT handling block SIGCHLD indefinitely (Bug#17561).
 6835 	* atimer.c (block_atimers):
 6836 	* callproc.c (block_child_signal): Block SIGINT too;
 6837 	otherwise, its handler might now unblock signals that it shouldn't.
 6838 	* keyboard.c (read_char): Clear signal mask, since we may
 6839 	be in a SIGINT handler, and many signals may be masked.
 6840 	* keyboard.c (handle_interrupt):
 6841 	* sysdep.c (handle_arith_signal):
 6842 	Clear signal mask instead of just unblocking the signal that
 6843 	was received, since several signals may be blocked at this point.
 6844 
 6845 2014-05-29  Eli Zaretskii  <eliz@gnu.org>
 6846 
 6847 	* Makefile.in (TEMACS_POST_LINK): Remove target.
 6848 	(emacs$(EXEEXT)): Remove $(ADDSECTION) from prerequisites.
 6849 	(temacs$(EXEEXT)): Remove $(TEMACS_POST_LINK) from the recipe.
 6850 
 6851 2014-05-29  Dmitry Antipov  <dmantipov@yandex.ru>
 6852 
 6853 	* xmenu.c (xdialog_show): Remove prototype, rename to
 6854 	x_dialog_show, remove 2nd arg because it's always zero
 6855 	and simplify accordingly.
 6856 	(xw_popup_dialog): Adjust user.
 6857 	* w32menu.c (w32_dialog_show): Adjust prototype, remove
 6858 	2nd arg because it's always zero and simplify accordingly.
 6859 	(w32_popup_dialog): Adjust user.
 6860 
 6861 2014-05-29  Eli Zaretskii  <eliz@gnu.org>
 6862 
 6863 	* w32heap.c (report_temacs_memory_usage): New function.
 6864 
 6865 	* unexw32.c (unexec) [ENABLE_CHECKING]:
 6866 	Call report_temacs_memory_usage.
 6867 
 6868 	* w32heap.h (report_temacs_memory_usage): Add prototype.
 6869 
 6870 2014-05-29  Paul Eggert  <eggert@cs.ucla.edu>
 6871 
 6872 	Don't substitute sigprocmask for pthread_sigmask (Bug#17561).
 6873 	* Makefile.in (LIB_PTHREAD_SIGMASK): Remove; all uses removed.
 6874 
 6875 2014-05-29  Eli Zaretskii  <eliz@gnu.org>
 6876 
 6877 	* buffer.c (init_buffer): Accept an argument 'initialized'.
 6878 	[USE_MMAP_FOR_BUFFERS]: If 'initialized' is non-zero, reset
 6879 	mmap_regions and mmap_fd, to avoid referencing stale data from the
 6880 	dump phase.  Add an assertion for buffer text of buffers created
 6881 	in temacs before this function is called.  (Bug#17622)
 6882 	(mmap_regions_1, mmap_fd_1): Remove unused variables.
 6883 
 6884 	* lisp.h (init_buffer): Update prototype.
 6885 
 6886 	* emacs.c (main): Pass 'initialized' as the argument to init_buffer.
 6887 
 6888 2014-05-29  Dmitry Antipov  <dmantipov@yandex.ru>
 6889 
 6890 	* alloc.c (Fgarbage_collect): Fix compilation with
 6891 	GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE.
 6892 
 6893 2014-05-29  Paul Eggert  <eggert@cs.ucla.edu>
 6894 
 6895 	* frame.c, frame.h (frame_char_to_pixel_position)
 6896 	(frame_set_mouse_position): Now static, and made private in
 6897 	frame.c rather than public in frame.h.
 6898 
 6899 2014-05-28  Dmitry Antipov  <dmantipov@yandex.ru>
 6900 
 6901 	Refactor mouse positioning stuff to avoid code duplication.
 6902 	* frame.h (frame_char_to_pixel_position): New function.
 6903 	(x_set_mouse_position): Rename to...
 6904 	(frame_set_mouse_position): ...new function.
 6905 	(frame_set_mouse_pixel_position): Add prototype.
 6906 	* nsterm.m, w32term.c, xterm.c (x_set_mouse_pixel_position):
 6907 	Rename to frame_set_mouse_pixel_position.
 6908 	* frame.c (Fset_mouse_pixel_position, Fset_mouse_position):
 6909 	Adjust users.
 6910 	* xterm.h, w32term.h ( x_set_mouse_position)
 6911 	(x_set_mouse_pixel_position): Remove prototypes.
 6912 
 6913 2014-05-28  Dmitry Antipov  <dmantipov@yandex.ru>
 6914 
 6915 	On X, always make pointer visible when deleting frame (Bug#17609).
 6916 	* frame.c (frame_make_pointer_visible, frame_make_pointer_invisible):
 6917 	Pass frame as arg.
 6918 	* frame.h (frame_make_pointer_visible, frame_make_pointer_invisible):
 6919 	Adjust prototypes.
 6920 	* cmds.c (Fself_insert_command): Use SELECTED_FRAME.
 6921 	* keyboard.c (gobble_input): If there is no terminal input error,
 6922 	make sure the pointer is visible for all frames on this terminal.
 6923 	* xterm.c (x_free_frame_resources): Enable pointer visibility if
 6924 	it was previously disabled.
 6925 
 6926 2014-05-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 6927 
 6928 	* data.c (Fzerop): Move to Elisp.
 6929 	(syms_of_data): Don't defsubr it.
 6930 	* keyboard.c (echo_keystrokes_p): New function.
 6931 	(read_char, record_menu_key, read_key_sequence): Use it.
 6932 
 6933 	* callint.c (Qfuncall_interactively): New var.
 6934 	(Qcall_interactively): Remove.
 6935 	(Ffuncall_interactively): New function.
 6936 	(Fcall_interactively): Use it.
 6937 	(syms_of_callint): Defsubr it.
 6938 
 6939 2014-05-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 6940 
 6941 	* bytecode.c (FETCH) [BYTE_CODE_SAFE]: Check the bytecode wasn't
 6942 	relocated from under us.
 6943 
 6944 2014-05-27  Fabrice Popineau  <fabrice.popineau@gmail.com>
 6945 
 6946 	Use mmap(2) emulation for allocating buffer text on MS-Windows.
 6947 	* Makefile.in (C_HEAP_SWITCH): Get the predefined heap size from
 6948 	configure, not from HEAPSIZE.
 6949 	(ADDSECTION, MINGW_TEMACS_POST_LINK): Remove, no longer used.
 6950 
 6951 	* lisp.h (NONPOINTER_BITS): Modify the condition to define to zero
 6952 	for MinGW, since it no longer uses gmalloc.
 6953 
 6954 	* buffer.c: Do not define mmap allocations functions for Windows.
 6955 	Remove mmap_find which is unused. Remove mmap_set_vars which does
 6956 	nothing useful.
 6957 	[WINDOWSNT]: Include w32heap.h.
 6958 	(init_buffer): Always allocate new memory for buffers.
 6959 
 6960 	* emacs.c: Remove mmap_set_vars calls.
 6961 
 6962 	* image.c (free_image): Undef free for Windows because it is
 6963 	redirected to our private version.
 6964 
 6965 	* unexw32.c (COPY_PROC_CHUNK): Use %p format for 64bits compatibility.
 6966 	(copy_executable_and_dump_data): Remove dumping the heap section.
 6967 	(unexec): Restore using_dynamic_heap after dumping.
 6968 
 6969 	* w32heap.c (dumped_data_commit, malloc_after_dump)
 6970 	(malloc_before_dump, realloc_after_dump, realloc_before_dump)
 6971 	(free_after_dump, free_before_dump, mmap_alloc, mmap_realloc)
 6972 	(mmap_free): New functions.
 6973 
 6974 	* w32heap.h: Declare dumped_data and mmap_* function prototypes.
 6975 
 6976 2014-05-27  Paul Eggert  <eggert@cs.ucla.edu>
 6977 
 6978 	* image.c (imagemagick_load_image): Use MagickRealType for local
 6979 	'color_scale', instead of double, to avoid a GCC warning about
 6980 	double promotion.
 6981 
 6982 	* xfns.c (Fx_window_property): Remove unused local.
 6983 
 6984 	Don't kill already-reaped process (Bug#17561).
 6985 	* process.c (process_send_signal): Fix race condition where a
 6986 	subprocess was reaped by a signal handler between the check for
 6987 	liveness and calling 'kill', which meant that Emacs could in
 6988 	theory kill an innocent bystander process.  Do the fix by blocking
 6989 	SIGCHLD in a critical section that checks liveness before killing.
 6990 
 6991 2014-05-26  Eli Zaretskii  <eliz@gnu.org>
 6992 
 6993 	* w32.c (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT): Define only if undefined.
 6994 
 6995 2014-05-26  Ken Brown  <kbrown@cornell.edu>
 6996 
 6997 	* w32term.c (x_delete_display): Don't free dpyinfo->w32_id_name,
 6998 	even if !CYGWIN (see bug#17510).
 6999 
 7000 2014-05-26  Jan Djärv  <jan.h.d@swipnet.se>
 7001 
 7002 	* nsfns.m (Fns_do_applescript): Surround NSApp run
 7003 	with calls to ns_init_events, ns_finish_events (Bug#17424).
 7004 
 7005 	* nsterm.h (ns_init_events, ns_finish_events): Declare.
 7006 
 7007 	* nsterm.m (ns_init_events, ns_finish_events): New functions.
 7008 	(ns_read_socket, ns_select): Call ns_init_events, ns_finish_events.
 7009 
 7010 	* nsfns.m (ns_do_applescript): Surround executeAndReturnError
 7011 	with calls to ns_init_events, ns_finish_events (Bug#17424).
 7012 
 7013 2014-05-26  Eli Zaretskii  <eliz@gnu.org>
 7014 
 7015 	* xdisp.c (move_it_in_display_line_to): Don't record wrap position
 7016 	if we are iterating over an object that generates glyphs for
 7017 	marginal areas.  (Bug#17585)
 7018 
 7019 2014-05-26  Paul Eggert  <eggert@cs.ucla.edu>
 7020 
 7021 	* xdisp.c (safe__call1, safe__eval): Now static.
 7022 
 7023 2014-05-26  Eli Zaretskii  <eliz@gnu.org>
 7024 
 7025 	* xdisp.c (safe__call): Accept va_list argument instead of '...'.
 7026 	(safe_call, safe__call1): Construct a va_list argument for safe_call.
 7027 	(safe_call1): Call safe_call instead of safe__call directly.
 7028 
 7029 2014-05-26  Ken Brown  <kbrown@cornell.edu>
 7030 
 7031 	* w32term.c (x_delete_display) [CYGWIN]: Don't free
 7032 	dpyinfo->w32_id_name, to make sure it doesn't get freed more than
 7033 	once.  (Bug#17510)
 7034 
 7035 2014-05-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 7036 
 7037 	* xdisp.c: Bind inhibit-quit during pre-redisplay-function.
 7038 	(safe__call, safe__call1, safe__eval): New functions.
 7039 	(safe_call): Use it.
 7040 	(prepare_menu_bars): Use it for pre-redisplay-function (bug#17577).
 7041 	(display_mode_element): Same for `:eval'.
 7042 
 7043 2014-05-26  Paul Eggert  <eggert@cs.ucla.edu>
 7044 
 7045 	Fix port to 32-bit AIX (Bug#17540).
 7046 	* unexaix.c (copy_text_and_data): Don't add text_scnptr to ptr
 7047 	twice.  _text already includes this offset.
 7048 	(unrelocate_symbols): Don't cast 64-bit integer to pointer.
 7049 
 7050 2014-05-26  Eli Zaretskii  <eliz@gnu.org>
 7051 
 7052 	* xdisp.c (move_it_in_display_line_to): Avoid infinite recursion:
 7053 	when closest_pos is identical to to_charpos, don't recurse, since
 7054 	we already tried that, and failed.  (Bug#17539)
 7055 
 7056 	* w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: If we are
 7057 	unwinding when frame's faces were not initialized yet, increment
 7058 	the frame's image-cache reference count before calling
 7059 	x_free_frame_resources.  Don't dereference
 7060 	dpyinfo->terminal->image_cache if it is NULL.  (Bug#17524)
 7061 
 7062 2014-05-25  Jan Djärv  <jan.h.d@swipnet.se>
 7063 
 7064 	* nsfont.m (nsfont_draw): Simplify as arguments are adjusted in
 7065 	nsterm.m now.
 7066 
 7067 	* nsterm.m (ns_draw_glyph_string): Move isComposite and end from
 7068 	macfont.m, call draw with adjusted arguments so font drivers
 7069 	don't need to do that.
 7070 
 7071 	* macfont.m (macfont_draw): Merge changes from Macport.
 7072 
 7073 2014-05-24  Eli Zaretskii  <eliz@gnu.org>
 7074 
 7075 	* alloc.c (garbage_collect_1): New function, with all of the guts
 7076 	of Fgarbage_collect.
 7077 	(mark_stack): Accept an argument END and don't mark Lisp objects
 7078 	on the stack beyond the address given by END.  Calculation of END
 7079 	was moved to Fgarbage_collect.
 7080 	(Fgarbage_collect): Calculate the end address of the stack portion
 7081 	that needs to be examined by mark_stack, and pass that address to
 7082 	garbage_collect_1, which will pass it to mark_stack.
 7083 	See https://lists.gnu.org/r/emacs-devel/2014-05/msg00270.html
 7084 	for more details about the underlying problems.  In particular,
 7085 	this avoids dumping Emacs with the large hash-table whose value is
 7086 	held in purify-flag for most of the time loadup.el runs.
 7087 
 7088 2014-05-24  Jan Djärv  <jan.h.d@swipnet.se>
 7089 
 7090 	* xfns.c (x_window_property_intern): New function (code from
 7091 	x_window_property).
 7092 	(Fx_window_property): Call x_window_property_intern.  If property
 7093 	not found and NILP (source) and outer window != inner window,
 7094 	check outer window for property (Bug#17537).
 7095 
 7096 2014-05-22  Paul Eggert  <eggert@cs.ucla.edu>
 7097 
 7098 	Supply malloc and alloc_size attributes for extern allocators.
 7099 	This documents the C API, and helps GCC generate a bit better code.
 7100 	* conf_post.h (ATTRIBUTE_MALLOC, ATTRIBUTE_ALLOC_SIZE)
 7101 	(ATTRIBUTE_MALLOC_SIZE): New macros.
 7102 	* gmalloc.c (malloc, realloc, calloc):
 7103 	* gtkutil.h (malloc_widget_value):
 7104 	* lisp.h (ralloc, r_re_alloc, xmalloc, xzalloc, xrealloc, xnmalloc)
 7105 	(xnrealloc, xstrdup, xlispstrdup, record_xmalloc):
 7106 	Use them.
 7107 
 7108 2014-05-21  Paul Eggert  <eggert@cs.ucla.edu>
 7109 
 7110 	Don't assume that ImageMagick uses a 16-bit quantum (Bug#17519).
 7111 	* image.c (imagemagick_load_image): Port to hosts that do not use
 7112 	a 16-bit quantum, i.e., QuantumRange does not equal 65535.
 7113 
 7114 2014-05-21  Leo Liu  <sdl.web@gmail.com>
 7115 
 7116 	* fns.c (Fnreverse): Accept strings for SEQ and update doc-string.
 7117 
 7118 2014-05-20  Michael Albinus  <michael.albinus@gmx.de>
 7119 
 7120 	* dbusbind.c (xd_signature): Revert last 2 patches.
 7121 
 7122 2014-05-19  Paul Eggert  <eggert@cs.ucla.edu>
 7123 
 7124 	Allow any non-nil value to count as true in bool-vector.
 7125 	Likewise for xd_signature in dbusbind.c.
 7126 	This is more consistent with the usual practice in Emacs, which is
 7127 	that any non-nil value counts as true.
 7128 	* alloc.c (Fbool_vector): Don't require args to be t or nil.
 7129 	* dbusbind.c (xd_signature): Likewise, for booleans.
 7130 	* data.c, lisp.h (Qbooleanp):
 7131 	* lisp.h (CHECK_BOOLEAN): Remove.  All uses removed.
 7132 
 7133 2014-05-19  Dmitry Antipov  <dmantipov@yandex.ru>
 7134 
 7135 	* lisp.h (CHECK_BOOLEAN): New function.
 7136 	* alloc.c (Fbool_vector): New function.
 7137 	(syms_of_alloc): Defsubr it.
 7138 	* data.c (Qbooleanp): New symbol.
 7139 	(syms_of_data): DEFSYM it.
 7140 	* dbusbind.c (xd_signature): Use CHECK_BOOLEAN.
 7141 
 7142 	* font.c (font_matching_entity): Extract font-entity object
 7143 	from the vector of matching entities (Bug#17486).
 7144 
 7145 2014-05-17  Paul Eggert  <eggert@cs.ucla.edu>
 7146 
 7147 	Assume C99 or later (Bug#17487).
 7148 	* bytecode.c (B__dummy__): Remove.
 7149 	* conf_post.h (bool_bf) [!NS_IMPL_GNUSTEP]: Use bool.
 7150 	(FLEXIBLE_ARRAY_MEMBER): Now always empty.
 7151 	* dbusbind.c (XD_DEBUG_MESSAGE) [!DBUS_DEBUG]:
 7152 	* regex.c (DEBUG_PRINT): Assume varargs macros.
 7153 	* lisp.h (DEFUN_FUNCTION_INIT): Remove.  All uses now assume C99.
 7154 
 7155 2014-05-17  Fabrice Popineau  <fabrice.popineau@gmail.com>
 7156 
 7157 	* buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Always map new
 7158 	memory for every buffer that was dumped.
 7159 
 7160 2014-05-15  Dmitry Antipov  <dmantipov@yandex.ru>
 7161 
 7162 	* fns.c (Freverse): Allow vectors, bool vectors and strings.
 7163 	(Fnreverse): Allow vectors and bool vectors.
 7164 
 7165 2014-05-14  Dmitry Antipov  <dmantipov@yandex.ru>
 7166 
 7167 	Minor cleanup for terminal setup.
 7168 	* termhooks.h (create_terminal): Adjust prototype.
 7169 	* terminal.c (create_terminal): Pass output method and RIF as args.
 7170 	(init_initial_terminal):
 7171 	* nsterm.m (ns_create_terminal):
 7172 	* term.c (init_tty):
 7173 	* w32term.c (w32_create_terminal):
 7174 	* xterm.c (x_create_terminal): Adjust users.
 7175 	Avoid redundant NULL initializers and add comments.
 7176 
 7177 2014-05-13  Paul Eggert  <eggert@cs.ucla.edu>
 7178 
 7179 	* keyboard.c (Qdeactivate_mark): Now static.
 7180 
 7181 2014-05-13  Dmitry Antipov  <dmantipov@yandex.ru>
 7182 
 7183 	If available, use Xfixes extension to do pointer blanking.
 7184 	* Makefile.in (XFIXES_CFLAGS, XFIXES_LIBS): New var.
 7185 	* xfns.c (x_set_mouse_color): Do not call make_invisible_cursor here.
 7186 	(make_invisible_cursor): Move to...
 7187 	* xterm.c (make_invisible_cursor): ...here.
 7188 	(x_probe_xfixes_extension, xfixes_toggle_visible_pointer)
 7189 	(x_toggle_visible_pointer, x_setup_pointer_blanking): New functions.
 7190 	(x_term_init): Call to x_setup_pointer_blanking.
 7191 	(XTtoggle_invisible_pointer): Use blanking specific to this display.
 7192 	* xterm.h (struct x_display_info): New member toggle_visible_pointer.
 7193 
 7194 2014-05-12  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 7195 
 7196 	* xdisp.c (draw_glyphs): Set clipping to highlight boundaries.
 7197 
 7198 2014-05-12  Glenn Morris  <rgm@gnu.org>
 7199 
 7200 	* fileio.c (Ffile_executable_p): Doc tweak.
 7201 
 7202 2014-05-12  Jan Djärv  <jan.h.d@swipnet.se>
 7203 
 7204 	* xsettings.c (init_gsettings): Use g_settings_schema_source_lookup
 7205 	instead of deprecated g_settings_list_schemas if possible (Bug#17434).
 7206 
 7207 2014-05-08  Paul Eggert  <eggert@cs.ucla.edu>
 7208 
 7209 	* minibuf.c (read_minibuf): Avoid C99ism in previous patch (Bug#17430).
 7210 
 7211 2014-05-08  Jarek Czekalski  <jarekczek@poczta.onet.pl>
 7212 
 7213 	Fix initialization of minibuffer history variable (Bug#17430).
 7214 	* minibuf.c (read_minibuf): Initialize histval to Qnil if unbound.
 7215 	Move the initialization up to prevent any "value void" message.
 7216 
 7217 2014-05-08  Samuel Bronson  <naesten@gmail.com>
 7218 
 7219 	* keyboard.c (Frecursive_edit): Ensure inc&dec of command_loop_level
 7220 	are matched (bug#17413).
 7221 
 7222 2014-05-08  Jarek Czekalski  <jarekczek@poczta.onet.pl>
 7223 
 7224 	Stop tooltips pulling Emacs window to front (Bug#17408).
 7225 	* w32fns.c (Fx_show_tip): Add SWP_NOOWNERZORDER flag to
 7226 	SetWindowPos invocations.
 7227 
 7228 2014-05-08  Jan Djärv  <jan.h.d@swipnet.se>
 7229 
 7230 	* nsselect.m (Fx_selection_exists_p): Just return Qnil if window system
 7231 	not initialized (Bug#17398).
 7232 
 7233 2014-05-07  Paul Eggert  <eggert@cs.ucla.edu>
 7234 
 7235 	* image.c: Include <png.h> before <setjmp.h> (Bug#17429).
 7236 
 7237 2014-05-06  Paul Eggert  <eggert@cs.ucla.edu>
 7238 
 7239 	* image.c: Do not use libpng if HAVE_NS, as NS does its own thing.
 7240 	[HAVE_NS]: Do not include png.h.
 7241 	(x_query_frame_background_color): New function.
 7242 	(png_load_body, imagemagick_load_image, svg_load_image): Use it.
 7243 	(png_load_body): Coalesce duplicate code.
 7244 
 7245 2014-05-04  Paul Eggert  <eggert@cs.ucla.edu>
 7246 
 7247 	Consult libpng-config more consistently (Bug#17339).
 7248 	* Makefile.in (PNG_CFLAGS): New var.
 7249 	(ALL_CFLAGS): Use it.
 7250 	* image.c [HAVE_PNG]: Don't worry about <libpng/png.h>, as
 7251 	CFLAGS now handles this.
 7252 
 7253 2014-05-03  Paul Eggert  <eggert@cs.ucla.edu>
 7254 
 7255 	Handle systems without WCONTINUED consistently.  (Bug#15110, 17339)
 7256 	* process.c (handle_child_signal): Remove WCONTINUED ifdef,
 7257 	because WCONTINUED is always defined now.
 7258 	* syswait.h (WCONTINUED): Move here from ../lib-src/emacsclient.c.
 7259 
 7260 2014-05-03  Eli Zaretskii  <eliz@gnu.org>
 7261 
 7262 	* buffer.c (overlay_strings): Fix the wording of the commentary.
 7263 
 7264 2014-05-01  Glenn Morris  <rgm@gnu.org>
 7265 
 7266 	* floatfns.c (Fisnan):
 7267 	* profiler.c (Fprofiler_cpu_running_p): Doc fix (replace `iff').
 7268 
 7269 2014-05-01  Eli Zaretskii  <eliz@gnu.org>
 7270 
 7271 	* term.c (tty_menu_activate): A better initialization for cursor
 7272 	coordinates.
 7273 
 7274 2014-05-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 7275 
 7276 	* intervals.c: Tighten assertions.
 7277 	(create_root_interval): Make sure the interval is not empty.
 7278 	(intervals_equal): Use booleans.
 7279 	(rotate_right, rotate_left): Check LENGTHs rather than TOTAL_LENGTH.
 7280 	(balance_an_interval): Sanity check LENGTHs and TOTAL_LENGTHs.
 7281 	(balance_possible_root_interval): Simplify and use booleans.
 7282 	(split_interval_right, split_interval_left): Check LENGTH, and remove
 7283 	now redundant assertion.
 7284 	(adjust_intervals_for_insertion): Remove now redundant assertions.
 7285 	(delete_node, interval_deletion_adjustment)
 7286 	(adjust_intervals_for_deletion, merge_interval_right)
 7287 	(merge_interval_left): Check LENGTH rather than TOTAL_LENGTH.
 7288 	(reproduce_interval): Make sure the interval is not empty.
 7289 
 7290 2014-04-30  Paul Eggert  <eggert@cs.ucla.edu>
 7291 
 7292 	* term.c (tty_menu_activate): Don't assume row and col are initialized.
 7293 	GCC 4.9.0 warned about this, and I couldn't easily prove to my own
 7294 	satisfaction that they would always be initialized.
 7295 
 7296 2014-04-30  Eli Zaretskii  <eliz@gnu.org>
 7297 
 7298 	* term.c (tty_menu_display): Move the cursor to the active menu item.
 7299 	(tty_menu_activate): Return the cursor to the active menu item
 7300 	after displaying the menu and after displaying help-echo.
 7301 	See https://lists.gnu.org/r/emacs-devel/2014-04/msg00402.html
 7302 	for the details of why this is needed by screen readers and
 7303 	Braille displays.
 7304 
 7305 2014-04-30  Glenn Morris  <rgm@gnu.org>
 7306 
 7307 	* process.c (handle_child_signal):
 7308 	Handle systems without WCONTINUED.  (Bug#15110, 17339)
 7309 
 7310 2014-04-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 7311 
 7312 	* window.c (struct saved_window): Remove mark.
 7313 	(Fset_window_configuration, save_window_save)
 7314 	(compare_window_configurations): Don't touch marks any more.
 7315 
 7316 2014-04-28  Paul Eggert  <eggert@cs.ucla.edu>
 7317 
 7318 	Use bits_word for gcmarkbits.
 7319 	* alloc.c (struct cons_block, struct float_block): On 64-bit hosts,
 7320 	bits_word is typically a tad more efficient for mark bits than
 7321 	unsigned is, so use bits_word.  All uses changed.
 7322 	* lisp.h (BITS_PER_INT): Remove; no longer used.
 7323 
 7324 	Avoid undefined behavior in signed left shift.
 7325 	This ports to GCC 4.9.0 with -fsanitize=undefined.
 7326 	* alloc.c (bool_vector_fill, SETMARKBIT, UNSETMARKBIT):
 7327 	* data.c (Fash):
 7328 	* regex.c (extract_number):
 7329 	* lisp.h (make_number, XINT):
 7330 	Do not shift a 1 bit left into a sign bit.
 7331 	* alloc.c (struct cons_block, struct float_block): Use unsigned,
 7332 	not int, for gcmarkbits.  All uses changed.
 7333 
 7334 2014-04-25  Eli Zaretskii  <eliz@gnu.org>
 7335 
 7336 	* search.c (Fnewline_cache_check): Don't try to count newlines
 7337 	outside the buffer's restriction, as find_newline doesn't support that.
 7338 
 7339 2014-04-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 7340 
 7341 	* window.c (Fset_window_configuration): Deactivate the mark before
 7342 	unsetting the mark.
 7343 	(set_window_buffer): Ignore window_initialized.
 7344 	(window_initialized): Remove.
 7345 	* keyboard.c (Qdeactivate_mark): Not static any more.
 7346 	* buffer.c (buffer_local_value): Rename from buffer_local_value_1.
 7347 	Update all callers.
 7348 
 7349 2014-04-23  Paul Eggert  <eggert@cs.ucla.edu>
 7350 
 7351 	* conf_post.h (ADDRESS_SANITIZER_WORKAROUND): Port to GCC 4.9.0
 7352 	and to clang 3.4, which have fixed the bug.  This should let us
 7353 	run a bit faster on these platforms when address sanitization is
 7354 	in effect.
 7355 
 7356 2014-04-22  Paul Eggert  <eggert@cs.ucla.edu>
 7357 
 7358 	Port to GCC 4.9.0 with --enable-gcc-warnings.
 7359 	* image.c (struct my_jpeg_error_mgr) [lint]: Remove member fp.
 7360 	All uses removed.
 7361 	(jpeg_load_body) [lint]: Add a 'volatile' to pacify a buggy GCC in
 7362 	a way that also works with GCC 4.9.0.
 7363 
 7364 	* search.c (Fnewline_cache_check): Remove unused locals.
 7365 
 7366 2014-04-22  Eli Zaretskii  <eliz@gnu.org>
 7367 
 7368 	* search.c (find_newline1): New subroutine.
 7369 	(Fnewline_cache_check): New function.
 7370 	(syms_of_search): Defsubr it.
 7371 
 7372 2014-04-22  Jarek Czekalski  <jarekczek@poczta.onet.pl>
 7373 
 7374 	Fix freezing with scroll bars of GTK3 Toolkit (bug#15801).
 7375 	* keyboard.c (unblock_input): Add comment.
 7376 	* xgselect.c (xg_select): Prevent Glib main loop recursion.
 7377 
 7378 2014-04-22  Daniel Colascione  <dancol@dancol.org>
 7379 
 7380 	* lread.c (readevalloop_eager_expand_eval): New function
 7381 	that can recurse into toplevel forms.
 7382 	(readevalloop): Call it.
 7383 	* lisp.h: Declare Qprogn.
 7384 	* callint.c (Qprogn): No longer static.
 7385 
 7386 2014-04-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 7387 
 7388 	* intervals.c (rotate_right, rotate_left): Fix up length computation.
 7389 	Also change identifiers to match the comments, and add more assertions
 7390 	(bug#16234).
 7391 
 7392 2014-04-18  Paul Eggert  <eggert@cs.ucla.edu>
 7393 
 7394 	* emacs.c (close_output_streams): Don't clear and restore errno.
 7395 
 7396 2014-04-18  Jan Djärv  <jan.h.d@swipnet.se>
 7397 
 7398 	* xterm.c (x_make_frame_visible): Prevent endless loop when frame
 7399 	never becomes visible, i.e. using XMonad  (Bug#17237).
 7400 
 7401 2014-04-18  Eli Zaretskii  <eliz@gnu.org>
 7402 
 7403 	* xdisp.c (insert_left_trunc_glyphs): Ensure the left truncation
 7404 	glyph is written to TEXT_AREA of the temporary glyph_row.  (Bug#17288)
 7405 	(Fline_pixel_height): Don't assume that the current buffer and the
 7406 	selected window's buffer are one and the same.  (Bug#17281)
 7407 
 7408 	* insdel.c (invalidate_buffer_caches): Invalidate the bidi
 7409 	paragraph-start cache before the newline cache.  (Bug#17269)
 7410 
 7411 2014-04-17  Paul Eggert  <eggert@cs.ucla.edu>
 7412 
 7413 	* term.c (tty_send_additional_strings): No need to fflush here,
 7414 	as callers fflush.
 7415 	(tty_set_terminal_modes): fflush after sending additional strings,
 7416 	not before.
 7417 
 7418 2014-04-17  Daniel Colascione  <dancol@dancol.org>
 7419 
 7420 	* term.c (Qtty_mode_set_strings, Qtty_mode_reset_strings):
 7421 	New symbols.
 7422 	(tty_send_additional_strings): New function.
 7423 	(tty_set_terminal_modes, tty_reset_terminal_modes): Use it.
 7424 	(syms_of_term): Intern tty-mode-set-strings and
 7425 	tty-mode-reset-strings.
 7426 
 7427 2014-04-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 7428 
 7429 	* window.c (save_window_save): Lookup window_point_insertion_type in
 7430 	the right buffer (bug#15457).
 7431 	(Qwindow_point_insertion_type): New var.
 7432 	(syms_of_window): Initialize it.
 7433 
 7434 2014-04-16  Eli Zaretskii  <eliz@gnu.org>
 7435 
 7436 	Fix the MSDOS build.
 7437 	* unexcoff.c [MSDOS]: Include libc/atexit.h.
 7438 	(copy_text_and_data): Zero out the atexit chain pointer before
 7439 	dumping Emacs.
 7440 
 7441 	* termhooks.h (encode_terminal_code): Update prototype.
 7442 
 7443 	* term.c (encode_terminal_code) [DOS_NT]: Make it externally
 7444 	visible for all DOS_NT ports, not just WINDOWSNT.
 7445 	(syms_of_term) [!MSDOS]: Don't define 'tty-menu-*' symbols on MSDOS.
 7446 
 7447 	* sysdep.c (emacs_sigaction_init, init_signals): Don't use SIGCHLD
 7448 	unless it is defined.
 7449 	(emacs_pipe) [MSDOS]: Redirect to 'pipe'.
 7450 
 7451 	* process.c (close_on_exec, accept4, process_socket): Move into
 7452 	the "ifdef subprocesses" part.
 7453 	(catch_child_signal): Condition by "ifdef subprocesses".
 7454 	(syms_of_process) <Qinternal_default_process_sentinel>
 7455 	<Qinternal_default_process_filter>: Condition by "ifdef subprocesses".
 7456 
 7457 	* msdos.h: Add prototypes for new functions.
 7458 	(EINPROGRESS): Define.
 7459 	(O_CLOEXEC): Define to zero.
 7460 
 7461 	* msdos.c (check_window_system): Remove unnecessary an
 7462 	incompatible duplicate function.
 7463 	(sys_opendir, readlinkat, faccessat, fstatat, unsetenv):
 7464 	New functions in support of new functionality.
 7465 
 7466 	* menu.c (single_menu_item): Add visual indication  of submenu
 7467 	also for menus on MSDOS frames.
 7468 	(Fx_popup_menu) [!MSDOS]: Do not call tty_menu_show on MSDOS.
 7469 
 7470 	* lisp.h (CHECK_PROCESS) [!subprocesses]: Do not define
 7471 	when async subprocesses aren't supported.
 7472 
 7473 	* font.h (FONT_WIDTH) [MSDOS]: MSDOS-specific definition.
 7474 
 7475 	* emacs.c (close_output_streams): Zero out errno before calling
 7476 	close_stream.
 7477 
 7478 	* dired.c [MSDOS]: Include msdos.h.
 7479 
 7480 	* conf_post.h (opendir) [MSDOS]: Redirect to sys_opendir.
 7481 	(DATA_START) [MSDOS]: Define.
 7482 	(SYSTEM_PURESIZE_EXTRA) [MSDOS]: Enlarge by 25K.
 7483 
 7484 	* callproc.c (block_child_signal, unblock_child_signal) [MSDOS]:
 7485 	Ifdef away for MSDOS.
 7486 	(record_kill_process) [MSDOS]: Ifdef away the entire body for MSDOS.
 7487 	(call_process_cleanup) [MSDOS]: Ifdef away portions not relevant
 7488 	for MSDOS.
 7489 	(call_process) [MSDOS]: Fix call sequence of dostounix_filename.
 7490 	Use temporary file template that is compatible with mkostemp.
 7491 	Move vfork-related portions under #ifndef MSDOS.
 7492 	(syms_of_callproc): Unify templates of MSDOS and WINDOWSNT.
 7493 
 7494 2014-04-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 7495 
 7496 	* buffer.c (Foverlays_at): Add argument `sorted'.
 7497 
 7498 2014-04-16  Eli Zaretskii  <eliz@gnu.org>
 7499 
 7500 	* insdel.c (invalidate_buffer_caches): When deleting or replacing
 7501 	text, invalidate the bidi_paragraph_cache upto and including the
 7502 	preceding newline.
 7503 
 7504 2014-04-16  Paul Eggert  <eggert@cs.ucla.edu>
 7505 
 7506 	Port to IRIX 6.5 (Bug#9684).
 7507 	* conf_post.h (INET6) [IRIX6_5]: Define.
 7508 	(HAVE_GETADDRINFO) [IRIX6_5]: Undef.
 7509 	* data.c (BITS_PER_ULL): Don't assume ULLONG_MAX is defined.
 7510 
 7511 2014-04-16  Eli Zaretskii  <eliz@gnu.org>
 7512 
 7513 	* keyboard.c (Fopen_dribble_file): Encode the dribble file-name
 7514 	before passing it to system APIs.
 7515 
 7516 2014-04-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 7517 
 7518 	* bytecode.c (exec_byte_code): Rework the volatiles.  Most importantly,
 7519 	make sure stack.byte_string_start is not de-adjusted by pushhandler.
 7520 
 7521 2014-04-16  Paul Eggert  <eggert@cs.ucla.edu>
 7522 
 7523 	* keyboard.c (Fopen_dribble_file): Avoid some races.  (Bug#17187)
 7524 
 7525 2014-04-15  Paul Eggert  <eggert@cs.ucla.edu>
 7526 
 7527 	Remove DATA_SEG_BITS.
 7528 	The DATA_SEG_BITS hack was needed for older 32 bit platforms.
 7529 	As a result of this change, Emacs won't work on IRIX 6.5 with IRIX
 7530 	cc, but that platform is so old that SGI itself stopped supporting
 7531 	it in December 2013.  If you still need Emacs on IRIX, please
 7532 	either compile with GCC and port the undumping code, or run
 7533 	'./configure --with-wide-int'.
 7534 	* alloc.c (gdb_make_enums_visible): Update to match lisp.h.
 7535 	* lisp.h (GCTYPEBITS): Move definition up, and switch to the
 7536 	DEFINE_GDB_SYMBOL_START way to define it.
 7537 	(NONPOINTER_BITS): New macro.
 7538 	(EMACS_INT): Use it.
 7539 	[!USE_LSB_TAG && !WIDE_EMACS_INT]: Fail, and suggest reporting
 7540 	the problem and/or configuring --with-wide-int.
 7541 	(USE_LSB_TAG): Simplify, based on above changes.
 7542 	(gdb_DATA_SEG_BITS): Remove.  All uses removed.
 7543 	* vm-limit.c (exceeds_lisp_ptr): Remove.  All uses removed.
 7544 
 7545 2014-04-12  Eli Zaretskii  <eliz@gnu.org>
 7546 
 7547 	* xdisp.c (move_it_by_lines): If a large portion of buffer text is
 7548 	covered by a display string that ends in a newline, and that cases
 7549 	going back by DVPOS lines to hit the search limit, lift the limit
 7550 	and go back until DVPOS is reached.  (Bug#17244)
 7551 
 7552 	* indent.c (Fvertical_motion): Handle correctly the case when the
 7553 	display string is preceded by an empty line.
 7554 
 7555 	* w32.c (sys_umask) <WRITE_USER>: Remove redundant constant, and
 7556 	use S_IWRITE instead.
 7557 
 7558 2014-04-11  Glenn Morris  <rgm@gnu.org>
 7559 
 7560 	* keyboard.c (Fopen_dribble_file): Make file private.  (Bug#17187)
 7561 
 7562 2014-04-11  Ken Brown  <kbrown@cornell.edu>
 7563 
 7564 	* Makefile.in (EMACS_MANIFEST): Revert last change.
 7565 
 7566 2014-04-10  Daniel Colascione  <dancol@dancol.org>
 7567 
 7568 	* puresize.h (BASE_PURESIZE): Increase.
 7569 
 7570 2014-04-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 7571 
 7572 	* keyboard.c (syms_of_keyboard): Make deactivate-mark buffer-local.
 7573 
 7574 	* insdel.c (prepare_to_modify_buffer_1): Cancel lock-file checks and
 7575 	region handling (and don't call signal_before_change) if
 7576 	inhibit_modification_hooks is set.
 7577 	(signal_before_change): Don't check inhibit_modification_hooks any more.
 7578 
 7579 2014-04-08  Daniel Colascione  <dancol@dancol.org>
 7580 
 7581 	* alloc.c (sweep_symbols, mark_object): Assert that symbol
 7582 	function cells contain valid lisp objects.  (Modified version of
 7583 	patch from Dmitry).
 7584 
 7585 	* alloc.c (detect_suspicious_free): Split actual stack capturing
 7586 	out into new function for easier breakpoint setting.
 7587 	(note_suspicious_free): New function.
 7588 
 7589 2014-04-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 7590 
 7591 	* lisp.h (struct Lisp_Symbol): New bitfield `pinned'.
 7592 
 7593 	* alloc.c: Keep track of symbols referenced from pure space (bug#17168).
 7594 	(symbol_block_pinned): New var.
 7595 	(Fmake_symbol): Initialize `pinned'.
 7596 	(purecopy): New function, extracted from Fpurecopy.  Mark symbols as
 7597 	pinned and signal an error for un-purifiable objects.
 7598 	(pure_cons): Use it.
 7599 	(Fpurecopy): Use it, except for objects that can't be purified.
 7600 	(mark_pinned_symbols): New function.
 7601 	(Fgarbage_collect): Use it.
 7602 	(gc_sweep): Remove hack made unnecessary.
 7603 
 7604 2014-04-07  Glenn Morris  <rgm@gnu.org>
 7605 
 7606 	* keyboard.c (Fopen_dribble_file): Doc tweak.
 7607 
 7608 2014-04-07  Ken Brown  <kbrown@cornell.edu>
 7609 
 7610 	* Makefile.in (EMACS_MANIFEST): Update comment.  (Bug#17176)
 7611 
 7612 2014-04-07  Paul Eggert  <eggert@cs.ucla.edu>
 7613 
 7614 	* alloc.c: Simplify by removing use of HAVE_EXECINFO_H.
 7615 	We have a substitute execinfo.h on hosts that lack it.
 7616 	(suspicious_free_history): Make it EXTERNALLY_VISIBLE so it
 7617 	isn't optimized away.
 7618 
 7619 2014-04-05  Paul Eggert  <eggert@cs.ucla.edu>
 7620 
 7621 	Prefer 'ARRAYELTS (x)' to 'sizeof x / sizeof *x'.
 7622 	* alloc.c (memory_full):
 7623 	* charset.c (syms_of_charset):
 7624 	* doc.c (Fsnarf_documentation):
 7625 	* emacs.c (main):
 7626 	* font.c (BUILD_STYLE_TABLE):
 7627 	* keyboard.c (make_lispy_event):
 7628 	* profiler.c (setup_cpu_timer):
 7629 	* xgselect.c (xg_select):
 7630 	* xterm.c (record_event, STORE_KEYSYM_FOR_DEBUG):
 7631 	Use ARRAYELTS.
 7632 	* font.c (FONT_PROPERTY_TABLE_SIZE): Remove.
 7633 	Replace the only use with ARRAYELTS (font_property_table).
 7634 	* xfaces.c (DIM): Remove.  All uses replaced by ARRAYELTS.
 7635 
 7636 2014-04-03  Daniel Colascione  <dancol@dancol.org>
 7637 
 7638 	* xterm.c (x_term_init):
 7639 	* xfns.c (best_xim_style):
 7640 	* xfaces.c (Fdump_colors):
 7641 	* w32fns.c (w32_default_color_map):
 7642 	* w32.c (init_environment, N_ENV_VARS):
 7643 	* unexcw.c (read_exe_header):
 7644 	* term.c (term_get_fkeys_1):
 7645 	* sysdep.c (init_baud_rate):
 7646 	* nsterm.m (ns_convert_key):
 7647 	* nsfns.m (get_geometry_from_preferences):
 7648 	* msdos.c (dos_set_window_size, init_environment):
 7649 	* macfont.m (mac_font_get_glyph_for_cid)
 7650 	(macfont_store_descriptor_attributes)
 7651 	(macfont_create_attributes_with_spec, mac_ctfont_get_glyph_for_cid):
 7652 	* keyboard.c (command_loop_1, read_menu_command, make_lispy_event)
 7653 	(NUM_MOD_NAMES, read_key_sequence_vs, Fcurrent_input_mode)
 7654 	(syms_of_keyboard):
 7655 	* image.c (xpm_str_to_color_key):
 7656 	* fringe.c (MAX_STANDARD_FRINGE_BITMAPS):
 7657 	* frame.c (x_set_frame_parameters):
 7658 	* fileio.c (Ffile_selinux_context):
 7659 	* emacs.c (sort_args):
 7660 	* dosfns.c (msdos_stdcolor_name):
 7661 	* dired.c (file_attributes):
 7662 	* chartab.c (uniprop_decoder_count, uniprop_encode_count):
 7663 	Change expressions of the form sizeof(arr) / sizeof(arr[0])
 7664 	to ARRAYELTS (arr).
 7665 
 7666 2014-04-02  Daniel Colascione  <dancol@dancol.org>
 7667 
 7668 	* data.c (Ffset): Abort if we're trying to set a function call to
 7669 	a dead lisp object.
 7670 
 7671 	* lisp.h (ARRAYELTS): New macro.
 7672 
 7673 	* alloc.c: Include execinfo.h if available.
 7674 	(SUSPICIOUS_OBJECT_CHECKING): New macro; define unconditionally.
 7675 	(suspicious_free_record): New structure.
 7676 	(suspicious_objects, suspicious_object_index)
 7677 	(suspicious_free_history, suspicious_free_history_index):
 7678 	New variables.
 7679 	(find_suspicious_object_in_range, detect_suspicious_free)
 7680 	(Fsuspicious_object): New functions.
 7681 	(cleanup_vector): Call find_suspicious_object_in_range.
 7682 
 7683 2014-04-02  Martin Rudalics  <rudalics@gmx.at>
 7684 
 7685 	* xterm.c (x_new_font): Don't calculate non-toolkit scrollbar
 7686 	width from font width (Bug#17163).
 7687 
 7688 	* frame.c (x_set_frame_parameters): Calculate default values of
 7689 	new frame sizes only after all other frame parameters have been
 7690 	processed (Bug#17142).
 7691 
 7692 2014-04-02  Ken Brown  <kbrown@cornell.edu>
 7693 
 7694 	* conf_post.h (SYSTEM_PURESIZE_EXTRA) [CYGWIN]: Set to 10000.
 7695 	(Bug#17112)
 7696 
 7697 2014-04-02  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 7698 
 7699 	* xterm.c (x_draw_image_glyph_string): Adjust image background
 7700 	width accordingly when its x position is adjusted.  (Bug#17115)
 7701 
 7702 2014-04-02  Dmitry Antipov  <dmantipov@yandex.ru>
 7703 
 7704 	* font.c (font_list_entities): Do not add empty vector to font cache.
 7705 	(font_matching_entity): Likewise.  If matching entity is found, insert
 7706 	1-item vector with this entity instead of entity itself (Bug#17125).
 7707 
 7708 	* xterm.c (x_term_init) [USE_LUCID]: Fix minor memory leak.
 7709 
 7710 2014-04-01  Paul Eggert  <eggert@cs.ucla.edu>
 7711 
 7712 	* fns.c (validate_subarray): Rename from validate_substring,
 7713 	since it works for vectors too.  New arg ARRAY.  Optimize for the
 7714 	non-nil case.  Instead of returning bool, throw an error if out of
 7715 	range, so that the caller needn't do that.  All uses changed.
 7716 	Report original values if out of range.
 7717 	(Fsubstring, Fsubstring_no_properties, secure_hash):
 7718 	Also optimize the case where FROM is 0 or TO is the size.
 7719 
 7720 2014-03-31  Dmitry Antipov  <dmantipov@yandex.ru>
 7721 
 7722 	* search.c (Freplace_match): Use make_specified_string.
 7723 	* xterm.c, w32term.c (x_set_glyph_string_gc): Use emacs_abort
 7724 	to catch bogus override face of glyph strings.
 7725 	* fns.c (Fsubstring, Fsubstring_no_properties, secure_hash):
 7726 	Move common substring range checking code to...
 7727 	(validate_substring): ...this function.
 7728 
 7729 2014-03-31  Jan Djärv  <jan.h.d@swipnet.se>
 7730 
 7731 	* nsmenu.m (free_frame_tool_bar): Set wait_for_tool_bar = NO (Bug#16976)
 7732 
 7733 2014-03-30  Jan Djärv  <jan.h.d@swipnet.se>
 7734 
 7735 	* nsterm.m (updateFrameSize:): If waiting for the tool bar and tool
 7736 	bar is zero height, just return (Bug#16976).
 7737 	(initFrameFromEmacs:): Initialize wait_for_tool_bar.
 7738 
 7739 	* nsterm.h (EmacsView): Add wait_for_tool_bar.
 7740 
 7741 	* nsmenu.m (update_frame_tool_bar): Return early if view or toolbar
 7742 	is nil.  If waiting for toolbar to complete, force a redraw.
 7743 
 7744 2014-03-28  Glenn Morris  <rgm@gnu.org>
 7745 
 7746 	* emacs.c (emacs_version): Use PACKAGE_VERSION rather than VERSION.
 7747 	(emacs_bugreport): New variable.
 7748 	(usage_message): Use PACKAGE_BUGREPORT.
 7749 	(syms_of_emacs) <report-emacs-bug-address>: New variable.
 7750 
 7751 	* emacs.c (syms_of_emacs) <system-configuration-features>: New var.
 7752 
 7753 2014-03-27  Paul Eggert  <eggert@cs.ucla.edu>
 7754 
 7755 	Port recent signal-related changes to FreeBSD.
 7756 	Reported by Herbert J. Skuhra.
 7757 	* lisp.h (block_tty_out_signal, unblock_tty_out_signal):
 7758 	Move decls from here ...
 7759 	* syssignal.h: ... to here, so that lisp.h doesn't depend on signal.h.
 7760 
 7761 2014-03-27  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 7762 
 7763 	* w32term.c (x_draw_image_glyph_string): Fix computation of height
 7764 	and width of image background when it is displayed with a 'box'
 7765 	face.  (Bug#17115)
 7766 
 7767 2014-03-27  Paul Eggert  <eggert@penguin.cs.ucla.edu>
 7768 
 7769 	More backward-compatible fix to char-equal core dump (Bug#17011).
 7770 	* editfns.c (Fchar_equal): In unibyte buffers, assume values in
 7771 	range 128-255 are raw bytes.  Suggested by Eli Zaretskii.
 7772 
 7773 2014-03-27  Juanma Barranquero  <lekktu@gmail.com>
 7774 
 7775 	* image.c (init_svg_functions): When loading SVG-related libraries,
 7776 	free already loaded libraries if the initialization fails.
 7777 	(rsvg_handle_set_size_callback): Remove declaration, unused.
 7778 
 7779 2014-03-26  Paul Eggert  <eggert@cs.ucla.edu>
 7780 
 7781 	Fix core dump in char-equal (Bug#17011).
 7782 	* editfns.c (Fchar_equal): Do not use MAKE_CHAR_MULTIBYTE in
 7783 	unibyte buffers, as we can't tell whether the characters are
 7784 	actually unibyte.
 7785 
 7786 	* insdel.c (adjust_markers_for_delete): Remove unused local.
 7787 
 7788 2014-03-26  Barry O'Reilly  <gundaetiapo@gmail.com>
 7789 
 7790 	Have (MARKER . ADJUSTMENT) undo records always be immediately
 7791 	after their corresponding (TEXT . POS) record in undo list.
 7792 	(Bug#16818)
 7793 	* lisp.h (record-delete): New arg record_markers.
 7794 	(record_marker_adjustment): No longer needed outside undo.c.
 7795 	* insdel.c (adjust_markers_for_delete): Move calculation of marker
 7796 	adjustments to undo.c's record_marker_adjustments.  Note that
 7797 	fileio.c's decide_coding_unwind is another caller to
 7798 	adjust_markers_for_delete.  Because it has undo list bound to t,
 7799 	it does not rely on adjust_markers_for_delete to record marker
 7800 	adjustments.
 7801 	(del_range_2): Swap call to record_delete and
 7802 	adjust_markers_for_delete so as undo marker adjustments are
 7803 	recorded before current deletion's adjustments, as before.
 7804 	(adjust_after_replace):
 7805 	(replace_range): Pass value for new record_markers arg to
 7806 	delete_record.
 7807 	* undo.c (record_marker_adjustment): Rename to
 7808 	record_marker_adjustments and made static.
 7809 	(record_delete): Check record_markers arg and call
 7810 	record_marker_adjustments.
 7811 	(record_change): Pass value for new record_markers arg to
 7812 	delete_record.
 7813 	(record_point): at_boundary calculation no longer needs to account
 7814 	for marker adjustments.
 7815 
 7816 2014-03-26  Martin Rudalics  <rudalics@gmx.at>
 7817 
 7818 	* w32term.c (x_set_window_size): Refine fix from 2014-03-14
 7819 	(Bug#17077).
 7820 
 7821 2014-03-26  Glenn Morris  <rgm@gnu.org>
 7822 
 7823 	* fileio.c (Ffile_symlink_p): Doc fix. (Bug#17073)
 7824 
 7825 2014-03-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 7826 
 7827 	* buffer.c (struct sortvec): Add field `spriority'.
 7828 	(compare_overlays): Use it.
 7829 	(sort_overlays): Set it.
 7830 
 7831 2014-03-26  Eli Zaretskii  <eliz@gnu.org>
 7832 
 7833 	* xdisp.c (redisplay_window): If all previous attempts to find the
 7834 	cursor row failed, try a few alternatives before falling back to
 7835 	the top-most row of the window.  Use row_containing_pos.  (Bug#17047)
 7836 
 7837 2014-03-26  Juanma Barranquero  <lekktu@gmail.com>
 7838 
 7839 	* image.c (x_bitmap_height, x_bitmap_width) [HAVE_X_WINDOWS]:
 7840 	* sysdep.c (reset_sigio) [!DOS_NT]: Declare conditionally.
 7841 
 7842 	* keyboard.c (read_decoded_event_from_main_queue): #ifdef out
 7843 	variables on Windows.
 7844 
 7845 	* w32fns.c (Ffile_system_info): Use parenthesis in and/or expression.
 7846 
 7847 	* w32.c (unsetenv): Remove unused var `retval'.
 7848 	(emacs_gnutls_pull): Remove unused vars `fdset' and `timeout'.
 7849 
 7850 	* w32notify.c (watch_worker): Remove unnecesary var sleep_result.
 7851 	(start_watching): Remove unused var `thr'.
 7852 
 7853 	* w32proc.c (sys_spawnve): Comment out unused vars `first', `last'.
 7854 	(find_child_console): Remove unnecesary var `thread_id'.
 7855 
 7856 	* w32term.c (w32_read_socket): Comment out unused vars `row', `columns'.
 7857 	(x_focus_frame): #ifdef 0 unused variable `dpyinfo'.
 7858 
 7859 2014-03-26  Glenn Morris  <rgm@gnu.org>
 7860 
 7861 	* filelock.c (Flock_buffer): Doc tweak.
 7862 
 7863 	* buffer.c (Frestore_buffer_modified_p, Fkill_buffer):
 7864 	* emacs.c (shut_down_emacs):
 7865 	* fileio.c (Finsert_file_contents, write_region):
 7866 	* filelock.c (top-level, syms_of_filelock):
 7867 	* insdel.c (prepare_to_modify_buffer_1):
 7868 	CLASH_DETECTION is always defined now.
 7869 
 7870 2014-03-25  Eli Zaretskii  <eliz@gnu.org>
 7871 
 7872 	* w32.c (w32_delayed_load): Call DisableThreadLibraryCalls on the
 7873 	DLL handle, to speed up thread startup.
 7874 
 7875 2014-03-25  Paul Eggert  <eggert@cs.ucla.edu>
 7876 
 7877 	Handle sigmask better with nested signal handlers  (Bug#15561).
 7878 	* atimer.c (sigmask_atimers): Remove.
 7879 	Remaining use rewritten to use body of this function.
 7880 	* atimer.c (block_atimers, unblock_atimers):
 7881 	* callproc.c (block_child_signal, unblock_child_signal):
 7882 	* sysdep.c (block_tty_out_signal, unblock_tty_out_signal):
 7883 	New arg OLDSET.  All callers changed.
 7884 	* atimer.c (block_atimers, unblock_atimers):
 7885 	* callproc.c (block_child_signal, unblock_child_signal):
 7886 	* keyboard.c (handle_interrupt):
 7887 	* sound.c (vox_configure, vox_close):
 7888 	Restore the old signal mask rather than unilaterally clearing bits
 7889 	from the mask, in case a handler is running within another
 7890 	handler.  All callers changed.
 7891 	* lisp.h, process.c, process.h, term.c:
 7892 	Adjust decls and callers to match new API.
 7893 	* sysdep.c (emacs_sigaction_init): Don't worry about masking SIGFPE;
 7894 	signal handlers aren't supposed to use floating point anyway.
 7895 	(handle_arith_signal): Unblock just SIGFPE rather than clearing mask.
 7896 
 7897 2014-03-23  Daniel Colascione  <dancol@dancol.org>
 7898 
 7899 	Split gc_sweep into discrete functions for legibility and better
 7900 	stack traces.
 7901 
 7902 	* alloc.c (sweep_strings, sweep_vectors): Add NO_INLINE
 7903 	(sweep_vectors): Fix typo in comment.
 7904 	(sweep_conses, sweep_floats, sweep_intervals)
 7905 	(sweep_symbols, sweep_misc, sweep_buffers): New functions.
 7906 	(gc_sweep): Call new functions, to which existing functionality is
 7907 	moved.
 7908 	* fns.c (sweep_weak_hash_tables): Add NO_INLINE.
 7909 
 7910 2014-03-23  Juanma Barranquero  <lekktu@gmail.com>
 7911 
 7912 	* w32fns.c (Fw32_shell_execute): Declare `result' only on Cygwin.
 7913 
 7914 2014-03-23  Daniel Colascione  <dancol@dancol.org>
 7915 
 7916 	* xfns.c (create_frame_xic): Pass XNStatusAttributes to XCreateIC
 7917 	only if xic_style calls for it.  This change allows Emacs to work
 7918 	with ibus.  Also, don't leak resources if create_frame_xic fails,
 7919 	and stop caching xic_style across different displays.
 7920 	(supported_xim_styles): Make const.
 7921 	(best_xim_style): Remove first parameter: it's always just
 7922 	supported_xim_styles.  Change to look at supported_xim_styles
 7923 	directly.
 7924 
 7925 2014-03-23  Daniel Colascione  <dancol@dancol.org>
 7926 
 7927 	* term.c (init_tty): Rearrange condition for clarity; print
 7928 	appropriate diagnostic.
 7929 
 7930 2014-03-23  Daniel Colascione  <dancol@dancol.org>
 7931 
 7932 	* process.c (DATAGRAM_CONN_P): Don't underflow datagram_address
 7933 	array.  (ASAN caught.)
 7934 
 7935 2014-03-22  Glenn Morris  <rgm@gnu.org>
 7936 
 7937 	* callproc.c (init_callproc): In etc, look for NEWS rather than GNU.
 7938 
 7939 2014-03-22  Daniel Colascione  <dancol@dancol.org>
 7940 
 7941 	* process.c (conv_sockaddr_to_lisp): When extracting the string
 7942 	names of AF_LOCAL sockets, stop before reading uninitialized memory.
 7943 
 7944 2014-03-21  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 7945 
 7946 	Fix regression introduced by patch for Bug#10500.
 7947 	* xterm.c (x_draw_image_relief): Respect Vtool_bar_button_margin.
 7948 	* w32term.c (x_draw_image_relief): Likewise.
 7949 
 7950 2014-03-21  Martin Rudalics  <rudalics@gmx.at>
 7951 
 7952 	* w32fns.c (w32_wnd_proc): For WM_WINDOWPOSCHANGING don't
 7953 	constrain frame size in SW_SHOWMAXIMIZED case so we can truly
 7954 	maximize a frame for odd default fonts.
 7955 
 7956 2014-03-21  Glenn Morris  <rgm@gnu.org>
 7957 
 7958 	* minibuf.c (history-length): Increase default from 30 to 100.
 7959 
 7960 2014-03-21  Daniel Colascione  <dancol@dancol.org>
 7961 
 7962 	* xterm.c (x_bitmap_icon): Stop reading the icon bitmap from disk
 7963 	every time we switch to minibuffer.
 7964 
 7965 	* alloc.c (lisp_align_malloc, allocate_string_data)
 7966 	(allocate_vectorlike): Allow mmap allocation of lisp objects.
 7967 	(pointers_fit_in_lispobj_p, mmap_lisp_allowed_p): New functions.
 7968 
 7969 2014-03-21  Eli Zaretskii  <eliz@gnu.org>
 7970 
 7971 	* w32fns.c (Fw32_shell_execute) [!CYGWIN]: Use ShellExecuteEx, to
 7972 	support more "verbs".
 7973 
 7974 2014-03-21  Daniel Colascione  <dancol@dancol.org>
 7975 
 7976 	Always prohibit dumping a dumped Emacs.
 7977 
 7978 	* emacs.c (might_dump): New variable.
 7979 	(Fdump_emacs): Always prohibit dumping of dumped Emacs.
 7980 	* lisp.h (might_dump): Declare.
 7981 	* unexcw.c (unexec): Remove now-redundant multiple-dump detection code.
 7982 
 7983 2014-03-20  Paul Eggert  <eggert@cs.ucla.edu>
 7984 
 7985 	* doc.c (store_function_docstring): Fix pointer signedness mismatch.
 7986 
 7987 2014-03-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 7988 
 7989 	* doc.c (store_function_docstring): Warn when we don't know where to
 7990 	put a docstring.
 7991 	(Fsubstitute_command_keys): Don't advertise the fact that
 7992 	text-properties are dropped, since we think it's a bug that we'll fix.
 7993 
 7994 	* frame.h (SET_FRAME_VISIBLE): Keep frame_garbaged up to date.
 7995 	* xterm.c (handle_one_xevent) <MapNotify>: Don't garbage the frame.
 7996 	* frame.c (frame_garbaged): Make "docstring" more precise.
 7997 
 7998 2014-03-20  Glenn Morris  <rgm@gnu.org>
 7999 
 8000 	* charset.c (init_charset): When we cannot find the charsets directory,
 8001 	mention if EMACSDATA is set.
 8002 
 8003 2014-03-19  Paul Eggert  <eggert@cs.ucla.edu>
 8004 
 8005 	* fns.c (Frandom): Fix rare bug where the result isn't random.
 8006 
 8007 	Fix porting inconsistency about rounding to even.
 8008 	* floatfns.c (emacs_rint) [!HAVE_RINT]: Round to even.
 8009 	This way, the unusual !HAVE_RINT case acts like the usual
 8010 	HAVE_RINT case, and we can fix the documentation accordingly.
 8011 
 8012 2014-03-19  Eli Zaretskii  <eliz@gnu.org>
 8013 
 8014 	* w32fns.c (reset_modifiers): Zero out keystate[] before using it.
 8015 	(w32_wnd_proc): Initialize the dwHoverTime member of
 8016 	TRACKMOUSEEVENT structure.
 8017 
 8018 2014-03-17  Teodor Zlatanov  <tzz@lifelogs.com>
 8019 
 8020 	* gnutls.c (Fgnutls_boot): Fix case of :verify-error = t.
 8021 
 8022 2014-03-16  Eli Zaretskii  <eliz@gnu.org>
 8023 
 8024 	* search.c (find_newline): Speed up the function when using the
 8025 	newline cache, by halving the number of calls to
 8026 	region_cache_forward and region_cache_backward.  (Bug#16830)
 8027 
 8028 2014-03-15  Juanma Barranquero  <lekktu@gmail.com>
 8029 
 8030 	* buffer.c (Fset_buffer): Document return value (bug#17015).
 8031 
 8032 2014-03-14  Martin Rudalics  <rudalics@gmx.at>
 8033 
 8034 	* w32term.c (x_set_window_size): When frame-resize-pixelwise is
 8035 	nil, always resize character wise to avoid potential loss of the
 8036 	mode line (Bug#16923 related).
 8037 
 8038 2014-03-12  Martin Rudalics  <rudalics@gmx.at>
 8039 
 8040 	* frame.c (x_set_frame_parameters): Always calculate new sizes
 8041 	pixelwise to avoid potential loss when rounding.
 8042 
 8043 2014-03-11  Dmitry Antipov  <dmantipov@yandex.ru>
 8044 
 8045 	* xfns.c (x_set_mouse_color): Recolor vertical_drag_cursor.
 8046 	* xterm.c (x_free_frame_resources): Free all allocated cursors.
 8047 
 8048 2014-03-10  Eli Zaretskii  <eliz@gnu.org>
 8049 
 8050 	* w32.c (fstatat): Don't add an extra slash if the argument ends
 8051 	with a slash: this fails the subsequent call to stat_worker on
 8052 	Windows 9X.  Reported by oslsachem <oslsachem@gmail.com>.
 8053 
 8054 2014-03-09  Martin Rudalics  <rudalics@gmx.at>
 8055 
 8056 	* xdisp.c (Fwindow_text_pixel_size): Adjust doc-string.
 8057 
 8058 2014-03-08  Jan Djärv  <jan.h.d@swipnet.se>
 8059 
 8060 	* nsterm.h (MAC_OS_X_VERSION_10_9): Add.
 8061 
 8062 	* nsterm.m (constrainFrameRect:toScreen:): Constrain normally
 8063 	when frame is only on one screen (Bug#14713).
 8064 
 8065 2014-03-08  Eli Zaretskii  <eliz@gnu.org>
 8066 
 8067 	* xdisp.c (move_it_in_display_line_to): If word-wrap is ON, and
 8068 	there's a valid wrap point in the display line, the last glyph
 8069 	cannot "just barely fit" on this row, because display_line doesn't
 8070 	let it.  Instead, proceed as if the last glyph didn't fit, so that
 8071 	we eventually back up the iterator to the wrap point.  This avoids
 8072 	delusional behavior of move_it_to, whereby it proceeds to the next
 8073 	display line, but sets current_x to zero for all the glyphs that
 8074 	without word-wrap would fit on the previous display line.
 8075 	One result was that visual-order cursor movement behaved erratically
 8076 	under word-wrap.
 8077 	(Fmove_point_visually): Add code to find the x coordinate of the
 8078 	last character before wrap point, under word-wrap on a TTY.
 8079 
 8080 2014-03-07  Eli Zaretskii  <eliz@gnu.org>
 8081 
 8082 	* xdisp.c (Fmove_point_visually): When under word-wrap, accept
 8083 	also return value of MOVE_POS_MATCH_OR_ZV from
 8084 	move_it_in_display_line_to, when moving from beginning of line to
 8085 	point's position.  (Bug#16961)
 8086 
 8087 2014-03-07  Martin Rudalics  <rudalics@gmx.at>
 8088 
 8089 	* buffer.c (Vbuffer_list_update_hook): Doc-string fix.
 8090 	* window.c (Fselect_window): Explain NORECORD and
 8091 	`buffer-list-update-hook' in doc-string.
 8092 
 8093 2014-03-06  Martin Rudalics  <rudalics@gmx.at>
 8094 
 8095 	* window.c (Fother_window_for_scrolling): Check that
 8096 	Vother_window_scroll_buffer is a buffer.
 8097 
 8098 2014-03-06  Dmitry Antipov  <dmantipov@yandex.ru>
 8099 
 8100 	* xterm.c (xim_initialize): Always pass a copy of resource name
 8101 	to XRegisterIMInstantiateCallback and eassert whether return
 8102 	value is True.  Passing copy is important because Xlib doesn't
 8103 	make its own copy and resource name argument usually points to
 8104 	SSDATA (Vx_resource_name), which may be changed from Lisp.
 8105 	(xim_close_display): For XUnregisterIMInstantiateCallback,
 8106 	always eassert return value and pass exactly the same values
 8107 	as were used for XRegisterIMInstantiateCallback.
 8108 	Otherwise XUnregisterIMInstantiateCallback will always fail.  See Xlib
 8109 	sources to check why if you are interested.
 8110 
 8111 2014-03-05  Martin Rudalics  <rudalics@gmx.at>
 8112 
 8113 	* dispnew.c (change_frame_size_1): Add new_lines instead of
 8114 	new_height, the latter may be still zero if passed as such.
 8115 	* window.c (Fwindow_pixel_height): Mention bottom divider in
 8116 	doc-string.
 8117 
 8118 2014-03-05  Paul Eggert  <eggert@cs.ucla.edu>
 8119 
 8120 	Fix "resource temporarily unavailable" with xgselect
 8121 	(Bug#16925).
 8122 	* xgselect.c: Include <stdbool.h>.
 8123 	(xg_select) [!USE_GTK]: Don't lose track of errno.
 8124 
 8125 	Fix minor --enable-gcc-warnings issues.
 8126 	* widget.c (update_various_frame_slots, EmacsFrameResize):
 8127 	Avoid unused locals.  Prefer 'if' to '#if' when either will do.
 8128 
 8129 2014-03-04  Ken Brown  <kbrown@cornell.edu>
 8130 
 8131 	* gmalloc.c (aligned_alloc): Clarify the code by making `adj'
 8132 	represent the actual adjustment needed for alignment.
 8133 
 8134 2014-03-04  Eli Zaretskii  <eliz@gnu.org>
 8135 
 8136 	* gmalloc.c (aligned_alloc): Don't allocate more memory than
 8137 	needed, and don't reallocate if the initial allocation already
 8138 	fits the bill.  Suggested by Ken Brown <kbrown@cornell.edu>.
 8139 
 8140 2014-03-04  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 8141 
 8142 	* xterm.c (x_draw_stretch_glyph_string): Reset clipping.
 8143 	(Bug#16932)
 8144 
 8145 2014-03-04  Michal Nazarewicz  <mina86@mina86.com>
 8146 
 8147 	* cmds.c (delete-char): Update docstring pointing out that the
 8148 	function ignores `delete-active-region' and `overwrite-mode'.
 8149 
 8150 2014-03-03  Eli Zaretskii  <eliz@gnu.org>
 8151 
 8152 	* font.c (Fframe_font_cache): Fix last change.  (Bug#16930)
 8153 
 8154 	* gmalloc.c (aligned_alloc): Fix adjustment of size of the
 8155 	allocated buffer due to alignment.
 8156 	(freehook): If the block to be freed was allocated by
 8157 	'aligned_alloc', find its real pointer before calling 'free'.
 8158 	(Bug#16901)
 8159 	(mabort) [emacs]: Call 'emacs_abort', not 'abort', to provide a
 8160 	backtrace.
 8161 
 8162 2014-03-03  Dmitry Antipov  <dmantipov@yandex.ru>
 8163 
 8164 	* font.c (toplevel): Adjust comment about font cache layout.
 8165 	(font_clear_cache): Fix to match real font cache layout.
 8166 	Suggested by <namespace_collision@yahoo.com> in Bug#16069.
 8167 	(Fframe_font_cache) [FONT_DEBUG]: New function.
 8168 	(syms_of_font) [FONT_DEBUG]: Defsubr it.
 8169 
 8170 	Avoid crashes when X fonts are erroneously freed on reused X
 8171 	'Display *' connection data (Bug#16069).  Note that X font
 8172 	resources still may be leaked, but currently there is no way
 8173 	to completely avoid it.
 8174 	* xterm.h (struct x_display_info): New member x_id.  Add comments.
 8175 	* xterm.c (x_display_id): New variable.
 8176 	(x_term_init): Assign identifier to each opened X connection.
 8177 	* xfont.c (struct xfont): New member x_display_id.
 8178 	(xfont_open): Initialize it with frame's display id.
 8179 	(xfont_close): Check whether font's display id matches the one
 8180 	recorded for the given display.  Adjust comment.
 8181 	* xftfont.c (struct xftfont_info):
 8182 	(xftfont_open, xftfont_close): Exactly as above with xfont stuff.
 8183 
 8184 2014-03-01  Martin Rudalics  <rudalics@gmx.at>
 8185 
 8186 	Consider Vother_window_scroll_buffer valid iff it's a live buffer.
 8187 	* window.c (Fother_window_for_scrolling): Don't try to scroll a
 8188 	killed Vother_window_scroll_buffer.
 8189 	(Vother_window_scroll_buffer): Fix doc-string accordingly.
 8190 
 8191 2014-03-01  Eli Zaretskii  <eliz@gnu.org>
 8192 
 8193 	* fileio.c (Fexpand_file_name) [WINDOWSNT]: Don't treat file names
 8194 	that start with more than 2 slashes as UNCs.  (Bug#16751)
 8195 
 8196 2014-02-28  Paul Eggert  <eggert@penguin.cs.ucla.edu>
 8197 
 8198 	Fix a few crashes and leaks when cloning C strings.
 8199 	* alloc.c, lisp.h (dupstring): New function.
 8200 	* gtkutil.c (xg_get_font):
 8201 	* term.c (tty_default_color_capabilities):
 8202 	* xsettings.c (store_monospaced_changed)
 8203 	(store_font_name_changed, parse_settings)
 8204 	(read_and_apply_settings, init_gsettings, init_gconf): Use it.
 8205 	This avoids some unlikely crashes due to accessing freed storage,
 8206 	and avoids some minor memory leaks in the more-typical case.
 8207 
 8208 2014-02-28  Martin Rudalics  <rudalics@gmx.at>
 8209 
 8210 	* xdisp.c (note_mode_line_or_margin_highlight): Don't show drag
 8211 	cursor when modeline can't be dragged (Bug#16647).
 8212 
 8213 2014-02-28  Glenn Morris  <rgm@gnu.org>
 8214 
 8215 	* doc.c (Fsnarf_documentation): Snarf not-yet-bound variables
 8216 	from custom-delayed-init-variables.  (Bug#11565)
 8217 
 8218 2014-02-27  Martin Rudalics  <rudalics@gmx.at>
 8219 
 8220 	More fixes for mouse glyph calculations (Bug#16647).
 8221 	* window.c (coordinates_in_window): In intersection of
 8222 	horizontal and vertical window dividers prefer the horizontal
 8223 	one.  Add some extra parens to last fix.
 8224 	(window_relative_x_coord): Return x-coordinate for header and
 8225 	mode line too.
 8226 	* xdisp.c (remember_mouse_glyph): In text area don't extend
 8227 	glyph into mode line to show the vertical drag cursor there
 8228 	immediately.  Subdivide mouse glyphs in right fringes to show a
 8229 	horizontal drag cursor as soon as we enter the "grabbable width"
 8230 	portion.  Handle vertical border case separately.  Do not
 8231 	subdivide window divider areas.
 8232 	(note_mouse_highlight): On bottom divider of bottommost windows
 8233 	show vertical drag cursor only when the minibuffer window can be
 8234 	resized.
 8235 
 8236 2014-02-27  Eli Zaretskii  <eliz@gnu.org>
 8237 
 8238 	* xdisp.c (pop_it): Restore the it->face_box_p flag which could be
 8239 	reset by the face of the object just displayed.  See also bug#76.
 8240 	(get_next_display_element): If the string came from a display
 8241 	property, examine the box face attribute at it->position, not at
 8242 	it->current.pos, since the latter was not updated yet.  (Bug#16870)
 8243 	(handle_face_prop): Improve commentary.
 8244 
 8245 2014-02-27  Michael Albinus  <michael.albinus@gmx.de>
 8246 
 8247 	* dbusbind.c (Fdbus__init_bus, Qdbus__init_bus, Sdbus__init_bus):
 8248 	Rename from Fdbus_init_bus_1, Qdbus_init_bus_1, Sdbus_init_bus_1.
 8249 
 8250 2014-02-26  Martin Rudalics  <rudalics@gmx.at>
 8251 
 8252 	Fixes around Bug#16647.
 8253 	* xdisp.c (remember_mouse_glyph): Handle ON_RIGHT_DIVIDER and
 8254 	ON_BOTTOM_DIVIDER cases.
 8255 	* window.c (coordinates_in_window): Return ON_VERTICAL_BORDER
 8256 	only if the window has no right divider.
 8257 	(Fcoordinates_in_window_p): Fix doc-string.
 8258 
 8259 2014-02-25  Juanma Barranquero  <lekktu@gmail.com>
 8260 
 8261 	* lread.c (Funintern): Fix doc to match advertised calling convention.
 8262 
 8263 2014-02-24  Daniel Colascione  <dancol@dancol.org>
 8264 
 8265 	* keyboard.c (read_char): Close race that resulted in lost events.
 8266 
 8267 2014-02-22  Glenn Morris  <rgm@gnu.org>
 8268 
 8269 	* frame.c (frame-alpha-lower-limit, frame-resize-pixelwise):
 8270 	* window.c (window-resize-pixelwise): Doc fixes.
 8271 
 8272 	* process.c (Finternal_default_process_filter)
 8273 	(Finternal_default_process_sentinel): Doc tweaks.
 8274 
 8275 2014-02-21  Glenn Morris  <rgm@gnu.org>
 8276 
 8277 	* process.c (Fprocess_buffer, Faccept_process_output)
 8278 	(Finternal_default_process_filter, Finternal_default_process_sentinel):
 8279 	Doc fixes.
 8280 
 8281 2014-02-21  Martin Rudalics  <rudalics@gmx.at>
 8282 
 8283 	* window.c (Fwindow_scroll_bar_width): New function.
 8284 
 8285 2014-02-21  Paul Eggert  <eggert@cs.ucla.edu>
 8286 
 8287 	Pacify GCC when configuring with --enable-gcc-warnings.
 8288 	* xdisp.c (move_it_in_display_line_to) [lint]:
 8289 	Initialize recently-added local.
 8290 
 8291 2014-02-21  Daniel Colascione  <dancol@dancol.org>
 8292 
 8293 	* dbusbind.c: Rename dbus-init-bus to dbus-init-bus-1.
 8294 
 8295 2014-02-20  Eli Zaretskii  <eliz@gnu.org>
 8296 
 8297 	* xdisp.c (init_iterator): Don't dereference a bogus face
 8298 	pointer.  (Bug#16819)
 8299 	(try_cursor_movement): Don't use cursor position if
 8300 	set_cursor_from_row failed to compute it.  This avoids assertion
 8301 	violations in MATRIX_ROW.
 8302 	(move_it_in_display_line_to): Save the iterator state in ppos_it
 8303 	only once per call.  Reimplement the method used to return to the
 8304 	best candidate position if all the positions found in display line
 8305 	are beyond TO_CHARPOS.  This cuts down the number of calls to
 8306 	bidi_shelve_cache, which moves a lot of stuff when lines are long
 8307 	and include bidirectional text.  (Bug#15555)
 8308 
 8309 2014-02-20  Glenn Morris  <rgm@gnu.org>
 8310 
 8311 	* data.c (Fdefalias): Doc fix.
 8312 
 8313 2014-02-19  Eli Zaretskii  <eliz@gnu.org>
 8314 
 8315 	* xdisp.c (display_line): Fix horizontal scrolling of large images
 8316 	when fringes are turned off.  This comes at a price of not
 8317 	displaying the truncation/continuation glyphs in this case.
 8318 	(Bug#16806)
 8319 
 8320 	* image.c (x_create_x_image_and_pixmap) [HAVE_NTGUI]: If
 8321 	CreateDIBSection returns an error indication, zero out *ximg after
 8322 	destroying the image.  This avoids crashes in memory allocations
 8323 	due to the fact that some of the callers also call
 8324 	x_destroy_x_image, which will attempt to free an already free'd
 8325 	block of memory.
 8326 
 8327 2014-02-18  Martin Rudalics  <rudalics@gmx.at>
 8328 
 8329 	* widget.c (update_various_frame_slots): Don't set
 8330 	FRAME_PIXEL_HEIGHT and FRAME_PIXEL_WIDTH here (Bug#16736).
 8331 
 8332 2014-02-18  Michael Albinus  <michael.albinus@gmx.de>
 8333 
 8334 	* dbusbind.c (xd_close_bus): Apply proper check on busobj.
 8335 
 8336 2014-02-17  Paul Eggert  <eggert@cs.ucla.edu>
 8337 
 8338 	temacs --daemon fix (Bug#16599).
 8339 	* emacs.c (main): Initialize daemon_pipe[1] here ...
 8340 	(syms_of_emacs): ... instead of here.
 8341 
 8342 2014-02-16  Anders Lindgren  <andlind@gmail.com>
 8343 
 8344 	* nsterm.m (keyDown:): Check for normal key even if NSNumericPadKeyMask
 8345 	is set (Bug#16505).
 8346 
 8347 2014-02-16  Daniel Colascione  <dancol@dancol.org>
 8348 
 8349 	* dbusbind.c (xd_lisp_dbus_to_dbus): New function.
 8350 	(xd_get_connection_address): Use it.
 8351 	(xd_close_bus): Use xd_lisp_dbus_to_dbus to instead of
 8352 	xd_get_connection_address because the latter signals if the bus
 8353 	we're trying to close is already disconnected.
 8354 
 8355 2014-02-13  Eli Zaretskii  <eliz@gnu.org>
 8356 
 8357 	* w32proc.c (start_timer_thread): Pass a non-NULL pointer as last
 8358 	argument to CreateThread.  This avoids segfaults on Windows 9X.
 8359 	Reported by oslsachem <oslsachem@gmail.com>.
 8360 
 8361 2014-02-13  Paul Eggert  <eggert@cs.ucla.edu>
 8362 
 8363 	Fix subspace record bug on HP-UX 10.20 (Bug#16717).
 8364 	* unexhp9k800.c (unexec_error): New function, to simplify the code.
 8365 	(check_lseek): New function, to report lseek errors.
 8366 	(save_data_space, update_file_ptrs, read_header, write_header)
 8367 	(copy_file, copy_rest, unexec): Use these news functions.
 8368 	(update_file_ptrs): Don't assume wraparound behavior when
 8369 	converting a large size_t value to off_t.
 8370 
 8371 2014-02-13  Dmitry Antipov  <dmantipov@yandex.ru>
 8372 
 8373 	* composite.c (fill_gstring_header): Pass positions as C integers
 8374 	and move parameters checking to...
 8375 	(Fcomposition_get_gstring): ...this function.  Handle case when
 8376 	buffer positions are in reversed order and avoid crash (Bug#16739).
 8377 	Adjust docstring.
 8378 	* buffer.c (validate_region): Mention current buffer in error message.
 8379 
 8380 2014-02-12  Marcus Karlsson  <mk@acc.umu.se>  (tiny change)
 8381 
 8382 	* image.c (pbm_load): Set to NO_PIXMAP on error (Bug#16683).
 8383 
 8384 2014-02-12  Lars Ingebrigtsen  <larsi@gnus.org>
 8385 
 8386 	* buffer.c (syms_of_buffer): Doc clarification (bug#9981).
 8387 
 8388 2014-02-11  Glenn Morris  <rgm@gnu.org>
 8389 
 8390 	* nsfns.m (ns_display_info_for_name, Fx_open_connection):
 8391 	Replace refs to "OpenStep" in messages.
 8392 
 8393 2014-02-10  Paul Eggert  <eggert@cs.ucla.edu>
 8394 
 8395 	Avoid "." at end of error diagnostics.
 8396 	* cmds.c (Fself_insert_command): Reword and avoid "." at end.
 8397 	* font.c (Ffont_at):
 8398 	* nsfns.m (ns_display_info_for_name):
 8399 	* nsselect.m (Fx_own_selection_internal):
 8400 	* nsterm.m (performDragOperation:):
 8401 	Remove "." from end of diagnostic.
 8402 
 8403 2014-02-10  Lars Ingebrigtsen  <larsi@gnus.org>
 8404 
 8405 	* fns.c (Fmaphash): Say what `maphash' returns, since it may be
 8406 	unintuitive (bug#15824).
 8407 	(Fyes_or_no_p): Doc fix (bug#15456).
 8408 
 8409 2014-02-10  Dmitry Antipov  <dmantipov@yandex.ru>
 8410 
 8411 	* cmds.c (Fself_insert_command): Respect the width of EMACS_INT
 8412 	and avoid warning.
 8413 	* eval.c (call_debugger): When exiting the debugger, do not allow
 8414 	max_specpdl_size less than actual binding depth (Bug#16603).
 8415 	(syms_of_eval): Adjust docstring.
 8416 
 8417 2014-02-09  Lars Ingebrigtsen  <larsi@gnus.org>
 8418 
 8419 	* cmds.c (Fself_insert_command): Output a clearer error message on
 8420 	negative repetitions (bug#9476).
 8421 
 8422 	* macros.c (Fexecute_kbd_macro): Doc fix (bug#14206).
 8423 
 8424 2014-02-08  Lars Ingebrigtsen  <larsi@gnus.org>
 8425 
 8426 	* syntax.c (Fskip_syntax_backward): Doc clarification (bug#15115).
 8427 
 8428 	* minibuf.c (Fread_string): Doc clarification (bug#15422).
 8429 
 8430 	* buffer.c (Fmake_overlay): Doc clarification (bug#15489).
 8431 
 8432 2014-02-08  Juanma Barranquero  <lekktu@gmail.com>
 8433 
 8434 	* keyboard.c (Frecursive_edit): Fix typo in docstring.
 8435 
 8436 2014-02-08  Lars Ingebrigtsen  <larsi@gnus.org>
 8437 
 8438 	* xdisp.c (syms_of_xdisp): Doc clarification (bug#15657).
 8439 
 8440 	* keyboard.c (Frecursive_edit): Say more precicely how throwing
 8441 	`exit' works (bug#15865).
 8442 
 8443 2014-02-07  Martin Rudalics  <rudalics@gmx.at>
 8444 
 8445 	Constrain window box/body sizes and margin widths (Bug#16649).
 8446 	* xdisp.c (window_box_width): Don't return less than zero.
 8447 	(window_box_left_offset, window_box_right_offset): Don't return
 8448 	more than the window's pixel width.
 8449 	* window.c (window_body_height, window_body_width): Don't return
 8450 	negative value.
 8451 	(window_resize_apply): Adjust margin width, if necessary.
 8452 
 8453 2014-02-07  Glenn Morris  <rgm@gnu.org>
 8454 
 8455 	* nsterm.m (syms_of_nsterm): Doc fix.
 8456 
 8457 2014-02-06  Eli Zaretskii  <eliz@gnu.org>
 8458 
 8459 	* w32.c (pMultiByteToWideChar, pWideCharToMultiByte):
 8460 	New variables: pointers through which to call the respective APIs.
 8461 	(filename_to_utf16, filename_from_utf16, filename_to_ansi)
 8462 	(filename_from_ansi, sys_link, check_windows_init_file):
 8463 	Call MultiByteToWideChar and WideCharToMultiByte through pointers.
 8464 	This is required on Windows 9X, where we dynamically load
 8465 	UNICOWS.DLL which has their non-stub implementations.
 8466 	(maybe_load_unicows_dll): Assign addresses to these 2 function
 8467 	pointers after loading UNICOWS.DLL.
 8468 
 8469 	* w32fns.c (Fx_file_dialog, Fw32_shell_execute) [!CYGWIN]: Call
 8470 	MultiByteToWideChar and WideCharToMultiByte through function
 8471 	pointers.
 8472 
 8473 	* w32.h (pMultiByteToWideChar, pWideCharToMultiByte):
 8474 	New declarations.
 8475 
 8476 2014-02-06  Jan Djärv  <jan.h.d@swipnet.se>
 8477 
 8478 	* nsterm.m (toggleFullScreen:): Hide menubar on secondary monitor
 8479 	for OSX >= 10.9 if separate spaces are used.
 8480 	(toggleFullScreen:): Use screen of w instead of fw (Bug#16659).
 8481 
 8482 2014-02-06  Glenn Morris  <rgm@gnu.org>
 8483 
 8484 	* buffer.c (cache-long-scans): Doc fix.
 8485 
 8486 2014-02-05  Eli Zaretskii  <eliz@gnu.org>
 8487 
 8488 	* w32fns.c (Fw32_shell_execute): Doc fix.
 8489 
 8490 2014-02-05  Bastien Guerry  <bzg@gnu.org>
 8491 
 8492 	* syntax.c (Fforward_word): Call Fconstrain_to_field with
 8493 	ESCAPE-FROM-EDGE set to `nil' (Bug#16453).
 8494 
 8495 2014-02-05  Martin Rudalics  <rudalics@gmx.at>
 8496 
 8497 	* fringe.c (draw_fringe_bitmap_1): Don't draw a fringe if it's
 8498 	outside the window (Bug#16649).
 8499 
 8500 	* xdisp.c (note_mouse_highlight): When entering a margin area show
 8501 	a non-text cursor (Bug#16647).
 8502 
 8503 2014-02-04  Paul Eggert  <eggert@cs.ucla.edu>
 8504 
 8505 	* menu.c (Fx_popup_dialog): Remove label 'dialog_via_menu'.
 8506 	It prompted a compile-time diagnostic on GNU/Linux.
 8507 	Simplify to remove the need for the label.
 8508 
 8509 2014-02-04  Eli Zaretskii  <eliz@gnu.org>
 8510 
 8511 	* w32menu.c (w32_popup_dialog): Don't condition the whole function
 8512 	on HAVE_DIALOGS.  If the dialog is "simple", pop up a message box
 8513 	to show it; otherwise return 'unsupported--w32-dialog' to signal
 8514 	to the caller that emulation with menus is necessary.
 8515 	This resurrects code inadvertently deleted by the 2013-10-08 commit.
 8516 	(Bug#16636)
 8517 	(syms_of_w32menu): DEFSYM Qunsupported__w32_dialog.
 8518 
 8519 	* w32term.h (w32_popup_dialog): Prototype is no longer conditioned
 8520 	by HAVE_DIALOGS.
 8521 
 8522 	* menu.c (Fx_popup_dialog): Don't condition the call to
 8523 	w32_popup_dialog on HAVE_DIALOGS.  If w32_popup_dialog returns a
 8524 	special symbol 'unsupported--w32-dialog', emulate the dialog with
 8525 	a menu by calling x-popup-menu.
 8526 
 8527 	* menu.h (Qunsupported__w32_dialog): New extern variable.
 8528 
 8529 2014-02-04  Michael Albinus  <michael.albinus@gmx.de>
 8530 
 8531 	* keyboard.c (kbd_buffer_get_event): Read file notification events
 8532 	also in batch mode.
 8533 
 8534 	* xgselect.c (xg_select): Read glib events in any case, even if
 8535 	there are no file descriptors to watch for.  (Bug#16519)
 8536 
 8537 2014-02-03  Martin Rudalics  <rudalics@gmx.at>
 8538 
 8539 	* dispextern.h (face_id): Add WINDOW_DIVIDER_FIRST_PIXEL_FACE_ID
 8540 	and WINDOW_DIVIDER_LAST_PIXEL_FACE_ID.
 8541 	* w32term.c (w32_draw_window_divider): Handle first and last
 8542 	pixels specially.
 8543 	* w32term.h (w32_fill_area_abs): New function.
 8544 	* xdisp.c (x_draw_right_divider): Don't draw over bottom
 8545 	divider.
 8546 	* xfaces.c (realize_basic_faces): Handle new face ids.
 8547 	* xfns.c (Fx_create_frame): Call x_default_parameter for right
 8548 	and bottom divider width.
 8549 	* xterm.c (x_draw_window_divider): Handle first and last pixels
 8550 	specially.
 8551 
 8552 2014-02-03  Dmitry Antipov  <dmantipov@yandex.ru>
 8553 
 8554 	* print.c (Fexternal_debugging_output): Add cast to pacify
 8555 	--enable-gcc-warnings.
 8556 	* eval.c (call_debugger): Grow specpdl if the debugger was
 8557 	entered due to specpdl overflow (Bug#16603) and allow more
 8558 	specpdl space for the debugger itself.
 8559 
 8560 2014-02-02  Martin Rudalics  <rudalics@gmx.at>
 8561 
 8562 	* w32fns.c (Fx_create_frame): Process frame alpha earlier.
 8563 	(Bug#16619)
 8564 
 8565 2014-02-01  Eli Zaretskii  <eliz@gnu.org>
 8566 
 8567 	* w32fns.c (Ffile_system_info): Use WINAPI in the function
 8568 	pointers that get the address of GetDiskFreeSpaceEx.  (Bug#16615)
 8569 
 8570 	* print.c (Fexternal_debugging_output): If the argument character
 8571 	is non-ASCII, encode it with the current locale's encoding before
 8572 	writing the result to the terminal.  (Bug#16448)
 8573 
 8574 	* w32fns.c (Fw32_shell_execute): Don't call file-exists-p for
 8575 	DOCUMENT that is a "remote" file name, i.e. a file-handler exists
 8576 	for it.  (Bug#16558)
 8577 
 8578 2014-01-30  Andreas Schwab  <schwab@linux-m68k.org>
 8579 
 8580 	* process.c (create_process): Reset SIGPROF handler in the child.
 8581 	* callproc.c (call_process): Likewise.
 8582 
 8583 2014-01-29  Paul Eggert  <eggert@cs.ucla.edu>
 8584 
 8585 	* xmenu.c (create_and_show_popup_menu): Port comment to C89.
 8586 
 8587 2014-01-29  Eli Zaretskii  <eliz@gnu.org>
 8588 
 8589 	* .gdbinit (xprintstr, xprintbytestr): Don't use repetition count
 8590 	of zero to print strings, GDB doesn't like it.
 8591 
 8592 	* print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE, not
 8593 	STRING_CHAR_AND_LENGTH, so that if the string is relocated by GC,
 8594 	we still use correct addresses.  (Bug#16576)
 8595 
 8596 2014-01-27  K. Handa  <handa@gnu.org>
 8597 
 8598 	Fix bug#16286 by a different method from 2014-01-26T00:32:30Z!eggert@cs.ucla.edu,
 8599 	to preserve the code detection behavior of 24.3.
 8600 	* coding.h (struct coding_system): New member detected_utf8_bytes.
 8601 	* coding.c (detect_coding_utf_8): Set coding->detected_utf8_bytes.
 8602 	(decode_coding_gap): Use short cut for UTF-8 file reading only
 8603 	when coding->detected_utf8_bytes equals to coding->src_bytes.
 8604 	* fileio.c (Finsert_file_contents): Cancel the previous change.
 8605 
 8606 2014-01-29  Martin Rudalics  <rudalics@gmx.at>
 8607 
 8608 	* w32fns.c (x_set_tool_bar_lines): Don't clear area on frames
 8609 	that are not visible.
 8610 
 8611 2014-01-29  Jan Djärv  <jan.h.d@swipnet.se>
 8612 
 8613 	* xmenu.c (create_and_show_popup_menu): Handle case when no key
 8614 	is grabbed (Bug#16565).
 8615 
 8616 2014-01-28  Martin Rudalics  <rudalics@gmx.at>
 8617 
 8618 	* xdisp.c (last_max_ascent): Re-remove after erroneously
 8619 	reintroducing it on 2013-11-30 and abolishing Dmitry's removal
 8620 	from 2013-03-29.
 8621 	(move_it_to): Re-remove reference to last_max_ascent.
 8622 	(Fwindow_text_pixel_size): Add iterator's max_ascent and
 8623 	max_descent here instead of calling line_bottom_y.
 8624 	Fix doc-string.
 8625 
 8626 2014-01-28  Dmitry Antipov  <dmantipov@yandex.ru>
 8627 
 8628 	* terminal.c (initial_free_frame_resources): New function.
 8629 	(init_initial_terminal): Install new hook to free face cache
 8630 	on initial frame and avoid memory leak.  For details, see
 8631 	<https://lists.gnu.org/r/emacs-devel/2014-01/msg01974.html>.
 8632 	* xfaces.c (free_frame_faces): Adjust comment.
 8633 
 8634 2014-01-26  Paul Eggert  <eggert@cs.ucla.edu>
 8635 
 8636 	* data.c (Fstring_to_number): Document results if unparsable
 8637 	(Bug#16551).
 8638 
 8639 2014-01-26  Jan Djärv  <jan.h.d@swipnet.se>
 8640 
 8641 	* xterm.c (x_focus_changed): Check for non-X terminal-frame (Bug#16540)
 8642 
 8643 2014-01-26  Paul Eggert  <eggert@cs.ucla.edu>
 8644 
 8645 	When decoding, prefer ptrdiff_t to int for buffer positions etc.
 8646 	* coding.c (detect_coding_utf_8, emacs_mule_char)
 8647 	(detect_coding_iso_2022, encode_coding_iso_2022, check_ascii)
 8648 	(check_utf_8, decode_coding):
 8649 	* coding.h (struct coding_system.errors):
 8650 	Use ptrdiff_t, not int, for integer values derived from buffer and
 8651 	string positions.
 8652 
 8653 	Fix crash with insert-file-contents and misdecoded text (Bug#16286).
 8654 	* fileio.c (Finsert_file_contents): Set CODING_MODE_LAST_BLOCK
 8655 	before invoking decode_coding_gap, since there's just one block.
 8656 
 8657 2014-01-25  Martin Rudalics  <rudalics@gmx.at>
 8658 
 8659 	Fix handling of face attributes in Fx_create_frame (Bug#16529).
 8660 	* w32fns.c (Fx_create_frame): Don't inhibit running Lisp code
 8661 	too early.  Again run change_frame_size before assigning menu-
 8662 	and tool-bar-lines.
 8663 
 8664 2014-01-25  Fabrice Popineau  <fabrice.popineau@gmail.com>
 8665 
 8666 	* w32term.c (w32_read_socket): When the WM_DISPLAYCHANGE message
 8667 	arrives, call x_check_fullscreen, in case the new display has a
 8668 	different resolution.  (Bug#16517)
 8669 
 8670 2014-01-25  Eli Zaretskii  <eliz@gnu.org>
 8671 
 8672 	* term.c (read_menu_input): If the selected frame changes, exit
 8673 	the menu.
 8674 	(tty_menu_show): If the selected frame changes while we displayed
 8675 	a menu, throw to top level.  (Bug#16479)
 8676 
 8677 2014-01-25  Stefan Monnier  <monnier@iro.umontreal.ca>
 8678 
 8679 	* eval.c (Fsignal): Fix `debug' handling to match 2013-10-03 change.
 8680 
 8681 2014-01-24  Paul Eggert  <eggert@cs.ucla.edu>
 8682 
 8683 	Fix bool-vector-count-population bug on MinGW64 (Bug#16535).
 8684 	* data.c (count_one_bits_word): Fix bug (negated comparison)
 8685 	when BITS_PER_ULL < BITS_PER_BITS_WORD.
 8686 
 8687 2014-01-24  Dmitry Antipov  <dmantipov@yandex.ru>
 8688 
 8689 	* xdisp.c (reseat_1, Fcurrent_bidi_paragraph_direction):
 8690 	Avoid undefined behavior by initializing display property bit of a
 8691 	string processed by the bidirectional iterator.  For details, see
 8692 	<https://lists.gnu.org/r/emacs-devel/2014-01/msg01920.html>.
 8693 
 8694 2014-01-23  Paul Eggert  <eggert@cs.ucla.edu>
 8695 
 8696 	Minor cleanup of previous change.
 8697 	* image.c (imagemagick_error, Fimagemagick_types):
 8698 	Omit some recently-introduced and unnecessary casts and assignments.
 8699 
 8700 2014-01-23  Dmitry Antipov  <dmantipov@yandex.ru>
 8701 
 8702 	Fix two memory leaks discovered with Valgrind.
 8703 	* ftfont.c (ftfont_list) [HAVE_LIBOTF]: Call OTF_close.
 8704 	* image.c (Fimagemagick_types): Call MagickRelinquishMemory.
 8705 
 8706 2014-01-22  Martin Rudalics  <rudalics@gmx.at>
 8707 
 8708 	Fixes in window size functions around Bug#16430 and Bug#16470.
 8709 	* window.c (Fwindow_pixel_width, Fwindow_pixel_height)
 8710 	(Fwindow_mode_line_height, Fwindow_header_line_height)
 8711 	(Fwindow_right_divider_width, Fwindow_bottom_divider_width):
 8712 	Minor doc-string adjustments.
 8713 	(Fwindow_total_height, Fwindow_total_width): New argument ROUND.
 8714 	Rewrite doc-strings.
 8715 	(window_body_height, window_body_width): Do not count partially
 8716 	visible lines/columns when PIXELWISE is nil (Bug#16470).
 8717 	(Qfloor, Qceiling): New symbols.
 8718 
 8719 2014-01-21  Eli Zaretskii  <eliz@gnu.org>
 8720 
 8721 	* w32fns.c (unwind_create_frame): Avoid crashing inside assertion
 8722 	when the image cache is not yet allocated.  (Bug#16509)
 8723 
 8724 2014-01-21  Dmitry Antipov  <dmantipov@yandex.ru>
 8725 
 8726 	* buffer.c (Fkill_buffer): When killing an indirect buffer,
 8727 	re-attach intervals to its base buffer (Bug#16502).
 8728 	* intervals.c (set_interval_object): Move from here...
 8729 	* intervals.h (set_interval_object): ... to here.  Fix comments.
 8730 
 8731 2014-01-20  Paul Eggert  <eggert@cs.ucla.edu>
 8732 
 8733 	Avoid undefined behavior by initializing buffer redisplay bit.
 8734 	Reported by Dmitry Antipov in
 8735 	<https://lists.gnu.org/r/emacs-devel/2014-01/msg01756.html>.
 8736 	* buffer.c (Fget_buffer_create): Initialize redisplay bit.
 8737 
 8738 	Revert some of the CANNOT_DUMP fix (Bug#16494).
 8739 	* lread.c (init_lread): Fix typo: NILP, not !NILP.
 8740 
 8741 2014-01-19  Eli Zaretskii  <eliz@gnu.org>
 8742 
 8743 	* w32font.c (w32_load_unicows_or_gdi32, get_outline_metrics_w)
 8744 	(get_text_metrics_w, get_glyph_outline_w, get_char_width_32_w)
 8745 	[!WINDOWSNT]: These functions are no longer compiled on Cygwin;
 8746 	they are replaced by macros that expand into direct calls to the
 8747 	corresponding functions from GDI32.DLL.
 8748 	(globals_of_w32font) [WINDOWSNT]: Don't initialize g_b_* static
 8749 	variables in the Cygwin build, they are unused.
 8750 
 8751 2014-01-19  K. Handa  <handa@gnu.org>
 8752 
 8753 	* composite.c (composition_update_it): Fix previous change.
 8754 
 8755 2014-01-18  Eli Zaretskii  <eliz@gnu.org>
 8756 
 8757 	Fix file name handling on MS-Windows 9X.
 8758 	* w32.c (maybe_load_unicows_dll): New function.
 8759 
 8760 	* emacs.c (main) [WINDOWSNT]: Call maybe_load_unicows_dll early
 8761 	on, to make sure we can convert file names to and from UTF-8 on
 8762 	Windows 9X.  This fixes a failure to start up because Emacs cannot
 8763 	find term/w32-win.el.  Reported by oslsachem <oslsachem@gmail.com>.
 8764 
 8765 	* w32font.c [WINDOWSNT]: Include w32.h.
 8766 	(w32_load_unicows_or_gdi32): Call maybe_load_unicows_dll, instead
 8767 	of implementing the same stuff.
 8768 	Remove now unused g_b_init_is_windows_9x.
 8769 
 8770 	* w32.h (maybe_load_unicows_dll): Add prototype.
 8771 
 8772 2014-01-17  Eli Zaretskii  <eliz@gnu.org>
 8773 
 8774 	* menu.c (Fx_popup_menu): When invoking tty_menu_show, temporarily
 8775 	switch to single keyboard.  Prevents daemon crashes when a new
 8776 	client connects while we show a TTY menu in an existing client.
 8777 	(Bug#16479)
 8778 
 8779 2014-01-14  Paul Eggert  <eggert@cs.ucla.edu>
 8780 
 8781 	Fix MinGW64 porting problem with _setjmp.
 8782 	Reported by Eli Zaretskii in:
 8783 	https://lists.gnu.org/r/emacs-devel/2014-01/msg01297.html
 8784 	* image.c (FAST_SETJMP, FAST_LONGJMP): New macros, replacing
 8785 	the old _setjmp and _longjmp.  All uses changed.
 8786 
 8787 2014-01-13  Daniel Colascione  <dancol@dancol.org>
 8788 
 8789 	* textprop.c (Fremove_list_of_text_properties):
 8790 	Correctly handle reaching the end of the interval tree. (Bug#15344)
 8791 
 8792 2014-01-13  Martin Rudalics  <rudalics@gmx.at>
 8793 
 8794 	* xdisp.c (resize_mini_window): Round height to a multiple of
 8795 	frame's line height.  Fix bug in calculation of window start
 8796 	position (Bug#16424).
 8797 
 8798 2014-01-13  Jan Djärv  <jan.h.d@swipnet.se>
 8799 
 8800 	* macfont.m: Include termchar.h.
 8801 	(CG_SET_FILL_COLOR_WITH_FACE_FOREGROUND)
 8802 	(CG_SET_FILL_COLOR_WITH_FACE_BACKGROUND)
 8803 	(CG_SET_STROKE_COLOR_WITH_FACE_FOREGROUND): Modify from
 8804 	*_WITH_GC_* to take face and f as parameters.
 8805 	(macfont_draw): Check for DRAW_MOUSE_FACE and set face accordingly.
 8806 	Use *_WITH_FACE_*, and pass face as parameter (Bug#16425).
 8807 
 8808 2014-01-13  Daniel Colascione  <dancol@dancol.org>
 8809 
 8810 	Fix menu item updating in the presence of the Unity global menu
 8811 	GTK+ module.
 8812 
 8813 	* gtkutil.h (xg_have_tear_offs): Add frame parameter
 8814 	* gtkutil.c (xg_have_tear_offs): Count the global menu as a
 8815 	tear-off.
 8816 	(xg_update_menubar, xg_update_menu_item): Call g_object_notify when
 8817 	updating menus; explain why.
 8818 	(xg_update_frame_menubar): Remove the 23px hack: I can't repro the
 8819 	problem it's supposed to solve and it interferes with detecting
 8820 	the presence of a global menu.
 8821 	* xmenu.c (set_frame_menubar): Call xg_have_tear_offs with new
 8822 	parameter.
 8823 
 8824 2014-01-11  K. Handa  <handa@gnu.org>
 8825 
 8826 	* composite.c (composition_update_it): Fix indexing of
 8827 	LGSTRING_CHAR (Bug#15984).
 8828 
 8829 2014-01-11  Fabrice Popineau  <fabrice.popineau@gmail.com>
 8830 
 8831 	* unexw32.c (_start) [__MINGW64__]: Define to __start.
 8832 
 8833 2014-01-11  Eli Zaretskii  <eliz@gnu.org>
 8834 
 8835 	* xdisp.c (try_window_id): Don't use this function's optimizations
 8836 	if overlays in the buffer displayed by the window have changed
 8837 	since last redisplay.  (Bug#16347)
 8838 	(message_dolog): Fix indentation.
 8839 
 8840 2014-01-11  Martin Rudalics  <rudalics@gmx.at>
 8841 
 8842 	* frame.c (frame_resize_pixelwise): Fix doc-string.
 8843 
 8844 2014-01-10  Martin Rudalics  <rudalics@gmx.at>
 8845 
 8846 	Fix handling of internal borders (Bug#16348).
 8847 	* dispnew.c (adjust_frame_glyphs_for_window_redisplay):
 8848 	Remove internal border width from pixel width of windows.
 8849 	(change_frame_size_1): Don't return early when frame's pixel
 8850 	size changes - we still have to record the new sizes in the
 8851 	frame structure.
 8852 	* w32fns.c (x_set_tool_bar_lines): Clear internal border width
 8853 	also when toolbar gets larger.
 8854 	* window.c (check_frame_size): Include internal_border_width in
 8855 	check.
 8856 	* xdisp.c (Ftool_bar_height): Fix doc-string typo.
 8857 	* xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
 8858 	In non-toolkit/non-GTK version clear internal border.
 8859 	* xterm.c (x_clear_under_internal_border): New function for
 8860 	non-toolkit/non-GTK version.
 8861 	(x_after_update_window_line): In non-toolkit/non-GTK version
 8862 	don't do that.
 8863 	(handle_one_xevent, x_set_window_size):
 8864 	Call x_clear_under_internal_border in non-toolkit/non-GTK version.
 8865 	* xterm.h (x_clear_under_internal_border): Extern it.
 8866 
 8867 2014-01-07  Paul Eggert  <eggert@cs.ucla.edu>
 8868 
 8869 	Fix misdisplay of interlaced GIFs with libgif5 (Bug#16372).
 8870 	* image.c (gif_load): libgif5 deinterlaces for us, so don't do
 8871 	it again.
 8872 
 8873 2014-01-06  Eli Zaretskii  <eliz@gnu.org>
 8874 
 8875 	* xdisp.c (redisplay_window): Don't skip window redisplay if the
 8876 	last value of point is not equal to buffer's point.  (Bug#16129)
 8877 
 8878 2014-01-05  Paul Eggert  <eggert@cs.ucla.edu>
 8879 
 8880 	Spelling fixes.
 8881 	* nsterm.h (updateCollectionBehavior): Rename from
 8882 	updateCollectionBehaviour.  All uses changed.
 8883 
 8884 	Port to GNU/Linux with recent grsecurity/PaX patches (Bug#16343).
 8885 	* Makefile.in (SETFATTR): New macro.
 8886 	(temacs$(EXEEXT)): Use it.
 8887 
 8888 2014-01-04  Martin Rudalics  <rudalics@gmx.at>
 8889 
 8890 	Fix maximization behavior on Windows (Bug#16300).
 8891 	* w32fns.c (w32_fullscreen_rect): Don't handle
 8892 	FULLSCREEN_MAXIMIZED and FULLSCREEN_NONE specially.
 8893 	* w32term.c (w32fullscreen_hook): Use SetWindowPlacement instead
 8894 	of SetWindowPos.  Restore last placement also when leaving
 8895 	FULLSCREEN_HEIGHT and FULLSCREEN_WIDTH.  Call ShowWindow in all
 8896 	but the FULLSCREEN_BOTH case.
 8897 
 8898 2014-01-03  Paul Eggert  <eggert@cs.ucla.edu>
 8899 
 8900 	Port to C89.
 8901 	* data.c (arithcompare_driver):
 8902 	* fileio.c (Fcar_less_than_car):
 8903 	* fns.c (internal_equal):
 8904 	* frame.c (delete_frame):
 8905 	* lisp.h (enum More_Lisp_Bits):
 8906 	* lread.c (read1):
 8907 	Avoid C99 constructs that don't work in C89.
 8908 	* data.c (ULL_MAX, count_trailing_zeros_ll): New macros,
 8909 	to port to C89, which doesn't have 'long long'.
 8910 	(count_trailing_zero_bits): Use them.
 8911 
 8912 2014-01-03  Chong Yidong  <cyd@gnu.org>
 8913 
 8914 	* doc.c (Fdocumentation): Remove dynamic-docstring-function.
 8915 
 8916 2014-01-02  Martin Rudalics  <rudalics@gmx.at>
 8917 
 8918 	Further adjust frame/window scrollbar width calculations.
 8919 	* window.c (apply_window_adjustment):
 8920 	Set windows_or_buffers_changed.
 8921 	(Fwindow_scroll_bars): Return actual scrollbar width.
 8922 	* xfns.c (x_set_scroll_bar_default_width): Rename wid to unit.
 8923 	For non-toolkit builds again use 14 as minimum width and set
 8924 	FRAME_CONFIG_SCROLL_BAR_WIDTH accordingly.
 8925 	* xterm.c (XTset_vertical_scroll_bar): Take width from
 8926 	WINDOW_SCROLL_BAR_AREA_WIDTH.
 8927 	(x_new_font): Rename wid to unit.  Base calculation of new
 8928 	scrollbar width on toolkit used and make it analogous to that of
 8929 	x_set_scroll_bar_default_width.
 8930 	* w32fns.c (x_set_scroll_bar_default_width): Rename wid to unit.
 8931 	(Fx_create_frame): Call x_set_scroll_bar_default_width instead
 8932 	of GetSystemMetrics.
 8933 	* w32term.c (w32_set_vertical_scroll_bar): Take width from
 8934 	WINDOW_SCROLL_BAR_AREA_WIDTH.
 8935 	(x_new_font): Make it correspond to changes in xterm.c.
 8936 
 8937 2014-01-01  Paul Eggert  <eggert@cs.ucla.edu>
 8938 
 8939 	* lisp.h (EMACS_INT): Configure based on INTPTR_MAX, not LONG_MAX.
 8940 	This is a cleaner way to fix the MinGW-w64 porting problem.
 8941 	Check for INTPTR_MAX misconfiguration.
 8942 
 8943 2014-01-01  Eli Zaretskii  <eliz@gnu.org>
 8944 
 8945 	* search.c (newline_cache_on_off, find_newline): In indirect
 8946 	buffers, use the newline cache of the base buffer.
 8947 
 8948 	* insdel.c (invalidate_buffer_caches): If BUF is an indirect
 8949 	buffer, invalidate the caches of its base buffer.  (Bug#16265)
 8950 
 8951 	* indent.c (width_run_cache_on_off, compute_motion): In indirect
 8952 	buffers, use the width-run cache of the base buffer.
 8953 
 8954 	* xdisp.c (redisplay_window): When the window displays an indirect
 8955 	buffer, and the character widths in the display table have
 8956 	changed, invalidate the width-run cache of the corresponding base
 8957 	buffer.
 8958 
 8959 	* fileio.c (Finsert_file_contents): When invalidating the newline
 8960 	cache, consider the case of inserting into indirect buffer.
 8961 
 8962 	* bidi.c (bidi_paragraph_cache_on_off, bidi_find_paragraph_start):
 8963 	In indirect buffers, use the paragraph cache of the base buffer.
 8964 
 8965 2013-12-31  Martin Rudalics  <rudalics@gmx.at>
 8966 
 8967 	* window.c (grow_mini_window): Fix last change.
 8968 
 8969 2013-12-31  Jan Djärv  <jan.h.d@swipnet.se>
 8970 
 8971 	* nsterm.m (windowDidResignKey:): Set mouse_moved to 0 (Bug#8421).
 8972 
 8973 2013-12-31  Fabrice Popineau  <fabrice.popineau@supelec.fr>
 8974 
 8975 	* w32term.c (w32_initialize): Use LCID and LOWORD.
 8976 
 8977 	* w32proc.c (create_child): Use pid_t for 5th argument.
 8978 	(IsValidLocale): Don't provide prototype for MinGW64.
 8979 	(Fw32_get_valid_keyboard_layouts, Fw32_get_keyboard_layout)
 8980 	(Fw32_set_keyboard_layout): Use HKL and HIWORD/LOWORD.
 8981 
 8982 	* w32heap.c (allocate_heap) [_WIN64]: Use "ull", not "i64", which
 8983 	MinGW64 doesn't support.
 8984 
 8985 	* lisp.h (EMACS_INT) [_WIN64]: Define for the MinGW64 build.
 8986 
 8987 	* w32.c (set_named_security_info): New function.
 8988 	(acl_set_file): Fall back on set_named_security_info if
 8989 	set_file_security fails.
 8990 	(g_b_init_set_named_security_info_w)
 8991 	(g_b_init_set_named_security_info_a): New static variables.
 8992 	(globals_of_w32): Initialize them to zero.
 8993 	(set_named_security_info): Set them to non-zero if the
 8994 	corresponding API is available.
 8995 	(SetNamedSecurityInfoW_Proc, SetNamedSecurityInfoA_Proc):
 8996 	New function typedefs.
 8997 
 8998 2013-12-31  Martin Rudalics  <rudalics@gmx.at>
 8999 
 9000 	Some more fixes following pixelwise resize changes including one
 9001 	for Bug#16306.
 9002 	* gtkutil.c (x_wm_set_size_hint): Have size hints respect value
 9003 	of frame_resize_pixelwise.
 9004 	* widget.c (pixel_to_text_size): New function.
 9005 	(update_wm_hints): Have size hints respect value of
 9006 	frame_resize_pixelwise.
 9007 	(EmacsFrameResize): Alway process resize requests pixelwise.
 9008 	* window.c (grow_mini_window): Make sure mini window is at least
 9009 	one line tall.
 9010 	* xdisp.c (display_menu_bar): Make sure menubar extends till
 9011 	right end of frame.
 9012 	* xfns.c (x_set_menu_bar_lines): Resize frame windows pixelwise.
 9013 	(x_set_tool_bar_lines): Calculate pixelwise.
 9014 	* xterm.c (x_wm_set_size_hint): Have size hints respect value of
 9015 	frame_resize_pixelwise.
 9016 
 9017 2013-12-30  Juanma Barranquero  <lekktu@gmail.com>
 9018 
 9019 	* fileio.c (Fcopy_file) [!WINDOWSNT]: Don't declare on Windows
 9020 	variables not used there.
 9021 
 9022 2013-12-30  Eli Zaretskii  <eliz@gnu.org>
 9023 
 9024 	* w32.c (sys_umask): New function.  (Bug#16299)
 9025 
 9026 2013-12-30  Martin Rudalics  <rudalics@gmx.at>
 9027 
 9028 	* dispnew.c (change_frame_size_1): Take old width of root window
 9029 	from that window's pixel width.  (Bug#16284)
 9030 
 9031 2013-12-29  Paul Eggert  <eggert@cs.ucla.edu>
 9032 
 9033 	Plain copy-file no longer chmods an existing destination (Bug#16133).
 9034 	* fileio.c (realmask): Now a static var, not a local.
 9035 	(barf_or_query_if_file_exists): New arg KNOWN_TO_EXIST.
 9036 	Remove arg STATPTR.  All uses changed.
 9037 	(Fcopy_file): Do not alter permissions of existing destinations,
 9038 	unless PRESERVE-PERMISSIONS (renamed from
 9039 	PRESERVE-EXTENDED-ATTRIBUTES) is non-nil.
 9040 	Avoid race when testing for existing destinations and for
 9041 	when input and output files are the same.
 9042 	If changing the group fails, adjust both default and
 9043 	preserved permissions so that access is not granted to the
 9044 	wrong group.
 9045 	(Fset_default_file_modes, init_fileio): Update realmask.
 9046 	(Fdefault_file_modes): Use realmask instead of calling umask.
 9047 
 9048 2013-12-28  Paul Eggert  <eggert@cs.ucla.edu>
 9049 
 9050 	Fix pipe bug with OS X emacs --daemon (Bug#16262).
 9051 	* emacs.c (main) [DAEMON_MUST_EXEC]: Clear the close-on-exec
 9052 	flags on the daemon pipe ends before execing.
 9053 
 9054 2013-12-28  Eli Zaretskii  <eliz@gnu.org>
 9055 
 9056 	* w32fns.c (Fx_create_frame): Error out if called from a TTY
 9057 	session.  (Bug#14739)
 9058 
 9059 2013-12-27  Jarek Czekalski  <jarekczek@poczta.onet.pl>
 9060 
 9061 	* callproc.c (Vexec_path): Document that exec-directory is in it.
 9062 
 9063 2013-12-27  Steve Purcell  <steve@sanityinc.com>  (tiny change)
 9064 
 9065 	* nsterm.m (syms_of_nsterm): Enable ns-use-srgb-colorspace by
 9066 	default.
 9067 
 9068 2013-12-27  Chong Yidong  <cyd@gnu.org>
 9069 
 9070 	* data.c (Fsymbol_function): Doc fix.
 9071 
 9072 2013-12-26  Martin Rudalics  <rudalics@gmx.at>
 9073 
 9074 	Some more tinkering with Bug#16051.
 9075 	* window.c (resize_frame_windows): Don't let the size of the
 9076 	root window drop below the frame's default character size.
 9077 	Never ever delete any subwindows - let the window manager do the
 9078 	clipping.
 9079 
 9080 	* w32fns.c (x_set_tool_bar_lines): Rewrite calculation of number
 9081 	of toolbar lines needed when they exceed the height of the root
 9082 	window.
 9083 	(unwind_create_frame_1): New function.
 9084 	(Fx_create_frame): Generally inhibit calling the window
 9085 	configuration change hook here.  Remove extra call to
 9086 	change_frame_size - it's not needed when we don't run the
 9087 	configuration change hook.
 9088 
 9089 2013-12-26  Paul Eggert  <eggert@cs.ucla.edu>
 9090 
 9091 	Fix core dumps with gcc -fsanitize=address and GNU/Linux.
 9092 	On my Fedora 19 platform the core dumps were so big that
 9093 	my desktop became nearly catatonic.
 9094 	* alloc.c (no_sanitize_memcpy) [MAX_SAVE_STACK > 0]: New function.
 9095 	(Fgarbage_collect) [MAX_SAVE_STACK > 0]: Use it.
 9096 	(USE_ALIGNED_MALLOC): Do not define if addresses are sanitized.
 9097 	(mark_memory): Use ATTRIBUTE_NO_SANITIZE_ADDRESS rather than
 9098 	a clang-only syntax.
 9099 	* conf_post.h (__has_feature): New macro, if not already defined.
 9100 	(ADDRESS_SANITIZER, ADDRESS_SANITIZER_WORKAROUND)
 9101 	(ATTRIBUTE_NO_SANITIZE_ADDRESS): New macros.
 9102 
 9103 2013-12-25  Eli Zaretskii  <eliz@gnu.org>
 9104 
 9105 	* w32fns.c (Fw32_shell_execute): Make DOCUMENT absolute only if it
 9106 	is a file name.  (Bug#16252)
 9107 
 9108 2013-12-25  Chong Yidong  <cyd@gnu.org>
 9109 
 9110 	* keyboard.c (Voverriding_terminal_local_map)
 9111 	(Voverriding_local_map): Doc fix.
 9112 
 9113 	* keymap.c (Vemulation_mode_map_alists): Doc fix.
 9114 
 9115 2013-12-24  Eli Zaretskii  <eliz@gnu.org>
 9116 
 9117 	* w32fns.c (Fw32_shell_execute): Ensure DOCUMENT is an absolute
 9118 	file name when it is submitted to ShellExecute.  Simplify code.
 9119 	Don't test DOCUMENT for being a string, as that is enforced by
 9120 	CHECK_STRING.  Doc fix.
 9121 
 9122 2013-12-23  Eli Zaretskii  <eliz@gnu.org>
 9123 
 9124 	* xdisp.c (tool_bar_height): Use WINDOW_PIXEL_WIDTH to set up the
 9125 	iterator X limits, not FRAME_TOTAL_COLS, for consistency with what
 9126 	redisplay_tool_bar does.  Improve and fix commentary.
 9127 	(hscroll_window_tree): Don't assume w->cursor.vpos is within the
 9128 	limits of the glyph matrices.  (Bug#16051)
 9129 	(redisplay_tool_bar): Modify the tool-bar-lines frame parameter
 9130 	only when the new size is different from the old one, and the new
 9131 	size can be achieved given the frame height.
 9132 
 9133 2013-12-23  Jan Djärv  <jan.h.d@swipnet.se>
 9134 
 9135 	* conf_post.h: Use unsigned it for bool_bf if GNUSTEP (Bug#16210).
 9136 
 9137 2013-12-23  Glenn Morris  <rgm@gnu.org>
 9138 
 9139 	* lread.c (Fload): Mention load-prefer-newer in doc.
 9140 
 9141 2013-12-22  Martin Rudalics  <rudalics@gmx.at>
 9142 
 9143 	Handle Bug#16207 by being more restrictive when running hooks.
 9144 	* window.c (unwind_change_frame): New function.
 9145 	(Fset_window_configuration): Don't run configuration change hook
 9146 	while the frame configuration is unsafe.  Call select_window
 9147 	twice.
 9148 
 9149 2013-12-22  Xue Fuqiao  <xfq.free@gmail.com>
 9150 
 9151 	* lread.c (syms_of_lread) <load_prefer_newer>: Doc fix.
 9152 
 9153 2013-12-21  Jan Djärv  <jan.h.d@swipnet.se>
 9154 
 9155 	* nsterm.h: Declare EmacsColor category.
 9156 
 9157 	* nsterm.m (NSColor): Implement EmacsColor category.
 9158 	(ns_get_color): Use colorUsingDefaultColorSpace.
 9159 	(ns_get_color, ns_term_init): Use colorForEmacsRed.
 9160 
 9161 	* nsfns.m (Fxw_color_values): Use colorUsingDefaultColorSpace.
 9162 
 9163 2013-12-21  Eli Zaretskii  <eliz@gnu.org>
 9164 
 9165 	* image.c (fn_png_longjmp) [WINDOWSNT]: Mark the function as
 9166 	having the PNG_NORETURN attribute, to avoid compiler warning in
 9167 	my_png_error.
 9168 
 9169 2013-12-21  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 9170 
 9171 	* w32term.h (struct scroll_bar): Remove member `fringe_extended_p'.
 9172 
 9173 	* w32term.c (w32_draw_fringe_bitmap, x_scroll_run): Remove code for
 9174 	fringe background extension.
 9175 	(x_scroll_bar_create): Remove variables `sb_left' and `sb_width',
 9176 	because they are now always the same as `left' and `width',
 9177 	respectively.  Remove code for the case that `width' and
 9178 	`sb_width' are different.
 9179 
 9180 2013-12-20  Martin Rudalics  <rudalics@gmx.at>
 9181 
 9182 	Remove scroll_bar_actual_width from frames.
 9183 	* frame.h (struct frame): Remove scroll_bar_actual_width slot.
 9184 	* frame.c (Fscroll_bar_width): Return scroll bar area width.
 9185 	(x_figure_window_size):
 9186 	* nsterm.m (x_set_window_size):
 9187 	* widget.c (set_frame_size):
 9188 	* w32term.c (x_set_window_size):
 9189 	* xterm.c (x_set_window_size, x_set_window_size_1): Don't set
 9190 	scroll_bar_actual_width.
 9191 
 9192 	Convert scroll_bar members to integers on Windows.
 9193 	* w32term.h (struct scroll_bar): Convert top, left, width,
 9194 	height, start, end and dragging to integers.
 9195 	* w32fns.c (w32_createscrollbar): Remove XINT conversions for
 9196 	scroll_bar members.
 9197 	* w32term.c (w32_set_scroll_bar_thumb)
 9198 	(w32_scroll_bar_handle_click): Remove XINT conversions for
 9199 	scroll_bar members.  Treat bar->dragging as integer.
 9200 	(x_scroll_bar_create): Call ALLOCATE_PSEUDOVECTOR with "top" as
 9201 	first element.  Remove XINT conversions for scroll_bar members.
 9202 	(w32_set_vertical_scroll_bar, x_scroll_bar_report_motion):
 9203 	Remove XINT conversions for scroll_bar members.
 9204 
 9205 	Fix assignment for new window total sizes.
 9206 	* window.c (Fwindow_resize_apply_total): Assign values for
 9207 	minibuffer window.
 9208 
 9209 2013-12-20  Chong Yidong  <cyd@gnu.org>
 9210 
 9211 	* textprop.c (Fadd_face_text_property): Doc fix.  Rename `appendp'
 9212 	argument to `append'.
 9213 
 9214 2013-12-19  Eli Zaretskii  <eliz@gnu.org>
 9215 
 9216 	* xdisp.c (extend_face_to_end_of_line): Use default face, not the
 9217 	current text face, for extending the face of the display margins.
 9218 	(Bug#16192)
 9219 
 9220 	* casefiddle.c (Fupcase_word, Fdowncase_word, Fcapitalize_word):
 9221 	Doc fix.  (Bug#16190)
 9222 
 9223 2013-12-19  Jan Djärv  <jan.h.d@swipnet.se>
 9224 
 9225 	* nsterm.h (KEY_NS_DRAG_FILE, KEY_NS_DRAG_COLOR, KEY_NS_DRAG_TEXT):
 9226 	Remove.
 9227 
 9228 	* nsterm.m (Qfile, Qurl): New.
 9229 	(EV_MODIFIERS2): New macro.
 9230 	(EV_MODIFIERS): Use EV_MODIFIERS2.
 9231 	(ns_term_init): Remove font and color from DND, does not work on
 9232 	newer OSX, and other ports don't have them.
 9233 	(performDragOperation:): Handle modifiers used during drag.
 9234 	Use DRAG_N_DROP_EVENT instead of NS specific events (Bug#8051).
 9235 	Remove global Lisp variables used to communicate with ns-win.el.
 9236 	Remove font and color handling.
 9237 	(syms_of_nsterm): Defsym Qfile and Qurl.
 9238 
 9239 2013-12-19  Anders Lindgren  <andlind@gmail.com>
 9240 
 9241 	* nsterm.m (NSTRACE_SIZE, NSTRACE_RECT): New macros.
 9242 	(ns_constrain_all_frames, x_set_offset): Remove assignment to
 9243 	dont_constrain.
 9244 	(updateFrameSize:, windowWillResize:toSize:): Add trace.
 9245 	(constrainFrameRect): Remove special case nr_screens == 1.
 9246 	Don't constrain size to size of view.
 9247 
 9248 	* nsterm.h (ns_output): Remove dont_constrain.
 9249 
 9250 2013-12-19  Anders Lindgren  <andlind@gmail.com>
 9251 
 9252 	* nsterm.m (mouseDown:): Generate HORIZ_WHEEL_EVENT.
 9253 
 9254 2013-12-18  Paul Eggert  <eggert@cs.ucla.edu>
 9255 
 9256 	Minor fixes for recent openp changes.
 9257 	* lisp.h (GCPRO7): New macro.
 9258 	* lread.c (openp): Use bool for boolean; all callers changed.
 9259 	Protect save_string from GC.  Don't assume that file descriptors
 9260 	are nonzero.  Redo save_mtime comparison to avoid bogus GCC
 9261 	warning about uninitialized variable.
 9262 
 9263 2013-12-18  Eli Zaretskii  <eliz@gnu.org>
 9264 
 9265 	* w32fns.c (emacs_abort): Use intptr_t as argument of
 9266 	INT_BUFSIZE_BOUND, to avoid compiler warnings.
 9267 
 9268 2013-12-18  Glenn Morris  <rgm@gnu.org>
 9269 
 9270 	* lread.c (Fload): Pass load_prefer_newer to openp.
 9271 	Don't bother checking mtime if openp already did it.
 9272 	(openp): Add `newer' argument, to check all suffixes
 9273 	and find the newest file.
 9274 	(syms_of_lread) <load_prefer_newer>: New option.  (Bug#2061)
 9275 	* callproc.c (call_process):
 9276 	* charset.c (load_charset_map_from_file):
 9277 	* emacs.c (init_cmdargs):
 9278 	* image.c (x_create_bitmap_from_file, x_find_image_file):
 9279 	* lisp.h (openp):
 9280 	* lread.c (Flocate_file_internal):
 9281 	* process.c (Fformat_network_address):
 9282 	* sound.c (Fplay_sound_internal):
 9283 	* w32.c (check_windows_init_file):
 9284 	* w32proc.c (sys_spawnve): Update for new arg spec of openp.
 9285 
 9286 	* emacs.c (standard_args) [HAVE_NS]: Remove -disable-font-backend.
 9287 
 9288 2013-12-17  Eli Zaretskii  <eliz@gnu.org>
 9289 
 9290 	* w32.c (getloadavg): Don't index samples[] array with negative
 9291 	indices.  Recover from wall-clock time being set backwards.
 9292 
 9293 	* w32term.c (w32_initialize): Declare the argument of
 9294 	set_user_model as const.
 9295 
 9296 	* w32menu.c <MessageBoxW_Proc>: Fix argument declarations.
 9297 	(w32_menu_show): Constify some arguments passed to MessageBox.
 9298 
 9299 	* w32uniscribe.c (uniscribe_font_driver): Use LISP_INITIALLY_ZERO
 9300 	to initialize Lisp objects.
 9301 
 9302 	* w32font.c (w32font_driver): Use LISP_INITIALLY_ZERO to
 9303 	initialize Lisp objects.
 9304 
 9305 	* frame.c (x_set_frame_parameters) [HAVE_X_WINDOWS]: Declare and
 9306 	use variables used only on X under that condition.
 9307 
 9308 	* fileio.c (Fcopy_file) [!WINDOWSNT]: Don't declare on Windows
 9309 	variables not used there.
 9310 
 9311 2013-12-16  Paul Eggert  <eggert@cs.ucla.edu>
 9312 
 9313 	Fix problems with CANNOT_DUMP and EMACSLOADPATH.
 9314 	* lread.c (init_lread): If CANNOT_DUMP, we can't be dumping.
 9315 
 9316 2013-12-16  Eli Zaretskii  <eliz@gnu.org>
 9317 
 9318 	* xdisp.c (Fmove_point_visually): Fix subtle bugs in the fallback
 9319 	code, revealed in presence of R2L characters, character
 9320 	compositions, and display vectors.  A better fix for Bug#16148.
 9321 	(extend_face_to_end_of_line): Don't reference tool_bar_window in
 9322 	GTK and NS builds, they don't have this member of struct frame.
 9323 
 9324 	* dispextern.h (struct composition_it): Correct a comment for the
 9325 	'width' member.
 9326 
 9327 2013-12-16  Paul Eggert  <eggert@cs.ucla.edu>
 9328 
 9329 	* font.h (valid_font_driver) [!ENABLE_CHECKING]: Define a dummy.
 9330 	This prevents a compilation error on C compilers that do not
 9331 	default functions to return 'int' if not declared.  Also, add
 9332 	INLINE_HEADER_BEGIN and INLINE_HEADER_END to this include file,
 9333 	since it now uses inline functions.
 9334 
 9335 2013-12-16  Eli Zaretskii  <eliz@gnu.org>
 9336 
 9337 	* xdisp.c (extend_face_to_end_of_line): Don't fill background of
 9338 	display margins on mode line, header line, and in the frame's
 9339 	tool-bar window.  (Bug#16165)
 9340 
 9341 2013-12-16  Andreas Schwab  <schwab@suse.de>
 9342 
 9343 	* gnutls.c (Fgnutls_boot): Properly check Flistp return value.
 9344 
 9345 2013-12-16  Teodor Zlatanov  <tzz@lifelogs.com>
 9346 
 9347 	* gnutls.c (Fgnutls_boot): Use `Flistp' instead of
 9348 	`CHECK_LIST_CONS'.
 9349 
 9350 2013-12-16  Martin Rudalics  <rudalics@gmx.at>
 9351 
 9352 	* w32term.c (w32_enable_frame_resize_hack): Default to 1.
 9353 
 9354 2013-12-16  Dmitry Antipov  <dmantipov@yandex.ru>
 9355 
 9356 	* font.c (valid_font_driver) [ENABLE_CHECKING]: New function
 9357 	intended to find bogus pointers in font objects (Bug#16140).
 9358 	* font.h (valid_font_driver) [ENABLE_CHECKING]: Add prototype.
 9359 	* alloc.c (cleanup_vector): Use valid_font_driver in eassert.
 9360 	(compact_font_cache_entry, compact_font_caches) [!HAVE_NTGUI]:
 9361 	Disable for MS-Windows due to Bug#15876; apparently this
 9362 	requires more or less substantial changes in fontset code.
 9363 	* xfont.c (xfont_close):
 9364 	* xftfont.c (xftfont_close): Call x_display_info_for_display
 9365 	to check whether 'Display *' is valid (Bug#16093 and probably
 9366 	Bug#16069).
 9367 
 9368 2013-12-15  Eli Zaretskii  <eliz@gnu.org>
 9369 
 9370 	* fileio.c (Fexpand_file_name) [WINDOWSNT]: Fix conditionals.
 9371 	Reported by Juanma Barranquero <lekktu@gmail.com>.
 9372 
 9373 	* process.c (Fprocess_send_eof): Don't crash if someone tries to
 9374 	open a pty on MS-Windows.  (Bug#16152)
 9375 
 9376 	* emacs.c (decode_env_path): Fix bogus comparison against
 9377 	emacs_dir.  Reported by Juanma Barranquero <lekktu@gmail.com>.
 9378 
 9379 2013-12-15  Juanma Barranquero  <lekktu@gmail.com>
 9380 
 9381 	* w32fns.c (Fw32_shell_execute): Remove unused local variable.
 9382 	(Fx_file_dialog): Add parentheses around && to silence warning.
 9383 
 9384 	* w32term.c (construct_drag_n_drop): Remove unused local variable.
 9385 
 9386 2013-12-15  Eli Zaretskii  <eliz@gnu.org>
 9387 
 9388 	* xdisp.c (extend_face_to_end_of_line): Extend background of
 9389 	non-default face in margin areas as well.  (Bug#16151)
 9390 	(display_line): Call extend_face_to_end_of_line for continued
 9391 	lines as well, if the display margins have non-zero width.
 9392 	(set_glyph_string_background_width): When needed, set the
 9393 	extends_to_end_of_line_p flag on glyph strings to be drawn in
 9394 	margin areas, not only in the text area.
 9395 
 9396 	* frame.h (FRAME_MOUSE_UPDATE): Fix a typo that caused infloop at
 9397 	startup.
 9398 
 9399 2013-12-15  Paul Eggert  <eggert@cs.ucla.edu>
 9400 
 9401 	* gnutls.c (Fgnutls_boot): Fix typo; "!" applied to a Lisp_Object.
 9402 	Don't worry about verify_error being t, since it has to be a list.
 9403 
 9404 2013-12-14  Paul Eggert  <eggert@cs.ucla.edu>
 9405 
 9406 	Use bool for boolean, focusing on headers.
 9407 	* atimer.h, lisp.h, syssignal.h, syswait.h, unexelf.c:
 9408 	No need to include <stdbool.h>, since conf_post.h does it now.
 9409 	* buffer.h (BUF_COMPUTE_UNCHANGED, DECODE_POSITION)
 9410 	(BUFFER_CHECK_INDIRECTION, GET_OVERLAYS_AT, PER_BUFFER_VALUE_P)
 9411 	(SET_PER_BUFFER_VALUE_P):
 9412 	* ccl.c, ccl.h (setup_ccl_program):
 9413 	* ccl.h (CHECK_CCL_PROGRAM):
 9414 	* character.h (MAKE_CHAR_UNIBYTE, CHECK_CHARACTER_CAR)
 9415 	(CHECK_CHARACTER_CDR, CHAR_STRING_ADVANCE, NEXT_CHAR_BOUNDARY)
 9416 	(PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE)
 9417 	(FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE)
 9418 	(FETCH_STRING_CHAR_ADVANCE_NO_CHECK, FETCH_CHAR_ADVANCE)
 9419 	(FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, INC_BOTH)
 9420 	(DEC_BOTH, BUF_INC_POS, BUF_DEC_POS):
 9421 	* charset.h (CHECK_CHARSET, CHECK_CHARSET_GET_ID)
 9422 	(CHECK_CHARSET_GET_ATTR, CHECK_CHARSET_GET_CHARSET)
 9423 	(CHARSET_FAST_MAP_SET):
 9424 	* coding.c (decode_coding_ccl, encode_coding_ccl):
 9425 	* coding.h (CHECK_CODING_SYSTEM, CHECK_CODING_SYSTEM_GET_SPEC)
 9426 	(CHECK_CODING_SYSTEM_GET_ID, SJIS_TO_JIS, SJIS_TO_JIS2)
 9427 	(JIS_TO_SJIS, JIS_TO_SJIS2, ENCODE_FILE, DECODE_FILE)
 9428 	(ENCODE_SYSTEM, DECODE_SYSTEM, ENCODE_UTF_8)
 9429 	(decode_coding_c_string):
 9430 	* composite.h (COMPOSITION_DECODE_REFS, COMPOSITION_DECODE_RULE):
 9431 	* conf_post.h (has_attribute):
 9432 	* dispextern.h (trace_redisplay_p)
 9433 	(INC_TEXT_POS, DEC_TEXT_POS, SET_GLYPH_FROM_GLYPH_CODE)
 9434 	(SET_CHAR_GLYPH, SET_CHAR_GLYPH_FROM_GLYPH)
 9435 	(SET_GLYPH_FROM_CHAR_GLYPH)
 9436 	(WINDOW_WANTS_MODELINE_P, WINDOW_WANTS_HEADER_LINE_P)
 9437 	(FACE_SUITABLE_FOR_ASCII_CHAR_P, FACE_SUITABLE_FOR_CHAR_P)
 9438 	(PRODUCE_GLYPHS, reset_mouse_highlight, in_display_vector_p)
 9439 	(cursor_in_mouse_face_p):
 9440 	* dispnew.c (adjust_glyph_matrix, clear_glyph_matrix_rows)
 9441 	(blank_row, prepare_desired_row)
 9442 	(build_frame_matrix_from_leaf_window, make_current)
 9443 	(mirror_make_current, mirrored_line_dance, mirror_line_dance)
 9444 	(update_window, scrolling_window, update_frame_line):
 9445 	* disptab.h (GLYPH_FOLLOW_ALIASES):
 9446 	* editfns.c (Fformat):
 9447 	* font.h (FONT_WEIGHT_SYMBOLIC, FONT_SLANT_SYMBOLIC)
 9448 	(FONT_WIDTH_SYMBOLIC, FONT_WEIGHT_FOR_FACE, FONT_SLANT_FOR_FACE)
 9449 	(FONT_WIDTH_FOR_FACE, FONT_WEIGHT_NAME_NUMERIC)
 9450 	(FONT_SLANT_NAME_NUMERIC, FONT_WIDTH_NAME_NUMERIC)
 9451 	(FONT_SET_STYLE, CHECK_FONT, CHECK_FONT_SPEC, CHECK_FONT_ENTITY)
 9452 	(CHECK_FONT_OBJECT, CHECK_FONT_GET_OBJECT, FONT_ADD_LOG)
 9453 	(FONT_DEFERRED_LOG):
 9454 	* frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_WINDOW_P)
 9455 	(FRAME_EXTERNAL_TOOL_BAR, FRAME_EXTERNAL_MENU_BAR, FOR_EACH_FRAME)
 9456 	(FRAME_MOUSE_UPDATE):
 9457 	* fringe.c (Fdefine_fringe_bitmap):
 9458 	* image.c (x_create_bitmap_from_data, x_create_bitmap_mask)
 9459 	(x_create_bitmap_from_xpm_data, xpm_load_image):
 9460 	* intervals.h (INTERVAL_HAS_PARENT, INTERVAL_PARENT)
 9461 	(set_interval_parent, RESET_INTERVAL, COPY_INTERVAL_CACHE)
 9462 	(MERGE_INTERVAL_CACHE):
 9463 	* keymap.h (KEYMAPP):
 9464 	* lisp.h (eassert, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE)
 9465 	(STRING_SET_UNIBYTE, STRING_SET_MULTIBYTE, DEFSYM, PSEUDOVECTORP)
 9466 	(CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER)
 9467 	(CHECK_NUMBER_COERCE_MARKER, CHECK_NUMBER_OR_FLOAT_COERCE_MARKER)
 9468 	(DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL, DEFVAR_INT)
 9469 	(DEFVAR_BUFFER_DEFAULTS, DEFVAR_KBOARD, QUIT)
 9470 	(RETURN_UNGCPRO, USE_SAFE_ALLOCA, SAFE_NALLOCA, SAFE_FREE)
 9471 	(SAFE_ALLOCA_LISP, FOR_EACH_ALIST_VALUE, functionp):
 9472 	* syntax.h (SYNTAX_ENTRY, SYNTAX_WITH_FLAGS, SYNTAX)
 9473 	(UPDATE_SYNTAX_TABLE_FORWARD, UPDATE_SYNTAX_TABLE_BACKWARD)
 9474 	(SETUP_BUFFER_SYNTAX_TABLE):
 9475 	* systime.h (timespec_valid_p):
 9476 	* term.c (save_and_enable_current_matrix):
 9477 	* window.h (WINDOW_MENU_BAR_P, WINDOW_TOOL_BAR_P):
 9478 	* xdisp.c (in_display_vector_p, display_tool_bar_line)
 9479 	(redisplay_internal, try_window_reusing_current_matrix)
 9480 	(sync_frame_with_window_matrix_rows, try_window_id)
 9481 	(display_menu_bar, display_tty_menu_item, display_mode_line)
 9482 	(coords_in_mouse_face_p, cursor_in_mouse_face_p):
 9483 	* xdisp.c (trace_redisplay_p) [GLYPH_DEBUG]:
 9484 	* xmenu.c (xmenu_show):
 9485 	* xterm.c (use_xim, x_term_init):
 9486 	* xterm.h (XSync, GTK_CHECK_VERSION, use_xim, SET_SCROLL_BAR_X_WIDGET)
 9487 	(struct x_bitmap_record):
 9488 	Use bool for booleans.
 9489 	* ccl.c (struct buffer_text):
 9490 	* ccl.h (struct ccl_program):
 9491 	* charset.h (struct charset):
 9492 	* cm.h (struct cm):
 9493 	* coding.h (struct iso_2022_spec, struct coding_system):
 9494 	* dispextern.h (struct glyph, struct glyph_matrix, struct glyph_row)
 9495 	(struct glyph_string, struct face, struct face_cache)
 9496 	(struct bidi_string_data, struct bidi_it)
 9497 	(struct draw_fringe_bitmap_params, struct it, Mouse_HLInfo)
 9498 	(struct image):
 9499 	* editfns.c (Fformat):
 9500 	* frame.h (struct frame):
 9501 	* fringe.c (struct fringe_bitmap):
 9502 	* intervals.h (struct interval):
 9503 	* keyboard.h (struct kboard):
 9504 	* lisp.h (struct Lisp_Symbol, struct Lisp_Misc_Any, struct Lisp_Marker)
 9505 	(struct Lisp_Overlay, struct Lisp_Save_Value, struct Lisp_Free)
 9506 	(struct Lisp_Buffer_Local_Value, union specbinding):
 9507 	* macfont.m (struct macfont_info):
 9508 	* process.h (struct Lisp_Process):
 9509 	* termchar.h (struct tty_display_info):
 9510 	* window.h (struct window):
 9511 	* xterm.h (struct x_output):
 9512 	Use bool_bf for boolean bit-fields.
 9513 	* ccl.c (setup_ccl_program): Now returns bool instead of -1 or 0.
 9514 	All callers changed.
 9515 	* ccl.h (struct ccl_program): Remove unused members private_state,
 9516 	src_multibyte, dst_multibyte, cr_consumed, suppress_error,
 9517 	eight_bit_control.
 9518 	(struct ccl_spec): Remove unused members cr_carryover,
 9519 	eight_bit_carryover.
 9520 	* conf_post.h: Include <stdbool.h>.
 9521 	(bool_bf): New type.
 9522 	* dispextern.h (TRACE, PREPARE_FACE_FOR_DISPLAY):
 9523 	* intervals.h (RESET_INTERVAL, COPY_INTERVAL_CACHE)
 9524 	(MERGE_INTERVAL_CACHE): Surround statement macro with proper
 9525 	'do { ... } while (false)' brackets.
 9526 	* dispextern.h (IF_DEBUG): Properly parenthesize and convert to void.
 9527 	Args must now be expressions; all callers changed.
 9528 	(SET_MATRIX_ROW_ENABLED_P): Assume 2nd arg is bool.
 9529 	(PRODUCE_GLYPHS): Simplify use of boolean.
 9530 	* fileio.c (Fcopy_file):
 9531 	If I is an integer, prefer 'if (I != 0)' to 'if (I)'.
 9532 	* lisp.h (UNGCPRO): Return void, not int.
 9533 	(FOR_EACH_TAIL): Use void expression, not int expression.
 9534 	* region-cache.c: Reindent.
 9535 	* region-cache.h: Copy comments from region-cache.c, to fix
 9536 	incorrect remarks about booleans.
 9537 
 9538 2013-12-14  Eli Zaretskii  <eliz@gnu.org>
 9539 
 9540 	* xdisp.c (Fmove_point_visually): Expect overshoot in move_it_to
 9541 	when character at point is displayed from a display vector.
 9542 	(Bug#16148)
 9543 
 9544 2013-12-14  Teodor Zlatanov  <tzz@lifelogs.com>
 9545 
 9546 	* gnutls.c: Replace `:verify_hostname_error' with `:verify_error',
 9547 	now a list of certificate validation checks that will abort a
 9548 	connection with an error.
 9549 	(Fgnutls_boot): Document it and use it.
 9550 
 9551 2013-12-14  Martin Rudalics  <rudalics@gmx.at>
 9552 
 9553 	* w32term.c (w32_enable_frame_resize_hack): New variable.
 9554 	(x_set_window_size): Use it to hack frame resizing on Windows
 9555 	(Bug#16028).
 9556 
 9557 2013-12-14  Eli Zaretskii  <eliz@gnu.org>
 9558 
 9559 	* fileio.c (Fcopy_file) [WINDOWSNT]: Move most of the
 9560 	Windows-specific code to w32.c.  Change error message text to
 9561 	match that of Posix platforms.
 9562 
 9563 	* w32.c (w32_copy_file): New function, most of the code copied and
 9564 	reworked from Fcopy_file.  Improve error handling.  Plug memory
 9565 	leak when errors are thrown.  Support file names outside of the
 9566 	current codepage.  (Bug#7100)
 9567 
 9568 2013-12-13  Paul Eggert  <eggert@cs.ucla.edu>
 9569 
 9570 	* lread.c (load_path_default): Prototype.
 9571 
 9572 2013-12-13  Glenn Morris  <rgm@gnu.org>
 9573 
 9574 	* lread.c: Unconditionally reset load-path after dumping.  (Bug#16107)
 9575 	(dump_path): Remove.
 9576 	(load-path-default): Remove `changed' argument.
 9577 	Do not set dump_path permanently.  Simplify.
 9578 	(init_lread): Simplify.
 9579 	(syms_of_lread): Remove dump_path.
 9580 
 9581 2013-12-13  Dmitry Antipov  <dmantipov@yandex.ru>
 9582 
 9583 	* alloc.c, font.c, font.h, ftfont.c, ftxfont.c, macfont.m,
 9584 	* nsfont.m, w32font.c, xfont.c, xftfont.c: Revert last and
 9585 	2013-12-12 font-related change to avoid Bug#16128, which
 9586 	is quite hard to fix without even more substantial changes.
 9587 
 9588 2013-12-13  Dmitry Antipov  <dmantipov@yandex.ru>
 9589 
 9590 	* font.c (font_close_object): Check for live frame (Bug#16128).
 9591 
 9592 2013-12-13  Paul Eggert  <eggert@cs.ucla.edu>
 9593 
 9594 	* gnutls.c, gnutls.h (emacs_gnutls_record_check_pending):
 9595 	Return ptrdiff_t, not int, since it's a buffer size.
 9596 	Reindent/reparen some macros to a more Gnuish style.
 9597 
 9598 2013-12-12  Paul Eggert  <eggert@cs.ucla.edu>
 9599 
 9600 	Avoid undefined behavior with huge regexp interval counts.
 9601 	* regex.c (GET_INTERVAL_COUNT): Rename from 'GET_UNSIGNED_NUMBER',
 9602 	since it's now specialized to interval counts.  All uses changed.
 9603 	Do not assume wraparound on signed integer overflow.
 9604 	(regex_compile): Simplify based on the above changes.
 9605 
 9606 2013-12-12  Eli Zaretskii  <eliz@gnu.org>
 9607 
 9608 	Support file names on MS-Windows that use characters outside of
 9609 	the current system codepage.  (Bug#7100)
 9610 
 9611 	* w32.c (get_file_security, set_file_security)
 9612 	(create_symbolic_link): Separate pointers and boolean flags for
 9613 	ANSI and Unicode APIs.  Use the latter if w32_unicode_filenames is
 9614 	non-zero, else the former.
 9615 	(codepage_for_filenames, filename_to_utf16, )
 9616 	(filename_from_utf16, filename_to_ansi, filename_from_ansi):
 9617 	New functions.
 9618 	(init_user_info): Allow $HOME and $SHELL to include non-ANSI
 9619 	characters.
 9620 	(normalize_filename): Lose the DBCS code, now works on UTF-8.
 9621 	Accept only one argument; all callers changed.
 9622 	(dostounix_filename): Remove the second argument, now works in
 9623 	UTF-8.  All callers changed.
 9624 	(parse_root): Lose DBCS code.
 9625 	(get_long_basename, w32_get_short_filename, init_environment)
 9626 	(GetCachedVolumeInformation, sys_readdir, open_unc_volume)
 9627 	(read_unc_volume, logon_network_drive, faccessat, sys_chdir)
 9628 	(sys_chmod, sys_creat, sys_fopen, sys_link, sys_mkdir, sys_open)
 9629 	(sys_rename_replace, sys_rmdir, sys_unlink, stat_worker, utime)
 9630 	(is_symlink, readlink, chase_symlinks, w32_delayed_load): Work in
 9631 	Unicode mode if w32_unicode_filenames is non-zero, in ANSI mode
 9632 	otherwise.
 9633 	(ansi_encode_filename): New function.
 9634 	(get_emacs_configuration, get_emacs_configuration_options):
 9635 	Functions deleted.
 9636 	(add_volume_info, GetCachedVolumeInformation): Run the input file
 9637 	name through unixtodos_filename, to ensure it is stored and
 9638 	referenced in canonical form.
 9639 	(get_volume_info): Lose the DBCS code, now works in UTF-8.
 9640 	(logon_network_drive, sys_link, utime): Improve error handling.
 9641 	(sys_access): New function.
 9642 	(hashval, generate_inode_val): Unused functions deleted.
 9643 	(symlink, readlink, readlinkat): Lose DBCS code, now works in UTF-8.
 9644 	(check_windows_init_file): Convert error message from UTF-8 to
 9645 	ANSI codepage, for display in the message box.
 9646 	(globals_of_w32): Set w32_unicode_filenames according to the OS
 9647 	version.
 9648 
 9649 	* w32term.c (construct_drag_n_drop): Work in Unicode mode when
 9650 	w32_unicode_filenames is non-zero, ANSI mode otherwise.
 9651 	(syms_of_w32term): Declare w32-unicode-filenames.
 9652 
 9653 	* w32proc.c (new_child, delete_child): Remove code that handled
 9654 	unused pending_deletion and input_file members of the child struct.
 9655 	(create_child, sys_spawnve): Convert all file names to ANSI
 9656 	codepage.  Use ANSI APIs explicitly; forcibly fail if any file
 9657 	name cannot be encoded in ANSI codepage.  Don't use
 9658 	unixtodos_filename, mirror slashes by hand.
 9659 	(record_infile, record_pending_deletion): Functions deleted.
 9660 	(Fw32_short_file_name): Call w32_get_short_filename instead of
 9661 	GetShortPathName.
 9662 
 9663 	* w32notify.c (add_watch): Work in Unicode mode when
 9664 	w32_unicode_filenames is non-zero, ANSI mode otherwise.
 9665 	(Fw32notify_add_watch): Rewrite to avoid using GetFullPathName;
 9666 	instead, do the same with Lisp primitives.
 9667 
 9668 	* w32fns.c (file_dialog_callback, Fx_file_dialog)
 9669 	(Fsystem_move_file_to_trash, Fw32_shell_execute)
 9670 	(Ffile_system_info, Fdefault_printer_name): Work in Unicode mode
 9671 	when w32_unicode_filenames is non-zero, ANSI mode otherwise.
 9672 	(Fw32_shell_execute): Improve error reporting.
 9673 	(Fdefault_printer_name): Ifdef away for Cygwin.
 9674 
 9675 	* w32.h (struct _child_process): Remove input_file and
 9676 	pending_deletion members that are no longer used.
 9677 	(dostounix_filename, w32_get_short_filename, filename_from_ansi)
 9678 	(filename_to_ansi, filename_from_utf16, filename_to_utf16)
 9679 	(ansi_encode_filename): New and updated prototypes.
 9680 
 9681 	* unexw32.c (open_input_file, open_output_file, unexec): Use ANSI
 9682 	APIs explicitly.
 9683 	(unexec): Don't use dostounix_filename, it expects a file name in
 9684 	UTF-8.  Instead, mirror backslashes by hand.  Convert NEW_NAME to
 9685 	ANSI encoding.
 9686 
 9687 	* fileio.c (Ffile_name_directory, file_name_as_directory)
 9688 	(directory_file_name, Fexpand_file_name)
 9689 	(Fsubstitute_in_file_name) [WINDOWSNT]: Adapt to the change in
 9690 	arguments of dostounix_filename.
 9691 	(Fexpand_file_name) [WINDOWSNT]: Convert value of $HOME to UTF-8.
 9692 	use MAX_UTF8_PATH for size of file-name strings.
 9693 	(emacs_readlinkat): Build an explicitly unibyte string for file
 9694 	names.
 9695 	(syms_of_fileio) <file-name-coding-system>:
 9696 	<default-file-name-coding-system>: Mention MS-Windows peculiarities.
 9697 
 9698 	* emacs.c (init_cmdargs) [WINDOWSNT]: Convert argv[0] to UTF-8.
 9699 	(main) [WINDOWSNT]: Convert the argv[] elements that are files or
 9700 	directories to UTF-8.
 9701 	(decode_env_path) [WINDOWSNT]: Convert file names taken from the
 9702 	environment, and each element of the input PATH, to UTF-8.
 9703 
 9704 	* dired.c (file_attributes): Use build_unibyte_string explicitly
 9705 	to make Lisp strings from user and group names.
 9706 
 9707 	* coding.h (ENCODE_FILE, DECODE_FILE): Just call encode_file and
 9708 	decode_file.
 9709 
 9710 	* coding.c (decode_file_name, encode_file_name): New functions.
 9711 
 9712 	* termcap.c (tgetent): Adapt to the change in arguments of
 9713 	dostounix_filename.
 9714 
 9715 	* sysdep.c (sys_subshell) [WINDOWSNT]: Use MAX_UTF8_PATH for file
 9716 	names.
 9717 
 9718 	* msdos.c (dostounix_filename, init_environment): Adapt to the
 9719 	change in arguments of dostounix_filename.
 9720 
 9721 	* image.c (xpm_load, tiff_load, gif_load, imagemagick_load)
 9722 	[WINDOWSNT]: Encode file names passed to the image libraries in
 9723 	ANSI codepage.
 9724 
 9725 	* gnutls.c (Fgnutls_boot): Encode all file names passed to GnuTLS.
 9726 	[WINDOWSNT]: Convert file names to the current ANSI codepage.
 9727 
 9728 	* filelock.c (lock_file) [WINDOWSNT]: Adapt to the change in
 9729 	arguments of dostounix_filename.
 9730 
 9731 2013-12-12  Dmitry Antipov  <dmantipov@yandex.ru>
 9732 
 9733 	* font.h (struct font_entity) [HAVE_NS]: New field to record
 9734 	font driver which was used to create this entity.
 9735 	(struct font) [HAVE_WINDOW_SYSTEM]: New field to record
 9736 	frame where the font was opened.
 9737 	(font_close_object): Add prototype.
 9738 	* font.c (font_make_entity) [HAVE_NS]: Zero out driver field.
 9739 	(font_close_object): Not static any more.  Lost frame arg.
 9740 	Adjust comment and users.
 9741 	* alloc.c (cleanup_vector): Call font_close_object to adjust
 9742 	per-frame font counters correctly.  If HAVE_NS, also call
 9743 	driver-specific cleanup for font-entity objects.
 9744 	* ftfont.c (ftfont_open):
 9745 	* nsfont.m (nsfont_open):
 9746 	* w32font.c (w32font_open_internal):
 9747 	* xfont.c (xfont_open):
 9748 	* xftfont.c (xftfont_open): Save frame pointer in font object.
 9749 	* macfont.m (macfont_open): Likewise.
 9750 	(macfont_descriptor_entity): Save driver pointer to be able
 9751 	to call its free_entity routine when font-entity is swept.
 9752 	* ftxfont.c (ftxfont_open): Add eassert because frame
 9753 	pointer should be saved by ftfont_driver.open.
 9754 
 9755 2013-12-12  Dmitry Antipov  <dmantipov@yandex.ru>
 9756 
 9757 	* xterm.c (x_make_frame_visible): Restore hack which is needed when
 9758 	input polling is used.  This is still meaningful for Cygwin, see
 9759 	https://lists.gnu.org/r/emacs-devel/2013-12/msg00351.html.
 9760 	* keyboard.c (poll_for_input_1, input_polling_used):
 9761 	Define unconditionally.
 9762 	* dispextern.h (FACE_SUITABLE_FOR_CHAR_P): Remove unused macro.
 9763 	(FACE_FOR_CHAR): Simplify because face_for_char does the same.
 9764 	* fontset.c (face_suitable_for_char_p) [0]: Remove unused function.
 9765 	(font_for_char): Prefer ptrdiff_t to int for buffer position.
 9766 	(face_for_char): Likewise.  Rearrange eassert and return ASCII
 9767 	face for CHAR_BYTE8_P.
 9768 	* fontset.h (font_for_char, face_for_char): Adjust prototypes.
 9769 
 9770 2013-12-11  Ken Brown  <kbrown@cornell.edu>
 9771 
 9772 	* dispextern.h (erase_phys_cursor):
 9773 	* keyboard.h (make_ctrl_char): Declare prototypes if HAVE_NTGUI.
 9774 
 9775 2013-12-11  Dmitry Antipov  <dmantipov@yandex.ru>
 9776 
 9777 	* nsterm.m (x_free_frame_resources):
 9778 	* term.c (tty_free_frame_resources):
 9779 	* xterm.c (x_free_frame_resources): Do not check for non-NULL
 9780 	face cache because it's implied by free_frame_faces anyway.
 9781 	* w32term.c (x_free_frame_resources): Likewise.  Do not call
 9782 	free_frame_faces twice.
 9783 
 9784 2013-12-11  Rüdiger Sonderfeld  <ruediger@c-plusplus.de>
 9785 
 9786 	* editfns.c (Fformat_time_string): Mention %F in the doc.
 9787 
 9788 2013-12-11  Martin Rudalics  <rudalics@gmx.at>
 9789 
 9790 	* window.c (resize_frame_windows): Don't return immediately when
 9791 	the root window's size doesn't change - the minibuffer window
 9792 	may still have to be repositioned/resized.
 9793 	* xfns.c (Fx_create_frame): Always change the frame size after
 9794 	initializing the frame's faces.
 9795 	* xterm.c (handle_one_xevent): Don't set pixel sizes here,
 9796 	change_frame_size should already have done it.
 9797 	(x_new_font): Assign new tool- and menu-bar heights.
 9798 	(x_set_window_size_1): Account for tool- and menu-bar heights
 9799 	(Bug#16013).  Don't set pixel sizes since change_frame_size
 9800 	should already have done it.
 9801 
 9802 2013-12-11  Paul Eggert  <eggert@cs.ucla.edu>
 9803 
 9804 	Remove the option of using libcrypto.
 9805 	* Makefile.in (LIB_CRYPTO): Remove.
 9806 	(LIBES): Don't use it.
 9807 
 9808 2013-12-11  Juri Linkov  <juri@jurta.org>
 9809 
 9810 	* term.c (term_get_fkeys_1): Remove non-standard IBM terminfo
 9811 	as obsolete to avoid conflicts with <S-up>.  (Bug#13471)
 9812 
 9813 2013-12-10  Dmitry Antipov  <dmantipov@yandex.ru>
 9814 
 9815 	* xdisp.c (display_tool_bar_line): Don't extend on a previously
 9816 	drawn tool bar items (Bug#16058).
 9817 	* font.c (font_find_for_lface): Ensure SAFE_FREE on return.
 9818 
 9819 2013-12-09  Ken Brown  <kbrown@cornell.edu>
 9820 
 9821 	* frame.c (get_frame_param): Make extern if HAVE_NTGUI.
 9822 
 9823 	* lisp.h (get_frame_param): Adjust conditions for prototype
 9824 	declaration.
 9825 
 9826 2013-12-09  Dmitry Antipov  <dmantipov@yandex.ru>
 9827 
 9828 	* gtkutil.c (USE_NEW_GTK_FONT_CHOOSER) [HAVE_FREETYPE]:
 9829 	Avoid unused macro warning if configured --without-xft.
 9830 
 9831 2013-12-09  Jan Djärv  <jan.h.d@swipnet.se>
 9832 
 9833 	* alloc.c (Fmemory_limit): Avoid compiler warning.  Return 0 always.
 9834 
 9835 2013-12-08  Jan Djärv  <jan.h.d@swipnet.se>
 9836 
 9837 	* nsterm.m (updateFrameSize:): Fix GNUstep toolbar not updating.
 9838 
 9839 	* emacs.c (main): Call fixup_locale a second time for GNUstep.
 9840 
 9841 2013-12-08  Martin Rudalics  <rudalics@gmx.at>
 9842 
 9843 	* frame.c (x_set_font): Mark frame as garbaged (Bug#16028).
 9844 
 9845 2013-12-08  Paul Eggert  <eggert@cs.ucla.edu>
 9846 
 9847 	Use libcrypto's checksum implementations if available, for speed.
 9848 	* Makefile.in (LIB_CRYPTO): New macro.
 9849 	(LIBES): Use it.
 9850 
 9851 	* frame.h (SET_FRAME_VISIBLE): Now an inline function.
 9852 	The macro didn't conform to C99 due to type mismatch,
 9853 	which caused compilation failure with Sun C 5.12,
 9854 	and it was confusing anyway.  Include window.h to declare
 9855 	redisplay_other_windows.
 9856 
 9857 2013-12-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 9858 
 9859 	* window.c (set_window_buffer): Update mode line (bug#16084).
 9860 
 9861 2013-12-07  Paul Eggert  <eggert@cs.ucla.edu>
 9862 
 9863 	Fix minor problems found by static checking.
 9864 	* keyboard.c (poll_for_input_1, input_polling_used):
 9865 	Define only if HAVE_NTGUI.
 9866 	* xmenu.c (popup_activate_callback): Omit unnecessary
 9867 	check against USE_X_TOOLKIT, which must be defined here anyway.
 9868 	* xterm.c, xterm.h (x_dispatch_event) [! (USE_X_TOOLKIT || USE_MOTIF)]:
 9869 	Now static.
 9870 
 9871 2013-12-07  Martin Rudalics  <rudalics@gmx.at>
 9872 
 9873 	* w32term.c (w32_read_socket): Fix int/Lisp_Object type mixup.
 9874 
 9875 2013-12-07  Jan Djärv  <jan.h.d@swipnet.se>
 9876 
 9877 	* gtkutil.c (tb_size_cb): Call xg_height_or_width_changed.
 9878 
 9879 	* nsterm.m (x_set_window_size): Remove fprintf.
 9880 	(init): Define always.  Set applicationDidFinishLaunchingCalled
 9881 	for GNUstep.
 9882 	(applicationDidFinishLaunching:):
 9883 	Set applicationDidFinishLaunchingCalled.
 9884 	(applicationDidBecomeActive:): Call applicationDidFinishLaunching if
 9885 	not called.
 9886 
 9887 	* nsterm.h (EmacsApp): Add applicationDidFinishLaunchingCalled.
 9888 
 9889 	Pixel resize changes for NS (Bug#16049).
 9890 	* nsterm.m (x_set_window_size): Change parameters rows/cols to
 9891 	height/width.  row/cols are locals.
 9892 	Pass pixelwise to check_frame_size.  Don't set FRAME_PIXEL_WIDTH/HEIGHT.
 9893 	(updateFrameSize:): Remove gsextra.  Adjust for pixelwise resize.
 9894 	(windowWillResize): Remove gsextra.  Calculate extra as in
 9895 	updateFrameSize.
 9896 	(x_new_font): Don't change frame size if fullscreen.
 9897 	Change size pixelwise.
 9898 
 9899 	* nsfns.m (Fx_create_frame): Call change_frame_size twice as per
 9900 	comment in xfns.c.  Change to pixelwise call.
 9901 
 9902 2013-12-06  Eli Zaretskii  <eliz@gnu.org>
 9903 
 9904 	* buffer.c (Fset_buffer_multibyte): Invalidate buffer caches.
 9905 	(Bug#16070)
 9906 
 9907 2013-12-06  Dmitry Antipov  <dmantipov@yandex.ru>
 9908 
 9909 	* xterm.c (input_signal_count): Remove.
 9910 	(x_dispatch_event): Define unconditionally.
 9911 	(x_make_frame_visible): Process X events until the frame
 9912 	is really visible (Bug#16027).
 9913 	* xterm.h (x_dispatch_event): Declare unconditionally.
 9914 
 9915 2013-12-05  Jan Djärv  <jan.h.d@swipnet.se>
 9916 
 9917 	* nsfns.m (ns_frame_parm_handlers): Add right/bottom_divider_width.
 9918 
 9919 	* nsterm.m (x_set_window_size): Handle pixelwise.
 9920 
 9921 2013-12-05  Martin Rudalics  <rudalics@gmx.at>
 9922 
 9923 	* w32term.c (x_new_font):
 9924 	* xterm.c (x_new_font): Calculate new frame size from new font
 9925 	size (Bug#16028).
 9926 
 9927 2013-12-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 9928 
 9929 	* lisp.h (FOR_EACH_TAIL): New macro.
 9930 	* fns.c (Fdelq): Use it to avoid inf-loops; remove QUIT.
 9931 
 9932 	* window.c (select_window): Call second wset_redisplay before we change
 9933 	selected_window (bug#16034).
 9934 
 9935 2013-12-04  Paul Eggert  <eggert@cs.ucla.edu>
 9936 
 9937 	* bidi.c (LRM_CHAR, RLM_CHAR): Remove; no longer used.
 9938 
 9939 2013-12-04  Eli Zaretskii  <eliz@gnu.org>
 9940 
 9941 	* w32xfns.c: Include window.h, to avoid a compiler warning.
 9942 
 9943 2013-12-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 9944 
 9945 	* window.c (window_scroll): Mark window for redisplay (bug#16034).
 9946 	(scroll_command, Fscroll_other_window): Don't cause redisplay now that
 9947 	window_scroll takes care of it.
 9948 	(Fset_window_point, Fdelete_other_windows_internal)
 9949 	(set_window_buffer, Fwindow_resize_apply, resize_frame_windows)
 9950 	(Fsplit_window_internal, Fdelete_window_internal)
 9951 	(Fresize_mini_window_internal, Fset_window_configuration)
 9952 	(apply_window_adjustment): Use fset_redisplay and wset_redisplay to
 9953 	cause redisplay instead of forcing a complete redisplay.
 9954 	* xdisp.c (wset_redisplay): Don't set windows_or_buffers_changed if
 9955 	we're only affecting the selected_window.
 9956 
 9957 2013-12-04  Eli Zaretskii  <eliz@gnu.org>
 9958 
 9959 	* bidi.c (bidi_get_type, bidi_get_category): Handle the isolate
 9960 	directional control characters.  Update type and category
 9961 	determination according to the UBA from Unicode v6.3.
 9962 	(bidi_category_t): New category EXPLICIT_FORMATTING.
 9963 
 9964 	* dispextern.h (bidi_type_t): Update to include new bidirectional
 9965 	properties introduced with Unicode v6.3.  (Bug#16043)
 9966 
 9967 2013-12-04  Martin Rudalics  <rudalics@gmx.at>
 9968 
 9969 	* xterm.c (XTflash): Fix coordinate of bottom area to flash
 9970 	(Bug#16044).
 9971 
 9972 2013-12-04  Dmitry Antipov  <dmantipov@yandex.ru>
 9973 
 9974 	* font.c (font_list_entities): Remove dummy assignment.
 9975 	* font.h (struct font) [HAVE_WINDOW_SYSTEM]: Group members which are
 9976 	used on graphic displays only.  Remove unused 'font_encoder' member.
 9977 	(struct font_bitmap): Remove unused 'extra' member.
 9978 	* nsfont.m (nsfont_open):
 9979 	* w32font.c (w32font_open_internal):
 9980 	* ftfont.c (ftfont_get_bitmap): Adjust users.
 9981 
 9982 2013-12-03  Paul Eggert  <eggert@cs.ucla.edu>
 9983 
 9984 	Use bool for boolean.
 9985 	* tparam.c (tparam1):
 9986 	* undo.c (record_point, record_property_change):
 9987 	Use bool for boolean, for local vars that are always true or false.
 9988 
 9989 	Minor integer overflow fixes (Bug#16033).
 9990 	* window.c (Fset_window_new_pixel): Don't let new_pixel go negative.
 9991 	This improves on the previous fix to this function.
 9992 	(window_resize_check): When summing up pixel counts, don't rely on
 9993 	undefined behavior if the sum overflows.
 9994 
 9995 2013-12-03  Martin Rudalics  <rudalics@gmx.at>
 9996 
 9997 	* window.c (Fset_window_new_pixel): Don't choke at negative
 9998 	argument value (Bug#16033).
 9999 
10000 	* xfns.c (Fx_create_frame): Add another call to change_frame_size
10001 	to avoid crash in window_box_height.
10002 
10003 	* gtkutil.h: Fix external declaration of xg_frame_set_char_size.
10004 	* gtkutil.c (xg_frame_set_char_size, style_changed_cb): Fix size
10005 	calculation.
10006 	* xterm.c (x_set_window_size): Fix size calculation (Bug#16013).
10007 
10008 2013-12-03  Paul Eggert  <eggert@cs.ucla.edu>
10009 
10010 	Minor integer overflow fixes.
10011 	* window.c (Fset_window_new_pixel, grow_mini_window):
10012 	* xdisp.c (Fwindow_text_pixel_size):
10013 	Avoid undefined behavior on signed integer overflow.
10014 	* xfns.c (x_set_mouse_color):
10015 	Check that drag shape fits in 'unsigned', since that's what X wants.
10016 
10017 2013-12-02  Eli Zaretskii  <eliz@gnu.org>
10018 
10019 	Improve reporting of fatal exception on MS-Windows.
10020 	* w32fns.c (my_exception_handler): New function.
10021 	(globals_of_w32fns): Set it up as the unhandled exception
10022 	handler.  Initialize exception code and address to zeros.
10023 	(emacs_abort): If the exception code and address are available,
10024 	print them at the beginning of the backtrace.  Fix the format of
10025 	printing addresses (was producing 0x0x12345678 on XP).
10026 	(Bug#15994)
10027 
10028 2013-12-02  Helmut Eller  <eller.helmut@gmail.com>
10029 
10030 	* eval.c (Fbacktrace__locals): New function.
10031 	(syms_of_eval): Defsubr it.
10032 
10033 2013-12-02  Dmitry Antipov  <dmantipov@yandex.ru>
10034 
10035 	* font.h (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_DESCENT):
10036 	Define here to unify between...
10037 	* nsterm.h, w32term.h, xterm.h: ...port-specific headers.
10038 	* w32term.h (CHECK_W32_FRAME): Remove unused macro.
10039 
10040 2013-12-02  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
10041 
10042 	* xterm.h (struct scroll_bar): Remove member `fringe_extended_p'.
10043 
10044 	* xterm.c (x_draw_fringe_bitmap, x_scroll_run): Remove code for
10045 	fringe background extension.
10046 	(x_scroll_bar_create): Remove variables `sb_left' and `sb_width',
10047 	because they are now always the same as `left' and `width',
10048 	respectively.  Remove code for the case that `width' and
10049 	`sb_width' are different.
10050 
10051 2013-12-01  Paul Eggert  <eggert@cs.ucla.edu>
10052 
10053 	Fix minor problems found by static checking.
10054 	* dispextern.h, xdisp.c (x_draw_bottom_divider): Now static.
10055 	* frame.c (set_frame_param) [!HAVE_NTGUI]: Remove.
10056 	* xdisp.c (Ftool_bar_height) [USE_GTK || HAVE_NS]: Now const function.
10057 
10058 2013-12-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
10059 
10060 	* image.c (imagemagick_compute_animated_image): Don't crash if we
10061 	have an animation with different-sized images (bug#15313).
10062 
10063 2013-11-30  Martin Rudalics  <rudalics@gmx.at>
10064 
10065 	Remove some unused items introduced during pixelwise change.
10066 	* window.c (window_resize_total_check): Remove unused function.
10067 	* xdisp.c (remember_mouse_glyph): Remove unused label.
10068 	(Ftool_bar_height): Move declaration inside #if.
10069 	* xterm.c (x_set_window_size): Don't use r and c.
10070 
10071 2013-11-30  Juanma Barranquero  <lekktu@gmail.com>
10072 
10073 	* xdisp.c (Fwindow_text_pixel_size): Remove unused variables
10074 	`value' and `endp'.
10075 
10076 	* window.c (Fset_window_configuration): Comment out unused variables.
10077 
10078 	* w32term.c (w32_read_socket): Remove unused variable `buf'.
10079 
10080 2013-11-30  Jan Djärv  <jan.h.d@swipnet.se>
10081 
10082 	* xdisp.c (redisplay_internal): unrequest_sigio => request_sigio.
10083 
10084 	* xfaces.c (NEAR_SAME_COLOR_THRESHOLD): Move inside HAVE_WINDOW_SYSTEM.
10085 
10086 	* gnutls.c (gnutls_audit_log_function): Only declare and define if
10087 	HAVE_GNUTLS3 (Bug#16001).
10088 
10089 	* xdisp.c (redisplay_internal): Call request_sigio at end_of_redisplay
10090 	if interrupts are deferred (Bug#15801).
10091 
10092 2013-11-30  Martin Rudalics  <rudalics@gmx.at>
10093 
10094 	Support resizing frames and windows pixelwise.
10095 	* dispextern.h (enum window_part): Add ON_SCROLL_BAR,
10096 	ON_RIGHT_DIVIDER and ON_BOTTOM_DIVIDER.
10097 	(struct glyph_matrix): Replace window_left_col and
10098 	window_top_line by window_pixel_left and window_pixel_top.
10099 	(WINDOW_WANTS_MODELINE_P, WINDOW_WANTS_HEADER_LINE_P):
10100 	Minor rewrite.
10101 	(enum face_id): Add WINDOW_DIVIDER_FACE_ID.
10102 	(draw_window_divider, move_it_to, x_draw_right_divider)
10103 	(x_draw_bottom_divider, change_frame_size): Add or fix
10104 	declarations.
10105 	* dispnew.c (change_frame_size_1): Change prototype.
10106 	(adjust_glyph_matrix, required_matrix_width)
10107 	(adjust_frame_glyphs_for_window_redisplay): Use pixel
10108 	values instead of lines and columns.
10109 	(marginal_area_string): Use WINDOW_FRINGES_WIDTH instead of
10110 	WINDOW_TOTAL_FRINGE_WIDTH.
10111 	(handle_window_change_signal, do_pending_window_change)
10112 	(init_display): Adjusts calls of change_frame_size.
10113 	(change_frame_size, change_frame_size_1): Handle pixelwise
10114 	changes.
10115 	* frame.c (Qright_divider_width, Qbottom_divider_width):
10116 	New Lisp objects.
10117 	(set_menu_bar_lines_1, set_menu_bar_lines, make_frame)
10118 	(make_terminal_frame, Fmake_terminal_frame, Fframe_parameters)
10119 	(x_set_internal_border_width, x_set_vertical_scroll_bars)
10120 	(x_set_scroll_bar_width, x_figure_window_size): Handle pixel
10121 	values.
10122 	(set_frame_param): New function.
10123 	(Fframe_text_cols, Fframe_text_lines, Fframe_total_cols)
10124 	(Fframe_text_width, Fframe_text_height, Fscroll_bar_width)
10125 	(Ffringe_width, Fborder_width, Fright_divider_width)
10126 	(Fbottom_divider_width): New functions, defsubr them.
10127 	(Fset_frame_height, Fset_frame_width, Fset_frame_size):
10128 	New argument pixelwise.
10129 	(struct frame_parm_table): New members Qright_divider_width and
10130 	Qbottom_divider_width.
10131 	(x_set_frame_parameters): Handle parameters for pixelwise sizes.
10132 	(x_report_frame_params): Handle Qright_divider_width and
10133 	Qbottom_divider_width.
10134 	(x_set_right_divider_width, x_set_bottom_divider_width):
10135 	New functions.
10136 	(frame_resize_pixelwise): New option.
10137 	* frame.h (struct frame): Add tool_bar_height, menu_bar_height,
10138 	new_pixelwise, right_divider_width and bottom_divider_width;
10139 	remove total_lines; rename text_lines, text_cols, new_text_lines
10140 	and new_text_cols to text_height, text_width, new_height and
10141 	new_width respectively.
10142 	(FRAME_LINES, FRAME_COLS): Rename to FRAME_TEXT_HEIGHT and
10143 	FRAME_TEXT_WIDTH respectively.
10144 	(FRAME_MENU_BAR_HEIGHT, FRAME_TOOL_BAR_HEIGHT)
10145 	(FRAME_RIGHT_DIVIDER_WIDTH, FRAME_BOTTOM_DIVIDER_WIDTH)
10146 	(FRAME_TEXT_TO_PIXEL_WIDTH, FRAME_PIXEL_TO_TEXT_WIDTH):
10147 	New macros.
10148 	(FRAME_TOP_MARGIN_HEIGHT, FRAME_LEFT_SCROLL_BAR_AREA_WIDTH)
10149 	(FRAME_RIGHT_SCROLL_BAR_AREA_WIDTH, FRAME_SCROLL_BAR_AREA_WIDTH)
10150 	(SET_FRAME_COLS, SET_FRAME_WIDTH, SET_FRAME_HEIGHT)
10151 	(FRAME_TEXT_COLS_TO_PIXEL_WIDTH, FRAME_PIXEL_WIDTH_TO_TEXT_COLS)
10152 	(FRAME_TEXT_COLS_TO_PIXEL_WIDTH): Rewrite macros.
10153 	(FRAME_TOTAL_COLS_ARG): Remove macro.
10154 	* fringe.c (draw_fringe_bitmap_1): Handle right divider.
10155 	* gtkutil.c (xg_frame_resized, xg_frame_set_char_size)
10156 	(x_wm_set_size_hint): Handle frame pixel sizes.
10157 	* indent.c (compute_motion, Fcompute_motion):
10158 	Call window_body_width instead of window_body_cols.
10159 	* keyboard.c (Qright_divider, Qbottom_divider): New symbols.
10160 	(make_lispy_position): Handle right and bottom dividers.
10161 	(Fsuspend_emacs): Pixelize call of change_frame_size.
10162 	* keyboard.h: Extern Qright_divider, Qbottom_divider.
10163 	* lisp.h: Extern set_frame_param.
10164 	* nsfns.m (x_set_tool_bar_lines): Pixelize call of
10165 	x_set_window_size.
10166 	(Fx_create_frame): Add entry for vertical_drag_cursor.
10167 	Pixelize call of change_frame_size.
10168 	* nsterm.h (struct ns_output): Add vertical_drag_cursor.
10169 	* nsterm.m (ns_update_window_end): Optionally draw right
10170 	divider.
10171 	(x_set_window_size): Add argument pixelwise.
10172 	Call check_frame_size and change_frame_size with pixelwise zero.
10173 	(ns_draw_window_divider): New function.
10174 	(ns_redisplay_interface): Add ns_draw_window_divider.
10175 	(updateFrameSize:): Call change_frame_size with pixelwise zero.
10176 	(x_new_font): Call x_set_window_size with pixelwise zero.
10177 	* print.c (print_object): For a window print its sequence
10178 	number again.
10179 	* term.c (Fresume_tty): Pixelize call of change_frame_size.
10180 	* w32fns.c (x_set_mouse_color): Handle vertical drag cursor.
10181 	(x_set_menu_bar_lines, x_set_tool_bar_lines): Calculate pixelwise.
10182 	(w32_createwindow): Use scroll bar area width.
10183 	(w32_wnd_proc): Handle bottom divider width.
10184 	For WM_WINDOWPOSCHANGING return zero if we resize pixelwise.
10185 	(Fx_create_frame): Default divider width parameters.
10186 	Caclulate sizes pixelwise.  Add vertical drag cursor support.
10187 	(x_create_tip_frame): Default divider widths to zero.
10188 	Pixelize call to change_frame_size.
10189 	(Fx_show_tip): Add handling of divider widths.  Pixelize window
10190 	position and sizes.
10191 	(Fw32_frame_rect): New function.
10192 	(frame_parm_handler w32_frame_parm_handlers): Add divider
10193 	widths.
10194 	(Vx_window_vertical_drag_shape): Add variable.
10195 	* w32inevt.c (resize_event, maybe_generate_resize_event):
10196 	Pixelize change_frame_size calls.
10197 	* w32menu.c (set_frame_menubar): Pixelize x_set_window_size
10198 	call.
10199 	* w32term.c (w32_draw_window_divider): New function.
10200 	(x_update_window_end): Handle right divider.
10201 	(w32_draw_fringe_bitmap, x_scroll_run)
10202 	(w32_set_vertical_scroll_bar): Pixelize scrollbar widths.
10203 	(w32_read_socket): Handle SIZE_MAXIMIZED separately.
10204 	Calculate new frame sizes pixelwise.
10205 	(x_new_font): Pixelize call to x_set_window_size.
10206 	(x_check_fullscreen): Pixelize call to change_frame_size.
10207 	(x_set_window_size_1, x_set_window_size): New argument
10208 	pixelwise.  Calculate pixelwise.
10209 	(x_wm_set_size_hint): Use scroll bar area width.
10210 	(w32_redisplay_interface): Add w32_draw_window_divider.
10211 	* w32term.h (struct w32_output): Add vertical drag cursor.
10212 	* widget.c (set_frame_size, update_wm_hints)
10213 	(EmacsFrameResize, EmacsFrameSetValues): Pixelize calls of
10214 	change_frame_size.
10215 	(EmacsFrameSetCharSize): Pixelize call of x_set_window_size.
10216 	* window.c (sequence_number): Restore.
10217 	(Fwindow_pixel_width, Fwindow_pixel_height)
10218 	(Fwindow_mode_line_height, Fwindow_header_line_height)
10219 	(window_pixel_to_total, Frun_window_scroll_functions)
10220 	(Fset_window_new_pixel, window_resize_apply_total)
10221 	(Fwindow_resize_apply_total): New functions.
10222 	(window_body_height, window_body_width): Rename from
10223 	window_body_lines.  New argument PIXELWISE.
10224 	Calculate pixelwise.
10225 	(Fwindow_body_height, Fwindow_body_width): New argument
10226 	PIXELWISE.
10227 	(coordinates_in_window, window_relative_x_coord): Use window's
10228 	pixel width instead of total width.
10229 	(replace_window, recombine_windows): Initialize pixel values.
10230 	(resize_root_window, resize_frame_windows, grow_mini_window)
10231 	(shrink_mini_window): New argument PIXELWISE.
10232 	Calculate pixelwise.
10233 	(Fdelete_other_windows_internal, adjust_window_margins)
10234 	(window_resize_check, window_resize_apply)
10235 	(Fdelete_window_internal, Fresize_mini_window_internal)
10236 	(Fwindow_text_width, Fwindow_text_height): Calculate pixelwise.
10237 	(check_frame_size): Rename arguments.  New argument PIXELWISE.
10238 	Calculate pixelwise.
10239 	(set_window_buffer): Make samebuf bool.  Run configuration change
10240 	hook only if buffer changed.
10241 	(Fset_window_buffer): Rewrite doc-string.
10242 	(make_window): Initialize new_pixel slot.
10243 	(Fwindow_resize_apply): Check pixel size of root window.
10244 	(Fsplit_window_internal): Call 2nd argument pixel_size.
10245 	Calculate pixelwise.
10246 	(Fscroll_left, Fscroll_right): Call window_body_width instead of
10247 	window_body_cols.
10248 	(save_window_data): New slots frame_text_width,
10249 	frame_text_height, frame_menu_bar_height, frame_tool_bar_height.
10250 	(saved_window): New slots pixel_left, pixel_top, pixel_height,
10251 	pixel_width.
10252 	(Fcurrent_window_configuration, Fset_window_configuration)
10253 	(save_window_save, compare_window_configurations): Handle new
10254 	slots in save_window_data and saved_window.
10255 	(Fset_window_scroll_bars): Fix doc-string.
10256 	(window_resize_pixelwise): New variable.
10257 	(coordinates_in_window, Fcoordinates_in_window_p):
10258 	Handle dividers.
10259 	(make_parent_window): Adjust sequence_number.
10260 	(Fwindow_right_divider_width, Fwindow_bottom_divider_width):
10261 	New functions.
10262 	* window.h (struct window): New members new_pixel, pixel_left,
10263 	pixel_top, pixel_width, pixel_height.  Restore sequence_number.
10264 	(wset_new_pixel): New function.
10265 	(WINDOW_PIXEL_WIDTH, WINDOW_PIXEL_HEIGHT)
10266 	(MIN_SAFE_WINDOW_PIXEL_WIDTH, MIN_SAFE_WINDOW_PIXEL_HEIGHT)
10267 	(WINDOW_LEFT_PIXEL_EDGE, WINDOW_RIGHT_PIXEL_EDGE)
10268 	(WINDOW_TOP_PIXEL_EDGE, WINDOW_BOTTOM_PIXEL_EDGE)
10269 	(WINDOW_BOTTOMMOST_P, WINDOW_BOX_LEFT_PIXEL_EDGE)
10270 	(WINDOW_BOX_RIGHT_PIXEL_EDGE, WINDOW_MARGINS_COLS)
10271 	(WINDOW_MARGINS_WIDTH, WINDOW_RIGHT_DIVIDER_WIDTH)
10272 	(WINDOW_BOTTOM_DIVIDER_WIDTH): New macros.
10273 	(WINDOW_TOTAL_FRINGE_WIDTH): Rename to WINDOW_FRINGES_WIDTH.
10274 	(WINDOW_TOTAL_WIDTH, WINDOW_TOTAL_HEIGHT): Remove macros.
10275 	(WINDOW_RIGHT_EDGE_X, WINDOW_LEFT_EDGE_X, WINDOW_TOP_EDGE_Y)
10276 	(WINDOW_BOTTOM_EDGE_Y, WINDOW_FULL_WIDTH_P, WINDOW_LEFTMOST_P)
10277 	(WINDOW_RIGHTMOST_P, WINDOW_BOX_LEFT_EDGE_X)
10278 	(WINDOW_BOX_RIGHT_EDGE_X, WINDOW_FRINGE_COLS)
10279 	(WINDOW_BOX_HEIGHT_NO_MODE_LINE, WINDOW_BOX_TEXT_HEIGHT):
10280 	Rewrite.
10281 	(resize_frame_windows, grow_mini_window, shrink_mini_window)
10282 	(window_body_width, check_frame_size): Adapt external declarations.
10283 	* xdisp.c (last_max_ascent): New integer.
10284 	(window_text_bottom_y): Handle bottom divider.
10285 	(window_box_width, window_box_height): Calculate pixelwise.
10286 	(get_glyph_string_clip_rects): Handle right divider.
10287 	(remember_mouse_glyph): When windows are resized pixelwise
10288 	proceed with width and height set to 1.
10289 	(init_iterator): Use WINDOW_PIXEL_WIDTH instead of
10290 	WINDOW_TOTAL_WIDTH.
10291 	(move_it_to): Calculate and return maximum x position
10292 	encountered.
10293 	(Fwindow_text_pixel_size): New function.
10294 	(resize_mini_window, update_tool_bar): Calculate pixelwise.
10295 	(tool_bar_lines_needed): Rename to tool_bar_height.
10296 	Calculate pixelwise.
10297 	(Ftool_bar_lines_needed): Rename to Ftool_bar_height.
10298 	Calculate pixelwise.
10299 	(redisplay_tool_bar): Calculate pixelwise.
10300 	(redisplay_window): Calculate pixelwise.  Handle dividers.
10301 	(draw_glyphs, x_clear_end_of_line, note_mouse_highlight)
10302 	(x_draw_vertical_border): Handle dividers.
10303 	(define_frame_cursor1): Handle vertical drag cursor.
10304 	(x_draw_right_divider, x_draw_bottom_divider): New functions.
10305 	(expose_window): Calculate pixelwise.  Handle dividers.
10306 	(init_xdisp): Initialize pixel values.
10307 	* xfaces.c (Qwindow_divider): New face.
10308 	(realize_basic_faces): Realize it.
10309 	* xfns.c (x_set_mouse_color): Handle vertical_drag_cursor.
10310 	(x_set_menu_bar_lines, x_set_tool_bar_lines): Calculate pixelwise.
10311 	(x_set_scroll_bar_default_width): Default actual width to 16.
10312 	(Fx_create_frame): Set sizes pixelwise.
10313 	(x_create_tip_frame): Default divider widths to zero.
10314 	Pixelize call of change_frame_size.
10315 	(Fx_show_tip): Handle divider widths.  Initial pixel position
10316 	and sizes.
10317 	(frame_parm_handler x_frame_parm_handlers): Add divider widths.
10318 	(Vx_window_vertical_drag_shape): New option.
10319 	* xmenu.c (free_frame_menubar): Pixelize call of
10320 	x_set_window_size.
10321 	* xterm.c (x_draw_window_divider): New function.
10322 	(x_update_window_end): Optionally draw right divider.
10323 	(x_draw_fringe_bitmap, x_scroll_run, x_scroll_bar_create)
10324 	(XTset_vertical_scroll_bar): Use scroll bar pixel width.
10325 	(handle_one_xevent, x_new_font): Calculate pixelwise.
10326 	(x_set_window_size_1, x_set_window_size): New argument
10327 	pixelwise.  Calculate pixelwise.
10328 	(x_wm_set_size_hint): Pixelize call of check_frame_size.
10329 	(struct x_redisplay_interface): Add x_draw_window_divider.
10330 	* xterm.h (struct x_output): Add vertical_drag_cursor.
10331 
10332 2013-11-30  Stefan Monnier  <monnier@iro.umontreal.ca>
10333 
10334 	* xdisp.c (redisplay_internal): Don't call set_window_update_flags.
10335 	Set invisible frames's `redisplay' when a full redisplay is requested.
10336 	(redisplay_window): Set must_be_updated_p instead (bug#15999).
10337 	(redisplay_mode_lines): Don't set must_be_updated_p any more.
10338 	(display_mode_lines): Set it here instead.
10339 
10340 	* dispnew.c (set_window_update_flags): Remove `b' argument; make static.
10341 
10342 	* dispextern.h (set_window_update_flags): Remove.
10343 
10344 2013-11-29  Stefan Monnier  <monnier@iro.umontreal.ca>
10345 
10346 	* fns.c (internal_equal): Add a hash_table argument to handle cycles.
10347 
10348 	* xdisp.c (REDISPLAY_SOME_P): New macro.
10349 	(redisplay_internal): Use it (bug#15999).
10350 	(prepare_menu_bars, redisplay_window): Use it as well.
10351 
10352 	* lisp.mk (lisp): Add electric.elc and uniquify.elc.
10353 
10354 2013-11-29  Tom Seddon  <emacs@tomseddon.plus.com>  (tiny change)
10355 
10356 	* w32font.c (g_b_init_get_char_width_32_w): New static var.
10357 	(globals_of_w32font): Zero it out.
10358 	(GetCharWidth32W_Proc): New function pointer.
10359 	(get_char_width_32_w): New function.
10360 	(compute_metrics): If get_glyph_outline_w returns an error, try
10361 	get_char_width_32_w before declaring a failure.  This avoids
10362 	punishing raster (a.k.a. "bitmap") fonts by slowing down
10363 	redisplay.  (Bug#6364).
10364 
10365 2013-11-29  Eli Zaretskii  <eliz@gnu.org>
10366 
10367 	* xdisp.c (clear_mouse_face): Don't invalidate the entire
10368 	mouse-highlight info, just signal frame_up_to_date_hook that mouse
10369 	highlight needs to be redisplayed.  (Bug#15913)
10370 
10371 2013-11-29  Paul Eggert  <eggert@cs.ucla.edu>
10372 
10373 	Fix minor problems found by static checking.
10374 	* buffer.h (struct buffer_text, struct buffer):
10375 	* frame.h (struct frame):
10376 	* window.h (struct window):
10377 	Avoid 'bool foo : 1;', as it's not portable to pre-C99 compilers,
10378 	as described in ../lib/stdbool.in.h.  Use 'unsigned foo : 1;' instead.
10379 	* menu.c (syms_of_menu): Define x-popup-dialog, removing a
10380 	no-longer-valid use of HAVE_MENUS.
10381 	* xdisp.c (propagate_buffer_redisplay): Now static.
10382 
10383 2013-11-29  Stefan Monnier  <monnier@iro.umontreal.ca>
10384 
10385 	* xmenu.c (Fmenu_or_popup_active_p):
10386 	* window.c (Fset_window_configuration):
10387 	* menu.c (Fx_popup_menu, Fx_popup_dialog):
10388 	* keyboard.c (record_menu_key, read_char_x_menu_prompt):
10389 	* fns.c (Fyes_or_no_p):
10390 	* editfns.c (Fmessage_box, Fmessage_or_box):
10391 	* alloc.c (make_save_ptr_ptr):
10392 	* xdisp.c, w32menu.c, term.c, xterm.h, xterm.c: Remove HAVE_MENUS.
10393 
10394 	* window.c (Fset_window_configuration): Move select_window later.
10395 
10396 2013-11-28  Stefan Monnier  <monnier@iro.umontreal.ca>
10397 
10398 	Refine redisplay optimizations to only redisplay *some* frames/windows
10399 	rather than all of them.
10400 	* xdisp.c (REDISPLAY_SOME): New constant.
10401 	(redisplay_other_windows, wset_redisplay, fset_redisplay)
10402 	(bset_redisplay, bset_update_mode_line): New functions.
10403 	(message_dolog): Use bset_redisplay.
10404 	(clear_garbaged_frames): Use fset_redisplay.
10405 	(echo_area_display): Use wset_redisplay.
10406 	(buffer_shared_and_changed): Remove.
10407 	(prepare_menu_bars): Call Vpre_redisplay_function before updating
10408 	frame titles.  Compute the actual set of windows redisplayed.
10409 	Don't update frame titles and menu bars for frames that don't need to
10410 	be redisplayed.
10411 	(propagate_buffer_redisplay): New function.
10412 	(AINC): New macro.
10413 	(redisplay_internal): Use it.  Be more selective in the set of windows
10414 	we redisplay.  Propagate windows_or_buffers_changed to
10415 	update_mode_lines a bit later to simplify the code.
10416 	(mark_window_display_accurate_1): Reset window and buffer's
10417 	`redisplay' flag.
10418 	(redisplay_window): Do nothing if neither the window nor the buffer nor
10419 	the frame needs redisplay.
10420 	* window.h (struct window): Add `redisplay' field.
10421 	(wset_redisplay, fset_redisplay, bset_redisplay, bset_update_mode_line)
10422 	(redisplay_other_windows, window_list): New declarations.
10423 	* window.c (select_window, Fset_window_start): Use wset_redisplay.
10424 	(window_list): Not static any more.
10425 	(grow_mini_window, shrink_mini_window): Use fset_redisplay.
10426 	* minibuf.c (read_minibuf_unwind): Don't redisplay everything.
10427 	* insdel.c (prepare_to_modify_buffer_1): Use bset_redisplay.
10428 	* frame.c (Fmake_frame_visible): Don't redisplay everything.
10429 	* frame.h (struct frame): Add `redisplay' field.
10430 	Move `external_menu_bar' bitfield next to other bit-fields.
10431 	(SET_FRAME_GARBAGED): Use fset_redisplay.
10432 	(SET_FRAME_VISIBLE): Don't garbage the frame;
10433 	Use redisplay_other_windows.
10434 	* buffer.h (struct buffer): Add `redisplay' field.
10435 	* buffer.c (Fforce_mode_line_update): Pay attention to the `all' flag.
10436 	(modify_overlay): Use bset_redisplay.
10437 	* alloc.c (gc_sweep): Don't unmark strings while sweeping symbols.
10438 
10439 2013-11-28  Eli Zaretskii  <eliz@gnu.org>
10440 
10441 	Support w32 file notifications in batch mode.
10442 	* w32proc.c (sys_select): Don't wait on interrupt_handle if it is
10443 	invalid (which happens in batch mode).  If non-interactive, call
10444 	handle_file_notifications to store file notification events in the
10445 	input queue.  (Bug#15933)
10446 
10447 	* w32notify.c (send_notifications): Handle FRAME_INITIAL frames as well.
10448 
10449 	* w32inevt.c (handle_file_notifications): Now external, not static.
10450 
10451 	* w32term.h (handle_file_notifications): Provide prototype.
10452 
10453 	* emacs.c (main) [HAVE_W32NOTIFY]: When non-interactive, call
10454 	init_crit, since init_display, which does that otherwise, is not
10455 	called.
10456 
10457 2013-11-27  Glenn Morris  <rgm@gnu.org>
10458 
10459 	* Makefile.in ($(lispsource)/international/charprop.el): New.
10460 	(emacs$(EXEEXT)): Depend on charprop.el.
10461 
10462 2013-11-27  Eli Zaretskii  <eliz@gnu.org>
10463 
10464 	* fileio.c (Finsert_file_contents): Invalidate buffer caches when
10465 	deleting portions of the buffer under non-nil REPLACE argument.
10466 	(Bug#15973)
10467 
10468 	* w32notify.c (Fw32notify_add_watch): If the argument FILE is a
10469 	directory, watch it and not its parent.
10470 	(add_watch): Allow empty string in FILE.
10471 
10472 2013-11-27  Martin Rudalics  <rudalics@gmx.at>
10473 
10474 	* window.c (Fset_window_start, window_resize_apply)
10475 	(window_scroll): Reset window_end_valid (Bug#15957).
10476 
10477 2013-11-27  Glenn Morris  <rgm@gnu.org>
10478 
10479 	* Makefile.in (leimdir): Now in lisp source directory.
10480 	($(leimdir)/leim-list.el): Just use ../leim .
10481 	* epaths.in (PATH_DUMPLOADSEARCH):
10482 	* lread.c (load_path_default):
10483 	* nsterm.m (ns_load_path): No more leim directory.
10484 
10485 2013-11-26  Andreas Schwab  <schwab@suse.de>
10486 
10487 	* .gdbinit (xgettype): Add cast.
10488 
10489 2013-11-26  Glenn Morris  <rgm@gnu.org>
10490 
10491 	Preload leim-list.el.
10492 	* epaths.in (PATH_DUMPLOADSEARCH): Add leim/.
10493 	* callproc.c (init_callproc): Don't assume PATH_DUMPLOADSEARCH
10494 	is a single directory.
10495 
10496 2013-11-25  Paul Eggert  <eggert@cs.ucla.edu>
10497 
10498 	bool-vector-subsetp is now the normal direction (Bug#15912).
10499 	* data.c (Fbool_vector_subsetp): Test whether the first argument
10500 	is a subset of the second one, not the reverse.  Add doc string.
10501 
10502 	Fix minor problems found by static checking.
10503 	* lread.c (load_path_default): Now static.
10504 	* textprop.c (text_property_stickiness): Be consistent about the
10505 	test used when deciding whether to consider the previous character.
10506 	This simplifies the code a bit.
10507 
10508 2013-11-25  Stefan Monnier  <monnier@iro.umontreal.ca>
10509 
10510 	* textprop.c (text_property_stickiness): Fix front-stickiness at BOB.
10511 
10512 	* frame.c (Fhandle_focus_in, Fhandle_focus_out): Move to frame.el.
10513 	(syms_of_frame): Don't defsubr them.
10514 
10515 2013-11-25  Glenn Morris  <rgm@gnu.org>
10516 
10517 	* lread.c (load_path_default): Change the sense of the argument.
10518 	(init_lread): When EMACSLOADPATH is set, do not ignore changes
10519 	from dump_path.  When it is not, avoid checking dump_path twice.
10520 
10521 	* lread.c (init_lread): Fix 2013-11-23 goof that was checking
10522 	uninstalled dump_path against installed Vload_path.  (Bug#15964)
10523 
10524 2013-11-24  Stefan Monnier  <monnier@iro.umontreal.ca>
10525 
10526 	Export get_pos_property to Elisp.
10527 	* editfns.c (Fget_pos_property): Rename from get_pos_property.
10528 	(syms_of_editfns): Export it to Elisp.
10529 
10530 	* data.c (Fmake_variable_buffer_local): Mention `permanent-local'.
10531 
10532 2013-11-23  Romain Francoise  <romain@orebokech.com>
10533 
10534 	* fileio.c (init_fileio): Move `write_region_inhibit_fsync'
10535 	initialization here ...
10536 	(syms_of_fileio): ... from here.
10537 
10538 2013-11-23  Stefan Monnier  <monnier@iro.umontreal.ca>
10539 
10540 	* lread.c (init_lread): Fix int/Lisp_Object mixup.
10541 	Please use --enable-check-lisp-object-type.
10542 
10543 2013-11-23  Glenn Morris  <rgm@gnu.org>
10544 
10545 	* process.c (get_process): Explicit error for dead buffers.
10546 
10547 2013-11-23  Andreas Schwab  <schwab@linux-m68k.org>
10548 
10549 	* process.c (get_process): Check that OBJ is a live buffer.  (Bug#15923)
10550 
10551 2013-11-23  Glenn Morris  <rgm@gnu.org>
10552 
10553 	Empty elements in EMACSLOADPATH stand for the default.  (Bug#12100)
10554 	* lread.c (load_path_check): Take path to check as argument.
10555 	(load_path_default): New, split from init_lread.
10556 	(init_lread): Move calc of default load-path to load_path_default.
10557 	Empty elements in EMACSLOADPATH now stand for the default.
10558 	(load-path): Doc fix.
10559 	* emacs.c (decode_env_path): Add option to treat empty elements
10560 	as nil rather than ".".
10561 	* callproc.c (init_callproc_1, init_callproc):
10562 	* image.c (Vx_bitmap_file_path):
10563 	* lisp.h (decode_env_path):
10564 	* lread.c (Vsource_directory):
10565 	Update for new argument spec of decode_env_path.
10566 
10567 2013-11-22  Eli Zaretskii  <eliz@gnu.org>
10568 
10569 	* bidi.c (bidi_find_paragraph_start): Limit the returned positions
10570 	to BEGV_BYTE..ZV_BYTE range.  (Bug#15951)
10571 
10572 2013-11-21  Paul Eggert  <eggert@cs.ucla.edu>
10573 
10574 	Fix some dependency problems that cause unnecessary recompiles.
10575 	Reported by RMS in
10576 	<https://lists.gnu.org/r/emacs-devel/2013-11/msg00421.html>.
10577 	* Makefile.in (OLDXMENU_TARGET, OLDXMENU, OLDXMENU_DEPS)
10578 	(really-lwlib, really-oldXMenu, stamp-oldxmenu)
10579 	(../src/$(OLDXMENU), $(OLDXMENU)): Remove.
10580 	(temacs$(EXEEXT)): Depend on $(LIBXMENU), not stamp-oldxmenu.
10581 	($(lwlibdir)/liblw.a, $(oldXMenudir)/libXMenu11.a, FORCE): New targets.
10582 	(boostrap-clean): No need to remove stamp-oldxmenu.
10583 
10584 	Fix recently introduced bool vector overrun.
10585 	This was due to an optimization that went awry.
10586 	Reported by Glenn Morris in
10587 	<https://lists.gnu.org/r/emacs-devel/2013-11/msg00622.html>.
10588 	* alloc.c (make_uninit_bool_vector): Don't allocate a dummy word
10589 	for empty vectors, undoing the 2013-11-18 change.
10590 	* data.c (bool_vector_binop_driver): Rely on this.
10591 	Fix bug that occasionally overran the destination.
10592 	* lisp.h (struct Lisp_Bool_vector): Document this.
10593 
10594 2013-11-20  Jan Djärv  <jan.h.d@swipnet.se>
10595 
10596 	* nsterm.m (init, run, stop:): Enable again.  stop calls super stop
10597 	to handle dialogs.
10598 
10599 	* nsterm.m (init, run, stop:): Comment out for now, does not work
10600 	with dialogs.
10601 
10602 2013-11-19  Paul Eggert  <eggert@cs.ucla.edu>
10603 
10604 	* charset.c (syms_of_charset): Don't read past end of string.
10605 
10606 2013-11-19  Glenn Morris  <rgm@gnu.org>
10607 
10608 	* frame.c (Fhandle_focus_in, Fhandle_focus_out): Doc fixes.
10609 
10610 2013-11-19  Brian Jenkins  <brian@brianjenkins.org>  (tiny change)
10611 
10612 	Add hooks to run on gaining/losing focus.  (Bug#15029)
10613 	* frame.c (Qfocus_in_hook, Qfocus_out_hook): New static lisp objects.
10614 	(Fhandle_focus_in, Fhandle_focus_out): Run focus hooks.
10615 	(syms_of_frame): Add focus-in-hook, focus-out-hook.
10616 
10617 2013-11-18  Paul Eggert  <eggert@cs.ucla.edu>
10618 
10619 	* data.c (bool_vector_binop_driver): Rename locals for sanity's sake.
10620 	The old names predated the API change that put destination at end.
10621 
10622 	Improve API of recently-added bool vector functions (Bug#15912).
10623 	The old API had (bool-vector-count-matches A B)
10624 	and (bool-vector-count-matches-at A B I), which gave the
10625 	misleading impression that the two functions were variants, one
10626 	with a location I.  The new API has (bool-vector-count-population A)
10627 	and (bool-vector-count-consecutive A B I) to make the distinction
10628 	clearer.  The first function no longer has a B argument, since the
10629 	caller can easily determine the number of nils if the length and
10630 	number of ts is known.
10631 	* data.c (Fbool_vector_count_population): Rename from
10632 	bool_vector_count_matches, and accept just 1 argument.
10633 	(Fbool_vector_count_consecutive): Rename from
10634 	Fbool_vector_count_matches_at.
10635 
10636 	Always allocate at least one bits_word per bool vector.
10637 	See Daniel Colascione in:
10638 	https://lists.gnu.org/r/emacs-devel/2013-11/msg00518.html
10639 	* alloc.c (make_uninit_bool_vector): Always allocate at least one word.
10640 	* data.c (bool_vector_binop_driver): Rely on this.  Tune.
10641 	* lisp.h (struct Lisp_Bool_vector): Document this.
10642 
10643 2013-11-18  Eli Zaretskii  <eliz@gnu.org>
10644 
10645 	* insdel.c (invalidate_buffer_caches): New function, consolidated
10646 	from part of prepare_to_modify_buffer.
10647 	(insert_from_gap, prepare_to_modify_buffer):
10648 	* coding.c (code_convert_region, code_convert_string):
10649 	Call invalidate_buffer_caches.  (Bug#15841)
10650 
10651 	* lisp.h (invalidate_buffer_caches): Add prototype.
10652 
10653 2013-11-17  Eli Zaretskii  <eliz@gnu.org>
10654 
10655 	* w32term.c (x_update_window_end): Don't invalidate the entire
10656 	mouse-highlight info, just signal frame_up_to_date_hook that mouse
10657 	highlight needs to be redisplayed.  (Bug#15913)
10658 
10659 2013-11-17  Paul Eggert  <eggert@cs.ucla.edu>
10660 
10661 	* lisp.h (DEBUGGER_SEES_C_MACROS): Remove.
10662 
10663 2013-11-16  Eli Zaretskii  <eliz@gnu.org>
10664 
10665 	* doc.c (Fsubstitute_command_keys): Inhibit modification hooks
10666 	while we are using Vprin1_to_string_buffer.
10667 
10668 	* keymap.c (describe_map): Don't crash if PT is 1 both before and
10669 	after inserting the description string.  (Bug#15907)
10670 
10671 2013-11-15  Paul Eggert  <eggert@cs.ucla.edu>
10672 
10673 	* data.c: Work around bogus GCC diagnostic about shift count.
10674 	Reported by Eli Zaretskii in
10675 	<https://lists.gnu.org/r/emacs-devel/2013-11/msg00489.html>.
10676 	(pre_value): New function.
10677 	(count_trailing_zero_bits): Use it.
10678 
10679 2013-11-15  Eli Zaretskii  <eliz@gnu.org>
10680 
10681 	* lisp.h (DEBUGGER_SEES_C_MACROS) [GCC < v3.5]: Pessimistically
10682 	assume C macros are not supported even under -g3 in these old GCC
10683 	versions.
10684 
10685 2013-11-15  Leo Liu  <sdl.web@gmail.com>
10686 
10687 	* minibuf.c (Ftry_completion, Fall_completions)
10688 	(Ftest_completion): Use FUNCTIONP.  (Bug#15889)
10689 
10690 2013-11-15  Paul Eggert  <eggert@cs.ucla.edu>
10691 
10692 	* lisp.h (DEFINE_GDB_SYMBOL_BEGIN, DEFINE_GDB_SYMBOL_END):
10693 	Define to empty if DEBUGGER_SEES_C_MACROS is defined.
10694 	This avoids placing unnecessary constants into the Emacs code.
10695 
10696 2013-11-14  Kazuhiro Ito  <kzhr@d1.dion.ne.jp>  (tiny change)
10697 
10698 	* keyboard.c (make_ctrl_char) [HAVE_NTGUI]: Now externally visible
10699 	for Cygwin w32 build.
10700 
10701 	* xdisp.c (erase_phys_cursor) [HAVE_NTGUI]: Now externally visible
10702 	for Cygwin w32 build.  (Bug#15892)
10703 
10704 2013-11-14  Paul Eggert  <eggert@cs.ucla.edu>
10705 
10706 	Simplify, port and tune bool vector implementation.
10707 	* alloc.c (bool_vector_exact_payload_bytes)
10708 	(bool_vector_payload_bytes): Remove.
10709 	(bool_vector_fill): Return its argument.
10710 	* alloc.c (bool_vector_fill):
10711 	* lread.c (read1):
10712 	* print.c (print_object):
10713 	Simplify by using bool_vector_bytes.
10714 	* alloc.c (make_uninit_bool_vector):
10715 	New function, broken out from Fmake_bool_vector.
10716 	(Fmake_bool_vector): Use it.  Use tail call.
10717 	(make_uninit_bool_vector, vector_nbytes): Simplify size calculations.
10718 	* data.c (BITS_PER_ULL): New constant.
10719 	(ULLONG_MAX, count_one_bits_ll): Fall back on long counterparts
10720 	if long long versions don't exist.
10721 	(shift_right_ull): New function.
10722 	(count_one_bits_word): New function, replacing popcount_bits_word
10723 	macro.  Don't assume that bits_word is no wider than long long.
10724 	(count_one_bits_word, count_trailing_zero_bits):
10725 	Don't assume that bits_word is no wider than long long.
10726 	* data.c (bool_vector_binop_driver, bool_vector_not):
10727 	* fns.c (Fcopy_sequence):
10728 	* lread.c (read1):
10729 	Create an uninitialized destination, to avoid needless work.
10730 	(internal_equal): Simplify.
10731 	(Ffillarray): Prefer tail call.
10732 	* data.c (bool_vector_binop_driver): Don't assume bit vectors always
10733 	contain at least one word.
10734 	(bits_word_to_host_endian): Prefer if to #if.  Don't assume
10735 	chars are narrower than ints.
10736 	* data.c (Fbool_vector_count_matches, Fbool_vector_count_matches_at):
10737 	* fns.c (Fcopy_sequence):
10738 	Simplify and tune.
10739 	* lisp.h (bits_word, BITS_WORD_MAX, BITS_PER_BITS_WORD):
10740 	Don't try to port to hosts where bits_word values have holes; the
10741 	code wouldn't work there anyway.  Verify this assumption, though.
10742 	(bool_vector_bytes): New function.
10743 	(make_uninit_bool_vector): New decl.
10744 	(bool_vector_fill): Now returns Lisp_Object.
10745 
10746 	* xfns.c (xic_create_fontsetname):
10747 	* xrdb.c (gethomedir): Prefer tail calls.
10748 
10749 2013-11-12  Paul Eggert  <eggert@cs.ucla.edu>
10750 
10751 	* xterm.c (syms_of_xterm): staticpro Qmodifier_value, Qalt, Qhyper,
10752 	Qmeta, and Qsuper.  This is safer, and it's what w32fns.c does.
10753 
10754 	* buffer.c (Fforce_mode_line_update): Don't fall off end of function
10755 	that requires a return value.
10756 	(Fset_buffer_modified_p): Take advantage of this change to do
10757 	a tail call.
10758 
10759 2013-11-11  Stefan Monnier  <monnier@iro.umontreal.ca>
10760 
10761 	* buffer.c (Frestore_buffer_modified_p): Sync it with
10762 	Fset_buffer_modified_p.
10763 	(Fforce_mode_line_update): New function, moved from subr.el.
10764 	(Fset_buffer_modified_p): Use them.
10765 	(syms_of_buffer): Defsubr Fforce_mode_line_update.
10766 
10767 2013-11-11  Paul Eggert  <eggert@cs.ucla.edu>
10768 
10769 	* search.c (find_newline): Rewrite to prefer offsets to pointers.
10770 	This avoids undefined behavior when subtracting pointers into
10771 	different aways.  On my platform it also makes the code a tad
10772 	smaller and presumably faster.
10773 
10774 2013-11-11  Stefan Monnier  <monnier@iro.umontreal.ca>
10775 
10776 	* keyboard.c (command_loop_1): Use region-extract-function.
10777 	* insdel.c (Qregion_extract_function): Not static any more (can we
10778 	stop pretending that these vars can benefit from being marked static?).
10779 
10780 2013-11-09  Eli Zaretskii  <eliz@gnu.org>
10781 
10782 	* search.c (find_newline): If buffer text is relocated during the
10783 	"dumb loop", adjust C pointers into buffer text to follow suit.
10784 	(Bug#15841)
10785 
10786 2013-11-09  Łukasz Stelmach  <stlman@poczta.fm>  (tiny change)
10787 
10788 	* gtkutil.c (xg_check_special_colors): Use rgb: instead of rgbi:
10789 	for conversion (Bug#15837).
10790 
10791 2013-11-09  Eli Zaretskii  <eliz@gnu.org>
10792 
10793 	* fileio.c (Finsert_file_contents): Invalidate the newline cache
10794 	for the entire range of inserted characters.  (Bug#15841)
10795 
10796 2013-11-08  Jan Djärv  <jan.h.d@swipnet.se>
10797 
10798 	* xfaces.c (lface_fully_specified_p): Let distant-foreground be
10799 	unspecified.
10800 	(realize_default_face): Remove assignment to distant-foreground if
10801 	unspecified (Bug#15815).
10802 
10803 2013-11-08  Eli Zaretskii  <eliz@gnu.org>
10804 
10805 	* xdisp.c (message_dolog): Make sure the *Messages* buffer has its
10806 	cache-long-scans disabled, since we don't want to call
10807 	prepare_to_modify_buffer (in insert_1_both) for each message we
10808 	display.
10809 
10810 	* buffer.h (bset_cache_long_scans): New INLINE function, moved
10811 	from buffer.c.  Improve commentary to the buffer field setter
10812 	functions.
10813 
10814 	* buffer.c (bset_cache_long_scans): Static function deleted.
10815 	Improve commentary to the buffer field setter functions.
10816 	(init_buffer_once): Default for cache-long-scans changed to t.
10817 	(Bug#15797)
10818 
10819 2013-11-08  Paul Eggert  <eggert@cs.ucla.edu>
10820 
10821 	* gmalloc.c (special_realloc, calloc, mallochook): Use tail calls.
10822 
10823 	* chartab.c (make_sub_char_table): Fix size typo (Bug#15825).
10824 	This bug was introduced in my 2013-06-21 change, and caused
10825 	struct Lisp_Sub_Char_Table objects to be given too many slots,
10826 	which broke 'make -C admin/unidata'.
10827 
10828 2013-11-07  Jan Djärv  <jan.h.d@swipnet.se>
10829 
10830 	Import changes from mac-port 4.5.
10831 	* macfont.m (mac_font_copy_default_descriptors_for_language)
10832 	(mac_font_copy_default_name_for_charset_and_languages): Declare.
10833 	(cf_charset_table): big-5-0 has uniquifier 0x4EDC.
10834 	(macfont_language_default_font_names): New.
10835 	(macfont_list): Rearrange language/charset code.
10836 	(macfont_close): Don't check for macfont_info->cache.
10837 	(mac_ctfont_create_preferred_family_for_attributes): New font
10838 	selection code, call
10839 	mac_font_copy_default_name_for_charset_and_languages.
10840 	(mac_font_copy_default_descriptors_for_language)
10841 	(mac_font_copy_default_name_for_charset_and_languages): New functions.
10842 
10843 	* macfont.h (kCTVersionNumber10_9): Define if not defined.
10844 
10845 2013-11-07  Paul Eggert  <eggert@cs.ucla.edu>
10846 
10847 	Port to C11 aligned_alloc, and fix some integer overflows.
10848 	* alloc.c (USE_ALIGNED_ALLOC): New symbol.
10849 	(USE_POSIX_MEMALIGN): Remove.  All uses replaced with USE_ALIGNED_ALLOC,
10850 	and use of posix_memalign replaced with aligned_alloc.
10851 	(aligned_alloc): New function, defined or declared as needed.
10852 	* conf_post.h (HAVE_POSIX_MEMALIGN) [DARWIN_OS]:
10853 	Don't undef; configure.ac now does this.
10854 	* gmalloc.c (aligned_alloc) [MSDOS]: New decl.
10855 	(calloc, aligned_alloc): Check for integer overflow.
10856 	(aligned_alloc): Rename from memalign.  All uses changed.
10857 	(memalign): New function, an alias for aligned_alloc.
10858 
10859 2013-11-06  Stefan Monnier  <monnier@iro.umontreal.ca>
10860 
10861 	* xdisp.c (redisplay_internal): Fix typo in last change.
10862 
10863 2013-11-06  Paul Eggert  <eggert@cs.ucla.edu>
10864 
10865 	* regex.c: Fix --enable-gcc-warning glitch with GCC 4.5.2.
10866 
10867 2013-11-06  Stefan Monnier  <monnier@iro.umontreal.ca>
10868 
10869 	* xdisp.c (syms_of_xdisp): New vars redisplay--all-windows-cause and
10870 	redisplay--mode-lines-cause.
10871 	(redisplay_internal): Keep them uptodate.  Remove redundant check of
10872 	buffer_shared_and_changed.
10873 	* *.[chm]: Number every assignment to update_mode_lines so we
10874 	can track why it is set.
10875 
10876 2013-11-06  Eli Zaretskii  <eliz@gnu.org>
10877 
10878 	* editfns.c (Fformat_time_string): Doc fix.  (Bug#15816)
10879 
10880 2013-11-06  Stefan Monnier  <monnier@iro.umontreal.ca>
10881 
10882 	* *.[chm]: Number every assignment to windows_or_buffers_changed so we
10883 	can track why it is set.
10884 
10885 2013-11-06  Paul Eggert  <eggert@cs.ucla.edu>
10886 
10887 	Integer-related fixes for term.c etc.
10888 	* dispextern.h (face_tty_specified_color): New function.
10889 	* term.c (turn_on_face): Don't rely on undefined behavior when
10890 	assigning an out-of-range value to 'long'.
10891 	Simplify test for toggling highlight.
10892 	(tty_capable_p): Omit last two (unused) args.  All callers changed.
10893 	* term.c (tty_capable_p, tty_menu_display, tty_menu_add_selection)
10894 	(read_menu_input, tty_menu_activate, tty_menu_show):
10895 	* xfaces.c (x_supports_face_attributes_p)
10896 	(tty_supports_face_attributes_p):
10897 	Use bool for boolean.  All callers changed.
10898 	(tty_supports_face_attributes_p): Omit defaults for color indices;
10899 	no longer needed.  Simplify tail call.
10900 
10901 2013-11-05  Stefan Monnier  <monnier@iro.umontreal.ca>
10902 
10903 	* xdisp.c (prepare_menu_bars): Mark static.
10904 	* lisp.h (prepare_menu_bars): Don't declare.
10905 	* xselect.c (x_handle_selection_clear):
10906 	* callproc.c (call_process): Remove redundant call to prepare_menu_bars.
10907 
10908 2013-11-05  Paul Eggert  <eggert@cs.ucla.edu>
10909 
10910 	* keyboard.c (Fcommand_error_default_function): Fix pointer signedness
10911 	glitch.  Eliminate 'sz' prefix; Hungarian notation is not helpful here.
10912 
10913 2013-11-05  Stefan Monnier  <monnier@iro.umontreal.ca>
10914 
10915 	* keyboard.c (Fcommand_error_default_function): Rename from
10916 	Fdefault_error_output.
10917 
10918 2013-11-05  Jarek Czekalski  <jarekczek@poczta.onet.pl>  (tiny change)
10919 
10920 	* keyboard.c (Fdefault_error_output): New function, extracted from
10921 	cmd_error_internal.
10922 	(syms_of_keyboard): Use it for Vcommand_error_function.
10923 
10924 2013-11-05  Stefan Monnier  <monnier@iro.umontreal.ca>
10925 
10926 	* eval.c (handlerlist_sentinel): New variable (bug#15802).
10927 	(init_eval): Use it to ensure handlerlist is non-NULL.
10928 	(unwind_to_catch): Make sure we never set handlerlist to NULL.
10929 	(Fsignal): Adjust NULLness test of handlerlist.
10930 	* lisp.h (PUSH_HANDLER): Assume handlerlist is non-NULL.
10931 
10932 2013-11-05  Eli Zaretskii  <eliz@gnu.org>
10933 
10934 	* callproc.c (call_process): Call prepare_to_modify_buffer before
10935 	decoding text read from the sub-process, as the decoded stuff will
10936 	be inserted into the buffer.  This will invalidate the various
10937 	caches maintained for the buffer.  (Bug#15148)
10938 
10939 2013-11-05  Xue Fuqiao  <xfq.free@gmail.com>
10940 
10941 	* xdisp.c (syms_of_xdisp): Mention the active display table in doc
10942 	string of glyphless-char-display.
10943 
10944 2013-11-05  Jan Djärv  <jan.h.d@swipnet.se>
10945 
10946 	* nsfns.m (ns_get_name_from_ioreg): New function.
10947 	(ns_screen_name): Don't use deprecated CGDisplayIOServicePort on
10948 	OSX >= 10.9.  Use ns_get_name_from_ioreg.
10949 
10950 2013-11-05  Paul Eggert  <eggert@cs.ucla.edu>
10951 
10952 	Simplify and port recent bool vector changes.
10953 	* alloc.c (ROUNDUP): Move here from lisp.h, since it's now used
10954 	only in this file.  Use a more-efficient implementation if the
10955 	second argument is a power of 2.
10956 	(ALIGN): Rewrite in terms of ROUNDUP.  Make it a function.
10957 	Remove no-longer-necessary compile-time checks.
10958 	(bool_vector_exact_payload_bytes): New function.
10959 	(bool_vector_payload_bytes): Remove 2nd arg; callers that need
10960 	exact payload changed to call the new function.  Do not assume
10961 	that the arg or result fits in ptrdiff_t.
10962 	(bool_vector_fill): New function.
10963 	(Fmake_bool_vector): Use it.  Don't assume bit counts fit
10964 	in ptrdiff_t.
10965 	(vroundup_ct): Don't assume arg fits in size_t.
10966 	* category.c (SET_CATEGORY_SET): Remove.  All callers now just
10967 	invoke set_category_set.
10968 	(set_category_set): 2nd arg is now EMACS_INT and 3rd is now bool.
10969 	All callers changed.  Use bool_vector_set.
10970 	* category.h (XCATEGORY_SET): Remove; no longer needed.
10971 	(CATEGORY_MEMBER): Now a function.  Rewrite in terms of
10972 	bool_vector_bitref.
10973 	* data.c (Faref): Use bool_vector_ref.
10974 	(Faset): Use bool_vector_set.
10975 	(bits_word_to_host_endian): Don't assume you can shift by CHAR_BIT.
10976 	(Fbool_vector_not, Fbool_vector_count_matches)
10977 	(Fbool_vector_count_matches_at): Don't assume CHAR_BIT == 8.
10978 	* fns.c (concat): Use bool_vector_ref.
10979 	(Ffillarray): Use bool_vector_fill.
10980 	(mapcar1): Use bool_vector_ref.
10981 	(sxhash_bool_vector): Hash words, not bytes.
10982 	* lisp.h (BOOL_VECTOR_BITS_PER_CHAR): Now a macro as well as
10983 	a constant, since it's now used in #if.
10984 	(bits_word, BITS_WORD_MAX, BITS_PER_BITS_WORD): Fall back on
10985 	unsigned char on unusual architectures, so that we no longer
10986 	assume that the number of bits per bits_word is a power of two or
10987 	is a multiple of 8 or of CHAR_BIT.
10988 	(Qt): Add forward decl.
10989 	(struct Lisp_Bool_Vector): Don't assume EMACS_INT is aligned
10990 	at least as strictly as bits_word.
10991 	(bool_vector_data, bool_vector_uchar_data): New accessors.
10992 	All data structure accesses changed to use them.
10993 	(bool_vector_words, bool_vector_bitref, bool_vector_ref)
10994 	(bool_vector_set): New functions.
10995 	(bool_vector_fill): New decl.
10996 	(ROUNDUP): Move to alloc.c as described above.
10997 
10998 	Fix recent gnutls changes.
10999 	* gnutls.c (Fgnutls_boot): Don't assume C99.
11000 	* process.c (wait_reading_process_output): Fix typo in recent change.
11001 
11002 2013-11-05  Teodor Zlatanov  <tzz@lifelogs.com>
11003 
11004 	* process.c (wait_reading_process_output, read_process_output)
11005 	(send_process): Check gnutls_state is not NULL.
11006 
11007 	* gnutls.c (emacs_gnutls_handle_error): Adjust log level for EAGAIN.
11008 	(Fgnutls_boot): Set process gnutls_p later, after initialization.
11009 
11010 2013-11-04  Jan Djärv  <jan.h.d@swipnet.se>
11011 
11012 	* nsterm.m (init, run, stop:): New methods in EmacsApp for
11013 	OSX >= 10.9 to prevent memory leak of GCD dispatch source.
11014 
11015 	* nsterm.h (EmacsApp): Add shouldKeepRunning and isFirst for
11016 	OSX >= 10.9.
11017 
11018 	* nsfns.m (Fx_create_frame): Fix memory leak.
11019 
11020 	* macfont.m (CG_SET_FILL_COLOR_WITH_GC_FOREGROUND)
11021 	(CG_SET_FILL_COLOR_WITH_GC_BACKGROUND)
11022 	(CG_SET_STROKE_COLOR_WITH_GC_FOREGROUND): Fix memory leak.
11023 
11024 2013-11-04  Eli Zaretskii  <eliz@gnu.org>
11025 
11026 	* xdisp.c (message3_nolog, message_with_string): Encode the string
11027 	before writing it to the terminal in a non-interactive session.
11028 
11029 	* lread.c (openp): If both FILENAME and SUFFIX are unibyte, make
11030 	sure we concatenate them into a unibyte string.
11031 
11032 	* fileio.c (make_temp_name): Encode PREFIX, and decode the
11033 	resulting temporary name before returning it to the caller.
11034 	(Fexpand_file_name): If NAME is pure-ASCII and DEFAULT_DIRECTORY
11035 	is a unibyte string, convert NAME to a unibyte string to ensure
11036 	that the result is also a unibyte string.
11037 
11038 	* emacs.c (init_cmdargs): Use build_unibyte_string to make sure we
11039 	create unibyte strings from default paths and directory/file
11040 	names.
11041 
11042 	* coding.h (ENCODE_FILE): Do not attempt to encode a unibyte
11043 	string.
11044 
11045 	* callproc.c (init_callproc): Use build_unibyte_string to make
11046 	sure we create unibyte strings from default paths and
11047 	directory/file names.
11048 
11049 	* buffer.c (init_buffer): Don't store default-directory of
11050 	*scratch* in multibyte form.  The original problem which led to
11051 	that is described in
11052 	https://lists.gnu.org/r/emacs-pretest-bug/2004-11/msg00532.html,
11053 	but it was solved long ago.  (Bug#15260)
11054 
11055 2013-11-04  Paul Eggert  <eggert@cs.ucla.edu>
11056 
11057 	Port to stricter C99 platforms.
11058 	Especially, C99 prohibits nesting a struct X inside struct Y if
11059 	struct X has a flexible array member.
11060 	* alloc.c (struct sdata): New type.
11061 	(sdata): Implement in terms of struct sdata.
11062 	Remove u member; all uses replaced by next_vector, set_next_vector.
11063 	(SDATA_SELECTOR, SDATA_DATA, SDATA_DATA_OFFSET): Adjust to sdata change.
11064 	(SDATA_DATA_OFFSET): Now a constant, not a macro.
11065 	(struct sblock): Rename first_data member to data, which is now
11066 	a flexible array member.  All uses changed.
11067 	(next_vector, set_next_vector, large_vector_vec): New functions.
11068 	(vector_alignment): New constant.
11069 	(roundup_size): Make it a multiple of ALIGNOF_STRUCT_LISP_VECTOR, too.
11070 	(struct large-vector): Now merely a NEXT member, since the old approach
11071 	ran afoul of stricter C99.  All uses changed to use
11072 	large_vector_vec or large_vector_offset.
11073 	(large_vector_offset): New constant.
11074 	* dispnew.c: Include tparam.h, for tgetent.
11075 	Do not include term.h; no longer needed.
11076 	* gnutls.c (Fgnutls_boot): Don't continue after calling a _Noreturn.
11077 	* lisp.h (ENUM_BF) [__SUNPRO_C && __STDC__]: Use unsigned int.
11078 	(struct Lisp_Vector): Use a flexible array member for contents,
11079 	instead of a union with a member that is an array of size 1.
11080 	All uses changed.
11081 	(ALIGNOF_STRUCT_LISP_VECTOR): New constant, to make up for the
11082 	fact that the struct no longer contains a union.
11083 	(struct Lisp_Misc_Any, struct Lisp_Marker, struct Lisp_Overlay)
11084 	(struct Lisp_Save_Value, struct Lisp_Free):
11085 	Use unsigned, not int, for spacers, to avoid c99 warning.
11086 	(union specbinding): Use unsigned, not bool, for bitfield, as
11087 	bool is not portable to pre-C99 hosts.
11088 
11089 2013-11-04  Glenn Morris  <rgm@gnu.org>
11090 
11091 	* emacs.c (usage_message): Mention that `-L :...' appends.
11092 
11093 2013-11-02  Glenn Morris  <rgm@gnu.org>
11094 
11095 	* Makefile.in (abs_builddir): Remove.
11096 	(bootstrap_exe): Use relative filename.
11097 
11098 	Use relative filenames in TAGS files.
11099 	* Makefile.in (abs_srcdir): Remove it again.
11100 	(.PHONY): Remove frc.
11101 	(maintainer-clean): No more TAGS-LISP file.
11102 	(TAGS): Pass relative file names to etags.
11103 	(../lisp/TAGS): Rename from TAGS-LISP.  Work in ../lisp.
11104 
11105 	* Makefile.in (abs_srcdir): New, set by configure.
11106 	(lispdir): Remove.
11107 	(maintainer-clean): Remove pointless echo.  That should be in the
11108 	top-level Makefile, if anywhere.  Delete TAGS-LISP.
11109 	(extraclean): No s/ and m/ directories for some time.
11110 	(TAGS): Also depend on ctagsfiles3.
11111 	Remove no-longer-defined S_FILE.
11112 	Pass absolute filenames to etags once more.
11113 	(TAGS-LISP): Replace lispdir with its expansion.
11114 	(TAGS-LISP, $(lwlibdir)/TAGS): Correctly pass ETAGS to sub-makes.
11115 	($(lwlibdir)/TAGS): Remove useless subshell, check cd return value.
11116 
11117 2013-11-02  Jan Djärv  <jan.h.d@swipnet.se>
11118 
11119 	* xfaces.c (check_lface_attrs, realize_default_face):
11120 	Add LFACE_DISTANT_FOREGROUND_INDEX (Bug#15788).
11121 	(realize_default_face): Set DISTANT_FOREGROUND to unspecified_fg.
11122 
11123 2013-11-02  Paul Eggert  <eggert@cs.ucla.edu>
11124 
11125 	* emacs.c (original_pwd): Remove global var by making it local.
11126 	(init_cmdargs): New arg ORIGINAL_PWD; caller changed.
11127 
11128 2013-11-01  Jan Djärv  <jan.h.d@swipnet.se>
11129 
11130 	* xfaces.c: Declare color_distance.
11131 	(QCdistant_foreground): New variable.
11132 	(NEAR_SAME_COLOR_THRESHOLD): New define.
11133 	(load_color2): New function.
11134 	(load_color): Call load_color2.
11135 	(load_face_colors): Call load_color2 and if distant-color is specified
11136 	calculate distant and use distant-color if colors are near.
11137 	(LFACE_DISTANT_FOREGROUND): New define.
11138 	(merge_face_ref, Finternal_set_lisp_face_attribute)
11139 	(Finternal_get_lisp_face_attribute)
11140 	(x_supports_face_attributes_p): Handle distant-foreground similar to
11141 	foreground.
11142 	(syms_of_xfaces): DEFSYM QCdistant_foreground.
11143 
11144 	* dispextern.h (lface_attribute_index):
11145 	Add LFACE_DISTANT_FOREGROUND_INDEX.
11146 
11147 2013-11-01  Claudio Bley  <claudio.bley@googlemail.com>
11148 
11149 	* image.c (pbm_next_char): New function.
11150 	See http://netpbm.sourceforge.net/doc/pbm.html for the details.
11151 	(pbm_scan_number): Use it.
11152 	(Qlibjpeg_version): New variable.
11153 	(syms_of_image): DEFSYM and initialize it.
11154 
11155 2013-10-31  Jan Djärv  <jan.h.d@swipnet.se>
11156 
11157 	* emacs.c (main): Skip -psn args on OSX even if ! isatty (0).
11158 
11159 2013-10-31  Glenn Morris  <rgm@gnu.org>
11160 
11161 	* emacs.c (original_pwd): New char.
11162 	(main): If using --chdir, store original_pwd.
11163 	(init_cmdargs): When setting Vinvocation_directory based on a
11164 	relative argv[0], use original_pwd if set.  (Bug#15768)
11165 
11166 2013-10-29  Stefan Monnier  <monnier@iro.umontreal.ca>
11167 
11168 	* keyboard.c (command_loop_1): If command is nil, call `undefined'.
11169 
11170 2013-10-29  Paul Eggert  <eggert@cs.ucla.edu>
11171 
11172 	* insdel.c: Fix minor problems found by static checking.
11173 	(Qregion_extract_function): Now static.
11174 	(prepare_to_modify_buffer_1): Remove unused locals.
11175 
11176 2013-10-29  Stefan Monnier  <monnier@iro.umontreal.ca>
11177 
11178 	* xdisp.c (prepare_menu_bars): Call Vpre_redisplay_function.
11179 	(syms_of_xdisp): Declare pre-redisplay-function.
11180 	(markpos_of_region): Remove function.
11181 	(init_iterator, compute_stop_pos, handle_face_prop)
11182 	(face_before_or_after_it_pos, reseat_to_string)
11183 	(get_next_display_element, window_buffer_changed)
11184 	(redisplay_internal, try_cursor_movement, redisplay_window)
11185 	(try_window_reusing_current_matrix, try_window_id, display_line)
11186 	(note_mode_line_or_margin_highlight, note_mouse_highlight)
11187 	(display_string, mouse_face_from_buffer_pos): Remove region handling.
11188 	* window.h (struct window): Remove field `region_showing'.
11189 	* dispextern.h (struct it): Remove region_beg/end_charpos.
11190 	(face_at_buffer_position, face_for_overlay_string)
11191 	(face_at_string_position): Update prototypes.
11192 	* xfaces.c (face_at_buffer_position, face_for_overlay_string)
11193 	(face_at_string_position): Remove `region_beg' and `region_end' args.
11194 	* fontset.c (Finternal_char_font):
11195 	* font.c (font_at, font_range): Adjust calls accordingly.
11196 	* insdel.c (Qregion_extract_function): New var.
11197 	(syms_of_insdel): Initialize it.
11198 	(prepare_to_modify_buffer_1): Use it.
11199 
11200 2013-10-29  Dmitry Antipov  <dmantipov@yandex.ru>
11201 
11202 	Prefer 'unsigned long' to 'long unsigned int' and 'unsigned long int'.
11203 	* ftxfont.c (ftxfont_get_gcs):
11204 	* gtkutil.c (xg_set_widget_bg, xg_set_background_color):
11205 	* xfaces.c (x_free_colors, x_free_dpy_colors)
11206 	(x_create_gc, unload_color):
11207 	* xselect.c (x_property_data_to_lisp):
11208 	* xsettings.c (parse_settings):
11209 	* xterm.c (x_copy_color, x_alloc_lighter_color, x_setup_relief_color)
11210 	(get_bits_and_offset): Adjust definition.
11211 	* frame.c (XParseGeometry): Adjust locals.
11212 	* lisp.h (toplevel): Adjust EMACS_UINT type definition.
11213 	* regex.h (toplevel): Likewise for reg_syntax_t.
11214 
11215 2013-10-29  Stefan Monnier  <monnier@iro.umontreal.ca>
11216 
11217 	* eval.c (run_hook_with_args): Use FUNCTIONP.
11218 
11219 2013-10-29  Dmitry Antipov  <dmantipov@yandex.ru>
11220 
11221 	* xterm.h (struct x_output): For 'black_relief' and 'white_relief'
11222 	fields, drop 'allocated_p' member and use -1 for uninitialized value.
11223 	* w32term.h (struct w32_output): Similarly but do not use -1 because...
11224 	* xfaces.c (unload_color) [HAVE_X_WINDOWS]: ...this function is a no-op
11225 	on MS-Windows anyway.
11226 	(free_face_colors): Define only if HAVE_X_WINDOWS and...
11227 	(free_realized_face): ...adjust user.
11228 	* xfns.c (Fx_create_frame, x_create_tip_frame): Initialize black and
11229 	white relief pixels to -1.
11230 	* xterm.c (x_setup_relief_color, x_free_frame_resources): Adjust users.
11231 	* w32term.c (w32_setup_relief_color, x_free_frame_resources): Likewise.
11232 	* dispextern.h (unload_color): Move prototype under HAVE_X_WINDOWS.
11233 
11234 2013-10-28  Paul Eggert  <eggert@cs.ucla.edu>
11235 
11236 	* dispextern.h, image.c (x_bitmap_height, x_bitmap_width): Now static.
11237 	* xfaces.c (load_pixmap): Omit last two args, which are always NULL
11238 	in practice now.  All callers changed.
11239 
11240 2013-10-28  Dmitry Antipov  <dmantipov@yandex.ru>
11241 
11242 	* dispextern.h (struct face): Use bitfields for 'underline_type'
11243 	and 'box' members.  Remove set-but-unused members 'pixmap_w' and
11244 	'pixmap_h'.  If not HAVE_WINDOW_SYSTEM, also remove dummy
11245 	'stipple' member.  Move 'lface' member up to help...
11246 	* xfaces.c (make_realized_face): ...this function to find and
11247 	clear just the members that need clearing.
11248 	(load_face_colors, realize_x_face):
11249 	* xdisp.c (extend_face_to_end_of_line): Adjust user.
11250 
11251 2013-10-27  Dmitry Antipov  <dmantipov@yandex.ru>
11252 
11253 	* xftfont.c (struct xftfont_info): Remove set-but-unused
11254 	'screen' member.
11255 	(xftfont_open): Adjust user.
11256 	(xftfont_get_colors): Remove useless prototype.
11257 
11258 2013-10-26  Eli Zaretskii  <eliz@gnu.org>
11259 
11260 	* emacs.c (Fdump_emacs): Encode FILENAME and SYMFILE arguments
11261 	before passing them to 'unexec'.  (Bug#15260)
11262 
11263 2013-10-26  Xue Fuqiao  <xfq.free@gmail.com>
11264 
11265 	* fringe.c (set_fringe_bitmap_face): Add usage note from lispref.
11266 
11267 2013-10-25  Eli Zaretskii  <eliz@gnu.org>
11268 
11269 	* w32uniscribe.c (uniscribe_close): Adjust the argument list to
11270 	the changed signature of the font driver's 'close' method.
11271 
11272 	* w32font.h (w32font_close): Adjust the prototype to the change in
11273 	function definition.
11274 
11275 	* w32font.c (w32font_close): Reintroduce deleted declaration of i.
11276 
11277 	* w32uniscribe.c (uniscribe_close): Adapt the call to
11278 	w32font_close to its new prototype.
11279 
11280 2013-10-25  Dmitry Antipov  <dmantipov@yandex.ru>
11281 
11282 	Omit unused frame argument of font API's close function.
11283 	* font.h (struct font): Drop frame argument.  Adjust comment.
11284 	* font.c (font_clear_cache, font_close_object): Adjust users.
11285 	* ftfont.c (ftfont_close):
11286 	* ftxfont.c (ftxfont_close):
11287 	* macfont.m (macfont_close):
11288 	* nsfont.m (nsfont_close):
11289 	* w32font.c (w32font_close):
11290 	* xfont.c (xfont_close):
11291 	* xftfont.c (xftfont_close): Adjust driver-specific close functions,
11292 	tweak comments and make functions safe if called more than once for
11293 	the same font object.
11294 
11295 	Perform font-specific cleanup when font object is swept by GC.  See
11296 	https://lists.gnu.org/r/emacs-devel/2013-10/msg00740.html.
11297 	* alloc.c (cleanup_vector): New function.
11298 	(sweep_vector): Call it for each reclaimed vector object.
11299 	* font.h (struct font): Adjust comment.
11300 
11301 2013-10-24  Glenn Morris  <rgm@gnu.org>
11302 
11303 	* Makefile.in (abs_top_srcdir): New, set by configure.
11304 
11305 2013-10-23  Dmitry Antipov  <dmantipov@yandex.ru>
11306 
11307 	Adjust recent font-related changes to fix bug#15686.
11308 	* alloc.c (mark_object) [HAVE_WINDOW_SYSTEM]: If marked frame
11309 	is a live window system frame, mark its default font too.
11310 
11311 2013-10-23  Glenn Morris  <rgm@gnu.org>
11312 
11313 	* Makefile.in (RUN_TEMACS): Make relative (again).
11314 	($(leimdir)/leim-list.el, .el.elc, $(lispsource)/loaddefs.el)
11315 	(bootstrap-emacs$(EXEEXT)):
11316 	Quote entities that might contain whitespace.
11317 
11318 2013-10-23  Paul Eggert  <eggert@cs.ucla.edu>
11319 
11320 	Port to Solaris 10 and its bundled GCC.  Reported by Timothy C. Burt.
11321 	* floatfns.c (isfinite, isnan): Redefine unconditionally.
11322 
11323 2013-10-21  Dmitry Antipov  <dmantipov@yandex.ru>
11324 
11325 	Do not allow font caches to grow too large.
11326 	* alloc.c (compact_font_cache_entry, compact_font_caches):
11327 	New functions or stub if not HAVE_WINDOW_SYSTEM.
11328 	(compact_undo_list): Factor out from Fgarbage_collect.
11329 	Add comment.
11330 	(mark_face_cache): Mark face font.  Move down to avoid
11331 	extra prototypes.
11332 	(mark_terminals): Do not mark font cache here.
11333 	(Fgarbage_collect): Call compaction functions described
11334 	above.  Adjust comment.
11335 
11336 2013-10-20  Jan Djärv  <jan.h.d@swipnet.se>
11337 
11338 	* emacs.c (main): On Cocoa, if GUI session and 0 is not a tty,
11339 	chdir to HOME (bug#15607).
11340 
11341 	* nsterm.m (Qcocoa, Qgnustep): New variables.
11342 	(syms_of_nsterm): Defsym Qcocoa, Qgnustep.  Fprovide appropriate one.
11343 	(ns_get_color): Make selection color work for GNUstep also.
11344 
11345 2013-10-18  Eli Zaretskii  <eliz@gnu.org>
11346 
11347 	* keyboard.c (make_lispy_event): Remove GPM-specific code that
11348 	handles mouse clicks.  Instead, let GPM use the same code as all
11349 	the other mice use.  See the discussion starting at
11350 	https://lists.gnu.org/r/emacs-devel/2013-10/msg00521.html
11351 	for the details of the problem with the menu bar this fixes.
11352 
11353 2013-10-18  Dmitry Antipov  <dmantipov@yandex.ru>
11354 
11355 	Remove port-specific display name lists to avoid extra
11356 	complexity and data duplication with display info lists.
11357 	* xterm.h (x_display_name_list): Remove declaration.
11358 	* xterm.c (x_display_name_list): Remove.
11359 	(x_term_init, x_delete_display, syms_of_xterm): Adjust users.
11360 	* xfns.c (x_display_info_for_name, Fx_display_list):
11361 	Likewise.  Use x_display_list where appropriate.
11362 	* w32term.h (w32_display_name_list): Remove declaration.
11363 	* w32term.c (w32_display_name_list): Remove.
11364 	(w32_initialize_display_info, x_delete_display, syms_of_w32term):
11365 	Adjust users.
11366 	* w32fns.c (x_display_info_for_name, Fx_display_list):
11367 	Likewise.  Use x_display_list where appropriate.
11368 	* nsterm.h (ns_display_name_list): Remove declaration.
11369 	* nsterm.m (ns_display_name_list): Remove.
11370 	(ns_term_init, syms_of_nsterm): Adjust users.
11371 	* nsfns.m (ns_display_info_for_name, Fx_display_list):
11372 	Likewise.  Use x_display_list where appropriate.
11373 	* termhooks.h (TERMINAL_FONT_CACHE): New macro.
11374 	* alloc.c (toplevel) [HAVE_WINDOW_SYSTEM]: Include TERM_HEADER.
11375 	(mark_terminals): Mark per-terminal font cache.
11376 
11377 2013-10-17  Barry O'Reilly  <gundaetiapo@gmail.com>
11378 
11379 	Don't run timers in input-pending-p.  Its new check-timers param
11380 	provides the prior behavior.  (Bug#15045).
11381 	* keyboard.c (Finput_pending_p): Accept optional check-timers param.
11382 
11383 2013-10-17  Paul Eggert  <eggert@cs.ucla.edu>
11384 
11385 	Make some functions static in non-Microsoft builds.
11386 	On my platform (Fedora 19 x86-64), this shrinks the
11387 	Emacs executable (text+data) by 0.25%.
11388 	* dispextern.h (erase_phys_cursor) [!WINDOWSNT]:
11389 	(load_color) [!MSDOS]:
11390 	* gnutls.h (emacs_gnutls_transport_set_errno) [!WINDOWSNT]:
11391 	* keyboard.h (make_ctrl_char) [!WINDOWSNT]:
11392 	* lisp.h (check_existing):
11393 	* process.h (conv_sockaddr_to_lisp, network_interface_list)
11394 	(network_interface_info) [!WINDOWSNT]:
11395 	* termhooks.h (encode_terminal_code) [!WINDOWSNT]:
11396 	Remove extern decls.
11397 	* fileio.c (check_existing):
11398 	* keyboard.c (make_ctrl_char) [!WINDOWSNT]:
11399 	* process.c (conv_sockaddr_to_lisp, network_interface_list)
11400 	(network_interface_info) [!WINDOWSNT]:
11401 	* term.c (encode_terminal_code) [!WINDOWSNT]:
11402 	* xdisp.c (erase_phys_cursor) [!WINDOWSNT]:
11403 	* xfaces.c (load_color) [!MSDOS]:
11404 	Now static.
11405 	* fileio.c (check_existing, check_executable, check_writable):
11406 	* process.c (network_interface_list, network_interface_info):
11407 	Move earlier, so that we don't need forward decls.
11408 	* gnutls.c (fn_gnutls_transport_set_errno)
11409 	(emacs_gnutls_transport_set_errno) [!WINDOWNT]:
11410 	Remove; unused.
11411 	* w32.c (init_environment): Use faccessat rather than
11412 	check_existing, partly for consistency with the rest of the code
11413 	in this file, partly so that check_existing can be static.
11414 
11415 	Make VALMASK visible to GDB even if clang is used (Bug#15574).
11416 	* emacs.c (MAIN_PROGRAM): New macro.
11417 	* lisp.h (DEFINE_GDB_SYMBOL_BEGIN, DEFINE_GDB_SYMBOL_END): New macros.
11418 	(ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Use them.
11419 
11420 	bool vector int width fixes
11421 	* data.c (bool_vector_spare_mask, Fbool_vector_count_matches)
11422 	(Fbool_vector_count_matches_at):
11423 	Use EMACS_INT, not ptrdiff_t, to record bit counts, as a bit count
11424 	can exceed PTRDIFF_MAX, at least in theory.
11425 	(Fbool_vector_count_matches_at):
11426 	Use int, not ptrdiff_t, to record a value that can't exceed INT_MAX.
11427 
11428 2013-10-16  Paul Eggert  <eggert@cs.ucla.edu>
11429 
11430 	* process.h (conv_sockaddr_to_lisp): New decl, for newly-extern func.
11431 	(struct sockaddr): Add forward decl, for platforms that lack it.
11432 
11433 2013-10-16  Jan Djärv  <jan.h.d@swipnet.se>
11434 
11435 	* nsselect.m (ns_string_from_pasteboard): Remove Fquit, just return
11436 	Qnil (Bug#15628).
11437 
11438 2013-10-16  Eli Zaretskii  <eliz@gnu.org>
11439 
11440 	* w32.c (network_interface_get_info, network_interface_list)
11441 	(network_interface_info): New functions.  (Bug#15610)
11442 	(GetAdaptersInfo_Proc): New typedef.
11443 	(get_adapters_info): New wrapper function.
11444 	(globals_of_w32): Initialize g_b_init_get_adapters_info.
11445 
11446 	* process.h (network_interface_list, network_interface_info):
11447 	New prototypes.
11448 
11449 	* process.c (conv_sockaddr_to_lisp): Now externally-visible.
11450 	(Fnetwork_interface_list, Fnetwork_interface_info): Define for
11451 	all systems.  Return non-nil for systems that HAVE_NET_IF_H and
11452 	for WINDOWSNT.  Doc fix.
11453 	(syms_of_process): Defsubr Snetwork_interface_list and
11454 	Snetwork_interface_info unconditionally.
11455 
11456 	* menu.c (have_boxes): Fix redundant simulation of radio buttons
11457 	in NS GUI sessions.  (Bug#15629)
11458 
11459 2013-10-16  Dmitry Antipov  <dmantipov@yandex.ru>
11460 
11461 	* fns.c (Fstring_as_unibyte): Use xlispstrdup.
11462 
11463 2013-10-15  Paul Eggert  <eggert@cs.ucla.edu>
11464 
11465 	* print.c (print_object): Print " ..." when truncating bool vectors.
11466 
11467 2013-10-15  Eli Zaretskii  <eliz@gnu.org>
11468 
11469 	* w32inevt.c (do_mouse_event): Support mouse wheel and all the 5
11470 	standard mouse buttons.
11471 
11472 	* termhooks.h (struct input_event): Remove incorrect commentary.
11473 
11474 2013-10-15  Paul Eggert  <eggert@cs.ucla.edu>
11475 
11476 	Disallow bool vector operations on mixed-length operands.
11477 	The old behavior left garbage in the result vector sometimes,
11478 	and didn't seem to be useful.
11479 	* data.c (Qwrong_length_argument): New static var.
11480 	(wrong_length_argument): New function.
11481 	(bool_vector_binop_driver): Check that args agree in length.
11482 
11483 	* keyboard.c, keyboard.h (all_kboards): Now static.
11484 
11485 2013-10-15  Xue Fuqiao  <xfq.free@gmail.com>
11486 
11487 	* buffer.c (syms_of_buffer) <buffer-invisibility-spec>: Add usage
11488 	note from the lispref.
11489 
11490 2013-10-15  Dmitry Antipov  <dmantipov@yandex.ru>
11491 
11492 	* nsterm.h (struct ns_display_info): Remove set-but-unused
11493 	member image_cache (image caches are per-terminal anyway).
11494 	(FRAME_X_IMAGE_CACHE): Remove.
11495 	* nsterm.m (ns_initialize_display_info): Adjust user.
11496 
11497 2013-10-14  Eli Zaretskii  <eliz@gnu.org>
11498 
11499 	* w32proc.c: Include mingw_time.h.
11500 
11501 	* w32.c: Include mingw_time.h.
11502 
11503 	Implement scrolling of TTY menus when the screen is too short.
11504 
11505 	* term.c (tty_menu_display): Accept an additional argument, the
11506 	menu item from which to start displaying the menu.  Account for
11507 	the value of Y when limiting the menu to the number of available
11508 	screen lines.
11509 	(mi_result): New enumeration.
11510 	(read_menu_input): Return enumerated value.  When the y coordinate
11511 	hits min_y or max_y, return scroll indication instead of wrapping
11512 	around the menu.
11513 	(tty_menu_activate): Handle the scrolling indications from
11514 	read_menu_input.  Compute the first menu item to display and pass
11515 	it to tty_menu_display.
11516 
11517 2013-10-14  Dmitry Antipov  <dmantipov@yandex.ru>
11518 
11519 	* termhooks.h (FRAME_MUST_WRITE_SPACES, FRAME_LINE_INS_DEL_OK)
11520 	(FRAME_CHAR_INS_DEL_OK, FRAME_SCROLL_REGION_OK)
11521 	(FRAME_SCROLL_REGION_COST, FRAME_MEMORY_BELOW_FRAME):
11522 	Adjust to match the change described below.
11523 	(struct terminal): Move must_write_spaces, line_ins_del_ok,
11524 	char_ins_del_ok, scroll_region_ok, scroll_region_cost and
11525 	memory_below_frame members to...
11526 	* termchar.h (struct tty_display_info): ...here because they're
11527 	relevant only on TTYs.  Prefer unsigned bitfield where appropriate.
11528 	* term.c (init_tty):
11529 	* nsterm.m (ns_create_terminal):
11530 	* w32term.c (w32_create_terminal):
11531 	* xterm.c (x_create_terminal): Adjust users.
11532 	* dispnew.c (line_hash_code, line_draw_cost): Pass frame arg
11533 	to filter out non-TTY frames.  Adjust comment.
11534 	(scrolling): Adjust user.  Prefer eassert for debugging check.
11535 
11536 2013-10-14  Dmitry Antipov  <dmantipov@yandex.ru>
11537 
11538 	* xfaces.c (PT_PER_INCH): Remove unused macro.
11539 	* termhooks.h (struct terminal): Remove set-but-unused
11540 	member fast_clear_end_of_line.
11541 	(FRAME_FAST_CLEAR_END_OF_LINE): Remove.
11542 	* nsterm.m (ns_create_terminal):
11543 	* term.c (init_tty):
11544 	* w32term.c (w32_create_terminal):
11545 	* xterm.c (x_create_terminal): Adjust users.
11546 
11547 2013-10-14  Paul Eggert  <eggert@cs.ucla.edu>
11548 
11549 	* lisp.h (bool_vector_size): New function.
11550 	All uses of XBOOL_VECTOR (x)->size changed to bool_vector_size (x).
11551 	* data.c (bool_vector_spare_mask, bool_vector_binop_driver)
11552 	(Fbool_vector_not, Fbool_vector_count_matches_at):
11553 	Remove uses of 'eassume' that should no longer be needed,
11554 	because they are subsumed by the 'eassume' in bool_vector_size.
11555 
11556 2013-10-12  Eli Zaretskii  <eliz@gnu.org>
11557 
11558 	* image.c (GIFLIB_MAJOR, GIFLIB_MINOR, GIFLIB_RELEASE): Move back
11559 	after inclusion of gif_lib.h, thus fixing compiler warnings caused
11560 	by 2013-10-10T19:15:33Z!eggert@cs.ucla.edu.
11561 
11562 2013-10-11  Eli Zaretskii  <eliz@gnu.org>
11563 
11564 	* xdisp.c (deep_copy_glyph_row): Handle the case that FROM and TO
11565 	have different dimensions.  (Bug#15575)
11566 
11567 	* dispnew.c (fill_up_frame_row_with_spaces): Now has external
11568 	visibility.
11569 
11570 	* dispextern.h (fill_up_frame_row_with_spaces): Add prototype.
11571 
11572 2013-10-11  Dmitry Antipov  <dmantipov@yandex.ru>
11573 
11574 	* term.c (tty_menu_show): Never return with unbalanced
11575 	specpdl.  Use eassert for debugging check.  Adjust style.
11576 
11577 2013-10-11  Eli Zaretskii  <eliz@gnu.org>
11578 
11579 	* term.c (read_menu_input): Make selection of menu items
11580 	cyclical.  Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
11581 	(tty_menu_activate): Fix off-by-one error when computing max_y.
11582 
11583 2013-10-11  Teodor Zlatanov  <tzz@lifelogs.com>
11584 
11585 	* gnutls.c (gnutls_audit_log_function): Add function for GnuTLS
11586 	audit logging (only used with GnuTLS 3.x) and enable it.
11587 
11588 2013-10-11  Dmitry Antipov  <dmantipov@yandex.ru>
11589 
11590 	* dispnew.c (redraw_frame): Remove useless #ifdef because
11591 	FRAME_MSDOS_P is a compile-time zero everywhere except MS-DOS.
11592 	Also, move TTY fflush to...
11593 	* term.c (tty_update_end): ...this function.
11594 
11595 2013-10-11  Eli Zaretskii  <eliz@gnu.org>
11596 
11597 	* xdisp.c (display_tty_menu_item): Make sure we never write beyond
11598 	the end of the frame's glyph matrix.  (Bug#15575)
11599 
11600 	* term.c (tty_menu_display): Don't move cursor while overwriting
11601 	frame's glyphs with menu items.  Limit the number of items
11602 	displayed to what can be shown on the available screen lines,
11603 	excluding the echo area.
11604 	(tty_menu_activate): Limit the Y coordinate allowed by
11605 	read_menu_input to the last screen line used for menu display.
11606 
11607 2013-10-11  Paul Eggert  <eggert@cs.ucla.edu>
11608 
11609 	* lisp.h (eassume): New macro.
11610 	Also, include <verify.h>, for 'assume'.
11611 	* alloc.c (bool_vector_payload_bytes, Fmake_bool_vector)
11612 	(vroundup, vector_nbytes):
11613 	* data.c (bool_vector_spare_mask, bool_vector_binop_driver)
11614 	(Fbool_vector_not, Fbool_vector_count_matches)
11615 	(Fbool_vector_count_matches_at):
11616 	Use eassume, not eassert.
11617 	* casetab.c (set_identity, shuffle):
11618 	* composite.c (composition_gstring_put_cache):
11619 	* dispnew.c (update_frame_1):
11620 	* ftfont.c (ftfont_shape_by_flt):
11621 	* image.c (gif_load):
11622 	* intervals.c (offset_intervals):
11623 	* macfont.m (macfont_shape):
11624 	Remove calls to 'assume' that are no longer needed, because
11625 	--enable-gcc-warnings no longer generates bogus warnings
11626 	when these calls are removed.
11627 
11628 2013-10-11  Dmitry Antipov  <dmantipov@yandex.ru>
11629 
11630 	* xdisp.c (deep_copy_glyph_row): Remove unused locals.
11631 
11632 2013-10-10  Stefan Monnier  <monnier@iro.umontreal.ca>
11633 
11634 	* fileio.c (Fsubstitute_in_file_name): Use substitute-env-in-file-name.
11635 	(Qsubstitute_env_in_file_name): New var.
11636 	(syms_of_fileio): Define it.
11637 
11638 2013-10-10  Eli Zaretskii  <eliz@gnu.org>
11639 
11640 	* xdisp.c (deep_copy_glyph_row): Assert that the 'used' counts of
11641 	FROM and TO are identical.  Copy only the glyphs of TEXT_AREA.
11642 	(Bug#15575)
11643 
11644 	* term.c (save_and_enable_current_matrix): Don't allocate and
11645 	don't save margin areas.
11646 	(restore_desired_matrix): Don't restore margin areas.
11647 	(free_saved_screen): Don't free margin areas.
11648 
11649 2013-10-10  Paul Eggert  <eggert@cs.ucla.edu>
11650 
11651 	* image.c: Pacify --enable-gcc-warnings.
11652 	(GIFLIB_MAJOR, GIFLIB_MINOR, GIFLIB_RELEASE, fn_GifErrorString):
11653 	#define only if used.
11654 
11655 2013-10-10  Eli Zaretskii  <eliz@gnu.org>
11656 
11657 	* image.c (GIFLIB_MAJOR): Define to 4 if undefined.
11658 	(GIFLIB_MINOR, GIFLIB_RELEASE): Define to zero if undefined.
11659 	(GifErrorString) [GIFLIB_MAJOR >= 5]: Define a function pointer.
11660 	(gif_load): For giflib v5.x and later, display the error message
11661 	produced by giflib when its functions fail.
11662 	(syms_of_image) <Qlibgif_version> [HAVE_NTGUI]: New DEFSYM.
11663 	(Bug#15531)
11664 
11665 2013-10-10  Dmitry Antipov  <dmantipov@yandex.ru>
11666 
11667 	* keyboard.c (last_event_timestamp): Remove.  For X selection and
11668 	GTK popup menus, it may be obtained from per-frame X display info.
11669 	(kbd_buffer_store_event_hold, kbd_buffer_get_event)
11670 	(process_special_events): Adjust users.
11671 	* keyboard.h (last_event_timestamp): Remove declaration.
11672 	* xmenu.c (xmenu_show, create_and_show_popup_menu): Lost last arg.
11673 	Use FRAME_DISPLAY_INFO (f)->last_user_time for gtk_menu_popup.
11674 	* menu.h (xmenu_show): Adjust prototype.
11675 	* menu.c (Fx_popup_menu): Adjust user.
11676 	* xselect.c (x_own_selection, x_get_foreign_selection)
11677 	(Fx_disown_selection_internal): Use dpyinfo->last_user_time.
11678 
11679 2013-10-10  Dmitry Antipov  <dmantipov@yandex.ru>
11680 
11681 	* keyboard.c (init_kboard): Now static.  Add arg
11682 	to denote window system.  Adjust comment.
11683 	(init_keyboard): Adjust user.
11684 	(allocate_kboard): New function.
11685 	(syms_of_keyboard):
11686 	* nsterm.m (ns_term_init):
11687 	* term.c (init_tty):
11688 	* w32term.c (w32_create_terminal):
11689 	* xterm.c (x_term_init): Use it.
11690 	* keyboard.h (init_kboard): Remove prototype.
11691 	(allocate_kboard): Add prototype.
11692 
11693 2013-10-10  Barry Fishman  <barry_fishman@acm.org>  (tiny change)
11694 
11695 	* image.c (GIFLIB_MAJOR): Ensure it's defined.
11696 	(DGifOpen, DGifOpenFileName): Handle giflib 5 syntax.  (Bug#15531)
11697 
11698 2013-10-09  Paul Eggert  <eggert@cs.ucla.edu>
11699 
11700 	* fns.c (sxhash_bool_vector): Fix buffer read overrun.
11701 
11702 2013-10-09  Eli Zaretskii  <eliz@gnu.org>
11703 
11704 	* term.c (tty_menu_activate): Flush the output stream after
11705 	showing the cursor, and don't mark the frame garbaged at exit from
11706 	the function.  Fixes redisplay glitches when moving from one menu
11707 	to another.
11708 
11709 2013-10-09  Jan Djärv  <jan.h.d@swipnet.se>
11710 
11711 	* nsfns.m (Fns_convert_utf8_nfd_to_nfc): Check input for valid UTF-8
11712 	or throw error (Bug#15570).
11713 
11714 2013-10-09  Paul Eggert  <eggert@cs.ucla.edu>
11715 
11716 	* intervals.c (temp_set_point_both): Move test into 'eassert',
11717 	for speed.
11718 
11719 	* lisp.h (eassert): Don't use 'assume'.
11720 	Sometimes 'assume' wins in performance, and sometimes it loses,
11721 	so it shouldn't be used all the time.  Perhaps we need two
11722 	flavors of 'eassert', one for where 'assume' is far more likely
11723 	to help or to hurt; but that can be done later.
11724 	Reported by Dmitry Antipov in
11725 	<https://lists.gnu.org/r/emacs-devel/2013-10/msg00276.html>.
11726 	Also, don't include <verify.h>; no longer needed.
11727 
11728 2013-10-09  Glenn Morris  <rgm@gnu.org>
11729 
11730 	* eval.c (Fcond): Doc tweak.
11731 
11732 2013-10-09  Eli Zaretskii  <eliz@gnu.org>
11733 
11734 	* xfaces.c (x_free_gc) [HAVE_X_WINDOWS, HAVE_NTGUI]: Don't pass
11735 	expressions with side effects to eassert.  (Bug#15565)
11736 
11737 2013-10-09  Stefan Monnier  <monnier@iro.umontreal.ca>
11738 
11739 	* fns.c (hashfn_user_defined): Allow hash functions to return any
11740 	Lisp_Object.
11741 
11742 2013-10-08  Paul Eggert  <eggert@cs.ucla.edu>
11743 
11744 	Fix minor problems found by static checking.
11745 	* dispnew.c (save_current_matrix): Omit unnecessary casts.
11746 	* dispnew.c (update_frame_with_menu): Mark debug local as used.
11747 	* keyboard.c, keyboard.h (Qmouse_movement): Now static.
11748 	* keyboard.c (read_menu_command): Remove unused local.
11749 	* lisp.h (read_menu_command): New decl.
11750 	* menu.c, menu.h (menu_item_width): Arg is now unsigned char *, for
11751 	benefit of STRING_CHAR_AND_LENGTH.  All uses changed.
11752 	Return ptrdiff_t, not int.
11753 	* term.c (tty_menu_struct): 'allocated' member is now ptrdiff_t,
11754 	not int, for benefit of xpalloc.
11755 	(tty_menu_create, tty_menu_make_room): Simplify by using xzalloc
11756 	and xpalloc.
11757 	(have_menus_p): Remove; unused.
11758 	(tty_menu_add_pane, tty_menu_add_selection): Change signedness of
11759 	local char * pointer to pacify STRING_CHAR_AND_LENGTH.
11760 	(tty_menu_add_selection, tty_menu_locate, tty_meny_destroy):
11761 	Now static.
11762 	(save_and_enable_current_matrix): Omit unnecessary casts.
11763 	(read_menu_input): Omit local extern decl (now in lisp.h).
11764 	Don't access uninitialized storage if mouse_get_xy fails.
11765 	(tty_menu_activate): Mark local as initialized, for lint.
11766 	(tty_menu_activate, tty_meny_show): Remove unused locals.
11767 
11768 2013-10-08  Eli Zaretskii  <eliz@gnu.org>
11769 
11770 	Support menus on text-mode terminals.
11771 	* xterm.h (xw_popup_dialog): Add prototype.
11772 
11773 	* xmenu.c (Fx_popup_dialog): Function moved to menu.c.
11774 	(xmenu_show): Block input here, instead in Fx_popup_menu.
11775 	(xw_popup_dialog): New function, with X-specific bits of popup
11776 	dialogs.
11777 
11778 	* xdisp.c (deep_copy_glyph_row, display_tty_menu_item):
11779 	New functions.
11780 
11781 	* window.c (Fset_window_configuration): Use run-time tests of the
11782 	frame type instead of compile-time conditionals, when menu-bar
11783 	lines are considered.
11784 
11785 	* w32term.h (w32con_hide_cursor, w32con_show_cursor)
11786 	(w32_popup_dialog): New prototypes.
11787 
11788 	* w32menu.c (Fx_popup_dialog): Function deleted.
11789 	(w32_popup_dialog): New function, with w32 specific bits of popup
11790 	dialogs.  Block input here.
11791 
11792 	* w32inevt.c (w32_console_read_socket): Minor change to add
11793 	debugging TTY events.
11794 
11795 	* w32fns.c (show_hourglass): If returning early because the frame
11796 	is not a GUI frame, unblock input.
11797 
11798 	* w32console.c (w32con_hide_cursor, w32con_show_cursor, cursorX)
11799 	(cursorY): New functions.
11800 
11801 	* termhooks.h (cursorX, cursorY): Prototypes of functions on
11802 	WINDOWSNT, macros that call curX and curY elsewhere.
11803 
11804 	* termchar.h (struct tty_display_info) <showing_menu>: New flag.
11805 
11806 	* term.c (tty_hide_cursor, tty_show_cursor) [WINDOWSNT]: Call w32
11807 	specific function to hide and show cursor on a text-mode terminal.
11808 	(tty_menu_struct, struct tty_menu_state): New structures.
11809 	(tty_menu_create, tty_menu_make_room, tty_menu_search_pane)
11810 	(tty_menu_calc_size, mouse_get_xy, tty_menu_display)
11811 	(have_menus_p, tty_menu_add_pane, tty_menu_add_selection)
11812 	(tty_menu_locate, save_and_enable_current_matrix)
11813 	(restore_desired_matrix, screen_update, read_menu_input)
11814 	(tty_menu_activate, tty_menu_destroy, tty_menu_help_callback)
11815 	(tty_pop_down_menu, tty_menu_last_menubar_item)
11816 	(tty_menu_new_item_coords, tty_menu_show): New functions.
11817 	(syms_of_term): New DEFSYMs for tty-menu-* symbols.
11818 
11819 	* nsterm.h (ns_popup_dialog): Adjust prototype.
11820 
11821 	* nsmenu.m (ns_menu_show): Block and unblock input here, instead
11822 	of in x-popup-menu.
11823 	(ns_popup_dialog): Adapt order of arguments to the other
11824 	*_menu_show implementations.
11825 	(Fx_popup_dialog): Function deleted.
11826 
11827 	* msdos.c (x_set_menu_bar_lines): Delete unused function.
11828 
11829 	* menu.h (tty_menu_show, menu_item_width): Provide prototypes.
11830 
11831 	* menu.c (have_boxes): New function.
11832 	(single_keymap_panes): Use it instead of a compile-time
11833 	conditional.
11834 	(single_menu_item): Use run-time tests of the frame type instead
11835 	of compile-time conditionals.
11836 	(encode_menu_string): New function.
11837 	(list_of_items, list_of_panes): Use it instead of ENCODE_STRING
11838 	the macro, since different types of frame need different encoding
11839 	of menu items.
11840 	(digest_single_submenu): Use run-time tests of frame type instead
11841 	of, or in addition to, compile-time conditionals.
11842 	(menu_item_width, Fmenu_bar_menu_at_x_y): New functions.
11843 	(Fx_popup_menu): Detect when the function is called from keyboard
11844 	on a TTY.  Don't barf when invoked on a text-mode frame.
11845 	Check frame type at run time, instead of compile-time conditionals for
11846 	invoking terminal-specific menu-show functions.
11847 	Call tty_menu_show on text-mode frames.
11848 	(Fx_popup_dialog): Move here from xmenu.c.  Test frame types at
11849 	run time to determine which alternative to invoke; support dialogs
11850 	on TTYs.
11851 
11852 	* keyboard.h <Qmouse_movement>: Declare.
11853 
11854 	* keyboard.c <Qmouse_movement>: Now extern.
11855 	<Qecho_keystrokes>: New static variable.
11856 	(read_key_sequence): Accept an additional argument, a flag to
11857 	prevent redisplay during reading of the key sequence.  All callers
11858 	changed.
11859 	(read_menu_command): New function.
11860 	(read_char): When COMMANDFLAG is -2, do not redisplay and do not
11861 	autosave.
11862 	(toolkit_menubar_in_use): New function.
11863 	(make_lispy_event): Use it instead of a compile-time test.
11864 
11865 	* fns.c (Fyes_or_no_p) [HAVE_MENUS]: Don't condition on
11866 	window-system being available.
11867 
11868 	* editfns.c (Fmessage_box) [HAVE_MENUS]: Don't condition the call
11869 	to x-popup-dialog on the frame type, they all now support popup
11870 	dialogs.
11871 
11872 	* dispnew.c (save_current_matrix): Save the margin areas.
11873 	(restore_current_matrix): Restore margin areas.
11874 	(update_frame_with_menu): New function.
11875 
11876 	* dispextern.h (display_tty_menu_item, update_frame_with_menu):
11877 	Add prototypes.
11878 
11879 	* alloc.c (make_save_ptr): Now compiled unconditionally.
11880 
11881 2013-10-08  Dmitry Antipov  <dmantipov@yandex.ru>
11882 
11883 	* dispnew.c (set_window_update_flags): Add buffer arg.  Adjust comment.
11884 	(redraw_frame, update_frame): Adjust users.
11885 	* dispextern.h (set_window_update_flags): Adjust prototype.
11886 	* xdisp.c (redisplay_internal): When updating all frames with zero
11887 	windows_or_buffers_changed, assume that only the windows that shows
11888 	current buffer should be really updated.
11889 
11890 2013-10-08  Dmitry Antipov  <dmantipov@yandex.ru>
11891 
11892 	Do not allocate huge temporary memory areas and objects while encoding
11893 	for file I/O, thus reducing an enormous memory usage for large buffers.
11894 	See https://lists.gnu.org/r/emacs-devel/2013-10/msg00180.html.
11895 	* coding.h (struct coding_system): New member raw_destination.
11896 	* coding.c (setup_coding_system): Initialize it to zero.
11897 	(encode_coding_object): If raw_destination is set, do not create
11898 	dst_object.  Add comment.
11899 	* fileio.c (toplevel): New constant E_WRITE_MAX.
11900 	(e_write): Do not encode more than E_WRITE_MAX characters per one loop
11901 	iteration.  Use raw_destination if E_WRITE_MAX characters is encoded.
11902 
11903 2013-10-08  Jan Djärv  <jan.h.d@swipnet.se>
11904 
11905 	* nsterm.m (windowDidExitFullScreen:)
11906 	(toggleFullScreen:): Change NS_IMPL_COCOA to HAVE_NATIVE_FS.
11907 
11908 2013-10-08  Paul Eggert  <eggert@cs.ucla.edu>
11909 
11910 	Fix race where emacs aborts when sent SIGTERM (Bug#15534).
11911 	* keyboard.c (unblock_input_to): Don't process pending signals
11912 	if a fatal error is in progress.
11913 
11914 	* lisp.h (bits_word, BITS_WORD_MAX): New type and macro.
11915 	All uses of 'size_t' and 'SIZE_MAX' changed to use them, when
11916 	they're talking about words in Lisp bool vectors.
11917 	(BITS_PER_BITS_WORD): Rename from BITS_PER_SIZE_T.  All uses changed.
11918 	* data.c (popcount_bits_word): Rename from popcount_size_t.
11919 	(bits_word_to_host_endian): Rename from size_t_to_host_endian.
11920 	All uses changed.
11921 
11922 2013-10-07  Paul Eggert  <eggert@cs.ucla.edu>
11923 
11924 	Improve support for popcount and counting trailing zeros (Bug#15550).
11925 	* data.c: Include <count-one-bits.h>, <count-trailing-zeros.h>.
11926 	(USE_MSC_POPCOUNT, POPCOUNT_STATIC_INLINE)
11927 	(NEED_GENERIC_POPCOUNT, popcount_size_t_generic)
11928 	(popcount_size_t_msc, popcount_size_t_gcc):
11929 	Remove; now done by Gnulib.
11930 	(popcount_size_t): Now a macro that defers to Gnulib.
11931 	(count_trailing_zero_bits): Return int, for consistency with
11932 	Gnulib and because Emacs prefers signed to unsigned int.
11933 	Don't assume that size_t is either unsigned int or unsigned long
11934 	or unsigned long long.
11935 	(size_t_to_host_endian): Do not assume that size_t is either
11936 	exactly 32 or exactly 64 bits wide.
11937 	* lisp.h (BITS_PER_SIZE_T): Define consistently with BITS_PER_LONG
11938 	etc., so that it's now an enum constant, not a macro.
11939 	No need to assume that it's either 32 or 64.
11940 
11941 2013-10-07  Jan Djärv  <jan.h.d@swipnet.se>
11942 
11943 	* nsterm.m (windowDidEnterFullScreen:): setPresentationOptions only
11944 	on >= 10.7.
11945 
11946 2013-10-07  Dmitry Antipov  <dmantipov@yandex.ru>
11947 
11948 	* insdel.c (insert_from_gap): Prefer ptrdiff_t to int where needed.
11949 	* xdisp.c (handle_fontified_prop): Likewise.  Use bool for boolean.
11950 
11951 2013-10-07  Paul Eggert  <eggert@cs.ucla.edu>
11952 
11953 	emacs_read and emacs_write now use void *, not char *.
11954 	* alloc.c (valid_pointer_p) [!WINDOWSNT]: Remove now-unnecessary cast.
11955 	* sysdep.c (emacs_read, emacs_write, emacs_write_sig):
11956 	Buffer arg is now void *, not char *.  This matches plain
11957 	'read' and 'write' better, and avoids a constraint violation
11958 	on Solaris 9 with Oracle Studio.
11959 
11960 2013-10-07  Dmitry Antipov  <dmantipov@yandex.ru>
11961 
11962 	* alloc.c (Fmake_string): For ASCII char initializer, prefer
11963 	memset to explicit loop.  Otherwise copy largest possible chunk
11964 	from initialized to uninitialized part, thus allowing the longer
11965 	memcpy runs and reducing the number of loop iterations.
11966 
11967 2013-10-06  Jan Djärv  <jan.h.d@swipnet.se>
11968 
11969 	* nsterm.m (ns_update_begin): If native fullscreen and no toolbar,
11970 	hide toolbar (Bug#15388).
11971 	(windowDidEnterFullScreen:): If presentation options are zero,
11972 	set them here (Bug#15388).
11973 	(ns_update_auto_hide_menu_bar): Remove runtime check.
11974 	Don't auto hide dock unless menubar is also auto hidden.
11975 
11976 2013-10-05  Xue Fuqiao  <xfq.free@gmail.com>
11977 
11978 	* editfns.c (message): Mention batch mode in doc string.
11979 
11980 2013-10-05  Jan Djärv  <jan.h.d@swipnet.se>
11981 
11982 	* nsterm.m (check_native_fs): Remove erroneous comment.
11983 
11984 2013-10-04  Dmitry Antipov  <dmantipov@yandex.ru>
11985 
11986 	* xdisp.c (redisplay_internal): Simplify because scan_for_column now
11987 	uses find_newline instead of scan_newline and so doesn't move point.
11988 
11989 2013-10-04  Paul Eggert  <eggert@cs.ucla.edu>
11990 
11991 	Use hardware support for byteswapping on glibc x86 etc.
11992 	On Fedora 19 x86-64, the new bswap_64 needs 1 instruction,
11993 	whereas the old swap64 needed 30.
11994 	* fringe.c (init_fringe_bitmap) [WORDS_BIGENDIAN]:
11995 	* sound.c (le2hl, le2hs, be2hl) [!WINDOWSNT]:
11996 	Use byteswap.h's macros to swap bytes.
11997 	* lisp.h (swap16, swap32, swap64): Remove.
11998 	All uses replaced by bswap_16, bswap_32, bswap_64.
11999 
12000 	* bytecode.c (exec_byte_code): Use some more volatile variables
12001 	to work around local variables getting clobbered by longjmp.
12002 	Port to pre-C99, which doesn't allow decls after stmts.
12003 
12004 2013-10-03  Paul Eggert  <eggert@cs.ucla.edu>
12005 
12006 	* lisp.h (eassert): Assume that COND is true when optimizing.
12007 	In other words, take on the behavior of eassert_and_assume.
12008 	This makes Emacs 0.2% smaller on my platform (Fedora 19, x86-64).
12009 	(eassert_and_assume): Remove.  All uses replaced by eassert.
12010 
12011 	* xdisp.c (Qglyphless_char): Now static.
12012 
12013 	Adjust to merge from gnulib.
12014 	* conf_post.h (__has_builtin, assume): Remove; gnulib now does these.
12015 	* lisp.h: Include <verify.h>, for 'assume'.
12016 
12017 	* eval.c (clobbered_eassert): New macro.
12018 	(internal_catch, internal_condition_case)
12019 	(internal_condition_case_1, internal_condition_case_2)
12020 	(internal_condition_case_n): Use it instead of eassert
12021 	when the argument contains locals clobbered by longjmp.
12022 	Don't use clobbered locals outside of clobbered_eassert.
12023 	(internal_lisp_condition_case): Use a volatile variable
12024 	to work around a local variable's getting clobbered.
12025 
12026 2013-10-03  Stefan Monnier  <monnier@iro.umontreal.ca>
12027 
12028 	* lisp.h (struct handler): Merge struct handler and struct catchtag.
12029 	(PUSH_HANDLER): New macro.
12030 	(catchlist): Remove.
12031 	(handlerlist): Always declare.
12032 
12033 	* eval.c (catchlist): Remove (merge with handlerlist).
12034 	(handlerlist, lisp_eval_depth): Not static any more.
12035 	(internal_catch, internal_condition_case, internal_condition_case_1)
12036 	(internal_condition_case_2, internal_condition_case_n):
12037 	Use PUSH_HANDLER.
12038 	(unwind_to_catch, Fthrow, Fsignal): Adjust to merged
12039 	handlerlist/catchlist.
12040 	(internal_lisp_condition_case): Use PUSH_HANDLER.  Adjust to new
12041 	handlerlist which can only handle a single condition-case handler at
12042 	a time.
12043 	(find_handler_clause): Simplify since we only a single branch here
12044 	any more.
12045 
12046 	* bytecode.c (BYTE_CODES): Add Bpushcatch, Bpushconditioncase
12047 	and Bpophandler.
12048 	(bcall0): New function.
12049 	(exec_byte_code): Add corresponding cases.  Improve error message when
12050 	encountering an invalid byte-code.  Let Bunwind_protect accept
12051 	a function (rather than a list of expressions) as argument.
12052 
12053 	* alloc.c (Fgarbage_collect): Merge scans of handlerlist and catchlist,
12054 	and make them unconditional now that they're heap-allocated.
12055 
12056 2013-10-03  Stefan Monnier  <monnier@iro.umontreal.ca>
12057 
12058 	* charset.c (Fdecode_char, Fencode_char): Remove description of
12059 	`restriction' arg. now that it's hidden by advertised-calling-convention.
12060