12015-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
72015-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
162015-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
212015-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
262015-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
322015-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
372015-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
422015-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
472015-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
752015-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
1162015-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
1222015-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
1292015-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
1342015-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
1402015-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
1482015-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
1532015-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
1592015-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
1642015-03-18  Stefan Monnier  <monnier@iro.umontreal.ca>
165
166	* alloc.c (purecopy): Handle hash-tables.
167
1682015-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
1732015-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
1822015-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
1872015-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
1932015-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
2052015-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
2142015-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
2202015-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
2292015-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
2342015-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
2422015-03-03  Eli Zaretskii  <eliz@gnu.org>
243
244	* w32fns.c (Fw32__menu_bar_in_use): New internal function.
245	(Bug#19925)
246
2472015-03-03  Glenn Morris  <rgm@gnu.org>
248
249	* fileio.c (Fmake_temp_name): Doc tweaks.  (Bug#19858)
250
2512015-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
2562015-03-03  Eli Zaretskii  <eliz@gnu.org>
257
258	* buffer.c (syms_of_buffer): Doc fix.  (Bug#19841)
259
2602015-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
2662015-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
2732015-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
2842015-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
2972015-03-03  Eli Zaretskii  <eliz@gnu.org>
298
299	* dispextern.h (FACE_FOR_CHAR): Fix the commentary.
300
3012015-03-03  Daniel Colascione  <dancol@dancol.org>
302
303	* alloc.c (syms_of_alloc): Rename `gc-precise-p' to `gc-precise'.
304
3052015-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
3102015-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
3172015-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
3252015-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
3432015-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
3492015-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
3542015-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
3672015-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
3792015-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
3992015-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
4062015-02-26  Eli Zaretskii  <eliz@gnu.org>
407
408	* dispextern.h (FACE_FOR_CHAR): Fix the commentary.
409
4102015-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
4152015-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
4202015-02-26  Paul Eggert  <eggert@cs.ucla.edu>
421
422	* xfns.c (x_real_pos_and_offsets): Fix pointer signedness.
423
4242015-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
4462015-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
4562015-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
4612015-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
4672015-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
4742015-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
5032015-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
5092015-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
5182015-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
5242015-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
5302015-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
5352015-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
5412015-02-16  Kelly Dean  <kelly@prtime.org>
542
543	* src/keyboard.c (timer_check_2): Fix incorrect comment.
544
5452015-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
5502015-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
5552015-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
5622015-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
5742015-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
6062015-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
6182015-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
6252015-02-09  Dima Kogan  <dima@secretsauce.net>
626
627	* font.c (font_score): Remove unused variable assignment.
628
6292015-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
6362015-02-09  Stefan Monnier  <monnier@iro.umontreal.ca>
637
638	* keyboard.c (syms_of_keyboard): Use non-nil default value.
639
6402015-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
6602015-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
6692015-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
6752015-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
6802015-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
7552015-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
7642015-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
7692015-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
7742015-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
7822015-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
7882015-02-01  Martin Rudalics  <rudalics@gmx.at>
789
790	* xdisp.c (Fwindow_text_pixel_size): Add optional argument BUFFER.
791
7922015-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
8012015-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
8072015-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
8172015-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
8242015-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
8332015-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
8392015-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
8492015-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
8622015-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
8702015-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
8902015-01-28  Jan Djärv  <jan.h.d@swipnet.se>
891
892	* nsterm.m (drawRect:): Add block/unblock_input (Bug#19660).
893
8942015-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
9002015-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
9282015-01-28  Stefan Monnier  <monnier@iro.umontreal.ca>
929
930	* lisp.mk (lisp): Add cl-preloaded.
931
9322015-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
9752015-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
9852015-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
10112015-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
10892015-01-22  Eli Zaretskii  <eliz@gnu.org>
1090
1091	* xdisp.c (init_iterator): Restore a comment lost in transition.
1092
10932015-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
11202015-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
11352015-01-20  Jan Djärv  <jan.h.d@swipnet.se>
1136
1137	* nsterm.m (EV_TRAILER2): Set Vinhibit_quit to Qt (Bug#19531).
1138
11392015-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
11472015-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
11742015-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
11842015-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
12102015-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
12412015-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
12522015-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
12592015-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
12662015-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
12712015-01-14  Martin Rudalics  <rudalics@gmx.at>
1272
1273	* xmenu.c (update_frame_menubar): Remove garbaged code.
1274
12752015-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
12812015-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
13022015-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
13242015-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
13422015-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
13812015-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
13862015-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
14202015-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
14292015-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
14362015-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
14822015-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
14892015-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
14952015-01-11  Dmitry Antipov  <dmantipov@yandex.ru>
1496
1497	* coding.c (Fcoding_system_plist): Use common style for docstring.
1498
14992015-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
15062015-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
15352015-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
15562015-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
15742015-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
16072015-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
16352015-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
16412015-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
16472015-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
16532015-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
17432015-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
17632015-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
17712015-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
17782015-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
17832015-01-01  Eli Zaretskii  <eliz@gnu.org>
1784
1785	* w32proc.c (Fw32_get_codepage_charset): Doc fix.  (Bug#19458)
1786
17872014-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
17962014-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
18012014-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
18192014-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
18252014-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
18562014-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
18642014-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
18772014-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
18862014-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
18912014-12-27  Eli Zaretskii  <eliz@gnu.org>
1892
1893	* window.c (Fwindow_body_width): Doc fix.  (Bug#19395)
1894
18952014-12-27  Stefan Monnier  <monnier@iro.umontreal.ca>
1896
1897	* buffer.c (syms_of_buffer) <Vafter_change_functions>: fix docstring.
1898
18992014-12-27  Eli Zaretskii  <eliz@gnu.org>
1900
1901	* gnutls.c (gnutls_init): Fix deprecation warning from GCC.
1902
19032014-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
19272014-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
19372014-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
19462014-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
19642014-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
19692014-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
19742014-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
20212014-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
20412014-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
20662014-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
20722014-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
20792014-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
20852014-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
20912014-12-17  Stefan Monnier  <monnier@iro.umontreal.ca>
2092
2093	* keyboard.c (swallow_events): Don't redisplay if there's input pending.
2094
20952014-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
21002014-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
21072014-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
21212014-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
21272014-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
21342014-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
21422014-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
21552014-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
21682014-12-14  Paul Eggert  <eggert@cs.ucla.edu>
2169
2170	* regex.c (analyze_first): Rename from analyze_first.
2171
21722014-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
21772014-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
21832014-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
21942014-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
22002014-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
22072014-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
22132014-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
22422014-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
22562014-12-09  Andy Moreton  <andrewjmoreton@gmail.com>  (tiny change)
2257
2258	* gnutls.c (gnutls_protocol_get_name): Fix a copy/paste typo.
2259
22602014-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
22652014-12-08  Stefan Monnier  <monnier@iro.umontreal.ca>
2266
2267	* process.c: Whitespace and line-break nitpicks.
2268
22692014-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
22842014-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
22892014-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
22942014-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
23062014-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
23242014-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
23292014-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
23362014-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
23452014-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
23502014-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
23682014-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
23772014-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
23842014-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
23892014-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
23952014-11-27  Oscar Fuentes  <ofv@wanadoo.es>
2396
2397	* w32.c, w32heap.c, w32term.c:
2398	Use MINGW_W64 instead of _W64.
2399
24002014-11-27  Stefan Monnier  <monnier@iro.umontreal.ca>
2401
2402	* frame.c (Fhandle_switch_frame): Deactivate shift-region (bug#19003).
2403
24042014-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
24092014-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
24132014-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
24192014-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
24262014-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
24342014-11-24  Lars Magne Ingebrigtsen  <larsi@gnus.org>
2435
2436	* gnutls.c: Fix compilation warnings given fix --enable-gcc-warnings.
2437
24382014-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
24452014-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
24612014-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
24682014-11-22  Glenn Morris  <rgm@gnu.org>
2469
2470	* Makefile.in (emacs.res): Add dependency on icons/hand.cur.  Use $<.
2471
24722014-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
24842014-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
24912014-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
25192014-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
25382014-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
25442014-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
25512014-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
25572014-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
25632014-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
25682014-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
25722014-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
25782014-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
25852014-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
25902014-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
25992014-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
26042014-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
26092014-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
26172014-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
26242014-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
26292014-11-08  Alan Mackenzie  <acm@muc.de>
2630
2631	* syntax.c (back_comment): Fix off-by-one error (bug#18022).
2632
26332014-11-08  Dima Kogan  <dima@secretsauce.net>
2634
2635	* xgselect.c (xg_select): Use g_main_context_acquire (bug#18861).
2636
26372014-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
26422014-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
26622014-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
26672014-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
26722014-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
26812014-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
27372014-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
27432014-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
27472014-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
27612014-11-02  Andreas Schwab  <schwab@linux-m68k.org>
2762
2763	* process.c (catch_child_signal): Fix incorrect assertion.
2764
27652014-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
27982014-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
28052014-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
28172014-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
28222014-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
28292014-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
28362014-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
28412014-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
28472014-10-28  Ulf Jasper  <ulf.jasper@web.de>
2848
2849	* xml.c (parse_region): Do not forget the first document child.
2850
28512014-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
28652014-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
28702014-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
28762014-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
28832014-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
28892014-10-23  Paul Eggert  <eggert@cs.ucla.edu>
2890
2891	* Makefile.in (ACLOCAL_INPUTS): Omit unnecessary use of 'wildcard'.
2892
28932014-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
29142014-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
29322014-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
29392014-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
29442014-10-20  Glenn Morris  <rgm@gnu.org>
2945
2946	* Merge in all changes up to 24.4 release.
2947
29482014-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
29662014-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
29752014-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
30082014-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
30412014-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
30482014-10-16  Eli Zaretskii  <eliz@gnu.org>
3049
3050	* bidi.c (bidi_find_bracket_pairs): Avoid a loop that does nothing
3051	useful.
3052
30532014-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
30602014-10-15  Stefan Monnier  <monnier@iro.umontreal.ca>
3061
3062	* lisp.mk (lisp): Add emacs-lisp/eldoc.elc.
3063
30642014-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
31302014-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
31392014-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
31722014-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
31772014-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
31822014-10-12  Stefan Monnier  <monnier@iro.umontreal.ca>
3183
3184	* frame.c (Fmouse_pixel_position): Call Vmouse_position_function
3185	(bug#18638).
3186
31872014-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
31942014-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
32422014-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
32802014-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
32892014-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
33002014-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
33122014-10-07  Glenn Morris  <rgm@gnu.org>
3313
3314	* Makefile.in ($(srcdir)/macuvs.h)
3315	($(lispsource)/international/charprop.el): Add explicit FORCE.
3316
33172014-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
33232014-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
33282014-10-06  Stefan Monnier  <monnier@iro.umontreal.ca>
3329
3330	* lisp.mk (lisp): Remove w32-common-fns.elc.
3331
33322014-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
33392014-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
33602014-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
33652014-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
33712014-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
33782014-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
33832014-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
33972014-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
34082014-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
34132014-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
34192014-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
34272014-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
34342014-10-01  Stefan Monnier  <monnier@iro.umontreal.ca>
3435
3436	* xselect.c (selection-converter-alist): Fix docstring.
3437
34382014-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
34442014-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
34492014-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
34672014-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
34812014-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
34942014-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
35072014-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
35572014-09-29  Eli Zaretskii  <eliz@gnu.org>
3558
3559	* msdos.c (internal_terminal_init): Bump version to 25.
3560
35612014-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
35862014-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
35912014-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
35992014-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
36062014-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
36122014-09-26  Ken Brown  <kbrown@cornell.edu>
3613
3614	* w32term.h (ALIGN_STACK): Fix the cpp condition.
3615
36162014-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
36382014-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
36492014-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
36992014-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
37212014-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
37342014-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
37622014-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
37732014-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
37822014-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
37992014-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
38132014-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
38192014-09-22  David Caldwell <david@porkrind.org>  (tiny change)
3820
3821	* unexmacosx.c (dump_it): Improve error message.
3822
38232014-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
38282014-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
38362014-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
38502014-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
38672014-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
38812014-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
38872014-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
38962014-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
39082014-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
39252014-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
39332014-09-17  Samuel Bronson  <naesten@gmail.com>
3934
3935	* unexmacosx.c (copy_data_segment): Port to GCC 4.6+ (Bug#9927).
3936
39372014-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
39452014-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
39512014-09-16  Daniel Colascione  <dancol@dancol.org>
3952
3953	* fns.c (sxhash): For symbols, use address as hash code.
3954
39552014-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
39782014-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
39982014-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
40322014-09-15  Daniel Colascione  <dancol@dancol.org>
4033
4034	* fns.c (Fsort): Tweak sort docstring.
4035
40362014-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
40552014-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
40602014-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
40662014-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
40732014-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
40782014-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
40862014-09-12  Detlev Zundel  <dzu@member.fsf.org>
4087
4088	* buffer.c (syms_of_buffer): DEFSYM Qchoice (Bug#18337).
4089
40902014-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
41102014-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
41252014-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
41322014-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
41422014-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
41472014-09-10  Eli Zaretskii  <eliz@gnu.org>
4148
4149	* w32.c (sys_write): Use SAFE_NALLOCA for the NL -> CRLF
4150	translation buffer.
4151
41522014-09-10  Paul Eggert  <eggert@cs.ucla.edu>
4153
4154	* xterm.c (handle_one_xevent): Add braces to pacify gcc -Wall.
4155
41562014-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
41612014-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
41982014-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
42262014-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
42362014-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
42572014-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
42622014-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
42692014-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
43732014-09-06  Eli Zaretskii  <eliz@gnu.org>
4374
4375	* Makefile.in (EMACS_HEAPSIZE): Remove, no longer used.  (Bug#18416)
4376
43772014-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
43842014-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
43912014-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
44012014-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
44082014-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
44132014-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
44192014-09-03  Ken Brown  <kbrown@cornell.edu>
4420
4421	* conf_post.h (strnicmp) [CYGWIN && HAVE_NTGUI]: Define.  (Bug#18366)
4422
44232014-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
44312014-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
44482014-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
44612014-09-01  Eli Zaretskii  <eliz@gnu.org>
4462
4463	* w32proc.c (w32_compare_strings): Support "C" and "POSIX"
4464	locales.
4465
44662014-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
44882014-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
44972014-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
45032014-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
45232014-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
45352014-08-29  Michael Albinus  <michael.albinus@gmx.de>
4536
4537	* sysdep.c (str_collate) [__STDC_ISO_10646__]: Move up setting errno.
4538
45392014-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
45462014-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
45602014-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
45712014-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
45872014-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
46312014-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
46452014-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
46622014-08-28  Paul Eggert  <eggert@cs.ucla.edu>
4663
4664	* sysdep.c (LC_COLLATE, LC_COLLATE_MASK): Give individual defaults
4665	(Bug#18051).
4666
46672014-08-27  Eli Zaretskii  <eliz@gnu.org>
4668
4669	* syntax.c (scan_lists): Don't examine positions before BEGV.
4670	(Bug#18339)
4671
46722014-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
46842014-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
46902014-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
47032014-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
47222014-08-25  Ken Brown  <kbrown@cornell.edu>
4723
4724	* emacs.c (main): Remove use of obsolete macro
4725	G_SLICE_ALWAYS_MALLOC.
4726
47272014-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
47432014-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
47552014-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
47672014-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
47732014-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
47802014-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
47902014-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
47962014-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
48012014-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
48132014-08-16  Paul Eggert  <eggert@cs.ucla.edu>
4814
4815	* xdisp.c (set_horizontal_scroll_bar): Don't use uninitialized local.
4816
48172014-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
48242014-08-15  Ken Brown  <kbrown@cornell.edu>
4825
4826	* gmalloc.c (_malloc_mutex, _aligned_blocks_mutex) [CYGWIN]: Use
4827	ERRORCHECK mutexes.  (Bug#18222)
4828
48292014-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
48352014-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
48402014-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
48492014-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
48592014-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
48642014-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
48702014-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
48762014-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
49082014-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
49162014-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
49242014-08-07  Paul Eggert  <eggert@cs.ucla.edu>
4925
4926	* xterm.c (x_delete_terminal): Plug file descriptor leak (Bug#17691).
4927
49282014-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
49362014-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
49422014-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
49492014-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
49672014-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
49742014-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
50082014-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
50132014-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
50182014-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
50272014-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
50542014-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
50592014-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
50672014-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
50722014-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
50892014-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
50962014-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
51012014-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
51062014-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
51132014-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
51222014-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
51582014-07-28  Paul Eggert  <eggert@cs.ucla.edu>
5159
5160	* frame.c (x_set_frame_parameters): Don't use uninitialized locals.
5161
51622014-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
51672014-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
55282014-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
55372014-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
55562014-07-25  Paul Eggert  <eggert@cs.ucla.edu>
5557
5558	* dispextern.h, xdisp.c (hourglass_shown_p, hourglass_atimer):
5559	Now static.
5560
55612014-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
55662014-07-25  Eli Zaretskii  <eliz@gnu.org>
5567
5568	* w32term.h (current_popup_menu, menubar_in_use):
5569	Move declarations from w32term.c.
5570
55712014-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
55762014-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
55972014-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
56062014-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
56122014-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
56262014-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
56312014-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
56432014-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
56652014-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
56742014-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
56792014-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
56842014-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
57132014-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
57302014-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
57352014-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
57702014-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
57762014-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
57862014-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
58052014-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
58182014-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
58352014-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
58502014-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
58582014-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
58642014-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
58762014-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
58812014-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
58862014-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
58982014-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
59082014-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
59152014-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
59282014-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
59352014-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
59552014-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
59672014-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
59742014-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
59892014-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
59942014-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
60122014-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
60212014-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
60452014-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
60512014-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
60642014-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
60742014-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
60912014-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
61042014-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
61102014-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
61162014-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
61372014-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
61432014-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
61502014-06-30  Eli Zaretskii  <eliz@gnu.org>
6151
6152	* coding.c (MIN_CHARBUF_SIZE): Enlarge to 32.  (Bug#17881)
6153
61542014-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
61662014-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
61732014-06-29  Glenn Morris  <rgm@gnu.org>
6174
6175	* Makefile.in (ns-app): Mark as PHONY.
6176
61772014-06-28  Glenn Morris  <rgm@gnu.org>
6178
6179	* Makefile.in (mostlyclean): There are no libXMenu11.a,
6180	liblw.a in this directory.
6181
61822014-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
61872014-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
61932014-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
62032014-06-26  Dmitry Antipov  <dmantipov@yandex.ru>
6204
6205	* fns.c (Fcompare_strings): Use FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE.
6206
62072014-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
62202014-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
62282014-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
62372014-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
62512014-06-22  Mario Lang  <mlang@delysid.org>
6252
6253	* w32fns.c (Fw32_shell_execute): The the -> the.
6254
62552014-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
62672014-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
62752014-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
62812014-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
62862014-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
62912014-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
63062014-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
63192014-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
63542014-06-17  Stefan Monnier  <monnier@iro.umontreal.ca>
6355
6356	* callint.c (Fcall_interactively): Fix up last change (bug#17701).
6357
63582014-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
63712014-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
63772014-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
63832014-06-15  Glenn Morris  <rgm@gnu.org>
6384
6385	* Makefile.in: Use `make -C' rather than `cd && make' throughout.
6386
63872014-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
63972014-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
64062014-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
64182014-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
64252014-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
64302014-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
64362014-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
64462014-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
64732014-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
64802014-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
64882014-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
64942014-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
65002014-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
65252014-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
65402014-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
65632014-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
65682014-06-08  Eli Zaretskii  <eliz@gnu.org>
6569
6570	* dispnew.c (update_frame_with_menu): Set display_completed.
6571
65722014-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
65782014-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
65832014-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
65942014-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
65992014-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
66042014-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
66182014-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
66262014-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
66442014-06-03  Juanma Barranquero  <lekktu@gmail.com>
6645
6646	* w32heap.c (DUMPED_HEAP_SIZE) [!_WIN64]: Reduce to 11 MB.
6647
66482014-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
66532014-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
66672014-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
66782014-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
66952014-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
67002014-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
67182014-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
67242014-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
67312014-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
67402014-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
67452014-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
67542014-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
67652014-06-02  Glenn Morris  <rgm@gnu.org>
6766
6767	* cmds.c (Fself_insert_command): Allow zero repeat count.  (Bug#17649)
6768
67692014-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
67772014-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
67832014-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
67982014-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
68062014-06-01  Juanma Barranquero  <lekktu@gmail.com>
6807
6808	* callint.c (Ffuncall_interactively): Add usage.
6809
68102014-06-01  Jan Djärv  <jan.h.d@swipnet.se>
6811
6812	* nsfns.m (ns_appkit_version_str): Add os version for Cocoa.
6813
68142014-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
68212014-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
68322014-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
68452014-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
68512014-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
68612014-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
68702014-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
68752014-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
68882014-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
68932014-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
68992014-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
69132014-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
69262014-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
69392014-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
69442014-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
69762014-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
69912014-05-26  Eli Zaretskii  <eliz@gnu.org>
6992
6993	* w32.c (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT): Define only if undefined.
6994
69952014-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
70002014-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
70132014-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
70192014-05-26  Paul Eggert  <eggert@cs.ucla.edu>
7020
7021	* xdisp.c (safe__call1, safe__eval): Now static.
7022
70232014-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
70292014-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
70352014-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
70432014-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
70502014-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
70622014-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
70732014-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
70882014-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
70962014-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
71082014-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
71142014-05-21  Leo Liu  <sdl.web@gmail.com>
7115
7116	* fns.c (Fnreverse): Accept strings for SEQ and update doc-string.
7117
71182014-05-20  Michael Albinus  <michael.albinus@gmx.de>
7119
7120	* dbusbind.c (xd_signature): Revert last 2 patches.
7121
71222014-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
71332014-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
71452014-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
71552014-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
71602014-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
71652014-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
71772014-05-13  Paul Eggert  <eggert@cs.ucla.edu>
7178
7179	* keyboard.c (Qdeactivate_mark): Now static.
7180
71812014-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
71942014-05-12  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
7195
7196	* xdisp.c (draw_glyphs): Set clipping to highlight boundaries.
7197
71982014-05-12  Glenn Morris  <rgm@gnu.org>
7199
7200	* fileio.c (Ffile_executable_p): Doc tweak.
7201
72022014-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
72072014-05-08  Paul Eggert  <eggert@cs.ucla.edu>
7208
7209	* minibuf.c (read_minibuf): Avoid C99ism in previous patch (Bug#17430).
7210
72112014-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
72172014-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
72222014-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
72282014-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
72332014-05-07  Paul Eggert  <eggert@cs.ucla.edu>
7234
7235	* image.c: Include <png.h> before <setjmp.h> (Bug#17429).
7236
72372014-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
72452014-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
72532014-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
72602014-05-03  Eli Zaretskii  <eliz@gnu.org>
7261
7262	* buffer.c (overlay_strings): Fix the wording of the commentary.
7263
72642014-05-01  Glenn Morris  <rgm@gnu.org>
7265
7266	* floatfns.c (Fisnan):
7267	* profiler.c (Fprofiler_cpu_running_p): Doc fix (replace `iff').
7268
72692014-05-01  Eli Zaretskii  <eliz@gnu.org>
7270
7271	* term.c (tty_menu_activate): A better initialization for cursor
7272	coordinates.
7273
72742014-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
72902014-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
72962014-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
73052014-04-30  Glenn Morris  <rgm@gnu.org>
7306
7307	* process.c (handle_child_signal):
7308	Handle systems without WCONTINUED.  (Bug#15110, 17339)
7309
73102014-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
73162014-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
73342014-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
73392014-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
73492014-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
73562014-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
73662014-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
73722014-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
73782014-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
73862014-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
73922014-04-18  Paul Eggert  <eggert@cs.ucla.edu>
7393
7394	* emacs.c (close_output_streams): Don't clear and restore errno.
7395
73962014-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
74012014-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
74112014-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
74182014-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
74272014-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
74342014-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
74942014-04-16  Stefan Monnier  <monnier@iro.umontreal.ca>
7495
7496	* buffer.c (Foverlays_at): Add argument `sorted'.
7497
74982014-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
75042014-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
75112014-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
75162014-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
75212014-04-16  Paul Eggert  <eggert@cs.ucla.edu>
7522
7523	* keyboard.c (Fopen_dribble_file): Avoid some races.  (Bug#17187)
7524
75252014-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
75452014-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
75582014-04-11  Glenn Morris  <rgm@gnu.org>
7559
7560	* keyboard.c (Fopen_dribble_file): Make file private.  (Bug#17187)
7561
75622014-04-11  Ken Brown  <kbrown@cornell.edu>
7563
7564	* Makefile.in (EMACS_MANIFEST): Revert last change.
7565
75662014-04-10  Daniel Colascione  <dancol@dancol.org>
7567
7568	* puresize.h (BASE_PURESIZE): Increase.
7569
75702014-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
75792014-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
75892014-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
76042014-04-07  Glenn Morris  <rgm@gnu.org>
7605
7606	* keyboard.c (Fopen_dribble_file): Doc tweak.
7607
76082014-04-07  Ken Brown  <kbrown@cornell.edu>
7609
7610	* Makefile.in (EMACS_MANIFEST): Update comment.  (Bug#17176)
7611
76122014-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
76192014-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
76362014-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
76662014-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
76832014-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
76922014-04-02  Ken Brown  <kbrown@cornell.edu>
7693
7694	* conf_post.h (SYSTEM_PURESIZE_EXTRA) [CYGWIN]: Set to 10000.
7695	(Bug#17112)
7696
76972014-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
77022014-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
77102014-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
77202014-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
77292014-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
77332014-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
77442014-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
77532014-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
77612014-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
77672014-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
77732014-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
77792014-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
77882014-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
78162014-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
78212014-03-26  Glenn Morris  <rgm@gnu.org>
7822
7823	* fileio.c (Ffile_symlink_p): Doc fix. (Bug#17073)
7824
78252014-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
78312014-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
78372014-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
78592014-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
78702014-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
78752014-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
78972014-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
79102014-03-23  Juanma Barranquero  <lekktu@gmail.com>
7911
7912	* w32fns.c (Fw32_shell_execute): Declare `result' only on Cygwin.
7913
79142014-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
79252014-03-23  Daniel Colascione  <dancol@dancol.org>
7926
7927	* term.c (init_tty): Rearrange condition for clarity; print
7928	appropriate diagnostic.
7929
79302014-03-23  Daniel Colascione  <dancol@dancol.org>
7931
7932	* process.c (DATAGRAM_CONN_P): Don't underflow datagram_address
7933	array.  (ASAN caught.)
7934
79352014-03-22  Glenn Morris  <rgm@gnu.org>
7936
7937	* callproc.c (init_callproc): In etc, look for NEWS rather than GNU.
7938
79392014-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
79442014-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
79502014-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
79562014-03-21  Glenn Morris  <rgm@gnu.org>
7957
7958	* minibuf.c (history-length): Increase default from 30 to 100.
7959
79602014-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
79692014-03-21  Eli Zaretskii  <eliz@gnu.org>
7970
7971	* w32fns.c (Fw32_shell_execute) [!CYGWIN]: Use ShellExecuteEx, to
7972	support more "verbs".
7973
79742014-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
79832014-03-20  Paul Eggert  <eggert@cs.ucla.edu>
7984
7985	* doc.c (store_function_docstring): Fix pointer signedness mismatch.
7986
79872014-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
79982014-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
80032014-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
80122014-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
80182014-03-17  Teodor Zlatanov  <tzz@lifelogs.com>
8019
8020	* gnutls.c (Fgnutls_boot): Fix case of :verify-error = t.
8021
80222014-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
80282014-03-15  Juanma Barranquero  <lekktu@gmail.com>
8029
8030	* buffer.c (Fset_buffer): Document return value (bug#17015).
8031
80322014-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
80382014-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
80432014-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
80482014-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
80542014-03-09  Martin Rudalics  <rudalics@gmx.at>
8055
8056	* xdisp.c (Fwindow_text_pixel_size): Adjust doc-string.
8057
80582014-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
80652014-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
80802014-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
80872014-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
80932014-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
80982014-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
81112014-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
81182014-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
81292014-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
81342014-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
81402014-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
81452014-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
81502014-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
81622014-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
81842014-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
81912014-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
81962014-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
82082014-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
82132014-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
82182014-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
82362014-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
82452014-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
82502014-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
82592014-02-25  Juanma Barranquero  <lekktu@gmail.com>
8260
8261	* lread.c (Funintern): Fix doc to match advertised calling convention.
8262
82632014-02-24  Daniel Colascione  <dancol@dancol.org>
8264
8265	* keyboard.c (read_char): Close race that resulted in lost events.
8266
82672014-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
82752014-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
82812014-02-21  Martin Rudalics  <rudalics@gmx.at>
8282
8283	* window.c (Fwindow_scroll_bar_width): New function.
8284
82852014-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
82912014-02-21  Daniel Colascione  <dancol@dancol.org>
8292
8293	* dbusbind.c: Rename dbus-init-bus to dbus-init-bus-1.
8294
82952014-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
83092014-02-20  Glenn Morris  <rgm@gnu.org>
8310
8311	* data.c (Fdefalias): Doc fix.
8312
83132014-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
83272014-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
83322014-02-18  Michael Albinus  <michael.albinus@gmx.de>
8333
8334	* dbusbind.c (xd_close_bus): Apply proper check on busobj.
8335
83362014-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
83422014-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
83472014-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
83552014-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
83612014-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
83712014-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
83802014-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
83842014-02-12  Lars Ingebrigtsen  <larsi@gnus.org>
8385
8386	* buffer.c (syms_of_buffer): Doc clarification (bug#9981).
8387
83882014-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
83932014-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
84032014-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
84092014-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
84172014-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
84242014-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
84322014-02-08  Juanma Barranquero  <lekktu@gmail.com>
8433
8434	* keyboard.c (Frecursive_edit): Fix typo in docstring.
8435
84362014-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
84432014-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
84532014-02-07  Glenn Morris  <rgm@gnu.org>
8454
8455	* nsterm.m (syms_of_nsterm): Doc fix.
8456
84572014-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
84762014-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
84822014-02-06  Glenn Morris  <rgm@gnu.org>
8483
8484	* buffer.c (cache-long-scans): Doc fix.
8485
84862014-02-05  Eli Zaretskii  <eliz@gnu.org>
8487
8488	* w32fns.c (Fw32_shell_execute): Doc fix.
8489
84902014-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
84952014-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
85032014-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
85092014-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
85292014-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
85372014-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
85522014-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
85602014-02-02  Martin Rudalics  <rudalics@gmx.at>
8561
8562	* w32fns.c (Fx_create_frame): Process frame alpha earlier.
8563	(Bug#16619)
8564
85652014-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
85782014-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
85832014-01-29  Paul Eggert  <eggert@cs.ucla.edu>
8584
8585	* xmenu.c (create_and_show_popup_menu): Port comment to C89.
8586
85872014-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
85962014-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
86062014-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
86112014-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
86162014-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
86262014-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
86342014-01-26  Paul Eggert  <eggert@cs.ucla.edu>
8635
8636	* data.c (Fstring_to_number): Document results if unparsable
8637	(Bug#16551).
8638
86392014-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
86432014-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
86572014-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
86642014-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
86702014-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
86772014-01-25  Stefan Monnier  <monnier@iro.umontreal.ca>
8678
8679	* eval.c (Fsignal): Fix `debug' handling to match 2013-10-03 change.
8680
86812014-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
86872014-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
86942014-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
87002014-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
87062014-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
87192014-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
87242014-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
87312014-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
87412014-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
87512014-01-19  K. Handa  <handa@gnu.org>
8752
8753	* composite.c (composition_update_it): Fix previous change.
8754
87552014-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
87722014-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
87792014-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
87872014-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
87922014-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
87982014-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
88082014-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
88242014-01-11  K. Handa  <handa@gnu.org>
8825
8826	* composite.c (composition_update_it): Fix indexing of
8827	LGSTRING_CHAR (Bug#15984).
8828
88292014-01-11  Fabrice Popineau  <fabrice.popineau@gmail.com>
8830
8831	* unexw32.c (_start) [__MINGW64__]: Define to __start.
8832
88332014-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
88402014-01-11  Martin Rudalics  <rudalics@gmx.at>
8841
8842	* frame.c (frame_resize_pixelwise): Fix doc-string.
8843
88442014-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
88672014-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
88732014-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
88782014-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
88882014-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
88982014-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
89122014-01-03  Chong Yidong  <cyd@gnu.org>
8913
8914	* doc.c (Fdocumentation): Remove dynamic-docstring-function.
8915
89162014-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
89372014-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
89432014-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
89652013-12-31  Martin Rudalics  <rudalics@gmx.at>
8966
8967	* window.c (grow_mini_window): Fix last change.
8968
89692013-12-31  Jan Djärv  <jan.h.d@swipnet.se>
8970
8971	* nsterm.m (windowDidResignKey:): Set mouse_moved to 0 (Bug#8421).
8972
89732013-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
89982013-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
90172013-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
90222013-12-30  Eli Zaretskii  <eliz@gnu.org>
9023
9024	* w32.c (sys_umask): New function.  (Bug#16299)
9025
90262013-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
90312013-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
90482013-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
90542013-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
90592013-12-27  Jarek Czekalski  <jarekczek@poczta.onet.pl>
9060
9061	* callproc.c (Vexec_path): Document that exec-directory is in it.
9062
90632013-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
90682013-12-27  Chong Yidong  <cyd@gnu.org>
9069
9070	* data.c (Fsymbol_function): Doc fix.
9071
90722013-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
90892013-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
91032013-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
91082013-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
91152013-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
91222013-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
91332013-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
91372013-12-23  Glenn Morris  <rgm@gnu.org>
9138
9139	* lread.c (Fload): Mention load-prefer-newer in doc.
9140
91412013-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
91492013-12-22  Xue Fuqiao  <xfq.free@gmail.com>
9150
9151	* lread.c (syms_of_lread) <load_prefer_newer>: Doc fix.
9152
91532013-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
91632013-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
91692013-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
91802013-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
92092013-12-20  Chong Yidong  <cyd@gnu.org>
9210
9211	* textprop.c (Fadd_face_text_property): Doc fix.  Rename `appendp'
9212	argument to `append'.
9213
92142013-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
92232013-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
92392013-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
92502013-12-19  Anders Lindgren  <andlind@gmail.com>
9251
9252	* nsterm.m (mouseDown:): Generate HORIZ_WHEEL_EVENT.
9253
92542013-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
92632013-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
92682013-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
92882013-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
93112013-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
93162013-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
93272013-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
93352013-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
93412013-12-16  Andreas Schwab  <schwab@suse.de>
9342
9343	* gnutls.c (Fgnutls_boot): Properly check Flistp return value.
9344
93452013-12-16  Teodor Zlatanov  <tzz@lifelogs.com>
9346
9347	* gnutls.c (Fgnutls_boot): Use `Flistp' instead of
9348	`CHECK_LIST_CONS'.
9349
93502013-12-16  Martin Rudalics  <rudalics@gmx.at>
9351
9352	* w32term.c (w32_enable_frame_resize_hack): Default to 1.
9353
93542013-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
93682013-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
93792013-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
93862013-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
93992013-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
94042013-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
95382013-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
95442013-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
95512013-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
95572013-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
95682013-12-13  Paul Eggert  <eggert@cs.ucla.edu>
9569
9570	* lread.c (load_path_default): Prototype.
9571
95722013-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
95812013-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
95882013-12-13  Dmitry Antipov  <dmantipov@yandex.ru>
9589
9590	* font.c (font_close_object): Check for live frame (Bug#16128).
9591
95922013-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
95982013-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
96062013-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
97312013-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
97552013-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
97702013-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
97752013-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
97842013-12-11  Rüdiger Sonderfeld  <ruediger@c-plusplus.de>
9785
9786	* editfns.c (Fformat_time_string): Mention %F in the doc.
9787
97882013-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
98022013-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
98082013-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
98132013-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
98192013-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
98262013-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
98312013-12-09  Jan Djärv  <jan.h.d@swipnet.se>
9832
9833	* alloc.c (Fmemory_limit): Avoid compiler warning.  Return 0 always.
9834
98352013-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
98412013-12-08  Martin Rudalics  <rudalics@gmx.at>
9842
9843	* frame.c (x_set_font): Mark frame as garbaged (Bug#16028).
9844
98452013-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
98572013-12-08  Stefan Monnier  <monnier@iro.umontreal.ca>
9858
9859	* window.c (set_window_buffer): Update mode line (bug#16084).
9860
98612013-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
98712013-12-07  Martin Rudalics  <rudalics@gmx.at>
9872
9873	* w32term.c (w32_read_socket): Fix int/Lisp_Object type mixup.
9874
98752013-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
99022013-12-06  Eli Zaretskii  <eliz@gnu.org>
9903
9904	* buffer.c (Fset_buffer_multibyte): Invalidate buffer caches.
9905	(Bug#16070)
9906
99072013-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
99152013-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
99212013-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
99272013-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
99352013-12-04  Paul Eggert  <eggert@cs.ucla.edu>
9936
9937	* bidi.c (LRM_CHAR, RLM_CHAR): Remove; no longer used.
9938
99392013-12-04  Eli Zaretskii  <eliz@gnu.org>
9940
9941	* w32xfns.c: Include window.h, to avoid a compiler warning.
9942
99432013-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
99572013-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
99672013-12-04  Martin Rudalics  <rudalics@gmx.at>
9968
9969	* xterm.c (XTflash): Fix coordinate of bottom area to flash
9970	(Bug#16044).
9971
99722013-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
99822013-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
99952013-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
100082013-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
100172013-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
100282013-12-02  Helmut Eller  <eller.helmut@gmail.com>
10029
10030	* eval.c (Fbacktrace__locals): New function.
10031	(syms_of_eval): Defsubr it.
10032
100332013-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
100402013-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
100512013-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
100582013-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
100632013-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
100712013-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
100802013-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
100922013-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
103322013-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
103442013-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
103542013-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
103652013-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
103712013-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
103832013-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
103962013-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
104392013-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
104572013-11-27  Glenn Morris  <rgm@gnu.org>
10458
10459	* Makefile.in ($(lispsource)/international/charprop.el): New.
10460	(emacs$(EXEEXT)): Depend on charprop.el.
10461
104622013-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
104722013-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
104772013-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
104852013-11-26  Andreas Schwab  <schwab@suse.de>
10486
10487	* .gdbinit (xgettype): Add cast.
10488
104892013-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
104962013-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
105082013-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
105152013-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
105242013-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
105322013-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
105382013-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
105432013-11-23  Glenn Morris  <rgm@gnu.org>
10544
10545	* process.c (get_process): Explicit error for dead buffers.
10546
105472013-11-23  Andreas Schwab  <schwab@linux-m68k.org>
10548
10549	* process.c (get_process): Check that OBJ is a live buffer.  (Bug#15923)
10550
105512013-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
105672013-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
105722013-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
105942013-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
106022013-11-19  Paul Eggert  <eggert@cs.ucla.edu>
10603
10604	* charset.c (syms_of_charset): Don't read past end of string.
10605
106062013-11-19  Glenn Morris  <rgm@gnu.org>
10607
10608	* frame.c (Fhandle_focus_in, Fhandle_focus_out): Doc fixes.
10609
106102013-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
106172013-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
106432013-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
106532013-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
106592013-11-17  Paul Eggert  <eggert@cs.ucla.edu>
10660
10661	* lisp.h (DEBUGGER_SEES_C_MACROS): Remove.
10662
106632013-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
106712013-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
106792013-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
106852013-11-15  Leo Liu  <sdl.web@gmail.com>
10686
10687	* minibuf.c (Ftry_completion, Fall_completions)
10688	(Ftest_completion): Use FUNCTIONP.  (Bug#15889)
10689
106902013-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
106962013-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
107042013-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
107492013-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
107592013-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
107672013-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
107742013-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
107802013-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
107862013-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
107912013-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
107962013-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
108032013-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
108192013-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
108282013-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
108452013-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
108592013-11-06  Stefan Monnier  <monnier@iro.umontreal.ca>
10860
10861	* xdisp.c (redisplay_internal): Fix typo in last change.
10862
108632013-11-06  Paul Eggert  <eggert@cs.ucla.edu>
10864
10865	* regex.c: Fix --enable-gcc-warning glitch with GCC 4.5.2.
10866
108672013-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
108762013-11-06  Eli Zaretskii  <eliz@gnu.org>
10877
10878	* editfns.c (Fformat_time_string): Doc fix.  (Bug#15816)
10879
108802013-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
108852013-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
109012013-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
109082013-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
109132013-11-05  Stefan Monnier  <monnier@iro.umontreal.ca>
10914
10915	* keyboard.c (Fcommand_error_default_function): Rename from
10916	Fdefault_error_output.
10917
109182013-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
109242013-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
109322013-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
109392013-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
109442013-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
109502013-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
110022013-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
110102013-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
110242013-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
110552013-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
110892013-11-04  Glenn Morris  <rgm@gnu.org>
11090
11091	* emacs.c (usage_message): Mention that `-L :...' appends.
11092
110932013-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
111172013-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
111232013-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
111282013-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
111472013-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
111552013-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
111592013-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
111662013-10-29  Stefan Monnier  <monnier@iro.umontreal.ca>
11167
11168	* keyboard.c (command_loop_1): If command is nil, call `undefined'.
11169
111702013-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
111762013-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
112002013-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
112152013-10-29  Stefan Monnier  <monnier@iro.umontreal.ca>
11216
11217	* eval.c (run_hook_with_args): Use FUNCTIONP.
11218
112192013-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
112342013-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
112402013-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
112512013-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
112582013-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
112632013-10-26  Xue Fuqiao  <xfq.free@gmail.com>
11264
11265	* fringe.c (set_fringe_bitmap_face): Add usage note from lispref.
11266
112672013-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
112802013-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
113012013-10-24  Glenn Morris  <rgm@gnu.org>
11302
11303	* Makefile.in (abs_top_srcdir): New, set by configure.
11304
113052013-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
113112013-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
113182013-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
113232013-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
113362013-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
113452013-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
113532013-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
113772013-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
113832013-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
114282013-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
114332013-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
114382013-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
114592013-10-16  Dmitry Antipov  <dmantipov@yandex.ru>
11460
11461	* fns.c (Fstring_as_unibyte): Use xlispstrdup.
11462
114632013-10-15  Paul Eggert  <eggert@cs.ucla.edu>
11464
11465	* print.c (print_object): Print " ..." when truncating bool vectors.
11466
114672013-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
114742013-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
114852013-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
114902013-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
114972013-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
115172013-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
115362013-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
115472013-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
115562013-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
115622013-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
115722013-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
115772013-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
115832013-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
115882013-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
115952013-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
116072013-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
116282013-10-11  Dmitry Antipov  <dmantipov@yandex.ru>
11629
11630	* xdisp.c (deep_copy_glyph_row): Remove unused locals.
11631
116322013-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
116382013-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
116492013-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
116552013-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
116652013-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
116792013-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
116932013-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
116982013-10-09  Paul Eggert  <eggert@cs.ucla.edu>
11699
11700	* fns.c (sxhash_bool_vector): Fix buffer read overrun.
11701
117022013-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
117092013-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
117142013-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
117282013-10-09  Glenn Morris  <rgm@gnu.org>
11729
11730	* eval.c (Fcond): Doc tweak.
11731
117322013-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
117372013-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
117422013-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
117682013-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
118812013-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
118902013-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
119032013-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
119082013-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
119222013-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
119412013-10-07  Jan Djärv  <jan.h.d@swipnet.se>
11942
11943	* nsterm.m (windowDidEnterFullScreen:): setPresentationOptions only
11944	on >= 10.7.
11945
119462013-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
119512013-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
119602013-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
119672013-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
119762013-10-05  Xue Fuqiao  <xfq.free@gmail.com>
11977
11978	* editfns.c (message): Mention batch mode in doc string.
11979
119802013-10-05  Jan Djärv  <jan.h.d@swipnet.se>
11981
11982	* nsterm.m (check_native_fs): Remove erroneous comment.
11983
119842013-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
119892013-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
120042013-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
120262013-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
120562013-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
120612013-10-02  Jan Djärv  <jan.h.d@swipnet.se>
12062
12063	* macfont.m (mac_ctfont_create_preferred_family_for_attributes):
12064	Remove unused variable (from mac-port).
12065	(macfont_draw): Use s->ybase for correct y position.
12066
120672013-10-02  Dmitry Antipov  <dmantipov@yandex.ru>
12068
12069	* frame.h (struct frame): Drop has_minibuffer member because...
12070	(FRAME_HAS_MINIBUF_P): ...this macro can be implemented without it.
12071	* frame.c (make_frame, make_minibuffer_frame): Adjust users.
12072
120732013-10-02  Dmitry Antipov  <dmantipov@yandex.ru>
12074
12075	* window.h (struct window): Prefer enum text_cursor_kinds to int
12076	for phys_cursor_type member.  Move the latter, phys_cursor_width,
12077	phys_cursor_ascent and phys_cursor_height under HAVE_WINDOW_SYSTEM.
12078	* window.c (replace_window, make_window): Adjust users.
12079
120802013-10-02  Dmitry Antipov  <dmantipov@yandex.ru>
12081
12082	* fringe.c (toplevel): Do not use HAVE_WINDOW_SYSTEM because
12083	this module is never compiled otherwise.
12084
120852013-10-01  Alp Aker  <alp.tekin.aker@gmail.com>
12086
12087	* macfont.m (macfont_draw): Use CGRectMake rather than NSMakeRect
12088	(Bug#15500).
12089
120902013-09-29  Eli Zaretskii  <eliz@gnu.org>
12091
12092	* xdisp.c (get_next_display_element): Don't call face_for_font in
12093	a build configured --without-x.  (Bug#15484)
12094
120952013-09-29  Jan Djärv  <jan.h.d@swipnet.se>
12096
12097	* window.c (calc_absolute_offset): #elif should be #elif defined.
12098
12099	* frame.c (delete_frame): Block/unblock input to overcome race
12100	condition (Bug#15475).
12101
121022013-09-29  Andreas Politz  <politza@hochschule-trier.de>
12103
12104	* frame.c (delete_frame): Record selected frame only after
12105	calling Qdelete_frame_functions (Bug#15477).
12106
121072013-09-28  Jan Djärv  <jan.h.d@swipnet.se>
12108
12109	* nsterm.m (ns_selection_color): Remove.
12110	(ns_get_color): Check for ns_selection_(fg|bg)_color using
12111	NSColor selectedText(Background)Color.  Only for COCOA.
12112	(ns_term_init): Remove assignment of ns_selection_color, logic
12113	moved to ns_get_color.
12114
12115	* nsterm.h (NS_SELECTION_BG_COLOR_DEFAULT): Rename from
12116	NS_SELECTION_COLOR_DEFAULT.
12117	(NS_SELECTION_FG_COLOR_DEFAULT): New.
12118
121192013-09-28  Eli Zaretskii  <eliz@gnu.org>
12120
12121	* xdisp.c (Fdump_tool_bar_row): Ifdef away the body if 'struct
12122	frame' does not have the tool_bar_window member.
12123
121242013-09-26  Barry O'Reilly  <gundaetiapo@gmail.com>
12125
12126	Signal error when reading an empty byte-code object (Bug#15405)
12127	* lread.c (read1): Signal error.
12128	* alloc.c (make_byte_code): eassert header size.
12129	(sweep_vectors): Change an int to size_t.
12130
121312013-09-24  Paul Eggert  <eggert@cs.ucla.edu>
12132
12133	* dispnew.c (clear_glyph_row, copy_row_except_pointers): Use enums
12134	instead of ints, as it's the usual style for offsetof constants.  See:
12135	https://lists.gnu.org/r/emacs-devel/2013-09/msg00478.html
12136
12137	* data.c (POPCOUNT_STATIC_INLINE): New macro, as a hack for popcount.
12138	This is ugly, but it should fix the performance problem for older
12139	GCC versions in the short run.  I'll look into integrating the
12140	Gnulib module for popcount, as a better fix.
12141	See the thread starting in:
12142	https://lists.gnu.org/r/emacs-devel/2013-09/msg00474.html
12143	(popcount_size_t_generic) [NEED_GENERIC_POPCOUNT]:
12144	(popcount_size_t_msc) [USE_MSC_POPCOUNT]:
12145	(popcount_size_t_gcc) [USE_GCC_POPCOUNT]:
12146	(popcount_size_t): Use it.
12147
121482013-09-24  Daniel Colascione  <dancol@dancol.org>
12149
12150	* process.c (Fnetwork_interface_info): Fix build break due to
12151	vector changes.
12152
121532013-09-24  Paul Eggert  <eggert@cs.ucla.edu>
12154
12155	* dispnew.c (clear_glyph_row, copy_row_except_pointers):
12156	Prefer signed to unsigned integers where either will do.
12157	No need for 'const' on locals that do not escape.
12158	Omit easserts with unnecessary and unportable assumptions about
12159	alignment.  Avoid unnecessary casts to char *.
12160
121612013-09-24  Dmitry Antipov  <dmantipov@yandex.ru>
12162
12163	Use union for the payload of struct Lisp_Vector.
12164	This helps to avoid a few glitches dictated by C's aliasing rules.
12165	* lisp.h (struct Lisp_Vector): Use union for next and
12166	contents member.  Adjust comment.  Change related users.
12167	* alloc.c (next_in_free_list, set_next_in_free_list): Remove.
12168	Related users changed.
12169	* buffer.c, bytecode.c, ccl.c, character.h, chartab.c, composite.c:
12170	* composite.h, disptab.h, fns.c, fontset.c, indent.c, keyboard.c:
12171	* lread.c, msdos.c, process.c, w32menu.c, window.c, xdisp.c:
12172	* xfaces.c, xfont.c, xmenu.c: Related users changed.
12173
121742013-09-24  Dmitry Antipov  <dmantipov@yandex.ru>
12175
12176	Optimize glyph row clearing and copying routines.
12177	* dispextern.h (struct glyph_row): Change layout of struct
12178	glyph_row to help copy_row_except_pointers.  Adjust comment.
12179	* dispnew.c (null_row): Remove.
12180	(clear_glyph_row): Use offsetof and memset to find and clear
12181	just the members that need clearing.  Adjust comment.
12182	(copy_row_except_pointers): Likewise for copying.
12183
121842013-09-24  Paul Eggert  <eggert@cs.ucla.edu>
12185
12186	Some minor cleanups of recently-added bool vector code.
12187	* conf_post.h (assume): Always return void.  Use lint version
12188	only if GCC and MSC versions don't apply.
12189	* conf_post.h (assume):
12190	* data.c (USC_MSC_POPCOUNT, count_trailing_zero_bits):
12191	Depend on _MSC_VER, not __MSC_VER, for consistency with
12192	the rest of Emacs.
12193	* data.c (bool_vector_spare_mask, popcount_size_t_generic)
12194	(popcount_size_t_msc, popcount_size_t_gcc, popcount_size_t)
12195	(bool_vector_binop_driver, count_trailing_zero_bits)
12196	(size_t_to_host_endian): Now static, not static inline;
12197	the latter isn't needed with modern compilers and doesn't
12198	work with older compilers anyway.
12199
12200	* alloc.c (valgrind_p): Use bool for boolean.
12201
122022013-09-23  Dmitry Antipov  <dmantipov@yandex.ru>
12203
12204	* xdisp.c (noninteractive_need_newline, message_log_need_newline)
12205	(overlay_arrow_seen, message_enable_multibyte, line_number_displayed)
12206	(display_last_displayed_message_p, message_buf_print)
12207	(message_cleared_p, help_echo_showing_p, hourglass_shown_p):
12208	Use bool for boolean.
12209	* dispextern.h (cancel_line, init_desired_glyphs):
12210	Remove ancient leftover.
12211	(help_echo_showing_p, hourglass_shown_p):
12212	* lisp.h (noninteractive_need_newline): Adjust declaration.
12213
122142013-09-23  Dmitry Antipov  <dmantipov@yandex.ru>
12215
12216	* dispnew.c (frame_garbaged, selected_frame, last_nonminibuf_frame):
12217	Move to...
12218	* frame.c (frame_garbaged, selected_frame, last_nonminibuf_frame):
12219	...this file and convert the latter to static.  Adjust comment.
12220	(make_initial_frame):
12221	* window.c (init_window_once): Adjust user.
12222	* frame.h (last_nonminibuf_frame): Remove declaration.
12223	* lisp.h (selected_frame): Likewise.
12224	* msdos.c (the_only_display_info): Adjust comment.
12225
122262013-09-23  Eli Zaretskii  <eliz@gnu.org>
12227
12228	* xdisp.c (mouse_face_from_string_pos): Fix off-by-one error in
12229	computing the end column of mouse-highlight that comes from
12230	display or overlay strings.  (Bug#15437)
12231	(note_mouse_highlight): Adapt calculation of last argument to
12232	mouse_face_from_string_pos to the above change.
12233
12234	* conf_post.h (__has_builtin): Define to zero, if undefined, on
12235	all platforms, not just for clang.
12236
122372013-09-23  Jan Djärv  <jan.h.d@swipnet.se>
12238
12239	* filelock.c (lock_file_1): Rearrange to remove compiler warning
12240	about excess arguments to snprintf.
12241
12242	* conf_post.h(assume): Use __builtin_unreachable for clang.
12243
122442013-09-23  Juanma Barranquero  <lekktu@gmail.com>
12245
12246	* w32console.c (initialize_w32_display): Remove unused variable hlinfo.
12247	* w32term.c (w32_scroll_bar_handle_click): Remove unused variable f.
12248
122492013-09-23  Daniel Colascione  <dancol@dancol.org>
12250
12251	* alloc.c (USE_VALGRIND): New macro; on by default
12252	when ENABLE_CHECKING.
12253	(mark_maybe_object, mark_maybe_pointer)
12254	[USE_VALGRIND]: Mark conservatively-scanned regions valid for
12255	valgrind purposes.
12256	(valgrind_p) [USE_VALGRIND]: New variable.
12257	(init_alloc) [USE_VALGRIND]: Initialize valgrind_p.
12258
122592013-09-22  Jan Djärv  <jan.h.d@swipnet.se>
12260
12261	* process.c (wait_reading_process_output): Change int pnamelen to
12262	socklen_t.
12263
12264	* nsterm.m (setMarkedText:selectedRange:, deleteWorkingText):
12265	* nsmenu.m (addDisplayItemWithImage:idx:tag:helpText:enabled:):
12266	* nsfont.m (ns_get_covering_families, ns_findfonts): Cast NSLog
12267	argument to unsigned long to avoid warning.
12268	(nsfont_draw): Use 0.25 instead of  Fix2X (kATSItalicQDSkew).
12269
12270	* conf_post.h (assume): Fix compiler error: x shall be cond.
12271
122722013-09-22  Daniel Colascione  <dancol@dancol.org>
12273
12274	* xfns.c (x_get_monitor_attributes): Suppress unused variable
12275	warning when compiling without a window system.
12276
122772013-09-22  Daniel Colascione  <dancol@dancol.org>
12278
12279	* data.c (Qbool_vector_p): New symbol.
12280	(bool_vector_spare_mask, popcount_size_t_generic)
12281	(popcount_size_t_msc, popcount_size_t_gcc)
12282	(popcount_size_t)
12283	(bool_vector_binop_driver)
12284	(count_trailing_zero_bits, size_t_to_host_endian)
12285	(Fbool_vector_exclusive_or)
12286	(Fbool_vector_union)
12287	(Fbool_vector_intersection, Fbool_vector_set_difference)
12288	(Fbool_vector_subsetp, Fbool_vector_not)
12289	(Fbool_vector_count_matches)
12290	(Fbool_vector_count_matches_at): New functions.
12291	(syms_of_data): Intern new symbol, functions.
12292	* alloc.c (bool_vector_payload_bytes): New function.
12293	(Fmake_bool_vector): Instead of calling Fmake_vector,
12294	which performs redundant initialization and argument checking,
12295	just call allocate_vector ourselves.  Make sure we clear any
12296	terminating padding to zero.
12297	(vector_nbytes, sweep_vectors): Use bool_vector_payload_bytes
12298	instead of open-coding the size calculation.
12299	(vroundup_ct): New macro.
12300	(vroundup): Assume argument >= 0; invoke vroundup_ct.
12301	* casetab.c (shuffle, set_identity): Change lint_assume to assume.
12302	* composite.c (composition_gstring_put_cache):
12303	Change lint_assume to assume.
12304	* conf_post.h (assume): New macro.
12305	(lint_assume): Remove.
12306	* dispnew.c (update_frame_1): Change lint_assume to assume.
12307	* ftfont.c (ftfont_shape_by_flt): Change lint_assume
12308	to assume.
12309	* image.c (gif_load): Change lint_assume to assume.
12310	* lisp.h (eassert_and_assume): New macro.
12311	(Qbool_vector_p): Declare.
12312	(CHECK_BOOL_VECTOR, ROUNDUP, BITS_PER_SIZE_T): New macros.
12313	(swap16, swap32, swap64): New inline functions.
12314	* macfont.m (macfont_shape): Change lint_assume to assume.
12315	* ralloc.c: Rename ROUNDUP to PAGE_ROUNDUP throughout.
12316	* xsettings.c (parse_settings): Use new swap16 and
12317	swap32 from lisp.h instead of file-specific macros.
12318
123192013-09-22  Eli Zaretskii  <eliz@gnu.org>
12320
12321	* xdisp.c (try_window_id): Don't abort if cursor row could not be
12322	found (which can legitimately happen when the glyph row at the
12323	window start is disabled in the current_matrix.  (Bug#15365)
12324
123252013-09-22  Paul Eggert  <eggert@cs.ucla.edu>
12326
12327	Fix syntax.h bug introduced by recent INLINE change.
12328	syntax.h defined an extern inline function SYNTAX_ENTRY that was
12329	conditionally compiled one way in some modules, and a different
12330	way in others.  This doesn't work with extern inline functions,
12331	which must have the same definition in all modules, because the
12332	defining code might be shared across modules, depending on the
12333	implementation.  Symptoms reported by Martin Rudalics in:
12334	https://lists.gnu.org/r/emacs-devel/2013-09/msg00414.html
12335	* regex.c, syntax.c (SYNTAX_ENTRY_VIA_PROPERTY): Remove.
12336	(SYNTAX, SYNTAX_ENTRY, SYNTAX_WITH_FLAGS): New macros,
12337	overriding the corresponding functions in syntax.h.
12338	* syntax.h (syntax_property_entry, syntax_property_with_flags)
12339	(syntax_property): New inline functions.
12340	(SYNTAX_ENTRY, SYNTAX_WITH_FLAGS, SYNTAX):
12341	Rewrite in terms of these new functions.
12342
123432013-09-21  Eli Zaretskii  <eliz@gnu.org>
12344
12345	* dired.c (directory_files_internal): Use multibyte_chars_in_text,
12346	not chars_in_text, whose result depends on the multibyteness of
12347	the current buffer.  (Bug#15426)
12348
123492013-09-20  Paul Eggert  <eggert@cs.ucla.edu>
12350
12351	Port recent change to hosts where pointers aren't 'long'.
12352	* xterm.c (x_send_scroll_bar_event, x_scroll_bar_to_input_event):
12353	Don't assume that pointers are the same width as 'long'.
12354	Add a compile-time check that a pointer fits into two X slots.
12355
12356	A simpler, centralized INLINE.
12357	* conf_post.h (INLINE): Define only if not already defined.
12358	This allows us to use a single INLINE, defined by one file
12359	per executable.
12360	* emacs.c (INLINE): Define it.
12361	Also, include category.h, charset.h, composite.h, dispextern.h,
12362	syntax.h, systime.h, so that their INLINE definitions are expanded
12363	properly for Emacs.
12364	* blockinput.h, keyboard.c (BLOCKINPUT_INLINE):
12365	* buffer.h, buffer.c (BUFFER_INLINE):
12366	* category.h, category.c (CATEGORY_INLINE):
12367	* character.h, character.c (CHARACTER_INLINE):
12368	* charset.h, charset.c (CHARSET_INLINE):
12369	* composite.h, composite.c (COMPOSITE_INLINE):
12370	* dispextern.h, dispnew.c (DISPEXTERN_INLINE):
12371	* frame.h, frame.c (FRAME_INLINE):
12372	* intervals.h, intervals.c (INTERVALS_INLINE):
12373	* keyboard.h, keyboard.c (KEYBOARD_INLINE):
12374	* lisp.h, alloc.c (LISP_INLINE):
12375	* process.h, process.c (PROCESS_INLINE):
12376	* syntax.h, syntax.c (SYNTAX_INLINE):
12377	* systime.h, sysdep.c (SYSTIME_INLINE):
12378	* termhooks.h, terminal.c (TERMHOOKS_INLINE):
12379	* window.h, window.c (WINDOW_INLINE):
12380	Remove.  All uses replaced with INLINE.
12381
123822013-09-20  Dmitry Antipov  <dmantipov@yandex.ru>
12383
12384	* xterm.c (handle_one_xevent): Revert part of 2013-09-17 change
12385	to avoid Bug#15398.
12386
123872013-09-19  Eli Zaretskii  <eliz@gnu.org>
12388
12389	* w32reg.c (w32_get_string_resource): Make the first 2 arguments
12390	'const char *' to avoid compiler warnings due to similar change in
12391	the prototype of x_get_string_resource.
12392
123932013-09-19  Dmitry Antipov  <dmantipov@yandex.ru>
12394
12395	* xterm.h (struct x_display_info): New members last_mouse_glyph_frame,
12396	last_mouse_scroll_bar, last_mouse_glyph and last_mouse_movement_time,
12397	going to replace static variables below.  Adjust comments.
12398	* xterm.c (last_mouse_glyph, last_mouse_glyph_frame)
12399	(last_mouse_scroll_bar, last_mouse_movement_time): Remove.
12400	(note_mouse_movement, XTmouse_position, x_scroll_bar_note_movement)
12401	(x_scroll_bar_report_motion, handle_one_xevent, syms_of_xterm):
12402	Related users changed.
12403	* w32term.h (struct w32_display_info): New members last_mouse_glyph_frame,
12404	last_mouse_scroll_bar, last_mouse_scroll_bar_pos, last_mouse_glyph and
12405	last_mouse_movement_time, going to replace static variables below.
12406	Adjust comments.
12407	* w32term.c (last_mouse_glyph_frame, last_mouse_scroll_bar)
12408	(last_mouse_scroll_bar_pos, last_mouse_glyph, last_mouse_movement_time):
12409	Remove.
12410	(note_mouse_movement, w32_mouse_position, w32_scroll_bar_handle_click)
12411	(x_scroll_bar_report_motion, syms_of_w32term): Related users changed.
12412	* nsterm.h (struct ns_display_info): New members last_mouse_glyph,
12413	last_mouse_movement_time and last_mouse_scroll_bar, going to replace
12414	static variables below.
12415	* nsterm.m (last_mouse_glyph, last_mouse_movement_time)
12416	(last_mouse_scroll_bar): Remove.
12417	(note_mouse_movement, ns_mouse_position, mouseMoved, mouseEntered)
12418	(mouseExited): Related users changed.
12419
124202013-09-19  Dmitry Antipov  <dmantipov@yandex.ru>
12421
12422	Do not use external array to process X scroll bar messages.
12423	* xterm.c (scroll_bar_windows, scroll_bar_windows_size): Remove.
12424	(x_send_scroll_bar_event): Pack window pointer into two slots
12425	of XClientMessageEvent if we're 64-bit.  Adjust comment.
12426	(x_scroll_bar_to_input_event): Unpack accordingly.
12427
124282013-09-18  Dmitry Antipov  <dmantipov@yandex.ru>
12429
12430	Ifdef away recent changes which aren't relevant to NS port.
12431	* dispextern.h (x_mouse_grabbed, x_redo_mouse_highlight)
12432	[!HAVE_NS]: Declare as such.
12433	* frame.c (x_mouse_grabbed, x_redo_mouse_highlight)
12434	[!HAVE_NS]: Define as such.
12435
124362013-09-18  Dmitry Antipov  <dmantipov@yandex.ru>
12437
12438	* frame.c (x_redo_mouse_highlight): New function
12439	to factor out common code used in W32 and X ports.
12440	* dispextern.h (x_redo_mouse_highlight): Add prototype.
12441	* xterm.h (struct x_display_info):
12442	* w32term.h (struct w32_display_info):
12443	* nsterm.h (struct ns_display_info): New members
12444	last_mouse_motion_frame, last_mouse_motion_x and
12445	last_mouse_motion_y, going to replace static variables below.
12446	* xterm.c (last_mouse_motion_event, last_mouse_motion_frame)
12447	(redo_mouse_highlight): Remove.
12448	(note_mouse_movement, syms_of_xterm): Adjust user.
12449	(handle_one_xevent): Likewise.  Use x_redo_mouse_highlight.
12450	* w32term.c (last_mouse_motion_event, last_mouse_motion_frame)
12451	(redo_mouse_highlight): Remove.
12452	(note_mouse_movement, syms_of_w32term): Adjust user.
12453	(w32_read_socket): Likewise.  Use x_redo_mouse_highlight.
12454	* nsterm.m (last_mouse_motion_position, last_mouse_motion_frame):
12455	Remove.
12456	(note_mouse_movement, mouseMoved, syms_of_nsterm):
12457	* nsfns.m (compute_tip_xy): Adjust user.
12458
124592013-09-18  Dmitry Antipov  <dmantipov@yandex.ru>
12460
12461	* frame.c (x_mouse_grabbed): New function.
12462	* dispextern.h (x_mouse_grabbed): Add prototype.
12463	(last_mouse_frame): Remove declaration.
12464	* xterm.h (struct x_display_info):
12465	* w32term.h (struct w32_display_info):
12466	* nsterm.h (struct ns_display_info): New member
12467	last_mouse_frame, going to replace...
12468	* xdisp.c (last_mouse_frame): ...global variable.
12469	(note_tool_bar_highlight):
12470	* w32term.c (w32_mouse_position, w32_read_socket):
12471	* xterm.c (XTmouse_position, handle_one_xevent):
12472	Use x_mouse_grabbed.
12473	* nsterm.m (ns_mouse_position, mouseDown): Adjust user.
12474
124752013-09-17  Dmitry Antipov  <dmantipov@yandex.ru>
12476
12477	* w32term.c (w32_read_socket): Avoid temporary
12478	variables in a call to x_real_positions.
12479	* xterm.c (handle_one_xevent): Likewise.
12480
124812013-09-17  Dmitry Antipov  <dmantipov@yandex.ru>
12482
12483	* frame.h (x_set_bitmap_icon) [!HAVE_NS]: New function.
12484	(x_icon_type): Remove prototype.
12485	(x_bitmap_icon) [!HAVE_NS]: Declare as such.
12486	* frame.c (x_icon_type): Remove.
12487	* w32term.c (x_make_frame_visible, x_iconify_frame):
12488	* xterm.c (x_make_frame_visible, x_iconify_frame):
12489	Use x_set_bitmap_icon to factor out common code.
12490
124912013-09-17  Dmitry Antipov  <dmantipov@yandex.ru>
12492
12493	* dispextern.h (check_x_display_info, x_get_string_resource):
12494	Declare here just once and unify the latter.
12495	* frame.c (check_x_display_info, x_get_string_resource):
12496	* nsterm.h (check_x_display_info):
12497	* xrdb.c (x_get_string_resource):
12498	* xterm.h (check_x_display_info): Remove prototypes.
12499	* nsfns.m (x_get_string_resource): Likewise.  Adjust definition.
12500	* w32reg.c (x_get_string_resource): Likewise.
12501	(w32_get_rdb_resource): Adjust user.
12502
125032013-09-17  Dmitry Antipov  <dmantipov@yandex.ru>
12504
12505	* xterm.h (struct x_display_info): New member
12506	x_pending_autoraise_frame, going to replace...
12507	* xterm.c (pending_autoraise_frame): ...static variable.
12508	(x_new_focus_frame, XTread_socket): Adjust users.
12509	* w32term.h (struct w32_display_info): New member
12510	w32_pending_autoraise_frame, going to replace...
12511	* w32term.c (pending_autoraise_frame): ...global variable.
12512	(x_new_focus_frame, w32_read_socket): Adjust users.
12513
125142013-09-17  Glenn Morris  <rgm@gnu.org>
12515
12516	* xdisp.c (message_dolog): If we create *Messages*,
12517	switch it to messages-buffer-mode.
12518
125192013-09-17  Paul Eggert  <eggert@cs.ucla.edu>
12520
12521	Don't overuse 'const' in types of locals.
12522	* bidi.c (bidi_count_bytes):
12523	* gtkutil.c, gtkutil.h (xg_event_is_for_menubar)
12524	(xg_event_is_for_scrollbar):
12525	* xselect.c (x_handle_property_notify)
12526	(x_handle_selection_notify, x_handle_dnd_message):
12527	* xsettings.c, xsettings.h (xft_settings_event):
12528	* xterm.c (x_handle_net_wm_state, handle_one_event)
12529	(x_menubar_window_to_frame, x_detect_focus_change)
12530	(construct_mouse_click, note_mouse_movement)
12531	(x_scroll_bar_to_input_event, x_scroll_bar_expose)
12532	(x_scroll_bar_handle_click, x_scroll_bar_note_movement)
12533	(handle_one_xevent, x_handle_net_wm_state):
12534	* xterm.h (x_handle_property_notify, x_handle_selection_notify)
12535	(x_handle_dnd_message):
12536	Avoid unnecessary 'const', typically the second 'const' in
12537	'const foo * const arg', a 'const' that does not affect the API
12538	and doesn't significantly help the human reader.
12539
125402013-09-17  Dmitry Antipov  <dmantipov@yandex.ru>
12541
12542	* image.c (fn_g_type_init) [WINDOWSNT]: Define and load
12543	only if Glib < 2.36.0.
12544	(fn_g_type_init) [!WINDOWSNT]: Define only if Glib < 2.36.0.
12545	* xsettings.c (init_gconf, init_gsettings): Do not check
12546	for g_type_init.
12547	* xterm.c (handle_one_xevent): Do not call to x_clear_area
12548	if GTK >= 2.7.0.
12549	(toplevel) [USE_MOTIF]: Include xlwmenu.h to pacify GCC.
12550
125512013-09-16  Jan Djärv  <jan.h.d@swipnet.se>
12552
12553	* xsettings.c (init_gconf, init_gsettings): Check for Glib 2.36.0
12554	before calling g_type_init.
12555
12556	* font.c (syms_of_font): Move call to syms_of_(ns|mac)font ...
12557
12558	* nsterm.m (syms_of_nsterm): ... to here.
12559
125602013-09-16  Dmitry Antipov  <dmantipov@yandex.ru>
12561
12562	* xterm.c (toolkit_scroll_bar_interaction): Use bool for boolean.
12563	(ignore_next_mouse_click_timeout): Use Time as X does.
12564	(handle_one_xevent): Avoid cast and use unsigned comparison.
12565
125662013-09-16  Dmitry Antipov  <dmantipov@yandex.ru>
12567
12568	Do not copy X event in handle_one_xevent except KeyPress case.
12569	Wnen XEvent is processed, it is unlikely to be changed except
12570	KeyPress case, so we can avoid copying and use const pointer to
12571	const data to make sure that an event is not changed elsewhere.
12572	* xterm.c (handle_one_xevent): Change 2nd arg to 'const XEvent *
12573	const' and do not create local copy except for the KeyPress event.
12574	Use casts to avoid a few glitches.  Adjust formatting.  Add comments.
12575	(SET_SAVED_BUTTON_EVENT): Remove and move the code to the only user.
12576	(x_handle_net_wm_state, x_menubar_window_to_frame)
12577	(x_detect_focus_change, construct_mouse_click, note_mouse_movement)
12578	(x_scroll_bar_to_input_event, x_scroll_bar_expose)
12579	(x_scroll_bar_handle_click, x_scroll_bar_note_movement):
12580	* gtkutil.c (xg_event_is_for_menubar, xg_event_is_for_scrollbar):
12581	* xselect.c (x_handle_property_notify, x_handle_selection_notify)
12582	(x_handle_dnd_message):
12583	* xsettings.c (xft_settings_event):
12584	Use 'const XEvent * const' where appropriate.
12585	* xterm.h, gtkutil.h, xsettings.h: Adjust related prototypes.
12586
125872013-09-16  Dmitry Antipov  <dmantipov@yandex.ru>
12588
12589	Fix X event waiting to handle multiple frames.
12590	* frame.h (struct frame) [HAVE_X_WINDOWS]: New member wait_event_type.
12591	* xterm.c (pending_event_wait): Remove.  Adjust users.
12592	(x_detect_focus_change): Pass frame arg.
12593	(handle_one_xevent): Find related frame early and clear per-frame
12594	wait_event_type only if this is an event for the relevant frame.
12595	(x_wait_for_event): Use per-frame wait_event_type.
12596
125972013-09-15  Jan Djärv  <jan.h.d@swipnet.se>
12598
12599	* nsfns.m (Fx_create_frame): Fix font driver registration for
12600	GNUstep.
12601
12602	* font.c (syms_of_font): Check MAC_OS_X_VERSION_MAX_ALLOWED >= 1050
12603	for syms_of_macfont.
12604
12605	* nsterm.m: Include macfont.h.
12606	(ns_tmp_flags, ns_tmp_font): Remove.
12607	(ns_compute_glyph_string_overhangs): Check for driver Qns.
12608	(ns_draw_glyph_string): Use local variables instead of ns_tmp_flags,
12609	ns_tmp_font.  Call ns_draw_text_decoration here instead of nsfont.m.
12610	(changeFont:): Fix code style.  Check for font driver type when
12611	getiing font.
12612
12613	* nsterm.h (FONT_DESCENT, FONT_ASCENT): Define to (f)->ascent and
12614	(f)->descent.
12615
12616	* nsfont.m (ns_tmp_flags, ns_tmp_font): Remove.
12617	(nsfont_open): Set font driver type.
12618	Set font->ascent and font->descent.  Figure out font instead of
12619	ns_tmp_font, and flags instead of ns_tmp_flags.
12620	Fix indentation.  Remove call to ns_draw_text_decoration,
12621	moved to nsterm.
12622
12623	* nsfns.m: Include macfont.h.
12624	(Fx_create_frame): Register macfont driver, make a better default font.
12625	(Fns_popup_font_panel): Get font from macfont driver, if used.
12626
12627	* macfont.m, macfont.h, macuvs.h: New files.
12628
12629	* font.h: Declare syms_of_macfont.
12630
12631	* font.c (syms_of_font): Call syms_of_macfont.
12632
12633	* Makefile.in (NS_OBJ, SOME_MACHINE_OBJECTS): Add macfont.o.
12634
126352013-09-15  Dmitry Antipov  <dmantipov@yandex.ru>
12636
12637	Drop VERTICAL_SCROLL_BAR_WIDTH_TRIM.  For X, it is zero since 1999,
12638	and it is always zero for others, so I assume that this is an ancient
12639	leftover which nobody will want to change any more.
12640	* xterm.h, w32term.h, nsterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Remove.
12641	(VERTICAL_SCROLL_BAR_INSIDE_WIDTH):
12642	* frame.c (x_set_scroll_bar_width):
12643	* w32fns.c (w32_createscrollbar):
12644	* w32term.c (w32_set_vertical_scroll_bar):
12645	* xfns.c (x_set_scroll_bar_default_width):
12646	* xterm.c (XTflash, x_scroll_bar_create, XTset_vertical_scroll_bar)
12647	(x_scroll_bar_expose): Related users changed.
12648
126492013-09-15  Dmitry Antipov  <dmantipov@yandex.ru>
12650
12651	* xterm.h (FRAME_X_SCREEN_NUMBER): Add comment.
12652	(BLACK_PIX_DEFAULT, WHITE_PIX_DEFAULT): Use FRAME_X_SCREEN_NUMBER.
12653	(SCROLL_BAR_X_WIDGET, SET_SCROLL_BAR_X_WIDGET) [USE_X_TOOLKIT]:
12654	Define as such.
12655	* frame.h (FRAME_SMALLEST_CHAR_WIDTH, FRAME_SMALLEST_FONT_HEIGHT):
12656	Define once here...
12657	* nsterm.h, w32term.h, xterm.h: ...and not here.
12658	* w32term.h (SCROLL_BAR_X_WIDGET, SET_SCROLL_BAR_X_WIDGET):
12659	Remove unused Xisms.
12660	* xterm.c, xfns.c (toplevel): Remove #ifdef HAVE_X_WINDOWS because
12661	these modules are never compiled otherwise.
12662
126632013-09-14  Eli Zaretskii  <eliz@gnu.org>
12664
12665	* buffer.c (syms_of_buffer) <left-margin-width, right-margin-width>:
12666	Doc fix.  (Bug#15375)
12667
126682013-09-13  Dmitry Antipov  <dmantipov@yandex.ru>
12669
12670	Unify Fx_focus_frame between all ports.
12671	* frame.h (x_focus_frame): New prototype.
12672	* xfns.c (Fx_focus_frame): Remove.
12673	(syms_of_xfns): Do not defsubr it.
12674	(x_focus_frame): X implementation.
12675	* nsfns.m (Fx_focus_frame): Remove.
12676	(syms_of_nsfns): Do not defsubr it.
12677	(x_focus_frame): NS implementation.
12678	* w32term.c (Fx_focus_frame): Remove.
12679	(x_focus_on_frame): Rename to...
12680	(x_focus_frame): W32 implementation.
12681	* w32term.h (x_focus_on_frame): Remove prototype.
12682	* w32fns.c (Fx_focus_frame): Remove.
12683	(syms_of_w32fns): Do not defsubr it.
12684	* frame.c (Fx_focus_frame): Define here.
12685	(syms_of_frame): Defsubr here.
12686	* gtkutil.c (xg_tool_bar_callback): Use x_focus_frame.
12687
126882013-09-13  Dmitry Antipov  <dmantipov@yandex.ru>
12689
12690	Unify FRAME_window_system_DISPLAY_INFO macros between all ports.
12691	All of them are replaced with FRAME_DISPLAY_INFO, defined in
12692	each port to reference the port-specific window system data.
12693	* msdos.h (FRAME_X_DISPLAY_INFO): Remove.
12694	(FRAME_DISPLAY_INFO): Define.
12695	* w32term.h (FRAME_W32_DISPLAY_INFO, FRAME_X_DISPLAY_INFO): Remove.
12696	(FRAME_DISPLAY_INFO): Define.  Adjust users.
12697	* xterm.h (FRAME_X_DISPLAY_INFO): Remove.
12698	(FRAME_DISPLAY_INFO): Define.  Adjust users.
12699	* frame.h (FRAME_RES_X, FRAME_RES_Y): Unify.
12700	* font.c, frame.c, gtkutil.c, image.c, menu.c, msdos.c, nsfns.m:
12701	* nsfont.m, nsterm.m, w32fns.c, w32font.c, w32menu.c, w32term.c:
12702	* w32xfns.c, widget.c, xdisp.c, xfaces.c, xfns.c, xfont.c, xmenu.c:
12703	* xselect.c, xterm.c: All related users changed.
12704
127052013-09-13  Dmitry Antipov  <dmantipov@yandex.ru>
12706
12707	* xterm.h (x_window_to_frame, x_any_window_to_frame)
12708	(x_menubar_window_to_frame): Remove prototypes.
12709	* xfns.c (x_window_to_frame, x_any_window_to_frame)
12710	(x_menubar_window_to_frame, x_top_window_to_frame):
12711	Move from here...
12712	* xterm.c (x_window_to_frame, x_any_window_to_frame)
12713	(x_menubar_window_to_frame, x_top_window_to_frame):
12714	...to here and convert all but the last to static.
12715
127162013-09-12  Eli Zaretskii  <eliz@gnu.org>
12717
12718	* lisp.mk (lisp): Add w32-common-fns.elc.
12719
127202013-09-12  Xue Fuqiao  <xfq.free@gmail.com>
12721
12722	* charset.c (char_charset): Document an exception for char-charset.
12723
127242013-09-12  Dmitry Antipov  <dmantipov@yandex.ru>
12725
12726	* xterm.h (x_display_info): New field last_user_time...
12727	* xterm.c (toplevel): ...to replace static last_user_time.
12728	(handle_one_xevent, x_ewmh_activate_frame): Adjust users.
12729
127302013-09-12  Dmitry Antipov  <dmantipov@yandex.ru>
12731
12732	* xterm.c (x_set_scroll_bar_thumb) [USE_LUCID && !HAVE_XAW3D]: Clip
12733	scroll bar values to prevent thumb from disappear and update comment.
12734
127352013-09-11  Glenn Morris  <rgm@gnu.org>
12736
12737	* emacs.c (usage_message): Possessive apostrophe tweak.
12738
127392013-09-11  Dmitry Antipov  <dmantipov@yandex.ru>
12740
12741	* nsterm.m (syms_of_nsterm): Use Qns.
12742	* w32fns.c (Fx_open_connection): Remove old '#if 0' code.
12743	* w32term.c (w32_create_terminal, syms_of_w32term): Use Qw32.
12744	* xfns.c (x_display_info_for_name, Fx_open_connection):
12745	Remove old '#if 0' code.
12746	(syms_of_xfns): Use Qx.
12747	* termhooks.h (fullscreen_hook): Remove the leftover.
12748	(struct terminal): Fix typo in comment.
12749
127502013-09-11  Dmitry Antipov  <dmantipov@yandex.ru>
12751
12752	Cleaning up a few X scroll bar bits.
12753	* termhooks.h (enum scroll_bar_part): Add scroll_bar_nowhere member.
12754	* xterm.h (struct scroll_bar) [USE_TOOLKIT_SCROLL_BARS && USE_LUCID]:
12755	New member last_seen_part, going to replace...
12756	* xterm.c [USE_TOOLKIT_SCROLL_BARS]: ...global last_scroll_bar_part.
12757	(xt_action_hook) [USE_LUCID]: Adjust user.
12758	(xm_scroll_callback, xg_scroll_callback): Do not bloat with
12759	Lucid-specific scroll bar support.
12760	(xaw_jump_callback, xaw_scroll_callback): Prefer enum scroll_par_part
12761	to int and adjust to use last_seen_part member.
12762	(x_set_toolkit_scroll_bar_thumb) [USE_LUCID]: Adjust user.
12763	(x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS && USE_LUCID]:
12764	Initialize last_seen_part.
12765
127662013-09-11  Stefan Monnier  <monnier@iro.umontreal.ca>
12767
12768	* insdel.c (insert_from_buffer_1): Don't mark buffer as modified when
12769	insert-buffer-substring an empty string.
12770
127712013-09-11  Paul Eggert  <eggert@cs.ucla.edu>
12772
12773	* xdisp.c (Ftool_bar_lines_needed): Declare as 'const' if ifdeffed out,
12774	avoiding a GCC warning.
12775
127762013-09-11  Dmitry Antipov  <dmantipov@yandex.ru>
12777
12778	Ifdef away frame tool bar code when it is not really used.
12779	* frame.h (struct frame) [HAVE_WINDOW_SYSTEM && !USE_GTK && !HAVE_NS]:
12780	Move tool_bar_window, desired_tool_bar_string, current_tool_bar_string
12781	and minimize_tool_bar_window_p under the above.
12782	(fset_current_tool_bar_string, fset_desired_tool_bar_string)
12783	(fset_tool_bar_window): Likewise.
12784	* dispnew.c (clear_current_matrices, clear_desired_matrices)
12785	(adjust_frame_glyphs_for_window_redisplay, free_glyphs, update_frame)
12786	(change_frame_size_1):
12787	* window.c (window_from_coordinates, Frecenter): Adjust users.
12788	* window.h (WINDOW_TOOL_BAR_P): Define to zero when frame tool bar
12789	code is not really used.
12790	* xdisp.c (build_desired_tool_bar_string, display_tool_bar_line)
12791	(tool_bar_lines_needed, MAX_FRAME_TOOL_BAR_HEIGHT, tool_bar_item_info)
12792	(get_tool_bar_item, handle_tool_bar_click, note_tool_bar_highlight)
12793	[!USE_GTK && !HAVE_NS]: Define as such.
12794	(Ftool_bar_lines_needed, redisplay_tool_bar, show_mouse_face)
12795	(note_mouse_highlight, expose_frame):
12796	* xfns.c (x_set_tool_bar_lines):
12797	* xterm.c (handle_one_xevent): Adjust users.
12798
127992013-09-11  Paul Eggert  <eggert@cs.ucla.edu>
12800
12801	Fix corruption with multiple emacsclient -t instances (Bug#15222).
12802	This bug was introduced by my 2013-08-26 patch, which incorrectly
12803	assumed that the terminfo implementation doesn't use termcap buffers.
12804	* term.c (init_tty) [TERMINFO]: Remove optimization, as
12805	these buffers apparently are used after all.
12806	* termchar.h (TERMCAP_BUFFER_SIZE) [TERMINFO]: Define here too.
12807	(struct tty_display_info): Define members termcap_term_buffer and
12808	termcap_strings_buffer even if TERMINFO.
12809
128102013-09-11  Dmitry Antipov  <dmantipov@yandex.ru>
12811
12812	Fix last change.
12813	* data.c (Feqlsign, Flss, Fgtr, Fleq, Fgeq): Add convenient
12814	'usage' docstring entry to pacify make-docfile.
12815
128162013-09-11  Barry O'Reilly  <gundaetiapo@gmail.com>
12817
12818	Change comparison functions =, <, >, <=, >= to take many arguments.
12819	* data.c: Change comparison functions' interface and implementation.
12820	* lisp.h: Make arithcompare available for efficient two arg
12821	comparisons.
12822	* bytecode.c: Use arithcompare.
12823	* fileio.c: Use new interface.
12824
128252013-09-11  Stefan Monnier  <monnier@iro.umontreal.ca>
12826
12827	* keyboard.c (read_char): Don't break immediate_echo (bug#15332).
12828
128292013-09-10  Stefan Monnier  <monnier@iro.umontreal.ca>
12830
12831	* eval.c (Feval): Document the new use of `lexical'.
12832
128332013-09-09  Dmitry Antipov  <dmantipov@yandex.ru>
12834
12835	Review and drop old frame resize hack.
12836	* frame.h (struct frame): Remove force_flush_display_p.
12837	* dispnew.c (update_frame): Adjust user and don't call
12838	flush_frame here.  The comment has said that there was an issues
12839	with redisplaying fringes, but I don't see any differences with
12840	and without this hack.  Hopefully we can continue without it.
12841	* xdisp.c (clear_garbaged_frames): Adjust user and do not clear
12842	current frame matrices twice if resized_p is set.
12843
128442013-09-09  Dmitry Antipov  <dmantipov@yandex.ru>
12845
12846	Do not populate pure Xism x_sync to other ports.
12847	* frame.h (x_sync): Move under HAVE_X_WINDOWS.
12848	* frame.c (other_visible_frames) [HAVE_X_WINDOWS]: Use as such.
12849	* nsfns.m, w32xfns.c (x_sync): Remove no-op.
12850	* w32term.h (x_sync): Remove prototype.
12851
128522013-09-09  Dmitry Antipov  <dmantipov@yandex.ru>
12853
12854	Cleanup frame flushing.
12855	* dispextern.h (struct redisplay_interface):
12856	Drop flush_display_optional because flush_display is enough
12857	for X and flushing via RIF is just a no-op for others.
12858	* frame.h (flush_frame): New function.
12859	* dispnew.c (update_frame):
12860	* minibuf.c (read_minibuf):
12861	* xdisp.c (echo_area_display, redisplay_preserve_echo_area):
12862	Use it.
12863	* keyboard.c (detect_input_pending_run_timers): Do not flush
12864	all frames but selected one in redisplay_preserve_echo_area.
12865	* nsterm.m (ns_flush): Remove no-op.
12866	(ns_redisplay_interface): Adjust user.
12867	* w32term.h (x_flush): Remove no-op.
12868	(w32_redisplay_interface): Adjust user.
12869	* xterm.c (x_flush): Simplify because we do not flush all
12870	frames at once any more.  Adjust comment.
12871	(x_redisplay_interface): Adjust user.
12872
128732013-09-07  Paul Eggert  <eggert@cs.ucla.edu>
12874
12875	Port --without-x --enable-gcc-warnings to Fedora 19.
12876	* gfilenotify.c (globals_of_gfilenotify):
12877	Call g_type_init only if using an older glib version that needs it.
12878
128792013-09-06  Dmitry Antipov  <dmantipov@yandex.ru>
12880
12881	* lisp.h (last_glyphless_glyph_frame, last_glyphless_glyph_face_id)
12882	(last_glyphless_glyph_merged_face_id): Remove declarations.
12883	* dispextern.h (merge_glyphless_glyph_face): Add prototype.
12884	* xdisp.c (last_glyphless_glyph_frame, last_glyphless_glyph_face_id)
12885	(last_glyphless_glyph_merged_face_id): Now static.
12886	(merge_escape_glyph_face): New function, refactored from...
12887	(get_next_display_element): ...here.
12888	(merge_glyphless_glyph_face): New function, refactored from...
12889	(produce_glyphless_glyph): ...here...
12890	* term.c (produce_glyphless_glyph): ...and here.
12891
128922013-09-06  Stefan Monnier  <monnier@iro.umontreal.ca>
12893
12894	* eval.c (eval_sub): Only call Ffunction if necessary.
12895
128962013-09-06  Dmitry Antipov  <dmantipov@yandex.ru>
12897
12898	Attempt to make redisplay more selective when changing cursor type.
12899	* frame.h (struct frame): New bitfield cursor_type_changed.
12900	* xdisp.c (cursor_type_changed): Remove.
12901	(try_cursor_movement, redisplay_window, try_window_id)
12902	(set_frame_cursor_types, try_window_reusing_current_matrix):
12903	Adjust to use per-frame bitfield.
12904	(redisplay_internal): Look for cursor type change on each visible
12905	frame and consider all frames if cursor type has been changed on
12906	the frame other than selected.  If cursor type has been changed on
12907	selected frame only, do not use fast update.
12908
129092013-09-06  Dmitry Antipov  <dmantipov@yandex.ru>
12910
12911	Attempt to make redisplay more selective when changing fonts.
12912	* frame.h (struct frame): New bitfield fonts_changed.
12913	* dispextern.h (fonts_changed_p, adjust_glyphs): Remove declaration.
12914	(adjust_frame_glyphs): Add prototype.
12915	* dispnew.c (fonts_changed_p): Remove.
12916	(adjust_glyphs): Remove because we do not
12917	adjust matrices on all frames at once any more.
12918	(adjust_frame_glyphs): Block and unblock input here.
12919	(adjust_glyph_matrix): Use fonts_changed.
12920	(change_frame_size_1): Use adjust_frame_glyphs.
12921	* font.c (font_open_entity): Use fonts_changed.
12922	* frame.c (set_menu_bar_lines, Fmake_terminal_frame):
12923	* w32fns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_show_tip):
12924	* window.c (Fdelete_other_windows_internal, Fwindow_resize_apply)
12925	(Fsplit_window_internal, Fdelete_window_internal, grow_mini_window)
12926	(shrink_mini_window, Fresize_mini_window_internal)
12927	(window_scroll_pixel_based, Fset_window_configuration)
12928	(apply_window_adjustment, Fset_window_vscroll):
12929	* xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_show_tip):
12930	Use adjust_frame_glyphs.
12931	* xdisp.c (redisplay_tool_bar, redisplay_window, try_window)
12932	(try_window_reusing_current_matrix, try_window_id, display_line)
12933	(IT_EXPAND_MATRIX_WIDTH): Use fonts_changed.
12934	(redisplay_internal): Consider fonts_changed and adjust frame
12935	matrices for each frame only if the frame is visible.  If font
12936	has been changed on some frame during full redisplay, retry
12937	only visible frames where the font has been actually changed.
12938
129392013-09-05  Dmitry Antipov  <dmantipov@yandex.ru>
12940
12941	Cache current header and mode line height for each window.
12942	* window.h (struct window): New fields mode_line_height
12943	and header_line_height.
12944	* window.c (make_window): Initialize them.
12945	* dispextern.h (CURRENT_MODE_LINE_HEIGHT)
12946	(CURRENT_HEADER_LINE_HEIGHT): Use them.  Adjust comment.
12947	(current_mode_line_height, current_header_line_height):
12948	Remove declaration.
12949	* xdisp.c (current_mode_line_height, current_header_line_height):
12950	Remove.
12951	(pos_visible_p, init_xdisp): Adjust user.
12952	(redisplay_window): Invalidate mode_line_height and
12953	header_line_height if current and desired matrices do not agree.
12954
129552013-09-05  Dmitry Antipov  <dmantipov@yandex.ru>
12956
12957	* fontset.c, window.c, xdisp.c (toplevel): Use TERM_HEADER.
12958	* xfaces.c (toplevel) [HAVE_X_WINDOWS]: Do not include xterm.h twice.
12959
129602013-09-05  Dmitry Antipov  <dmantipov@yandex.ru>
12961
12962	Make --without-x compatible with --enable-gcc-warnings.
12963	* font.c (register_font_driver): Move check under HAVE_WINDOW_SYSTEM.
12964	* font.h (struct font_driver): Move draw, get_bitmap and free_bitmap
12965	members under HAVE_WINDOW_SYSTEM.
12966	* keyboard.c (make_lispy_focus_out): Likewise.
12967	(record_menu_key): Move under HAVE_MENUS.
12968	* xdisp.c (toplevel): Move hourglass_shown_p, hourglass_atimer and
12969	THIN_SPACE_WIDTH under HAVE_WINDOW_SYSTEM.
12970	(syms_of_xdisp): Adjust user.
12971	(window_box_edges): Define only if HAVE_WINDOW_SYSTEM.
12972	(start_hourglass, cancel_hourglass):
12973	* xfaces.c (toplevel): Likewise with PT_PER_INCH,
12974	clear_font_table_count, CLEAR_FONT_TABLE_COUNT
12975	and CLEAR_FONT_TABLE_NFONTS.
12976	(set_font_frame_param, clear_face_gcs, realize_non_ascii_face):
12977	Declare only if HAVE_WINDOW_SYSTEM.
12978	(lface_same_font_attributes_p, clear_face_gcs): Define only
12979	if HAVE_WINDOW_SYSTEM.
12980
129812013-09-05  Dmitry Antipov  <dmantipov@yandex.ru>
12982
12983	* frame.c (check_minibuf_window): Update 'frame' with frame pointer.
12984	* xterm.c (x_scroll_bar_handle_click) [!USE_TOOLKIT_SCROLL_BARS]:
12985	Don't pass C integer to XINT (tiny fix for 2013-09-03 change).
12986
129872013-09-05  Stefan Monnier  <monnier@iro.umontreal.ca>
12988
12989	* cmds.c (Fself_insert_command): Don't pass a non-integer to XINT.
12990
129912013-09-04  Paul Eggert  <eggert@cs.ucla.edu>
12992
12993	* alloc.c (make_event_array): First arg is now ptrdiff_t, not int.
12994	This fixes a type error on hosts where ptrdiff_t is wider than int.
12995
129962013-09-04  Stefan Monnier  <monnier@iro.umontreal.ca>
12997
12998	* keyboard.c (read_key_sequence_vs): New function.
12999	(Fread_key_sequence_vector, Fread_key_sequence): Use it to factor out
13000	common code.
13001
13002	* callint.c (Fcall_interactively): Always return a vector for 'K'.
13003
130042013-09-04  Paul Eggert  <eggert@cs.ucla.edu>
13005
13006	Makefile improvements.
13007	* Makefile.in (config.status): Don't use double-colon rules, as
13008	they are not portable according to POSIX.  Fix shell typo with `;
13009	I guess this rule has never been tested?
13010	(VCSWITNESS): New macro, to override any environment var.
13011
130122013-09-04  Dmitry Antipov  <dmantipov@yandex.ru>
13013
13014	* xterm.h (struct x_display_info): Do not track X connection
13015	fd separately because it is always available from Display.
13016	* xterm.c (x_term_init, x_delete_terminal, x_delete_display):
13017	Adjust users.
13018
130192013-09-03  Dmitry Antipov  <dmantipov@yandex.ru>
13020
13021	* buffer.c (drop_overlay):
13022	* fileio.c (restore_point_unwind): Prefer unchain_marker to
13023	Fset_marker (X, Qnil, ...) (which is the same but a bit slower).
13024
130252013-09-03  Dmitry Antipov  <dmantipov@yandex.ru>
13026
13027	* buffer.c (Fmake_overlay, Fmove_overlay):
13028	* intervals.c (set_point_from_marker):
13029	* print.c (PRINTPREPARE): Prefer signal_error
13030	to plain error and report unsuitable marker too.
13031
130322013-09-03  Dmitry Antipov  <dmantipov@yandex.ru>
13033
13034	* xterm.h (struct scroll_bar): Prefer int to Lisp_Object
13035	for 'dragging' member.
13036	(struct x_output): Remove set-but-unused leftovers
13037	'left_before_move' and 'top_before_move'.
13038	* gtkutil.c (xg_set_toolkit_scroll_bar_thumb):
13039	* xterm.c (xt_action_hook, xm_scroll_callback, xg_scroll_callback)
13040	(xg_end_scroll_callback, xaw_jump_callback, xaw_scroll_callback)
13041	(x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
13042	(x_scroll_bar_set_handle, XTset_vertical_scroll_bar)
13043	(x_scroll_bar_handle_click, x_scroll_bar_note_movement)
13044	(x_scroll_bar_report_motion, x_set_offset): Related users changed.
13045	* xfns.c, image.c (XLIB_ILLEGAL_ACCESS): No longer needed.
13046
130472013-09-03  Jan Djärv  <jan.h.d@swipnet.se>
13048
13049	* nsfont.m (INVALID_GLYPH): New define.
13050	(nsfont_encode_char): Use INVALID_GLYPH.
13051	(ns_uni_to_glyphs): Ditto, check for NSNullGlyph (Bug#15138).
13052
130532013-09-02  Dmitry Antipov  <dmantipov@yandex.ru>
13054
13055	* xterm.c (x_last_mouse_movement_time): Revert last change.
13056	This code should use XDisplayMotionBufferSize to check display's
13057	motion history first, and there are few other issues as well.
13058	(x_scroll_bar_note_movement): Pass XMotionEvent rather than XEvent.
13059	(handle_one_xevent): Adjust user.
13060
130612013-09-02  Martin Rudalics  <rudalics@gmx.at>
13062
13063	* dispnew.c (Flast_nonminibuf_frame): Move from here ...
13064	* frame.c (Flast_nonminibuf_frame): ... to here.
13065	(check_minibuf_window): Don't abort if no window was found
13066	(Bug#15247).
13067
130682013-09-02  Dmitry Antipov  <dmantipov@yandex.ru>
13069
13070	Use XGetMotionEvents to ask the last mouse motion time from X server.
13071	* xterm.c (X_MOTION_HISTORY): Default to 1.
13072	(x_last_mouse_movement_time) [X_MOTION_HISTORY]: New function.
13073	(x_last_mouse_movement_time) [!X_MOTION_HISTORY]: Legacy version.
13074	(note_mouse_movement, x_scroll_bar_note_movement) [!X_MOTION_HISTORY]:
13075	Ifdef away legacy code.
13076	(XTmouse_position, x_scroll_bar_report_motion):
13077	Use x_last_mouse_movement_time.
13078	(handle_one_xevent): Use event.xunmap and not event.xmap when handling
13079	UnmapNotify event.
13080
130812013-09-02  Dmitry Antipov  <dmantipov@yandex.ru>
13082
13083	* msdos.c (last_mouse_window): Move to...
13084	(dos_rawgetc): ...this function and adjust comment.
13085	* nsterm.m (last_window): Rename to last_mouse_window, move to...
13086	(mouseMoved): ...this function and adjust comment.
13087	* w32term.c (last_window): Likewise with...
13088	(w32_read_socket): ...this function.
13089	* xterm.c (last_window): Likewise with...
13090	(handle_one_xevent): ...this function.
13091
130922013-09-02  Dmitry Antipov  <dmantipov@yandex.ru>
13093
13094	* window.h (Vmouse_window, Vmouse_event): Remove the leftovers.
13095	* xterm.c (toplevel): Drop obsolete comment and move compose_status...
13096	(handle_one_xevent): ...to here.
13097	(STORE_KEYSYM_FOR_DEBUG): Move under ENABLE_CHECKING and make no-op
13098	otherwise.
13099
131002013-09-02  Dmitry Antipov  <dmantipov@yandex.ru>
13101
13102	* msdos.c (IT_set_terminal_window): Remove no-op.
13103	(initialize_msdos_display): Adjust terminal setup.
13104	* w32console.c (w32con_set_terminal_window): Remove no-op.
13105	(initialize_w32_display): Adjust terminal setup.
13106	* w32term.c (w32_set_terminal_window): Remove no-op.
13107	(w32_create_terminal): Adjust terminal setup.
13108	* xterm.c (XTset_terminal_window): Remove no-op.
13109	(x_create_terminal): Adjust terminal setup.
13110
131112013-09-01  Dmitry Antipov  <dmantipov@yandex.ru>
13112
13113	* nsterm.m (ns_set_terminal_modes, ns_reset_terminal_modes):
13114	Remove no-ops.
13115	(ns_create_terminal): Adjust terminal setup.
13116	* w32term.c (w32_set_terminal_modes, w32_reset_terminal_modes):
13117	Remove no-ops.
13118	(w32_create_terminal): Adjust terminal setup.
13119	* xterm.c (XTset_terminal_modes, XTreset_terminal_modes):
13120	Remove no-ops.
13121	(x_create_terminal): Adjust terminal setup.
13122
131232013-09-01  Dmitry Antipov  <dmantipov@yandex.ru>
13124
13125	* dispextern.h (SET_TEXT_POS_FROM_MARKER): Indent.
13126	(CLIP_TEXT_POS_FROM_MARKER): New macro.
13127	* dispnew.c (buffer_posn_from_coords):
13128	* window.c (Fwindow_end, displayed_window_lines):
13129	* xdisp.c (redisplay_mode_lines): Use it.
13130
131312013-09-01  Jan Djärv  <jan.h.d@swipnet.se>
13132
13133	* fontset.c (face_for_char): Check char in the current face font first
13134	if HAVE_NS (Bug#15138).
13135
131362013-08-31  Martin Rudalics  <rudalics@gmx.at>
13137
13138	* window.c (temp_output_buffer_show): Make sure window returned
13139	by display_buffer is live (Bug#15213).
13140
131412013-08-30  Dmitry Antipov  <dmantipov@yandex.ru>
13142
13143	Minor cleanup to avoid forward declarations.
13144	* coding.h (struct ccl_spec): Remove forward declaration.
13145	* composite.h (toplevel): Include font.h.
13146	(struct composition_it, struct face, struct font_metrics):
13147	Remove forward declaration.
13148	* dispextern.h (struct image, struct atimer): Likewise.
13149	* emacsgtkfixed.h (struct frame): Likewise.
13150	* emacsgtkfixed.c (toplevel): Reorder headers and drop stdio.h.
13151	* font.h (struct font_driver, struct font, struct glyph_string)
13152	(struct face): Remove forward declaration.
13153	* fontset.h (struct face, struct font): Likewise.
13154	* frame.h (toplevel): Style cleanup.
13155	(enum output_method): Move to...
13156	* termhooks.h (enum output_method): ...here.
13157	(struct glyph, struct frame, struct ns_display_info)
13158	(struct x_display_info, struct w32_display_info):
13159	Remove forward declaration.
13160	* xterm.h (toplevel): Include termhooks.h.
13161	(struct font, struct window, struct glyph_matrix, struct frame)
13162	(struct input_event, struct face, struct image): Remove forward
13163	declaration.
13164	* gtkutil.h (struct _widget_value): Likewise.
13165	* keyboard.h (toplevel): Include termhooks.h.
13166	(struct input_event): Remove forward declaration.
13167
131682013-08-29  Dmitry Antipov  <dmantipov@yandex.ru>
13169
13170	* intervals.c (set_point_from_marker): New function.
13171	* editfns.c (Fgoto_char):
13172	* process.c (Finternal_default_process_filter):
13173	* window.c (select_window_1): Use it.
13174	* buffer.h (set_point_from_marker): Add prototype.
13175
131762013-08-29  Eli Zaretskii  <eliz@gnu.org>
13177
13178	* w32.c (term_winsock): Call release_listen_threads before calling
13179	WSACleanup.
13180	(_sys_wait_accept): Wait for accept event in a loop with a finite
13181	timeout, instead of waiting indefinitely.  Will hopefully avoid
13182	hanging during exit because WSACleanup deadlocks waiting for the
13183	event object to be released.  (Bug#14333)
13184
13185	* w32proc.c (release_listen_threads): New function, signals all
13186	the reader threads that listen for connections to stop waiting.
13187
13188	* w32.h (release_listen_threads): Add prototype.
13189
131902013-08-29  Dmitry Antipov  <dmantipov@yandex.ru>
13191
13192	* alloc.c (Fmake_marker, build_marker): Zero need_adjustment
13193	field of new marker (for sanity and safety).
13194	* lisp.h (XSETMARKER): Remove unused macro (it doesn't work
13195	anyway because XMISCTYPE is a function and can't be an lvalue).
13196
131972013-08-29  Dmitry Antipov  <dmantipov@yandex.ru>
13198
13199	* xterm.c (x_clear_area): Lost 7th arg because it is always False.
13200	(x_after_update_window_line, x_scroll_bar_create)
13201	(x_scroll_bar_set_handle, XTset_vertical_scroll_bar)
13202	(handle_one_xevent, x_clear_frame_area):
13203	* gtkutil.c (xg_clear_under_internal_border, xg_update_scrollbar_pos):
13204	* xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines): Adjust users.
13205	* xterm.h (x_clear_area): Adjust prototype.
13206
132072013-08-29  Dmitry Antipov  <dmantipov@yandex.ru>
13208
13209	Hook scanning and indentation functions to find_newline.  This helps
13210	to avoid duplicated code and renders more respect to newline cache.
13211	* lisp.h (scan_newline): Prefer ptrdiff_t to EMACS_INT.
13212	* cmds.c (Fforward_line):
13213	* indent.c (scan_for_column, Fcurrent_indentation, indented_beyond_p):
13214	Use find_newline and avoid unnecessary point movements.
13215	* search.c (scan_newline): Implement on top of find_newline.
13216
132172013-08-28  Stefan Monnier  <monnier@iro.umontreal.ca>
13218
13219	* eval.c (Ffuncall): Fix handling of ((lambda ..) ..) in lexically
13220	scoped code (bug#11258).
13221
132222013-08-28  Davor Cubranic  <cubranic@stat.ubc.ca>  (tiny change)
13223
13224	* nsterm.m (last_window): New variable.
13225	(EV_TRAILER2): New macro.
13226	(EV_TRAILER): Call EV_TRAILER2.
13227	(mouseMoved:): Add support for mouse-autoselect-window
13228	on nextstep (Bug#6888).
13229
132302013-08-28  Andreas Schwab  <schwab@suse.de>
13231
13232	* regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE, CHAR_HEAD_P)
13233	(SINGLE_BYTE_CHAR_P, SAME_CHARSET_P, MAKE_CHAR, BYTE8_TO_CHAR):
13234	Remove unused macro definitions.
13235	(CHARSET_RANGE_TABLE_BITS, EXTEND_RANGE_TABLE)
13236	(SET_RANGE_TABLE_WORK_AREA_BIT, SET_RANGE_TABLE_WORK_AREA):
13237	Only define if emacs.
13238
132392013-08-28  Dmitry Antipov  <dmantipov@yandex.ru>
13240
13241	Prefer enum glyph_row_area to int where appropriate.
13242	* dispextern.h (enum glyph_row_area): Add ANY_AREA member.
13243	Fix comment.
13244	(window_box, window_box_width, window_box_left, window_box_left_offset)
13245	(window_box_right, window_box_right_offset): Adjust prototypes.
13246	* xdisp.c (window_box, window_box_width, window_box_left)
13247	(window_box_left_offset, window_box_right, window_box_right_offset):
13248	Use enum glyph_row_area.  Adjust users and tweak comment where needed.
13249	(window_box_edges): Likewise.  Lost 2nd arg since it is always ANY_AREA.
13250	* nsterm.m (ns_clip_to_row):
13251	* w32term.c (w32_clip_to_row):
13252	* xterm.c (x_clip_to_row): Likewise.
13253
132542013-08-28  Dmitry Antipov  <dmantipov@yandex.ru>
13255
13256	* buffer.c (Foverlays_at, Foverlays_in, Fnext_overlay_change)
13257	(Fprevious_overlay_change): Fast path for buffer with no overlays.
13258
132592013-08-28  Paul Eggert  <eggert@cs.ucla.edu>
13260
13261	* Makefile.in (SHELL): Now @SHELL@, not /bin/sh,
13262	for portability to hosts where /bin/sh has problems.
13263
132642013-08-28  Dmitry Antipov  <dmantipov@yandex.ru>
13265
13266	Redesign redisplay interface to drop global output_cursor.
13267	* dispextern.h (struct redisplay_interface): Remove cursor_to member.
13268	(toplevel): Remove declaration of output_cursor.
13269	(set_output_cursor, x_cursor_to): Remove prototype.
13270	* window.h (struct window): New member output_cursor.
13271	(output_cursor_to): New function to replace RIF member.
13272	* dispnew.c (redraw_overlapped_rows, update_marginal_area)
13273	(update_text_area, set_window_cursor_after_update): Use it.
13274	* xdisp.c (output_cursor, set_output_cursor, x_cursor_to): Remove.
13275	(x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
13276	* nsterm.m (ns_update_window_begin, ns_update_window_end):
13277	* w32term.c (x_update_window_begin, x_update_window_end):
13278	* xterm.c (x_update_window_begin, x_update_window_end):
13279	Adjust to use per-window output cursor.
13280
132812013-08-27  Paul Eggert  <eggert@cs.ucla.edu>
13282
13283	Simplify SELECT_TYPE-related code.
13284	Like EMACS_TIME, this portability layer is no longer needed, since
13285	Emacs has been using fd_set as a portability layer for some time.
13286	* sysselect.h (FD_SETSIZE): Rename from MAXDESC.  All uses changed.
13287	(SELECT_TYPE): Remove.  All uses changed to fd_set.
13288	(fd_set) [!FD_SET]: New typedef.
13289
13290	Simplify EMACS_TIME-related code.
13291	This portability layer is no longer needed, since Emacs has been
13292	using struct timespec as a portability layer for some time.
13293	* atimer.h, buffer.h, dispextern.h, xgselect.h:
13294	Include <time.h> rather than "systime.h"; that's all that's needed now.
13295	* dispnew.c: Include <timespec.h> rather than "systime.h";
13296	that's all that's needed now.
13297	* systime.h (EMACS_TIME): Remove.  All uses changed to struct timespec.
13298	(EMACS_TIME_RESOLUTION): Remove.  All uses changed to
13299	TIMESPEC_RESOLUTION.
13300	(LOG10_EMACS_TIME_RESOLUTION): Remove.  All uses changed to
13301	LOG10_TIMESPEC_RESOLUTION.
13302	(EMACS_SECS, emacs_secs_addr): Remove.  All uses changed to tv_sec.
13303	(EMACS_NSECS): Remove.  All uses changed to tv_nsec.
13304	(make_emacs_time): Remove.  All used changed to make_timespec.
13305	(invalid_timespec): Rename from invalid_emacs_time.  All uses changed.
13306	(current_timespec): Rename from current_emacs_time.  All uses changed.
13307	(add_emacs_time): Remove.  All uses changed to timespec_add.
13308	(sub_emacs_time): Remove.  All uses change dot timespec_sub.
13309	(EMACS_TIME_SIGN): Remove.  All uses changed to timespec_sign.
13310	(timespec_valid_p): Rename from EMACS_TIME_VALID_P.  All uses changed.
13311	(EMACS_TIME_FROM_DOUBLE): Remove.  All uses changed to dtotimespec.
13312	(EMACS_TIME_TO_DOUBLE): Remove.  All uses changed to timespectod.
13313	(current_timespec): Rename from current_emacs_time.  All uses changed.
13314	(EMACS_TIME_EQ, EMACS_TIME_LT, EMACS_TIME_LE): Remove.  All uses
13315	changed to timespec_cmp.
13316	* xgselect.c: Include <timespec.h>, since our .h files don't.
13317
133182013-08-27  Dmitry Antipov  <dmantipov@yandex.ru>
13319
13320	* xterm.h (FONT_TYPE_FOR_UNIBYTE, FONT_TYPE_FOR_MULTIBYTE:)
13321	* nsterm.h (FONT_TYPE_FOR_UNIBYTE, FONT_TYPE_FOR_MULTIBYTE):
13322	Remove the leftovers.
13323	* gtkutil.c (toplevel): Do not declare Qxft but include
13324	font.h to do so.
13325	* image.c (toplevel): Do not declare Vlibrary_cache because
13326	it's already done in lisp.h.
13327
133282013-08-27  Dmitry Antipov  <dmantipov@yandex.ru>
13329
13330	* lisp.h (Mouse_HLInfo): Move from here...
13331	* dispextern.h (Mouse_HLInfo): ...to here and offload lisp.h.
13332	(reset_mouse_highlight): New function.
13333	* msdos.c (dos_set_window_size, IT_update_begin)
13334	(internal_terminal_init):
13335	* nsterm.m (ns_update_window_end, x_free_frame_resources)
13336	(ns_initialize_display_info):
13337	* w32console.c (initialize_w32_display):
13338	* w32term.c (x_update_window_end, x_free_frame_resources)
13339	(w32_initialize_display_info):
13340	* xterm.c (x_update_window_end, x_free_frame_resources, x_term_init):
13341	* window.c (Fdelete_other_windows_internal):
13342	* xdisp.c (clear_mouse_face, cancel_mouse_face): Use it.
13343	* termchar.h (toplevel):
13344	* xterm.h (toplevel): Include dispextern.h.
13345
133462013-08-26  Paul Eggert  <eggert@cs.ucla.edu>
13347
13348	Fix minor problems found by static checking.
13349	* image.c (XGetPixel, XPutPixel) [HAVE_NS]: Now static.
13350	(expect): Avoid nested-if warning.
13351	(x_build_heuristic_mask) [HAVE_NS]: Avoid unused-var warning.
13352	* nsmenu.m (fillWithWidgetValue:): Avoid type warning.
13353	* nsterm.h, nsterm.m (ns_select):
13354	* xgselect.c, xgselect.h (xg_select):
13355	Adjust signature to better match pselect's.
13356	* nsterm.m (ns_select):
13357	Don't set *TIMEOUT, since pselect doesn't.
13358	* regex.c (whitespace_regexp): Now const_re_char *, to avoid
13359	diagnostic about assigning const char * to it.
13360	* xfaces.c (x_display_info) [HAVE_NS]: Remove; unused.
13361
133622013-08-26  Stefan Monnier  <monnier@iro.umontreal.ca>
13363
13364	* lread.c (substitute_object_recurse): Handle hash-tables as well
13365	(bug#15190).
13366
133672013-08-26  Paul Eggert  <eggert@cs.ucla.edu>
13368
13369	Fix unlikely core dump in init_tty, and simplify terminfo case.
13370	* term.c (init_tty) [TERMINFO]: Fix check for buffer overrun.
13371	The old version incorrectly dumped core if malloc returned a
13372	buffer containing only non-NUL bytes.
13373	(init_tty): Do not allocate or free termcap buffers; the
13374	struct does that for us now.
13375	* termchar.h (TERMCAP_BUFFER_SIZE) [!TERMINFO]: New constant.
13376	(struct tty_display_info): Define members termcap_term_buffer and
13377	termcap_strings_buffer only if !TERMINFO, since terminfo doesn't
13378	use them.  Allocate them directly in struct rather than indirectly
13379	via a pointer, to simplify init_tty.
13380
13381	* frame.c (check_minibuf_window): Initialize 'window' properly,
13382	so that Emacs reliably aborts later if 'window' is not initialized.
13383
133842013-08-26  Jan Djärv  <jan.h.d@swipnet.se>
13385
13386	* gtkutil.c (xg_initialize): Set gtk-menu-bar-accel to "" instead
13387	of VoidSymbol (Bug#15154).
13388
133892013-08-26  Dmitry Antipov  <dmantipov@yandex.ru>
13390
13391	* lisp.h (Mouse_HLInfo): Drop set-but-unused members
13392	mouse_face_beg_y and mouse_face_end_y.
13393	* xdisp.c (note_tool_bar_highlight, mouse_face_from_buffer_pos)
13394	(mouse_face_from_string_pos, note_mode_line_or_margin_highlight):
13395	Adjust users and update comment where appropriate.
13396
133972013-08-26  Martin Rudalics  <rudalics@gmx.at>
13398
13399	* frame.c (check_minibuf_window): New function.
13400	(delete_frame, Fmake_frame_invisible, Ficonify_frame):
13401	Call check_minibuf_window (Bug#15183).
13402
134032013-08-26  Dmitry Antipov  <dmantipov@yandex.ru>
13404
13405	* window.h (struct window): Replace last_cursor with last_cursor_vpos
13406	because this is the only last cursor data we need to keep and consult.
13407	* window.c (replace_window, set_window_buffer, Fsplit_window_internal):
13408	* xdisp.c (mark_window_display_accurate_1, try_cursor_movement):
13409	Adjust users.
13410
134112013-08-26  Dmitry Antipov  <dmantipov@yandex.ru>
13412
13413	Fix recovering from possible decompression error.
13414	Since insert_from_gap doesn't always move point, we can't use PT as
13415	the position where the partially decompressed data ends, and
13416	should count how many bytes was produced so far.
13417	* decompress.c (struct decompress_unwind_data): Add nbytes member.
13418	(unwind_decompress): Really delete partially uncompressed data.
13419	(Fzlib_decompress_region): Take decompressed data size into account.
13420
134212013-08-26  Dmitry Antipov  <dmantipov@yandex.ru>
13422
13423	* syntax.c (init_syntax_once): Adjust comment and do an early
13424	initialization of Qchar_table_extra_slots just once...
13425	* casetab.c (init_casetab_once):
13426	* category.c (init_category_once):
13427	* character.c (syms_of_character):
13428	* coding.c (syms_of_coding):
13429	* xdisp.c (syms_of_xdisp): ...and omit it here.
13430
134312013-08-24  Eli Zaretskii  <eliz@gnu.org>
13432
13433	* xdisp.c (get_next_display_element): Don't apply to characters
13434	from a display vector the logic of setting it->end_of_box_run_p
13435	suitable for characters from a buffer.  (Bug#15175)
13436
13437	* w32.c (fdutimens): Call 'utime', which is implemented on w32.c
13438	to handle directories, rather than '_utime' which doesn't.
13439	(Bug#15176)
13440
134412013-08-24  Jan Djärv  <jan.h.d@swipnet.se>
13442
13443	* gtkutil.c (x_wm_set_size_hint): Don't set hints when maximized
13444	or fullscreen (Bug#14627).
13445
134462013-08-24  Paul Eggert  <eggert@cs.ucla.edu>
13447
13448	System-dependent integer overflow fixes.
13449	* process.c (Fset_process_window_size): Signal an error if
13450	the window size is outside the range supported by the lower level.
13451	* sysdep.c (set_window_size): Return negative on error,
13452	nonnegative on success, rather than -1, 0, 1 on not in system,
13453	failure, success.  This is simpler.  Caller changed.
13454	(serial_configure): Remove unnecessary initialization of local.
13455	(procfs_get_total_memory) [GNU_LINUX]: Don't assume system memory
13456	size fits in unsigned long; this isn't true on some 32-bit hosts.
13457	Avoid buffer overrun if some future version of /proc/meminfo has a
13458	variable name longer than 20 bytes.
13459	(system_process_attributes) [__FreeBSD__]:
13460	Don't assume hw.availpages fits in 'int'.
13461
134622013-08-23  Paul Eggert  <eggert@cs.ucla.edu>
13463
13464	Don't let very long directory names overrun the stack.
13465	Fix some related minor problems involving "//", vfork.
13466	* callproc.c (encode_current_directory): New function.
13467	(call_process): Don't append "/"; not needed.
13468	* fileio.c (file_name_as_directory_slop): New constant.
13469	(file_name_as_directory): Allow SRC to be longer than SRCLEN;
13470	this can save the caller having to alloca.
13471	(Ffile_name_as_directory, Fdirectory_file_name, Fexpand_file_name):
13472	Use SAFE_ALLOCA, not alloca.
13473	(directory_file_name, Fexpand_file_name): Leave leading "//"
13474	alone, since it can be special even on POSIX platforms.
13475	* callproc.c (call_process):
13476	* process.c (Fformat_network_address):
13477	* sysdep.c (sys_subshell):
13478	Use encode_current_directory rather than rolling our own.
13479	(create_process): No need to encode directory; caller does that now.
13480	* process.h (encode_current_directory): New decl.
13481	* sysdep.c (sys_subshell): Work even if vfork trashes saved_handlers.
13482	Rework to avoid 'goto xyzzy;'.
13483
134842013-08-23  Eli Zaretskii  <eliz@gnu.org>
13485
13486	* xdisp.c (handle_face_prop): If the default face was remapped use
13487	the remapped face for strings from prefix properties.  (Bug#15155)
13488
134892013-08-23  Dmitry Antipov  <dmantipov@yandex.ru>
13490
13491	Minor cleanup for redisplay interface and few related functions.
13492	* frame.h (enum text_cursor_kinds): Move from here...
13493	* dispextern.h (enum text_cursor_kinds): ...to here.
13494	(toplevel): Drop unnecessary declarations.
13495	(struct redisplay_interface): Use bool and enum text_cursor_kinds
13496	in update_window_end_hook and draw_window_cursor functions.
13497	(display_and_set_cursor, x_update_cursor): Adjust prototypes.
13498	* nsterm.m (ns_update_window_end, ns_draw_window_cursor):
13499	* w32term.c (x_update_window_end, w32_draw_window_cursor):
13500	* xterm.c (x_update_window_end, x_draw_window_cursor):
13501	* xdisp.c (display_and_set_cursor, update_window_cursor)
13502	(update_cursor_in_window_tree, x_update_cursor): Use bool and
13503	enum text_cursor_kinds where appropriate.
13504
135052013-08-23  Dmitry Antipov  <dmantipov@yandex.ru>
13506
13507	Redesign redisplay interface to drop updated_row and updated_area.
13508	* dispextern.h (updated_row, updated_area): Remove declaration.
13509	(struct redisplay_interface): Pass glyph row and row area parameters
13510	to write_glyphs, insert_glyphs and clear_end_of_line functions.
13511	(x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
13512	Adjust prototypes.
13513	* dispnew.c (updated_row, updated_area): Remove.
13514	(redraw_overlapped_rows, update_window_line): Adjust user.
13515	(update_marginal_area, update_text_area): Likewise.  Pass updated row
13516	as a parameter.  Prefer enum glyph_row_area to int where appropriate.
13517	* xdisp.c (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
13518	Adjust users.
13519
135202013-08-22  Paul Eggert  <eggert@cs.ucla.edu>
13521
13522	* process.c (flush_pending_output): Remove stub.
13523	All uses removed.
13524
135252013-08-21  Paul Eggert  <eggert@cs.ucla.edu>
13526
13527	* callproc.c: Fix race that killed background processes (Bug#15144).
13528	(call_process): New arg TEMPFILE_INDEX.  Callers changed.
13529	Record deleted process-id in critical section, not afterwards.
13530	Don't mistakenly kill process created by a call-process invocation
13531	that discards output and does not wait.
13532
135332013-08-21  Dmitry Antipov  <dmantipov@yandex.ru>
13534
13535	Fix compilation with GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE
13536	and GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES.
13537	* alloc.c (toplevel): Remove unnecessary nested #if...#endif.
13538	(mark_maybe_object) [!GC_MARK_STACK]: Define to emacs_abort
13539	to shut up compiler in mark_object.
13540	(dump_zombies): Convert to global and add EXTERNALLY_VISIBLE.
13541
135422013-08-21  Paul Eggert  <eggert@cs.ucla.edu>
13543
13544	* process.c (allocate_pty) [PTY_OPEN]: Set fd's FD_CLOEXEC flag.
13545	We can't portably rely on PTY_OPEN doing that, even if
13546	it calls posix_openpt with O_CLOEXEC.
13547
135482013-08-20  Kenichi Handa  <handa@gnu.org>
13549
13550	* character.c (string_char): Improve commentary.
13551
135522013-08-20  Paul Eggert  <eggert@cs.ucla.edu>
13553
13554	* image.c (SIGNATURE_DIGESTSIZE): Remove.
13555	(struct animation_cache): Make signature a flexible array member.
13556	All uses changed.  This is a tad slower but may insulate us better
13557	from future changes to ImageMagick.
13558
135592013-08-19  Paul Eggert  <eggert@cs.ucla.edu>
13560
13561	* image.c: Shrink memory needed for animation cache.
13562	(SIGNATURE_DIGESTSIZE): New constant.
13563	(struct animation_cache): Make 'signature' a fixed size array of bytes.
13564	(imagemagick_create_cache): Copy the signature.  This saves
13565	several KB of memory that ImageMagick wastes per signature.
13566	Don't bother updating the update_time, as the caller does that now.
13567	(imagemagick_prune_animation_cache): Don't destroy the signature, as
13568	it's a fixed size struct member now.
13569	(imagemagick_get_animation_cache): Always destroy the signature,
13570	as it's now imagemagick_create_cache's responsibility to copy it.
13571	Avoid duplicate calls to strcmp and to imagemagick_create_cache,
13572	and use memcmp rather than strcmp.
13573	eassert that ImageMagick returns a signature of the specified length.
13574
135752013-08-19  Lars Magne Ingebrigtsen  <larsi@gnus.org>
13576
13577	* image.c (imagemagick_get_animation_cache): Don't segfault on
13578	each invocation.
13579	(imagemagick_get_animation_cache): Revert to previous definition
13580	so that it actually works.  But keep the memory leak fix.
13581	(imagemagick_get_animation_cache): Fix memory leak.
13582
135832013-08-19  Paul Eggert  <eggert@cs.ucla.edu>
13584
13585	* image.c: Fix animation cache signature memory leak.
13586	Fix some other minor performance problems while we're at it.
13587	(imagemagick_create_cache): Clear just the members that
13588	need clearing.  Don't set update_time, as caller does that now.
13589	(imagemagick_prune_animation_cache, imagemagick_get_animation_cache):
13590	Simplify by using pointer-to-pointer instead of a prev pointer.
13591	(imagemagick_prune_animation_cache): Use make_emacs_time rather
13592	than EMACS_TIME_FROM_DOUBLE, and DestroyString rather than free.
13593	(imagemagick_get_animation_cache): Don't xstrdup the image signature;
13594	it's already a copy.  Free the signature probe unless it's cached.
13595
13596	* process.c (handle_child_signal): Fix crash; deleted pid (Bug#15106).
13597	This was introduced by my 2013-08-12 fix for Bug#15035.
13598
135992013-08-19  Dmitry Antipov  <dmantipov@yandex.ru>
13600
13601	* image.c (imagemagick_create_cache, imagemagick_get_animation_cache)
13602	(imagemagick_prune_animation_cache): Now static.
13603
136042013-08-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
13605
13606	* image.c (imagemagick_get_animation_cache): Don't segfault when
13607	pruning all entries.
13608
136092013-08-18  Ken Brown  <kbrown@cornell.edu>
13610
13611	* sheap.c (STATIC_HEAP_SIZE): Adjust to current needs; use bigger
13612	static heap if ENABLE_CHECKING is defined.
13613	(max_bss_sbrk_ptr): New variable.
13614	(bss_sbrk): Use it.
13615	(report_sheap_usage): Report maximum static heap usage instead of
13616	ending static heap usage.
13617
136182013-08-17  Eli Zaretskii  <eliz@gnu.org>
13619
13620	* decompress.c (Fzlib_available_p) [WINDOWSNT]: Update the value
13621	of zlib_initialized according to the results of calling
13622	init_zlib_functions.
13623
136242013-08-16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
13625
13626	* image.c: Implement an ImageMagick per-image cache.
13627	(imagemagick_get_animation_cache): Fix a double-free error.
13628	(imagemagick_load_image): Remove the ping_wand code, which only
13629	apparently saved time on invalid animated images, and slowed down
13630	everything else.  Optimize for the common case.
13631
136322013-08-16  Xue Fuqiao  <xfq.free@gmail.com>
13633
13634	* buffer.c (syms_of_buffer) <buffer-undo-list>: Doc fix.
13635
13636	* editfns.c (insert_before_markers): Mention overlay in the doc string.
13637
13638	* marker.c (set_marker): Remove documentation of undefined behavior.
13639
136402013-08-15  Lars Magne Ingebrigtsen  <larsi@gnus.org>
13641
13642	* image.c (imagemagick_compute_animated_image): Animate correctly
13643	when sub-images are smaller than the main image.
13644	(imagemagick_compute_animated_image): Setting the iterator row to
13645	zero is apparently not allowed.
13646	(imagemagick_compute_animated_image): Allow images that say they
13647	have sub-images that are bigger than the main image, but just crop
13648	them.
13649
136502013-08-15  Jan Djärv  <jan.h.d@swipnet.se>
13651
13652	* nsmenu.m (menuWillOpen:): Fix preprocessor test (Bug#15001).
13653
136542013-08-15  Lars Magne Ingebrigtsen  <larsi@gnus.org>
13655
13656	* image.c (imagemagick_compute_animated_image): Respect the GIF
13657	disposal methods.
13658
136592013-08-15  Ken Brown  <kbrown@cornell.edu>
13660
13661	* emacs.c (main): Update comment about G_SLICE_ALWAYS_MALLOC.
13662	* gmalloc.c (memalign) [CYGWIN]: Revert last change; it's not
13663	needed.
13664
136652013-08-15  Paul Eggert  <eggert@cs.ucla.edu>
13666
13667	Fix minor problems found by static checking.
13668	* frame.c (delete_frame):
13669	* xdisp.c (next_element_from_display_vector):
13670	Avoid uninitialized local.
13671	* image.c (imagemagick_compute_animated_image): Port to C89.
13672	Prefer usual GNU indentation style for loops.
13673	Be more careful about bizarrely large sizes, by using ptrdiff_t
13674	instead of int.
13675
136762013-08-15  Dmitry Antipov  <dmantipov@yandex.ru>
13677
13678	Fix infinite frame selection loop (Bug#15025).
13679	* frame.c (delete_frame): Prefer fast ad-hoc loop to next_frame.
13680
136812013-08-15  Eli Zaretskii  <eliz@gnu.org>
13682
13683	* xdisp.c (compute_window_start_on_continuation_line):
13684	When WORD_WRAP is in effect, use move_it_to instead of move_it_by_lines
13685	to make sure we end up setting the window start at the leftmost
13686	visible character of the display line.  This avoids funky
13687	horizontal shifting because the window start is not kept on the
13688	same position.  (Bug#15090)
13689	(next_element_from_display_vector): Support 'box' face attribute
13690	in the face definitions of a display vector.  (Bug#15099)
13691
136922013-08-15  Lars Magne Ingebrigtsen  <larsi@gnus.org>
13693
13694	* image.c (imagemagick_compute_animated_image): Implement animated
13695	images (bug#14700).
13696	(imagemagick_compute_animated_image): Fix some compilation
13697	warnings.  Implement a very simple cache to make the animation
13698	usable at all, but it should be replaced with a per-image cache.
13699
137002013-08-15  Dmitry Antipov  <dmantipov@yandex.ru>
13701
13702	* lisp.h (FOR_EACH_ALIST_VALUE): New macro
13703	to do `for' loops over alist values.
13704	* buffer.h (FOR_EACH_BUFFER):
13705	* process.c (FOR_EACH_PROCESS): Use it.
13706	(handle_child_signal, status_notify, Fget_buffer_process)
13707	(kill_buffer_processes): Use FOR_EACH_PROCESS.
13708
137092013-08-15  Dmitry Antipov  <dmantipov@yandex.ru>
13710
13711	* term.c (get_named_tty, create_tty_output, tty_free_frame_resources)
13712	(tty_free_frame_resources, delete_tty): Prefer eassert to emacs_abort.
13713	* image.c (make_image_cache): For struct image_cache, prefer xmalloc
13714	to xzalloc and so avoid redundant call to memset.
13715	* xterm.c (x_term_init): Avoid unnecessary initializations of dpyinfo
13716	members because it is allocated with xzalloc and so already zeroed.
13717
137182013-08-14  Ken Brown  <kbrown@cornell.edu>
13719
13720	* gmalloc.c (memalign) [CYGWIN]: Rename to emacs_memalign
13721	(Bug#15094).
13722
137232013-08-14  Dmitry Antipov  <dmantipov@yandex.ru>
13724
13725	Utility function and macro to copy Lisp string to C string.
13726	* lisp.h (xlispstrdupa): New macro.
13727	(xlispstrdup): New prototype.
13728	* alloc.c (xlispstrdup): New function.
13729	* callint.c (Fcall_interactively):
13730	* fileio.c (Ffile_name_directory, Fexpand_file_name)
13731	(Fsubstitute_in_file_name):
13732	* frame.c (Fmake_terminal_frame): Use xlispstrdupa.
13733	* image.c (x_create_bitmap_from_file):
13734	* w32term.c (w32_term_init):
13735	* xterm.c (x_term_init): Use xlispstrdup.
13736
137372013-08-14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
13738
13739	* image.c (imagemagick_load_image): Make animated pictures work.
13740	There's still some problems with background color settings, though
13741	(bug#14700).
13742
13743	* decompress.c (unwind_decompress): Always restore point.
13744
137452013-08-14  Xue Fuqiao  <xfq.free@gmail.com>
13746
13747	* marker.c (set_marker): Reformat documentation.
13748
137492013-08-14  Paul Eggert  <eggert@cs.ucla.edu>
13750
13751	* xdisp.c (cursor_type_changed): Now static.
13752
13753	* image.c (imagemagick_filename_hint): New arg HINT_BUFFER.
13754	Use changed.  This avoids the need to call xmalloc and for the
13755	caller to call xfree, and avoids memory leaks in some situations.
13756
137572013-08-14  Dmitry Antipov  <dmantipov@yandex.ru>
13758
13759	* xdisp.c (adjust_window_ends): Move duplicated code to new function.
13760	(try_window, try_window_reusing_current_matrix, try_window_id): Use it.
13761	(redisplay_window): If window_end_valid is cleared due to non-zero
13762	windows_or_buffers_changed, clear current_matrix_up_to_date_p and
13763	so do not call to try_cursor_movement for that window.
13764
137652013-08-14  Dmitry Antipov  <dmantipov@yandex.ru>
13766
13767	* window.h (struct window): Convert window_end_pos and
13768	window_end_vpos from Lisp_Object to ptrdiff_t and int, respectively.
13769	(wset_window_end_pos, wset_window_end_vpos): Remove.
13770	* dispnew.c (adjust_glyph_matrix):
13771	* window.c (Fwindow_end, replace_window, set_window_buffer)
13772	(make_window):
13773	* xdisp.c (check_window_end, move_it_to, redisplay_internal)
13774	(set_vertical_scroll_bar, redisplay_window, try_window)
13775	(try_window_reusing_current_matrix, find_first_unchanged_at_end_row)
13776	(try_window_id, decode_mode_spec, mouse_face_from_buffer_pos)
13777	(note_mouse_highlight): Adjust users.
13778	(try_cursor_movement): Likewise.  Convert old precondition to eassert.
13779	Add comment.
13780
137812013-08-14  Dmitry Antipov  <dmantipov@yandex.ru>
13782
13783	Fix --enable-gcc-warnings errors introduced in 2013-08-13 commit.
13784	* image.c (imagemagick_filename_hint): Use `const char *' and
13785	prefer SSDATA to SDATA to avoid warnings.
13786
137872013-08-14  Dmitry Antipov  <dmantipov@yandex.ru>
13788
13789	Cleanup window fringes, margins and scroll bars adjustments.
13790	* window.c (set_window_fringes, set_window_margins)
13791	(set_window_scroll_bars, apply_window_adjustment): New functions.
13792	(set_window_buffer, Fset_window_margins, Fset_window_fringes)
13793	(Fset_window_scroll_bars): Use them.
13794
137952013-08-14  Dmitry Antipov  <dmantipov@yandex.ru>
13796
13797	* window.h (struct window): Convert scroll_bar_width
13798	from Lisp_Object to integer.  Adjust comment.
13799	(WINDOW_CONFIG_SCROLL_BAR_WIDTH, WINDOW_CONFIG_SCROLL_BAR_COLS):
13800	Adjust users.
13801	* window.c (wset_scroll_bar_width): Remove.
13802	(make_window): Initialize scroll_bar_width.
13803	(Fsplit_window_internal): Use direct assignment.
13804	(Fset_window_configuration, save_window_save):
13805	Convert Lisp_Object to integer and back where appropriate.
13806	(Fset_window_scroll_bars): Adjust user.  Return t if any scroll
13807	bar was actually changed, and mention this in docstring.
13808
138092013-08-13  Paul Eggert  <eggert@cs.ucla.edu>
13810
13811	* decompress.c: Minor simplifications.
13812	(Fzlib_decompress_region): Don't bother verifying
13813	that avail_out <= UINT_MAX, as that was confusing.
13814	Mention the restriction in a comment instead.
13815	Prefer 'int' to 'ptrdiff_t' when 'int' is wide enough.
13816
138172013-08-13  Jan Djärv  <jan.h.d@swipnet.se>
13818
13819	* nsmenu.m (x_activate_menubar): Check for OSX >= 10.5
13820	(trackingNotification:): Call ns_check_menu_open only for OSX >= 10.5.
13821
138222013-08-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
13823
13824	* image.c (imagemagick_filename_hint): Check for errors in the
13825	alist structure.
13826
138272013-08-13  Eli Zaretskii  <eliz@gnu.org>
13828
13829	* window.c (Fwindow_margins): Return nil when there's no marginal
13830	area, as per the documented API.
13831
13832	* w32term.c (x_scroll_bar_create): Use ALLOCATE_PSEUDOVECTOR, not
13833	Fmake_vector, as scroll bar's struct members are not all Lisp
13834	objects now.  This avoids crashes in GC.
13835
13836	* w32term.h (struct scroll_bar): Convert fringe_extended_p to a
13837	bool, so its address could be taken.
13838
138392013-08-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
13840
13841	* image.c (imagemagick_filename_hint): New function to possibly
13842	apply `image-content-type-suffixes'.
13843	(imagemagick_load_image): Use it.
13844
138452013-08-13  Eli Zaretskii  <eliz@gnu.org>
13846
13847	* decompress.c (Fzlib_decompress_region) [WINDOWSNT]: Return Qnil
13848	if loading zlib failed.
13849
138502013-08-13  Jan Djärv  <jan.h.d@swipnet.se>
13851
13852	* nsterm.m (ns_set_vertical_scroll_bar): Fix breakage intruduced by
13853	2013-08-13 checkin below.  Change bool to BOOL, rule is:
13854	All Obj-C code uses BOOL, except for interfaces callable from C.
13855
13856	* nsterm.h: Fix CGFloat for OSX 10.4 (Bug#15086).
13857
138582013-08-13  Dmitry Antipov  <dmantipov@yandex.ru>
13859
13860	* window.h (WINDOW_FRINGE_EXTENDED_P): New macro.
13861	* nsterm.m (ns_set_vertical_scroll_bar): Use it.  Use convenient
13862	bool instead of BOOL.
13863	* w32term.h (struct scroll_bar): Convert fringe_extended_p
13864	from Lisp_Object to bitfield.  Adjust comment.
13865	* w32term.c (x_scroll_bar_create): Adjust user.
13866	Use WINDOW_FRINGE_EXTENDED_P and bool for boolean.
13867	* xterm.c (XTset_vertical_scroll_bar): Likewise.
13868	Use bool for boolean.
13869	* xterm.h (struct scroll_bar): Prefer commonly used `unsigned'
13870	to `unsigned int' when defining a bitfield.
13871
138722013-08-13  Paul Eggert  <eggert@cs.ucla.edu>
13873
13874	* decompress.c (Fzlib_decompress_region): Try to clarify 'avail_out'.
13875
138762013-08-13  Dmitry Antipov  <dmantipov@yandex.ru>
13877
13878	* window.h (struct window): Convert left_margin_cols and
13879	right_margin_cols from Lisp_Objects to integers.  Adjust comment.
13880	(WINDOW_LEFT_MARGIN_COLS, WINDOW_RIGHT_MARGIN_COLS)
13881	(WINDOW_LEFT_MARGIN_WIDTH, WINDOW_RIGHT_MARGIN_WIDTH):
13882	Adjust users.
13883	* dispnew.c (margin_glyphs_to_reserve): Convert 3rd arg to int.
13884	Adjust comment.
13885	(showing_window_margins_p, update_window_line, update_frame_1):
13886	* fringe.c (draw_fringe_bitmap_1):
13887	* xdisp.c (window_box_width): Adjust users.
13888	* window.c (wset_left_margin_cols, wset_right_margin_cols): Remove.
13889	(adjust_window_margins, set_window_buffer, Fsplit_window_internal):
13890	Use direct assignment.
13891	(Fset_window_configuration, save_window_save, Fwindow_margins):
13892	Convert Lisp_Object to integer and back where appropriate.
13893	(Fset_window_margins): Adjust user.  Return t if any margin
13894	was actually changed, and mention this in docstring.
13895
138962013-08-13  Xue Fuqiao  <xfq.free@gmail.com>
13897
13898	* syntax.c (forward_word):
13899	* cmds.c (forward_char, backward_char): Mention the optional argument.
13900
139012013-08-13  Dmitry Antipov  <dmantipov@yandex.ru>
13902
13903	* window.h (struct window): Convert left_fringe_width
13904	and right_fringe_width from Lisp_Objects to integers.
13905	Adjust comment.
13906	(WINDOW_FRINGE_COLS, WINDOW_LEFT_FRINGE_WIDTH)
13907	(WINDOW_RIGHT_FRINGE_WIDTH): Adjust users.
13908	* window.c (wset_left_fringe_width, wset_right_fringe_width):
13909	Remove.
13910	(make_window): Initialize new integer fields to -1.
13911	(Fsplit_window_internal): Use direct assignment.
13912	(Fset_window_configuration, save_window_save):
13913	Convert Lisp_Object to integer and back where appropriate.
13914	(Fset_window_fringes): Adjust user.  Return t if any fringe
13915	was actually changed, and mention this in docstring.
13916
139172013-08-13  Dmitry Antipov  <dmantipov@yandex.ru>
13918
13919	* keyboard.c (Fdiscard_input): Do not increment update_mode_lines.
13920	* nsfns.m (x_set_cursor_type):
13921	* w32fns.c (x_set_cursor_type):
13922	* xfns.c (x_set_cursor_type): Do not set cursor_type_changed here...
13923	* xdisp.c (set_frame_cursor_types): ...but in common code.
13924
139252013-08-13  Dmitry Antipov  <dmantipov@yandex.ru>
13926
13927	* font.c (clear_font_cache): New function, stripped from...
13928	(Fclear_font_cache): ...here, which now uses the function
13929	above.  Adjust comment.
13930	* font.h (clear_font_cache): Add prototype.
13931	* xfaces.c (clear_face_cache): Use clear_font_cache.
13932
139332013-08-13  Dmitry Antipov  <dmantipov@yandex.ru>
13934
13935	* window.c (Fset_window_start): Compare `w', not `window' because
13936	`w' might not be equal to `window' after call to decode_live_window.
13937
139382013-08-12  Paul Eggert  <eggert@cs.ucla.edu>
13939
13940	* process.c (deactivate_process): Reset fds to -1 (Bug#15035).
13941	This fixes a problem introduced by the Bug#15035 patch
13942	when using GPG.  Reported by Herbert J. Skuhra.
13943
139442013-08-12  Eli Zaretskii  <eliz@gnu.org>
13945
13946	* decompress.c <zlib_initialized> [WINDOWSNT]: New static variable.
13947	(Fzlib_decompress_region) [WINDOWSNT]: Call init_zlib_functions if
13948	not yet initialized.
13949
139502013-08-12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
13951
13952	* decompress.c (Fzlib_decompress_region): Support zlib
13953	decompression, too, and rename.
13954
139552013-08-12  Paul Eggert  <eggert@cs.ucla.edu>
13956
13957	Minor zlib configuration tweaks.
13958	* decompress.c (fn_inflateInit2) [!WINDOWSNT]:
13959	Don't assume presence of fn_inflateInit2_ zlib internal function.
13960
139612013-08-12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
13962
13963	* decompress.c (Fzlib_decompress_gzipped_region): Rename to
13964	include the zlib prefix.
13965
139662013-08-12  Eli Zaretskii  <eliz@gnu.org>
13967
13968	* decompress.c [WINDOWSNT]: Include windows.h and w32.h.
13969	(DEF_ZLIB_FN, LOAD_ZLIB_FN) [WINDOWSNT]: New macros.  Use them to
13970	define static variables that are pointers to zlib functions to be
13971	dynamically loaded.
13972	(init_zlib_functions) [WINDOWSNT]: New function.
13973	(fn_inflateInit2_, fn_inflate, fn_inflateEnd, fn_inflateInit2):
13974	New macros.
13975	(Fdecompress_gzipped_region, unwind_decompress): Use the fn_*
13976	macros instead of invoking the zlib functions directly.
13977	(syms_of_decompress): DEFSYM Qzlib_dll.
13978	Staticpro Szlib_available_p.
13979
139802013-08-12  Dmitry Antipov  <dmantipov@yandex.ru>
13981
13982	Avoid looping over all frame windows to freeze and unfreeze.
13983	* window.h (struct window): Drop frozen_window_start_p.
13984	(freeze_window_starts): Drop prototype.
13985	* frame.h (struct frame): New frozen_window_starts flag.
13986	(FRAME_WINDOWS_FROZEN): New macro.
13987	* window.c (freeze_window_start, freeze_window_starts):
13988	Remove.
13989	(select_window, replace_window): Adjust users.
13990	* xdisp.c (resize_mini_window): Use FRAME_WINDOWS_FROZEN.
13991	(window_frozen_p): New function.
13992	(redisplay_window): Use it.
13993
139942013-08-12  Paul Eggert  <eggert@cs.ucla.edu>
13995
13996	Fix some fd issues when running subprocesses (Bug#15035).
13997	Fix bugs that can leak files or file descriptors on errors.
13998	Don't unlink open temp files, as that's hard for users to diagnose
13999	when things go awry (e.g., temp disk exhausted).
14000	Don't bother to lock temp files.  Check for invalid recursion.
14001	* callproc.c (synch_process_fd): Remove.  All uses removed.
14002	(synch_process_tempfile): New var or macro.
14003	(CALLPROC_STDOUT, CALLPROC_STDERR, CALLPROC_PIPEREAD, CALLPROC_FDS):
14004	New constants.
14005	(record_kill_process): New arg, the temp name.  All callers changed.
14006	(delete_temp_file): Now just a simple wrapper around unlink.
14007	(call_process_kill): New arg, the call_process_fd array.
14008	Close them all.  Clear synch_process_pid.  Remove the temp file,
14009	or arrange for it to be removed.
14010	(call_process_cleanup) [MSDOS]: Arg no longer contains file name;
14011	that's been moved to synch_process_tempfile.  Caller changed.
14012	Do not remove the tempfile; that's now call_process_kill's
14013	responsibility.
14014	(call_process_cleanup) [!MSDOS]: Do not record unwind-protect for
14015	call_process_kill; the caller now does that.
14016	(call_process_cleanup): Do not close the process fd; that's now
14017	call_process_kill's responsibility.
14018	(Fcall_process): Implement via new function call_process, which
14019	has most of the old body of Fcall_process, but with a different API.
14020	(call_process): New function that does not open or close filefd if
14021	it is nonnegative.  Record which fds need to be closed, and let
14022	call_process_kill close (and remove the tempfile, on MSDOS) on error.
14023	Signal an error if invoked recursively (could be done via a hook).
14024	Simplify creation of the tempfile in the MSDOS case.
14025	Don't create the output file until after checking for the executable.
14026	Report any failure to open /dev/null.
14027	Don't open /dev/null for writing twice; once is enough.
14028	Don't create pipe if all output is being discarded or sent to file.
14029	Don't worry about setting up the coding system or reading from the
14030	pipe if all output is being discarded.
14031	Hoist fd_error local into top level, to lessen block nesting.
14032	Don't record deleted pid here; now done by Fcall_process_region.
14033	(Fcall_process) [MSDOS]: Report mktemp failure immediately,
14034	and note its success in synch_process_tempfile.
14035	Do not leak resources when child_setup fails.
14036	(Fcall_process) [!MSDOS && !WINDOWSNT]: Remove duplicate assignment
14037	to child_errno.  Remove unnecessary close of fd0; it's close-on-exec.
14038	(create_temp_file): Now returns open fd, with an additional
14039	Lisp_Object * argument to return the name.  All callers changed.
14040	Do not close the file; rewind it instead, and leave it open for
14041	the caller.  Do not lock the temp file.  Unwind-protect the file
14042	and the file-descriptor.
14043	(Fcall_process_region): If the input is /dev/null, unwind-protect it.
14044	If an asynchrounous process, record it here, not in call_process.
14045	(syms_of_callproc) [MSDOS]: Initialize synch_process_tempfile.
14046	* eval.c (set_unwind_protect): New function.
14047	* fileio.c (write_region): New function, generalized from the
14048	old Fwrite_region.  Do not lock temp files.
14049	(Fwrite_region): Use it.
14050	* lisp.h (set_unwind_protect, write_region): New decls.
14051	* process.c: Include <verify.h>.
14052	(make_process): Mark fds as initially closed.
14053	(deleted_pid_list): Now a list of pid-filename pairs.
14054	All uses changed.
14055	(close_process_fd): New function.
14056	(SUBPROCESS_STDIN, WRITE_TO_SUBPROCESS, READ_FROM_SUBPROCESS)
14057	(SUBPROCESS_STDOUT, READ_FROM_EXEC_MONITOR, EXEC_MONITOR_OUTPUT):
14058	New constants.  Verify that their number matches PROCESS_OPEN_FDS.
14059	(create_process, create_pty, Fmake_serial_process)
14060	(server_accept_connection): Record which fds need to be closed,
14061	and let deactivate_process close them.
14062	(Fmake_network_process): Do not discard the unwind-protect
14063	until it's safe to do so.
14064	(deactivate_process): Close the fds opened by create_process etc.
14065	(Fprocess_send_eof): Adjust to new way of recording open fds.
14066	Report an error if /dev/null can't be opened, instead of aborting.
14067	* process.h (PROCESS_OPEN_FDS): New constant.
14068	(struct Lisp_Process): New member open_fds.
14069	(record_kill_process, record_deleted_pid): Adjust signatures.
14070	(record_deleted_pid): Move decl here ...
14071	* syswait.h (record_deleted_pid): ... from here.
14072
140732013-08-11  Paul Eggert  <eggert@cs.ucla.edu>
14074
14075	* decompress.c: Fix bugs with large buffers and weird inputs.
14076	Tune a bit.  Reindent as per usual Emacs style.
14077	(BUFFER_SIZE): Remove.
14078	(Fdecompress_gzipped_region): Do not mishandle input buffers with
14079	more than UINT_MAX bytes.  Decompress into the gap instead of into
14080	an auto buffer, as this should avoid copying.  Return nil if
14081	'inflate' returns Z_NEED_DICT, as we have no dictionary.  Do not
14082	set immediate_quit; we shouldn't trust zlib code that much.
14083
140842013-08-11  Lars Magne Ingebrigtsen  <larsi@gnus.org>
14085
14086	* decompress.c (Fdecompress_gzipped_region): Respect all zlib
14087	errors, and really move the gap to where we want it.
14088
14089	* lisp.h: Include decompress.c support.
14090
14091	* emacs.c (main): Include decompress.c support.
14092
14093	* Makefile.in: Include -lz if present.
14094
140952013-08-11  Jan Djärv  <jan.h.d@swipnet.se>
14096
14097	* nsmenu.m (ns_update_menubar): Call fillWithWidgetValue:frame:
14098	(initWithTitle:): Initialize frame to 0.
14099	(fillWithWidgetValue:): Call fillWithWidgetValue:frame.
14100	(fillWithWidgetValue:frame:): Rename from
14101	fillWithWidgetValue:setDelegate, call initWithTile:frame: if f.
14102
14103	* nsterm.h (EmacsMenu): fillWithWidgetValue:setDelegate renamed to
14104	fillWithWidgetValue:frame:
14105
14106	* nsfns.m (Fns_convert_utf8_nfd_to_nfc): Allocate and release pool to
14107	remove memory leak warnings.
14108
14109	* nsterm.m (menu_pending_title, ns_get_pending_menu_title): Remove.
14110	(ns_check_menu_open): Handle menu == nil.  Remove assignment to
14111	menu_pending_title.
14112
14113	* nsmenu.m (ns_update_menubar): Call fillWithWidgetValue:setDelegate.
14114	(x_activate_menubar): Update the whole menu.
14115	(trackingNotification:): Call ns_check_menu_open if tracking ends.
14116	(menuWillOpen:): Increment trackingMenu.  For OSX <= 10.6, exit if
14117	current event is not NSSystemDefined (Bug#15001).
14118	Call ns_check_menu_open only if trackingMenu is 2.
14119	(menuDidClose:): New method, decrease trackingMenu.
14120	(fillWithWidgetValue:setDelegate:): New method.
14121	(fillWithWidgetValue:): Call the above.
14122
14123	* nsterm.h (EmacsMenu): Add fillWithWidgetValue:setDelegate:
14124
141252013-08-11  Paul Eggert  <eggert@cs.ucla.edu>
14126
14127	Omit some unnecessary casts.
14128	Many of these go back to the old pre-C89 days, when they may have
14129	been needed, but we've been assuming C89 or later for a while now.
14130	* alloc.c (live_string_p, live_cons_p, live_symbol_p)
14131	(live_float_p, live_misc_p, live_vector_p):
14132	* buffer.c (compare_overlays, cmp_for_strings, mmap_find)
14133	(mmap_alloc, alloc_buffer_text, enlarge_buffer_text)
14134	(defvar_per_buffer):
14135	* callint.c (Fcall_interactively):
14136	* doc.c (Fsubstitute_command_keys):
14137	* filelock.c (get_boot_time):
14138	* frame.c (xrdb_get_resource):
14139	* gtkutil.c (hierarchy_ch_cb, qttip_cb, style_changed_cb)
14140	(delete_cb, xg_dialog_response_cb, xg_maybe_add_timer)
14141	(xg_get_file_name_from_selector, menuitem_destroy_callback)
14142	(menuitem_highlight_callback, menu_destroy_callback)
14143	(xg_update_menu_item, xg_modify_menubar_widgets, menubar_map_cb)
14144	(xg_tool_bar_callback, xg_get_tool_bar_widgets)
14145	(xg_tool_bar_detach_callback, xg_tool_bar_attach_callback)
14146	(xg_tool_bar_help_callback, tb_size_cb):
14147	* image.c (xpm_alloc_color, png_read_from_memory)
14148	(png_read_from_file, png_load_body, our_memory_skip_input_data)
14149	(jpeg_memory_src, jpeg_file_src, imagemagick_load_image)
14150	(syms_of_image):
14151	* keymap.c (describe_map):
14152	* nsfns.m (Fns_display_monitor_attributes_list):
14153	* nsmenu.m (process_dialog:):
14154	* nsterm.m (hold_event):
14155	* process.c (wait_reading_process_output):
14156	* regex.c (REGEX_REALLOCATE, re_set_registers, re_exec, regexec):
14157	* scroll.c (do_direct_scrolling, scrolling_1):
14158	* termcap.c (tgetent):
14159	* window.c (check_window_containing, add_window_to_list)
14160	(freeze_window_starts):
14161	* xdisp.c (compare_overlay_entries, vmessage):
14162	* xfns.c (x_window, x_get_monitor_attributes_xinerama)
14163	(x_get_monitor_attributes_xrandr)
14164	(Fx_display_monitor_attributes_list, x_display_info_for_name)
14165	(Fx_open_connection, file_dialog_cb, file_dialog_unmap_cb):
14166	* xfont.c (xfont_match, xfont_open):
14167	* xmenu.c (x_menu_wait_for_event, menu_highlight_callback)
14168	(menubar_selection_callback, menu_position_func)
14169	(popup_selection_callback, create_and_show_popup_menu)
14170	(dialog_selection_callback, create_and_show_dialog):
14171	* xrdb.c (x_get_string_resource)
14172	(main) [TESTRM]:
14173	* xsmfns.c (x_session_check_input):
14174	* xterm.c (x_draw_glyphless_glyph_string_foreground)
14175	(xm_scroll_callback, xg_scroll_callback, xg_end_scroll_callback)
14176	(xaw_jump_callback, xaw_scroll_callback):
14177	Omit unnecessary casts.
14178
141792013-08-10  Paul Eggert  <eggert@cs.ucla.edu>
14180
14181	Minor string-length refactoring.
14182	* alloc.c (xstrdup): Use memcpy, not strcpy, since the length's known.
14183	* frame.c (make_monitor_attribute_list):
14184	Prefer build_string to strlen + make_string.
14185
141862013-08-10  Jan Djärv  <jan.h.d@swipnet.se>
14187
14188	* xterm.c (x_error_handler): Also ignore BadWindow for X_SetInputFocus,
14189	don't check minor_code (Bug#14417).
14190
141912013-08-09  Eli Zaretskii  <eliz@gnu.org>
14192
14193	* xdisp.c (draw_glyphs): Don't compare row pointers, compare row
14194	vertical positions instead.  This avoids calling MATRIX_ROW with
14195	row numbers that are possibly beyond valid limits.  (Bug#15064)
14196
141972013-08-09  Dmitry Antipov  <dmantipov@yandex.ru>
14198
14199	Use xstrdup and build_unibyte_string where applicable.
14200	* alloc.c (xstrdup): Tiny cleanup.  Add eassert.
14201	* xfns.c (x_window):
14202	* xrdb.c (x_get_customization_string):
14203	* xterm.c (xim_initialize):
14204	* w32fns.c (w32_window): Use xstrdup.
14205	(w32_display_monitor_attributes_list):
14206	* emacs.c (init_cmdargs):
14207	* keyboard.c (PUSH_C_STR):
14208	* nsfont.m (nsfont_open):
14209	* sysdep.c (system_process_attributes):
14210	* w32.c (system_process_attributes):
14211	* xdisp.c (message1, message1_nolog): Use build_unibyte_string.
14212
142132013-08-09  Eli Zaretskii  <eliz@gnu.org>
14214
14215	* w32.c (PEXCEPTION_POINTERS, PEXCEPTION_RECORD, PCONTEXT): Define
14216	variables of these types so that GDB would know about them, as aid
14217	for debugging fatal exceptions.  (Bug#15024)  See also
14218	http://sourceware.org/ml/gdb/2013-08/msg00010.html for related
14219	discussions.
14220
142212013-08-08  Jan Djärv  <jan.h.d@swipnet.se>
14222
14223	* nsterm.m (ns_update_begin): Don't change clip path if it would be
14224	larger than the NSWindow (Bug#14934).
14225
142262013-08-08  Dmitry Antipov  <dmantipov@yandex.ru>
14227
14228	Redesign redisplay interface to drop global variable updated_window.
14229	Always pass currently updated window as a parameter to update routines.
14230	* dispextern.h (updated_window): Remove declaration.
14231	(struct redisplay_interface): Pass window parameter to
14232	write_glyphs, insert_glyphs, clear_end_of_line, cursor_to
14233	and after_update_window_hook.
14234	(x_write_glyphs, x_insert_glyphs, x_clear_end_of_line, x_cursor_to):
14235	Adjust prototypes.
14236	* dispnew.c (updated_window): Remove.
14237	(redraw_overlapped_rows, update_marginal_area, update_text_area)
14238	(update_window_line): Adjust to match redisplay interface changes.
14239	* nsterm.m (ns_update_window_begin, ns_update_window_end)
14240	(ns_scroll_run, ns_after_update_window_line):
14241	* w32term.c (x_update_window_begin, x_update_window_end)
14242	(x_after_update_window_line, x_scroll_run):
14243	* xterm.c (x_update_window_begin, x_update_window_end)
14244	(x_after_update_window_line, x_scroll_run):
14245	* xdisp.c (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
14246	Likewise.  Adjust comments where appropriate.
14247	(x_cursor_to): Simplify because this is always called during window
14248	update (but install debugging check anyway).
14249	(expose_window): Check must_be_updated_p flag to see whether this
14250	function is called during window update.
14251
142522013-08-08  Dmitry Antipov  <dmantipov@yandex.ru>
14253
14254	Do not reset window modification event counters excessively.
14255	These leftovers and poor man's tricky methods to catch extra
14256	redisplay's attention are no longer needed.
14257	* frame.c (set_menu_bar_lines_1):
14258	* minibuf.c (read_minibuf_unwind):
14259	* window.c (Fset_window_start, set_window_buffer, window_resize_apply)
14260	(grow_mini_window, shrink_mini_window, window_scroll_pixel_based)
14261	(window_scroll_line_based, Fset_window_configuration):
14262	* xdisp.c (redisplay_window): Do not reset last_modified and
14263	last_overlay_modified counters.
14264
142652013-08-07  Jan Djärv  <jan.h.d@swipnet.se>
14266
14267	* xselect.c (x_send_client_event): Set send_event and serial, memset
14268	data.l as it might be bigger than data.b.   Use 24 bit mask to
14269	XSendEvent (Bug#15034).
14270
142712013-08-07  Eli Zaretskii  <eliz@gnu.org>
14272
14273	* xdisp.c (prepare_menu_bars): Don't call x_consider_frame_title
14274	for TTY frames that are not the top frame on their console.
14275	(Bug#14616)
14276
142772013-08-07  Martin Rudalics  <rudalics@gmx.at>
14278
14279	* w32term.c (w32fullscreen_hook): Really maximize frame when
14280	asked for (Bug#14841).
14281
142822013-08-07  Dmitry Antipov  <dmantipov@yandex.ru>
14283
14284	Prefer selected_window to Fselected_window, likewise for frames.
14285	* buffer.c (Fbuffer_swap_text):
14286	* data.c (Fvariable_binding_locus):
14287	* window.c (run_window_configuration_change_hook): Adjust users.
14288	* w16select.c (Fw16_set_clipboard_data, Fw16_get_clipboard_data):
14289	Use decode_live_frame.
14290
142912013-08-07  Dmitry Antipov  <dmantipov@yandex.ru>
14292
14293	Be more careful if selected window shows the buffer other than current,
14294	use window_outdated only if this is not so.  This change should also
14295	address some weird issues discussed in Bug#13012.
14296	* window.h (window_outdated): New prototype.
14297	* window.c (window_outdated): Now here.  Convert from static and
14298	always assume window's buffer.
14299	(Fwindow_end, Fwindow_line_height): Use it.
14300	* xdisp.c (reconsider_clip_changes): Remove prototype, drop 2nd arg
14301	and always assume window's buffer.
14302	(redisplay_window): Adjust user.
14303	(redisplay_internal): Call to reconsider_clip_changes once and
14304	check whether mode line should be updated only if selected window
14305	shows current buffer.
14306	(run_window_scroll_functions): Use eassert for debugging check.
14307	(Fmove_point_visually, note_mouse_highlight): Use window_outdated.
14308
143092013-08-06  Dmitry Antipov  <dmantipov@yandex.ru>
14310
14311	* window.c (window_scroll, window_scroll_pixel_based)
14312	(window_scroll_line_based): Use bool for booleans.
14313
143142013-08-06  Paul Eggert  <eggert@cs.ucla.edu>
14315
14316	* process.c: Fix minor off-by-one issues in descriptor counts.
14317	This shouldn't fix any real bugs, but it cleans up the code a bit.
14318	(max_process_desc, max_input_desc): -1, not 0, means none.
14319	All uses changed.
14320	(delete_input_desc): New function.
14321	(delete_write_fd, delete_keyboard_wait_descriptor): Use it.
14322	(deactivate_process): Scan backwards when recomuting max_process_desc;
14323	that should be faster.
14324	(init_process_emacs): Initialize max_input_desc.
14325
143262013-08-06  Dmitry Antipov  <dmantipov@yandex.ru>
14327
14328	Use region cache to speedup bidi_find_paragraph_start.
14329	* buffer.h (struct buffer): New member bidi_paragraph_cache.
14330	Rename cache_long_line_scans to cache_long_scans.
14331	* buffer.c (bset_cache_long_line_scans): Rename to
14332	bset_cache_long_scans.
14333	(Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer)
14334	(Fbuffer_swap_text, init_buffer_once): Take bidi_paragraph_cache
14335	into account.
14336	(syms_of_buffer): Rename cache-long-line-scans to
14337	cache-long-scans.  Adjust docstring.
14338	* search.c (newline_cache_on_off):
14339	* indent.c (width_run_cache_on_off): Adjust users.
14340	* bidi.c (bidi_paragraph_cache_on_off): New function.
14341	(bidi_find_paragraph_start): Use bidi_paragraph_cache if needed.
14342	* insdel.c (prepare_to_modify_buffer):
14343	Invalidate bidi_paragraph_cache if enabled.
14344
143452013-08-06  Dmitry Antipov  <dmantipov@yandex.ru>
14346
14347	Invalidate region caches only if buffer text is going to be changed.
14348	* lisp.h (modify_region_1): Remove 3rd arg and rename to...
14349	(modify_text): ...new prototype.
14350	(prepare_to_modify_buffer_1): New prototype.
14351	* textprop.c (modify_region): Rename to...
14352	(modify_text_properties): ...new function.
14353	(add_text_properties_1, set_text_properties, Fremove_text_properties)
14354	(Fremove_list_of_text_properties): Adjust users.
14355	* insdel.c (modify_region_1): Remove 3rd arg and reimplement as...
14356	(modify_text): ...new function.
14357	(prepare_to_modify_buffer): Reimplement mostly as a wrapper for...
14358	(prepare_to_modify_buffer_1): ...new function.
14359	* casefiddle.c (casify_region):
14360	* editfns.c (Fsubst_char_in_region, Ftranslate_region_internal)
14361	(Ftranspose_regions): Use modify_text.
14362
143632013-08-05  Stefan Monnier  <monnier@iro.umontreal.ca>
14364
14365	* lisp.mk (lisp): Add nadvice.elc.
14366
143672013-08-05  Dmitry Antipov  <dmantipov@yandex.ru>
14368
14369	New macro to iterate over live buffers similar to frames.
14370	* buffer.h (FOR_EACH_LIVE_BUFFER): New macro.
14371	(Vbuffer_alist, Qpriority, Qbefore_string, Qafter_string):
14372	Declare buffer-related variables here to offload lisp.h.
14373	* buffer.c (Vbuffer_alist): Adjust comment.
14374	(Fget_file_buffer, get_truename_buffer, Fother_buffer)
14375	(other_buffer_safely):
14376	* data.c (store_symval_forwarding):
14377	* dispnew.c (Fframe_or_buffer_changed_p):
14378	* fileio.c (Fdo_auto_save):
14379	* filelock.c (unlock_all_files):
14380	* minibuf.c (read_minibuf): Use FOR_EACH_LIVE_BUFFER.
14381
143822013-08-04  Paul Eggert  <eggert@cs.ucla.edu>
14383
14384	Fix some minor races in hosts lacking mkostemp (Bug#15015).
14385	* callproc.c (create_temp_file):
14386	* filelock.c (create_lock_file):
14387	Assume mkostemp, since it's now provided by Gnulib.
14388
143892013-08-04  Eli Zaretskii  <eliz@gnu.org>
14390
14391	* w32.c (mkostemp): New function.
14392	(mktemp): Remove, no longer used.  Most of the code reused in
14393	mkostemp.  (Bug#15015)
14394	(mktemp): Don't undef.
14395
143962013-08-04  Dmitry Antipov  <dmantipov@yandex.ru>
14397
14398	* dispnew.c (glyph_matrix_count, glyph_pool_count):
14399	Move under GLYPH_DEBUG and ENABLE_CHECKING.
14400	(new_glyph_matrix, free_glyph_matrix, new_glyph_pool)
14401	(free_glyph_pool, check_glyph_memory): Likewise for
14402	all users.  Adjust comments where appropriate.
14403
144042013-08-03  Paul Eggert  <eggert@cs.ucla.edu>
14405
14406	* composite.h: Minor fixups.
14407	(composition_registered_p): Rename from COMPOSITION_REGISTERD_P
14408	to fix a misspelling, and change it to an inline function while
14409	we're at it (it need not be a macro).  All uses changed.
14410	(composition_method, composition_valid_p):
14411	Rewrite to avoid assignments in if-conditions.
14412
144132013-08-03  Dmitry Antipov  <dmantipov@yandex.ru>
14414
14415	Do not use global Lisp_Object in composition macros.
14416	* composite.h (composition_temp): Remove declaration.
14417	(COMPOSITION_METHOD, COMPOSITION_VALID_P): Replace with...
14418	(composition_method, composition_valid_p): ...inline functions.
14419	(compose_region): Remove the leftover.
14420	* composite.c (composition_temp): Remove.
14421	(run_composition_function, update_compositions)
14422	(composition_compute_stop_pos, composition_adjust_point)
14423	(Ffind_composition_internal):
14424	* coding.c (handle_composition_annotation):
14425	* xdisp.c (handle_composition_prop, check_point_in_composition):
14426	Related users changed.
14427
144282013-08-03  Dmitry Antipov  <dmantipov@yandex.ru>
14429
14430	Drop FRAME_PTR typedef.
14431	* composite.c, font.c, font.h, fontset.c, fontset.h, frame.c, frame.h:
14432	* ftfont.c, ftxfont.c, gtkutil.c, gtkutil.h, image.c, keyboard.c:
14433	* menu.c, menu.h, msdos.c, nsfns.m, nsfont.m, nsmenu.m, nsterm.h:
14434	* nsterm.m, scroll.c, term.c, w32fns.c, w32font.c, w32font.h:
14435	* w32inevt.c, w32inevt.h, w32menu.c, w32notify.c, w32term.c, w32term.h:
14436	* w32uniscribe.c, w32xfns.c, widget.c, window.c, xdisp.c, xfaces.c:
14437	* xfns.c, xfont.c, xftfont.c, xmenu.c, xselect.c, xterm.c:
14438	All related users changed.
14439
144402013-08-02  Stefan Monnier  <monnier@iro.umontreal.ca>
14441
14442	* eval.c (default_toplevel_binding): New function.
14443	(Fdefvar): Use it.
14444	(unbind_to, backtrace_eval_unrewind): Do a bit of CSE simplification.
14445	(Fdefault_toplevel_value, Fset_default_toplevel_value): New subrs.
14446	(syms_of_eval): Export them.
14447	* data.c (Fdefault_value): Micro cleanup.
14448	* term.c (init_tty): Use "false".
14449
144502013-08-02  Dmitry Antipov  <dmantipov@yandex.ru>
14451
14452	Fix X GC leak in GTK and raw (no toolkit) X ports.
14453	* xterm.c (x_free_frame_resources): If white and black relief
14454	GCs are allocated, always free them here.
14455	* xfns.c (x_make_gc): Omit redundant initialization.
14456	* widget.c (create_frame_gcs): Remove the leftover.
14457	(EmacsFrameDestroy): Do nothing because all GCs are now freed
14458	in x_free_frame_resources.
14459
144602013-08-02  Jan Djärv  <jan.h.d@swipnet.se>
14461
14462	* nsterm.m (windowWillResize:toSize:): Only change title if
14463	! maximizing_resize && FULLSCREEN_NONE (Bug#15005).  strdup title before
14464	modifying it.
14465	(viewDidEndLiveResize): New method.
14466
14467	* nsterm.h (EmacsView): Add maximizing_resize, put it and old_title
14468	inside NS_IMPL_COCOA.
14469
144702013-08-02  Dmitry Antipov  <dmantipov@yandex.ru>
14471
14472	* insdel.c (adjust_after_replace, replace_range, del_range_2):
14473	Do not check whether undo is enabled because record_insert and
14474	record_delete does that themselves.
14475
144762013-08-02  Dmitry Antipov  <dmantipov@yandex.ru>
14477
14478	* xterm.h (struct x_output) [HAVE_X_I18N]: Remove xic_base_fontname
14479	member which is not really used any more.
14480	(FRAME_XIC_BASE_FONTNAME): Remove.
14481	* xfns.c (xic_free_fontset): Adjust user.
14482	* xmenu.c (mouse_position_for_popup, x_activate_menubar)
14483	(update_frame_menubar, set_frame_menubar, free_frame_menubar)
14484	(create_and_show_popup_menu, xmenu_show, create_and_show_dialog)
14485	(xdialog_show): Use eassert for debugging check.
14486	* w32term.c (x_unfocus_frame): Remove unused dummy function.
14487
144882013-08-01  Paul Eggert  <eggert@cs.ucla.edu>
14489
14490	* fileio.c, fns.c (merge): Move extern decl from here ...
14491	* lisp.h (merge): ... to here.
14492
144932013-08-01  Dmitry Antipov  <dmantipov@yandex.ru>
14494
14495	Fix last font-related change.
14496	* w32font.h (w32font_list_internal, w32font_match_internal):
14497	Fix prototype.
14498	* w32uniscribe.c (uniscribe_list, uniscribe_match)
14499	(uniscribe_list_family): Adjust to match font API change.
14500	MS-Windows breakage reported by Juanma Barranquero <lekktu@gmail.com>
14501	at https://lists.gnu.org/r/emacs-devel/2013-08/msg00006.html.
14502
145032013-08-01  Dmitry Antipov  <dmantipov@yandex.ru>
14504
14505	* frame.h (FRAME_MOUSE_UPDATE):
14506	* nsterm.m (ns_frame_up_to_date): Omit redundant check
14507	whether hlinfo->mouse_face_mouse_frame is non-NULL.
14508
145092013-08-01  Dmitry Antipov  <dmantipov@yandex.ru>
14510
14511	Avoid redundant Lisp_Object <-> struct frame conversions in font API.
14512	* font.h (struct font_driver): Change list, match, and list_family
14513	functions to accept struct frame * as first arg.
14514	* font.c (font_score, font_compare, font_sort_entities):
14515	Remove prototypes.
14516	(font_sort_entities, font_list_entities, font_select_entity)
14517	(font_find_for_lface, Flist_fonts, Ffont_family_list): Adjust to
14518	match font API change.
14519	* xfont.c (xfont_list, xfont_match, xfont_list_family):
14520	* ftfont.c (ftfont_list, ftfont_match, ftfont_list_family):
14521	* ftxfont.c (ftxfont_list, ftxfont_match):
14522	* xftfont.c (xftfont_list, xftfont_match):
14523	* nsfont.m (nsfont_list, nsfont_match, nsfont_list_family):
14524	* w32font.c (w32font_list, w32font_match, w32font_list)
14525	(w32font_list_internal, w32_font_match_internal): Likewise.
14526	* xfaces.c (Fx_family_fonts): Adjust user.
14527
145282013-08-01  Dmitry Antipov  <dmantipov@yandex.ru>
14529
14530	Do not use pure Xism x_wm_set_icon_position in non-X ports.
14531	* frame.c (x_set_frame_parameters): Call to x_wm_set_icon_position
14532	only if HAVE_X_WINDOWS is in use.
14533	* frame.h (x_set_frame_parameters): Move under HAVE_X_WINDOWS.
14534	* nsterm.m (x_wm_set_icon_position): Remove no-op.
14535	* w32term.c (x_wm_set_icon_position): Likewise.
14536	* w32fns.c (x_icon): Adjust user.
14537
145382013-08-01  Dmitry Antipov  <dmantipov@yandex.ru>
14539
14540	* xterm.c (last_mouse_press_frame): Remove the
14541	leftover which is not really used any more.
14542	(handle_one_xevent, syms_of_xterm): Adjust users.
14543	(x_flush): Call XFlush once per each X display, not frame.
14544	This is better because this code always unconditionally skips
14545	non-X frames in Vframe_list and issues the only XFlush if we
14546	have more than one X frame on the same X display.
14547	(any_help_event_p, x_draw_glyph_string_background, x_display_ok):
14548	Use bool for booleans.
14549	(x_draw_glyph_string_background, cvt_string_to_pixel)
14550	(cvt_pixel_dtor): Drop unnecessary prototypes.
14551	* xterm.h (x_display_ok): Adjust prototype.
14552
145532013-07-31  Dmitry Antipov  <dmantipov@yandex.ru>
14554
14555	Drop unnecessary functions that deals with frame pixel size.
14556	* frame.h, msdos.h, w32term.h, xterm.h (x_pixel_width)
14557	(x_pixel_height): Drop prototypes.
14558	* msdos.c, nsfns.m, w32fns.c, xfns.c (x_pixel_width)
14559	(x_pixel_height): Drop implementations.
14560	* frame.c (Fframe_pixel_height): Use FRAME_PIXEL_HEIGHT
14561	which should be always valid for window frame.
14562	(Frame_pixel_width): Likewise with FRAME_PIXEL_WIDTH.
14563	* w32menu.c (Fx_popup_dialog):
14564	* xmenu.c (Fx_popup_dialog): Likewise for both.
14565
145662013-07-31  Dmitry Antipov  <dmantipov@yandex.ru>
14567
14568	* frame.c (Fmake_terminal_frame): Use store_in_alist to setup
14569	frame parameters and call to Fmodify_frame_parameters just once.
14570	(Fset_frame_height, Fset_frame_width): Mention nil frame in docstring.
14571	(Fset_frame_size, Fset_frame_position): Use decode_live_frame
14572	and mention nil frame in docstring.
14573
145742013-07-31  Dmitry Antipov  <dmantipov@yandex.ru>
14575
14576	* frame.c (make_frame, x_set_frame_parameters): Use bool for boolean.
14577	(x_figure_window_size): Likewise.  Adjust to return long.
14578	(syms_of_frame): Do not DEFSYM Qterminal_live_p.
14579	(toplevel): Move Qterminal_live_p to...
14580	* terminal.c (toplevel): ...here, make it static, and...
14581	(syms_of_terminal): ...DEFSYM here.
14582	* frame.h (Qterminal_live_p): Remove declaration.
14583	(make_frame, x_figure_window_size): Adjust prototype.
14584	* nsfns.m (Fx_create_frame): Use long for window flags.
14585
145862013-07-30  Paul Eggert  <eggert@cs.ucla.edu>
14587
14588	Fix tempfile bug on platforms lacking mkostemp and mkstemp (Bug#14986).
14589	* callproc.c (create_temp_file) [! (HAVE_MKOSTEMP || HAVE_MKSTEMP)]:
14590	Do not assume that emacs_close (INT_MAX) is a no-op.
14591
145922013-07-30  Dmitry Antipov  <dmantipov@yandex.ru>
14593
14594	* xfaces.c (make_face_cache): For struct face_cache, prefer
14595	xmalloc to xzalloc and so avoid redundant call to memset.
14596	(Finternal_set_lisp_face_attribute): Fix comment typo and style.
14597
145982013-07-30  Dmitry Antipov  <dmantipov@yandex.ru>
14599
14600	* fringe.c (draw_window_fringes, update_window_fringes)
14601	(compute_fringe_widths):
14602	* w32term.c (x_draw_glyph_string):
14603	* window.c (candidate_window_p, Frecenter):
14604	* xfaces.c (realize_basic_faces, realize_default_face)
14605	(Fbitmap_space_p, Finternal_set_lisp_face_attribute)
14606	(x_update_menu_appearance, face_attr_equal_p, lface_equal_p):
14607	* xfns.c (x_set_cursor_color, xic_free_xfontset):
14608	* xmenu.c (Fx_menu_bar_open_internal):
14609	* xselect.c (x_reply_selection_request, Fx_get_atom_name):
14610	* xsettings.c (xft_settings_event):
14611	* xterm.c (x_draw_glyph_string, x_had_errors_p):
14612	Use bool for booleans.  Adjust style and comments where
14613	appropriate.
14614	* dispextern.h (draw_window_fringes, update_window_fringes)
14615	(compute_fringe_widths):
14616	* xterm.h (x_had_errors_p): Adjust prototype.
14617
146182013-07-30  Dmitry Antipov  <dmantipov@yandex.ru>
14619
14620	* frame.c (Fmodify_frame_parameters): Always check 2nd arg with
14621	CHECK_LIST.  Rewrite the loop to avoid useless local variable.
14622
146232013-07-29  Dmitry Antipov  <dmantipov@yandex.ru>
14624
14625	* fns.c (toplevel): Remove comment before Fsafe_length because
14626	it checks for QUIT.
14627
146282013-07-28  Paul Eggert  <eggert@cs.ucla.edu>
14629
14630	* frame.c (delete_frame): Avoid unnecessary 'this_f' test (Bug#14970).
14631
146322013-07-28  Eli Zaretskii  <eliz@gnu.org>
14633
14634	* w32fns.c (w32_wnd_proc) <WM_IME_STARTCOMPOSITION>: Make sure the
14635	frame which got the message is still alive, before dereferencing
14636	its pointer.  (Bug#14970)
14637
14638	* frame.c (delete_frame): Test "this" frame's minibuffer window to
14639	be a live window, before using it as such.  (Bug#14970)
14640
146412013-07-27  Eli Zaretskii  <eliz@gnu.org>
14642
14643	* w32term.c (w32_read_socket) <WM_KILLFOCUS>: Call
14644	w32_detect_focus_change instead of doing part of its job by hand.
14645	This fixes the problem whereby FOCUS_OUT events were not sent to
14646	the event queue.
14647
146482013-07-26  Eli Zaretskii  <eliz@gnu.org>
14649
14650	* process.c (Fprocess_list): Doc fix.
14651
14652	* w32term.c (w32_read_socket) <WM_EMACS_PAINT>: Warn about frame
14653	being re-exposed only if it didn't ask to become visible.
14654	<WM_SIZE>: Under SIZE_RESTORED, only set the frame visible if it
14655	was previously iconified.  (Bug#14841)
14656	(x_iconify_frame): Mark the frame iconified.
14657
146582013-07-26  Paul Eggert  <eggert@cs.ucla.edu>
14659
14660	Fix minor problems found by static checking.
14661	* eval.c (get_backtrace_frame, backtrace_eval_unrewind): Now static.
14662	(backtrace_eval_unrewind): ';' -> '{}' to pacify GCC.
14663
146642013-07-26  Stefan Monnier  <monnier@iro.umontreal.ca>
14665
14666	* eval.c (set_specpdl_old_value): New function.
14667	(unbind_to): Minor simplification.
14668	(get_backtrace_frame): New function.
14669	(Fbacktrace_frame): Use it.  Add `base' argument.
14670	(backtrace_eval_unrewind, Fbacktrace_eval): New functions.
14671	(syms_of_eval): Export backtrace-eval.
14672	* xterm.c (x_focus_changed): Simplify.
14673
146742013-07-25  Paul Eggert  <eggert@cs.ucla.edu>
14675
14676	* fileio.c (Finsert_file_contents): Avoid double-close (Bug#14936).
14677
146782013-07-24  Eli Zaretskii  <eliz@gnu.org>
14679
14680	* xdisp.c (redisplay_window): Instead of moving point out of
14681	scroll margin, reject the force_start method, and try scrolling
14682	instead.  (Bug#14780)
14683
146842013-07-24  Ken Brown  <kbrown@cornell.edu>
14685
14686	* alloc.c (make_save_ptr): Define if HAVE_NTGUI is defined
14687	(Bug#14944).
14688
146892013-07-24  Paul Eggert  <eggert@cs.ucla.edu>
14690
14691	* eval.c (Fprogn): Do not check that BODY is a proper list.
14692	This undoes the previous change.  The check slows down the
14693	interpreter, and is not needed to prevent a crash.  See
14694	<https://lists.gnu.org/r/emacs-devel/2013-07/msg00693.html>.
14695
146962013-07-23  Glenn Morris  <rgm@gnu.org>
14697
14698	* Makefile.in ($(etc)/DOC, temacs$(EXEEXT)): Ensure etc/ exists.
14699
147002013-07-23  Paul Eggert  <eggert@cs.ucla.edu>
14701
14702	Port to GNU/Linux systems with tinfo but not ncurses.
14703	* dispnew.c (init_display): Depend on USE_NCURSES, not GNU_LINUX,
14704	to decide whether ncurses is being used.  Without this change,
14705	GCC complains about tgetent not being declared, on a system
14706	that has tinfo installed but ncurses not installed.
14707
14708	* eval.c (Fprogn): Check that BODY is a proper list.
14709
14710	Tune UNEVALLED functions by using XCAR instead of Fcar, etc.
14711	* data.c (Fsetq_default):
14712	* eval.c (Fif, Fcond, Fprog1, Fsetq, Fquote, Ffunction, Fdefvar)
14713	(Fdefconst, FletX, Flet, Fwhile, Fcatch, Funwind_protect)
14714	(Fcondition_case):
14715	Tune by taking advantage of the fact that ARGS is always a list
14716	when a function is declared to have UNEVALLED args.
14717
14718	* emacsgtkfixed.c: Port to GCC 4.6.
14719	GCC 4.6 complains about -Wunused-local-typedefs, introduced in 4.7.
14720
147212013-07-23  Juanma Barranquero  <lekktu@gmail.com>
14722
14723	* callproc.c (child_setup)[!WINDOWSNT]: Move exec_errno and pid
14724	here to silence compiler warnings.
14725
147262013-07-22  Paul Eggert  <eggert@cs.ucla.edu>
14727
14728	* sysdep.c (frame) [__FreeBSD__]: #define to freebsd_frame
14729	when including <sys/user.h>, to prevent Sparc/ARM machine/frame.h
14730	from messing up Emacs's 'struct frame' (Bug#14923).
14731
147322013-07-21  Paul Eggert  <eggert@cs.ucla.edu>
14733
14734	* alloc.c (make_save_ptr_ptr): Define this function.
14735	It was inadvertently omitted.  It's needed only if
14736	HAVE_MENUS && ! (USE_X_TOOLKIT || USE_GTK).
14737
147382013-07-21  Jan Djärv  <jan.h.d@swipnet.se>
14739
14740	* nsterm.m (sendEvent:): Skip mouse moved if no dialog and no Emacs
14741	frame have focus (Bug#14895).
14742
147432013-07-21  Paul Eggert  <eggert@cs.ucla.edu>
14744
14745	Avoid vfork-related deadlock more cleanly.
14746	* callproc.c (child_setup): When the child's exec fails, output
14747	the program name, as that's more useful.  Use O_NONBLOCK to avoid
14748	deadlock.
14749	* process.c (create_process_1): Remove; no longer needed.
14750	(create_process): Remove timer hack; no longer needed, now that
14751	the child avoids deadlock.
14752
147532013-07-20  Glenn Morris  <rgm@gnu.org>
14754
14755	* image.c (Fimage_flush): Fix doc typo.
14756
147572013-07-20  Paul Eggert  <eggert@cs.ucla.edu>
14758
14759	Fix array bounds violation when pty allocation fails.
14760	* process.c (PTY_NAME_SIZE): New constant.
14761	(pty_name): Remove static variable; it's now auto.
14762	(allocate_pty): Define even if !HAVE_PTYS; that's simpler.
14763	Take pty_name as an arg rather than using a static variable.
14764	All callers changed.
14765	(create_process): Recover pty_flag from process, not from volatile local.
14766	(create_pty): Stay inside array even when pty allocation fails.
14767	(Fmake_serial_process): Omit unnecessary initializaiton of pty_flag.
14768
14769	* lread.c (Fload): Avoid initialization only when lint checking.
14770	Mention that it's needed only for older GCCs.
14771
147722013-07-20  Kenichi Handa  <handa@gnu.org>
14773
14774	* coding.c (CODING_ISO_FLAG_LEVEL_4): New macro.
14775	(decode_coding_iso_2022): Check the single-shift area.  (Bug#8522)
14776
147772013-07-20  Andreas Schwab  <schwab@linux-m68k.org>
14778
14779	* lread.c (Fload): Avoid uninitialized warning.
14780
147812013-07-19  Paul Eggert  <eggert@cs.ucla.edu>
14782
14783	Fix some minor file descriptor leaks and related glitches.
14784	* filelock.c (create_lock_file) [!O_CLOEXEC]: Use fcntl with FD_CLOEXEC.
14785	(create_lock_file): Use write, not emacs_write.
14786	* image.c (slurp_file, png_load_body):
14787	* process.c (Fnetwork_interface_list, Fnetwork_interface_info)
14788	(server_accept_connection):
14789	Don't leak an fd on memory allocation failure.
14790	* image.c (slurp_file): Add a cheap heuristic for growing files.
14791	* xfaces.c (Fx_load_color_file): Block input around the fopen too,
14792	as that's what the other routines do.  Maybe input need not be
14793	blocked at all, but it's better to be consistent.
14794	Avoid undefined behavior when strlen is zero.
14795
14796	* alloc.c (staticpro): Avoid buffer overrun on repeated calls.
14797	(NSTATICS): Now a constant; doesn't need to be a macro.
14798
147992013-07-19  Richard Stallman  <rms@gnu.org>
14800
14801	* coding.c (decode_coding_utf_8): Add simple loop for fast
14802	processing of ASCII characters.
14803
148042013-07-19  Paul Eggert  <eggert@cs.ucla.edu>
14805
14806	* conf_post.h (RE_TRANSLATE_P) [emacs]: Remove obsolete optimization.
14807
148082013-07-19  Eli Zaretskii  <eliz@gnu.org>
14809
14810	* keyboard.c (kbd_buffer_get_event): Use Display_Info instead of
14811	unportable 'struct x_display_info'.
14812	(DISPLAY_LIST_INFO): Delete macro: not needed, since Display_Info
14813	is a portable type.
14814
148152013-07-19  Paul Eggert  <eggert@cs.ucla.edu>
14816
14817	* sysdep.c [GNU_LINUX]: Fix fd and memory leaks and similar issues.
14818	(procfs_ttyname): Don't use uninitialized storage if emacs_fopen
14819	or fscanf fails.
14820	(system_process_attributes): Prefer plain char to unsigned char
14821	when either will do.  Clean up properly if interrupted or if
14822	memory allocations fail.  Don't assume sscanf succeeds.
14823	Remove no-longer-needed workaround to stop GCC from whining.
14824	Read command-line once, instead of multiple times.  Check read status a
14825	bit more carefully.
14826
14827	Fix obscure porting bug with varargs functions.
14828	The code assumed that int is treated like ptrdiff_t in a vararg
14829	function, which is not a portable assumption.  There was a similar
14830	-- though these days less likely -- porting problem with various
14831	assumptions that pointers of different types all smell the same as
14832	far as vararg functions is conserved.  To make this problem less
14833	likely in the future, redo the API to use varargs functions.
14834	* alloc.c (make_save_value): Remove this vararg function.
14835	All uses changed to ...
14836	(make_save_int_int_int, make_save_obj_obj_obj_obj)
14837	(make_save_ptr_int, make_save_funcptr_ptr_obj, make_save_memory):
14838	New functions.
14839	(make_save_ptr): Rename from make_save_pointer, for consistency with
14840	the above.  Define only on platforms that need it.  All uses changed.
14841
148422013-07-18  Paul Eggert  <eggert@cs.ucla.edu>
14843
14844	* keyboard.c: Try to fix typos in previous change.
14845	(DISPLAY_LIST_INFO): New macro.
14846	(kbd_buffer_get_event): Do not access members that are not present
14847	in X11.  Revert inadvertent change of "!=" to "=".
14848
148492013-07-18  Juanma Barranquero  <lekktu@gmail.com>
14850
14851	* keyboard.c (kbd_buffer_get_event):
14852	* w32term.c (x_focus_changed): Port FOCUS_(IN|OUT)_EVENT changes to W32.
14853	Followup to 2013-07-16T11:41:06Z!jan.h.d@swipnet.se.
14854
148552013-07-18  Paul Eggert  <eggert@cs.ucla.edu>
14856
14857	* filelock.c: Fix unlikely file descriptor leaks.
14858	(get_boot_time_1): Rework to avoid using emacs_open.
14859	This doesn't actually fix a leak, but is better anyway.
14860	(read_lock_data): Use read, not emacs_read.
14861
14862	* doc.c: Fix minor memory and file descriptor leaks.
14863	* doc.c (get_doc_string): Fix memory leak when doc file absent.
14864	(get_doc_string, Fsnarf_documentation):
14865	Fix file descriptor leak on error.
14866
14867	* term.c: Fix minor fdopen-related file descriptor leaks.
14868	* term.c (Fresume_tty) [!MSDOS]: Close fd if fdopen (fd) fails.
14869	(init_tty) [!DOS_NT]: Likewise.  Also close fd if isatty (fd) fails.
14870
14871	* charset.c: Fix file descriptor leaks and errno issues.
14872	Include <errno.h>.
14873	(load_charset_map_from_file): Don't leak file descriptor on error.
14874	Use plain record_xmalloc since the allocation is larger than
14875	MAX_ALLOCA; that's simpler here.  Simplify test for exhaustion
14876	of entries.
14877	* eval.c (record_unwind_protect_nothing):
14878	* fileio.c (fclose_unwind):
14879	New functions.
14880	* lread.c (load_unwind): Remove.  All uses replaced by fclose_unwind.
14881	The replacement doesn't block input, but that no longer seems
14882	necessary.
14883
148842013-07-17  Paul Eggert  <eggert@cs.ucla.edu>
14885
14886	* lread.c: Fix file descriptor leaks and errno issues.
14887	(Fload): Close some races that leaked fds or streams when 'load'
14888	was interrupted.
14889	(Fload, openp): Report error number of last nontrivial failure to open.
14890	ENOENT counts as trivial.
14891	* eval.c (do_nothing, clear_unwind_protect, set_unwind_protect_ptr):
14892	New functions.
14893	* fileio.c (close_file_unwind): No need to test whether FD is nonnegative,
14894	now that the function is always called with a nonnegative arg.
14895	* lisp.h (set_unwind_protect_ptr, set_unwind_protect_int): Remove.
14896	All uses replaced with ...
14897	(clear_unwind_protect, set_unwind_protect_ptr): New decls.
14898
14899	A few more minor file errno-reporting bugs.
14900	* callproc.c (Fcall_process):
14901	* doc.c (Fsnarf_documentation):
14902	* fileio.c (Frename_file, Fadd_name_to_file, Fmake_symbolic_link):
14903	* process.c (set_socket_option):
14904	Don't let a constructor trash errno.
14905	* doc.c: Include <errno.h>.
14906
149072013-07-16  Juanma Barranquero  <lekktu@gmail.com>
14908
14909	* w32fns.c (unwind_create_tip_frame): Fix declaration.
14910
149112013-07-16  Paul Eggert  <eggert@cs.ucla.edu>
14912
14913	Fix w32 bug with call-process-region (Bug#14885).
14914	* callproc.c (Fcall_process_region): Pass nil, not "/dev/null",
14915	to Fcall_process when the input is empty.  This simplifies the
14916	code a bit.  It makes no difference on POSIXish platforms but
14917	apparently it fixes a bug on w32.
14918
14919	Fix bug where insert-file-contents closes a file twice (Bug#14839).
14920	* fileio.c (close_file_unwind): Don't close if FD is negative;
14921	this can happen when unwinding a zapped file descriptor.
14922	(Finsert_file_contents): Unwind-protect the fd before the point marker,
14923	in case Emacs runs out of memory between the two unwind-protects.
14924	Don't trash errno when closing FD.
14925	Zap the FD in the specpdl when closing it, instead of deferring
14926	the removal of the unwind-protect; this fixes a bug where a child
14927	function unwinds the stack past us.
14928
14929	New unwind-protect flavors to better type-check C callbacks.
14930	This also lessens the need to write wrappers for callbacks,
14931	and the need for make_save_pointer.
14932	* alloc.c (free_save_value):
14933	* atimer.c (run_all_atimers):
14934	Now extern.
14935	* alloc.c (safe_alloca_unwind):
14936	* atimer.c (unwind_stop_other_atimers):
14937	* keyboard.c (cancel_hourglass_unwind) [HAVE_WINDOW_SYSTEM]:
14938	* menu.c (cleanup_popup_menu) [HAVE_NS]:
14939	* minibuf.c (choose_minibuf_frame_1):
14940	* process.c (make_serial_process_unwind):
14941	* xdisp.c (pop_message_unwind):
14942	* xselect.c (queue_selection_requests_unwind):
14943	Remove no-longer-needed wrapper.  All uses replaced by the wrappee.
14944	* alloc.c (record_xmalloc):
14945	Prefer record_unwind_protect_ptr to record_unwind_protect with
14946	make_save_pointer.
14947	* alloc.c (Fgarbage_collect):
14948	Prefer record_unwind_protect_void to passing a dummy.
14949	* buffer.c (restore_buffer):
14950	* window.c (restore_window_configuration):
14951	* xfns.c, w32fns.c (do_unwind_create_frame)
14952	New wrapper.  All record-unwind uses of wrappee changed.
14953	* buffer.c (set_buffer_if_live):
14954	* callproc.c (call_process_cleanup, delete_temp_file):
14955	* coding.c (code_conversion_restore):
14956	* dired.c (directory_files_internal_w32_unwind) [WINDOWSNT]:
14957	* editfns.c (save_excursion_restore)
14958	(subst_char_in_region_unwind, subst_char_in_region_unwind_1)
14959	(save_restriction_restore):
14960	* eval.c (restore_stack_limits, un_autoload):
14961	* fns.c (require_unwind):
14962	* keyboard.c (recursive_edit_unwind, tracking_off):
14963	* lread.c (record_load_unwind, load_warn_old_style_backquotes):
14964	* macros.c (pop_kbd_macro, restore_menu_items):
14965	* nsfns.m (unwind_create_frame):
14966	* print.c (print_unwind):
14967	* process.c (start_process_unwind):
14968	* search.c (unwind_set_match_data):
14969	* window.c (select_window_norecord, select_frame_norecord):
14970	* xdisp.c (unwind_with_echo_area_buffer, unwind_format_mode_line)
14971	(fast_set_selected_frame):
14972	* xfns.c, w32fns.c (unwind_create_tip_frame):
14973	Return void, not a dummy Lisp_Object.  All uses changed.
14974	* buffer.h (set_buffer_if_live): Move decl here from lisp.h.
14975	* callproc.c (call_process_kill):
14976	* fileio.c (restore_point_unwind, decide_coding_unwind)
14977	(build_annotations_unwind):
14978	* insdel.c (Fcombine_after_change_execute_1):
14979	* keyboard.c (read_char_help_form_unwind):
14980	* menu.c (unuse_menu_items):
14981	* minibuf.c (run_exit_minibuf_hook, read_minibuf_unwind):
14982	* sound.c (sound_cleanup):
14983	* xdisp.c (unwind_redisplay):
14984	* xfns.c (clean_up_dialog):
14985	* xselect.c (x_selection_request_lisp_error, x_catch_errors_unwind):
14986	Accept no args and return void, instead of accepting and returning
14987	a dummy Lisp_Object.  All uses changed.
14988	* cygw32.c (fchdir_unwind):
14989	* fileio.c (close_file_unwind):
14990	* keyboard.c (restore_kboard_configuration):
14991	* lread.c (readevalllop_1):
14992	* process.c (wait_reading_process_output_unwind):
14993	Accept int and return void, rather than accepting an Emacs integer
14994	and returning a dummy object.  In some cases this fixes an
14995	unlikely bug when the corresponding int is outside Emacs integer
14996	range.  All uses changed.
14997	* dired.c (directory_files_internal_unwind):
14998	* fileio.c (do_auto_save_unwind):
14999	* gtkutil.c (pop_down_dialog):
15000	* insdel.c (reset_var_on_error):
15001	* lread.c (load_unwind):
15002	* xfns.c (clean_up_file_dialog):
15003	* xmenu.c, nsmenu.m (pop_down_menu):
15004	* xmenu.c (cleanup_widget_value_tree):
15005	* xselect.c (wait_for_property_change_unwind):
15006	Accept pointer and return void, rather than accepting an Emacs
15007	save value encapsulating the pointer and returning a dummy object.
15008	All uses changed.
15009	* editfns.c (Fformat): Update the saved pointer directly via
15010	set_unwind_protect_ptr rather than indirectly via make_save_pointer.
15011	* eval.c (specpdl_func): Remove.  All uses replaced by definiens.
15012	(unwind_body): New function.
15013	(record_unwind_protect): First arg is now a function returning void,
15014	not a dummy Lisp_Object.
15015	(record_unwind_protect_ptr, record_unwind_protect_int)
15016	(record_unwind_protect_void): New functions.
15017	(unbind_to): Support SPECPDL_UNWIND_PTR etc.
15018	* fileio.c (struct auto_save_unwind): New type.
15019	(do_auto_save_unwind): Use it.
15020	(do_auto_save_unwind_1): Remove; subsumed by new do_auto_save_unwind.
15021	* insdel.c (struct rvoe_arg): New type.
15022	(reset_var_on_error): Use it.
15023	* lisp.h (SPECPDL_UNWIND_PTR, SPECPDL_UNWIND_INT, SPECPDL_UNWIND_VOID):
15024	New constants.
15025	(specbinding_func): Remove; there are now several such functions.
15026	(union specbinding): New members unwind_ptr, unwind_int, unwind_void.
15027	(set_unwind_protect_ptr): New function.
15028	* xselect.c: Remove unnecessary forward decls, to simplify maintenance.
15029
15030	Be simpler and more consistent about reporting I/O errors.
15031	* fileio.c (Fcopy_file, Finsert_file_contents, Fwrite_region):
15032	Say "Read error" and "Write error", rather than "I/O error", or
15033	"IO error reading", or "IO error writing", when a read or write
15034	error occurs.
15035	* process.c (Fmake_network_process, wait_reading_process_output)
15036	(send_process, Fprocess_send_eof, wait_reading_process_output):
15037	Capitalize diagnostics consistently.  Put "failed foo" at the
15038	start of the diagnostic, so that we don't capitalize the
15039	function name "foo".  Consistently say "failed" for such
15040	diagnostics.
15041	* sysdep.c, w32.c (serial_open): Now accepts Lisp string, not C string.
15042	All callers changed.  This is so it can use report_file_error.
15043	* sysdep.c (serial_open, serial_configure): Capitalize I/O
15044	diagnostics consistently as above.
15045
15046	* fileio.c (report_file_errno): Fix errno reporting bug.
15047	If the file name is neither null nor a pair, package it up as a
15048	singleton list.  All callers changed, both to this function and to
15049	report_file_error.  This fixes a bug where the memory allocator
15050	invoked by list1 set errno so that the immediately following
15051	report_file_error reported the wrong errno value.
15052
15053	Fix minor problems found by --enable-gcc-warnings.
15054	* frame.c (Fhandle_focus_in, Fhandle_focus_out): Return a value.
15055	* keyboard.c (kbd_buffer_get_event): Remove unused local.
15056
150572013-07-16  Jan Djärv  <jan.h.d@swipnet.se>
15058
15059	* xterm.c (x_focus_changed): Always generate FOCUS_IN_EVENT.
15060	Set event->arg to Qt if switch-event shall be generated.
15061	Generate FOCUS_OUT_EVENT for FocusOut if this is the focused frame.
15062
15063	* termhooks.h (enum event_kind): Add FOCUS_OUT_EVENT.
15064
15065	* nsterm.m (windowDidResignKey): If this is the focused frame, generate
15066	FOCUS_OUT_EVENT.
15067
15068	* keyboard.c (Qfocus_in, Qfocus_out): New static objects.
15069	(make_lispy_focus_in, make_lispy_focus_out): Declare and define.
15070	(kbd_buffer_get_event): For FOCUS_IN, make a focus_in event if no
15071	switch frame event is made.  Check ! NILP (event->arg) if X11 (moved
15072	from xterm.c).  Make focus_out event for FOCUS_OUT_EVENT if NS or X11
15073	and there is a focused frame.
15074	(head_table): Add focus-in and focus-out.
15075	(keys_of_keyboard): Add focus-in and focus-out to Vspecial_event_map,
15076	bind to handle-focus-in/out.
15077
15078	* frame.c (Fhandle_focus_in, Fhandle_focus_out): New functions.
15079	(Fhandle_switch_frame): Call Fhandle_focus_in.
15080	(syms_of_frame): defsubr handle-focus-in/out.
15081
150822013-07-16  Paul Eggert  <eggert@cs.ucla.edu>
15083
15084	Fix porting bug to older POSIXish platforms (Bug#14862).
15085	* sysdep.c (emacs_pipe): New function, that implements
15086	pipe2 (fd, O_CLOEXEC) even on hosts that lack O_CLOEXEC.
15087	This should port better to CentOS 5 and to Mac OS X 10.6.
15088	All calls to pipe2 changed.
15089
15090	Prefer list1 (X) to Fcons (X, Qnil) when building lists.
15091	This makes the code easier to read and the executable a bit smaller.
15092	Do not replace all calls to Fcons that happen to create lists,
15093	just calls that are intended to create lists.  For example, when
15094	creating an alist that maps FOO to nil, use list1 (Fcons (FOO, Qnil))
15095	rather than list1 (list1 (FOO)) or Fcons (Fcons (FOO, Qnil), Qnil).
15096	Similarly for list2 through list5.
15097	* buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
15098	* bytecode.c (exec_byte_code):
15099	* callint.c (quotify_arg, Fcall_interactively):
15100	* callproc.c (Fcall_process, create_temp_file):
15101	* charset.c (load_charset_map_from_file)
15102	(Fdefine_charset_internal, init_charset):
15103	* coding.c (get_translation_table, detect_coding_system)
15104	(Fcheck_coding_systems_region)
15105	(Fset_terminal_coding_system_internal)
15106	(Fdefine_coding_system_internal, Fdefine_coding_system_alias):
15107	* composite.c (update_compositions, Ffind_composition_internal):
15108	* dired.c (directory_files_internal, file_name_completion)
15109	(Fsystem_users):
15110	* dispnew.c (Fopen_termscript, bitch_at_user, init_display):
15111	* doc.c (Fsnarf_documentation):
15112	* editfns.c (Fmessage_box):
15113	* emacs.c (main):
15114	* eval.c (do_debug_on_call, signal_error, maybe_call_debugger)
15115	(Feval, eval_sub, Ffuncall, apply_lambda):
15116	* fileio.c (make_temp_name, Fcopy_file, Faccess_file)
15117	(Fset_file_selinux_context, Fset_file_acl, Fset_file_modes)
15118	(Fset_file_times, Finsert_file_contents)
15119	(Fchoose_write_coding_system, Fwrite_region):
15120	* fns.c (Flax_plist_put, Fyes_or_no_p, syms_of_fns):
15121	* font.c (font_registry_charsets, font_parse_fcname)
15122	(font_prepare_cache, font_update_drivers, Flist_fonts):
15123	* fontset.c (Fset_fontset_font, Ffontset_info, syms_of_fontset):
15124	* frame.c (make_frame, Fmake_terminal_frame)
15125	(x_set_frame_parameters, x_report_frame_params)
15126	(x_default_parameter, Fx_parse_geometry):
15127	* ftfont.c (syms_of_ftfont):
15128	* image.c (gif_load):
15129	* keyboard.c (command_loop_1):
15130	* keymap.c (Fmake_keymap, Fmake_sparse_keymap, access_keymap_1)
15131	(Fcopy_keymap, append_key, Fcurrent_active_maps)
15132	(Fminor_mode_key_binding, accessible_keymaps_1)
15133	(Faccessible_keymaps, Fwhere_is_internal):
15134	* lread.c (read_emacs_mule_char):
15135	* menu.c (find_and_return_menu_selection):
15136	* minibuf.c (get_minibuffer):
15137	* nsfns.m (Fns_perform_service):
15138	* nsfont.m (ns_script_to_charset):
15139	* nsmenu.m (ns_popup_dialog):
15140	* nsselect.m (ns_get_local_selection, ns_string_from_pasteboard)
15141	(Fx_own_selection_internal):
15142	* nsterm.m (append2):
15143	* print.c (Fredirect_debugging_output)
15144	(print_prune_string_charset):
15145	* process.c (Fdelete_process, Fprocess_contact)
15146	(Fformat_network_address, set_socket_option)
15147	(read_and_dispose_of_process_output, write_queue_push)
15148	(send_process, exec_sentinel):
15149	* sound.c (Fplay_sound_internal):
15150	* textprop.c (validate_plist, add_properties)
15151	(Fput_text_property, Fadd_face_text_property)
15152	(copy_text_properties, text_property_list, syms_of_textprop):
15153	* unexaix.c (report_error):
15154	* unexcoff.c (report_error):
15155	* unexsol.c (unexec):
15156	* xdisp.c (redisplay_tool_bar, store_mode_line_string)
15157	(Fformat_mode_line, syms_of_xdisp):
15158	* xfaces.c (set_font_frame_param)
15159	(Finternal_lisp_face_attribute_values)
15160	(Finternal_merge_in_global_face, syms_of_xfaces):
15161	* xfns.c (x_default_scroll_bar_color_parameter)
15162	(x_default_font_parameter, x_create_tip_frame):
15163	* xfont.c (xfont_supported_scripts):
15164	* xmenu.c (Fx_popup_dialog, xmenu_show, xdialog_show)
15165	(menu_help_callback, xmenu_show):
15166	* xml.c (make_dom):
15167	* xterm.c (set_wm_state):
15168	Prefer list1 (FOO) to Fcons (FOO, Qnil) when creating a list,
15169	and similarly for list2 through list5.
15170
151712013-07-15  Paul Eggert  <eggert@cs.ucla.edu>
15172
15173	* callproc.c (Fcall_process_region): Fix minor race and tune.
15174	(create_temp_file): New function, with the temp-file-creation part
15175	of the old Fcall_process_region.  Use Fcopy_sequence to create the
15176	temp file name, rather than alloca + build_string, for simplicity.
15177	Don't bother to block input around the temp file creation;
15178	shouldn't be needed.  Simplify use of mktemp.
15179	Use record_unwind_protect immediately after creating the temp file;
15180	this closes an unlikely race where the temp file was not removed.
15181	Use memcpy rather than an open-coded loop.
15182	(Fcall_process_region): Use the new function.  If the input is
15183	empty, redirect from /dev/null rather than from a newly created
15184	empty temp file; this avoids unnecessary file system traffic.
15185
151862013-07-14  Paul Eggert  <eggert@cs.ucla.edu>
15187
15188	* filelock.c (create_lock_file) [!HAVE_MKOSTEMP && !HAVE_MKSTEMP]:
15189	Simplify by making this case like the other two.  This is a bit
15190	slower on obsolete hosts, but the extra complexity isn't worth it.
15191
15192	* callproc.c (child_setup, relocate_fd) [!DOS_NT]:
15193	* process.c (create_process) [!DOS_NT]:
15194	Remove now-unnecessary calls to emacs_close.
15195
151962013-07-13  Eli Zaretskii  <eliz@gnu.org>
15197
15198	* w32term.c (x_draw_hollow_cursor): Delete the brush object when
15199	returning early.  (Bug#14850)
15200
15201	* coding.c (syms_of_coding): Set up inhibit-null-byte-detection
15202	and inhibit-iso-escape-detection attributes of 'undecided'.
15203	(Bug#14822)
15204
152052013-07-13  Paul Eggert  <eggert@cs.ucla.edu>
15206
15207	* deps.mk (sysdep.o): Remove dependency on ../lib/ignore-value.h.
15208	Reported by Herbert J. Skuhra in
15209	<https://lists.gnu.org/r/emacs-devel/2013-07/msg00455.html>.
15210
15211	Don't lose top specpdl entry when memory is exhausted.
15212	* eval.c (grow_specpdl): Increment specpdl top by 1 and check for
15213	specpdl overflow here, to simplify callers; all callers changed.
15214	Always reserve an unused entry at the stack top; this avoids
15215	losing the top entry's information when memory is exhausted.
15216
152172013-07-12  Paul Eggert  <eggert@cs.ucla.edu>
15218
15219	Clean up errno reporting and fix some errno-reporting bugs.
15220	* callproc.c (Fcall_process):
15221	* fileio.c (Fcopy_file, Finsert_file_contents, Fwrite_region):
15222	* process.c (create_process, Fmake_network_process):
15223	* unexaix.c (report_error):
15224	* unexcoff.c (report_error):
15225	Be more careful about reporting the errno of failed operations.
15226	The code previously reported the wrong errno sometimes.
15227	Also, prefer report_file_errno to setting errno + report_file_error.
15228	(Fcall_process): Look at openp return value rather than at path,
15229	as that's a bit faster and clearer when there's a numeric predicate.
15230	* fileio.c (report_file_errno): New function, with most of the
15231	old contents of report_file_error.
15232	(report_file_error): Use it.
15233	(Ffile_exists_p, Ffile_accessible_directory_p):
15234	Set errno to 0 when it is junk.
15235	* fileio.c (Faccess_file):
15236	* image.c (x_create_bitmap_from_file):
15237	Use faccessat rather than opening the file, to avoid the hassle of
15238	having a file descriptor open.
15239	* lisp.h (report_file_errno): New decl.
15240	* lread.c (Flocate_file_internal): File descriptor 0 is valid, too.
15241
15242	Minor EBADF fixes.
15243	* process.c (create_process, wait_reading_process_output) [AIX]:
15244	Remove obsolete SIGHUP-related  code, as Emacs no longer disables
15245	SIGHUP, so EBADF is no longer acceptable here (it wouldn't work in
15246	a multithreaded environment anyway).
15247	* sysdep.c (emacs_close): It's not dangerous to invoke emacs_close (-1).
15248
152492013-07-12  Andreas Schwab  <schwab@linux-m68k.org>
15250
15251	* image.c (x_find_image_file): Don't close a remote file handle.
15252
152532013-07-12  Paul Eggert  <eggert@cs.ucla.edu>
15254
15255	Fix races with threads and file descriptors.
15256	* callproc.c (Fcall_process_region):
15257	* dired.c (open_directory):
15258	* emacs.c (main, Fdaemon_initialized):
15259	* image.c (x_find_image_file):
15260	* inotify.c (Finotify_rm_watch):
15261	* lread.c (Flocate_file_internal):
15262	* process.c (Fnetwork_interface_list, Fnetwork_interface_info):
15263	* term.c (term_mouse_moveto, init_tty):
15264	* termcap.c (tgetent):
15265	* unexaix.c, unexcoff.c (report_error, report_error_1, adjust_lnnoptrs)
15266	* unexaix.c, unexcoff.c, unexcw.c, unexelf.c (unexec):
15267	* unexhp9k800.c, unexmacosx.c (unexec):
15268	* callproc.c (Fcall_process_region):
15269	Use emacs_close, not close.
15270	* sysdep.c (POSIX_CLOSE_RESTART, posix_close) [!POSIX_CLOSE_RESTART]:
15271	New macro and function, which emulates the POSIX_CLOSE_RESTART macro
15272	and posix_close function on current platforms (which all lack them).
15273	(emacs_close): Use it.  This should fix the races on GNU/Linux and
15274	on AIX and on future platforms that support POSIX_CLOSE_RESTART,
15275	and it should avoid closing random victim file descriptors on
15276	other platforms.
15277
152782013-07-11  Paul Eggert  <eggert@cs.ucla.edu>
15279
15280	* inotify.c (uninitialized): Remove.  All uses replaced by -1.
15281	(Finotify_add_watch): Simplify, since -1 means uninitialized now.
15282	Touch up doc a bit.
15283
15284	* eval.c (backtrace_function, backtrace_args): Now EXTERNALLY_VISIBLE.
15285	This is for .gdbinit xbacktrace.
15286
15287	* sysdep.c, term.c, termcap.c, terminal.c: Integer-related minor fixes.
15288	* sysdep.c (emacs_get_tty): Return void, since nobody uses the value.
15289	(emacs_set_tty): Now static.
15290	* sysdep.c (emacs_set_tty, tabs_safe_p, emacs_close):
15291	* term.c (tty_capable_p, tty_default_color_capabilities)
15292	(get_tty_terminal, term_mouse_movement)
15293	(handle_one_term_event, init_tty, maybe_fatal):
15294	* termcap.c (tgetst1, struct termcap_buffer, valid_filename_p)
15295	(tgetent, scan_file, name_match, compare_contin):
15296	* terminal.c (get_terminal):
15297	Use bool for boolean.
15298	* sysdep.c (init_system_name): Don't overflow stack on huge hostname.
15299	Prefer char to unsigned char if either will do.
15300	* term.c (OUTPUT, turn_on_face): Omit unnecessary casts to int.
15301	(tty_write_glyphs): Prefer int to unsigned.
15302	(produce_glyphless_glyph): Remove 2nd (unused) int arg.
15303	All callers changed.
15304	* termcap.c (tprint, main) [TEST]: Remove non-working test.
15305
153062013-07-10  Paul Eggert  <eggert@cs.ucla.edu>
15307
15308	Port to C89.
15309	* bytecode.c (BYTE_CODE_THREADED): Do not define if __STRICT_ANSI__.
15310	(B__dummy__): New dummy symbol, to pacify C89.
15311	* dbusbind.c (XD_DEBUG_MESSAGE): Omit debugging on C89 hosts, since
15312	they can't grok varargs macros.
15313	* dispnew.c (add_window_display_history)
15314	(add_frame_display_history):
15315	* print.c (print_object):
15316	* xdisp.c (debug_method_add):
15317	Use %p printf format only for void pointers.
15318	* emacs.c (usage_message): New constant, replacing ...
15319	(USAGE1, USAGE2, USAGE3): Remove; they were too long for C89.
15320	(main): Adjust to usage reorg.
15321	* fns.c (syms_of_fns):
15322	* profiler.c (syms_of_profiler):
15323	Don't use non-constant struct initializers.
15324	* gnutls.h (gnutls_initstage_t):
15325	* lisp.h (enum Lisp_Fwd_Type):
15326	* lread.c (lisp_file_lexically_bound_p):
15327	* xsettings.c (anonymous enum):
15328	Remove trailing comma.
15329	* xsettings.c (apply_xft_settings): Use %f, not %lf; %lf is a C99ism.
15330	* lisp.h (ENUM_BF): Use unsigned if pedantic.
15331	(DEFUN_FUNCTION_INIT): New macro, that falls back on a cast if pre-C99.
15332	(DEFUN): Use it.
15333	* regex.c (const_re_char): New type, to pacify strict C89.
15334	All uses of 'const re_char' replaced to use it.
15335	* regex.h (_Restrict_): Rename from __restrict, to avoid clash
15336	with glibc when strict C89.  This change is imported from gnulib.
15337	All uses changed.
15338	(_Restrict_arr_): Rename from __restrict_arr, similarly.
15339	* sysdep.c (time_from_jiffies) [!HAVE_LONG_LONG_INT]:
15340	Omit GNU_LINUX implementation, since it requires long long.
15341	* xterm.c (x_draw_underwave):
15342	Do not assume the traditional order of struct's members.
15343	(x_term_init): Rewrite to avoid the need for non-constant structure
15344	initializers.
15345
15346	Syntax cleanup, mostly replacing macros with functions.
15347	This removes the need for the syntax_temp hack.
15348	* search.c: Include syntax.h after buffer.h, since syntax.h uses BVAR.
15349	* syntax.c (SYNTAX_INLINE): New macro.
15350	(SYNTAX_FLAGS_COMSTART_FIRST, SYNTAX_FLAGS_COMSTART_SECOND)
15351	(SYNTAX_FLAGS_COMEND_FIRST, SYNTAX_FLAGS_COMEND_SECOND)
15352	(SYNTAX_FLAGS_PREFIX, SYNTAX_FLAGS_COMMENT_STYLEB)
15353	(SYNTAX_FLAGS_COMMENT_STYLEC, SYNTAX_FLAGS_COMMENT_STYLEC2)
15354	(SYNTAX_FLAGS_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_STYLE)
15355	(SYNTAX_COMEND_FIRST): Now functions, not macros.
15356	(ST_COMMENT_STYLE, ST_STRING_STYLE, INTERVALS_AT_ONCE):
15357	Now constants, not macros.
15358	(syntax_temp) [!__GNUC__]: Remove.
15359	(SYNTAX_PREFIX): Remove; all uses replaced by syntax_prefix_flag_p.
15360	(syntax_prefix_flag_p): Move implementation of SYNTAX_PREFIX here.
15361	(SET_RAW_SYNTAX_ENTRY, SET_RAW_SYNTAX_ENTRY_RANGE, SYNTAX_MATCH)
15362	(SETUP_SYNTAX_TABLE, SETUP_SYNTAX_TABLE_FOR_OBJECT):
15363	Move here from syntax.h; now functions, not macros.  Except for the
15364	last function, these are static since only syntax.c uses them.
15365	(syntax_multibyte): Rename from SYNTAX_WITH_MULTIBYTE_CHECK.
15366	All uses changed.  Now a function, not a macro; use this fact
15367	to simplify the code.
15368	(scan_lists, scan_sexps_forward): Remove workarounds for ancient
15369	compiler bugs; no longer relevant.
15370	* syntax.h: Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
15371	(SYNTAX_INLINE): New macro.
15372	(struct gl_state_s, gl_state): Move earlier, so that it's in scope
15373	for the new functions.  Use bool for boolean member.
15374	(SYNTAX_ENTRY, SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH)
15375	(SYNTAX_TABLE_BYTE_TO_CHAR, UPDATE_SYNTAX_TABLE_FORWARD)
15376	(UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE)
15377	(SETUP_BUFFER_SYNTAX_TABLE):
15378	Now extern inline functions, not macros.
15379	(CURRENT_SYNTAX_TABLE, SYNTAX_ENTRY_INT):
15380	Remove; all uses replaced by implementation.
15381	(syntax_temp) [!__GNUC__]: Remove decl.
15382	(SETUP_SYNTAX_TABLE_FOR_OBJECT): New decl.
15383
153842013-07-10  Jan Djärv  <jan.h.d@swipnet.se>
15385
15386	* emacs.c (main): Fix syntax error.
15387
153882013-07-10  Paul Eggert  <eggert@cs.ucla.edu>
15389
15390	Timestamp fixes for undo (Bug#14824).
15391	* atimer.c (schedule_atimer):
15392	* fileio.c (Ffile_newer_than_file_p):
15393	Minor cleanup: use EMACS_TIME_LT so that we can remove EMACS_TIME_GT.
15394	* buffer.c (buffer-undo-list): Document (t . 0) and (t . -1).
15395	* fileio.c (Fclear_visited_file_modtime): Move to lisp/files.el.
15396	(syms_of_fileio): Remove Sclear_visited_file_name.
15397	(Fvisited_file_modtime): Return -1, not (-1 ...), when the visited
15398	file doesn't exist; this avoids an ambiguity with negative timestamps.
15399	(Fset_visited_file_modtime): Accept -1 and 0 as time-list arg.
15400	* systime.h (make_emacs_time, invalid_emacs_time):
15401	Don't assume struct timespec layout; POSIX doesn't guarantee it.
15402	(EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE): Remove.
15403	* undo.c (record_first_change): Push (visited-file-modtime) onto
15404	undo list rather than reimplementing it by hand, incorrectly.
15405
154062013-07-09  Ken Brown  <kbrown@cornell.edu>
15407
15408	* sheap.c (STATIC_HEAP_SIZE) [__x86_64__]: Increase to 18MB.
15409
154102013-07-09  Juanma Barranquero  <lekktu@gmail.com>
15411
15412	* makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/sysdep.$(O)): Update.
15413
154142013-07-09  Paul Eggert  <eggert@cs.ucla.edu>
15415
15416	Handle errno and exit status a bit more carefully.
15417	* callproc.c (child_setup) [!DOS_NT]: Don't try to stuff an error
15418	number into an exit status.  Instead, use EXIT_CANCELED.
15419	(child_setup) [!MSDOS]: Avoid possible deadlock with vfork.
15420	* callproc.c (relocate_fd):
15421	* emacs.c (close_output_streams, main):
15422	* process.c (create_process):
15423	* sysdep.c (sys_subshell) [!DOS_NT || !WINDOWSNT]:
15424	Use emacs_perror for simplicity.
15425	* callproc.c (relocate_fd, main):
15426	* sysdep.c (sys_subshell):
15427	Exit with EXIT_CANCELED etc., not 1, when exec setup fails.
15428	(shut_down_emacs): Use emacs_write, not write.
15429	* emacs.c, sysdep.c: Don't include <ignore-value.h>.
15430	* fileio.c (Fcopy_file, e_write):
15431	* nsterm.m (ns_select):
15432	* process.c (send_process):
15433	* sound.c (vox_write):
15434	Use emacs_write_sig, not emacs_write.
15435	* lisp.h (emacs_write_sig, emacs_perror): New decls.
15436	* process.h (EXIT_CANCELED), EXIT_CANNOT_INVOKE, EXIT_ENOENT):
15437	New constants.
15438	* sysdep.c (emacs_backtrace): Use emacs_write, not ignore_value
15439	of write.
15440	(emacs_full_write): New function.
15441	(emacs_write): Rewrite to use it.
15442	(emacswrite_sig, emacs_perror): New functions.
15443	* xrdb.c (fatal): Don't invoke perror, since errno might be garbage.
15444
154452013-07-08  Magnus Henoch  <magnus.henoch@gmail.com>  (tiny change)
15446
15447	* image.c (imagemagick_load_image): Do not use MagickExportImagePixels
15448	on NS even if it is present.  Pixmap on NS is a void*.
15449
154502013-07-07  Paul Eggert  <eggert@cs.ucla.edu>
15451
15452	Port to Ubuntu 10 (Bug#14803).  Reported by T.V. Raman.
15453	* process.c (close_on_exec, accept4, process_socket):
15454	Define these if !HAVE_ACCEPT4, not if !SOCK_CLOEXEC.
15455
154562013-07-07  Eli Zaretskii  <eliz@gnu.org>
15457
15458	* w32.c (sys_dup): Declare prototype.
15459
15460	* filelock.c:
15461	* emacs.c:
15462	* callproc.c [WINDOWSNT]: Include sys/socket.h.
15463
154642013-07-07  Paul Eggert  <eggert@cs.ucla.edu>
15465
15466	Make file descriptors close-on-exec when possible (Bug#14803).
15467	This simplifies Emacs a bit, since it no longer needs to worry
15468	about closing file descriptors by hand in some cases.
15469	It also fixes some unlikely races.  Not all such races, as
15470	libraries often open files internally without setting
15471	close-on-exec, but it's an improvement.
15472	* alloc.c (valid_pointer_p) [!WINDOWSNT]:
15473	* callproc.c (Fcall_process) [!MSDOS]:
15474	* emacs.c (main) [!DOS_NT]:
15475	* nsterm.m (ns_term_init):
15476	* process.c (create_process):
15477	Use 'pipe2' with O_CLOEXEC instead of 'pipe'.
15478	* emacs.c (Fcall_process_region) [HAVE_MKOSTEMP]:
15479	* filelock.c (create_lock_file) [HAVE_MKOSTEMP]:
15480	Prefer mkostemp with O_CLOEXEC to mkstemp.
15481	* callproc.c (relocate_fd) [!WINDOWSNT]:
15482	* emacs.c (main): Use F_DUPFD_CLOEXEC, not plain F_DUPFD.
15483	No need to use fcntl (..., F_SETFD, FD_CLOEXEC), since we're
15484	now using pipe2.
15485	* filelock.c (create_lock_file) [! HAVE_MKOSTEMP]:
15486	Make the resulting file descriptor close-on-exec.
15487	* lisp.h, lread.c, process.c (close_load_descs, close_process_descs):
15488	* lread.c (load_descriptor_list, load_descriptor_unwind):
15489	Remove; no longer needed.  All uses removed.
15490	* process.c (SOCK_CLOEXEC): Define to 0 if not supplied by system.
15491	(close_on_exec, accept4, process_socket) [!SOCK_CLOEXEC]:
15492	New functions.
15493	(socket) [!SOCK_CLOEXEC]: Supply a substitute.
15494	(Fmake_network_process, Fnetwork_interface_list)
15495	(Fnetwork_interface_info, server_accept_connection):
15496	Make newly-created socket close-on-exec.
15497	* sysdep.c (emacs_open, emacs_fopen):
15498	Make new-created descriptor close-on-exec.
15499	* w32.c (fcntl): Support F_DUPFD_CLOEXEC well enough for Emacs.
15500	* w32.c, w32.h (pipe2): Rename from 'pipe', with new flags arg.
15501
155022013-07-07  Jan Djärv  <jan.h.d@swipnet.se>
15503
15504	* nsterm.m (sendEvent:): Propagate keyboard events to modal windows
15505	for NS_IMPL_GNUSTEP.
15506
155072013-07-07  Paul Eggert  <eggert@cs.ucla.edu>
15508
15509	Fix openp errno handling.
15510	* callproc.c (Fcall_process): Preserve openp errno around close.
15511	* lread.c (openp): Set errno when returning -1, as some callers
15512	expect this.
15513
155142013-07-06  Jan Djärv  <jan.h.d@swipnet.se>
15515
15516	* nsterm.m (sendEvent:): Handle NSAPP_DATA2_RUNFILEDIALOG.
15517
15518	* nsterm.h (NSSavePanel): Update comment.
15519	(NSAPP_DATA2_RUNFILEDIALOG): Define.
15520	(ns_run_file_dialog): Declare.
15521
15522	* nsfns.m: Remove panelOK.
15523	(ns_fd_data): New.
15524	(ns_run_file_dialog): New function.
15525	(Fns_read_file_name): Fill in ns_fd_data, post an event and start the
15526	event loop, so file dialog is popped up by ns_run_file_dialog, called
15527	by sendEvent (Bug#14578).
15528	(EmacsSavePanel, EmacsOpenPanel): Remove ok and cancel methods.
15529
155302013-07-06  Eli Zaretskii  <eliz@gnu.org>
15531
15532	* xdisp.c (default_line_pixel_height): New function.
15533	(pos_visible_p, move_it_vertically_backward, try_scrolling)
15534	(try_cursor_movement, redisplay_window, try_window)
15535	(try_window_id): Use it instead of FRAME_LINE_HEIGHT.  (Bug#14771)
15536
15537	* window.c (window_scroll_pixel_based):
15538	use default_line_pixel_height.
15539
15540	* dispextern.h (default_line_pixel_height): Add prototype.
15541
15542	* frame.c (x_set_line_spacing): Accept a float value for
15543	line-spacing parameter, per the documentation.
15544
15545	* data.c (Fmultibyte_string_p): Doc fix.
15546
155472013-07-05  Paul Eggert  <eggert@cs.ucla.edu>
15548
15549	Use emacs_open more consistently when opening files.
15550	This handles EINTR more consistently now, and makes it easier
15551	to introduce other uniform changes to file descriptor handling.
15552	* sysstdio.h: New file.
15553	* buffer.c (mmap_init):
15554	* cygw32.c (chdir_to_default_directory):
15555	* dispnew.c (Fopen_termscript):
15556	* emacs.c (Fdaemon_initialized):
15557	* fileio.c (Fdo_auto_save):
15558	* image.c (slurp_file, png_load_body, jpeg_load_body):
15559	* keyboard.c (Fopen_dribble_file):
15560	* lread.c (Fload):
15561	* print.c (Fredirect_debugging_output):
15562	* sysdep.c (get_up_time, procfs_ttyname, procfs_get_total_memory):
15563	* termcap.c (tgetent):
15564	* unexaix.c, unexcoff.c (unexec, adjust_lnnoptrs):
15565	* unexcw.c, unexelf.c, unexhp9k800.c, unexmacosx.c (unexec):
15566	* w32term.c (w32_initialize) [CYGWIN]:
15567	* xfaces.c (Fx_load_color_file):
15568	Use emacs_open instead of plain open, and emacs_fopen instead of
15569	plain fopen.
15570	* dispnew.c, fileio.c, image.c, keyboard.c, lread.c, print.c, sysdep.c:
15571	* xfaces.c: Include sysstdio.h rather than stdio.h, for emacs_fopen.
15572	* callproc.c (default_output_mode): New constant.
15573	(Fcall_process): Use it to call emacs_open instead of plain creat.
15574	* dispnew.c (Fopen_termscript): Fix minor race in opening termscript.
15575	* sysdep.c (emacs_open): Add commentary and don't call file name "path".
15576	(emacs_fopen): New function.
15577	* unexaix.c, unexcoff.c, unexelf.c, unexhp9k800.c, unexmacosx.c:
15578	Include <lisp.h>, for emacs_open.
15579	* unexelf.c (fatal): Remove decl; not needed with <lisp.h> included.
15580
15581	Remove duplicate #include directives.
15582	* alloc.c [GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES]:
15583	* xfaces.c:
15584	Don't include stdio.h twice.
15585	* buffer.c [USE_MMAP_FOR_BUFFERS]:
15586	Don't include sys/types.h or stdio.h twice.
15587	* fileio.c [WINDOWSNT | MSDOS]: Don't include fcntl.h twice.
15588	* lread.c: Don't include coding.h twice.
15589	* nsfont.m: Don't include frame.h twice.
15590	* process.c [HAVE_RES_INIT]: Don't include <netinet/in.h> twice.
15591	* ralloc.c: Don't include <unistd.h> twice.
15592	* xdisp.c: Don't include font.h twice.
15593	* xterm.c: Don't include fontset.h twice.
15594	* xterm.h [USE_X_TOOLKIT]: Don't include X11/StringDefs.h twice.
15595
155962013-07-04  Paul Eggert  <eggert@cs.ucla.edu>
15597
15598	Scale ImageMagick images more carefully.
15599	* image.c (scale_image_size) [HAVE_IMAGEMAGICK]: New function.
15600	(compute_image_size): Use it.  Define only if HAVE_IMAGEMAGICK.
15601	Be more careful about avoiding undefined behavior after
15602	integer overflow and division by zero.
15603
156042013-07-04  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
15605
15606	* w32fns.c (Qgeometry, Qworkarea, Qmm_size, Qframes): New variables.
15607	(syms_of_w32fns): DEFSYM them.
15608	(MONITORINFOF_PRIMARY, SM_XVIRTUALSCREEN, SM_YVIRTUALSCREEN)
15609	(CCHDEVICENAME): Define macros if not defined.
15610	(struct MONITOR_INFO_EX): New struct.
15611	(MonitorEnum_Proc, EnumDisplayMonitors_Proc): New prototypes.
15612	(enum_display_monitors_fn): New variable.
15613	(globals_of_w32fns): Initialize it.
15614	(Fx_display_pixel_width, Fx_display_pixel_height)
15615	(Fx_display_mm_height, Fx_display_mm_width): Mention behavior on
15616	multi-monitor setups in docstrings.
15617	(Fx_display_mm_height, Fx_display_mm_width): Approximate whole
15618	screen size by primary monitor's millimeter per pixel.
15619	(w32_monitor_enum, w32_display_monitor_attributes_list)
15620	(w32_display_monitor_attributes_list_fallback)
15621	(Fw32_display_monitor_attributes_list): New functions.
15622	(syms_of_w32fns): Defsubr Sw32_display_monitor_attributes_list.
15623
15624	* w32term.c (SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN): Define macros
15625	if not defined.
15626	(x_display_pixel_height, x_display_pixel_width): Use GetSystemMetrics.
15627
156282013-07-04  Michael Albinus  <michael.albinus@gmx.de>
15629
15630	* fileio.c (Qfile_notify_error): New error symbol.
15631
15632	* gfilenotify.c (Fgfile_add_watch, Fgfile_rm_watch):
15633	* inotify.c (inotify_callback, symbol_to_inotifymask)
15634	(Finotify_add_watch, Finotify_rm_watch): Use it.
15635	(inotifyevent_to_event): Exchange order of cookie and file name.
15636	(Finotify_add_watch): Adapt docstring.
15637
15638	* lisp.h (Qfile_notify_error): Declare.
15639
156402013-07-04  Paul Eggert  <eggert@cs.ucla.edu>
15641
15642	Try again to fix FreeBSD bug re multithreaded memory alloc (Bug#14569).
15643	* emacs.c (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
15644	Do not clear _malloc_thread_enabled_p, undoing the previous change,
15645	which did not work (see <https://bugs.gnu.org/14569#307>).
15646	(main): Do not invoke malloc_enable_thread if (! CANNOT_DUMP
15647	&& (!noninteractive || initialized)).  This attempts to thread
15648	the needle between the Scylla of FreeBSD and the Charybdis of Cygwin.
15649
156502013-07-04  Juanma Barranquero  <lekktu@gmail.com>
15651
15652	* image.c (x_to_xcolors) [HAVE_NTGUI]: Remove unused var `hdc'.
15653	(x_build_heuristic_mask) [HAVE_NTGUI]: Remove unused var `frame_dc'.
15654
156552013-07-04  Paul Eggert  <eggert@cs.ucla.edu>
15656
15657	Try to fix FreeBSD bug re multithreaded memory allocation (Bug#14569).
15658	* emacs.c (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
15659	Clear _malloc_thread_enabled_p at startup.  Reported by Ashish SHUKLA in
15660	<https://lists.gnu.org/r/emacs-devel/2013-07/msg00088.html>.
15661
156622013-07-02  Paul Eggert  <eggert@cs.ucla.edu>
15663
15664	* sysdep.c (sys_siglist) [HAVE_DECL___SYS_SIGLIST]:
15665	Define to __sys_siglist.
15666
156672013-07-02  Eli Zaretskii  <eliz@gnu.org>
15668
15669	* xdisp.c (IT_OVERFLOW_NEWLINE_INTO_FRINGE): Don't disallow
15670	word-wrap, so that overflow-newline-into-fringe would work in
15671	visual-line-mode.  (Bug#2749)
15672	(move_it_in_display_line_to): When the last scanned display
15673	element fits exactly on the display line, and
15674	overflow-newline-into-fringe is non-nil, but wrap_it is valid,
15675	don't return MOVE_NEWLINE_OR_CR, but instead back up to the last
15676	wrap point and return MOVE_LINE_CONTINUED.  Fixes problems with
15677	finding buffer position that corresponds to pixel coordinates,
15678	e.g. in buffer_posn_from_coords.
15679
156802013-07-02  Jan Djärv  <jan.h.d@swipnet.se>
15681
15682	* process.c (handle_child_signal): Call catch_child_signal if
15683	NS_IMPL_GNUSTEP.
15684
156852013-07-02  Paul Eggert  <eggert@cs.ucla.edu>
15686
15687	Don't convert function pointers to void * and back.
15688	It isn't portable C, and it's easy enough to avoid.
15689	* alloc.c: Verify SAVE_FUNCPOINTER bits, too.
15690	(make_save_value): Add support for SAVE_FUNCPOINTER.
15691	* keymap.c (map_keymap_char_table_item, map_keymap_internal):
15692	* print.c (print_object):
15693	Distinguish function from object pointers.
15694	* lisp.h (SAVE_FUNCPOINTER): New constant.
15695	(SAVE_SLOT_BITS): Adjust to it.
15696	(SAVE_TYPE_FUNCPTR_PTR_OBJ): New constant, replacing
15697	SAVE_TYPE_PTR_PTR_OBJ.  Change the only use.
15698	(voidfuncptr): New typedef.
15699	(struct Lisp_Save_Value): New member data[0].funcpointer.
15700	(XSAVE_FUNCPOINTER): New function.
15701
15702	Simplify buildobj processing.
15703	* Makefile.in (buildobj.h): Make it a sequence of strings each
15704	followed by comma, rather than a single string.  Put it into a
15705	.tmp file in case there's an error while generating it.
15706	(gl-stamp): Use .tmp for temp files.
15707	(mostlyclean): Clean .tmp files.
15708	* doc.c (buildobj): Move to just the routine that needs it.
15709	It's now an array of strings, so processing is simpler.
15710
157112013-07-01  Paul Eggert  <eggert@cs.ucla.edu>
15712
15713	Fix bug re noninteractive multithreaded memory allocation (Bug#14569).
15714	* emacs.c (malloc_enable_thread): Hoist extern decl to top level.
15715	(main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
15716	Invoke malloc_enable_thread even when not interactive.
15717	Reported by Ken Brown in <https://bugs.gnu.org/14569#275>.
15718	* process.c (init_process_emacs) [CYGWIN]: Tickle glib even
15719	in this case, since the underlying bug has now been fixed.
15720
157212013-07-01  Juanma Barranquero  <lekktu@gmail.com>
15722
15723	* emacs.c (Fkill_emacs): Expand Vauto_save_list_file_name before
15724	unlinking it (bug#14691).
15725
157262013-06-30  Michal Nazarewicz  <mina86@mina86.com>
15727
15728	* buffer.c (FKill_buffer): Run `kill-buffer-query-functions'
15729	before checking whether buffer is modified.  This lets
15730	`kill-buffer-query-functions' cancel killing of the buffer or save
15731	its content before `kill-buffer' asks user the "Buffer %s
15732	modified; kill anyway?" question.
15733
157342013-06-30  Jan Djärv  <jan.h.d@swipnet.se>
15735
15736	* nsfns.m (handlePanelKeys): Don't process Command+Function keys.
15737	Let the super performKeyEquivalent deal with them (Bug#14747).
15738
157392013-06-30  Paul Eggert  <eggert@cs.ucla.edu>
15740
15741	* widget.c (resize_cb): Remove unused local.
15742
15743	Do not use GTK 3 if it exists but cannot be compiled.
15744	* xmenu.c (x_menu_wait_for_event) [!USE_GTK]:
15745	* xterm.c (x_error_handler) [!USE_GTK]:
15746	Do not use GTK 3.
15747
15748	* intervals.c (get_local_map): Actually clip POSITION (Bug#14753).
15749
157502013-06-30  Eli Zaretskii  <eliz@gnu.org>
15751
15752	* intervals.c (get_local_map): Instead of aborting, clip POSITION
15753	to the valid range of values.  (Bug#14753)
15754
15755	* xdisp.c (Fmove_point_visually): Invalidate the cursor position
15756	when moving point by using the current glyph matrix.  This avoids
15757	the need to force redisplay when this function is called in a
15758	loop.
15759
157602013-06-29  Paul Eggert  <eggert@cs.ucla.edu>
15761
15762	Fix minor problems found by static checking.
15763	* coding.c (encode_inhibit_flag, inhibit_flag): New functions.
15764	Redo the latter's body to sidestep GCC parenthesization warnings.
15765	(setup_coding_system, detect_coding, detect_coding_system): Use them.
15766	* coding.c (detect_coding, detect_coding_system):
15767	* coding.h (struct undecided_spec):
15768	Use bool for boolean.
15769	* image.c (QCmax_width, QCmax_height): Now static.
15770	* xdisp.c (Fmove_point_visually): Remove unused local.
15771
157722013-06-29  Eli Zaretskii  <eliz@gnu.org>
15773
15774	* xdisp.c (Fmove_point_visually): New function.
15775
157762013-06-28  Kenichi Handa  <handa@gnu.org>
15777
15778	* coding.h (define_coding_undecided_arg_index): New enum.
15779	(coding_attr_index): New members
15780	coding_attr_undecided_inhibit_null_byte_detection,
15781	coding_attr_undecided_inhibit_iso_escape_detection,
15782	coding_attr_undecided_prefer_utf_8.
15783	(undecided_spec): New struct.
15784	(struct coding_system): New member `undecided' of the member
15785	`spec'.
15786
15787	* coding.c (setup_coding_system): Handle CODING->spec.undecided.
15788	(detect_coding): Likewise.
15789	(detect_coding_system): Likewise.
15790	(Fdefine_coding_system_internal): New coding system properties
15791	:inhibit-null-byte-detection, :inhibit-iso-escape-detection, and
15792	:prefer-utf-8.
15793	(syms_of_coding): Adjust for coding_arg_undecided_max.
15794
157952013-06-28  Paul Eggert  <eggert@cs.ucla.edu>
15796
15797	* image.c (x_from_xcolors): Remove unused local.
15798
157992013-06-28  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
15800
15801	Defer image data transfer between X client and server until actual
15802	display happens.
15803
15804	* dispextern.h (struct image) [HAVE_X_WINDOWS]: New members `ximg'
15805	and `mask_img'.
15806
15807	* image.c (Destroy_Image): Remove.
15808	(x_clear_image_1): New arg `flags' instead of 3 bools `pixmap_p',
15809	`mask_p', and `colors_p'.  All uses changed.
15810	(x_clear_image_1) [HAVE_X_WINDOWS]: Destroy `ximg' and `mask_img'.
15811	(CLEAR_IMAGE_PIXMAP, CLEAR_IMAGE_MASK, CLEAR_IMAGE_COLORS):
15812	New macros for `flags' arg to x_clear_image_1.
15813	(postprocess_image, xpm_load_image, x_build_heuristic_mask)
15814	(png_load_body): Use x_clear_image_1 instead of Free_Pixmap.
15815	(ZPixmap, XGetImage) [HAVE_NS]: Remove.
15816	(image_get_x_image_or_dc, image_unget_x_image_or_dc)
15817	(image_get_x_image, image_unget_x_image): New functions or macros.
15818	(image_background, image_background_transparent, x_to_xcolors)
15819	(x_build_heuristic_mask): Use image_get_x_image_or_dc instead of
15820	XGetImage or CreateCompatibleDC.  Use image_unget_x_image_or_dc
15821	instead of Destroy_Image.
15822	(image_create_x_image_and_pixmap, image_put_x_image): New functions.
15823	(xpm_load_image, x_from_xcolors, x_build_heuristic_mask, pbm_load)
15824	(png_load_body, jpeg_load_body, tiff_load, gif_load)
15825	(imagemagick_load_image, svg_load_image): Use them instead of
15826	x_create_x_image_and_pixmap, and x_put_x_image followed by
15827	x_destroy_x_image, respectively.
15828	(xpm_load) [HAVE_XPM && !HAVE_NTGUI]: Use XpmReadFileToImage and
15829	XpmCreateImageFromBuffer instead of XpmReadFileToPixmap and
15830	XpmCreatePixmapFromBuffer.  Create pixmaps.  Fill background and
15831	background_transparent fields.
15832	(image_sync_to_pixmaps) [HAVE_X_WINDOWS]: New function.
15833	(prepare_image_for_display, x_disable_image) [HAVE_X_WINDOWS]: Use it.
15834
158352013-06-27  Paul Eggert  <eggert@cs.ucla.edu>
15836
15837	Do not tickle glib SIGCHLD handling if Cygwin (Bug#14569).
15838	This mostly consists of undoing recent changes.
15839	* callproc.c (Fcall_process):
15840	* process.c (create_process):
15841	Do not worry about catching SIGCHLD here, undoing previous change.
15842	* nsterm.m (ns_term_init): Re-catch SIGCHLD, undoing previous change.
15843	* process.c, process.h (catch_child_signal):
15844	No longer extern if !NS_IMPL_GNUSTEP, undoing 06-22 change.
15845	* process.c (catch_child_handler): Don't worry about being called
15846	lazily and do not assume caller has blocked SIGCHLD, undoing
15847	previous change.  Move first-time stuff back to
15848	init_process_emacs, undoing 06-22 change.  If CYGWIN, do not
15849	tickle glib, as that causes Cygwin bootstrap to fail.  Do not
15850	set lib_child_handler if it's already initialized, which may
15851	help avoid problems on GNUstep.
15852
158532013-06-23  Paul Eggert  <eggert@cs.ucla.edu>
15854
15855	A more-conservative workaround for Cygwin SIGCHLD issues (Bug#14569).
15856	* callproc.c (Fcall_process):
15857	* process.c (create_process):
15858	Make sure SIGCHLD is caught before we fork,
15859	since Emacs startup no arranges to catch SIGCHLD.
15860	* process.c (lib_child_handler): Initialize to null, not to
15861	dummy_handler.
15862	(catch_child_signal): Allow self to be called lazily.
15863	Do nothing if it's already been called.
15864	Assume caller has blocked SIGCHLD (all callers do now).
15865	* emacs.c (main): Do not catch SIGCHLD here; defer it until
15866	just before it's really needed.
15867	* nsterm.m (ns_term_init): No need to re-catch SIGCHLD here,
15868	since it hasn't been caught yet.
15869
158702013-06-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
15871
15872	* image.c (compute_image_size): New function to implement
15873	:max-width and :max-height.
15874	(imagemagick_load_image): Use it.
15875
158762013-06-23  Paul Eggert  <eggert@cs.ucla.edu>
15877
15878	Try to avoid malloc SEGVs on Cygwin (Bug#14569).
15879	* callproc.c, process.h (block_child_signal, unblock_child_signal):
15880	Now extern.
15881	* emacs.c (main): Catch SIGCHLD just before initializing gfilenotify.
15882	* process.c (catch_child_signal): Block SIGCHLD while futzing with
15883	the SIGCHLD handler, since the code is not atomic and (due to glib)
15884	signals may be arriving now.
15885	* sysdep.c (init_signals): Do not catch child signals here;
15886	'main' now does that later, at a safer time.
15887
158882013-06-22  Paul Eggert  <eggert@cs.ucla.edu>
15889
15890	Clean up SIGCHLD handling a bit (Bug#14569).
15891	* process.c, process.h (catch_child_signal):
15892	Now always extern, even if !NS_IMPL_GNUSTEP.
15893	* process.c (catch_child_signal): Move glib tickler here from
15894	init_process_emacs, so that it's done earlier in Emacs
15895	initialization.  Also move the noninteractive && !initialized
15896	check here from init_process_emacs.  This is all a bit cleaner for
15897	GNUish platforms, and I hope it works around the Cygwin bug.
15898	* sysdep.c (init_signals): Invoke catch_child_signal here, so
15899	that glib signal handling is tickled before glib creates threads.
15900
15901	* process.c (wait_reading_process_output): Avoid int overflow
15902	when reading more than 2 GiB total from a process.
15903
159042013-06-21  Paul Eggert  <eggert@cs.ucla.edu>
15905
15906	* process.c (create_process): Handle a couple more cases,
15907	i.e., work even if new_argv and wait_child_setup[i] are cached.
15908	Use Fcall_process's style for volatile vars.
15909
159102013-06-21  Andreas Schwab  <schwab@linux-m68k.org>
15911
15912	* process.c (create_process): Mark PROCESS volatile.
15913
159142013-06-21  Paul Eggert  <eggert@cs.ucla.edu>
15915
15916	Use C99-style flexible array members if available.
15917	This avoids some subtle aliasing issues, which typically
15918	aren't a problem with GCC but may be a problem elsewhere.
15919	* alloc.c (sdata): New typedef, replacing the old struct sdata.
15920	It is a struct if GC_CHECK_STRING_BYTES, a union otherwise.
15921	In either case, it uses a flexible array member rather than
15922	the old struct hack.  All uses changed.
15923	(SDATA_NBYTES, sweep_strings) [!GC_CHECK_STRING_BYTES]:
15924	Adjust to sdata reorganization.
15925	* alloc.c (VBLOCK_BYTES_MIN, allocate_vectorlike, Fgarbage_collect):
15926	Use offsetof (struct, flex_array_member), not sizeof (struct), as
15927	that ports better to pre-C99 non-GCC.
15928	* chartab.c (Fmake_char_table, make_sub_char_table, copy_char_table):
15929	Use CHAR_TABLE_STANDARD_SLOTS rather than its definition,
15930	as the latter has changed.
15931	* conf_post.h (FLEXIBLE_ARRAY_MEMBER): Move here from w32.c,
15932	and port better to pre-C99 GCC.
15933	* image.c (struct xpm_cached_color):
15934	* lisp.h (struct Lisp_Vector, struct Lisp_Bool_Vector)
15935	(struct Lisp_Char_Table, struct Lisp_Sub_Char_Table):
15936	Use FLEXIBLE_ARRAY_MEMBER.
15937	* lisp.h (string_bytes) [GC_CHECK_STRING_BYTES]:
15938	Move decl to top level so it gets checked against implementation.
15939	(CHAR_TABLE_STANDARD_SLOTS): Adjust to struct Lisp_Char_Table change.
15940	* w32.c (FLEXIBLE_ARRAY_MEMBER): Move to conf_post.h.
15941
159422013-06-20  Paul Eggert  <eggert@cs.ucla.edu>
15943
15944	* syntax.c: Integer cleanups.
15945	(SYNTAX_FLAGS_COMMENT_STYLEC): Return a boolean, not 0-or-2.
15946	All uses that need 0-or-2 changed to:
15947	(SYNTAX_FLAGS_COMMENT_STYLEC2): New macro, with the same semantics
15948	as the old SYNTAX_FLAGS_COMMENT_STYLEC.
15949	(struct lisp_parse_state, syntax_prefix_flag_p, update_syntax_table)
15950	(char_quoted, prev_char_comend_first, back_comment)
15951	(Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
15952	(in_classes, forw_comment, scan_lists, scan_sexps_forward):
15953	Use bool for boolean.
15954	(update_syntax_table, skip_chars, skip_syntaxes):
15955	Prefer int to unsigned when either will do.
15956	(back_comment): Return boolean success flag, like forw_comment,
15957	instead of positive-or-minus-1 (which might have overflowed int anyway).
15958	Don't stuff ptrdiff_t into int.
15959	(syntax_spec_code, syntax_code_spec): Now const.
15960	(Fmatching_paren, scan_lists, scan_sexps_forward):
15961	Use enum syntaxcode for syntax code.
15962	(Fmatching_paren): Check that arg is a character, not just an integer.
15963	(Fstring_to_syntax): Don't assume 0377 fits in enum syntaxcode.
15964	(Finternal_describe_syntax_value): Omit no-longer-needed
15965	comparison to 0.
15966	(skip_chars): Use char, not unsigned char, when the distinction
15967	doesn't matter.
15968	(forw_comment, scan_lists): Prefer A |= B to A = A || B when B's cheap.
15969	* bytecode.c (exec_byte_code):
15970	* syntax.c (syntax_spec_code, Fchar_syntax)
15971	(Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
15972	(init_syntax_once):
15973	* syntax.h (SYNTAX_WITH_FLAGS):
15974	Omit unnecessary casts.
15975
159762013-06-20  Eli Zaretskii  <eliz@gnu.org>
15977
15978	* w32fns.c (w32_wnd_proc): Don't compute the header line and mode
15979	line dimensions here, to avoid race conditions with the main
15980	thread.  (Bug#14062, bug#14630, bug#14669)
15981
15982	* w32term.c (w32_draw_window_cursor): Compute the header line and
15983	mode line dimensions here.
15984	<w32_system_caret_window, w32_system_caret_hdr_height>:
15985	<w32_system_caret_mode_height>: New variables.
15986
15987	* w32term.h: Declare them.
15988
159892013-06-20  Paul Eggert  <eggert@cs.ucla.edu>
15990
15991	* alloc.c (die): Move "assertion failed" string here ...
15992	* lisp.h (eassert): ... from here.  Also, suppress evaluation of
15993	COND when SUPPRESS_CHECKING.  This shrinks the executable text
15994	size by 0.8% to 2.2% when configured with --enable-checking,
15995	depending on optimization flags (GCC 4.8.1 x86-64).
15996
15997	* floatfns.c (Flog10): Move to Lisp (marked obsolete there).
15998
159992013-06-20  Rüdiger Sonderfeld  <ruediger@c-plusplus.de>
16000
16001	* floatfns.c (Flog) [HAVE_LOG2]: Use log2 if available and if the
16002	base is 2; this is more accurate.
16003
160042013-06-19  Juanma Barranquero  <lekktu@gmail.com>
16005
16006	* sound.c (string_default): Move to !WINDOWSNT section.
16007	(Fplay_sound_internal) [WINDOWSNT]: Remove i_result to avoid warning.
16008
160092013-06-19  Paul Eggert  <eggert@cs.ucla.edu>
16010
16011	* sound.c: Integer cleanups.
16012	Remove unnecessary forward decls.
16013	(struct sound_device): The 'file' member is now a Lisp_Object, not
16014	a char *, so that we needn't invoke alloca on a huge size.
16015	(Fplay_sound_internal): Adjust to this.
16016	(string_default): New function.
16017	(vox_open, vox_init, alsa_open, alsa_configure, alsa_init):
16018	Use it to adjust to the struct sound_device change.
16019	(parse_sound, wav_init, au_init, alsa_init): Use bool for booleans.
16020	(be2hs) [0]: Remove.
16021
16022	* syntax.c (skip_chars): Don't use uninitialized storage
16023	when searching a multibyte buffer for characters that are not in a
16024	unibyte string that contains non-ASCII characters.
16025
160262013-06-18  Jan Djärv  <jan.h.d@swipnet.se>
16027
16028	* process.c: Include xgselect.h if HAVE_GLIB.  Include glib.h
16029	if HAVE_GLIB && ! WINDOWSNT (Bug#14654).
16030
160312013-06-18  Paul Eggert  <eggert@cs.ucla.edu>
16032
16033	* conf_post.h: Add comments for INLINE, EXTERN_INLINE, etc.
16034
160352013-06-18  Kenichi Handa  <handa@gnu.org>
16036
16037	* font.c (Ffont_spec): Signal an error for an invalid font name
16038	(Bug#14648).
16039
160402013-06-18  Paul Eggert  <eggert@cs.ucla.edu>
16041
16042	Porting fixes for merged specpdl and backtrace stacks (Bug#14643).
16043	In particular this ports to 32-bit sparc Sun cc.
16044	* eval.c (init_eval_once, grow_specpdl): Allocate a specbinding
16045	array with a dummy element at specpdl[-1], so that its address can
16046	be taken portably.
16047	(unbind_to): Do not copy the binding; not needed, now that we
16048	copy old_value in the one place where the copy is needed.
16049	* fileio.c (Fwrite_region): Use ptrdiff_t, not int, for specpdl count.
16050	* lisp.h (BITS_PER_PTRDIFF_T): Remove; no longer needed.
16051	(union specbinding): Rename from struct specbinding.  Redo layout
16052	to avoid the need for 'ptrdiff_t nargs : BITS_PER_PTRDIFF_T - 1;',
16053	which is not portable.  With Sun C 5.12 32-bit sparc, the
16054	declaration causes nargs to be an unsigned bitfield, a behavior
16055	that the C standard allows; but Emacs wants nargs to be signed.
16056	The overall type is now a union of structures rather than a
16057	structure of union of structures, and the 'kind' member is now a
16058	bitfield, so that the overall type doesn't grow.  All uses changed.
16059	* process.c (Fmake_serial_process): Remove unnecessary initialization.
16060
160612013-06-17  Paul Eggert  <eggert@cs.ucla.edu>
16062
16063	* frame.c (x_report_frame_params): Cast parent_desc to uintptr_t.
16064	Needed if HAVE_NTGUI.  Reported by Juanma Barranquero.
16065
16066	* nsfont.m (ns_registry_to_script): Parenthesize while expression.
16067
160682013-06-17  Eli Zaretskii  <eliz@gnu.org>
16069
16070	* w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT
16071	unless we know that the window w's frame is a frame object.
16072	Another attempt at solving bug#14062 and bug#14630.
16073
160742013-06-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
16075
16076	* textprop.c (property_set_type): New enum.
16077	(add_properties): Allow appending/prepending text properties.
16078	(add_text_properties_1): Factored out of Fadd_text_properties.
16079	(Fadd_text_properties): Move all the code into
16080	add_text_properties_1.
16081	(Fadd_face_text_property): New function that calls
16082	add_text_properties_1.
16083
160842013-06-17  Paul Eggert  <eggert@cs.ucla.edu>
16085
16086	Move functions from lisp.h to individual modules when possible.
16087	From a suggestion by Andreas Schwab in <https://bugs.gnu.org/11935#68>.
16088	* alloc.c (XFLOAT_INIT, set_symbol_name):
16089	* buffer.c (CHECK_OVERLAY):
16090	* chartab.c (CHECK_CHAR_TABLE, set_char_table_ascii)
16091	(set_char_table_parent):
16092	* coding.c (CHECK_NATNUM_CAR, CHECK_NATNUM_CDR):
16093	* data.c (BOOLFWDP, INTFWDP, KBOARD_OBJFWDP, OBJFWDP, XBOOLFWD)
16094	(XKBOARD_OBJFWD, XINTFWD, XOBJFWD, CHECK_SUBR, set_blv_found)
16095	(blv_value, set_blv_value, set_blv_where, set_blv_defcell)
16096	(set_blv_valcell):
16097	* emacs.c (setlocale) [!HAVE_SETLOCALE]:
16098	* eval.c (specpdl_symbol, specpdl_old_value, specpdl_where)
16099	(specpdl_arg, specpdl_func, backtrace_function, backtrace_nargs)
16100	(backtrace_args, backtrace_debug_on_exit):
16101	* floatfns.c (CHECK_FLOAT):
16102	* fns.c (CHECK_HASH_TABLE, CHECK_LIST_END)
16103	(set_hash_key_and_value, set_hash_next, set_hash_next_slot)
16104	(set_hash_hash, set_hash_hash_slot, set_hash_index)
16105	(set_hash_index_slot):
16106	* keymap.c (CHECK_VECTOR_OR_CHAR_TABLE):
16107	* marker.c (CHECK_MARKER):
16108	* textprop.c (CHECK_STRING_OR_BUFFER):
16109	* window.c (CHECK_WINDOW_CONFIGURATION):
16110	Move here from lisp.h, and make these functions static rather than
16111	extern inline.
16112	* buffer.c (Qoverlayp):
16113	* data.c (Qsubrp):
16114	* fns.c (Qhash_table_p):
16115	* window.c (Qwindow_configuration_p):
16116	Now static.
16117	* lisp.h: Remove the abovementioned defns and decls.
16118
16119	Use functions, not macros, for XINT etc (Bug#11935).
16120	In lisp.h, prefer functions to function-like macros, and
16121	constants to object-like macros, when either will do.  This:
16122	 . simplifies use, as there's no more need to worry about
16123	   arguments' side effects being evaluated multiple times.
16124	 . makes the code easier to debug on some platforms.
16125	However, when using gcc -O0, keep using function-like macros
16126	for a few critical operations, for performance reasons.
16127	This sort of thing isn't needed with gcc -Og, but -Og
16128	is a GCC 4.8 feature and isn't widely-enough available yet.
16129	* alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]:
16130	Remove enum lsb_bits; no longer needed.
16131	(allocate_misc, free_misc): Don't use XMISCTYPE as an lvalue.
16132	* buffer.c (Qoverlap):
16133	* data.c (Qsubrp):
16134	* fns.c (Qhash_table_p):
16135	Now extern, so lisp.h can use these symbols.
16136	* dispextern.h: Include character.h, for MAX_CHAR etc.
16137	(GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE)
16138	(SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
16139	(SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P)
16140	(GLYPH_CODE_P): Move here from lisp.h.
16141	(GLYPH_CHAR, GLYPH_FACE, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
16142	(GLYPH_CHAR_VALID_P, GLYPH_CODE_P): Now functions, not macros.
16143	(GLYPH_MODE_LINE_FACE): Now enums, not macros.
16144	* eval.c (Fautoload): Cast XUNTAG output to intptr_t, since
16145	XUNTAG now returns void *.
16146	* lisp.h (lisp_h_XLI, lisp_h_XIL, lisp_h_CHECK_LIST_CONS)
16147	(lisp_h_CHECK_NUMBER CHECK_SYMBOL, lisp_h_CHECK_TYPE)
16148	(lisp_h_CONSP, lisp_h_EQ, lisp_h_FLOATP, lisp_h_INTEGERP)
16149	(lisp_h_MARKERP, lisp_h_MISCP, lisp_h_NILP)
16150	(lisp_h_SET_SYMBOL_VAL, lisp_h_SYMBOL_CONSTANT_P)
16151	(lisp_h_SYMBOL_VAL, lisp_h_SYMBOLP, lisp_h_VECTORLIKEP)
16152	(lisp_h_XCAR, lisp_h_XCDR, lisp_h_XCONS, lisp_h_XHASH)
16153	(lisp_h_XPNTR, lisp_h_XSYMBOL):
16154	New macros, renamed from their sans-lisp_h_ counterparts.
16155	(XLI, XIL, CHECK_LIST_CONS, CHECK_NUMBER CHECK_SYMBOL)
16156	(CHECK_TYPE, CONSP, EQ, FLOATP, INTEGERP, MARKERP)
16157	(MISCP, NILP, SET_SYMBOL_VAL, SYMBOL_CONSTANT_P, SYMBOL_VAL, SYMBOLP)
16158	(VECTORLIKEP, XCAR, XCDR, XCONS, XHASH, XPNTR, XSYMBOL):
16159	If compiling via GCC without optimization, define these as macros
16160	in addition to inline functions.
16161	To disable this, compile with -DINLINING=0.
16162	(LISP_MACRO_DEFUN, LISP_MACRO_DEFUN_VOID): New macros.
16163	(check_cons_list) [!GC_CHECK_CONS_LIST]: Likewise.
16164	(make_number, XFASTINT, XINT, XTYPE, XUNTAG): Likewise, but
16165	hand-optimize only in the USE_LSB_TAG case, as GNUish hosts do that.
16166	(INTMASK, VALMASK): Now macros, since static values cannot be
16167	accessed from extern inline functions.
16168	(VALMASK): Also a constant, for benefit of old GDB.
16169	(LISP_INT_TAG_P): Remove; no longer needed as the only caller
16170	is INTEGERP, which can fold it in.
16171	(XLI, XIL, XHASH, XTYPE, XINT, XFASTINT, XUINT)
16172	(make_number, XPNTR, XUNTAG, EQ, XCONS, XVECTOR, XSTRING, XSYMBOL)
16173	(XFLOAT, XPROCESS, XWINDOW, XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE)
16174	(XSUB_CHAR_TABLE, XBOOL_VECTOR, make_lisp_ptr, CHECK_TYPE)
16175	(CHECK_STRING_OR_BUFFER, XCAR, XCDR, XSETCAR, XSETCDR, CAR, CDR)
16176	(CAR_SAFE, CDR_SAFE, STRING_MULTIBYTE, SDATA, SSDATA, SREF, SSET)
16177	(SCHARS, STRING_BYTES, SBYTES, STRING_SET_CHARS, STRING_COPYIN, AREF)
16178	(ASIZE, ASET, CHAR_TABLE_REF_ASCII, CHAR_TABLE_REF)
16179	(CHAR_TABLE_SET, CHAR_TABLE_EXTRA_SLOTS, SYMBOL_VAL, SYMBOL_ALIAS)
16180	(SYMBOL_BLV, SYMBOL_FWD, SET_SYMBOL_VAL, SET_SYMBOL_ALIAS)
16181	(SET_SYMBOL_BLV, SET_SYMBOL_FWD, SYMBOL_NAME, SYMBOL_INTERNED_P)
16182	(SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P, SYMBOL_CONSTANT_P)
16183	(XHASH_TABLE, HASH_TABLE_P, CHECK_HASH_TABLE, HASH_KEY, HASH_VALUE)
16184	(HASH_NEXT, HASH_HASH, HASH_INDEX, HASH_TABLE_SIZE)
16185	(XMISC, XMISCANY, XMARKER, XOVERLAY, XSAVE_VALUE, XFWDTYPE)
16186	(XINTFWD, XBOOLFWD, XOBJFWD, XBUFFER_OBJFWD, XKBOARD_OBJFWD)
16187	(XFLOAT_DATA, XFLOAT_INIT, NILP, NUMBERP, NATNUMP)
16188	(RANGED_INTEGERP, CONSP, FLOATP, MISCP, STRINGP, SYMBOLP)
16189	(INTEGERP, VECTORLIKEP, VECTORP, OVERLAYP)
16190	(MARKERP, SAVE_VALUEP, AUTOLOADP, INTFWDP, BOOLFWDP, OBJFWDP)
16191	(BUFFER_OBJFWDP, KBOARD_OBJFWDP, PSEUDOVECTOR_TYPEP)
16192	(PSEUDOVECTORP, WINDOW_CONFIGURATIONP, PROCESSP, WINDOWP)
16193	(TERMINALP, SUBRP, COMPILEDP, BUFFERP, CHAR_TABLE_P)
16194	(SUB_CHAR_TABLE_P, BOOL_VECTOR_P, FRAMEP, IMAGEP, ARRAYP)
16195	(CHECK_LIST, CHECK_LIST_CONS, CHECK_LIST_END, CHECK_STRING)
16196	(CHECK_STRING_CAR, CHECK_CONS, CHECK_SYMBOL, CHECK_CHAR_TABLE)
16197	(CHECK_VECTOR, CHECK_VECTOR_OR_STRING, CHECK_ARRAY)
16198	(CHECK_VECTOR_OR_CHAR_TABLE, CHECK_BUFFER, CHECK_WINDOW)
16199	(CHECK_WINDOW_CONFIGURATION, CHECK_PROCESS, CHECK_SUBR)
16200	(CHECK_NUMBER, CHECK_NATNUM, CHECK_MARKER, XFLOATINT)
16201	(CHECK_FLOAT, CHECK_NUMBER_OR_FLOAT, CHECK_OVERLAY)
16202	(CHECK_NUMBER_CAR, CHECK_NUMBER_CDR, CHECK_NATNUM_CAR)
16203	(CHECK_NATNUM_CDR, FUNCTIONP, SPECPDL_INDEX, LOADHIST_ATTACH)
16204	Now functions.
16205	(check_cons_list) [!GC_CHECK_CONS_LIST]: New empty function.
16206	(LISP_MAKE_RVALUE, TYPEMASK): Remove; no longer needed.
16207	(VALMASK): Define in one place rather than in two, merging the
16208	USE_LSB_TAG parts; this is simpler.
16209	(aref_addr, gc_aset, MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM)
16210	(max, min, struct Lisp_String, UNSIGNED_CMP, ASCII_CHAR_P):
16211	Move up, to avoid use before definition.
16212	Also include "globals.h" earlier, for the same reason.
16213	(make_natnum): New function.
16214	(XUNTAG): Now returns void *, not intptr_t, as this means fewer casts.
16215	(union Lisp_Fwd, BOOLFWDP, BOOL_VECTOR_P, BUFFER_OBJFWDP, BUFFERP)
16216	(CHAR_TABLE_P, CHAR_TABLE_REF_ASCII, CONSP, FLOATP, INTEGERP, INTFWDP)
16217	(KBOARD_OBJFWDP, MARKERP, MISCP, NILP, OBJFWDP, OVERLAYP, PROCESSP)
16218	(PSEUDOVECTORP, SAVE_VALUEP, STRINGP, SUB_CHAR_TABLE_P, SUBRP, SYMBOLP)
16219	(VECTORLIKEP, WINDOWP, Qoverlayp, char_table_ref, char_table_set)
16220	(char_table_translate, Qarrayp, Qbufferp, Qbuffer_or_string_p)
16221	(Qchar_table_p, Qconsp, Qfloatp, Qintegerp, Qlambda, Qlistp, Qmarkerp)
16222	(Qnil, Qnumberp, Qsubrp, Qstringp, Qsymbolp, Qvectorp)
16223	(Qvector_or_char_table_p, Qwholenump, Ffboundp, wrong_type_argument)
16224	(initialized, Qhash_table_p, extract_float, Qprocessp, Qwindowp)
16225	(Qwindow_configuration_p, Qimage): New forward declarations.
16226	(XSETFASTINT): Simplify by rewriting in terms of make_natnum.
16227	(STRING_COPYIN): Remove; unused.
16228	(XCAR_AS_LVALUE, XCDR_AS_LVALUE): Remove these macros, replacing with ...
16229	(xcar_addr, xcdr_addr): New functions.  All uses changed.
16230	(IEEE_FLOATING_POINT): Now a constant, not a macro.
16231	(GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE)
16232	(SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
16233	(SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P)
16234	(GLYPH_CODE_P): Move to dispextern.h, to avoid define-before-use.
16235	(TYPE_RANGED_INTEGERP): Simplify.
16236	(Qsubrp, Qhash_table_p, Qoverlayp): New extern decls.
16237	(setlocale, fixup_locale, synchronize_system_messages_locale)
16238	(synchronize_system_time_locale) [!HAVE_SETLOCALE]:
16239	Now empty functions, not macros.
16240	(functionp): Return bool, not int.
16241	* window.c (Qwindow_configuration_p): Now extern,
16242	so window.h can use it.
16243	* window.h (Qwindowp): Move decl back to lisp.h.
16244
162452013-06-15  Eli Zaretskii  <eliz@gnu.org>
16246
16247	* xdisp.c (Fline_pixel_height): New function, required for solving
16248	bug #14567.
16249
162502013-06-15  Paul Eggert  <eggert@cs.ucla.edu>
16251
16252	* fns.c (Fcopy_sequence): Simplify XTYPE calculation.
16253
162542013-06-13  Stefan Monnier  <monnier@iro.umontreal.ca>
16255
16256	* lread.c (syms_of_lread):
16257	* fns.c (Fprovide): Adjust to new format of after-load-alist.
16258
162592013-06-13  Kelly Dean  <kellydeanch@yahoo.com>  (tiny change)
16260
16261	* fileio.c (Fdo_auto_save): Trap errors in auto-save-hook.  (Bug#14479)
16262
162632013-06-12  Xue Fuqiao  <xfq.free@gmail.com>
16264
16265	* fileio.c (expand_file_name): Doc fix.
16266
162672013-06-11  Paul Eggert  <eggert@cs.ucla.edu>
16268
16269	Tickle glib by waiting for Emacs itself, not for process 0 (Bug#14569).
16270	* process.c (init_process_emacs) [HAVE_GLIB && !WINDOWSNT]:
16271	Wait for self, not for 0.  This can't hurt on GNU or similar
16272	system, and may help with Cygwin.
16273
16274	* keyboard.c: Don't use PROP (...) as an lvalue.
16275	(parse_tool_bar_item) [!USE_GTK && !HAVE_NS]:
16276	Use set_prop (A, B), not PROP (A) = B.
16277
162782013-06-10  Eli Zaretskii  <eliz@gnu.org>
16279
16280	* xdisp.c (get_it_property): Use it->window instead of generating
16281	a Lisp object from it->w.
16282
162832013-06-09  Eli Zaretskii  <eliz@gnu.org>
16284
16285	* xdisp.c (get_it_property): If it->object is a buffer, pass to
16286	get-char-property the window that is being rendered, instead of
16287	the buffer, to support window-specific overlays.  (Bug#14575)
16288	(compute_display_string_pos): When W is NULL, use the current
16289	buffer as the object to pass to get-char-property.
16290	(Fcurrent_bidi_paragraph_direction): Assign NULL to the window
16291	pointer member of the bidi iterator, since no window is pertinent
16292	to this function.
16293
162942013-06-08  Eli Zaretskii  <eliz@gnu.org>
16295
16296	* bidi.c (bidi_fetch_char): Accept additional argument, the window
16297	being displayed, and pass it to compute_display_string_pos.
16298	(bidi_level_of_next_char, bidi_resolve_explicit_1)
16299	(bidi_paragraph_init): All callers changed.
16300
16301	* xdisp.c (init_from_display_pos, init_iterator)
16302	(handle_single_display_spec, next_overlay_string)
16303	(get_overlay_strings_1, reseat_1, reseat_to_string)
16304	(push_prefix_prop, Fcurrent_bidi_paragraph_direction):
16305	Set bidi_it.w member from it->w.
16306	(compute_display_string_pos): Accept additional argument, the
16307	window being displayed, and pass it to Fget_char_property.
16308	(Bug#14575)
16309
16310	* dispextern.h (struct bidi_it): New member w, the window being
16311	displayed.
16312	(compute_display_string_pos): Adjust prototype.
16313
163142013-06-08  Jan Djärv  <jan.h.d@swipnet.se>
16315
16316	* xgselect.c: Remove unneeded include xterm.h.
16317
16318	* process.c (wait_reading_process_output): Check for NS before GLIB.
16319	GLIB may be linked in due to rsvg, but ns_select must be called.
16320
16321	* xgselect.c (xg_select): Remove call to window_system_available
16322	and g_main_context_pending at the top, so Gdk events (i.e. file
16323	notify) are processed when Emacs is started with -nw.
16324
163252013-06-07  Eli Zaretskii  <eliz@gnu.org>
16326
16327	* Makefile.in (ctagsfiles1, ctagsfiles2): Don't include *.m files.
16328	(ctagsfiles3): New variable, includes only *.m files.
16329	(TAGS): Use an explicit language name in the regular expressions,
16330	to avoid transformation of '/SOMETHING' by MSYS to
16331	'c:\MSYS\SOMETHING'.
16332
163332013-06-07  Richard Copley  <rcopley@gmail.com>  (tiny change)
16334
16335	* epaths.in: Fix commentary to PATH_SITELOADSEARCH.
16336
163372013-06-06  Eli Zaretskii  <eliz@gnu.org>
16338
16339	* xdisp.c (note_mouse_highlight): When mouse-highlight is off,
16340	still need to set the mouse pointer shape and activate help-echo.
16341	(Bug#14558)
16342
163432013-06-06  Paul Eggert  <eggert@cs.ucla.edu>
16344
16345	A few porting etc. fixes for the new file monitor code.
16346	See the thread containing
16347	<https://lists.gnu.org/r/emacs-devel/2013-06/msg00109.html>.
16348	* gfilenotify.c (dir_monitor_callback, Fgfile_add_watch)
16349	(Fgfile_rm_watch): Don't assume EMACS_INT is the same width as a pointer.
16350	(dir_monitor_callback, Fgfile_rm_watch):
16351	Use assq_no_quit instead of Fassoc, for speed.
16352	(dir_monitor_callback, Fgfile_rm_watch):
16353	eassert that the monitor is a fixnum.
16354	(dir_monitor_callback): No need for CDR_SAFE.
16355	Simplify building of lisp with alternative tails.
16356	(Fgfile_add_watch, Fgfile_rm_watch):
16357	Do not assume glib functions set errno reliably on failure.
16358	(Fgfile_add_watch): Check that the monitor survives the XIL trick,
16359	and signal an error otherwise.
16360	(Fgfile_rm_watch): Prefer CONSP to !NILP.
16361	Use Fdelq instead of Fdelete, for speed.
16362
163632013-06-05  Eli Zaretskii  <eliz@gnu.org>
16364
16365	* xdisp.c (handle_tool_bar_click): When mouse-highlight is off,
16366	don't insist on being invoked on a highlighted tool-bar button.
16367	Avoids losing tool-bar functionality when mouse-highlight is nil.
16368	(note_tool_bar_highlight, note_mode_line_or_margin_highlight):
16369	Don't highlight when mouse-highlight is nil.
16370	(note_mouse_highlight): When mouse-highlight is nil, don't return
16371	right away; instead, run tool-bar and mode-line highlight
16372	subroutine, clear any existing highlight, and revert the mouse
16373	pointer to its default shape.  (Bug#14558)
16374
163752013-06-05  Stefan Monnier  <monnier@iro.umontreal.ca>
16376
16377	* lisp.mk (lisp): Add prog-mode.el.
16378
163792013-06-05  Paul Eggert  <eggert@cs.ucla.edu>
16380
16381	Chain glib's SIGCHLD handler from Emacs's (Bug#14474).
16382	* process.c (dummy_handler): New function.
16383	(lib_child_handler): New static var.
16384	(handle_child_signal): Invoke it.
16385	(catch_child_signal): If a library has set up a signal handler,
16386	save it into lib_child_handler.
16387	(init_process_emacs): If using glib and not on Windows, tickle glib's
16388	child-handling code so that it initializes its private SIGCHLD handler.
16389	* syssignal.h (SA_SIGINFO): Default to 0.
16390	* xterm.c (x_term_init): Remove D-bus hack that I installed on May
16391	31; it should no longer be needed now.
16392
163932013-06-05  Michael Albinus  <michael.albinus@gmx.de>
16394
16395	* emacs.c (main) [HAVE_GFILENOTIFY]: Call globals_of_gfilenotify.
16396
16397	* gfilenotify.c (globals_of_gfilenotify): New function.
16398	(syms_of_gfilenotify): Move global initialization there.
16399
16400	* lisp.h (globals_of_gfilenotify) [HAVE_GFILENOTIFY]: Add prototype.
16401
164022013-06-05  Stefan Monnier  <monnier@iro.umontreal.ca>
16403
16404	* keymap.c (Fcurrent_active_maps, Fdescribe_buffer_bindings):
16405	* keyboard.c (menu_bar_items, tool_bar_items):
16406	* doc.c (Fsubstitute_command_keys): Voverriding_terminal_local_map does
16407	not override local keymaps any more.
16408
164092013-06-04  Eli Zaretskii  <eliz@gnu.org>
16410
16411	* window.c (Fpos_visible_in_window_p): Doc fix.  (Bug#14540)
16412
164132013-06-03  Eli Zaretskii  <eliz@gnu.org>
16414
16415	* w32console.c (initialize_w32_display): Return the dimensions of
16416	the console window via 2 additional arguments, not via the current
16417	frame.  This avoids crashes due to overrunning the bounds of
16418	frame's decode_mode_spec_buffer, which is not resized following
16419	the change of the frame dimensions from the initial 10x10.
16420
16421	* w32term.h (w32_initialize_display_info): Adjust prototype.
16422
16423	* term.c (init_tty): Take dimensions of the frame from the values
16424	returned by initialize_w32_display.
16425
16426	* Makefile.in (GFILENOTIFY_CFLAGS, GFILENOTIFY_LIBS): New variables.
16427	(ALL_CFLAGS): Add $(GFILENOTIFY_CFLAGS).
16428	(LIBES): Add $(GFILENOTIFY_LIBS).
16429
16430	* w32inevt.c (handle_file_notifications): Add dummy implementation
16431	for !HAVE_W32NOTIFY.
16432
16433	* w32term.c: Wrap code with HAVE_W32NOTIFY.
16434
164352013-06-03  Jan Djärv  <jan.h.d@swipnet.se>
16436
16437	* xgselect.c: Replace #if defined ... with #ifdef HAVE_GLIB.
16438
16439	* process.c (wait_reading_process_output): Call xg_select if HAVE_GLIB.
16440
16441	* Makefile.in (XGSELOBJ): New, xgselect.o if GLib is used, or empty.
16442
164432013-06-03  Paul Eggert  <eggert@cs.ucla.edu>
16444
16445	Fix minor problems found by static checking.
16446	* data.c (pure_write_error):
16447	Use xsignal2, not Fsignal, as Fsignal might return.
16448	* eval.c (set_backtrace_debug_on_exit): Now static.
16449	(backtrace_p, backtrace_top, backtrace_next, record_in_backtrace):
16450	No longer inline.  EXTERN_INLINE is needed only for functions
16451	defined in .h files.  Reindent function header as per GNU style.
16452	(backtrace_p, backtrace_top, backtrace_next):
16453	Mark EXTERNALLY_VISIBLE so they don't get optimized away by the
16454	compiler or linker.  Add extern decls to pacify gcc -Wall.
16455	* frame.c, frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource):
16456	Now static.
16457	* frame.c (free_monitors): Define only on platforms that need it.
16458	* nsterm.m (ns_term_init):
16459	* process.c (catch_child_signal):
16460	Don't worry about whether SIGCHLD is defined, as SIGCHLD is
16461	defined on all porting targets these days.
16462	* process.c, process.h (catch_child_signal):
16463	Make it extern only if NS_IMPL_GNUSTEP is defined.
16464
164652013-06-03  Eli Zaretskii  <eliz@gnu.org>
16466
16467	* w32.c (gettimeofday): Make the signature identical to prototype
16468	in nt/inc/sys/time.h.
16469
164702013-06-03  Stefan Monnier  <monnier@iro.umontreal.ca>
16471
16472	* eval.c (backtrace_p, backtrace_top, backtrace_next): Export them to
16473	.gdbinit.
16474
16475	* keyboard.c (safe_run_hooks_error): Improve error message.
16476
16477	* data.c (pure_write_error): Add `object' argument.
16478	* puresize.h (CHECK_IMPURE): Use it.
16479
164802013-06-03  Michael Albinus  <michael.albinus@gmx.de>
16481
16482	* Makefile.in (NOTIFY_OBJ): New variable.
16483	(base_obj): Replace inotify.o by $(NOTIFY_OBJ).
16484
16485	* emacs.c (main): Use HAVE_W32NOTIFY to wrap respective code.
16486	Call syms_of_gfilenotify.
16487
16488	* gfilenotify.c: New file.
16489
16490	* keyboard.c (Qfile_notify): New variable.  Replaces Qfile_inotify
16491	and Qfile_w32notify.
16492	(top): Wrap respective code by HAVE_GFILENOTIFY, HAVE_INOTIFY,
16493	HAVE_W32NOTIFY and USE_FILE_NOTIFY.
16494
16495	* lisp.h: Declare syms_of_gfilenotify.
16496
16497	* termhooks.h (e): Wrap enum by USE_FILE_NOTIFY.
16498
164992013-06-03  Stefan Monnier  <monnier@iro.umontreal.ca>
16500
16501	Merge the specpdl and backtrace stacks.  Make the structure of the
16502	specpdl entries more obvious via a tagged union of structs.
16503	* lisp.h (BITS_PER_PTRDIFF_T): New constant.
16504	(enum specbind_tag): New enum.
16505	(struct specbinding): Make it a tagged union of structs.
16506	Add a case for backtrace records.
16507	(specpdl_symbol, specpdl_old_value, specpdl_where, specpdl_arg)
16508	(specpdl_func, backtrace_function, backtrace_nargs, backtrace_args)
16509	(backtrace_debug_on_exit): New accessors.
16510	(struct backtrace): Remove.
16511	(struct catchtag): Remove backlist field.
16512	* data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
16513	Move to eval.c.
16514	(Flocal_variable_p): Speed up the common case where the binding is
16515	already loaded.
16516	* eval.c (backtrace_list): Remove.
16517	(set_specpdl_symbol, set_specpdl_old_value): Remove.
16518	(set_backtrace_args, set_backtrace_nargs)
16519	(set_backtrace_debug_on_exit, backtrace_p, backtrace_top)
16520	(backtrace_next): New functions.
16521	(Fdefvaralias, Fdefvar): Adjust to new specpdl format.
16522	(unwind_to_catch, internal_lisp_condition_case)
16523	(internal_condition_case, internal_condition_case_1)
16524	(internal_condition_case_2, internal_condition_case_n): Don't bother
16525	with backtrace_list any more.
16526	(Fsignal): Adjust to new backtrace format.
16527	(grow_specpdl): Move up.
16528	(record_in_backtrace): New function.
16529	(eval_sub, Ffuncall): Use it.
16530	(apply_lambda): Adjust to new backtrace format.
16531	(let_shadows_buffer_binding_p, let_shadows_global_binding_p): Move from
16532	data.c.
16533	(specbind): Adjust to new specpdl format.  Simplify.
16534	(record_unwind_protect, unbind_to): Adjust to new specpdl format.
16535	(Fbacktrace_debug, Fbacktrace, Fbacktrace_frame): Adjust to new
16536	backtrace format.
16537	(mark_backtrace): Remove.
16538	(mark_specpdl, get_backtrace, backtrace_top_function): New functions.
16539	* xdisp.c (redisplay_internal): Use record_in_backtrace.
16540	* alloc.c (Fgarbage_collect): Use record_in_backtrace.
16541	Use mark_specpdl.
16542	* profiler.c (record_backtrace): Use get_backtrace.
16543	(handle_profiler_signal): Use backtrace_top_function.
16544	* .gdbinit (xbacktrace, hookpost-backtrace): Use new backtrace
16545	accessor functions.
16546
165472013-06-02  Jan Djärv  <jan.h.d@swipnet.se>
16548
16549	* process.h (catch_child_signal): Declare.
16550
16551	* process.c (catch_child_signal): New function.
16552	(init_process_emacs): Call it.
16553
16554	* nsterm.m: Include process.h if NS_IMPL_GNUSTEP.
16555	(ns_menu_bar_is_hidden, menu_will_open_state): Define only if
16556	NS_IMPL_COCOA.
16557	(x_set_cursor_type): Remove declaration.
16558	(ns_update_begin): Only use r and bp if NS_IMPL_COCOA.
16559	(ns_update_end, ns_focus, ns_unfocus): Remove GNUstep specific code.
16560	(x_set_window_size): Remove 3 pixels from toolbar if NS_IMPL_GNUSTEP.
16561	(ns_get_color): Use F suffix on float.
16562	(ns_color_to_lisp, ns_query_color): Use EmacsCGFloat.
16563	(ns_get_rgb_color): Remove.
16564	(x_set_frame_alpha): Move view inside NS_IMPL_COCOA.
16565	(note_mouse_movement): x and y are CGFloat.
16566	(ns_draw_fringe_bitmap): Remove unused rowY.
16567	Change #if to COCOA && >= 10_6.
16568	(ns_draw_window_cursor): Remove unused overspill.
16569	(ns_draw_underwave): width and x are EmacsCGFloat.
16570	(ns_draw_box): thickness is CGFloat.
16571	(ns_dumpglyphs_image): Change #if to COCOA && >= 10_6.
16572	(ns_send_appdefined): When NS_IMPL_GNUSTEP, redirect to main thread
16573	if not in main thread.
16574	(ns_get_pending_menu_title, ns_check_menu_open)
16575	(ns_check_pending_open_menu): Put inside #if COCOA && >= 10_5.
16576	(ns_term_init): Call catch_child_signal if NS_IMPL_GNUSTEP && SIGCHLD.
16577	(sendFromMainThread:): New method.
16578	(changeFont:): size is CGFloat.
16579	(keyDown:): Check for Delete when NS_IMPL_GNUSTEP.
16580	Disable warning about permanent text.
16581	(characterIndexForPoint:): Adjust return type depending on GNUstep
16582	version.
16583	(mouseDown:): delta is CGFloat.
16584	(updateFrameSize): Remove unused variable f.
16585	(initFrameFromEmacs): Move toggleButton inside NS_IMPL_COCOA.
16586	Cast float to EmacsCGFloat.
16587	(windowWillUseStandardFrame:defaultFrame:): Set maximized_height
16588	also to -1 when restoring.
16589	(windowDidExitFullScreen:): Put call to updateCollectionBehaviour
16590	inside NS_IMPL_COCOA.
16591	(toggleFullScreen:): Put call to toggleFullScreen inside
16592	NS_IMPL_COCOA.  Cast float to EmacsCGFloat.
16593	(setPosition:portion:whole:): por is CGFloat.
16594	(getMouseMotionPart:window:x:y:): Add F suffix to float.
16595	(mouseDown:): Use CGFloat.
16596	(mouseDragged:): Remove unused variable edge.
16597	(EmacsDocument): Implement for NS_IMPL_GNUSTEP.
16598
16599	* nsterm.h (EmacsCGFloat): Typedef for OSX and GNUstep when the size
16600	of CGFloat differs.
16601	(EmacsApp): New variable nextappdefined.  Declare sendFromMainThread
16602	when NS_IMPL_GNUSTEP.
16603	(EmacsDocument): Declare when NS_IMPL_GNUSTEP.
16604	(EmacsView): Remove unlockFocusNeedsFlush, add windowDidMove.
16605	(EmacsToolbar): Add clearAll.  Add tag argument to
16606	addDisplayItemWithImage.
16607	(EmacsSavePanel, EmacsOpenPanel): Remove getFilename and getDirectory.
16608
16609	* nsselect.m (ns_get_local_selection): Remove unused variable type.
16610
16611	* nsmenu.m (ns_update_menubar): Make static.
16612	(x_activate_menubar): Surround with ifdef NS_IMPL_COCOA
16613	(fillWithWidgetValue:): Add cast to SEL for setAction.
16614	(addSubmenuWithTitle:forFrame:): Add cast to SEL for action.
16615	(update_frame_tool_bar): Update code for GNUstep.
16616	(clearAll): New method.
16617	(addDisplayItemWithImage:idx:tag:helpText:enabled:): Handle new tag
16618	argument.  Call insertItemWithItemIdentifier when NS_IMPL_GNUSTEP.
16619	Move identifierToItem setObject and activeIdentifiers addObject before
16620	call to insertItemWithItemIdentifier.
16621	(validateVisibleItems): Fix indentation.
16622	(toolbarAllowedItemIdentifiers:): Return activeIdentifiers.
16623	(initWithContentRect:styleMask:backing:defer:): Add ClosableWindow and
16624	UtilityWindow to aStyle, remove call to setStyleMask.
16625
16626	* nsimage.m (setXBMColor:, getPixelAtX:Y:): Use EmacsCGFloat.
16627
16628	* nsfont.m (ns_attribute_fvalue, ns_spec_to_descriptor)
16629	(ns_charset_covers, ns_get_covering_families, nsfont_open):
16630	Use F suffix on floats.
16631	(ns_char_width): Returns CGFloat.
16632	(ns_ascii_average_width): w is CGFloat instead of float.
16633	(nsfont_draw): cbuf and c are unsigned.  Cast to char* in call to
16634	DPSxshow.
16635	(ns_glyph_metrics): CGFloat instead of float.
16636
16637	* nsfns.m (x_set_foreground_color, x_set_background_color):
16638	Use EmacsCGFloat.
16639	(ns_implicitly_set_icon_type, Fx_create_frame): Make static,
16640	remove unused variables.
16641	(Fns_read_file_name): Keep track if panel is for save.
16642	Use ns_filename_from_panel/ns_directory_from_panel.
16643	(Fns_list_services): delegate only used for COCOA.
16644	(Fns_convert_utf8_nfd_to_nfc): Remove warning for GNUstep.
16645	Just return the input if GNUstep.
16646	(x_screen_planes): Remove.
16647	(Fxw_color_values): Use EmacsCGFloat
16648	(Fns_display_monitor_attributes_list): Only get screen number for
16649	Cocoa.
16650	(getDirectory, getFilename): Remove from EmacsOpenPanel and
16651	EmacsSavePanel.
16652	(EmacsOpenPanel:ok:): Use ns_filename_from_panel and
16653	ns_directory_from_panel.
16654
166552013-06-01  Paul Eggert  <eggert@cs.ucla.edu>
16656
16657	* process.c (handle_child_signal): Also use WCONTINUED.
16658	This is so that list-processes doesn't mistakenly list the process
16659	as stopped, when the process has actually been continued and is
16660	now running.
16661
166622013-05-31  Paul Eggert  <eggert@cs.ucla.edu>
16663
16664	Don't let D-bus autolaunch mess up SIGCHLD handling (Bug#14474).
16665	* xterm.c (x_term_init): Inhibit D-Bus autolaunch if D-Bus is
16666	not already configured.
16667
16668	* fileio.c (Finsert_file_contents): Remove unused local (Bug#8447).
16669
166702013-05-29  Eli Zaretskii  <eliz@gnu.org>
16671
16672	* Makefile.in (mostlyclean): Remove *.res files.
16673
166742013-05-29  Stefan Monnier  <monnier@iro.umontreal.ca>
16675
16676	* fileio.c (Finsert_file_contents): Preserve undo info when reverting
16677	a buffer (bug#8447).
16678
166792013-05-27  Eli Zaretskii  <eliz@gnu.org>
16680
16681	* xdisp.c (pos_visible_p): When CHARPOS is displayed frrom a
16682	display vector, and we backtrack, handle the case that the
16683	previous character position is also displayed from a display
16684	vector or covered by a display string or image.  (Bug#14476)
16685
166862013-05-25  Jan Djärv  <jan.h.d@swipnet.se>
16687
16688	* xfns.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove.
16689	(struct MonitorInfo, free_monitors): Remove.
16690	(x_make_monitor_attribute_list): Call make_monitor_attribute_list.
16691	(Fx_display_monitor_attributes_list): Call make_monitor_attribute_list.
16692	(syms_of_xfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size,
16693	Qframes, Qsource.
16694
16695	* nsfns.m (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove.
16696	(struct MonitorInfo, free_monitors): Remove.
16697	(ns_screen_name): Make static.
16698	(ns_make_monitor_attribute_list): Call make_monitor_attribute_list.
16699	(syms_of_nsfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size,
16700	Qframes, Qsource.
16701
16702	* frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare.
16703	(struct MonitorInfo): New struct.
16704	(free_monitors, make_monitor_attribute_list): Declare.
16705
16706	* frame.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource):
16707	New Lisp_Object:s.
16708	(free_monitors, make_monitor_attribute_list): New functions.
16709	(syms_of_frame): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes,
16710	Qsource.
16711
167122013-05-25  Xue Fuqiao  <xfq.free@gmail.com>
16713
16714	* callproc.c (call_process): Refine the doc string.  (Bug#14045)
16715
167162013-05-23  Stefan Monnier  <monnier@iro.umontreal.ca>
16717
16718	* keyboard.c: Apply keyboard decoding only to events that come directly
16719	from the tty, not from unread-command-events (bug#14368).
16720	(read_event_from_main_queue): New function, extracted from read_char.
16721	(read_decoded_char): Remove.
16722	(read_decoded_event_from_main_queue): New function to replace it.
16723	(read_char): Use it.
16724	(read_key_sequence): Use read_char rather than read_decoded_char.
16725
16726	* keyboard.c (read_decoded_char): Don't decode under w32 (bug#14403).
16727
167282013-05-22  Barry O'Reilly  <gundaetiapo@gmail.com>
16729
16730	* casetab.c (init_casetab_once): Fix last change (bug#14424).
16731
167322013-05-22  Kenichi Handa  <handa@gnu.org>
16733
16734	The following changes are to fix the setting of
16735	buffer-file-coding-system on, for instance, C-x RET c unix RET
16736	_FILE_OF_DOS_EOL_TYPE_ RET.
16737
16738	* coding.h (struct coding_system): New member detected_utf8_chars.
16739
16740	* coding.c (detect_coding_utf_8): Count characters and check EOL
16741	format.  Include CATEGORY_MASK_UTF_8_AUTO in detect_info->found if
16742	BOM is there.
16743	(setup_coding_system): Do not initialize coding->head_ascii.
16744	(check_ascii): Do not set coding->eol_seen but update it.  Do not
16745	call adjust_coding_eol_type here.
16746	(detect_coding): Fix detection of BOM for utf-8 and utf-16.
16747	If the eol-type of CODING is already specified, adjust the eol type
16748	of the found coding-system.
16749	(decode_coding_gap): Cancel previous change.  Utilize the
16750	character numbers counted by detect_coding_utf_8.  Fix detection
16751	of BOM for utf-8.
16752
167532013-05-21  Barry O'Reilly  <gundaetiapo@gmail.com>
16754
16755	* search.c (looking_at_1): Only set last_thing_searched if the match
16756	changed the match-data (bug#14281).
16757
167582013-05-21  Dmitry Antipov  <dmantipov@yandex.ru>
16759
16760	* xdisp.c (reseat_at_previous_visible_line_start):
16761	Already declared in dispextern.h, so remove it here.
16762	(move_it_vertically_backward): Likewise.
16763
167642013-05-20  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
16765
16766	* xfns.c (check_x_display_info): Don't use XINT for terminal object.
16767	(Fx_display_pixel_width, Fx_display_pixel_height)
16768	(Fx_display_mm_width, Fx_display_mm_height):
16769	Mention `display-monitor-attributes-list' in docstrings.
16770
16771	* nsfns.m (ns_get_screen): Remove function.  All uses removed.
16772	(check_ns_display_info): Sync with check_x_display_info in xfns.c.
16773	(Fx_server_max_request_size, Fx_server_vendor, Fx_server_version)
16774	(Fx_display_screens, Fx_display_mm_width, Fx_display_mm_height)
16775	(Fx_display_backing_store, Fx_display_visual_class)
16776	(Fx_display_save_under, Fx_close_connection, Fxw_display_color_p)
16777	(Fx_display_grayscale_p, Fx_display_pixel_width)
16778	(Fx_display_pixel_height, Fx_display_planes)
16779	(Fx_display_color_cells): Sync args and docstrings with xfns.c.
16780	(Fx_display_screens): Don't confuse X11 screens with NS screens.
16781	(Fx_display_mm_width, Fx_display_mm_height)
16782	(Fx_display_pixel_width, Fx_display_pixel_width): Return width or
16783	height for all physical monitors as in X11.
16784
16785	* nsterm.m (x_display_pixel_width, x_display_pixel_height):
16786	Return pixel width or height for all physical monitors as in X11.
16787
167882013-05-18  Paul Eggert  <eggert@cs.ucla.edu>
16789
16790	Port --enable-gcc-warnings to clang.
16791	* bytecode.c (exec_byte_code):
16792	* regex.c:
16793	Redo diagnostic pragmas to pacify clang, too.
16794	* dbusbind.c (xd_retrieve_arg): Do not use uninitialized variable.
16795	* editfns.c (Fencode_time):
16796	* fileio.c (file_accessible_directory_p):
16797	* font.c (font_unparse_xlfd):
16798	Use '&"string"[index]' instead of '"string" + (index)'.
16799	* undo.c (user_error): Remove; unused.
16800
168012013-05-16  Eli Zaretskii  <eliz@gnu.org>
16802
16803	* insdel.c (insert_1_both): Document the arguments, instead of
16804	referring to insert_1, which no longer exists.
16805
16806	* xdisp.c (message_dolog): If the *Messages* buffer is shown in
16807	some window, increment windows_or_buffers_changed, so that
16808	*Messages* display in that window is updated.  (Bug#14408)
16809
16810	* w32.c: Include epaths.h.
16811	(init_environment): Use cmdproxy.exe without leading directories.
16812	Support emacs.exe in src; point SHELL to cmdproxy in ../nt in that
16813	case.
16814	(gettimeofday): Adjust signature and return value to Posix
16815	expectations.
16816
16817	* unexw32.c (open_output_file): Delete the existing emacs.exe
16818	before creating it, to break the hard link to the versioned
16819	executable.
16820
16821	* Makefile.in (EMACS_MANIFEST, CM_OBJ, TEMACS_POST_LINK)
16822	(ADDSECTION, EMACS_HEAPSIZE, MINGW_TEMACS_POST_LINK)
16823	(FIRSTFILE_OBJ): New variables.
16824	(W32_RES): Rename to EMACSRES.  All users changed.
16825	(base_obj): Use $(CM_OBJ).
16826	(ALLOBJS): Use $(FIRSTFILE_OBJ).
16827	(emacs$(EXEEXT)): Depend on $(ADDSECTION).
16828	(temacs$(EXEEXT)): Use $(TEMACS_POST_LINK), and move
16829	$(W32_RES_LINK) before $(LIBES).
16830	(emacs.res): Depend on $(EMACS_MANIFEST).  Put emacs.rc in nt.
16831
168322013-05-15  Stefan Monnier  <monnier@iro.umontreal.ca>
16833
16834	* makefile.w32-in (DOC): Use just "DOC".
16835
16836	* Makefile.in (bootstrap-clean): DOC-* doesn't exist any more.
16837
16838	* process.c: Export default filters and sentinels to Elisp.
16839	(Qinternal_default_process_sentinel, Qinternal_default_process_filter):
16840	New constants.
16841	(pset_filter, pset_sentinel, make_process, Fset_process_filter)
16842	(Fset_process_sentinel, Fformat_network_address):
16843	Default to them instead of nil.
16844	(server_accept_connection): Sentinels can't be nil any more.
16845	(read_and_dispose_of_process_output): New function, extracted from
16846	read_process_output.
16847	(read_process_output): Use it; filters can't be nil.
16848	(Finternal_default_process_filter): New function, extracted from
16849	read_process_output.
16850	(exec_sentinel_unwind): Remove function.
16851	(exec_sentinel): Don't zilch sentinel while running.
16852	(status_notify): Sentinels can't be nil.
16853	(Finternal_default_process_sentinel): New function extracted from
16854	status_notify.
16855	(setup_process_coding_systems): Default filter is not nil any more.
16856	(syms_of_process): Export new Elisp functions and initialize
16857	new constants.
16858	* lisp.h (make_lisp_proc): New function.
16859
168602013-05-15  Stefan Monnier  <monnier@iro.umontreal.ca>
16861
16862	* regex.c (regex_compile) [\=, \>, \<]: Don't forget to set laststart.
16863
168642013-05-14  Eli Zaretskii  <eliz@gnu.org>
16865
16866	* w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT
16867	unless we know that the window w is a leaf window.
16868	Another attempt at solving bug#14062.
16869
168702013-05-14  Jan Djärv  <jan.h.d@swipnet.se>
16871
16872	* nsfont.m (ns_spec_to_descriptor): Retain and autorelease
16873	fdesc (Bug#14375).
16874
168752013-05-12  Paul Eggert  <eggert@cs.ucla.edu>
16876
16877	* image.c (gif_load): Check that subimages fit (Bug#14345).
16878
168792013-05-09  Stefan Monnier  <monnier@iro.umontreal.ca>
16880
16881	* lread.c (skip_dyn_eof): New function.
16882	(read1): Use it to skip the end of a file in response to #@00.
16883
16884	* doc.c (get_doc_string): Slightly relax the sanity checking.
16885
168862013-05-09  Jan Djärv  <jan.h.d@swipnet.se>
16887
16888	* nsfns.m: Include IOGraphicsLib.h if Cocoa.
16889	(Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare.
16890	(MonitorInfo): New struct.
16891	(free_monitors, ns_screen_name, ns_make_monitor_attribute_list)
16892	(Fns_display_monitor_attributes_list): New functions.
16893	(display-usable-bounds): Remove.
16894	(syms_of_nsfns): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes and
16895	Qsource.
16896
168972013-05-09  Paul Eggert  <eggert@cs.ucla.edu>
16898
16899	* xterm.h (GTK_PREREQ): Remove, replacing with GTK_CHECK_VERSION.
16900	(GTK_CHECK_VERSION): New macro, if not already defined.
16901	All uses of GTK_PREREQ, GTK_MAJOR_VERSION, etc.
16902	replaced by GTK_CHECK_VERSION.
16903
169042013-05-08  Paul Eggert  <eggert@cs.ucla.edu>
16905
16906	* xterm.h (GTK_PREREQ): New macro.
16907	All simple uses of GTK_MAJOR_VERSION and GTK_MINOR_VERSION changed
16908	to use this macro instead, for consistency and clarity.
16909
169102013-05-08  Eli Zaretskii  <eliz@gnu.org>
16911
16912	* xdisp.c (row_for_charpos_p): New function, with code of
16913	cursor_row_p, but accepts an additional argument CHARPOS instead
16914	of using a hardcoded PT.
16915	(cursor_row_p): Call row_for_charpos_p with 2nd argument PT.
16916	(row_containing_pos): Call row_for_charpos_p instead of partially
16917	doing the same.  Fixes cursor positioning under longlines-mode
16918	when longlines-show-effect includes more than one newline, when
16919	moving the cursor vertically up.
16920
169212013-05-08  Juanma Barranquero  <lekktu@gmail.com>
16922
16923	* makefile.w32-in (ACL_H): New macro.
16924	($(BLD)/fileio.$(O)): Update dependencies.
16925
169262013-05-07  Paul Eggert  <eggert@cs.ucla.edu>
16927
16928	Use Gnulib ACL implementation, for benefit of Solaris etc.  (Bug#14295)
16929	* Makefile.in (LIB_ACL): New macro.
16930	(LIBACL_LIBS): Remove.
16931	(LIBES): Use LIB_ACL, not LIBACL_LIBS.
16932	* fileio.c: Include <acl.h>.
16933	Use HAVE_ACL_SET_FILE rather than HAVE_POSIX_ACL.
16934	(ACL_NOT_WELL_SUPPORTED): Remove.  All uses replaced by
16935	!acl_errno_valid.
16936	(Fcopy_file) [!WINDOWSNT]: Use qcopy_acl instead of rolling
16937	it ourselves.
16938
16939	* unexelf.c: Don't assume ElfW (Half) fits in int.
16940	(entry_address, find_section, unexec): Use ptrdiff_t, not int,
16941	when dealing with ElfW (Half) values, since they can exceed 2**31
16942	on 64-bit OpenBSD hosts.  Reported by Han Boetes (privately).
16943	(entry_address): Omit unused NUM arg.  All uses changed.
16944
169452013-05-07  Juri Linkov  <juri@jurta.org>
16946
16947	* callint.c (Fcall_interactively): Set `visargs[i]' for code 'n'
16948	to the string converted from number with `Fnumber_to_string'.
16949	(Bug#14254)
16950
169512013-05-07  Paul Eggert  <eggert@cs.ucla.edu>
16952
16953	* xfns.c (x_get_net_workarea): Define only if !GTK || GTK<3.4.
16954	This fixes a problem introduced by my previous change.
16955
169562013-05-07  Glenn Morris  <rgm@gnu.org>
16957
16958	* lread.c (readchar): Don't read from a dead buffer.  (Bug#14280)
16959
169602013-05-07  Jan Djärv  <jan.h.d@swipnet.se>
16961
16962	* xfns.c: Move misplaced ifndef USE_GTK from previous checkin.
16963
169642013-05-07  Paul Eggert  <eggert@cs.ucla.edu>
16965
16966	Static checking by GCC 4.8.0.
16967	* xfns.c (x_get_net_workarea, struct MonitorInfo, free_monitors)
16968	(x_get_monitor_for_frame, x_make_monitor_attribute_list)
16969	(x_get_monitor_attributes_fallback)
16970	(x_get_monitor_attributes_xinerama)
16971	(x_get_monitor_attributes_xrandr, x_get_monitor_attributes):
16972	Define only if USE_GTK.
16973	(free_monitors): Define only if HAVE_XINERAMA || HAVE_XRANDR.
16974	(x_get_monitor_attributes_fallback): Omit unused locals.
16975	(x_get_monitor_attributes_xinerama, Fx_display_monitor_attributes_list):
16976	Use double, not float, to avoid mixed-mode floating point arithmetic.
16977
169782013-05-07  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
16979	    Jan Djärv  <jan.h.d@swipnet.se>
16980
16981	* Makefile.in (XRANDR_LIBS, XRANDR_CFLAGS, XINERAMA_LIBS)
16982	(XINERAMA_CFLAGS): New macros.
16983	(ALL_CFLAGS, LIBES): Use them.
16984
16985	* xfns.c: Include <X11/extensions/Xrandr.h> if HAVE_XRANDR, and
16986	include <X11/extensions/Xinerama.h> if HAVE_XINERAMA.
16987	(Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): New variables.
16988	(syms_of_xfns): DEFSYM them.
16989	(struct MonitorInfo): New struct.
16990	(x_get_net_workarea, free_monitors, x_get_monitor_for_frame)
16991	(x_make_monitor_attribute_list, x_get_monitor_attributes_fallback)
16992	(x_get_monitor_attributes_xrandr, x_get_monitor_attributes)
16993	(x_get_monitor_attributes_xinerama): New functions.
16994	(Fx_display_monitor_attributes_list): New primitive.
16995	(syms_of_xfns): Defsubr it.
16996
16997	* xterm.h (x_display_info): Add Xatom_net_workarea and
16998	Xatom_net_current_desktop.
16999
17000	* xterm.c (x_term_init): Initialize dpyinfo->Xatom_net_workarea
17001	and dpyinfo->Xatom_net_current_desktop.
17002
170032013-05-06  Eli Zaretskii  <eliz@gnu.org>
17004
17005	* xdisp.c (pos_visible_p): Use the special code for finding the
17006	beginning of a display property or overlay for any "replacing"
17007	display property, not just for display strings.  This solves
17008	incorrect reporting of position by posn-at-point.  (Bug#14241)
17009
170102013-05-06  Paul Eggert  <eggert@cs.ucla.edu>
17011
17012	* unexelf.c: Fix some 32-bit integer problems, notably when debugging.
17013	Include <limits.h>, <stdbool.h>, <intprops.h>, <verify.h>.
17014	Verify that ElfW (Half) fits in int.
17015	(fatal): Use same signature as lisp.h.
17016	(UNEXELF_DEBUG): New macro, replacing DEBUG, so that people can
17017	configure and build with -DUNEXELF_DEBUG without worrying about
17018	other modules that use DEBUG.
17019	(DEBUG_LOG) [UNEXELF_DEBUG]: New macro.  All debug code that prints
17020	possibly-wide integers now uses it instead of plain fprintf.
17021	(entry_address): New function, which avoids problems with 32-bit
17022	overflow on 64-bit hosts.
17023	(OLD_SECTION_H, NEW_SECTION_H, NEW_PROGRAM_H): Use it.
17024	(round_up): Don't assume the remainder fits in int.
17025	(find_section): Use bool for boolean.  Simplify debug code.
17026	(unexec): Don't assume file sizes fit in int or size_t.
17027	Omit unnecessary trailing newline in 'fatal' format.
17028	Use strerror rather than outputting decimal error number.
17029	Remove unused code when emacs is not defined;
17030	this file relies on Emacs now.
17031	Don't assume e_phnum and e_shnum are positive.
17032
17033	* regex.c: Fix problems when DEBUG is defined.
17034	(extract_number, extract_number_and_incr): Define regardless of
17035	whether DEBUG is defined; that's simpler and makes the code less
17036	likely to go stale in the normal case when DEBUG is not defined.
17037	Return int rather than taking an int * arg.  All callers changed.
17038	(DEBUG_PRINT1, DEBUG_PRINT2, DEBUG_PRINT3, DEBUG_PRINT4):
17039	Remove, replacing with ...
17040	(DEBUG_PRINT): New macro.  All callers changed.
17041	(DEBUG_COMPILES_ARGUMENTS): New macro.
17042	(print_fastmap, print_partial_compiled_pattern) [DEBUG]:
17043	(print_compiled_pattern, print_double_string) [DEBUG]:
17044	Use prototype rather than old-style definition.
17045	(print_partial_compiled_pattern, print_compiled_pattern) [DEBUG]:
17046	(ENSURE_FAIL_STACK, PUSH_FAILURE_REG) [DEBUG]:
17047	(POP_FAILURE_REG_OR_COUNT, PUSH_FAILURE_POINT) [DEBUG]:
17048	(POP_FAILURE_POINT, re_match_2_internal) [DEBUG]:
17049	Don't assume ptrdiff_t, size_t, and long are the same width as int.
17050	(POINTER_TO_OFFSET): Return ptrdiff_t, not regoff_t.
17051	This matters only when DEBUG is defined.
17052
170532013-05-05  Eli Zaretskii  <eliz@gnu.org>
17054
17055	* xdisp.c (set_iterator_to_next): Set the
17056	ignore_overlay_strings_at_pos_p flag only if we are _really_
17057	iterating over an overlay string, as indicated by the
17058	current.overlay_string_index member.  (Bug#14306)
17059
170602013-05-05  Jan Djärv  <jan.h.d@swipnet.se>
17061
17062	* nsmenu.m (ns_update_menubar): Move initialization of submenuTitle
17063	to where it is used, to avoid autorelease issues (Bug#14050).
17064
170652013-05-05  Paul Eggert  <eggert@cs.ucla.edu>
17066
17067	`write-region-inhibit-fsync' defaults to noninteractive (Bug#14273).
17068	* fileio.c (syms_of_fileio): Implement this.
17069	* filelock.c (create_lock_file): If symbolic links don't work, so
17070	we use a regular file as a lock file, do not fsync the lock file;
17071	it's not needed.
17072
170732013-05-04  Stefan Monnier  <monnier@iro.umontreal.ca>
17074
17075	* minibuf.c (Fread_minibuffer, Feval_minibuffer): Move to Elisp.
17076	(syms_of_minibuf): Adjust accordingly.
17077	* lread.c (Fread):
17078	* callint.c (Fcall_interactively): Adjust calls accordingly.
17079
170802013-05-04  Eli Zaretskii  <eliz@gnu.org>
17081
17082	* dispextern.h (WINDOW_WANTS_HEADER_LINE_P): Verify that
17083	w->contents is a buffer before computing everything else.
17084	Use parentheses to disambiguate last part of the condition.
17085
17086	* w32fns.c (w32_wnd_proc): Remove temporary code used to trap
17087	assertion violations.  (Bug#14062)
17088
170892013-05-01  David Reitter  <david.reitter@gmail.com>
17090
17091	* nsfns.m (ns_tooltip): Initialize.
17092
170932013-04-28  Eli Zaretskii  <eliz@gnu.org>
17094
17095	* coding.c (decode_coding_gap): Don't remove the character before
17096	a newline unless it's a CR character.  (Bug#14287)
17097
170982013-04-28  Dan Nicolaescu  <dann@gnu.org>
17099
17100	* dispextern.h (struct face): Move enum face_underline_type
17101	earlier so that bitfields can be in the same word.
17102
171032013-04-28  Jan Djärv  <jan.h.d@swipnet.se>
17104
17105	* nsfns.m (handlePanelKeys): New function.
17106	(EmacsOpenPanel:performKeyEquivalent:)
17107	(EmacsSavePanel:performKeyEquivalent:): Call handlePanelKeys to handle
17108	arrows/function/control and copy/paste keys (Bug#14296).
17109
171102013-04-27  Juri Linkov  <juri@jurta.org>
17111
17112	* callint.c (Fcall_interactively): Call `Qread_number' for
17113	interactive code letter `n' instead of using duplicate code.
17114	(Bug#14254)
17115
171162013-04-27  Paul Eggert  <eggert@cs.ucla.edu>
17117
17118	* systime.h (make_timeval): Declare as 'const'.
17119
171202013-04-27  Kenichi Handa  <handa@gnu.org>
17121
17122	* font.c (font_open_entity): Always open a font of manageable
17123	size.
17124
171252013-04-26  Paul Eggert  <eggert@cs.ucla.edu>
17126
17127	Port better to AIX (Bug#14258).
17128	* lisp.h (ENUM_BF) [__IBMC__]: Make it 'unsigned int' here, too,
17129	to pacify AIX xlc.
17130
171312013-04-24  Kenichi Handa  <handa@gnu.org>
17132
17133	* coding.c (decode_coding_iso_2022): When an invalid escape
17134	sequence is encountered, reset the invocation and designation
17135	status to the safest one.
17136
171372013-04-22  Paul Eggert  <eggert@cs.ucla.edu>
17138
17139	* Makefile.in (bootstrap-clean): Remove stamp-h1 too.
17140	Without this fix, "make distclean" leaves stamp-h1 behind.
17141
171422013-04-20  Erik Charlebois  <erikcharlebois@gmail.com>
17143
17144	* w32fns.c (w32_fullscreen_rect): New function to compute the
17145	window rectangle for the given fullscreen mode.
17146	(w32_wnd_proc): When in a fullscreen mode, WM_WINDOWPOSCHANGING no
17147	longer tunes the window size.  This keeps the window's edges flush
17148	with the screen and allows the taskbar to hide itself in fullboth.
17149
17150	* w32term.c (w32fullscreen_hook): 'fullboth' now shows without
17151	window decorations and uses the entire screen.
17152
17153	* w32term.h  (w32_fullscreen_rect) Add prototype.
17154	(struct w32_output): Replace normal_width, normal_height,
17155	normal_top, and normal_left members with a single normal_placement
17156	struct.
17157	(FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP):
17158	Remove macros.
17159	(FRAME_NORMAL_PLACEMENT): New macro.
17160
171612013-04-16  Juanma Barranquero  <lekktu@gmail.com>
17162
17163	* minibuf.c (Ftest_completion): Silence compiler warning.
17164
171652013-04-15  Eli Zaretskii  <eliz@gnu.org>
17166
17167	* w32fns.c (w32_wnd_proc): Add more assertions to investigate
17168	bug#14062.
17169
17170	* frame.h (WINDOW_FRAME): Protect macro and its argument with
17171	parentheses.
17172
17173	* dispextern.h (CURRENT_MODE_LINE_HEIGHT)
17174	(CURRENT_HEADER_LINE_HEIGHT, WINDOW_WANTS_MODELINE_P)
17175	(WINDOW_WANTS_HEADER_LINE_P): Protect macro arguments with
17176	parentheses where appropriate.
17177
171782013-04-14  Paul Eggert  <eggert@cs.ucla.edu>
17179
17180	* keyboard.c (timer_start_idle): Remove no-longer-used local.
17181
171822013-04-14  Eli Zaretskii  <eliz@gnu.org>
17183
17184	* buffer.c (syms_of_buffer) <left-margin-width, right-margin-width>:
17185	<left-fringe-width, right-fringe-width, fringes-outside-margins>:
17186	Mention in the doc string that setting these variables takes
17187	effect only after a call to set-window-buffer.  (Bug#14200)
17188
171892013-04-13  Eli Zaretskii  <eliz@gnu.org>
17190
17191	* indent.c (Fvertical_motion): Don't consider display strings on
17192	overlay strings as display strings on the buffer position we
17193	started from.  This prevents vertical cursor motion from jumping
17194	more than one line when there's an overlay string with a display
17195	property at end of line.
17196	Reported by Karl Chen <Karl.Chen@quarl.org> in
17197	https://lists.gnu.org/r/emacs-devel/2013-04/msg00362.html.
17198
171992013-04-12  Stefan Monnier  <monnier@iro.umontreal.ca>
17200
17201	* window.c (select_window): `record_buffer' even if window is
17202	already selected (bug#14191).
17203
172042013-04-11  Eli Zaretskii  <eliz@gnu.org>
17205
17206	* window.c (Fwindow_end): Test more flags, including the buffer's
17207	last_overlay_modified flag, to determine whether the window's
17208	display is really up-to-date.  Prevents the function from
17209	returning a stale value.  (Bug#14170)
17210	(Fwindow_line_height): Fix the test for up-to-date-ness of the
17211	current matrix.
17212
172132013-04-10  Eli Zaretskii  <eliz@gnu.org>
17214
17215	* frame.c (do_switch_frame): Mark the TTY frame we switch to as
17216	garbaged only if it is not already the top frame on its TTY.
17217	This prevents flickering due to constant redrawing of TTY frames when
17218	there are GUI frames open in the same session.  (Bug#13864)
17219
172202013-04-10  Stefan Monnier  <monnier@iro.umontreal.ca>
17221
17222	* keyboard.c (timer_start_idle): Call internal-timer-start-idle instead
17223	of marking the idle timers directly.
17224
172252013-04-09  Stefan Monnier  <monnier@iro.umontreal.ca>
17226
17227	* minibuf.c (Ftest_completion): Ignore non-string/symbol keys in hash
17228	tables (bug#14054).
17229
172302013-04-08  Stefan Monnier  <monnier@iro.umontreal.ca>
17231
17232	* window.c (select_window): Don't record_buffer while the invariant is
17233	temporarily broken (bug#14161).
17234
17235	* fns.c (Fdelq): Don't assume !NILP => CONSP.
17236
172372013-04-07  Eli Zaretskii  <eliz@gnu.org>
17238
17239	* fileio.c (ACL_NOT_WELL_SUPPORTED): Define macro for WINDOWSNT.
17240
172412013-04-07  Romain Francoise  <romain@orebokech.com>
17242
17243	Ignore additional platform-specific ACL errors (Bug#13702).
17244	* fileio.c (ACL_NOT_WELL_SUPPORTED): New macro copied from gnulib.
17245	(Fcopy_file, Fset_file_acl) [HAVE_POSIX_ACL]: Use it.
17246
172472013-03-31  Jan Djärv  <jan.h.d@swipnet.se>
17248
17249	* nsterm.m (ns_mouse_position): Use NS_FRAME_P instead of checking
17250	f->output_data.ns.
17251
172522013-04-07  Paul Eggert  <eggert@cs.ucla.edu>
17253
17254	Fix --enable-profiling bug introduced by 2013-02-25 change (Bug#13783).
17255	This bug was introduced by my 2013-02-25 change that simplified
17256	data_start configuration.  Without this change, on GNU/Linux
17257	an Emacs configured with --enable-profiling fails immediately
17258	due to a profiler signal.
17259	* Makefile.in: Compile with $(PROFILING_CFLAGS), but do not link
17260	with these flags.  On platforms where special flags are needed
17261	when linking temacs, the flags are now in LD_SWITCH_SYSTEM_TEMACS.
17262	(ALL_CFLAGS): Remove $(PROFILING_CFLAGS).
17263	(.c.o, .m.o): Compile with $(PROFILING_CFLAGS).
17264
172652013-04-07  Dmitry Antipov  <dmantipov@yandex.ru>
17266
17267	Get rid of some platform-specific functions examining window
17268	system and its capabilities.  This is a partial rework of the
17269	2013-04-05 change.
17270	* lisp.h (have_menus_p): Remove prototype.  This function is
17271	replaced with platform-independent window_system_available.
17272	(check_window_system): Move to...
17273	* frame.h (decode_window_system_frame, window_system_available):
17274	...here, add new prototypes.
17275	* frame.c (window_system_available, decode_window_system_frame):
17276	New functions.
17277	(check_window_system): Platform-independent now.
17278	* xterm.h (x_in_use): Remove declaration.
17279	(check_x_frame):
17280	* w32term.h (check_x_frame):
17281	* nsterm.h (check_x_frame): Remove prototypes.  This function
17282	is replaced with platform-independent decode_window_system_frame.
17283	* msdos.c (have_menus_p): Remove.
17284	* nsfns.m (check_window_system, have_menus_p, check_ns_frame):
17285	Remove platform-specific functions.  Use check_window_system,
17286	decode_window_system_frame and check_ns_display_info where
17287	appropriate.  Minor style and comment tweaks.
17288	* w32fns.c (w32_in_use, check_window_system, have_menus_p)
17289	(check_x_frame): Likewise.
17290	* xfns.c (x_in_use, check_window_system, have_menus_p, check_x_frame):
17291	Likewise.
17292	* fileio.c, fns.c, font.c, fontset.c, image.c, menu.c, nsmenu.m:
17293	* nsselect.m, nsterm.m, w32font.c, w32menu.c, xfaces.c, xgselect.c:
17294	* xmenu.c, xselect.c: All related users changed.
17295
172962013-04-03  Kenichi Handa  <handa@gnu.org>
17297
17298	The following changes is to optimize the code for reading UTF-8
17299	files.
17300
17301	* coding.c (check_ascii): Rename from detect_ascii.  Return value
17302	changed.  Check EOL format.  Do not call adjust_coding_eol_type
17303	here.
17304	(check_utf_8): New function.
17305	(adjust_coding_eol_type): Do nothing if already adjusted.
17306	(detect_coding): Compare the return value of check_ascii with
17307	coding->src_bytes.  Call adjust_coding_eol_type if necessary.
17308	(decode_coding_gap): Optimize for valid UTF-8.
17309
173102013-03-21  Kenichi Handa  <handa@gnu.org>
17311
17312	* coding.c (syms_of_coding): Cancel previous change.
17313
17314	* insdel.c (insert_from_gap): Fix previous change.
17315
173162013-04-05  Dmitry Antipov  <dmantipov@yandex.ru>
17317
17318	Consistently use platform-specific function to detect window system.
17319	* lisp.h (check_window_system): New prototype.  This function is
17320	going to replace check_x, check_w32 and check_ns.
17321	(have_menus_p): Mention msdos.c in comment.
17322	* fontset.c (check_window_system_func): Remove.  Adjust all users.
17323	* fontset.h (check_window_system_func): Remove prototype.
17324	* nsterm.h (check_ns):
17325	* xterm.h (check_x):
17326	* w32term.h (check_w32): Likewise.
17327	* menu.c (Fx_popup_menu): Use check_window_system.
17328	* msdos.c (check_window_system): Define for MS-DOS.
17329	* nsfns.m (check_window_system): Define for NS.  Adjust all users.
17330	* w32fns.c (check_window_system): Likewise for MS-Windows.
17331	* xfns.c (check_window_system): Likewise for X.
17332	* font.c, frame.c, nsmenu.m, nsselect.m, nsterm.m, w32menu.c:
17333	* xfaces.c, xmenu.c: Use check_window_system where appropriate.
17334
173352013-04-02  Paul Eggert  <eggert@cs.ucla.edu>
17336
17337	Prefer < to > in range checks such as 0 <= i && i < N.
17338	This makes it easier to visualize quantities on a number line.
17339	This patch doesn't apply to all such range checks,
17340	only to the range checks affected by the 2013-03-24 change.
17341	This patch reverts most of the 2013-03-24 change.
17342	* alloc.c (xpalloc, Fgarbage_collect):
17343	* ccl.c (ccl_driver, resolve_symbol_ccl_program):
17344	* character.c (string_escape_byte8):
17345	* charset.c (read_hex):
17346	* data.c (cons_to_unsigned):
17347	* dispnew.c (update_frame_1):
17348	* doc.c (Fsubstitute_command_keys):
17349	* doprnt.c (doprnt):
17350	* editfns.c (hi_time, decode_time_components):
17351	* fileio.c (file_offset):
17352	* fns.c (larger_vector, make_hash_table, Fmake_hash_table):
17353	* font.c (font_intern_prop):
17354	* frame.c (x_set_alpha):
17355	* gtkutil.c (get_utf8_string):
17356	* indent.c (check_display_width):
17357	* keymap.c (Fkey_description):
17358	* lisp.h (FIXNUM_OVERFLOW_P, vcopy):
17359	* lread.c (read1):
17360	* minibuf.c (read_minibuf_noninteractive):
17361	* process.c (wait_reading_process_output):
17362	* search.c (Freplace_match):
17363	* window.c (get_phys_cursor_glyph):
17364	* xdisp.c (redisplay_internal):
17365	* xsmfns.c (smc_save_yourself_CB):
17366	Prefer < to > for range checks.
17367	* dispnew.c (sit_for): Don't mishandle NaNs.
17368	This fixes a bug introduced in the 2013-03-24 change.
17369	* editfns.c (decode_time_components): Don't hoist comparison.
17370	This fixes another bug introduced in the 2013-03-24 change.
17371
173722013-03-31  Dmitry Antipov  <dmantipov@yandex.ru>
17373
17374	* frame.h (struct frame): Drop scroll_bottom_vpos
17375	member becaue all real users are dead long ago.
17376	(FRAME_SCROLL_BOTTOM_VPOS): Remove.
17377	* xdisp.c (redisplay_internal): Adjust user.
17378
173792013-03-30  Darren Hoo  <darren.hoo@gmail.com>  (tiny change)
17380
17381	* nsmenu.m (showAtX:Y:for:): setLevel to
17382	NSPopUpMenuWindowLevel (Bug#13998).
17383
173842013-03-30  Jan Djärv  <jan.h.d@swipnet.se>
17385
17386	* nsterm.h (ns_get_pending_menu_title, ns_check_menu_open)
17387	(ns_check_pending_open_menu): Declare.
17388
17389	* nsmenu.m (ns_update_menubar): Correct NSTRACE.
17390	(x_activate_menubar): Update the menu with title that matches
17391	ns_get_pending_menu_title, and call
17392	ns_check_pending_openmenu (Bug#12698).
17393	(menuWillOpen:): New method.
17394	(menuNeedsUpdate:): Add check for ! COCOA || OSX < 10.5 (Bug#12698).
17395
17396	* nsterm.m (menu_will_open_state, menu_mouse_point)
17397	(menu_pending_title): New varaibles.
17398	(ns_get_pending_menu_title, ns_check_menu_open)
17399	(ns_check_pending_open_menu): New functions.
17400
174012013-03-29  Dmitry Antipov  <dmantipov@yandex.ru>
17402
17403	* indent.c (current_column_bol_cache): Remove leftover which is not
17404	used in Fmove_to_column any more.
17405	(current_column, scan_for_column): Adjust users.
17406	* keyboard.c (last_point_position_buffer, last_point_position_window):
17407	Remove leftovers which are not used for recording undo any more.
17408	(command_loop_1, syms_of_keyboard): Adjust users.
17409	* xdisp.c (last_max_ascent): Remove leftover which is not used in
17410	redisplay_window any more.
17411	(move_it_to): Adjust user.
17412
174132013-03-29  Juanma Barranquero  <lekktu@gmail.com>
17414
17415	* makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/filelock.$(O)):
17416	Update dependencies.
17417
174182013-03-28  Stefan Monnier  <monnier@iro.umontreal.ca>
17419
17420	* lisp.h (save_type, XSAVE_POINTER, set_save_pointer, XSAVE_INTEGER)
17421	(set_save_integer, XSAVE_OBJECT, XSAVE_VALUE): Move to avoid
17422	forward references.
17423
174242013-03-28  Dmitry Antipov  <dmantipov@yandex.ru>
17425
17426	* window.h (struct window): Replace hchild, vchild and buffer slots
17427	with a single slot 'contents'.  This is possible because each valid
17428	window may have either the child window (in vertical or horizontal
17429	combination) or buffer to display (for the leaf window).  Using that,
17430	a lot of operations to traverse and/or change window hierarchies may
17431	be simplified.  New member horizontal is used to distinguish between
17432	horizontal and vertical combinations of internal windows.
17433	(WINDOW_LEAF_P, WINDOW_HORIZONTAL_COMBINATION_P)
17434	(WINDOW_VERTICAL_COMBINATION_P): New macros.
17435	(WINDOW_VALID_P, WINDOW_LIVE_P): Adjust to match struct window changes.
17436	* window.c (wset_hchild, wset_vchild): Remove.  Adjust all users.
17437	Use contents slot, not buffer, where appropriate.
17438	(wset_combination): New function.
17439	(wset_buffer): Add eassert.
17440	(Fframe_first_window): Simplify the loop reaching first window.
17441	(Fwindow_buffer): Use WINDOW_LEAF_P.
17442	(Fwindow_top_child): Use WINDOW_VERTICAL_COMBINATION_P.
17443	(Fwindow_left_child): Use WINDOW_HORIZONTAL_COMBINATION_P.
17444	(unshow_buffer): Convert initial debugging check to eassert.
17445	(replace_window, recombine_windows, Fdelete_other_windows_internal)
17446	(make_parent_window, window_resize_check, window_resize_apply)
17447	(resize_frame_windows, Fsplit_window_internal, Fdelete_window_internal)
17448	(Fset_window_configuration, delete_all_child_windows, save_window_save):
17449	Adjust to match struct window changes.
17450	(window_loop): Check for broken markers in CHECK_ALL_WINDOWS.
17451	(mark_window_cursors_off, count_windows, get_leaf_windows)
17452	(foreach_window_1): Simplify the loop.
17453	* alloc.c (mark_object): Do not check for the leaf window because
17454	internal windows has no glyph matrices anyway.
17455	* dispnew.c (clear_window_matrices, showing_window_margins_p)
17456	(allocate_matrices_for_window_redisplay, fake_current_matrices)
17457	(allocate_matrices_for_frame_redisplay, free_window_matrices)
17458	(build_frame_matrix_from_window_tree, mirror_make_current)
17459	(frame_row_to_window, mirror_line_dance, check_window_matrix_pointers)
17460	(update_window_tree, set_window_update_flags): Simplify the loop.
17461	(sync_window_with_frame_matrix_rows): Enforce live window.
17462	Use contents slot, not buffer, where appropriate.
17463	* frame.c (set_menu_bar_lines_1): Use WINDOW_VERTICAL_COMBINATION_P
17464	and WINDOW_HORIZONTAL_COMBINATION_P.
17465	(make_frame_visible_1): Simplify the loop.
17466	Use contents slot, not buffer, where appropriate.
17467	* xdisp.c (hscroll_window_tree, mark_window_display_accurate)
17468	(redisplay_windows, redisplay_mode_lines, update_cursor_in_window_tree)
17469	(expose_window_tree): Likewise.
17470	Use contents slot, not buffer, where appropriate.
17471	* textprop.c (get_char_property_and_overlay): Add CHECK_LIVE_WINDOW
17472	to avoid deleted windows.  Use contents slot instead of buffer.
17473	* buffer.c, dispextern.h, editfns.c, fileio.c, font.c, fringe.c:
17474	* indent.c, insdel.c, keyboard.c, keymap.c, minibuf.c, msdos.c:
17475	* nsfns.m, nsmenu.m, nsterm.m, print.c, w32fns.c, w32menu.c, xfaces.c:
17476	* xfns.c, xmenu.c: Use contents slot, not buffer, where appropriate.
17477
174782013-03-28  Eli Zaretskii  <eliz@gnu.org>
17479
17480	* w32fns.c (w32_wnd_proc) [ENABLE_CHECKING]: Add code to help
17481	identify the reasons for assertion violations in bug#14062 and
17482	similar ones.
17483	(Fx_show_tip): Fix compilation error under
17484	"--enable-check-lisp-object-type".  (Bug#14073)
17485
17486	* image.c (g_error_free) [WINDOWSNT]: Add DEF_IMGLIB_FN.
17487	Reported by <rzl24ozi@gmail.com>.
17488
174892013-03-28  Dmitry Antipov  <dmantipov@yandex.ru>
17490
17491	* xdisp.c (with_echo_area_buffer_unwind_data): Save window
17492	start marker...
17493	(unwind_with_echo_area_buffer): ...to restore it here.
17494	This is needed to ensure that...
17495	(redisplay_window): ...both window markers are valid here,
17496	which is verified by eassert.
17497	* editfns.c (save_excursion_save): Do not assume that
17498	selected_window always displays the buffer.
17499	* buffer.c (Fbuffer_swap_text): Adjust window start markers.
17500	Fix comment.
17501
175022013-03-27  Stefan Monnier  <monnier@iro.umontreal.ca>
17503
17504	* casetab.c (init_casetab_once): Don't abuse the ascii eqv table for
17505	the upcase table.
17506
175072013-03-27  rzl24ozi  <rzl24ozi@gmail.com>  (tiny change)
17508
17509	* image.c [WINDOWSNT]: Fix calls to DEF_IMGLIB_FN for SVG function.
17510
175112013-03-27  Eli Zaretskii  <eliz@gnu.org>
17512
17513	* w32proc.c (IsValidLocale) [__GNUC__]: Don't declare prototype,
17514	since MinGW's w32api headers do.  This avoids compiler warnings.
17515
17516	* w32.c (FSCTL_GET_REPARSE_POINT) [_MSC_VER || _W64]: Don't define
17517	if already defined.
17518
175192013-03-26  Eli Zaretskii  <eliz@gnu.org>
17520
17521	* w32.c (_REPARSE_DATA_BUFFER): Condition by _MSVC and _W64.
17522
175232013-03-26  Jan Djärv  <jan.h.d@swipnet.se>
17524
17525	* gtkutil.c (style_changed_cb): Check if frame is live and an
17526	X frame (Bug#14038).
17527
175282013-03-26  Eli Zaretskii  <eliz@gnu.org>
17529
17530	* w32.c (_PROCESS_MEMORY_COUNTERS_EX) [_WIN32_WINNT < 0x0500]:
17531	Define only for _WIN32_WINNT less than 0x0500.
17532	(_ANONYMOUS_UNION, _ANONYMOUS_STRUCT) [!_W64]: Don't define for
17533	MinGW64.
17534	Move inclusion of time.h before sys/time.h, so that MinGW64 could
17535	see its own definitions of 'struct timeval' and 'struct timezone'.
17536
17537	Fix incompatibilities between MinGW.org and MinGW64 headers.
17538	* w32term.c (WCRANGE, GLYPHSET): Don't define if _W64 is defined.
17539
17540	* w32.c (REPARSE_DATA_BUFFER): Guard with
17541	MAXIMUM_REPARSE_DATA_BUFFER_SIZE being defined.
17542
175432013-03-25  Jan Djärv  <jan.h.d@swipnet.se>
17544
17545	* xterm.c: Include X11/XKBlib.h
17546	(XTring_bell): Use XkbBell if HAVE_XKB (Bug#14041).
17547
175482013-03-24  Andreas Schwab  <schwab@linux-m68k.org>
17549
17550	* alloc.c (xpalloc, Fgarbage_collect): Reorder conditions that are
17551	written backwards.
17552	* blockinput.h (input_blocked_p): Likewise.
17553	* bytecode.c (exec_byte_code): Likewise.
17554	* callproc.c (call_process_kill, call_process_cleanup)
17555	(Fcall_process): Likewise.
17556	* ccl.c (ccl_driver, resolve_symbol_ccl_program)
17557	(Fccl_execute_on_string): Likewise.
17558	* character.c (string_escape_byte8): Likewise.
17559	* charset.c (read_hex): Likewise.
17560	* cm.c (calccost): Likewise.
17561	* data.c (cons_to_unsigned): Likewise.
17562	* dired.c (directory_files_internal, file_name_completion):
17563	Likewise.
17564	* dispnew.c (scrolling_window, update_frame_1, Fsleep_for)
17565	(sit_for): Likewise.
17566	* doc.c (Fsubstitute_command_keys): Likewise.
17567	* doprnt.c (doprnt): Likewise.
17568	* editfns.c (hi_time, decode_time_components, Fformat): Likewise.
17569	* emacsgtkfixed.c: Likewise.
17570	* fileio.c (file_offset, Fwrite_region): Likewise.
17571	* floatfns.c (Fexpt, fmod_float): Likewise.
17572	* fns.c (larger_vector, make_hash_table, Fmake_hash_table):
17573	Likewise.
17574	* font.c (font_intern_prop): Likewise.
17575	* frame.c (x_set_alpha): Likewise.
17576	* gtkutil.c (get_utf8_string): Likewise.
17577	* indent.c (check_display_width): Likewise.
17578	* intervals.c (create_root_interval, rotate_right, rotate_left)
17579	(split_interval_right, split_interval_left)
17580	(adjust_intervals_for_insertion, delete_node)
17581	(interval_deletion_adjustment, adjust_intervals_for_deletion)
17582	(merge_interval_right, merge_interval_left, copy_intervals)
17583	(set_intervals_multibyte_1): Likewise.
17584	* keyboard.c (gobble_input, append_tool_bar_item): Likewise.
17585	* keymap.c (Fkey_description): Likewise.
17586	* lisp.h (FIXNUM_OVERFLOW_P, vcopy): Likewise.
17587	* lread.c (openp, read_integer, read1, string_to_number):
17588	Likewise.
17589	* menu.c (ensure_menu_items): Likewise.
17590	* minibuf.c (read_minibuf_noninteractive): Likewise.
17591	* print.c (printchar, strout): Likewise.
17592	* process.c (create_process, Faccept_process_output)
17593	(wait_reading_process_output, read_process_output, send_process)
17594	(wait_reading_process_output): Likewise.
17595	* profiler.c (make_log, handle_profiler_signal): Likewise.
17596	* regex.c (re_exec): Likewise.
17597	* regex.h: Likewise.
17598	* search.c (looking_at_1, Freplace_match): Likewise.
17599	* sysdep.c (get_child_status, procfs_ttyname)
17600	(procfs_get_total_memory): Likewise.
17601	* systime.h (EMACS_TIME_VALID_P): Likewise.
17602	* term.c (dissociate_if_controlling_tty): Likewise.
17603	* window.c (get_phys_cursor_glyph): Likewise.
17604	* xdisp.c (init_iterator, redisplay_internal, redisplay_window)
17605	(try_window_reusing_current_matrix, try_window_id, pint2hrstr):
17606	Likewise.
17607	* xfns.c (Fx_window_property): Likewise.
17608	* xmenu.c (set_frame_menubar): Likewise.
17609	* xselect.c (x_get_window_property, x_handle_dnd_message):
17610	Likewise.
17611	* xsmfns.c (smc_save_yourself_CB): Likewise.
17612	* xterm.c (x_scroll_bar_set_handle): Likewise.
17613
176142013-03-24  Dmitry Antipov  <dmantipov@yandex.ru>
17615
17616	* xfaces.c (Finternal_face_x_get_resource): Allow 3rd (frame) argument
17617	to be optional or nil.  Adjust comment and convert it to docstring.
17618	* xselect.c (Fx_send_client_event): Rename to Fx_send_client_message.
17619	* frame.c (display_x_get_resource, Fx_get_resource): Break long line.
17620
176212013-03-24  Paul Eggert  <eggert@cs.ucla.edu>
17622
17623	Static checking by GCC 4.8-20130319.
17624	* image.c (gif_load): Assume pass < 3 to pacify GCC.
17625	* process.c (Fset_process_datagram_address)
17626	(Fmake_network_process): Check get_lisp_to_sockaddr_size return value.
17627	* xdisp.c (get_char_face_and_encoding)
17628	(get_glyph_face_and_encoding): Ensure that *CHAR2B is initialized.
17629	(get_glyph_face_and_encoding): Prepare face before possibly using it.
17630	(get_per_char_metric): Don't use CHAR2B if it might not be initialized.
17631
176322013-03-24  Ken Brown  <kbrown@cornell.edu>
17633
17634	* w32fns.c (emacs_abort) [CYGWIN]: Define `_open' as a macro to
17635	fix compilation on 64-bit Cygwin, where underscores are not
17636	automatically prepended.
17637
17638	* w32term.c (w32_initialize): Silence compiler warning.
17639
176402013-03-23  Eli Zaretskii  <eliz@gnu.org>
17641
17642	* w32term.c (w32fullscreen_hook): Use FRAME_NORMAL_WIDTH,
17643	FRAME_NORMAL_HEIGHT, and FRAME_PREV_FSMODE, instead of static
17644	variables, to save and restore frame dimensions.
17645	Use FRAME_NORMAL_LEFT and FRAME_NORMAL_TOP to restore frame position
17646	after returning from a 'fullscreen' configuration.
17647	use SendMessage instead of PostMessage to send the SC_RESTORE message,
17648	to avoid races between the main thread and the input thread.
17649
17650	* w32term.h (struct w32_output): New members normal_width,
17651	normal_height, normal_top, normal_left, and prev_fsmode.
17652	(FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP)
17653	(FRAME_NORMAL_LEFT, FRAME_PREV_FSMODE): New macros to access these
17654	members of a frame.
17655
17656	* w32term.c (w32fullscreen_hook): Record last value of the frame's
17657	'fullscreen' parameter.  Always record previous width and height
17658	of the frame, except when switching out of maximized modes, so
17659	that they could be restored correctly, instead of resetting to the
17660	default frame dimensions.  Send SC_RESTORE command to the frame,
17661	unless we are going to send SC_MAXIMIZE, to restore the frame
17662	resize hints in the mouse pointer shown by the window manager.
17663	(Bug#14032)
17664
17665	* frame.c (get_frame_param): Now extern for WINDOWSNT as well.
17666
17667	* lisp.h (get_frame_param): Adjust conditions for prototype
17668	declaration.
17669
176702013-03-22  Ken Brown  <kbrown@cornell.edu>
17671
17672	* unexcw.c: Drop unneeded inclusion of w32common.h.
17673	(report_sheap_usage): Declare.
17674	(read_exe_header): Add magic numbers for x86_64.
17675	(fixup_executable): Fix printf format specifier for unsigned long
17676	argument.
17677
176782013-03-22  Dmitry Antipov  <dmantipov@yandex.ru>
17679
17680	* frame.h (struct frame): Put menu_bar_window under #ifdef
17681	because this member is not needed when X toolkit is in use.
17682	(fset_menu_bar_window):
17683	* dispnew.c (clear_current_matrices, clear_desired_matrices)
17684	(free_glyphs, update_frame):
17685	* xdisp.c (expose_frame): Likewise.
17686	(display_menu_bar): Likewise.  Remove redundant eassert.
17687	* window.h (WINDOW_MENU_BAR_P): Always define to 0 if X
17688	toolkit is in use.
17689
176902013-03-21  Paul Eggert  <eggert@cs.ucla.edu>
17691
17692	Use functions and constants to manipulate Lisp_Save_Value objects.
17693	This replaces code that used macros and strings and token-pasting.
17694	The change makes the C source a bit easier to follow,
17695	and shrinks the Emacs executable a bit.
17696	* alloc.c: Verify some properties of Lisp_Save_Value's representation.
17697	(make_save_value): Change 1st arg from string to enum.  All callers
17698	changed.
17699	(INTX): Remove.
17700	(mark_object): Use if, not #if, for GC_MARK_STACK.
17701	* lisp.h (SAVE_VALUEP, XSAVE_VALUE, XSAVE_POINTER, XSAVE_INTEGER)
17702	(XSAVE_OBJECT): Now functions, not macros.
17703	(STRING_BYTES_BOUND): Now just a macro, not a constant too;
17704	the constant was never used.
17705	(SAVE_SLOT_BITS, SAVE_VALUE_SLOTS, SAVE_TYPE_BITS, SAVE_TYPE_INT_INT)
17706	(SAVE_TYPE_INT_INT_INT, SAVE_TYPE_OBJ_OBJ, SAVE_TYPE_OBJ_OBJ_OBJ)
17707	(SAVE_TYPE_OBJ_OBJ_OBJ_OBJ, SAVE_TYPE_PTR_INT, SAVE_TYPE_PTR_OBJ)
17708	(SAVE_TYPE_PTR_PTR, SAVE_TYPE_PTR_PTR_OBJ, SAVE_TYPE_MEMORY):
17709	New constants.
17710	(struct Lisp_Save_Value): Replace members area, type0, type1, type2,
17711	type3 with a single member save_type.  All uses changed.
17712	(save_type, set_save_pointer, set_save_integer): New functions.
17713	* print.c (PRINTX): Remove.
17714
17715	* alloc.c: Remove redundant static declarations.
17716
177172013-03-20  Dmitry Antipov  <dmantipov@yandex.ru>
17718
17719	* window.h (struct window): Convert left_col, top_line, total_lines
17720	and total_cols from Lisp_Objects to integers.  Adjust comments.
17721	(wset_left_col, wset_top_line, wset_total_cols, wset_total_lines):
17722	Remove.
17723	(WINDOW_TOTAL_COLS, WINDOW_TOTAL_LINES, WINDOW_LEFT_EDGE_COL)
17724	(WINDOW_TOP_EDGE_LINE): Drop Lisp_Object to integer conversion.
17725	* dispnew.c, frame.c, w32fns.c, window.c, xdisp.c, xfns.c:
17726	Adjust users where appropriate.
17727
177282013-03-20  Dmitry Antipov  <dmantipov@yandex.ru>
17729
17730	* frame.h (struct frame): Drop resx and resy because the same data is
17731	available from window system-specific output context.  Adjust users.
17732	(default_pixels_per_inch_x, default_pixels_per_inch_y):
17733	New functions to provide defaults when no window system available.
17734	(FRAME_RES_X, FRAME_RES_Y): New macros.
17735	(NUMVAL): Move from xdisp.c.
17736	* font.c (font_pixel_size, font_find_for_lface, font_open_for_lface)
17737	(Ffont_face_attributes, Fopen_font):
17738	* image.c (gs_load):
17739	* w32font.c (fill_in_logfont):
17740	* xdisp.c (calc_pixel_width_or_height):
17741	* xfaces.c (Fx_family_fonts, set_lface_from_font): Use them.
17742	* xsettings.c (apply_xft_settings): Drop frame loop and adjust comment.
17743
177442013-03-20  Kenichi Handa  <handa@gnu.org>
17745
17746	* coding.c (syms_of_coding): Initialize disable_ascii_optimization
17747	to 1 (temporary workaround until a bug related to ASCII
17748	optimization is fixed).
17749
177502013-03-19  Dmitry Antipov  <dmantipov@yandex.ru>
17751
17752	* window.c (Fwindow_combination_limit, Fset_window_combination_limit):
17753	Signal error if window is not internal.  Adjust docstring.
17754	(delete_all_child_windows): Use combination_limit to save the buffer.
17755	(Fset_window_configuration): Adjust accordingly.
17756	* print.c (syms_of_print): Initialize debugging output not here...
17757	(init_print_once): ...but in a new function here.
17758	* lisp.h (init_print_once): Add prototype.
17759	* emacs.c (main): Add call to init_print_once.  Adjust comments.
17760
177612013-03-18  Dmitry Antipov  <dmantipov@yandex.ru>
17762
17763	* window.c (window_resize_check, window_resize_apply)
17764	(window_from_coordinates, recombine_windows, set_window_buffer)
17765	(make_parent_window, Fwindow_resize_apply, resize_frame_windows)
17766	(Fsplit_window_internal, Fdelete_window_internal)
17767	(freeze_window_starts): Use bool for booleans.
17768	* window.h (window_frame_coordinates, resize_frame_windows)
17769	(freeze_window_starts, set_window_buffer): Adjust prototypes.
17770
177712013-03-17  Stefan Monnier  <monnier@iro.umontreal.ca>
17772
17773	* dispnew.c (bitch_at_user): Use `user-error'.
17774
177752013-03-17  Ken Brown  <kbrown@cornell.edu>
17776
17777	* dispextern.h (RGB_PIXEL_COLOR): Move here from image.c.  Use it
17778	as return type of image_background.  (Bug#13981)
17779	* image.c (RGB_PIXEL_COLOR): Move to dispextern.h.
17780
177812013-03-16  Jan Djärv  <jan.h.d@swipnet.se>
17782
17783	* nsterm.m (updateFrameSize:): Change resize increments if needed.
17784	(ns_select): Don't return with result uninitialized.
17785
17786	* nsterm.h (EmacsSavePanel, EmacsOpenPanel): Add getFilename
17787	and getDirectory.
17788
17789	* nsfns.m (ns_filename_from_panel, ns_directory_from_panel):
17790	New functions.
17791	(Fns_read_file_name): ret is BOOL.  If ! dir_only_p, don't choose
17792	directories.  If filename is nil, get directory name (Bug#13932).
17793	Use getFilename and getDirectory.
17794	(getFilename, getDirectory): New methods for EmacsSavePanel and
17795	EmacsOpenPanel.
17796	(ok:): In EmacsOpenPanel, if we can't choose directories, just return.
17797
177982013-03-15  Paul Eggert  <eggert@cs.ucla.edu>
17799
17800	* coding.c (decode_coding_gap): Fix typo caught by static checking.
17801
178022013-03-15  Kenichi Handa  <handa@gnu.org>
17803
17804	* insdel.c (insert_from_gap): New arg text_at_gap_tail.
17805	(adjust_after_replace): Make it back to static.  Delete the third
17806	arg text_at_gap_tail.  Cancel the code for handling it.
17807
17808	* coding.h (struct coding_system): New member eol_seen.
17809
17810	* coding.c (detect_ascii): New function.
17811	(detect_coding): Set coding->head_ascii and coding->eol_seen only
17812	when the source bytes are actually scanned.  On detecting for
17813	coding_category_utf_8_auto, call detect_ascii instead of scanning
17814	source bytes directly.
17815	(produce_chars): Call insert_from_gap with the new arg 0.
17816	(encode_coding): Likewise.
17817	(decode_coding_gap): Control ASCII optimization by the variable
17818	disable_ascii_optimization instead of #ifndef .. #endif.
17819	Deccode EOL format according to coding->eol_seen.
17820	(syms_of_coding): Declare disable-ascii-optimization as a Lisp
17821	variable.
17822
17823	* lisp.h (adjust_after_replace): Cancel externing it.
17824	(insert_from_gap): Adjust prototype.
17825
178262013-03-15  Eli Zaretskii  <eliz@gnu.org>
17827
17828	* w32term.c (w32fullscreen_hook): Swap FULLSCREEN_BOTH and
17829	FULLSCREEN_MAXIMIZED.  (Bug#13935)
17830
178312013-03-15  Dmitry Antipov  <dmantipov@yandex.ru>
17832
17833	* region-cache.c (find_cache_boundary, move_cache_gap)
17834	(insert_cache_boundary, delete_cache_boundaries, set_cache_region):
17835	Simplify debugging check and convert to eassert.  Adjust comment.
17836	(pp_cache): Put under ENABLE_CHECKING.
17837
178382013-03-14  Eli Zaretskii  <eliz@gnu.org>
17839
17840	* w32term.c (w32_read_socket) <WM_WINDOWPOSCHANGED>: Remove old
17841	and incorrect code.  Treat WM_WINDOWPOSCHANGED like WM_ACTIVATE
17842	and WM_ACTIVATEAPP.
17843	(w32fullscreen_hook): If the frame is visible, reset
17844	f->want_fullscreen flag after changing the frame size.  If the
17845	frame is not visible, set f->want_fullscreen to FULLSCREEN_WAIT.
17846	(Bug#13953)
17847
178482013-03-13  Daniel Colascione  <dancol@dancol.org>
17849
17850	* emacs.c (main): Call syms_of_cygw32 on CYGWIN non-NTGUI builds
17851	too so that these builds can use Cygwin's file conversion
17852	functions.  (We've been building and linking cygw32.o all along
17853	and just not using it.)
17854
178552013-03-13  Paul Eggert  <eggert@cs.ucla.edu>
17856
17857	File synchronization fixes (Bug#13944).
17858	* Makefile.in (LIB_FDATASYNC): New macro.
17859	(LIBES): Use it.
17860	* conf_post.h (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed.
17861	* fileio.c (Fwrite_region, write_region_inhibit_fsync):
17862	Don't worry about HAVE_FSYNC, since a substitute fsync is
17863	available if the system lacks one.
17864	(Fwrite_regin): Retry fsync if interrupted.
17865
178662013-03-13  Eli Zaretskii  <eliz@gnu.org>
17867
17868	* w32term.c (w32_read_socket): If the Emacs frame is being
17869	activated, call w32fullscreen_hook, to make sure the new frame
17870	dimensions are in effect.  (Bug#13937)
17871
178722013-03-13  Dmitry Antipov  <dmantipov@yandex.ru>
17873
17874	* xdisp.c (init_iterator): Simplify because both character and byte
17875	positions are either specified or -1.  Add eassert.  Adjust comment.
17876	* window.c (Fscroll_other_window): Use SET_PT_BOTH because both
17877	character and byte positions can be obtained from marker.
17878
178792013-03-13  Paul Eggert  <eggert@cs.ucla.edu>
17880
17881	Static checking by Sun C 5.12.
17882	* alloc.c (buffer_memory_full) [REL_ALLOC]:
17883	* bytecode.c (exec_byte_code):
17884	* dispnew.c (init_display):
17885	* eval.c (error):
17886	* fileio.c (Fsubstitute_in_file_name):
17887	* keyboard.c (Fevent_convert_list):
17888	* keymap.c (Fsingle_key_description):
17889	* term.c (maybe_fatal, fatal):
17890	* xfns.c (Fx_display_backing_store, Fx_display_visual_class):
17891	* xsmfns.c (Fhandle_save_session):
17892	Omit unreachable code.
17893	* keymap.c (map_keymap_char_table_item): Cast void * to
17894	a function pointer type; the C Standard requires this.
17895
17896	* sysdep.c: Remove a use of BSD_SYSTEM, which I'm trying to phase out.
17897	Include <sys/param.h> unconditionally, as that works elsewhere and
17898	is simpler here.  Include <sys/sysctl.h> if DARWIN_OS ||
17899	__FreeBSD__, not if BSD_SYSTEM, since it's needed only for Darwin
17900	and FreeBSD now.
17901
17902See ChangeLog.12 for earlier changes.
17903
17904;; Local Variables:
17905;; coding: utf-8
17906;; End:
17907
17908  Copyright (C) 2011-2021 Free Software Foundation, Inc.
17909
17910  This file is part of GNU Emacs.
17911
17912  GNU Emacs is free software: you can redistribute it and/or modify
17913  it under the terms of the GNU General Public License as published by
17914  the Free Software Foundation, either version 3 of the License, or
17915  (at your option) any later version.
17916
17917  GNU Emacs is distributed in the hope that it will be useful,
17918  but WITHOUT ANY WARRANTY; without even the implied warranty of
17919  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17920  GNU General Public License for more details.
17921
17922  You should have received a copy of the GNU General Public License
17923  along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
17924