* lisp/time.el (display-time-update): Update all mode lines.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
da048127
SM
12013-11-29 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * lisp.mk (lisp): Add electric.elc.
4
579ca67b
TS
52013-11-29 Tom Seddon <emacs@tomseddon.plus.com> (tiny change)
6
7 * w32font.c (g_b_init_get_char_width_32_w): New static var.
8 (globals_of_w32font): Zero it out.
9 (GetCharWidth32W_Proc): New function pointer.
10 (get_char_width_32_w): New function.
11 (compute_metrics): If get_glyph_outline_w returns an error, try
12 get_char_width_32_w before declaring a failure. This avoids
13 punishing raster (a.k.a. "bitmap") fonts by slowing down
14 redisplay. (Bug#6364).
b7f79a5c 15
da048127
SM
162013-11-29 Eli Zaretskii <eliz@gnu.org>
17
b7f79a5c
EZ
18 * xdisp.c (clear_mouse_face): Don't invalidate the entire
19 mouse-highlight info, just signal frame_up_to_date_hook that mouse
20 highlight needs to be redisplayed. (Bug#15913)
21
49faeaaf
PE
222013-11-29 Paul Eggert <eggert@cs.ucla.edu>
23
24 Fix minor problems found by static checking.
25 * buffer.h (struct buffer_text, struct buffer):
26 * frame.h (struct frame):
27 * window.h (struct window):
28 Avoid 'bool foo : 1;', as it's not portable to pre-C99 compilers,
29 as described in ../lib/stdbool.in.h. Use 'unsigned foo : 1;' instead.
30 * menu.c (syms_of_menu): Define x-popup-dialog, removing a
31 no-longer-valid use of HAVE_MENUS.
32 * xdisp.c (propagate_buffer_redisplay): Now static.
33
ef869611
SM
342013-11-29 Stefan Monnier <monnier@iro.umontreal.ca>
35
7cdf484b
SM
36 * xmenu.c (Fmenu_or_popup_active_p):
37 * window.c (Fset_window_configuration):
38 * menu.c (Fx_popup_menu, Fx_popup_dialog):
39 * keyboard.c (record_menu_key, read_char_x_menu_prompt):
40 * fns.c (Fyes_or_no_p):
41 * editfns.c (Fmessage_box, Fmessage_or_box):
42 * alloc.c (make_save_ptr_ptr):
43 * xdisp.c, w32menu.c, term.c, xterm.h, xterm.c: Remove HAVE_MENUS.
44
ef869611
SM
45 * window.c (Fset_window_configuration): Move select_window later.
46
655ab9a3
SM
472013-11-28 Stefan Monnier <monnier@iro.umontreal.ca>
48
49 Refine redisplay optimizations to only redisplay *some* frames/windows
50 rather than all of them.
51 * xdisp.c (REDISPLAY_SOME): New constant.
52 (redisplay_other_windows, wset_redisplay, fset_redisplay)
53 (bset_redisplay, bset_update_mode_line): New functions.
54 (message_dolog): Use bset_redisplay.
55 (clear_garbaged_frames): Use fset_redisplay.
56 (echo_area_display): Use wset_redisplay.
57 (buffer_shared_and_changed): Remove.
58 (prepare_menu_bars): Call Vpre_redisplay_function before updating
59 frame titles. Compute the actual set of windows redisplayed.
60 Don't update frame titles and menu bars for frames that don't need to
61 be redisplayed.
62 (propagate_buffer_redisplay): New function.
63 (AINC): New macro.
64 (redisplay_internal): Use it. Be more selective in the set of windows
65 we redisplay. Propagate windows_or_buffers_changed to
66 update_mode_lines a bit later to simplify the code.
67 (mark_window_display_accurate_1): Reset window and buffer's
68 `redisplay' flag.
69 (redisplay_window): Do nothing if neither the window nor the buffer nor
70 the frame needs redisplay.
71 * window.h (struct window): Add `redisplay' field.
72 (wset_redisplay, fset_redisplay, bset_redisplay, bset_update_mode_line)
73 (redisplay_other_windows, window_list): New declarations.
74 * window.c (select_window, Fset_window_start): Use wset_redisplay.
75 (window_list): Not static any more.
76 (grow_mini_window, shrink_mini_window): Use fset_redisplay.
77 * minibuf.c (read_minibuf_unwind): Don't redisplay everything.
78 * insdel.c (prepare_to_modify_buffer_1): Use bset_redisplay.
79 * frame.c (Fmake_frame_visible): Don't redisplay everything.
80 * frame.h (struct frame): Add `redisplay' field.
81 Move `external_menu_bar' bitfield next to other bit-fields.
82 (SET_FRAME_GARBAGED): Use fset_redisplay.
83 (SET_FRAME_VISIBLE): Don't garbage the frame;
84 Use redisplay_other_windows.
85 * buffer.h (struct buffer): Add `redisplay' field.
86 * buffer.c (Fforce_mode_line_update): Pay attention to the `all' flag.
87 (modify_overlay): Use bset_redisplay.
88 * alloc.c (gc_sweep): Don't unmark strings while sweeping symbols.
89
9c099ca7
EZ
902013-11-28 Eli Zaretskii <eliz@gnu.org>
91
92 Support w32 file notifications in batch mode.
93 * w32proc.c (sys_select): Don't wait on interrupt_handle if it is
94 invalid (which happens in batch mode). If non-interactive, call
95 handle_file_notifications to store file notification events in the
96 input queue. (Bug#15933)
97
655ab9a3 98 * w32notify.c (send_notifications): Handle FRAME_INITIAL frames as well.
9c099ca7 99
655ab9a3 100 * w32inevt.c (handle_file_notifications): Now external, not static.
9c099ca7
EZ
101
102 * w32term.h (handle_file_notifications): Provide prototype.
103
104 * emacs.c (main) [HAVE_W32NOTIFY]: When non-interactive, call
105 init_crit, since init_display, which does that otherwise, is not
106 called.
107
7e3bf78c
GM
1082013-11-27 Glenn Morris <rgm@gnu.org>
109
110 * Makefile.in ($(lispsource)/international/charprop.el): New.
111 (emacs$(EXEEXT)): Depend on charprop.el.
112
fb6a5d68
EZ
1132013-11-27 Eli Zaretskii <eliz@gnu.org>
114
de1e0d91
EZ
115 * fileio.c (Finsert_file_contents): Invalidate buffer caches when
116 deleting portions of the buffer under non-nil REPLACE argument.
117 (Bug#15973)
118
fb6a5d68
EZ
119 * w32notify.c (Fw32notify_add_watch): If the argument FILE is a
120 directory, watch it and not its parent.
121 (add_watch): Allow empty string in FILE.
122
72fdd473
MR
1232013-11-27 Martin Rudalics <rudalics@gmx.at>
124
125 * window.c (Fset_window_start, window_resize_apply)
126 (window_scroll): Reset window_end_valid (Bug#15957).
127
cb6c95a3
GM
1282013-11-27 Glenn Morris <rgm@gnu.org>
129
130 * Makefile.in (leimdir): Now in lisp source directory.
131 ($(leimdir)/leim-list.el): Just use ../leim .
132 * epaths.in (PATH_DUMPLOADSEARCH):
133 * lread.c (load_path_default):
134 * nsterm.m (ns_load_path): No more leim directory.
135
ed87760c
AS
1362013-11-26 Andreas Schwab <schwab@suse.de>
137
138 * .gdbinit (xgettype): Add cast.
139
624780f0
GM
1402013-11-26 Glenn Morris <rgm@gnu.org>
141
142 Preload leim-list.el.
143 * epaths.in (PATH_DUMPLOADSEARCH): Add leim/.
144 * callproc.c (init_callproc): Don't assume PATH_DUMPLOADSEARCH
145 is a single directory.
146
4aaf6b61
PE
1472013-11-25 Paul Eggert <eggert@cs.ucla.edu>
148
3f73284a
PE
149 bool-vector-subsetp is now the normal direction (Bug#15912).
150 * data.c (Fbool_vector_subsetp): Test whether the first argument
151 is a subset of the second one, not the reverse. Add doc string.
152
4aaf6b61
PE
153 Fix minor problems found by static checking.
154 * lread.c (load_path_default): Now static.
155 * textprop.c (text_property_stickiness): Be consistent about the
156 test used when deciding whether to consider the previous character.
157 This simplifies the code a bit.
158
511fa0d3
SM
1592013-11-25 Stefan Monnier <monnier@iro.umontreal.ca>
160
a5fa8eb4
SM
161 * textprop.c (text_property_stickiness): Fix front-stickiness at BOB.
162
511fa0d3
SM
163 * frame.c (Fhandle_focus_in, Fhandle_focus_out): Move to frame.el.
164 (syms_of_frame): Don't defsubr them.
165
97bacf8c
GM
1662013-11-25 Glenn Morris <rgm@gnu.org>
167
310294a3
GM
168 * lread.c (load_path_default): Change the sense of the argument.
169 (init_lread): When EMACSLOADPATH is set, do not ignore changes
170 from dump_path. When it is not, avoid checking dump_path twice.
171
97bacf8c
GM
172 * lread.c (init_lread): Fix 2013-11-23 goof that was checking
173 uninstalled dump_path against installed Vload_path. (Bug#15964)
174
450533b0
SM
1752013-11-24 Stefan Monnier <monnier@iro.umontreal.ca>
176
740bcff0
SM
177 Export get_pos_property to Elisp.
178 * editfns.c (Fget_pos_property): Rename from get_pos_property.
179 (syms_of_editfns): Export it to Elisp.
180
450533b0
SM
181 * data.c (Fmake_variable_buffer_local): Mention `permanent-local'.
182
1db72ad3
RF
1832013-11-23 Romain Francoise <romain@orebokech.com>
184
185 * fileio.c (init_fileio): Move `write_region_inhibit_fsync'
186 initialization here ...
187 (syms_of_fileio): ... from here.
188
2c98e669
SM
1892013-11-23 Stefan Monnier <monnier@iro.umontreal.ca>
190
191 * lread.c (init_lread): Fix int/Lisp_Object mixup.
192 Please use --enable-check-lisp-object-type.
193
50dca5df
GM
1942013-11-23 Glenn Morris <rgm@gnu.org>
195
196 * process.c (get_process): Explicit error for dead buffers.
197
d7aff0d6
GM
1982013-11-23 Andreas Schwab <schwab@linux-m68k.org>
199
200 * process.c (get_process): Check that OBJ is a live buffer. (Bug#15923)
201
17e0445b
GM
2022013-11-23 Glenn Morris <rgm@gnu.org>
203
204 Empty elements in EMACSLOADPATH stand for the default. (Bug#12100)
205 * lread.c (load_path_check): Take path to check as argument.
206 (load_path_default): New, split from init_lread.
207 (init_lread): Move calc of default load-path to load_path_default.
208 Empty elements in EMACSLOADPATH now stand for the default.
209 (load-path): Doc fix.
210 * emacs.c (decode_env_path): Add option to treat empty elements
211 as nil rather than ".".
212 * callproc.c (init_callproc_1, init_callproc):
213 * image.c (Vx_bitmap_file_path):
214 * lisp.h (decode_env_path):
215 * lread.c (Vsource_directory):
216 Update for new argument spec of decode_env_path.
217
cd88d682
EZ
2182013-11-22 Eli Zaretskii <eliz@gnu.org>
219
220 * bidi.c (bidi_find_paragraph_start): Limit the returned positions
221 to BEGV_BYTE..ZV_BYTE range. (Bug#15951)
222
75360f19
PE
2232013-11-21 Paul Eggert <eggert@cs.ucla.edu>
224
7e8ed4f7
PE
225 Fix some dependency problems that cause unnecessary recompiles.
226 Problem reported by RMS in
227 <http://lists.gnu.org/archive/html/emacs-devel/2013-11/msg00421.html>.
228 * Makefile.in (OLDXMENU_TARGET, OLDXMENU, OLDXMENU_DEPS)
229 (really-lwlib, really-oldXMenu, stamp-oldxmenu)
230 (../src/$(OLDXMENU), $(OLDXMENU)): Remove.
7e8ed4f7
PE
231 (temacs$(EXEEXT)): Depend on $(LIBXMENU), not stamp-oldxmenu.
232 ($(lwlibdir)/liblw.a, $(oldXMenudir)/libXMenu11.a, FORCE): New targets.
233 (boostrap-clean): No need to remove stamp-oldxmenu.
234
75360f19
PE
235 Fix recently introduced bool vector overrun.
236 This was due to an optimization that went awry.
237 Reported by Glenn Morris in
238 <http://lists.gnu.org/archive/html/emacs-devel/2013-11/msg00622.html>.
239 * alloc.c (make_uninit_bool_vector): Don't allocate a dummy word
240 for empty vectors, undoing the 2013-11-18 change.
241 * data.c (bool_vector_binop_driver): Rely on this.
242 Fix bug that occasionally overran the destination.
243 * lisp.h (struct Lisp_Bool_vector): Document this.
244
f03f7d3d
JD
2452013-11-20 Jan Djärv <jan.h.d@swipnet.se>
246
cab0d91d
JD
247 * nsterm.m (init, run, stop:): Enable again. stop calls super stop
248 to handle dialogs.
249
f03f7d3d
JD
250 * nsterm.m (init, run, stop:): Comment out for now, does not work
251 with dialogs.
252
12455b2f
PE
2532013-11-19 Paul Eggert <eggert@cs.ucla.edu>
254
255 * charset.c (syms_of_charset): Don't read past end of string.
256
8d1c3af9
GM
2572013-11-19 Glenn Morris <rgm@gnu.org>
258
259 * frame.c (Fhandle_focus_in, Fhandle_focus_out): Doc fixes.
260
8e015705
BJ
2612013-11-19 Brian Jenkins <brian@brianjenkins.org> (tiny change)
262
263 Add hooks to run on gaining/losing focus. (Bug#15029)
264 * frame.c (Qfocus_in_hook, Qfocus_out_hook): New static lisp objects.
265 (Fhandle_focus_in, Fhandle_focus_out): Run focus hooks.
266 (syms_of_frame): Add focus-in-hook, focus-out-hook.
267
87d86601
PE
2682013-11-18 Paul Eggert <eggert@cs.ucla.edu>
269
23e79746
PE
270 * data.c (bool_vector_binop_driver): Rename locals for sanity's sake.
271 The old names predated the API change that put destination at end.
272
ec2c4ee6
PE
273 Improve API of recently-added bool vector functions (Bug#15912).
274 The old API had (bool-vector-count-matches A B)
275 and (bool-vector-count-matches-at A B I), which gave the
276 misleading impression that the two functions were variants, one
277 with a location I. The new API has (bool-vector-count-population A)
278 and (bool-vector-count-consecutive A B I) to make the distinction
279 clearer. The first function no longer has a B argument, since the
280 caller can easily determine the number of nils if the length and
281 number of ts is known.
282 * data.c (Fbool_vector_count_population): Rename from
283 bool_vector_count_matches, and accept just 1 argument.
284 (Fbool_vector_count_consecutive): Rename from
285 Fbool_vector_count_matches_at.
286
87d86601
PE
287 Always allocate at least one bits_word per bool vector.
288 See Daniel Colascione in:
289 http://lists.gnu.org/archive/html/emacs-devel/2013-11/msg00518.html
290 * alloc.c (make_uninit_bool_vector): Always allocate at least one word.
291 * data.c (bool_vector_binop_driver): Rely on this. Tune.
292 * lisp.h (struct Lisp_Bool_vector): Document this.
293
37c790b3
EZ
2942013-11-18 Eli Zaretskii <eliz@gnu.org>
295
296 * insdel.c (invalidate_buffer_caches): New function, consolidated
297 from part of prepare_to_modify_buffer.
298 (insert_from_gap, prepare_to_modify_buffer):
655ab9a3
SM
299 * coding.c (code_convert_region, code_convert_string):
300 Call invalidate_buffer_caches. (Bug#15841)
37c790b3
EZ
301
302 * lisp.h (invalidate_buffer_caches): Add prototype.
303
96e78d1f
EZ
3042013-11-17 Eli Zaretskii <eliz@gnu.org>
305
306 * w32term.c (x_update_window_end): Don't invalidate the entire
307 mouse-highlight info, just signal frame_up_to_date_hook that mouse
308 highlight needs to be redisplayed. (Bug#15913)
309
0f679e86
PE
3102013-11-17 Paul Eggert <eggert@cs.ucla.edu>
311
312 * lisp.h (DEBUGGER_SEES_C_MACROS): Remove.
313
3d6dec8d
EZ
3142013-11-16 Eli Zaretskii <eliz@gnu.org>
315
d17f4dba
EZ
316 * doc.c (Fsubstitute_command_keys): Inhibit modification hooks
317 while we are using Vprin1_to_string_buffer.
318
3d6dec8d
EZ
319 * keymap.c (describe_map): Don't crash if PT is 1 both before and
320 after inserting the description string. (Bug#15907)
321
2fcc742f
PE
3222013-11-15 Paul Eggert <eggert@cs.ucla.edu>
323
324 * data.c: Work around bogus GCC diagnostic about shift count.
325 Reported by Eli Zaretskii in
326 <http://lists.gnu.org/archive/html/emacs-devel/2013-11/msg00489.html>.
327 (pre_value): New function.
328 (count_trailing_zero_bits): Use it.
329
73583a99
EZ
3302013-11-15 Eli Zaretskii <eliz@gnu.org>
331
332 * lisp.h (DEBUGGER_SEES_C_MACROS) [GCC < v3.5]: Pessimistically
333 assume C macros are not supported even under -g3 in these old GCC
334 versions.
335
a1f03e89
LL
3362013-11-15 Leo Liu <sdl.web@gmail.com>
337
338 * minibuf.c (Ftry_completion, Fall_completions)
339 (Ftest_completion): Use FUNCTIONP. (Bug#15889)
340
1a191e5c
PE
3412013-11-15 Paul Eggert <eggert@cs.ucla.edu>
342
343 * lisp.h (DEFINE_GDB_SYMBOL_BEGIN, DEFINE_GDB_SYMBOL_END):
344 Define to empty if DEBUGGER_SEES_C_MACROS is defined.
345 This avoids placing unnecessary constants into the Emacs code.
346
c9f63070
KI
3472013-11-14 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
348
349 * keyboard.c (make_ctrl_char) [HAVE_NTGUI]: Now externally visible
350 for Cygwin w32 build.
351
352 * xdisp.c (erase_phys_cursor) [HAVE_NTGUI]: Now externally visible
353 for Cygwin w32 build. (Bug#15892)
354
d672ac3c
PE
3552013-11-14 Paul Eggert <eggert@cs.ucla.edu>
356
2cf00efc
PE
357 Simplify, port and tune bool vector implementation.
358 * alloc.c (bool_vector_exact_payload_bytes)
359 (bool_vector_payload_bytes): Remove.
360 (bool_vector_fill): Return its argument.
361 * alloc.c (bool_vector_fill):
362 * lread.c (read1):
363 * print.c (print_object):
364 Simplify by using bool_vector_bytes.
365 * alloc.c (make_uninit_bool_vector):
366 New function, broken out from Fmake_bool_vector.
367 (Fmake_bool_vector): Use it. Use tail call.
368 (make_uninit_bool_vector, vector_nbytes): Simplify size calculations.
369 * data.c (BITS_PER_ULL): New constant.
370 (ULLONG_MAX, count_one_bits_ll): Fall back on long counterparts
371 if long long versions don't exist.
372 (shift_right_ull): New function.
373 (count_one_bits_word): New function, replacing popcount_bits_word
374 macro. Don't assume that bits_word is no wider than long long.
375 (count_one_bits_word, count_trailing_zero_bits):
376 Don't assume that bits_word is no wider than long long.
377 * data.c (bool_vector_binop_driver, bool_vector_not):
378 * fns.c (Fcopy_sequence):
379 * lread.c (read1):
380 Create an uninitialized destination, to avoid needless work.
381 (internal_equal): Simplify.
382 (Ffillarray): Prefer tail call.
383 * data.c (bool_vector_binop_driver): Don't assume bit vectors always
384 contain at least one word.
385 (bits_word_to_host_endian): Prefer if to #if. Don't assume
386 chars are narrower than ints.
387 * data.c (Fbool_vector_count_matches, Fbool_vector_count_matches_at):
388 * fns.c (Fcopy_sequence):
389 Simplify and tune.
390 * lisp.h (bits_word, BITS_WORD_MAX, BITS_PER_BITS_WORD):
391 Don't try to port to hosts where bits_word values have holes; the
392 code wouldn't work there anyway. Verify this assumption, though.
393 (bool_vector_bytes): New function.
394 (make_uninit_bool_vector): New decl.
395 (bool_vector_fill): Now returns Lisp_Object.
396
d672ac3c
PE
397 * xfns.c (xic_create_fontsetname):
398 * xrdb.c (gethomedir): Prefer tail calls.
399
bd7cd30a
PE
4002013-11-12 Paul Eggert <eggert@cs.ucla.edu>
401
b3671617
PE
402 * xterm.c (syms_of_xterm): staticpro Qmodifier_value, Qalt, Qhyper,
403 Qmeta, and Qsuper. This is safer, and it's what w32fns.c does.
e3ac17b6 404
bd7cd30a
PE
405 * buffer.c (Fforce_mode_line_update): Don't fall off end of function
406 that requires a return value.
407 (Fset_buffer_modified_p): Take advantage of this change to do
408 a tail call.
409
ecda65d4
SM
4102013-11-11 Stefan Monnier <monnier@iro.umontreal.ca>
411
412 * buffer.c (Frestore_buffer_modified_p): Sync it with
413 Fset_buffer_modified_p.
414 (Fforce_mode_line_update): New function, moved from subr.el.
415 (Fset_buffer_modified_p): Use them.
416 (syms_of_buffer): Defsubr Fforce_mode_line_update.
417
5389db9e
PE
4182013-11-11 Paul Eggert <eggert@cs.ucla.edu>
419
420 * search.c (find_newline): Rewrite to prefer offsets to pointers.
421 This avoids undefined behavior when subtracting pointers into
422 different aways. On my platform it also makes the code a tad
423 smaller and presumably faster.
424
7818df11
SM
4252013-11-11 Stefan Monnier <monnier@iro.umontreal.ca>
426
427 * keyboard.c (command_loop_1): Use region-extract-function.
428 * insdel.c (Qregion_extract_function): Not static any more (can we
429 stop pretending that these vars can benefit from being marked static?).
430
85f37d10
EZ
4312013-11-09 Eli Zaretskii <eliz@gnu.org>
432
433 * search.c (find_newline): If buffer text is relocated during the
434 "dumb loop", adjust C pointers into buffer text to follow suit.
435 (Bug#15841)
436
b24ac90f
JD
4372013-11-09 Łukasz Stelmach <stlman@poczta.fm> (tiny change)
438
439 * gtkutil.c (xg_check_special_colors): Use rgb: instead of rgbi:
440 for conversion (Bug#15837).
441
addccbd0
EZ
4422013-11-09 Eli Zaretskii <eliz@gnu.org>
443
444 * fileio.c (Finsert_file_contents): Invalidate the newline cache
445 for the entire range of inserted characters. (Bug#15841)
446
5b97b4c0
JD
4472013-11-08 Jan Djärv <jan.h.d@swipnet.se>
448
449 * xfaces.c (lface_fully_specified_p): Let distant-foreground be
450 unspecified.
451 (realize_default_face): Remove assignment to distant-foreground if
452 unspecified (Bug#15815).
453
080db47f
EZ
4542013-11-08 Eli Zaretskii <eliz@gnu.org>
455
456 * xdisp.c (message_dolog): Make sure the *Messages* buffer has its
457 cache-long-scans disabled, since we don't want to call
458 prepare_to_modify_buffer (in insert_1_both) for each message we
459 display.
460
461 * buffer.h (bset_cache_long_scans): New INLINE function, moved
462 from buffer.c. Improve commentary to the buffer field setter
463 functions.
464
465 * buffer.c (bset_cache_long_scans): Static function deleted.
466 Improve commentary to the buffer field setter functions.
467 (init_buffer_once): Default for cache-long-scans changed to t.
468 (Bug#15797)
469
7f1913b2
PE
4702013-11-08 Paul Eggert <eggert@cs.ucla.edu>
471
220a304a
PE
472 * gmalloc.c (special_realloc, calloc, mallochook): Use tail calls.
473
7f1913b2
PE
474 * chartab.c (make_sub_char_table): Fix size typo (Bug#15825).
475 This bug was introduced in my 2013-06-21 change, and caused
476 struct Lisp_Sub_Char_Table objects to be given too many slots,
477 which broke 'make -C admin/unidata'.
478
5ee29210
JD
4792013-11-07 Jan Djärv <jan.h.d@swipnet.se>
480
481 Import changes from mac-port 4.5.
482 * macfont.m (mac_font_copy_default_descriptors_for_language)
483 (mac_font_copy_default_name_for_charset_and_languages): Declare.
484 (cf_charset_table): big-5-0 has uniquifier 0x4EDC.
485 (macfont_language_default_font_names): New.
486 (macfont_list): Rearrange language/charset code.
487 (macfont_close): Don't check for macfont_info->cache.
488 (mac_ctfont_create_preferred_family_for_attributes): New font
489 selection code, call
490 mac_font_copy_default_name_for_charset_and_languages.
491 (mac_font_copy_default_descriptors_for_language)
492 (mac_font_copy_default_name_for_charset_and_languages): New functions.
493
494 * macfont.h (kCTVersionNumber10_9): Define if not defined.
495
aea07e2c
PE
4962013-11-07 Paul Eggert <eggert@cs.ucla.edu>
497
498 Port to C11 aligned_alloc, and fix some integer overflows.
499 * alloc.c (USE_ALIGNED_ALLOC): New symbol.
500 (USE_POSIX_MEMALIGN): Remove. All uses replaced with USE_ALIGNED_ALLOC,
501 and use of posix_memalign replaced with aligned_alloc.
502 (aligned_alloc): New function, defined or declared as needed.
503 * conf_post.h (HAVE_POSIX_MEMALIGN) [DARWIN_OS]:
504 Don't undef; configure.ac now does this.
505 * gmalloc.c (aligned_alloc) [MSDOS]: New decl.
506 (calloc, aligned_alloc): Check for integer overflow.
507 (aligned_alloc): Rename from memalign. All uses changed.
508 (memalign): New function, an alias for aligned_alloc.
509
e2e894cf
SM
5102013-11-06 Stefan Monnier <monnier@iro.umontreal.ca>
511
512 * xdisp.c (redisplay_internal): Fix typo in last change.
513
a5d376b0
PE
5142013-11-06 Paul Eggert <eggert@cs.ucla.edu>
515
516 * regex.c: Fix --enable-gcc-warning glitch with GCC 4.5.2.
517
2ec9db5d
SM
5182013-11-06 Stefan Monnier <monnier@iro.umontreal.ca>
519
520 * xdisp.c (syms_of_xdisp): New vars redisplay--all-windows-cause and
521 redisplay--mode-lines-cause.
522 (redisplay_internal): Keep them uptodate. Remove redundant check of
523 buffer_shared_and_changed.
524 * *.[chm]: Number every assignment to update_mode_lines so we
525 can track why it is set.
526
d7ac0815
EZ
5272013-11-06 Eli Zaretskii <eliz@gnu.org>
528
529 * editfns.c (Fformat_time_string): Doc fix. (Bug#15816)
530
94ae2ad4
SM
5312013-11-06 Stefan Monnier <monnier@iro.umontreal.ca>
532
533 * *.[chm]: Number every assignment to windows_or_buffers_changed so we
534 can track why it is set.
535
798aef02
PE
5362013-11-06 Paul Eggert <eggert@cs.ucla.edu>
537
538 Integer-related fixes for term.c etc.
539 * dispextern.h (face_tty_specified_color): New function.
540 * term.c (turn_on_face): Don't rely on undefined behavior when
94ae2ad4
SM
541 assigning an out-of-range value to 'long'.
542 Simplify test for toggling highlight.
798aef02
PE
543 (tty_capable_p): Omit last two (unused) args. All callers changed.
544 * term.c (tty_capable_p, tty_menu_display, tty_menu_add_selection)
545 (read_menu_input, tty_menu_activate, tty_menu_show):
546 * xfaces.c (x_supports_face_attributes_p)
547 (tty_supports_face_attributes_p):
548 Use bool for boolean. All callers changed.
549 (tty_supports_face_attributes_p): Omit defaults for color indices;
550 no longer needed. Simplify tail call.
551
9e6e9826
SM
5522013-11-05 Stefan Monnier <monnier@iro.umontreal.ca>
553
554 * xdisp.c (prepare_menu_bars): Mark static.
555 * lisp.h (prepare_menu_bars): Don't declare.
556 * xselect.c (x_handle_selection_clear):
557 * callproc.c (call_process): Remove redundant call to prepare_menu_bars.
558
7544a9d3
PE
5592013-11-05 Paul Eggert <eggert@cs.ucla.edu>
560
561 * keyboard.c (Fcommand_error_default_function): Fix pointer signedness
562 glitch. Eliminate 'sz' prefix; Hungarian notation is not helpful here.
563
2e670b95
SM
5642013-11-05 Stefan Monnier <monnier@iro.umontreal.ca>
565
566 * keyboard.c (Fcommand_error_default_function): Rename from
567 Fdefault_error_output.
568
2ea0d614
JC
5692013-11-05 Jarek Czekalski <jarekczek@poczta.onet.pl> (tiny change)
570
2e670b95
SM
571 * keyboard.c (Fdefault_error_output): New function, extracted from
572 cmd_error_internal.
573 (syms_of_keyboard): Use it for Vcommand_error_function.
2ea0d614 574
70de5e86
SM
5752013-11-05 Stefan Monnier <monnier@iro.umontreal.ca>
576
577 * eval.c (handlerlist_sentinel): New variable (bug#15802).
578 (init_eval): Use it to ensure handlerlist is non-NULL.
579 (unwind_to_catch): Make sure we never set handlerlist to NULL.
580 (Fsignal): Adjust NULLness test of handlerlist.
70de5e86
SM
581 * lisp.h (PUSH_HANDLER): Assume handlerlist is non-NULL.
582
d57f4dde
EZ
5832013-11-05 Eli Zaretskii <eliz@gnu.org>
584
585 * callproc.c (call_process): Call prepare_to_modify_buffer before
586 decoding text read from the sub-process, as the decoded stuff will
587 be inserted into the buffer. This will invalidate the various
588 caches maintained for the buffer. (Bug#15148)
589
29aa2b71
XF
5902013-11-05 Xue Fuqiao <xfq.free@gmail.com>
591
592 * xdisp.c (syms_of_xdisp): Mention the active display table in doc
593 string of glyphless-char-display.
594
ceb486d4
JD
5952013-11-05 Jan Djärv <jan.h.d@swipnet.se>
596
597 * nsfns.m (ns_get_name_from_ioreg): New function.
598 (ns_screen_name): Don't use deprecated CGDisplayIOServicePort on
599 OSX >= 10.9. Use ns_get_name_from_ioreg.
600
69369809
PE
6012013-11-05 Paul Eggert <eggert@cs.ucla.edu>
602
df5b4930
PE
603 Simplify and port recent bool vector changes.
604 * alloc.c (ROUNDUP): Move here from lisp.h, since it's now used
605 only in this file. Use a more-efficient implementation if the
606 second argument is a power of 2.
607 (ALIGN): Rewrite in terms of ROUNDUP. Make it a function.
608 Remove no-longer-necessary compile-time checks.
609 (bool_vector_exact_payload_bytes): New function.
610 (bool_vector_payload_bytes): Remove 2nd arg; callers that need
611 exact payload changed to call the new function. Do not assume
612 that the arg or result fits in ptrdiff_t.
613 (bool_vector_fill): New function.
614 (Fmake_bool_vector): Use it. Don't assume bit counts fit
615 in ptrdiff_t.
616 (vroundup_ct): Don't assume arg fits in size_t.
617 * category.c (SET_CATEGORY_SET): Remove. All callers now just
618 invoke set_category_set.
619 (set_category_set): 2nd arg is now EMACS_INT and 3rd is now bool.
620 All callers changed. Use bool_vector_set.
621 * category.h (XCATEGORY_SET): Remove; no longer needed.
622 (CATEGORY_MEMBER): Now a function. Rewrite in terms of
623 bool_vector_bitref.
624 * data.c (Faref): Use bool_vector_ref.
625 (Faset): Use bool_vector_set.
626 (bits_word_to_host_endian): Don't assume you can shift by CHAR_BIT.
627 (Fbool_vector_not, Fbool_vector_count_matches)
628 (Fbool_vector_count_matches_at): Don't assume CHAR_BIT == 8.
629 * fns.c (concat): Use bool_vector_ref.
630 (Ffillarray): Use bool_vector_fill.
631 (mapcar1): Use bool_vector_ref.
632 (sxhash_bool_vector): Hash words, not bytes.
633 * lisp.h (BOOL_VECTOR_BITS_PER_CHAR): Now a macro as well as
634 a constant, since it's now used in #if.
635 (bits_word, BITS_WORD_MAX, BITS_PER_BITS_WORD): Fall back on
636 unsigned char on unusual architectures, so that we no longer
637 assume that the number of bits per bits_word is a power of two or
638 is a multiple of 8 or of CHAR_BIT.
639 (Qt): Add forward decl.
640 (struct Lisp_Bool_Vector): Don't assume EMACS_INT is aligned
641 at least as strictly as bits_word.
642 (bool_vector_data, bool_vector_uchar_data): New accessors.
643 All data structure accesses changed to use them.
644 (bool_vector_words, bool_vector_bitref, bool_vector_ref)
645 (bool_vector_set): New functions.
646 (bool_vector_fill): New decl.
647 (ROUNDUP): Move to alloc.c as described above.
648
69369809
PE
649 Fix recent gnutls changes.
650 * gnutls.c (Fgnutls_boot): Don't assume C99.
651 * process.c (wait_reading_process_output): Fix typo in recent change.
652
194b4d9f
TZ
6532013-11-05 Teodor Zlatanov <tzz@lifelogs.com>
654
655 * process.c (wait_reading_process_output, read_process_output)
656 (send_process): Check gnutls_state is not NULL.
657
658 * gnutls.c (emacs_gnutls_handle_error): Adjust log level for EAGAIN.
659 (Fgnutls_boot): Set process gnutls_p later, after initialization.
660
c8b09927
JD
6612013-11-04 Jan Djärv <jan.h.d@swipnet.se>
662
663 * nsterm.m (init, run, stop:): New methods in EmacsApp for
664 OSX >= 10.9 to prevent memory leak of GCD dispatch source.
665
666 * nsterm.h (EmacsApp): Add shouldKeepRunning and isFirst for
667 OSX >= 10.9.
668
669 * nsfns.m (Fx_create_frame): Fix memory leak.
670
671 * macfont.m (CG_SET_FILL_COLOR_WITH_GC_FOREGROUND)
672 (CG_SET_FILL_COLOR_WITH_GC_BACKGROUND)
673 (CG_SET_STROKE_COLOR_WITH_GC_FOREGROUND): Fix memory leak.
674
d0065ff1
EZ
6752013-11-04 Eli Zaretskii <eliz@gnu.org>
676
677 * xdisp.c (message3_nolog, message_with_string): Encode the string
678 before writing it to the terminal in a non-interactive session.
679
680 * lread.c (openp): If both FILENAME and SUFFIX are unibyte, make
681 sure we concatenate them into a unibyte string.
682
683 * fileio.c (make_temp_name): Encode PREFIX, and decode the
684 resulting temporary name before returning it to the caller.
685 (Fexpand_file_name): If NAME is pure-ASCII and DEFAULT_DIRECTORY
686 is a unibyte string, convert NAME to a unibyte string to ensure
687 that the result is also a unibyte string.
688
689 * emacs.c (init_cmdargs): Use build_unibyte_string to make sure we
690 create unibyte strings from default paths and directory/file
691 names.
692
693 * coding.h (ENCODE_FILE): Do not attempt to encode a unibyte
694 string.
695
696 * callproc.c (init_callproc): Use build_unibyte_string to make
697 sure we create unibyte strings from default paths and
698 directory/file names.
699
700 * buffer.c (init_buffer): Don't store default-directory of
be80645a 701 *scratch* in multibyte form. The original problem which led to
d0065ff1
EZ
702 that is described in
703 http://lists.gnu.org/archive/html/emacs-pretest-bug/2004-11/msg00532.html,
704 but it was solved long ago. (Bug#15260)
705
91f2d272
PE
7062013-11-04 Paul Eggert <eggert@cs.ucla.edu>
707
708 Port to stricter C99 platforms.
709 Especially, C99 prohibits nesting a struct X inside struct Y if
710 struct X has a flexible array member.
711 * alloc.c (struct sdata): New type.
712 (sdata): Implement in terms of struct sdata.
713 Remove u member; all uses replaced by next_vector, set_next_vector.
714 (SDATA_SELECTOR, SDATA_DATA, SDATA_DATA_OFFSET): Adjust to sdata change.
715 (SDATA_DATA_OFFSET): Now a constant, not a macro.
716 (struct sblock): Rename first_data member to data, which is now
717 a flexible array member. All uses changed.
718 (next_vector, set_next_vector, large_vector_vec): New functions.
719 (vector_alignment): New constant.
720 (roundup_size): Make it a multiple of ALIGNOF_STRUCT_LISP_VECTOR, too.
721 (struct large-vector): Now merely a NEXT member, since the old approach
722 ran afoul of stricter C99. All uses changed to use
723 large_vector_vec or large_vector_offset.
724 (large_vector_offset): New constant.
725 * dispnew.c: Include tparam.h, for tgetent.
726 Do not include term.h; no longer needed.
727 * gnutls.c (Fgnutls_boot): Don't continue after calling a _Noreturn.
728 * lisp.h (ENUM_BF) [__SUNPRO_C && __STDC__]: Use unsigned int.
729 (struct Lisp_Vector): Use a flexible array member for contents,
730 instead of a union with a member that is an array of size 1.
731 All uses changed.
732 (ALIGNOF_STRUCT_LISP_VECTOR): New constant, to make up for the
733 fact that the struct no longer contains a union.
734 (struct Lisp_Misc_Any, struct Lisp_Marker, struct Lisp_Overlay)
735 (struct Lisp_Save_Value, struct Lisp_Free):
736 Use unsigned, not int, for spacers, to avoid c99 warning.
737 (union specbinding): Use unsigned, not bool, for bitfield, as
738 bool is not portable to pre-C99 hosts.
739
6dc6d301
GM
7402013-11-04 Glenn Morris <rgm@gnu.org>
741
742 * emacs.c (usage_message): Mention that `-L :...' appends.
743
b0b9e592
GM
7442013-11-02 Glenn Morris <rgm@gnu.org>
745
fca2fccb
GM
746 * Makefile.in (abs_builddir): Remove.
747 (bootstrap_exe): Use relative filename.
748
c617f3d0
GM
749 Use relative filenames in TAGS files.
750 * Makefile.in (abs_srcdir): Remove it again.
751 (.PHONY): Remove frc.
752 (maintainer-clean): No more TAGS-LISP file.
753 (TAGS): Pass relative file names to etags.
754 (../lisp/TAGS): Rename from TAGS-LISP. Work in ../lisp.
755
b0b9e592 756 * Makefile.in (abs_srcdir): New, set by configure.
739f57cd 757 (lispdir): Remove.
b0b9e592
GM
758 (maintainer-clean): Remove pointless echo. That should be in the
759 top-level Makefile, if anywhere. Delete TAGS-LISP.
760 (extraclean): No s/ and m/ directories for some time.
739f57cd
GM
761 (TAGS): Also depend on ctagsfiles3.
762 Remove no-longer-defined S_FILE.
b0b9e592 763 Pass absolute filenames to etags once more.
739f57cd 764 (TAGS-LISP): Replace lispdir with its expansion.
b0b9e592
GM
765 (TAGS-LISP, $(lwlibdir)/TAGS): Correctly pass ETAGS to sub-makes.
766 ($(lwlibdir)/TAGS): Remove useless subshell, check cd return value.
767
0c21fa44
JD
7682013-11-02 Jan Djärv <jan.h.d@swipnet.se>
769
94ae2ad4
SM
770 * xfaces.c (check_lface_attrs, realize_default_face):
771 Add LFACE_DISTANT_FOREGROUND_INDEX (Bug#15788).
39dd7bb2 772 (realize_default_face): Set DISTANT_FOREGROUND to unspecified_fg.
0c21fa44 773
a90e5a33
PE
7742013-11-02 Paul Eggert <eggert@cs.ucla.edu>
775
776 * emacs.c (original_pwd): Remove global var by making it local.
777 (init_cmdargs): New arg ORIGINAL_PWD; caller changed.
778
3c334c14
JD
7792013-11-01 Jan Djärv <jan.h.d@swipnet.se>
780
781 * xfaces.c: Declare color_distance.
782 (QCdistant_foreground): New variable.
783 (NEAR_SAME_COLOR_THRESHOLD): New define.
784 (load_color2): New function.
785 (load_color): Call load_color2.
786 (load_face_colors): Call load_color2 and if distant-color is specified
787 calculate distant and use distant-color if colors are near.
788 (LFACE_DISTANT_FOREGROUND): New define.
789 (merge_face_ref, Finternal_set_lisp_face_attribute)
790 (Finternal_get_lisp_face_attribute)
791 (x_supports_face_attributes_p): Handle distant-foreground similar to
792 foreground.
793 (syms_of_xfaces): DEFSYM QCdistant_foreground.
794
94ae2ad4
SM
795 * dispextern.h (lface_attribute_index):
796 Add LFACE_DISTANT_FOREGROUND_INDEX.
3c334c14 797
d14c81ee
CB
7982013-11-01 Claudio Bley <claudio.bley@googlemail.com>
799
94ae2ad4
SM
800 * image.c (pbm_next_char): New function.
801 See http://netpbm.sourceforge.net/doc/pbm.html for the details.
0e7690de
CB
802 (pbm_scan_number): Use it.
803 (Qlibjpeg_version): New variable.
d14c81ee
CB
804 (syms_of_image): DEFSYM and initialize it.
805
26ca8870
JD
8062013-10-31 Jan Djärv <jan.h.d@swipnet.se>
807
808 * emacs.c (main): Skip -psn args on OSX even if ! isatty (0).
809
8fd07417
GM
8102013-10-31 Glenn Morris <rgm@gnu.org>
811
812 * emacs.c (original_pwd): New char.
813 (main): If using --chdir, store original_pwd.
814 (init_cmdargs): When setting Vinvocation_directory based on a
815 relative argv[0], use original_pwd if set. (Bug#15768)
816
4c9797cb
SM
8172013-10-29 Stefan Monnier <monnier@iro.umontreal.ca>
818
819 * keyboard.c (command_loop_1): If command is nil, call `undefined'.
820
dcd163ac
PE
8212013-10-29 Paul Eggert <eggert@cs.ucla.edu>
822
823 * insdel.c: Fix minor problems found by static checking.
824 (Qregion_extract_function): Now static.
825 (prepare_to_modify_buffer_1): Remove unused locals.
826
3472b6c6
SM
8272013-10-29 Stefan Monnier <monnier@iro.umontreal.ca>
828
829 * xdisp.c (prepare_menu_bars): Call Vpre_redisplay_function.
830 (syms_of_xdisp): Declare pre-redisplay-function.
831 (markpos_of_region): Remove function.
832 (init_iterator, compute_stop_pos, handle_face_prop)
833 (face_before_or_after_it_pos, reseat_to_string)
834 (get_next_display_element, window_buffer_changed)
835 (redisplay_internal, try_cursor_movement, redisplay_window)
836 (try_window_reusing_current_matrix, try_window_id, display_line)
837 (note_mode_line_or_margin_highlight, note_mouse_highlight)
838 (display_string, mouse_face_from_buffer_pos): Remove region handling.
839 * window.h (struct window): Remove field `region_showing'.
840 * dispextern.h (struct it): Remove region_beg/end_charpos.
841 (face_at_buffer_position, face_for_overlay_string)
842 (face_at_string_position): Update prototypes.
843 * xfaces.c (face_at_buffer_position, face_for_overlay_string)
844 (face_at_string_position): Remove `region_beg' and `region_end' args.
845 * fontset.c (Finternal_char_font):
846 * font.c (font_at, font_range): Adjust calls accordingly.
847 * insdel.c (Qregion_extract_function): New var.
848 (syms_of_insdel): Initialize it.
849 (prepare_to_modify_buffer_1): Use it.
850
2d9783e0
DA
8512013-10-29 Dmitry Antipov <dmantipov@yandex.ru>
852
853 Prefer 'unsigned long' to 'long unsigned int' and 'unsigned long int'.
854 * ftxfont.c (ftxfont_get_gcs):
855 * gtkutil.c (xg_set_widget_bg, xg_set_background_color):
856 * xfaces.c (x_free_colors, x_free_dpy_colors)
857 (x_create_gc, unload_color):
858 * xselect.c (x_property_data_to_lisp):
859 * xsettings.c (parse_settings):
860 * xterm.c (x_copy_color, x_alloc_lighter_color, x_setup_relief_color)
861 (get_bits_and_offset): Adjust definition.
862 * frame.c (XParseGeometry): Adjust locals.
863 * lisp.h (toplevel): Adjust EMACS_UINT type definition.
864 * regex.h (toplevel): Likewise for reg_syntax_t.
865
dee4ba59
SM
8662013-10-29 Stefan Monnier <monnier@iro.umontreal.ca>
867
868 * eval.c (run_hook_with_args): Use FUNCTIONP.
869
0085b9be
DA
8702013-10-29 Dmitry Antipov <dmantipov@yandex.ru>
871
872 * xterm.h (struct x_output): For 'black_relief' and 'white_relief'
873 fields, drop 'allocated_p' member and use -1 for uninitialized value.
874 * w32term.h (struct w32_output): Similarly but do not use -1 because...
875 * xfaces.c (unload_color) [HAVE_X_WINDOWS]: ...this function is a no-op
876 on MS-Windows anyway.
877 (free_face_colors): Define only if HAVE_X_WINDOWS and...
878 (free_realized_face): ...adjust user.
879 * xfns.c (Fx_create_frame, x_create_tip_frame): Initialize black and
880 white relief pixels to -1.
881 * xterm.c (x_setup_relief_color, x_free_frame_resources): Adjust users.
882 * w32term.c (w32_setup_relief_color, x_free_frame_resources): Likewise.
883 * dispextern.h (unload_color): Move prototype under HAVE_X_WINDOWS.
884
b7e0ef72
PE
8852013-10-28 Paul Eggert <eggert@cs.ucla.edu>
886
887 * dispextern.h, image.c (x_bitmap_height, x_bitmap_width): Now static.
888 * xfaces.c (load_pixmap): Omit last two args, which are always NULL
889 in practice now. All callers changed.
890
5d3311e5
DA
8912013-10-28 Dmitry Antipov <dmantipov@yandex.ru>
892
893 * dispextern.h (struct face): Use bitfields for 'underline_type'
894 and 'box' members. Remove set-but-unused members 'pixmap_w' and
895 'pixmap_h'. If not HAVE_WINDOW_SYSTEM, also remove dummy
896 'stipple' member. Move 'lface' member up to help...
897 * xfaces.c (make_realized_face): ...this function to find and
898 clear just the members that need clearing.
899 (load_face_colors, realize_x_face):
900 * xdisp.c (extend_face_to_end_of_line): Adjust user.
901
0f771d26
DA
9022013-10-27 Dmitry Antipov <dmantipov@yandex.ru>
903
904 * xftfont.c (struct xftfont_info): Remove set-but-unused
905 'screen' member.
906 (xftfont_open): Adjust user.
907 (xftfont_get_colors): Remove useless prototype.
908
c556b44b
EZ
9092013-10-26 Eli Zaretskii <eliz@gnu.org>
910
911 * emacs.c (Fdump_emacs): Encode FILENAME and SYMFILE arguments
912 before passing them to 'unexec'. (Bug#15260)
913
2a03e2bc
XF
9142013-10-26 Xue Fuqiao <xfq.free@gmail.com>
915
916 * fringe.c (set_fringe_bitmap_face): Add usage note from lispref.
917
6702c559
EZ
9182013-10-25 Eli Zaretskii <eliz@gnu.org>
919
f67599d5
EZ
920 * w32uniscribe.c (uniscribe_close): Adjust the argument list to
921 the changed signature of the font driver's 'close' method.
922
6702c559
EZ
923 * w32font.h (w32font_close): Adjust the prototype to the change in
924 function definition.
925
926 * w32font.c (w32font_close): Reintroduce deleted declaration of i.
927
928 * w32uniscribe.c (uniscribe_close): Adapt the call to
929 w32font_close to its new prototype.
930
78e0b35c
DA
9312013-10-25 Dmitry Antipov <dmantipov@yandex.ru>
932
933 Omit unused frame argument of font API's close function.
934 * font.h (struct font): Drop frame argument. Adjust comment.
935 * font.c (font_clear_cache, font_close_object): Adjust users.
936 * ftfont.c (ftfont_close):
937 * ftxfont.c (ftxfont_close):
938 * macfont.m (macfont_close):
939 * nsfont.m (nsfont_close):
940 * w32font.c (w32font_close):
941 * xfont.c (xfont_close):
86bd985e
DA
942 * xftfont.c (xftfont_close): Adjust driver-specific close functions,
943 tweak comments and make functions safe if called more than once for
944 the same font object.
945
946 Perform font-specific cleanup when font object is swept by GC. See
947 http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00740.html.
948 * alloc.c (cleanup_vector): New function.
949 (sweep_vector): Call it for each reclaimed vector object.
950 * font.h (struct font): Adjust comment.
78e0b35c 951
eb9a3661
GM
9522013-10-24 Glenn Morris <rgm@gnu.org>
953
954 * Makefile.in (abs_top_srcdir): New, set by configure.
955
df24a230
DA
9562013-10-23 Dmitry Antipov <dmantipov@yandex.ru>
957
66b238df 958 Adjust recent font-related changes to fix bug#15686.
df24a230 959 * alloc.c (mark_object) [HAVE_WINDOW_SYSTEM]: If marked frame
66b238df 960 is a live window system frame, mark its default font too.
df24a230 961
b8e3b0a9
GM
9622013-10-23 Glenn Morris <rgm@gnu.org>
963
964 * Makefile.in (RUN_TEMACS): Make relative (again).
965 ($(leimdir)/leim-list.el, .el.elc, $(lispsource)/loaddefs.el)
966 (bootstrap-emacs$(EXEEXT)):
967 Quote entities that might contain whitespace.
968
e4ea223d
PE
9692013-10-23 Paul Eggert <eggert@cs.ucla.edu>
970
971 Port to Solaris 10 and its bundled GCC.
972 Problem reported by Timothy C. Burt.
973 * floatfns.c (isfinite, isnan): Redefine unconditionally.
974
fc54bdd5
DA
9752013-10-21 Dmitry Antipov <dmantipov@yandex.ru>
976
977 Do not allow font caches to grow too large.
978 * alloc.c (compact_font_cache_entry, compact_font_caches):
979 New functions or stub if not HAVE_WINDOW_SYSTEM.
980 (compact_undo_list): Factor out from Fgarbage_collect.
981 Add comment.
982 (mark_face_cache): Mark face font. Move down to avoid
983 extra prototypes.
984 (mark_terminals): Do not mark font cache here.
985 (Fgarbage_collect): Call compaction functions described
986 above. Adjust comment.
987
aca5fcdc
JD
9882013-10-20 Jan Djärv <jan.h.d@swipnet.se>
989
a9f8deec
JD
990 * emacs.c (main): On Cocoa, if GUI session and 0 is not a tty,
991 chdir to HOME (bug#15607).
992
aca5fcdc
JD
993 * nsterm.m (Qcocoa, Qgnustep): New variables.
994 (syms_of_nsterm): Defsym Qcocoa, Qgnustep. Fprovide appropriate one.
d4816ab3 995 (ns_get_color): Make selection color work for GNUStep also.
aca5fcdc 996
c4e3099f
EZ
9972013-10-18 Eli Zaretskii <eliz@gnu.org>
998
999 * keyboard.c (make_lispy_event): Remove GPM-specific code that
1000 handles mouse clicks. Instead, let GPM use the same code as all
1001 the other mice use. See the discussion starting at
1002 http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00521.html
1003 for the details of the problem with the menu bar this fixes.
1004
d141d701
DA
10052013-10-18 Dmitry Antipov <dmantipov@yandex.ru>
1006
1007 Remove port-specific display name lists to avoid extra
1008 complexity and data duplication with display info lists.
1009 * xterm.h (x_display_name_list): Remove declaration.
1010 * xterm.c (x_display_name_list): Remove.
1011 (x_term_init, x_delete_display, syms_of_xterm): Adjust users.
1012 * xfns.c (x_display_info_for_name, Fx_display_list):
1013 Likewise. Use x_display_list where appropriate.
1014 * w32term.h (w32_display_name_list): Remove declaration.
1015 * w32term.c (w32_display_name_list): Remove.
1016 (w32_initialize_display_info, x_delete_display, syms_of_w32term):
1017 Adjust users.
1018 * w32fns.c (x_display_info_for_name, Fx_display_list):
1019 Likewise. Use x_display_list where appropriate.
1020 * nsterm.h (ns_display_name_list): Remove declaration.
1021 * nsterm.m (ns_display_name_list): Remove.
1022 (ns_term_init, syms_of_nsterm): Adjust users.
1023 * nsfns.m (ns_display_info_for_name, Fx_display_list):
1024 Likewise. Use x_display_list where appropriate.
1025 * termhooks.h (TERMINAL_FONT_CACHE): New macro.
1026 * alloc.c (toplevel) [HAVE_WINDOW_SYSTEM]: Include TERM_HEADER.
1027 (mark_terminals): Mark per-terminal font cache.
1028
ef566920
BR
10292013-10-17 Barry O'Reilly <gundaetiapo@gmail.com>
1030
1031 Don't run timers in input-pending-p. Its new check-timers param
1032 provides the prior behavior. (Bug#15045).
1033 * src/keyboard.c (Finput_pending_p): Accept optional check-timers
1034 param.
1035
f2752e01
PE
10362013-10-17 Paul Eggert <eggert@cs.ucla.edu>
1037
3d798ba7
PE
1038 Make some functions static in non-Microsoft builds.
1039 On my platform (Fedora 19 x86-64), this shrinks the
1040 Emacs executable (text+data) by 0.25%.
1041 * dispextern.h (erase_phys_cursor) [!WINDOWSNT]:
1042 (load_color) [!MSDOS]:
1043 * gnutls.h (emacs_gnutls_transport_set_errno) [!WINDOWSNT]:
1044 * keyboard.h (make_ctrl_char) [!WINDOWSNT]:
1045 * lisp.h (check_existing):
1046 * process.h (conv_sockaddr_to_lisp, network_interface_list)
1047 (network_interface_info) [!WINDOWSNT]:
1048 * termhooks.h (encode_terminal_code) [!WINDOWSNT]:
1049 Remove extern decls.
1050 * fileio.c (check_existing):
1051 * keyboard.c (make_ctrl_char) [!WINDOWSNT]:
1052 * process.c (conv_sockaddr_to_lisp, network_interface_list)
1053 (network_interface_info) [!WINDOWSNT]:
1054 * term.c (encode_terminal_code) [!WINDOWSNT]:
1055 * xdisp.c (erase_phys_cursor) [!WINDOWSNT]:
1056 * xfaces.c (load_color) [!MSDOS]:
1057 Now static.
1058 * fileio.c (check_existing, check_executable, check_writable):
1059 * process.c (network_interface_list, network_interface_info):
1060 Move earlier, so that we don't need forward decls.
1061 * gnutls.c (fn_gnutls_transport_set_errno)
1062 (emacs_gnutls_transport_set_errno) [!WINDOWNT]:
1063 Remove; unused.
1064 * w32.c (init_environment): Use faccessat rather than
1065 check_existing, partly for consistency with the rest of the code
1066 in this file, partly so that check_existing can be static.
1067
bb9937df
PE
1068 Make VALMASK visible to GDB even if clang is used (Bug#15574).
1069 * emacs.c (MAIN_PROGRAM): New macro.
1070 * lisp.h (DEFINE_GDB_SYMBOL_BEGIN, DEFINE_GDB_SYMBOL_END): New macros.
1071 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Use them.
1072
f2752e01
PE
1073 bool vector int width fixes
1074 * data.c (bool_vector_spare_mask, Fbool_vector_count_matches)
1075 (Fbool_vector_count_matches_at):
1076 Use EMACS_INT, not ptrdiff_t, to record bit counts, as a bit count
1077 can exceed PTRDIFF_MAX, at least in theory.
1078 (Fbool_vector_count_matches_at):
1079 Use int, not ptrdiff_t, to record a value that can't exceed INT_MAX.
1080
0a2b8e3c
PE
10812013-10-16 Paul Eggert <eggert@cs.ucla.edu>
1082
1083 * process.h (conv_sockaddr_to_lisp): New decl, for newly-extern func.
1084 (struct sockaddr): Add forward decl, for platforms that lack it.
1085
2318fcca
JD
10862013-10-16 Jan Djärv <jan.h.d@swipnet.se>
1087
1088 * nsselect.m (ns_string_from_pasteboard): Remove Fquit, just return
1089 Qnil (Bug#15628).
1090
b911a94d
EZ
10912013-10-16 Eli Zaretskii <eliz@gnu.org>
1092
3dffe395
EZ
1093 * w32.c (network_interface_get_info, network_interface_list)
1094 (network_interface_info): New functions. (Bug#15610)
1095 (GetAdaptersInfo_Proc): New typedef.
1096 (get_adapters_info): New wrapper function.
1097 (globals_of_w32): Initialize g_b_init_get_adapters_info.
1098
dee4ba59
SM
1099 * process.h (network_interface_list, network_interface_info):
1100 New prototypes.
3dffe395
EZ
1101
1102 * process.c (conv_sockaddr_to_lisp): Now externally-visible.
1103 (Fnetwork_interface_list, Fnetwork_interface_info): Define for
1104 all systems. Return non-nil for systems that HAVE_NET_IF_H and
1105 for WINDOWSNT. Doc fix.
1106 (syms_of_process): Defsubr Snetwork_interface_list and
1107 Snetwork_interface_info unconditionally.
1108
b911a94d
EZ
1109 * menu.c (have_boxes): Fix redundant simulation of radio buttons
1110 in NS GUI sessions. (Bug#15629)
1111
04d47595
DA
11122013-10-16 Dmitry Antipov <dmantipov@yandex.ru>
1113
1114 * fns.c (Fstring_as_unibyte): Use xlispstrdup.
1115
5e15c624
PE
11162013-10-15 Paul Eggert <eggert@cs.ucla.edu>
1117
1118 * print.c (print_object): Print " ..." when truncating bool vectors.
1119
5d64d770
EZ
11202013-10-15 Eli Zaretskii <eliz@gnu.org>
1121
1122 * w32inevt.c (do_mouse_event): Support mouse wheel and all the 5
1123 standard mouse buttons.
1124
1125 * termhooks.h (struct input_event): Remove incorrect commentary.
1126
c911772e
PE
11272013-10-15 Paul Eggert <eggert@cs.ucla.edu>
1128
454e2fb9
PE
1129 Disallow bool vector operations on mixed-length operands.
1130 The old behavior left garbage in the result vector sometimes,
1131 and didn't seem to be useful.
1132 * data.c (Qwrong_length_argument): New static var.
1133 (wrong_length_argument): New function.
1134 (bool_vector_binop_driver): Check that args agree in length.
1135
c911772e
PE
1136 * keyboard.c, keyboard.h (all_kboards): Now static.
1137
57f623e2
XF
11382013-10-15 Xue Fuqiao <xfq.free@gmail.com>
1139
1140 * buffer.c (syms_of_buffer) <buffer-invisibility-spec>: Add usage
1141 note from the lispref.
1142
47c4d1e9
DA
11432013-10-15 Dmitry Antipov <dmantipov@yandex.ru>
1144
1145 * nsterm.h (struct ns_display_info): Remove set-but-unused
1146 member image_cache (image caches are per-terminal anyway).
1147 (FRAME_X_IMAGE_CACHE): Remove.
1148 * nsterm.m (ns_initialize_display_info): Adjust user.
1149
ccd4a783
EZ
11502013-10-14 Eli Zaretskii <eliz@gnu.org>
1151
279066b2
EZ
1152 * w32proc.c: Include mingw_time.h.
1153
1154 * w32.c: Include mingw_time.h.
1155
ccd4a783
EZ
1156 Implement scrolling of TTY menus when the screen is too short.
1157
1158 * term.c (tty_menu_display): Accept an additional argument, the
1159 menu item from which to start displaying the menu. Account for
1160 the value of Y when limiting the menu to the number of available
1161 screen lines.
1162 (mi_result): New enumeration.
1163 (read_menu_input): Return enumerated value. When the y coordinate
1164 hits min_y or max_y, return scroll indication instead of wrapping
1165 around the menu.
1166 (tty_menu_activate): Handle the scrolling indications from
1167 read_menu_input. Compute the first menu item to display and pass
1168 it to tty_menu_display.
1169
77e3b1b7
DA
11702013-10-14 Dmitry Antipov <dmantipov@yandex.ru>
1171
1172 * termhooks.h (FRAME_MUST_WRITE_SPACES, FRAME_LINE_INS_DEL_OK)
1173 (FRAME_CHAR_INS_DEL_OK, FRAME_SCROLL_REGION_OK)
1174 (FRAME_SCROLL_REGION_COST, FRAME_MEMORY_BELOW_FRAME):
1175 Adjust to match the change described below.
1176 (struct terminal): Move must_write_spaces, line_ins_del_ok,
1177 char_ins_del_ok, scroll_region_ok, scroll_region_cost and
1178 memory_below_frame members to...
1179 * termchar.h (struct tty_display_info): ...here because they're
1180 relevant only on TTYs. Prefer unsigned bitfield where appropriate.
1181 * term.c (init_tty):
1182 * nsterm.m (ns_create_terminal):
1183 * w32term.c (w32_create_terminal):
1184 * xterm.c (x_create_terminal): Adjust users.
1185 * dispnew.c (line_hash_code, line_draw_cost): Pass frame arg
1186 to filter out non-TTY frames. Adjust comment.
1187 (scrolling): Adjust user. Prefer eassert for debugging check.
1188
e558436b
DA
11892013-10-14 Dmitry Antipov <dmantipov@yandex.ru>
1190
1191 * xfaces.c (PT_PER_INCH): Remove unused macro.
1192 * termhooks.h (struct terminal): Remove set-but-unused
1193 member fast_clear_end_of_line.
1194 (FRAME_FAST_CLEAR_END_OF_LINE): Remove.
1195 * nsterm.m (ns_create_terminal):
1196 * term.c (init_tty):
1197 * w32term.c (w32_create_terminal):
1198 * xterm.c (x_create_terminal): Adjust users.
1199
1c0a7493
PE
12002013-10-14 Paul Eggert <eggert@cs.ucla.edu>
1201
1202 * lisp.h (bool_vector_size): New function.
1203 All uses of XBOOL_VECTOR (x)->size changed to bool_vector_size (x).
1204 * data.c (bool_vector_spare_mask, bool_vector_binop_driver)
1205 (Fbool_vector_not, Fbool_vector_count_matches_at):
1206 Remove uses of 'eassume' that should no longer be needed,
1207 because they are subsumed by the 'eassume' in bool_vector_size.
1208
567f95ec
EZ
12092013-10-12 Eli Zaretskii <eliz@gnu.org>
1210
1211 * image.c (GIFLIB_MAJOR, GIFLIB_MINOR, GIFLIB_RELEASE): Move back
1212 after inclusion of gif_lib.h, thus fixing compiler warnings caused
1213 by 2013-10-10T19:15:33Z!eggert@cs.ucla.edu.
1214
abe02020
EZ
12152013-10-11 Eli Zaretskii <eliz@gnu.org>
1216
1217 * xdisp.c (deep_copy_glyph_row): Handle the case that FROM and TO
1218 have different dimensions. (Bug#15575)
1219
1220 * dispnew.c (fill_up_frame_row_with_spaces): Now has external
1221 visibility.
1222
1223 * dispextern.h (fill_up_frame_row_with_spaces): Add prototype.
1224
9428abbf
DA
12252013-10-11 Dmitry Antipov <dmantipov@yandex.ru>
1226
1227 * term.c (tty_menu_show): Never return with unbalanced
1228 specpdl. Use eassert for debugging check. Adjust style.
1229
052bac0b
EZ
12302013-10-11 Eli Zaretskii <eliz@gnu.org>
1231
1232 * term.c (read_menu_input): Make selection of menu items
1233 cyclical. Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
1234 (tty_menu_activate): Fix off-by-one error when computing max_y.
1235
e1f9f9e3
TZ
12362013-10-11 Teodor Zlatanov <tzz@lifelogs.com>
1237
1238 * gnutls.c (gnutls_audit_log_function): Add function for GnuTLS
1239 audit logging (only used with GnuTLS 3.x) and enable it.
1240
7d563e36
DA
12412013-10-11 Dmitry Antipov <dmantipov@yandex.ru>
1242
1243 * dispnew.c (redraw_frame): Remove useless #ifdef because
1244 FRAME_MSDOS_P is a compile-time zero everywhere except MS-DOS.
1245 Also, move TTY fflush to...
1246 * term.c (tty_update_end): ...this function.
1247
48621e69
EZ
12482013-10-11 Eli Zaretskii <eliz@gnu.org>
1249
1250 * xdisp.c (display_tty_menu_item): Make sure we never write beyond
1251 the end of the frame's glyph matrix. (Bug#15575)
1252
1253 * term.c (tty_menu_display): Don't move cursor while overwriting
1254 frame's glyphs with menu items. Limit the number of items
1255 displayed to what can be shown on the available screen lines,
1256 excluding the echo area.
1257 (tty_menu_activate): Limit the Y coordinate allowed by
1258 read_menu_input to the last screen line used for menu display.
1259
b9ff995e
PE
12602013-10-11 Paul Eggert <eggert@cs.ucla.edu>
1261
1262 * lisp.h (eassume): New macro.
1263 Also, include <verify.h>, for 'assume'.
1264 * alloc.c (bool_vector_payload_bytes, Fmake_bool_vector)
1265 (vroundup, vector_nbytes):
1266 * data.c (bool_vector_spare_mask, bool_vector_binop_driver)
1267 (Fbool_vector_not, Fbool_vector_count_matches)
1268 (Fbool_vector_count_matches_at):
1269 Use eassume, not eassert.
1270 * casetab.c (set_identity, shuffle):
1271 * composite.c (composition_gstring_put_cache):
1272 * dispnew.c (update_frame_1):
1273 * ftfont.c (ftfont_shape_by_flt):
1274 * image.c (gif_load):
1275 * intervals.c (offset_intervals):
1276 * macfont.m (macfont_shape):
1277 Remove calls to 'assume' that are no longer needed, because
1278 --enable-gcc-warnings no longer generates bogus warnings
1279 when these calls are removed.
1280
33ac0265
DA
12812013-10-11 Dmitry Antipov <dmantipov@yandex.ru>
1282
1283 * xdisp.c (deep_copy_glyph_row): Remove unused locals.
1284
ee041f2d
SM
12852013-10-10 Stefan Monnier <monnier@iro.umontreal.ca>
1286
1287 * fileio.c (Fsubstitute_in_file_name): Use substitute-env-in-file-name.
1288 (Qsubstitute_env_in_file_name): New var.
1289 (syms_of_fileio): Define it.
1290
00036e1d
EZ
12912013-10-10 Eli Zaretskii <eliz@gnu.org>
1292
1293 * xdisp.c (deep_copy_glyph_row): Assert that the 'used' counts of
1294 FROM and TO are identical. Copy only the glyphs of TEXT_AREA.
1295 (Bug#15575)
1296
1297 * term.c (save_and_enable_current_matrix): Don't allocate and
1298 don't save margin areas.
1299 (restore_desired_matrix): Don't restore margin areas.
1300 (free_saved_screen): Don't free margin areas.
1301
99149625
PE
13022013-10-10 Paul Eggert <eggert@cs.ucla.edu>
1303
1304 * image.c: Pacify --enable-gcc-warnings.
1305 (GIFLIB_MAJOR, GIFLIB_MINOR, GIFLIB_RELEASE, fn_GifErrorString):
1306 #define only if used.
1307
a5dab159
EZ
13082013-10-10 Eli Zaretskii <eliz@gnu.org>
1309
1310 * image.c (GIFLIB_MAJOR): Define to 4 if undefined.
1311 (GIFLIB_MINOR, GIFLIB_RELEASE): Define to zero if undefined.
1312 (GifErrorString) [GIFLIB_MAJOR >= 5]: Define a function pointer.
1313 (gif_load): For giflib v5.x and later, display the error message
1314 produced by giflib when its functions fail.
1315 (syms_of_image) <Qlibgif_version> [HAVE_NTGUI]: New DEFSYM.
1316 (Bug#15531)
1317
6bbe6da8
DA
13182013-10-10 Dmitry Antipov <dmantipov@yandex.ru>
1319
1320 * keyboard.c (last_event_timestamp): Remove. For X selection and
1321 GTK popup menus, it may be obtained from per-frame X display info.
1322 (kbd_buffer_store_event_hold, kbd_buffer_get_event)
1323 (process_special_events): Adjust users.
1324 * keyboard.h (last_event_timestamp): Remove declaration.
1325 * xmenu.c (xmenu_show, create_and_show_popup_menu): Lost last arg.
1326 Use FRAME_DISPLAY_INFO (f)->last_user_time for gtk_menu_popup.
1327 * menu.h (xmenu_show): Adjust prototype.
1328 * menu.c (Fx_popup_menu): Adjust user.
1329 * xselect.c (x_own_selection, x_get_foreign_selection)
1330 (Fx_disown_selection_internal): Use dpyinfo->last_user_time.
1331
1afcba63
DA
13322013-10-10 Dmitry Antipov <dmantipov@yandex.ru>
1333
1334 * keyboard.c (init_kboard): Now static. Add arg
1335 to denote window system. Adjust comment.
1336 (init_keyboard): Adjust user.
1337 (allocate_kboard): New function.
1338 (syms_of_keyboard):
1339 * nsterm.m (ns_term_init):
1340 * term.c (init_tty):
1341 * w32term.c (w32_create_terminal):
1342 * xterm.c (x_term_init): Use it.
1343 * keyboard.h (init_kboard): Remove prototype.
1344 (allocate_kboard): Add prototype.
1345
f3606ef7
BF
13462013-10-10 Barry Fishman <barry_fishman@acm.org> (tiny change)
1347
1348 * image.c (GIFLIB_MAJOR): Ensure it's defined.
1349 (DGifOpen, DGifOpenFileName): Handle giflib 5 syntax. (Bug#15531)
1350
e20bb249
PE
13512013-10-09 Paul Eggert <eggert@cs.ucla.edu>
1352
1353 * fns.c (sxhash_bool_vector): Fix buffer read overrun.
1354
9f6a18d2
EZ
13552013-10-09 Eli Zaretskii <eliz@gnu.org>
1356
1357 * term.c (tty_menu_activate): Flush the output stream after
1358 showing the cursor, and don't mark the frame garbaged at exit from
1359 the function. Fixes redisplay glitches when moving from one menu
1360 to another.
1361
0486beac
JD
13622013-10-09 Jan Djärv <jan.h.d@swipnet.se>
1363
1364 * nsfns.m (Fns_convert_utf8_nfd_to_nfc): Check input for valid UTF-8
1365 or throw error (Bug#15570).
1366
0d5d3029
PE
13672013-10-09 Paul Eggert <eggert@cs.ucla.edu>
1368
ab7ce978
PE
1369 * intervals.c (temp_set_point_both): Move test into 'eassert',
1370 for speed.
1371
0d5d3029
PE
1372 * lisp.h (eassert): Don't use 'assume'.
1373 Sometimes 'assume' wins in performance, and sometimes it loses,
1374 so it shouldn't be used all the time. Perhaps we need two
1375 flavors of 'eassert', one for where 'assume' is far more likely
1376 to help or to hurt; but that can be done later.
1afcba63 1377 Problem reported by Dmitry Antipov in
0d5d3029
PE
1378 <http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00276.html>.
1379 Also, don't include <verify.h>; no longer needed.
1380
fa022909
GM
13812013-10-09 Glenn Morris <rgm@gnu.org>
1382
1383 * eval.c (Fcond): Doc tweak.
1384
051277bf
EZ
13852013-10-09 Eli Zaretskii <eliz@gnu.org>
1386
1387 * xfaces.c (x_free_gc) [HAVE_X_WINDOWS, HAVE_NTGUI]: Don't pass
1388 expressions with side effects to eassert. (Bug#15565)
1389
79804536
SM
13902013-10-09 Stefan Monnier <monnier@iro.umontreal.ca>
1391
1392 * fns.c (hashfn_user_defined): Allow hash functions to return any
1393 Lisp_Object.
1394
3b158d11
PE
13952013-10-08 Paul Eggert <eggert@cs.ucla.edu>
1396
1397 Fix minor problems found by static checking.
1398 * dispnew.c (save_current_matrix): Omit unnecessary casts.
1399 * dispnew.c (update_frame_with_menu): Mark debug local as used.
1400 * keyboard.c, keyboard.h (Qmouse_movement): Now static.
1401 * keyboard.c (read_menu_command): Remove unused local.
1402 * lisp.h (read_menu_command): New decl.
1403 * menu.c, menu.h (menu_item_width): Arg is now unsigned char *, for
1404 benefit of STRING_CHAR_AND_LENGTH. All uses changed.
1405 Return ptrdiff_t, not int.
1406 * term.c (tty_menu_struct): 'allocated' member is now ptrdiff_t,
1407 not int, for benefit of xpalloc.
1408 (tty_menu_create, tty_menu_make_room): Simplify by using xzalloc
1409 and xpalloc.
1410 (have_menus_p): Remove; unused.
1411 (tty_menu_add_pane, tty_menu_add_selection): Change signedness of
1412 local char * pointer to pacify STRING_CHAR_AND_LENGTH.
1413 (tty_menu_add_selection, tty_menu_locate, tty_meny_destroy):
1414 Now static.
1415 (save_and_enable_current_matrix): Omit unnecessary casts.
1416 (read_menu_input): Omit local extern decl (now in lisp.h).
1417 Don't access uninitialized storage if mouse_get_xy fails.
1418 (tty_menu_activate): Mark local as initialized, for lint.
1419 (tty_menu_activate, tty_meny_show): Remove unused locals.
1420
4ed77415
EZ
14212013-10-08 Eli Zaretskii <eliz@gnu.org>
1422
1423 Support menus on text-mode terminals.
1424 * xterm.h (xw_popup_dialog): Add prototype.
1425
1426 * xmenu.c (Fx_popup_dialog): Function moved to menu.c.
1427 (xmenu_show): Block input here, instead in Fx_popup_menu.
1428 (xw_popup_dialog): New function, with X-specific bits of popup
1429 dialogs.
1430
dee4ba59
SM
1431 * xdisp.c (deep_copy_glyph_row, display_tty_menu_item):
1432 New functions.
4ed77415
EZ
1433
1434 * window.c (Fset_window_configuration): Use run-time tests of the
1435 frame type instead of compile-time conditionals, when menu-bar
1436 lines are considered.
1437
1438 * w32term.h (w32con_hide_cursor, w32con_show_cursor)
1439 (w32_popup_dialog): New prototypes.
1440
1441 * w32menu.c (Fx_popup_dialog): Function deleted.
1442 (w32_popup_dialog): New function, with w32 specific bits of popup
1443 dialogs. Block input here.
1444
1445 * w32inevt.c (w32_console_read_socket): Minor change to add
1446 debugging TTY events.
1447
1448 * w32fns.c (show_hourglass): If returning early because the frame
1449 is not a GUI frame, unblock input.
1450
1451 * w32console.c (w32con_hide_cursor, w32con_show_cursor, cursorX)
1452 (cursorY): New functions.
1453
1454 * termhooks.h (cursorX, cursorY): Prototypes of functions on
1455 WINDOWSNT, macros that call curX and curY elsewhere.
1456
1457 * termchar.h (struct tty_display_info) <showing_menu>: New flag.
1458
1459 * term.c (tty_hide_cursor, tty_show_cursor) [WINDOWSNT]: Call w32
1460 specific function to hide and show cursor on a text-mode terminal.
1461 (tty_menu_struct, struct tty_menu_state): New structures.
1462 (tty_menu_create, tty_menu_make_room, tty_menu_search_pane)
1463 (tty_menu_calc_size, mouse_get_xy, tty_menu_display)
1464 (have_menus_p, tty_menu_add_pane, tty_menu_add_selection)
1465 (tty_menu_locate, save_and_enable_current_matrix)
1466 (restore_desired_matrix, screen_update, read_menu_input)
1467 (tty_menu_activate, tty_menu_destroy, tty_menu_help_callback)
1468 (tty_pop_down_menu, tty_menu_last_menubar_item)
1469 (tty_menu_new_item_coords, tty_menu_show): New functions.
1470 (syms_of_term): New DEFSYMs for tty-menu-* symbols.
1471
1472 * nsterm.h (ns_popup_dialog): Adjust prototype.
1473
1474 * nsmenu.m (ns_menu_show): Block and unblock input here, instead
1475 of in x-popup-menu.
1476 (ns_popup_dialog): Adapt order of arguments to the other
1477 *_menu_show implementations.
1478 (Fx_popup_dialog): Function deleted.
1479
1480 * msdos.c (x_set_menu_bar_lines): Delete unused function.
1481
1482 * menu.h (tty_menu_show, menu_item_width): provide prototypes.
1483
1484 * menu.c (have_boxes): New function.
1485 (single_keymap_panes): Use it instead of a compile-time
1486 conditional.
1487 (single_menu_item): Use run-time tests of the frame type instead
1488 of compile-time conditionals.
1489 (encode_menu_string): New function.
1490 (list_of_items, list_of_panes): Use it instead of ENCODE_STRING
1491 the macro, since different types of frame need different encoding
1492 of menu items.
1493 (digest_single_submenu): Use run-time tests of frame type instead
1494 of, or in addition to, compile-time conditionals.
1495 (menu_item_width, Fmenu_bar_menu_at_x_y): New functions.
1496 (Fx_popup_menu): Detect when the function is called from keyboard
dee4ba59
SM
1497 on a TTY. Don't barf when invoked on a text-mode frame.
1498 Check frame type at run time, instead of compile-time conditionals for
1499 invoking terminal-specific menu-show functions.
1500 Call tty_menu_show on text-mode frames.
1501 (Fx_popup_dialog): Move here from xmenu.c. Test frame types at
4ed77415
EZ
1502 run time to determine which alternative to invoke; support dialogs
1503 on TTYs.
1504
1505 * keyboard.h <Qmouse_movement>: Declare.
1506
1507 * keyboard.c <Qmouse_movement>: Now extern.
1508 <Qecho_keystrokes>: New static variable.
1509 (read_key_sequence): Accept an additional argument, a flag to
1510 prevent redisplay during reading of the key sequence. All callers
1511 changed.
1512 (read_menu_command): New function.
1513 (read_char): When COMMANDFLAG is -2, do not redisplay and do not
1514 autosave.
1515 (toolkit_menubar_in_use): New function.
1516 (make_lispy_event): Use it instead of a compile-time test.
1517
1518 * fns.c (Fyes_or_no_p) [HAVE_MENUS]: Don't condition on
1519 window-system being available.
1520
1521 * editfns.c (Fmessage_box) [HAVE_MENUS]: Don't condition the call
1522 to x-popup-dialog on the frame type, they all now support popup
1523 dialogs.
1524
1525 * dispnew.c (save_current_matrix): Save the margin areas.
1526 (restore_current_matrix): Restore margin areas.
1527 (update_frame_with_menu): New function.
1528
1529 * dispextern.h (display_tty_menu_item, update_frame_with_menu):
1530 Add prototypes.
1531
1532 * alloc.c (make_save_ptr): Now compiled unconditionally.
1533
ecab13d4
DA
15342013-10-08 Dmitry Antipov <dmantipov@yandex.ru>
1535
1536 * dispnew.c (set_window_update_flags): Add buffer arg. Adjust comment.
1537 (redraw_frame, update_frame): Adjust users.
1538 * dispextern.h (set_window_update_flags): Adjust prototype.
1539 * xdisp.c (redisplay_internal): When updating all frames with zero
1540 windows_or_buffers_changed, assume that only the windows that shows
1541 current buffer should be really updated.
1542
f8498081
DA
15432013-10-08 Dmitry Antipov <dmantipov@yandex.ru>
1544
1545 Do not allocate huge temporary memory areas and objects while encoding
1546 for file I/O, thus reducing an enormous memory usage for large buffers.
1547 See http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00180.html.
1548 * coding.h (struct coding_system): New member raw_destination.
1549 * coding.c (setup_coding_system): Initialize it to zero.
1550 (encode_coding_object): If raw_destination is set, do not create
1551 dst_object. Add comment.
1552 * fileio.c (toplevel): New constant E_WRITE_MAX.
1553 (e_write): Do not encode more than E_WRITE_MAX characters per one loop
1554 iteration. Use raw_destination if E_WRITE_MAX characters is encoded.
1555
d180bde8
JD
15562013-10-08 Jan Djärv <jan.h.d@swipnet.se>
1557
1558 * nsterm.m (windowDidExitFullScreen:):
1559 (toggleFullScreen:): Change NS_IMPL_COCOA to HAVE_NATIVE_FS.
1560
87c4314d
PE
15612013-10-08 Paul Eggert <eggert@cs.ucla.edu>
1562
18978362
PE
1563 Fix race where emacs aborts when sent SIGTERM (Bug#15534).
1564 * keyboard.c (unblock_input_to): Don't process pending signals
1565 if a fatal error is in progress.
1566
87c4314d
PE
1567 * lisp.h (bits_word, BITS_WORD_MAX): New type and macro.
1568 All uses of 'size_t' and 'SIZE_MAX' changed to use them, when
1569 they're talking about words in Lisp bool vectors.
1570 (BITS_PER_BITS_WORD): Rename from BITS_PER_SIZE_T. All uses changed.
1142cc2a
PE
1571 * data.c (popcount_bits_word): Rename from popcount_size_t.
1572 (bits_word_to_host_endian): Rename from size_t_to_host_endian.
1573 All uses changed.
87c4314d 1574
595e113b
PE
15752013-10-07 Paul Eggert <eggert@cs.ucla.edu>
1576
1577 Improve support for popcount and counting trailing zeros (Bug#15550).
1578 * data.c: Include <count-one-bits.h>, <count-trailing-zeros.h>.
1579 (USE_MSC_POPCOUNT, POPCOUNT_STATIC_INLINE)
1580 (NEED_GENERIC_POPCOUNT, popcount_size_t_generic)
1581 (popcount_size_t_msc, popcount_size_t_gcc):
1582 Remove; now done by Gnulib.
1583 (popcount_size_t): Now a macro that defers to Gnulib.
1584 (count_trailing_zero_bits): Return int, for consistency with
1585 Gnulib and because Emacs prefers signed to unsigned int.
1586 Don't assume that size_t is either unsigned int or unsigned long
1587 or unsigned long long.
1588 (size_t_to_host_endian): Do not assume that size_t is either
1589 exactly 32 or exactly 64 bits wide.
1590 * lisp.h (BITS_PER_SIZE_T): Define consistently with BITS_PER_LONG
1591 etc., so that it's now an enum constant, not a macro.
1592 No need to assume that it's either 32 or 64.
1593
ddb317ba
JD
15942013-10-07 Jan Djärv <jan.h.d@swipnet.se>
1595
1596 * nsterm.m (windowDidEnterFullScreen:): setPresentationOptions only
1597 on >= 10.7.
1598
bd74250f
DA
15992013-10-07 Dmitry Antipov <dmantipov@yandex.ru>
1600
1601 * insdel.c (insert_from_gap): Prefer ptrdiff_t to int where needed.
764636db 1602 * xdisp.c (handle_fontified_prop): Likewise. Use bool for boolean.
bd74250f 1603
223752d7
PE
16042013-10-07 Paul Eggert <eggert@cs.ucla.edu>
1605
1606 emacs_read and emacs_write now use void *, not char *.
1607 * alloc.c (valid_pointer_p) [!WINDOWSNT]: Remove now-unnecessary cast.
1608 * sysdep.c (emacs_read, emacs_write, emacs_write_sig):
1609 Buffer arg is now void *, not char *. This matches plain
1610 'read' and 'write' better, and avoids a constraint violation
1611 on Solaris 9 with Oracle Studio.
1612
3c439e0a
DA
16132013-10-07 Dmitry Antipov <dmantipov@yandex.ru>
1614
1615 * alloc.c (Fmake_string): For ASCII char initializer, prefer
1616 memset to explicit loop. Otherwise copy largest possible chunk
1617 from initialized to uninitialized part, thus allowing the longer
1618 memcpy runs and reducing the number of loop iterations.
1619
28c76099
JD
16202013-10-06 Jan Djärv <jan.h.d@swipnet.se>
1621
1622 * nsterm.m (ns_update_begin): If native fullscreen and no toolbar,
1623 hide toolbar (Bug#15388).
1624 (windowDidEnterFullScreen:): If presentation options are zero,
1625 set them here (Bug#15388).
a3e9050c
JD
1626 (ns_update_auto_hide_menu_bar): Remove runtime check.
1627 Don't auto hide dock unless menubar is also auto hidden.
28c76099 1628
544a2a80
XF
16292013-10-05 Xue Fuqiao <xfq.free@gmail.com>
1630
1631 * editfns.c (message): Mention batch mode in doc string.
1632
a27fd309
JD
16332013-10-05 Jan Djärv <jan.h.d@swipnet.se>
1634
1635 * nsterm.m (check_native_fs): Remove erroneous comment.
1636
942f6f82
DA
16372013-10-04 Dmitry Antipov <dmantipov@yandex.ru>
1638
1639 * xdisp.c (redisplay_internal): Simplify because scan_for_column now
1640 uses find_newline instead of scan_newline and so doesn't move point.
1641
157fec2e
PE
16422013-10-04 Paul Eggert <eggert@cs.ucla.edu>
1643
4eed3157
PE
1644 Use hardware support for byteswapping on glibc x86 etc.
1645 On Fedora 19 x86-64, the new bswap_64 needs 1 instruction,
1646 whereas the old swap64 needed 30.
1647 * fringe.c (init_fringe_bitmap) [WORDS_BIGENDIAN]:
1648 * sound.c (le2hl, le2hs, be2hl) [!WINDOWSNT]:
1649 Use byteswap.h's macros to swap bytes.
1650 * lisp.h (swap16, swap32, swap64): Remove.
1651 All uses replaced by bswap_16, bswap_32, bswap_64.
1652
157fec2e
PE
1653 * bytecode.c (exec_byte_code): Use some more volatile variables
1654 to work around local variables getting clobbered by longjmp.
1655 Port to pre-C99, which doesn't allow decls after stmts.
1656
b52f569d
PE
16572013-10-03 Paul Eggert <eggert@cs.ucla.edu>
1658
75273afb
PE
1659 * lisp.h (eassert): Assume that COND is true when optimizing.
1660 In other words, take on the behavior of eassert_and_assume.
1661 This makes Emacs 0.2% smaller on my platform (Fedora 19, x86-64).
1662 (eassert_and_assume): Remove. All uses replaced by eassert.
1663
ead45345
PE
1664 * xdisp.c (Qglyphless_char): Now static.
1665
0a858ebf
PE
1666 Adjust to merge from gnulib.
1667 * conf_post.h (__has_builtin, assume): Remove; gnulib now does these.
1668 * lisp.h: Include <verify.h>, for 'assume'.
1669
b52f569d
PE
1670 * eval.c (clobbered_eassert): New macro.
1671 (internal_catch, internal_condition_case)
1672 (internal_condition_case_1, internal_condition_case_2)
1673 (internal_condition_case_n): Use it instead of eassert
1674 when the argument contains locals clobbered by longjmp.
1675 Don't use clobbered locals outside of clobbered_eassert.
1676 (internal_lisp_condition_case): Use a volatile variable
1677 to work around a local variable's getting clobbered.
1678
adf2aa61
SM
16792013-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
1680
1681 * lisp.h (struct handler): Merge struct handler and struct catchtag.
1682 (PUSH_HANDLER): New macro.
1683 (catchlist): Remove.
1684 (handlerlist): Always declare.
1685
1686 * eval.c (catchlist): Remove (merge with handlerlist).
1687 (handlerlist, lisp_eval_depth): Not static any more.
1688 (internal_catch, internal_condition_case, internal_condition_case_1)
1689 (internal_condition_case_2, internal_condition_case_n):
1690 Use PUSH_HANDLER.
1691 (unwind_to_catch, Fthrow, Fsignal): Adjust to merged
1692 handlerlist/catchlist.
1693 (internal_lisp_condition_case): Use PUSH_HANDLER. Adjust to new
1694 handlerlist which can only handle a single condition-case handler at
1695 a time.
1696 (find_handler_clause): Simplify since we only a single branch here
1697 any more.
1698
1699 * bytecode.c (BYTE_CODES): Add Bpushcatch, Bpushconditioncase
1700 and Bpophandler.
1701 (bcall0): New function.
1702 (exec_byte_code): Add corresponding cases. Improve error message when
1703 encountering an invalid byte-code. Let Bunwind_protect accept
1704 a function (rather than a list of expressions) as argument.
1705
1706 * alloc.c (Fgarbage_collect): Merge scans of handlerlist and catchlist,
1707 and make them unconditional now that they're heap-allocated.
1708
328a8179
SM
17092013-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
1710
1711 * charset.c (Fdecode_char, Fencode_char): Remove description of
1712 `restriction' arg. now that it's hidden by advertised-calling-convention.
1713
c348360a
JD
17142013-10-02 Jan Djärv <jan.h.d@swipnet.se>
1715
328a8179
SM
1716 * macfont.m (mac_ctfont_create_preferred_family_for_attributes):
1717 Remove unused variable (from mac-port).
c348360a
JD
1718 (macfont_draw): Use s->ybase for correct y position.
1719
1a23cd48
DA
17202013-10-02 Dmitry Antipov <dmantipov@yandex.ru>
1721
1722 * frame.h (struct frame): Drop has_minibuffer member because...
1723 (FRAME_HAS_MINIBUF_P): ...this macro can be implemented without it.
1724 * frame.c (make_frame, make_minibuffer_frame): Adjust users.
1725
29bf4de4
DA
17262013-10-02 Dmitry Antipov <dmantipov@yandex.ru>
1727
1728 * window.h (struct window): Prefer enum text_cursor_kinds to int
1729 for phys_cursor_type member. Move the latter, phys_cursor_width,
1730 phys_cursor_ascent and phys_cursor_height under HAVE_WINDOW_SYSTEM.
1731 * window.c (replace_window, make_window): Adjust users.
1732
a30ddace
DA
17332013-10-02 Dmitry Antipov <dmantipov@yandex.ru>
1734
1735 * fringe.c (toplevel): Do not use HAVE_WINDOW_SYSTEM because
1736 this module is never compiled otherwise.
1737
45435f08
AA
17382013-10-01 Alp Aker <alp.tekin.aker@gmail.com>
1739
1740 * macfont.m (macfont_draw): Use CGRectMake rather than NSMakeRect
1741 (Bug#15500).
1742
92e5298b
EZ
17432013-09-29 Eli Zaretskii <eliz@gnu.org>
1744
1745 * xdisp.c (get_next_display_element): Don't call face_for_font in
1746 a build configured --without-x. (Bug#15484)
1747
caa50be2
JD
17482013-09-29 Jan Djärv <jan.h.d@swipnet.se>
1749
66d13b20
JD
1750 * window.c (calc_absolute_offset): #elif should be #elif defined.
1751
caa50be2
JD
1752 * frame.c (delete_frame): Block/unblock input to overcome race
1753 condition (Bug#15475).
1754
d3e2acb6
AP
17552013-09-29 Andreas Politz <politza@hochschule-trier.de> (tiny change)
1756
1757 * frame.c (delete_frame): Record selected frame only after
1758 calling Qdelete_frame_functions (Bug#15477).
1759
1610938f
JD
17602013-09-28 Jan Djärv <jan.h.d@swipnet.se>
1761
1762 * nsterm.m (ns_selection_color): Remove.
1763 (ns_get_color): Check for ns_selection_(fg|bg)_color using
1764 NSColor selectedText(Background)Color. Only for COCOA.
1765 (ns_term_init): Remove assignment of ns_selection_color, logic
1766 moved to ns_get_color.
1767
328a8179 1768 * nsterm.h (NS_SELECTION_BG_COLOR_DEFAULT): Rename from
1610938f
JD
1769 NS_SELECTION_COLOR_DEFAULT.
1770 (NS_SELECTION_FG_COLOR_DEFAULT): New.
1771
0d2647e6
EZ
17722013-09-28 Eli Zaretskii <eliz@gnu.org>
1773
1774 * xdisp.c (Fdump_tool_bar_row): Ifdef away the body if 'struct
1775 frame' does not have the tool_bar_window member.
1776
ba355de0
BR
17772013-09-26 Barry O'Reilly <gundaetiapo@gmail.com>
1778
1779 Signal error when reading an empty byte-code object (Bug#15405)
1780 * lread.c (read1): signal error
1781 * alloc.c (make_byte_code): eassert header size
1782 (sweep_vectors): change an int to size_t
1783
4710d6f4
PE
17842013-09-24 Paul Eggert <eggert@cs.ucla.edu>
1785
cf647d93
PE
1786 * dispnew.c (clear_glyph_row, copy_row_except_pointers): Use enums
1787 instead of ints, as it's the usual style for offsetof constants. See:
1788 http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00478.html
1789
4710d6f4
PE
1790 * data.c (POPCOUNT_STATIC_INLINE): New macro, as a hack for popcount.
1791 This is ugly, but it should fix the performance problem for older
1792 GCC versions in the short run. I'll look into integrating the
1793 Gnulib module for popcount, as a better fix.
1794 See the thread starting in:
1795 http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00474.html
1796 (popcount_size_t_generic) [NEED_GENERIC_POPCOUNT]:
1797 (popcount_size_t_msc) [USE_MSC_POPCOUNT]:
1798 (popcount_size_t_gcc) [USE_GCC_POPCOUNT]:
1799 (popcount_size_t): Use it.
1800
10ebac9d
DC
18012013-09-24 Daniel Colascione <dancol@dancol.org>
1802
1803 * process.c (Fnetwork_interface_info): Fix build break due to
1804 vector changes.
1805
9da0f50e
PE
18062013-09-24 Paul Eggert <eggert@cs.ucla.edu>
1807
1808 * dispnew.c (clear_glyph_row, copy_row_except_pointers):
1809 Prefer signed to unsigned integers where either will do.
1810 No need for 'const' on locals that do not escape.
1811 Omit easserts with unnecessary and unportable assumptions about
1812 alignment. Avoid unnecessary casts to char *.
1813
d6d9cbc1
DA
18142013-09-24 Dmitry Antipov <dmantipov@yandex.ru>
1815
1816 Use union for the payload of struct Lisp_Vector.
1817 This helps to avoid a few glitches dictated by C's aliasing rules.
1818 * lisp.h (struct Lisp_Vector): Use union for next and
1819 contents member. Adjust comment. Change related users.
1820 * alloc.c (next_in_free_list, set_next_in_free_list): Remove.
1821 Related users changed.
1822 * buffer.c, bytecode.c, ccl.c, character.h, chartab.c, composite.c:
1823 * composite.h, disptab.h, fns.c, fontset.c, indent.c, keyboard.c:
1824 * lread.c, msdos.c, process.c, w32menu.c, window.c, xdisp.c:
1825 * xfaces.c, xfont.c, xmenu.c: Related users changed.
1826
ec7bc82f
DA
18272013-09-24 Dmitry Antipov <dmantipov@yandex.ru>
1828
1829 Optimize glyph row clearing and copying routines.
1830 * dispextern.h (struct glyph_row): Change layout of struct
1831 glyph_row to help copy_row_except_pointers. Adjust comment.
1832 * dispnew.c (null_row): Remove.
1833 (clear_glyph_row): Use offsetof and memset to find and clear
1834 just the members that need clearing. Adjust comment.
1835 (copy_row_except_pointers): Likewise for copying.
1836
d160dd0c
PE
18372013-09-24 Paul Eggert <eggert@cs.ucla.edu>
1838
7be68de5
PE
1839 Some minor cleanups of recently-added bool vector code.
1840 * conf_post.h (assume): Always return void. Use lint version
1841 only if GCC and MSC versions don't apply.
1842 * conf_post.h (assume):
1843 * data.c (USC_MSC_POPCOUNT, count_trailing_zero_bits):
1844 Depend on _MSC_VER, not __MSC_VER, for consistency with
1845 the rest of Emacs.
1846 * data.c (bool_vector_spare_mask, popcount_size_t_generic)
1847 (popcount_size_t_msc, popcount_size_t_gcc, popcount_size_t)
1848 (bool_vector_binop_driver, count_trailing_zero_bits)
1849 (size_t_to_host_endian): Now static, not static inline;
1850 the latter isn't needed with modern compilers and doesn't
1851 work with older compilers anyway.
1852
d160dd0c
PE
1853 * alloc.c (valgrind_p): Use bool for boolean.
1854
e08813d0
DA
18552013-09-23 Dmitry Antipov <dmantipov@yandex.ru>
1856
1857 * xdisp.c (noninteractive_need_newline, message_log_need_newline)
1858 (overlay_arrow_seen, message_enable_multibyte, line_number_displayed)
1859 (display_last_displayed_message_p, message_buf_print)
1860 (message_cleared_p, help_echo_showing_p, hourglass_shown_p):
1861 Use bool for boolean.
3a6a78fd
DA
1862 * dispextern.h (cancel_line, init_desired_glyphs):
1863 Remove ancient leftover.
1864 (help_echo_showing_p, hourglass_shown_p):
e08813d0
DA
1865 * lisp.h (noninteractive_need_newline): Adjust declaration.
1866
5492865b
DA
18672013-09-23 Dmitry Antipov <dmantipov@yandex.ru>
1868
1869 * dispnew.c (frame_garbaged, selected_frame, last_nonminibuf_frame):
1870 Move to...
1871 * frame.c (frame_garbaged, selected_frame, last_nonminibuf_frame):
1872 ...this file and convert the latter to static. Adjust comment.
1873 (make_initial_frame):
1874 * window.c (init_window_once): Adjust user.
1875 * frame.h (last_nonminibuf_frame): Remove declaration.
1876 * lisp.h (selected_frame): Likewise.
1877 * msdos.c (the_only_display_info): Adjust comment.
1878
cd548fa4
EZ
18792013-09-23 Eli Zaretskii <eliz@gnu.org>
1880
f03eddbf
EZ
1881 * xdisp.c (mouse_face_from_string_pos): Fix off-by-one error in
1882 computing the end column of mouse-highlight that comes from
1883 display or overlay strings. (Bug#15437)
b519df23
EZ
1884 (note_mouse_highlight): Adapt calculation of last argument to
1885 mouse_face_from_string_pos to the above change.
f03eddbf 1886
cd548fa4
EZ
1887 * conf_post.h (__has_builtin): Define to zero, if undefined, on
1888 all platforms, not just for clang.
1889
8762e524
JD
18902013-09-23 Jan Djärv <jan.h.d@swipnet.se>
1891
1892 * filelock.c (lock_file_1): Rearrange to remove compiler warning
1893 about excess arguments to snprintf.
1894
1895 * conf_post.h(assume): Use __builtin_unreachable for clang.
1896
d4a9284f
JB
18972013-09-23 Juanma Barranquero <lekktu@gmail.com>
1898
1899 * w32console.c (initialize_w32_display): Remove unused variable hlinfo.
1900 * w32term.c (w32_scroll_bar_handle_click): Remove unused variable f.
1901
a84683fd
DC
19022013-09-23 Daniel Colascione <dancol@dancol.org>
1903
1904 * alloc.c (USE_VALGRIND): New macro; on by default
1905 when ENABLE_CHECKING.
ffb3f67a 1906 (mark_maybe_object, mark_maybe_pointer)
a84683fd
DC
1907 [USE_VALGRIND]: Mark conservatively-scanned regions valid for
1908 valgrind purposes.
1909 (valgrind_p) [USE_VALGRIND]: New variable.
1910 (init_alloc) [USE_VALGRIND]: Initialize valgrind_p.
1911
8fef36c6
JD
19122013-09-22 Jan Djärv <jan.h.d@swipnet.se>
1913
fb83ea63
JD
1914 * process.c (wait_reading_process_output): Change int pnamelen to
1915 socklen_t.
1916
1917 * nsterm.m (setMarkedText:selectedRange:):
1918 (deleteWorkingText):
1919 * nsmenu.m (addDisplayItemWithImage:idx:tag:helpText:enabled:):
1920 * nsfont.m (ns_get_covering_families, ns_findfonts): Cast NSLog
1921 argument to unsigned long to avoid warning.
1922 (nsfont_draw): Use 0.25 instead of Fix2X (kATSItalicQDSkew).
1923
8fef36c6
JD
1924 * conf_post.h (assume): Fix compiler error: x shall be cond.
1925
cd9356f2
DC
19262013-09-22 Daniel Colascione <dancol@dancol.org>
1927
1928 * xfns.c (x_get_monitor_attributes): Suppress unused variable
1929 warning when compiling without a window system.
1930
3e0b94e7
DC
19312013-09-22 Daniel Colascione <dancol@dancol.org>
1932
1933 * data.c (Qbool_vector_p): New symbol.
ffb3f67a
PE
1934 (bool_vector_spare_mask, popcount_size_t_generic)
1935 (popcount_size_t_msc, popcount_size_t_gcc)
3e0b94e7
DC
1936 (popcount_size_t)
1937 (bool_vector_binop_driver)
ffb3f67a 1938 (count_trailing_zero_bits, size_t_to_host_endian)
3e0b94e7
DC
1939 (Fbool_vector_exclusive_or)
1940 (Fbool_vector_union)
ffb3f67a
PE
1941 (Fbool_vector_intersection, Fbool_vector_set_difference)
1942 (Fbool_vector_subsetp, Fbool_vector_not)
3e0b94e7
DC
1943 (Fbool_vector_count_matches)
1944 (Fbool_vector_count_matches_at): New functions.
1945 (syms_of_data): Intern new symbol, functions.
1946 * alloc.c (bool_vector_payload_bytes): New function.
1947 (Fmake_bool_vector): Instead of calling Fmake_vector,
1948 which performs redundant initialization and argument checking,
1949 just call allocate_vector ourselves. Make sure we clear any
1950 terminating padding to zero.
ffb3f67a 1951 (vector_nbytes, sweep_vectors): Use bool_vector_payload_bytes
3e0b94e7
DC
1952 instead of open-coding the size calculation.
1953 (vroundup_ct): New macro.
1954 (vroundup): Assume argument >= 0; invoke vroundup_ct.
ffb3f67a 1955 * casetab.c (shuffle, set_identity): Change lint_assume to assume.
328a8179
SM
1956 * composite.c (composition_gstring_put_cache):
1957 Change lint_assume to assume.
3e0b94e7
DC
1958 * conf_post.h (assume): New macro.
1959 (lint_assume): Remove.
1960 * dispnew.c (update_frame_1): Change lint_assume to assume.
1961 * ftfont.c (ftfont_shape_by_flt): Change lint_assume
1962 to assume.
1963 * image.c (gif_load): Change lint_assume to assume.
1964 * lisp.h (eassert_and_assume): New macro.
1965 (Qbool_vector_p): Declare.
ffb3f67a
PE
1966 (CHECK_BOOL_VECTOR, ROUNDUP, BITS_PER_SIZE_T): New macros.
1967 (swap16, swap32, swap64): New inline functions.
3e0b94e7
DC
1968 * macfont.c (macfont_shape): Change lint_assume to assume.
1969 * ralloc.c: Rename ROUNDUP to PAGE_ROUNDUP throughout.
1970 * xsettings.c (parse_settings): Use new swap16 and
1971 swap32 from lisp.h instead of file-specific macros.
1972
76880d88
EZ
19732013-09-22 Eli Zaretskii <eliz@gnu.org>
1974
1975 * xdisp.c (try_window_id): Don't abort if cursor row could not be
1976 found (which can legitimately happen when the glyph row at the
1977 window start is disabled in the current_matrix. (Bug#15365)
1978
c6cfd910
PE
19792013-09-22 Paul Eggert <eggert@cs.ucla.edu>
1980
1981 Fix syntax.h bug introduced by recent INLINE change.
1982 syntax.h defined an extern inline function SYNTAX_ENTRY that was
1983 conditionally compiled one way in some modules, and a different
1984 way in others. This doesn't work with extern inline functions,
1985 which must have the same definition in all modules, because the
1986 defining code might be shared across modules, depending on the
1987 implementation. Symptoms reported by Martin Rudalics in:
1988 http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00414.html
1989 * regex.c, syntax.c (SYNTAX_ENTRY_VIA_PROPERTY): Remove.
1990 (SYNTAX, SYNTAX_ENTRY, SYNTAX_WITH_FLAGS): New macros,
1991 overriding the corresponding functions in syntax.h.
1992 * syntax.h (syntax_property_entry, syntax_property_with_flags)
1993 (syntax_property): New inline functions.
1994 (SYNTAX_ENTRY, SYNTAX_WITH_FLAGS, SYNTAX):
1995 Rewrite in terms of these new functions.
1996
b3f1d119
EZ
19972013-09-21 Eli Zaretskii <eliz@gnu.org>
1998
1999 * dired.c (directory_files_internal): Use multibyte_chars_in_text,
2000 not chars_in_text, whose result depends on the multibyteness of
2001 the current buffer. (Bug#15426)
2002
00382e8b
PE
20032013-09-20 Paul Eggert <eggert@cs.ucla.edu>
2004
e3b29769
PE
2005 Port recent change to hosts where pointers aren't 'long'.
2006 * xterm.c (x_send_scroll_bar_event, x_scroll_bar_to_input_event):
2007 Don't assume that pointers are the same width as 'long'.
2008 Add a compile-time check that a pointer fits into two X slots.
2009
00382e8b
PE
2010 A simpler, centralized INLINE.
2011 * conf_post.h (INLINE): Define only if not already defined.
2012 This allows us to use a single INLINE, defined by one file
2013 per executable.
2014 * emacs.c (INLINE): Define it.
2015 Also, include category.h, charset.h, composite.h, dispextern.h,
2016 syntax.h, systime.h, so that their INLINE definitions are expanded
2017 properly for Emacs.
2018 * blockinput.h, keyboard.c (BLOCKINPUT_INLINE):
2019 * buffer.h, buffer.c (BUFFER_INLINE):
2020 * category.h, category.c (CATEGORY_INLINE):
2021 * character.h, character.c (CHARACTER_INLINE):
2022 * charset.h, charset.c (CHARSET_INLINE):
2023 * composite.h, composite.c (COMPOSITE_INLINE):
2024 * dispextern.h, dispnew.c (DISPEXTERN_INLINE):
2025 * frame.h, frame.c (FRAME_INLINE):
2026 * intervals.h, intervals.c (INTERVALS_INLINE):
2027 * keyboard.h, keyboard.c (KEYBOARD_INLINE):
2028 * lisp.h, alloc.c (LISP_INLINE):
2029 * process.h, process.c (PROCESS_INLINE):
2030 * syntax.h, syntax.c (SYNTAX_INLINE):
2031 * systime.h, sysdep.c (SYSTIME_INLINE):
2032 * termhooks.h, terminal.h (TERMHOOKS_INLINE):
2033 * window.h, window.c (WINDOW_INLINE):
2034 Remove. All uses replaced with INLINE.
2035
2b943ba6
DA
20362013-09-20 Dmitry Antipov <dmantipov@yandex.ru>
2037
2038 * xterm.c (handle_one_xevent): Revert part of 2013-09-17 change
2039 to avoid Bug#15398.
2040
13d9698a
EZ
20412013-09-19 Eli Zaretskii <eliz@gnu.org>
2042
2043 * w32reg.c (w32_get_string_resource): Make the first 2 arguments
2044 'const char *' to avoid compiler warnings due to similar change in
2045 the prototype of x_get_string_resource.
2046
ced135eb
DA
20472013-09-19 Dmitry Antipov <dmantipov@yandex.ru>
2048
2049 * xterm.h (struct x_display_info): New members last_mouse_glyph_frame,
2050 last_mouse_scroll_bar, last_mouse_glyph and last_mouse_movement_time,
2051 going to replace static variables below. Adjust comments.
2052 * xterm.c (last_mouse_glyph, last_mouse_glyph_frame)
2053 (last_mouse_scroll_bar, last_mouse_movement_time): Remove.
2054 (note_mouse_movement, XTmouse_position, x_scroll_bar_note_movement)
2055 (x_scroll_bar_report_motion, handle_one_xevent, syms_of_xterm):
2056 Related users changed.
2057 * w32term.h (struct w32_display_info): New members last_mouse_glyph_frame,
2058 last_mouse_scroll_bar, last_mouse_scroll_bar_pos, last_mouse_glyph and
2059 last_mouse_movement_time, going to replace static variables below.
2060 Adjust comments.
2061 * w32term.c (last_mouse_glyph_frame, last_mouse_scroll_bar)
2062 (last_mouse_scroll_bar_pos, last_mouse_glyph, last_mouse_movement_time):
2063 Remove.
2064 (note_mouse_movement, w32_mouse_position, w32_scroll_bar_handle_click)
2065 (x_scroll_bar_report_motion, syms_of_w32term): Related users changed.
2066 * nsterm.h (struct ns_display_info): New members last_mouse_glyph,
2067 last_mouse_movement_time and last_mouse_scroll_bar, going to replace
2068 static variables below.
2069 * nsterm.m (last_mouse_glyph, last_mouse_movement_time)
2070 (last_mouse_scroll_bar): Remove.
2071 (note_mouse_movement, ns_mouse_position, mouseMoved, mouseEntered)
2072 (mouseExited): Related users changed.
2073
091f1e1f
DA
20742013-09-19 Dmitry Antipov <dmantipov@yandex.ru>
2075
2076 Do not use external array to process X scroll bar messages.
2077 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): Remove.
2078 (x_send_scroll_bar_event): Pack window pointer into two slots
2079 of XClientMessageEvent if we're 64-bit. Adjust comment.
2080 (x_scroll_bar_to_input_event): Unpack accordingly.
2081
582ed56c
DA
20822013-09-18 Dmitry Antipov <dmantipov@yandex.ru>
2083
2084 Ifdef away recent changes which aren't relevant to NS port.
2085 * dispextern.h (x_mouse_grabbed, x_redo_mouse_highlight)
2086 [!HAVE_NS]: Declare as such.
2087 * frame.c (x_mouse_grabbed, x_redo_mouse_highlight)
2088 [!HAVE_NS]: Define as such.
2089
18da0d8a
DA
20902013-09-18 Dmitry Antipov <dmantipov@yandex.ru>
2091
2092 * frame.c (x_redo_mouse_highlight): New function
2093 to factor out common code used in W32 and X ports.
2094 * dispextern.h (x_redo_mouse_highlight): Add prototype.
2095 * xterm.h (struct x_display_info):
2096 * w32term.h (struct w32_display_info):
2097 * nsterm.h (struct ns_display_info): New members
2098 last_mouse_motion_frame, last_mouse_motion_x and
2099 last_mouse_motion_y, going to replace static variables below.
2100 * xterm.c (last_mouse_motion_event, last_mouse_motion_frame)
2101 (redo_mouse_highlight): Remove.
2102 (note_mouse_movement, syms_of_xterm): Adjust user.
2103 (handle_one_xevent): Likewise. Use x_redo_mouse_highlight.
2104 * w32term.c (last_mouse_motion_event, last_mouse_motion_frame)
2105 (redo_mouse_highlight): Remove.
2106 (note_mouse_movement, syms_of_w32term): Adjust user.
2107 (w32_read_socket): Likewise. Use x_redo_mouse_highlight.
2108 * nsterm.m (last_mouse_motion_position, last_mouse_motion_frame):
2109 Remove.
2110 (note_mouse_movement, mouseMoved, syms_of_nsterm):
2111 * nsfns.m (compute_tip_xy): Adjust user.
2112
7a0c745a
DA
21132013-09-18 Dmitry Antipov <dmantipov@yandex.ru>
2114
2115 * frame.c (x_mouse_grabbed): New function.
2116 * dispextern.h (x_mouse_grabbed): Add prototype.
2117 (last_mouse_frame): Remove declaration.
2118 * xterm.h (struct x_display_info):
2119 * w32term.h (struct w32_display_info):
2120 * nsterm.h (struct ns_display_info): New member
2121 last_mouse_frame, going to replace...
2122 * xdisp.c (last_mouse_frame): ...global variable.
2123 (note_tool_bar_highlight):
2124 * w32term.c (w32_mouse_position, w32_read_socket):
2125 * xterm.c (XTmouse_position, handle_one_xevent):
2126 Use x_mouse_grabbed.
2127 * nsterm.m (ns_mouse_position, mouseDown): Adjust user.
2128
0791d107
DA
21292013-09-17 Dmitry Antipov <dmantipov@yandex.ru>
2130
2131 * w32term.c (w32_read_socket): Avoid temporary
2132 variables in a call to x_real_positions.
2133 * xterm.c (handle_one_xevent): Likewise.
2134
2cd98812
DA
21352013-09-17 Dmitry Antipov <dmantipov@yandex.ru>
2136
2137 * frame.h (x_set_bitmap_icon) [!HAVE_NS]: New function.
2138 (x_icon_type): Remove prototype.
2139 (x_bitmap_icon) [!HAVE_NS]: Declare as such.
2140 * frame.c (x_icon_type): Remove.
2141 * w32term.c (x_make_frame_visible, x_iconify_frame):
2142 * xterm.c (x_make_frame_visible, x_iconify_frame):
2143 Use x_set_bitmap_icon to factor out common code.
2144
a6c2ee1b
DA
21452013-09-17 Dmitry Antipov <dmantipov@yandex.ru>
2146
2147 * dispextern.h (check_x_display_info, x_get_string_resource):
2148 Declare here just once and unify the latter.
2149 * frame.c (check_x_display_info, x_get_string_resource):
2150 * nsterm.h (check_x_display_info):
2151 * xrdb.c (x_get_string_resource):
2152 * xterm.h (check_x_display_info): Remove prototypes.
2153 * nsfns.m (x_get_string_resource): Likewise. Adjust definition.
2154 * w32reg.c (x_get_string_resource): Likewise.
2155 (w32_get_rdb_resource): Adjust user.
2156
baed3603
DA
21572013-09-17 Dmitry Antipov <dmantipov@yandex.ru>
2158
2159 * xterm.h (struct x_display_info): New member
2160 x_pending_autoraise_frame, going to replace...
2161 * xterm.c (pending_autoraise_frame): ...static variable.
2162 (x_new_focus_frame, XTread_socket): Adjust users.
2163 * w32term.h (struct w32_display_info): New member
2164 w32_pending_autoraise_frame, going to replace...
2165 * w32term.c (pending_autoraise_frame): ...global variable.
2166 (x_new_focus_frame, w32_read_socket): Adjust users.
2167
90582f05
GM
21682013-09-17 Glenn Morris <rgm@gnu.org>
2169
2170 * xdisp.c (message_dolog): If we create *Messages*,
2171 switch it to messages-buffer-mode.
2172
b7ad2f74
PE
21732013-09-17 Paul Eggert <eggert@cs.ucla.edu>
2174
2175 Don't overuse 'const' in types of locals.
2176 * bidi.c (bidi_count_bytes):
2177 * gtkutil.c, gtkutil.h (xg_event_is_for_menubar)
2178 (xg_event_is_for_scrollbar):
2179 * xselect.c (x_handle_property_notify)
2180 (x_handle_selection_notify, x_handle_dnd_message):
2181 * xsettings.c, xsettings.h (xft_settings_event):
2182 * xterm.c (x_handle_net_wm_state, handle_one_event)
2183 (x_menubar_window_to_frame, x_detect_focus_change)
2184 (construct_mouse_click, note_mouse_movement)
2185 (x_scroll_bar_to_input_event, x_scroll_bar_expose)
2186 (x_scroll_bar_handle_click, x_scroll_bar_note_movement)
2187 (handle_one_xevent, x_handle_net_wm_state):
2188 * xterm.h (x_handle_property_notify, x_handle_selection_notify)
2189 (x_handle_dnd_message):
2190 Avoid unnecessary 'const', typically the second 'const' in
2191 'const foo * const arg', a 'const' that does not affect the API
2192 and doesn't significantly help the human reader.
2193
19452b86
DA
21942013-09-17 Dmitry Antipov <dmantipov@yandex.ru>
2195
2196 * image.c (fn_g_type_init) [WINDOWSNT]: Define and load
2197 only if Glib < 2.36.0.
2198 (fn_g_type_init) [!WINDOWSNT]: Define only if Glib < 2.36.0.
2199 * xsettings.c (init_gconf, init_gsettings): Do not check
2200 for g_type_init.
1893694e
DA
2201 * xterm.c (handle_one_xevent): Do not call to x_clear_area
2202 if GTK >= 2.7.0.
33b83dd7 2203 (toplevel) [USE_MOTIF]: Include xlwmenu.h to pacify GCC.
19452b86 2204
6434e343
JD
22052013-09-16 Jan Djärv <jan.h.d@swipnet.se>
2206
3f386383
JD
2207 * xsettings.c (init_gconf, init_gsettings): Check for Glib 2.36.0
2208 before calling g_type_init.
2209
6434e343
JD
2210 * font.c (syms_of_font): Move call to syms_of_(ns|mac)font ...
2211
2212 * nsterm.m (syms_of_nsterm): ... to here.
2213
83a119f8
DA
22142013-09-16 Dmitry Antipov <dmantipov@yandex.ru>
2215
2216 * xterm.c (toolkit_scroll_bar_interaction): Use bool for boolean.
2217 (ignore_next_mouse_click_timeout): Use Time as X does.
2218 (handle_one_xevent): Avoid cast and use unsigned comparison.
2219
61582e6a
DA
22202013-09-16 Dmitry Antipov <dmantipov@yandex.ru>
2221
2222 Do not copy X event in handle_one_xevent except KeyPress case.
2223 Wnen XEvent is processed, it is unlikely to be changed except
2224 KeyPress case, so we can avoid copying and use const pointer to
2225 const data to make sure that an event is not changed elsewhere.
2226 * xterm.c (handle_one_xevent): Change 2nd arg to 'const XEvent *
2227 const' and do not create local copy except for the KeyPress event.
2228 Use casts to avoid a few glitches. Adjust formatting. Add comments.
2229 (SET_SAVED_BUTTON_EVENT): Remove and move the code to the only user.
2230 (x_handle_net_wm_state, x_menubar_window_to_frame)
2231 (x_detect_focus_change, construct_mouse_click, note_mouse_movement)
2232 (x_scroll_bar_to_input_event, x_scroll_bar_expose)
2233 (x_scroll_bar_handle_click, x_scroll_bar_note_movement):
2234 * gtkutil.c (xg_event_is_for_menubar, xg_event_is_for_scrollbar):
2235 * xselect.c (x_handle_property_notify, x_handle_selection_notify)
2236 (x_handle_dnd_message):
2237 * xsettings.c (xft_settings_event):
2238 Use 'const XEvent * const' where appropriate.
2239 * xterm.h, gtkutil.h, xsettngs.h: Adjust related prototypes.
2240
f8eb1572
DA
22412013-09-16 Dmitry Antipov <dmantipov@yandex.ru>
2242
2243 Fix X event waiting to handle multiple frames.
2244 * frame.h (struct frame) [HAVE_X_WINDOWS]: New member wait_event_type.
2245 * xterm.c (pending_event_wait): Remove. Adjust users.
2246 (x_detect_focus_change): Pass frame arg.
2247 (handle_one_xevent): Find related frame early and clear per-frame
2248 wait_event_type only if this is an event for the relevant frame.
2249 (x_wait_for_event): Use per-frame wait_event_type.
2250
3fa2054e
JD
22512013-09-15 Jan Djärv <jan.h.d@swipnet.se>
2252
745d3809
JD
2253 * nsfns.m (Fx_create_frame): Fix font driver registration for
2254 GNUStep.
2255
2256 * font.c (syms_of_font): Check MAC_OS_X_VERSION_MAX_ALLOWED >= 1050
2257 for syms_of_macfont.
2258
3fa2054e
JD
2259 * nsterm.m: Include macfont.h.
2260 (ns_tmp_flags, ns_tmp_font): Remove.
2261 (ns_compute_glyph_string_overhangs): Check for driver Qns.
2262 (ns_draw_glyph_string): Use local variables instead of ns_tmp_flags,
2263 ns_tmp_font. Call ns_draw_text_decoration here instead of nsfont.m.
2264 (changeFont:): Fix code style. Check for font driver type when
2265 getiing font.
2266
2267 * nsterm.h (FONT_DESCENT, FONT_ASCENT): Define to (f)->ascent and
2268 (f)->descent.
2269
2270 * nsfont.m (ns_tmp_flags, ns_tmp_font): Remove.
2271 (nsfont_open): Set font driver type.
2272 Set font->ascent and font->descent. Figure out font instead of
2273 ns_tmp_font, and flags instead of ns_tmp_flags.
2274 Fix indentation. Remove call to ns_draw_text_decoration,
2275 moved to nsterm.
2276
2277 * nsfns.m: Include macfont.h.
2278 (Fx_create_frame): Register macfont driver, make a better default font.
2279 (Fns_popup_font_panel): Get font from macfont driver, if used.
2280
2281 * macfont.m, macfont.h, maccuvs.h: New files.
2282
2283 * font.h: Declare syms_of_macfont.
2284
2285 * font.c (syms_of_font): Call syms_of_macfont.
2286
2287 * Makefile.in (NS_OBJ, SOME_MACHINE_OBJECTS): Add macfont.o.
2288
0eed0355
DA
22892013-09-15 Dmitry Antipov <dmantipov@yandex.ru>
2290
2291 Drop VERTICAL_SCROLL_BAR_WIDTH_TRIM. For X, it is zero since 1999,
2292 and it is always zero for others, so I assume that this is an ancient
2293 leftover which nobody will want to change any more.
2294 * xterm.h, w32term.h, nsterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Remove.
2295 (VERTICAL_SCROLL_BAR_INSIDE_WIDTH):
2296 * frame.c (x_set_scroll_bar_width):
2297 * w32fns.c (w32_createscrollbar):
2298 * w32term.c (w32_set_vertical_scroll_bar):
2299 * xfns.c (x_set_scroll_bar_default_width):
2300 * xterm.c (XTflash, x_scroll_bar_create, XTset_vertical_scroll_bar)
2301 (x_scroll_bar_expose): Related users changed.
2302
07013c68
DA
23032013-09-15 Dmitry Antipov <dmantipov@yandex.ru>
2304
2305 * xterm.h (FRAME_X_SCREEN_NUMBER): Add comment.
2306 (BLACK_PIX_DEFAULT, WHITE_PIX_DEFAULT): Use FRAME_X_SCREEN_NUMBER.
901049a6
DA
2307 (SCROLL_BAR_X_WIDGET, SET_SCROLL_BAR_X_WIDGET) [USE_X_TOOLKIT]:
2308 Define as such.
c7cc32f7
DA
2309 * frame.h (FRAME_SMALLEST_CHAR_WIDTH, FRAME_SMALLEST_FONT_HEIGHT):
2310 Define once here...
2311 * nsterm.h, w32term.h, xterm.h: ...and not here.
901049a6
DA
2312 * w32term.h (SCROLL_BAR_X_WIDGET, SET_SCROLL_BAR_X_WIDGET):
2313 Remove unused Xisms.
7f09455e
DA
2314 * xterm.c, xfns.c (toplevel): Remove #ifdef HAVE_X_WINDOWS because
2315 these modules are never compiled otherwise.
07013c68 2316
0df00f59
EZ
23172013-09-14 Eli Zaretskii <eliz@gnu.org>
2318
08a209bf 2319 * buffer.c (syms_of_buffer) <left-margin-width, right-margin-width>:
0df00f59
EZ
2320 Doc fix. (Bug#15375)
2321
fcd42c11
DA
23222013-09-13 Dmitry Antipov <dmantipov@yandex.ru>
2323
2324 Unify Fx_focus_frame between all ports.
2325 * frame.h (x_focus_frame): New prototype.
2326 * xfns.c (Fx_focus_frame): Remove.
2327 (syms_of_xfns): Do not defsubr it.
2328 (x_focus_frame): X implementation.
2329 * nsfns.m (Fx_focus_frame): Remove.
2330 (syms_of_nsfns): Do not defsubr it.
2331 (x_focus_frame): NS implementation.
2332 * w32term.c (Fx_focus_frame): Remove.
2333 (x_focus_on_frame): Rename to...
2334 (x_focus_frame): W32 implementation.
2335 * w32term.h (x_focus_on_frame): Remove prototype.
2336 * w32fns.c (Fx_focus_frame): Remove.
2337 (syms_of_w32fns): Do not defsubr it.
2338 * frame.c (Fx_focus_frame): Define here.
2339 (syms_of_frame): Defsubr here.
2340 * gtkutil.c (xg_tool_bar_callback): Use x_focus_frame.
2341
aad3612f
DA
23422013-09-13 Dmitry Antipov <dmantipov@yandex.ru>
2343
2344 Unify FRAME_window_system_DISPLAY_INFO macros between all ports.
2345 All of them are replaced with FRAME_DISPLAY_INFO, defined in
2346 each port to reference the port-specific window system data.
2347 * msdos.h (FRAME_X_DISPLAY_INFO): Remove.
2348 (FRAME_DISPLAY_INFO): Define.
2349 * w32term.h (FRAME_W32_DISPLAY_INFO, FRAME_X_DISPLAY_INFO): Remove.
2350 (FRAME_DISPLAY_INFO): Define. Adjust users.
2351 * xterm.h (FRAME_X_DISPLAY_INFO): Remove.
2352 (FRAME_DISPLAY_INFO): Define. Adjust users.
2353 * frame.h (FRAME_RES_X, FRAME_RES_Y): Unify.
2354 * font.c, frame.c, gtkutil.c, image.c, menu.c, msdos.c, nsfns.m:
2355 * nsfont.m, nsterm.m, w32fns.c, w32font.c, w32menu.c, w32term.c:
2356 * w32xfns.c, widget.c, xdisp.c, xfaces.c, xfns.c, xfont.c, xmenu.c:
2357 * xselect.c, xterm.c: All related users changed.
2358
9a650e62
DA
23592013-09-13 Dmitry Antipov <dmantipov@yandex.ru>
2360
2361 * xterm.h (x_window_to_frame, x_any_window_to_frame)
2362 (x_menubar_window_to_frame): Remove prototypes.
2363 * xfns.c (x_window_to_frame, x_any_window_to_frame)
2364 (x_menubar_window_to_frame, x_top_window_to_frame):
2365 Move from here...
2366 * xterm.c (x_window_to_frame, x_any_window_to_frame)
2367 (x_menubar_window_to_frame, x_top_window_to_frame):
2368 ...to here and convert all but the last to static.
2369
347ae3e1
EZ
23702013-09-12 Eli Zaretskii <eliz@gnu.org>
2371
2372 * lisp.mk (lisp): Add w32-common-fns.elc.
2373
15c6d837
XF
23742013-09-12 Xue Fuqiao <xfq.free@gmail.com>
2375
2376 * charset.c (char_charset): Document an exception for char-charset.
2377
27e90f77
DA
23782013-09-12 Dmitry Antipov <dmantipov@yandex.ru>
2379
2380 * xterm.h (x_display_info): New field last_user_time...
2381 * xterm.c (toplevel): ...to replace static last_user_time.
2382 (handle_one_xevent, x_ewmh_activate_frame): Adjust users.
2383
8ffbc36b
DA
23842013-09-12 Dmitry Antipov <dmantipov@yandex.ru>
2385
2386 * xterm.c (x_set_scroll_bar_thumb) [USE_LUCID && !HAVE_XAW3D]: Clip
2387 scroll bar values to prevent thumb from disappear and update comment.
2388
5ec0337a
GM
23892013-09-11 Glenn Morris <rgm@gnu.org>
2390
2391 * emacs.c (usage_message): Possessive apostrophe tweak.
2392
fb55b9d1
DA
23932013-09-11 Dmitry Antipov <dmantipov@yandex.ru>
2394
8d2db8be
DA
2395 * nsterm.m (syms_of_nsterm): Use Qns.
2396 * w32fns.c (Fx_open_connection): Remove old '#if 0' code.
2397 * w32term.c (w32_create_terminal, syms_of_w32term): Use Qw32.
2398 * xfns.c (x_display_info_for_name, Fx_open_connection):
2399 Remove old '#if 0' code.
2400 (syms_of_xfns): Use Qx.
fb55b9d1
DA
2401 * termhooks.h (fullscreen_hook): Remove the leftover.
2402 (struct terminal): Fix typo in comment.
2403
927eec55
DA
24042013-09-11 Dmitry Antipov <dmantipov@yandex.ru>
2405
2406 Cleaning up a few X scroll bar bits.
2407 * termhooks.h (enum scroll_bar_part): Add scroll_bar_nowhere member.
2408 * xterm.h (struct scroll_bar) [USE_TOOLKIT_SCROLL_BARS && USE_LUCID]:
2409 New member last_seen_part, going to replace...
2410 * xterm.c [USE_TOOLKIT_SCROLL_BARS]: ...global last_scroll_bar_part.
2411 (xt_action_hook) [USE_LUCID]: Adjust user.
2412 (xm_scroll_callback, xg_scroll_callback): Do not bloat with
2413 Lucid-specific scroll bar support.
2414 (xaw_jump_callback, xaw_scroll_callback): Prefer enum scroll_par_part
2415 to int and adjust to use last_seen_part member.
2416 (x_set_toolkit_scroll_bar_thumb) [USE_LUCID]: Adjust user.
2417 (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS && USE_LUCID]:
2418 Initialize last_seen_part.
2419
71b28baa
SM
24202013-09-11 Stefan Monnier <monnier@iro.umontreal.ca>
2421
2422 * insdel.c (insert_from_buffer_1): Don't mark buffer as modified when
2423 insert-buffer-substring an empty string.
2424
f5dacaae
PE
24252013-09-11 Paul Eggert <eggert@cs.ucla.edu>
2426
2427 * xdisp.c (Ftool_bar_lines_needed): Declare as 'const' if ifdeffed out,
2428 avoiding a GCC warning.
2429
742516e0
DA
24302013-09-11 Dmitry Antipov <dmantipov@yandex.ru>
2431
2432 Ifdef away frame tool bar code when it is not really used.
2433 * frame.h (struct frame) [HAVE_WINDOW_SYSTEM && !USE_GTK && !HAVE_NS]:
2434 Move tool_bar_window, desired_tool_bar_string, current_tool_bar_string
2435 and minimize_tool_bar_window_p under the above.
2436 (fset_current_tool_bar_string, fset_desired_tool_bar_string)
2437 (fset_tool_bar_window): Likewise.
2438 * dispnew.c (clear_current_matrices, clear_desired_matrices)
2439 (adjust_frame_glyphs_for_window_redisplay, free_glyphs, update_frame)
2440 (change_frame_size_1):
2441 * window.c (window_from_coordinates, Frecenter): Adjust users.
2442 * window.h (WINDOW_TOOL_BAR_P): Define to zero when frame tool bar
2443 code is not really used.
2444 * xdisp.c (build_desired_tool_bar_string, display_tool_bar_line)
2445 (tool_bar_lines_needed, MAX_FRAME_TOOL_BAR_HEIGHT, tool_bar_item_info)
2446 (get_tool_bar_item, handle_tool_bar_click, note_tool_bar_highlight)
2447 [!USE_GTK && !HAVE_NS]: Define as such.
2448 (Ftool_bar_lines_needed, redisplay_tool_bar, show_mouse_face)
2449 (note_mouse_highlight, expose_frame):
2450 * xfns.c (x_set_tool_bar_lines):
2451 * xterm.c (handle_one_xevent): Adjust users.
2452
73f82c7e
PE
24532013-09-11 Paul Eggert <eggert@cs.ucla.edu>
2454
2455 Fix corruption with multiple emacsclient -t instances (Bug#15222).
2456 This bug was introduced by my 2013-08-26 patch, which incorrectly
2457 assumed that the terminfo implementation doesn't use termcap buffers.
2458 * term.c (init_tty) [TERMINFO]: Remove optimization, as
2459 these buffers apparently are used after all.
2460 * termchar.h (TERMCAP_BUFFER_SIZE) [TERMINFO]: Define here too.
2461 (struct tty_display_info): Define members termcap_term_buffer and
2462 termcap_strings_buffer even if TERMINFO.
2463
53482f41
DA
24642013-09-11 Dmitry Antipov <dmantipov@yandex.ru>
2465
2466 Fix last change.
2467 * data.c (Feqlsign, Flss, Fgtr, Fleq, Fgeq): Add convenient
2468 'usage' docstring entry to pacify make-docfile.
2469
24702013-09-11 Barry O'Reilly <gundaetiapo@gmail.com>
2471
2472 Change comparison functions =, <, >, <=, >= to take many arguments.
2473 * data.c: Change comparison functions' interface and implementation.
2474 * lisp.h: Make arithcompare available for efficient two arg
2475 comparisons.
2476 * bytecode.c: Use arithcompare.
2477 * fileio.c: Use new interface.
2478
533f258f
SM
24792013-09-11 Stefan Monnier <monnier@iro.umontreal.ca>
2480
2481 * keyboard.c (read_char): Don't break immediate_echo (bug#15332).
2482
8c27f5ff
SM
24832013-09-10 Stefan Monnier <monnier@iro.umontreal.ca>
2484
2485 * eval.c (Feval): Document the new use of `lexical'.
2486
0750a308
DA
24872013-09-09 Dmitry Antipov <dmantipov@yandex.ru>
2488
2489 Review and drop old frame resize hack.
2490 * frame.h (struct frame): Remove force_flush_display_p.
2491 * dispnew.c (update_frame): Adjust user and don't call
2492 flush_frame here. The comment has said that there was an issues
2493 with redisplaying fringes, but I don't see any differences with
2494 and without this hack. Hopefully we can continue without it.
2495 * xdisp.c (clear_garbaged_frames): Adjust user and do not clear
2496 current frame matrices twice if resized_p is set.
2497
83fc0554
DA
24982013-09-09 Dmitry Antipov <dmantipov@yandex.ru>
2499
2500 Do not populate pure Xism x_sync to other ports.
2501 * frame.h (x_sync): Move under HAVE_X_WINDOWS.
2502 * frame.c (other_visible_frames) [HAVE_X_WINDOWS]: Use as such.
2503 * nsfns.m, w32xfns.c (x_sync): Remove no-op.
2504 * w32term.h (x_sync): Remove prototype.
2505
fd462129
DA
25062013-09-09 Dmitry Antipov <dmantipov@yandex.ru>
2507
2508 Cleanup frame flushing.
8c27f5ff
SM
2509 * dispextern.h (struct redisplay_interface):
2510 Drop flush_display_optional because flush_display is enough
fd462129
DA
2511 for X and flushing via RIF is just a no-op for others.
2512 * frame.h (flush_frame): New function.
2513 * dispnew.c (update_frame):
2514 * minibuf.c (read_minibuf):
2515 * xdisp.c (echo_area_display, redisplay_preserve_echo_area):
2516 Use it.
2517 * keyboard.c (detect_input_pending_run_timers): Do not flush
2518 all frames but selected one in redisplay_preserve_echo_area.
2519 * nsterm.m (ns_flush): Remove no-op.
2520 (ns_redisplay_interface): Adjust user.
2521 * w32term.h (x_flush): Remove no-op.
2522 (w32_redisplay_interface): Adjust user.
2523 * xterm.c (x_flush): Simplify because we do not flush all
2524 frames at once any more. Adjust comment.
2525 (x_redisplay_interface): Adjust user.
2526
4b73fc73
PE
25272013-09-07 Paul Eggert <eggert@cs.ucla.edu>
2528
2529 Port --without-x --enable-gcc-warnings to Fedora 19.
2530 * gfilenotify.c (globals_of_gfilenotify):
2531 Call g_type_init only if using an older glib version that needs it.
2532
77394d40
DA
25332013-09-06 Dmitry Antipov <dmantipov@yandex.ru>
2534
2535 * lisp.h (last_glyphless_glyph_frame, last_glyphless_glyph_face_id)
2536 (last_glyphless_glyph_merged_face_id): Remove declarations.
2537 * dispextern.h (merge_glyphless_glyph_face): Add prototype.
2538 * xdisp.c (last_glyphless_glyph_frame, last_glyphless_glyph_face_id)
2539 (last_glyphless_glyph_merged_face_id): Now static.
2540 (merge_escape_glyph_face): New function, refactored from...
2541 (get_next_display_element): ...here.
2542 (merge_glyphless_glyph_face): New function, refactored from...
2543 (produce_glyphless_glyph): ...here...
2544 * term.c (produce_glyphless_glyph): ...and here.
2545
306d67bd
SM
25462013-09-06 Stefan Monnier <monnier@iro.umontreal.ca>
2547
2548 * eval.c (eval_sub): Only call Ffunction if necessary.
2549
7f6c6450
DA
25502013-09-06 Dmitry Antipov <dmantipov@yandex.ru>
2551
2552 Attempt to make redisplay more selective when changing cursor type.
2553 * frame.h (struct frame): New bitfield cursor_type_changed.
2554 * xdisp.c (cursor_type_changed): Remove.
2555 (try_cursor_movement, redisplay_window, try_window_id)
2556 (set_frame_cursor_types, try_window_reusing_current_matrix):
2557 Adjust to use per-frame bitfield.
2558 (redisplay_internal): Look for cursor type change on each visible
2559 frame and consider all frames if cursor type has been changed on
2560 the frame other than selected. If cursor type has been changed on
2561 selected frame only, do not use fast update.
2562
bd0443bb
DA
25632013-09-06 Dmitry Antipov <dmantipov@yandex.ru>
2564
2565 Attempt to make redisplay more selective when changing fonts.
2566 * frame.h (struct frame): New bitfield fonts_changed.
2567 * dispextern.h (fonts_changed_p, adjust_glyphs): Remove declaration.
2568 (adjust_frame_glyphs): Add prototype.
2569 * dispnew.c (fonts_changed_p): Remove.
8bda01d3 2570 (adjust_glyphs): Remove because we do not
bd0443bb
DA
2571 adjust matrices on all frames at once any more.
2572 (adjust_frame_glyphs): Block and unblock input here.
2573 (adjust_glyph_matrix): Use fonts_changed.
2574 (change_frame_size_1): Use adjust_frame_glyphs.
2575 * font.c (font_open_entity): Use fonts_changed.
2576 * frame.c (set_menu_bar_lines, Fmake_terminal_frame):
2577 * w32fns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_show_tip):
2578 * window.c (Fdelete_other_windows_internal, Fwindow_resize_apply)
2579 (Fsplit_window_internal, Fdelete_window_internal, grow_mini_window)
2580 (shrink_mini_window, Fresize_mini_window_internal)
2581 (window_scroll_pixel_based, Fset_window_configuration)
2582 (apply_window_adjustment, Fset_window_vscroll):
2583 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_show_tip):
2584 Use adjust_frame_glyphs.
2585 * xdisp.c (redisplay_tool_bar, redisplay_window, try_window)
2586 (try_window_reusing_current_matrix, try_window_id, display_line)
2587 (IT_EXPAND_MATRIX_WIDTH): Use fonts_changed.
2588 (redisplay_internal): Consider fonts_changed and adjust frame
2589 matrices for each frame only if the frame is visible. If font
2590 has been changed on some frame during full redisplay, retry
2591 only visible frames where the font has been actually changed.
2592
b9695828
DA
25932013-09-05 Dmitry Antipov <dmantipov@yandex.ru>
2594
2595 Cache current header and mode line height for each window.
2596 * window.h (struct window): New fields mode_line_height
2597 and header_line_height.
2598 * window.c (make_window): Initialize them.
2599 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
2600 (CURRENT_HEADER_LINE_HEIGHT): Use them. Adjust comment.
2601 (current_mode_line_height, current_header_line_height):
2602 Remove declaration.
2603 * xdisp.c (current_mode_line_height, current_header_line_height):
2604 Remove.
2605 (pos_visible_p, init_xdisp): Adjust user.
2606 (redisplay_window): Invalidate mode_line_height and
2607 header_line_height if current and desired matrices do not agree.
2608
66738305
DA
26092013-09-05 Dmitry Antipov <dmantipov@yandex.ru>
2610
2611 * fontset.c, window.c, xdisp.c (toplevel): Use TERM_HEADER.
2612 * xfaces.c (toplevel) [HAVE_X_WINDOWS]: Do not include xterm.h twice.
2613
257b3b03
DA
26142013-09-05 Dmitry Antipov <dmantipov@yandex.ru>
2615
2616 Make --without-x compatible with --enable-gcc-warnings.
2617 * font.c (register_font_driver): Move check under HAVE_WINDOW_SYSTEM.
2618 * font.h (struct font_driver): Move draw, get_bitmap and free_bitmap
2619 members under HAVE_WINDOW_SYSTEM.
2620 * keyboard.c (make_lispy_focus_out): Likewise.
2621 (record_menu_key): Move under HAVE_MENUS.
2622 * xdisp.c (toplevel): Move hourglass_shown_p, hourglass_atimer and
2623 THIN_SPACE_WIDTH under HAVE_WINDOW_SYSTEM.
2624 (syms_of_xdisp): Adjust user.
2625 (window_box_edges): Define only if HAVE_WINDOW_SYSTEM.
2626 (start_hourglass, cancel_hourglass):
2627 * xfaces.c (toplevel): Likewise with PT_PER_INCH,
2628 clear_font_table_count, CLEAR_FONT_TABLE_COUNT
2629 and CLEAR_FONT_TABLE_NFONTS.
2630 (set_font_frame_param, clear_face_gcs, realize_non_ascii_face):
2631 Declare only if HAVE_WINDOW_SYSTEM.
2632 (lface_same_font_attributes_p, clear_face_gcs): Define only
2633 if HAVE_WINDOW_SYSTEM.
2634
98b7f4bd
DA
26352013-09-05 Dmitry Antipov <dmantipov@yandex.ru>
2636
2637 * frame.c (check_minibuf_window): Update 'frame' with frame pointer.
2638 * xterm.c (x_scroll_bar_handle_click) [!USE_TOOLKIT_SCROLL_BARS]:
2639 Don't pass C integer to XINT (tiny fix for 2013-09-03 change).
2640
a7e43722
SM
26412013-09-05 Stefan Monnier <monnier@iro.umontreal.ca>
2642
2643 * cmds.c (Fself_insert_command): Don't pass a non-integer to XINT.
2644
0c90b9ee
PE
26452013-09-04 Paul Eggert <eggert@cs.ucla.edu>
2646
2647 * alloc.c (make_event_array): First arg is now ptrdiff_t, not int.
2648 This fixes a type error on hosts where ptrdiff_t is wider than int.
2649
d99760fa
SM
26502013-09-04 Stefan Monnier <monnier@iro.umontreal.ca>
2651
6629638e
SM
2652 * keyboard.c (read_key_sequence_vs): New function.
2653 (Fread_key_sequence_vector, Fread_key_sequence): Use it to factor out
2654 common code.
2655
d99760fa
SM
2656 * callint.c (Fcall_interactively): Always return a vector for 'K'.
2657
224e313d
PE
26582013-09-04 Paul Eggert <eggert@cs.ucla.edu>
2659
2660 Makefile improvements.
2661 * Makefile.in (config.status): Don't use double-colon rules, as
2662 they are not portable according to POSIX. Fix shell typo with `;
2663 I guess this rule has never been tested?
2664 (VCSWITNESS): New macro, to override any environment var.
2665
6d6ed1af
DA
26662013-09-04 Dmitry Antipov <dmantipov@yandex.ru>
2667
2668 * xterm.h (struct x_display_info): Do not track X connection
2669 fd separately because it is always available from Display.
2670 * xterm.c (x_term_init, x_delete_terminal, x_delete_display):
2671 Adjust users.
2672
bc923770
DA
26732013-09-03 Dmitry Antipov <dmantipov@yandex.ru>
2674
2675 * buffer.c (drop_overlay):
2676 * fileio.c (restore_point_unwind): Prefer unchain_marker to
2677 Fset_marker (X, Qnil, ...) (which is the same but a bit slower).
2678
b1cf96de
DA
26792013-09-03 Dmitry Antipov <dmantipov@yandex.ru>
2680
2681 * buffer.c (Fmake_overlay, Fmove_overlay):
2682 * intervals.c (set_point_from_marker):
2683 * print.c (PRINTPREPARE): Prefer signal_error
2684 to plain error and report unsuitable marker too.
2685
d1fc6c21
DA
26862013-09-03 Dmitry Antipov <dmantipov@yandex.ru>
2687
2688 * xterm.h (struct scroll_bar): Prefer int to Lisp_Object
2689 for 'dragging' member.
d1ae6a0b
DA
2690 (struct x_output): Remove set-but-unused leftovers
2691 'left_before_move' and 'top_before_move'.
d1fc6c21
DA
2692 * gtkutil.c (xg_set_toolkit_scroll_bar_thumb):
2693 * xterm.c (xt_action_hook, xm_scroll_callback, xg_scroll_callback)
2694 (xg_end_scroll_callback, xaw_jump_callback, xaw_scroll_callback)
2695 (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
2696 (x_scroll_bar_set_handle, XTset_vertical_scroll_bar)
2697 (x_scroll_bar_handle_click, x_scroll_bar_note_movement)
d1ae6a0b 2698 (x_scroll_bar_report_motion, x_set_offset): Related users changed.
ec5e7504 2699 * xfns.c, image.c (XLIB_ILLEGAL_ACCESS): No longer needed.
d1fc6c21 2700
0ce9f6de
JD
27012013-09-03 Jan Djärv <jan.h.d@swipnet.se>
2702
2703 * nsfont.m (INVALID_GLYPH): New define.
2704 (nsfont_encode_char): Use INVALID_GLYPH.
2705 (ns_uni_to_glyphs): Ditto, check for NSNullGlyph (Bug#15138).
2706
b594a96c
DA
27072013-09-02 Dmitry Antipov <dmantipov@yandex.ru>
2708
2709 * xterm.c (x_last_mouse_movement_time): Revert last change.
2710 This code should use XDisplayMotionBufferSize to check display's
2711 motion history first, and there are few other issues as well.
2712 (x_scroll_bar_note_movement): Pass XMotionEvent rather than XEvent.
2713 (handle_one_xevent): Adjust user.
2714
8b098236
MR
27152013-09-02 Martin Rudalics <rudalics@gmx.at>
2716
9718b207
MR
2717 * dispnew.c (Flast_nonminibuf_frame): Move from here ...
2718 * frame.c (Flast_nonminibuf_frame): ... to here.
2719 (check_minibuf_window): Don't abort if no window was found
2720 (Bug#15247).
8b098236 2721
84e70bba
DA
27222013-09-02 Dmitry Antipov <dmantipov@yandex.ru>
2723
2724 Use XGetMotionEvents to ask the last mouse motion time from X server.
2725 * xterm.c (X_MOTION_HISTORY): Default to 1.
2726 (x_last_mouse_movement_time) [X_MOTION_HISTORY]: New function.
2727 (x_last_mouse_movement_time) [!X_MOTION_HISTORY]: Legacy version.
2728 (note_mouse_movement, x_scroll_bar_note_movement) [!X_MOTION_HISTORY]:
2729 Ifdef away legacy code.
2730 (XTmouse_position, x_scroll_bar_report_motion):
2731 Use x_last_mouse_movement_time.
fc85e20b
DA
2732 (handle_one_xevent): Use event.xunmap and not event.xmap when handling
2733 UnmapNotify event.
84e70bba 2734
1fccc530
DA
27352013-09-02 Dmitry Antipov <dmantipov@yandex.ru>
2736
2737 * msdos.c (last_mouse_window): Move to...
2738 (dos_rawgetc): ...this function and adjust comment.
2739 * nsterm.m (last_window): Rename to last_mouse_window, move to...
2740 (mouseMoved): ...this function and adjust comment.
2741 * w32term.c (last_window): Likewise with...
2742 (w32_read_socket): ...this function.
2743 * xterm.c (last_window): Likewise with...
2744 (handle_one_xevent): ...this function.
2745
0ab10992
DA
27462013-09-02 Dmitry Antipov <dmantipov@yandex.ru>
2747
b7da754d 2748 * window.h (Vmouse_window, Vmouse_event): Remove the leftovers.
0ab10992
DA
2749 * xterm.c (toplevel): Drop obsolete comment and move compose_status...
2750 (handle_one_xevent): ...to here.
2751 (STORE_KEYSYM_FOR_DEBUG): Move under ENABLE_CHECKING and make no-op
2752 otherwise.
2753
0c7f856e
DA
27542013-09-02 Dmitry Antipov <dmantipov@yandex.ru>
2755
2756 * msdos.c (IT_set_terminal_window): Remove no-op.
2757 (initialize_msdos_display): Adjust terminal setup.
2758 * w32console.c (w32con_set_terminal_window): Remove no-op.
2759 (initialize_w32_display): Adjust terminal setup.
2760 * w32term.c (w32_set_terminal_window): Remove no-op.
2761 (w32_create_terminal): Adjust terminal setup.
2762 * xterm.c (XTset_terminal_window): Remove no-op.
2763 (x_create_terminal): Adjust terminal setup.
2764
a892a94c
DA
27652013-09-01 Dmitry Antipov <dmantipov@yandex.ru>
2766
2767 * nsterm.m (ns_set_terminal_modes, ns_reset_terminal_modes):
2768 Remove no-ops.
2769 (ns_create_terminal): Adjust terminal setup.
2770 * w32term.c (w32_set_terminal_modes, w32_reset_terminal_modes):
2771 Remove no-ops.
2772 (w32_create_terminal): Adjust terminal setup.
2773 * xterm.c (XTset_terminal_modes, XTreset_terminal_modes):
2774 Remove no-ops.
2775 (x_create_terminal): Adjust terminal setup.
2776
cf91889a
DA
27772013-09-01 Dmitry Antipov <dmantipov@yandex.ru>
2778
2779 * dispextern.h (SET_TEXT_POS_FROM_MARKER): Indent.
2780 (CLIP_TEXT_POS_FROM_MARKER): New macro.
2781 * dispnew.c (buffer_posn_from_coords):
2782 * window.c (Fwindow_end, displayed_window_lines):
2783 * xdisp.c (redisplay_mode_lines): Use it.
2784
5b0891df
JD
27852013-09-01 Jan Djärv <jan.h.d@swipnet.se>
2786
2787 * fontset.c (face_for_char): Check char in the current face font first
2788 if HAVE_NS (Bug#15138).
2789
0a357e98
MR
27902013-08-31 Martin Rudalics <rudalics@gmx.at>
2791
2792 * window.c (temp_output_buffer_show): Make sure window returned
2793 by display_buffer is live (Bug#15213).
2794
9d7693d7
DA
27952013-08-30 Dmitry Antipov <dmantipov@yandex.ru>
2796
2797 Minor cleanup to avoid forward declarations.
2798 * coding.h (struct ccl_spec): Remove forward declaration.
2799 * composite.h (toplevel): Include font.h.
2800 (struct composition_it, struct face, struct font_metrics):
2801 Remove forward declaration.
2802 * dispextern.h (struct image, struct atimer): Likewise.
2803 * emacsgtkfixed.h (struct frame): Likewise.
2804 * emacsgtkfixed.c (toplevel): Reorder headers and drop stdio.h.
2805 * font.h (struct font_driver, struct font, struct glyph_string)
2806 (struct face): Remove forward declaration.
2807 * fontset.h (struct face, struct font): Likewise.
2808 * frame.h (toplevel): Style cleanup.
2809 (enum output_method): Move to...
2810 * termhooks.h (enum output_method): ...here.
2811 (struct glyph, struct frame, struct ns_display_info)
2812 (struct x_display_info, struct w32_display_info):
2813 Remove forward declaration.
2814 * xterm.h (toplevel): Include termhooks.h.
2815 (struct font, struct window, struct glyph_matrix, struct frame)
2816 (struct input_event, struct face, struct image): Remove forward
2817 declaration.
2818 * gtkutil.h (struct _widget_value): Likewise.
2819 * keyboard.h (toplevel): Include termhooks.h.
2820 (struct input_event): Remove forward declaration.
2821
032f7451
DA
28222013-08-29 Dmitry Antipov <dmantipov@yandex.ru>
2823
2824 * intervals.c (set_point_from_marker): New function.
2825 * editfns.c (Fgoto_char):
2826 * process.c (Finternal_default_process_filter):
2827 * window.c (select_window_1): Use it.
2828 * buffer.h (set_point_from_marker): Add prototype.
2829
3f940c5a
EZ
28302013-08-29 Eli Zaretskii <eliz@gnu.org>
2831
2832 * w32.c (term_winsock): Call release_listen_threads before calling
2833 WSACleanup.
2834 (_sys_wait_accept): Wait for accept event in a loop with a finite
2835 timeout, instead of waiting indefinitely. Will hopefully avoid
2836 hanging during exit because WSACleanup deadlocks waiting for the
2837 event object to be released. (Bug#14333)
2838
2839 * w32proc.c (release_listen_threads): New function, signals all
2840 the reader threads that listen for connections to stop waiting.
2841
2842 * w32.h (release_listen_threads): Add prototype.
2843
101ed2bb
DA
28442013-08-29 Dmitry Antipov <dmantipov@yandex.ru>
2845
2846 * alloc.c (Fmake_marker, build_marker): Zero need_adjustment
2847 field of new marker (for sanity and safety).
20de2834
DA
2848 * lisp.h (XSETMARKER): Remove unused macro (it doesn't work
2849 anyway because XMISCTYPE is a function and can't be an lvalue).
101ed2bb 2850
1f5cf200
DA
28512013-08-29 Dmitry Antipov <dmantipov@yandex.ru>
2852
2853 * xterm.c (x_clear_area): Lost 7th arg because it is always False.
2854 (x_after_update_window_line, x_scroll_bar_create):
2855 (x_scroll_bar_set_handle, XTset_vertical_scroll_bar):
2856 (handle_one_xevent, x_clear_frame_area):
2857 * gtkutil.c (xg_clear_under_internal_border, xg_update_scrollbar_pos):
2858 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines): Adjust users.
2859 * xterm.h (x_clear_area): Adjust prototype.
2860
d2b36813
DA
28612013-08-29 Dmitry Antipov <dmantipov@yandex.ru>
2862
2863 Hook scanning and indentation functions to find_newline. This helps
2864 to avoid duplicated code and renders more respect to newline cache.
2865 * lisp.h (scan_newline): Prefer ptrdiff_t to EMACS_INT.
2866 * cmds.c (Fforward_line):
2867 * indent.c (scan_for_column, Fcurrent_indentation, indented_beyond_p):
2868 Use find_newline and avoid unnecessary point movements.
2869 * search.c (scan_newline): Implement on top of find_newline.
2870
3ec7babc
SM
28712013-08-28 Stefan Monnier <monnier@iro.umontreal.ca>
2872
2873 * eval.c (Ffuncall): Fix handling of ((lambda ..) ..) in lexically
2874 scoped code (bug#11258).
2875
5ab473cd
JD
28762013-08-28 Davor Cubranic <cubranic@stat.ubc.ca> (tiny change)
2877
2878 * nsterm.m (last_window): New variable.
2879 (EV_TRAILER2): New macro.
2880 (EV_TRAILER): Call EV_TRAILER2.
2881 (mouseMoved:): Add support for mouse-autoselect-window
2882 on nextstep (Bug#6888).
2883
78779650
AS
28842013-08-28 Andreas Schwab <schwab@suse.de>
2885
2886 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE, CHAR_HEAD_P)
2887 (SINGLE_BYTE_CHAR_P, SAME_CHARSET_P, MAKE_CHAR, BYTE8_TO_CHAR):
2888 Remove unused macro definitions.
2889 (CHARSET_RANGE_TABLE_BITS, EXTEND_RANGE_TABLE)
3ec7babc
SM
2890 (SET_RANGE_TABLE_WORK_AREA_BIT, SET_RANGE_TABLE_WORK_AREA):
2891 Only define if emacs.
78779650 2892
c3c4768d
DA
28932013-08-28 Dmitry Antipov <dmantipov@yandex.ru>
2894
2895 Prefer enum glyph_row_area to int where appropriate.
2896 * dispextern.h (enum glyph_row_area): Add ANY_AREA member.
2897 Fix comment.
2898 (window_box, window_box_width, window_box_left, window_box_left_offset)
2899 (window_box_right, window_box_right_offset): Adjust prototypes.
2900 * xdisp.c (window_box, window_box_width, window_box_left)
2901 (window_box_left_offset, window_box_right, window_box_right_offset):
2902 Use enum glyph_row_area. Adjust users and tweak comment where needed.
2903 (window_box_edges): Likewise. Lost 2nd arg since it is always ANY_AREA.
2904 * nsterm.m (ns_clip_to_row):
2905 * w32term.c (w32_clip_to_row):
2906 * xterm.c (x_clip_to_row): Likewise.
2907
6bdcbfe1
DA
29082013-08-28 Dmitry Antipov <dmantipov@yandex.ru>
2909
2910 * buffer.c (Foverlays_at, Foverlays_in, Fnext_overlay_change)
2911 (Fprevious_overlay_change): Fast path for buffer with no overlays.
2912
50b13cde
PE
29132013-08-28 Paul Eggert <eggert@cs.ucla.edu>
2914
2915 * Makefile.in (SHELL): Now @SHELL@, not /bin/sh,
2916 for portability to hosts where /bin/sh has problems.
2917
f60e429a
DA
29182013-08-28 Dmitry Antipov <dmantipov@yandex.ru>
2919
2920 Redesign redisplay interface to drop global output_cursor.
2921 * dispextern.h (struct redisplay_interface): Remove cursor_to member.
2922 (toplevel): Remove declaration of output_cursor.
2923 (set_output_cursor, x_cursor_to): Remove prototype.
2924 * window.h (struct window): New member output_cursor.
2925 (output_cursor_to): New function to replace RIF member.
2926 * dispnew.c (redraw_overlapped_rows, update_marginal_area)
2927 (update_text_area, set_window_cursor_after_update): Use it.
2928 * xdisp.c (output_cursor, set_output_cursor, x_cursor_to): Remove.
2929 (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
2930 * nsterm.m (ns_update_window_begin, ns_update_window_end):
2931 * w32term.c (x_update_window_begin, x_update_window_end):
2932 * xterm.c (x_update_window_begin, x_update_window_end):
2933 Adjust to use per-window output cursor.
2934
43aac990
PE
29352013-08-27 Paul Eggert <eggert@cs.ucla.edu>
2936
d486344e
PE
2937 Simplify SELECT_TYPE-related code.
2938 Like EMACS_TIME, this portability layer is no longer needed, since
2939 Emacs has been using fd_set as a portability layer for some time.
2940 * sysselect.h (FD_SETSIZE): Rename from MAXDESC. All uses changed.
2941 (SELECT_TYPE): Remove. All uses changed to fd_set.
2942 (fd_set) [!FD_SET]: New typedef.
2943
43aac990
PE
2944 Simplify EMACS_TIME-related code.
2945 This portability layer is no longer needed, since Emacs has been
2946 using struct timespec as a portability layer for some time.
2947 * atimer.h, buffer.h, dispextern.h, xgselect.h:
2948 Include <time.h> rather than "systime.h"; that's all that's needed now.
2949 * dispnew.c: Include <timespec.h> rather than "systime.h";
2950 that's all that's needed now.
2951 * systime.h (EMACS_TIME): Remove. All uses changed to struct timespec.
2952 (EMACS_TIME_RESOLUTION): Remove. All uses changed to
2953 TIMESPEC_RESOLUTION.
2954 (LOG10_EMACS_TIME_RESOLUTION): Remove. All uses changed to
2955 LOG10_TIMESPEC_RESOLUTION.
2956 (EMACS_SECS, emacs_secs_addr): Remove. All uses changed to tv_sec.
2957 (EMACS_NSECS): Remove. All uses changed to tv_nsec.
2958 (make_emacs_time): Remove. All used changed to make_timespec.
2959 (invalid_timespec): Rename from invalid_emacs_time. All uses changed.
2960 (current_timespec): Rename from current_emacs_time. All uses changed.
2961 (add_emacs_time): Remove. All uses changed to timespec_add.
2962 (sub_emacs_time): Remove. All uses change dot timespec_sub.
2963 (EMACS_TIME_SIGN): Remove. All uses changed to timespec_sign.
2964 (timespec_valid_p): Rename from EMACS_TIME_VALID_P. All uses changed.
2965 (EMACS_TIME_FROM_DOUBLE): Remove. All uses changed to dtotimespec.
2966 (EMACS_TIME_TO_DOUBLE): Remove. All uses changed to timespectod.
2967 (current_timespec): Rename from current_emacs_time. All uses changed.
2968 (EMACS_TIME_EQ, EMACS_TIME_LT, EMACS_TIME_LE): Remove. All uses
2969 changed to timespec_cmp.
2970 * xgselect.c: Include <timespec.h>, since our .h files don't.
2971
d350e350
DA
29722013-08-27 Dmitry Antipov <dmantipov@yandex.ru>
2973
2974 * xterm.h (FONT_TYPE_FOR_UNIBYTE, FONT_TYPE_FOR_MULTIBYTE:)
2975 * nsterm.h (FONT_TYPE_FOR_UNIBYTE, FONT_TYPE_FOR_MULTIBYTE):
2976 Remove the leftovers.
2977 * gtkutil.c (toplevel): Do not declare Qxft but include
2978 font.h to do so.
2979 * image.c (toplevel): Do not declare Vlibrary_cache because
2980 it's already done in lisp.h.
2981
9fed9729
DA
29822013-08-27 Dmitry Antipov <dmantipov@yandex.ru>
2983
2984 * lisp.h (Mouse_HLInfo): Move from here...
2985 * dispextern.h (Mouse_HLInfo): ...to here and offload lisp.h.
2986 (reset_mouse_highlight): New function.
2987 * msdos.c (dos_set_window_size, IT_update_begin)
2988 (internal_terminal_init):
2989 * nsterm.m (ns_update_window_end, x_free_frame_resources)
2990 (ns_initialize_display_info):
2991 * w32console.c (initialize_w32_display):
2992 * w32term.c (x_update_window_end, x_free_frame_resources)
2993 (w32_initialize_display_info):
2994 * xterm.c (x_update_window_end, x_free_frame_resources, x_term_init):
2995 * window.c (Fdelete_other_windows_internal):
2996 * xdisp.c (clear_mouse_face, cancel_mouse_face): Use it.
2997 * termchar.h (toplevel):
2998 * xterm.h (toplevel): Include dispextern.h.
2999
f462f075
PE
30002013-08-26 Paul Eggert <eggert@cs.ucla.edu>
3001
3002 Fix minor problems found by static checking.
3003 * image.c (XGetPixel, XPutPixel) [HAVE_NS]: Now static.
3004 (expect): Avoid nested-if warning.
3005 (x_build_heuristic_mask) [HAVE_NS]: Avoid unused-var warning.
3006 * nsmenu.m (fillWithWidgetValue:): Avoid type warning.
3007 * nsterm.h, nsterm.m (ns_select):
3008 * xgselect.c, xgselect.h (xg_select):
3009 Adjust signature to better match pselect's.
3010 * nsterm.m (ns_select):
3011 Don't set *TIMEOUT, since pselect doesn't.
3012 * regex.c (whitespace_regexp): Now const_re_char *, to avoid
3013 diagnostic about assigning const char * to it.
3014 * xfaces.c (x_display_info) [HAVE_NS]: Remove; unused.
3015
068f9124
SM
30162013-08-26 Stefan Monnier <monnier@iro.umontreal.ca>
3017
3018 * lread.c (substitute_object_recurse): Handle hash-tables as well
3019 (bug#15190).
3020
f5adc984
PE
30212013-08-26 Paul Eggert <eggert@cs.ucla.edu>
3022
1fc8eb33
PE
3023 Fix unlikely core dump in init_tty, and simplify terminfo case.
3024 * term.c (init_tty) [TERMINFO]: Fix check for buffer overrun.
3025 The old version incorrectly dumped core if malloc returned a
3026 buffer containing only non-NUL bytes.
3027 (init_tty): Do not allocate or free termcap buffers; the
3028 struct does that for us now.
3029 * termchar.h (TERMCAP_BUFFER_SIZE) [!TERMINFO]: New constant.
3030 (struct tty_display_info): Define members termcap_term_buffer and
3031 termcap_strings_buffer only if !TERMINFO, since terminfo doesn't
3032 use them. Allocate them directly in struct rather than indirectly
3033 via a pointer, to simplify init_tty.
3034
f5adc984
PE
3035 * frame.c (check_minibuf_window): Initialize 'window' properly,
3036 so that Emacs reliably aborts later if 'window' is not initialized.
3037
efec3894
JD
30382013-08-26 Jan Djärv <jan.h.d@swipnet.se>
3039
3040 * gtkutil.c (xg_initialize): Set gtk-menu-bar-accel to "" instead
3041 of VoidSymbol (Bug#15154).
3042
e1d0341e
DA
30432013-08-26 Dmitry Antipov <dmantipov@yandex.ru>
3044
3045 * lisp.h (Mouse_HLInfo): Drop set-but-unused members
3046 mouse_face_beg_y and mouse_face_end_y.
3047 * xdisp.c (note_tool_bar_highlight, mouse_face_from_buffer_pos)
3048 (mouse_face_from_string_pos, note_mode_line_or_margin_highlight):
3049 Adjust users and update comment where appropriate.
3050
bfff6445
MR
30512013-08-26 Martin Rudalics <rudalics@gmx.at>
3052
3053 * frame.c (check_minibuf_window): New function.
068f9124
SM
3054 (delete_frame, Fmake_frame_invisible, Ficonify_frame):
3055 Call check_minibuf_window (Bug#15183).
bfff6445 3056
c80016b3
DA
30572013-08-26 Dmitry Antipov <dmantipov@yandex.ru>
3058
3059 * window.h (struct window): Replace last_cursor with last_cursor_vpos
3060 because this is the only last cursor data we need to keep and consult.
3061 * window.c (replace_window, set_window_buffer, Fsplit_window_internal):
3062 * xdisp.c (mark_window_display_accurate_1, try_cursor_movement):
3063 Adjust users.
3064
de396731
DA
30652013-08-26 Dmitry Antipov <dmantipov@yandex.ru>
3066
068f9124
SM
3067 Fix recovering from possible decompression error.
3068 Since insert_from_gap doesn't always move point, we can't use PT as
de396731 3069 the position where the partially decompressed data ends, and
447218dd 3070 should count how many bytes was produced so far.
de396731
DA
3071 * decompress.c (struct decompress_unwind_data): Add nbytes member.
3072 (unwind_decompress): Really delete partially uncompressed data.
3073 (Fzlib_decompress_region): Take decompressed data size into account.
3074
c76826d9
DA
30752013-08-26 Dmitry Antipov <dmantipov@yandex.ru>
3076
3077 * syntax.c (init_syntax_once): Adjust comment and do an early
3078 initialization of Qchar_table_extra_slots just once...
3079 * casetab.c (init_casetab_once):
3080 * category.c (init_category_once):
3081 * character.c (syms_of_character):
3082 * coding.c (syms_of_coding):
3083 * xdisp.c (syms_of_xdisp): ...and omit it here.
3084
b34454d0
EZ
30852013-08-24 Eli Zaretskii <eliz@gnu.org>
3086
11f20add
EZ
3087 * xdisp.c (get_next_display_element): Don't apply to characters
3088 from a display vector the logic of setting it->end_of_box_run_p
3089 suitable for characters from a buffer. (Bug#15175)
3090
b34454d0
EZ
3091 * w32.c (fdutimens): Call 'utime', which is implemented on w32.c
3092 to handle directories, rather than '_utime' which doesn't.
3093 (Bug#15176)
3094
6e1b469e
JD
30952013-08-24 Jan Djärv <jan.h.d@swipnet.se>
3096
3097 * gtkutil.c (x_wm_set_size_hint): Don't set hints when maximized
3098 or fullscreen (Bug#14627).
3099
9c05bccf
PE
31002013-08-24 Paul Eggert <eggert@cs.ucla.edu>
3101
3102 System-dependent integer overflow fixes.
3103 * process.c (Fset_process_window_size): Signal an error if
3104 the window size is outside the range supported by the lower level.
3105 * sysdep.c (set_window_size): Return negative on error,
3106 nonnegative on success, rather than -1, 0, 1 on not in system,
3107 failure, success. This is simpler. Caller changed.
3108 (serial_configure): Remove unnecessary initialization of local.
3109 (procfs_get_total_memory) [GNU_LINUX]: Don't assume system memory
3110 size fits in unsigned long; this isn't true on some 32-bit hosts.
3111 Avoid buffer overrun if some future version of /proc/meminfo has a
3112 variable name longer than 20 bytes.
3113 (system_process_attributes) [__FreeBSD__]:
3114 Don't assume hw.availpages fits in 'int'.
3115
c365c355
PE
31162013-08-23 Paul Eggert <eggert@cs.ucla.edu>
3117
3118 Don't let very long directory names overrun the stack.
3119 Fix some related minor problems involving "//", vfork.
3120 * callproc.c (encode_current_directory): New function.
3121 (call_process): Don't append "/"; not needed.
3122 * fileio.c (file_name_as_directory_slop): New constant.
3123 (file_name_as_directory): Allow SRC to be longer than SRCLEN;
3124 this can save the caller having to alloca.
3125 (Ffile_name_as_directory, Fdirectory_file_name, Fexpand_file_name):
3126 Use SAFE_ALLOCA, not alloca.
3127 (directory_file_name, Fexpand_file_name): Leave leading "//"
3128 alone, since it can be special even on POSIX platforms.
3129 * callproc.c (call_process):
3130 * process.c (Fformat_network_address):
3131 * sysdep.c (sys_subshell):
3132 Use encode_current_directory rather than rolling our own.
3133 (create_process): No need to encode directory; caller does that now.
3134 * process.h (encode_current_directory): New decl.
3135 * sysdep.c (sys_subshell): Work even if vfork trashes saved_handlers.
3136 Rework to avoid 'goto xyzzy;'.
3137
6c6014d4
EZ
31382013-08-23 Eli Zaretskii <eliz@gnu.org>
3139
3140 * xdisp.c (handle_face_prop): If the default face was remapped use
3141 the remapped face for strings from prefix properties. (Bug#15155)
3142
9997ec56
DA
31432013-08-23 Dmitry Antipov <dmantipov@yandex.ru>
3144
3145 Minor cleanup for redisplay interface and few related functions.
3146 * frame.h (enum text_cursor_kinds): Move from here...
3147 * dispextern.h (enum text_cursor_kinds): ...to here.
3148 (toplevel): Drop unnecessary declarations.
3149 (struct redisplay_interface): Use bool and enum text_cursor_kinds
3150 in update_window_end_hook and draw_window_cursor functions.
3151 (display_and_set_cursor, x_update_cursor): Adjust prototypes.
3152 * nsterm.m (ns_update_window_end, ns_draw_window_cursor):
ffb3f67a 3153 * w32term.c (x_update_window_end, w32_draw_window_cursor):
9997ec56
DA
3154 * xterm.c (x_update_window_end, x_draw_window_cursor):
3155 * xdisp.c (display_and_set_cursor, update_window_cursor)
3156 (update_cursor_in_window_tree, x_update_cursor): Use bool and
3157 enum text_cursor_kinds where appropriate.
3158
7f780da6
DA
31592013-08-23 Dmitry Antipov <dmantipov@yandex.ru>
3160
3161 Redesign redisplay interface to drop updated_row and updated_area.
3162 * dispextern.h (updated_row, updated_area): Remove declaration.
3163 (struct redisplay_interface): Pass glyph row and row area parameters
3164 to write_glyphs, insert_glyphs and clear_end_of_line functions.
3165 (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
3166 Adjust prototypes.
3167 * dispnew.c (updated_row, updated_area): Remove.
3168 (redraw_overlapped_rows, update_window_line): Adjust user.
3169 (update_marginal_area, update_text_area): Likewise. Pass updated row
3170 as a parameter. Prefer enum glyph_row_area to int where appropriate.
3171 * xdisp.c (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
3172 Adjust users.
3173
26495794
PE
31742013-08-22 Paul Eggert <eggert@cs.ucla.edu>
3175
3176 * process.c (flush_pending_output): Remove stub.
3177 All uses removed.
3178
4a88129a
PE
31792013-08-21 Paul Eggert <eggert@cs.ucla.edu>
3180
3181 * callproc.c: Fix race that killed background processes (Bug#15144).
3182 (call_process): New arg TEMPFILE_INDEX. Callers changed.
3183 Record deleted process-id in critical section, not afterwards.
3184 Don't mistakenly kill process created by a call-process invocation
3185 that discards output and does not wait.
3186
0c5307b0
DA
31872013-08-21 Dmitry Antipov <dmantipov@yandex.ru>
3188
3189 Fix compilation with GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE
3190 and GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES.
3191 * alloc.c (toplevel): Remove unnecessary nested #if...#endif.
3192 (mark_maybe_object) [!GC_MARK_STACK]: Define to emacs_abort
3193 to shut up compiler in mark_object.
3194 (dump_zombies): Convert to global and add EXTERNALLY_VISIBLE.
3195
0d7c1e66
PE
31962013-08-21 Paul Eggert <eggert@cs.ucla.edu>
3197
3198 * process.c (allocate_pty) [PTY_OPEN]: Set fd's FD_CLOEXEC flag.
3199 We can't portably rely on PTY_OPEN doing that, even if
3200 it calls posix_openpt with O_CLOEXEC.
3201
3f246b65
KH
32022013-08-20 Kenichi Handa <handa@gnu.org>
3203
3204 * character.c (string_char): Improve commentary.
3205
8c2f38aa
PE
32062013-08-20 Paul Eggert <eggert@cs.ucla.edu>
3207
3208 * image.c (SIGNATURE_DIGESTSIZE): Remove.
3209 (struct animation_cache): Make signature a flexible array member.
3210 All uses changed. This is a tad slower but may insulate us better
3211 from future changes to ImageMagick.
3212
bb566cea
PE
32132013-08-19 Paul Eggert <eggert@cs.ucla.edu>
3214
3215 * image.c: Shrink memory needed for animation cache.
3216 (SIGNATURE_DIGESTSIZE): New constant.
3217 (struct animation_cache): Make 'signature' a fixed size array of bytes.
3218 (imagemagick_create_cache): Copy the signature. This saves
3219 several KB of memory that ImageMagick wastes per signature.
3220 Don't bother updating the update_time, as the caller does that now.
3221 (imagemagick_prune_animation_cache): Don't destroy the signature, as
3222 it's a fixed size struct member now.
3223 (imagemagick_get_animation_cache): Always destroy the signature,
3224 as it's now imagemagick_create_cache's responsibility to copy it.
3225 Avoid duplicate calls to strcmp and to imagemagick_create_cache,
3226 and use memcmp rather than strcmp.
3227 eassert that ImageMagick returns a signature of the specified length.
3228
6da26928
LMI
32292013-08-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
3230
3231 * image.c (imagemagick_get_animation_cache): Don't segfault on
3232 each invocation.
453f4022
LMI
3233 (imagemagick_get_animation_cache): Revert to previous definition
3234 so that it actually works. But keep the memory leak fix.
3235 (imagemagick_get_animation_cache): Fix memory leak.
6da26928 3236
22490125
PE
32372013-08-19 Paul Eggert <eggert@cs.ucla.edu>
3238
d0139df5
PE
3239 * image.c: Fix animation cache signature memory leak.
3240 Fix some other minor performance problems while we're at it.
3241 (imagemagick_create_cache): Clear just the members that
3242 need clearing. Don't set update_time, as caller does that now.
3243 (imagemagick_prune_animation_cache, imagemagick_get_animation_cache):
3244 Simplify by using pointer-to-pointer instead of a prev pointer.
3245 (imagemagick_prune_animation_cache): Use make_emacs_time rather
3246 than EMACS_TIME_FROM_DOUBLE, and DestroyString rather than free.
3247 (imagemagick_get_animation_cache): Don't xstrdup the image signature;
3248 it's already a copy. Free the signature probe unless it's cached.
3249
22490125
PE
3250 * process.c (handle_child_signal): Fix crash; deleted pid (Bug#15106).
3251 This was introduced by my 2013-08-12 fix for Bug#15035.
3252
deb31e75
DA
32532013-08-19 Dmitry Antipov <dmantipov@yandex.ru>
3254
3255 * image.c (imagemagick_create_cache, imagemagick_get_animation_cache)
3256 (imagemagick_prune_animation_cache): Now static.
3257
319a4d03
LMI
32582013-08-18 Lars Magne Ingebrigtsen <larsi@gnus.org>
3259
3260 * image.c (imagemagick_get_animation_cache): Don't segfault when
3261 pruning all entries.
3262
f747d82e
KB
32632013-08-18 Ken Brown <kbrown@cornell.edu>
3264
3265 * sheap.c (STATIC_HEAP_SIZE): Adjust to current needs; use bigger
3266 static heap if ENABLE_CHECKING is defined.
3267 (max_bss_sbrk_ptr): New variable.
3268 (bss_sbrk): Use it.
3269 (report_sheap_usage): Report maximum static heap usage instead of
3270 ending static heap usage.
3271
d2c28fab
EZ
32722013-08-17 Eli Zaretskii <eliz@gnu.org>
3273
3274 * decompress.c (Fzlib_available_p) [WINDOWSNT]: Update the value
3275 of zlib_initialized according to the results of calling
3276 init_zlib_functions.
3277
274ff63f
LMI
32782013-08-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
3279
3280 * image.c: Implement an ImageMagick per-image cache.
8a6f875f 3281 (imagemagick_get_animation_cache): Fix a double-free error.
49ceb676
LMI
3282 (imagemagick_load_image): Remove the ping_wand code, which only
3283 apparently saved time on invalid animated images, and slowed down
3284 everything else. Optimise for the common case.
274ff63f 3285
2bede2ed
XF
32862013-08-16 Xue Fuqiao <xfq.free@gmail.com>
3287
70ff8240
XF
3288 * buffer.c (syms_of_buffer) <buffer-undo-list>: Doc fix.
3289
de179a3e
XF
3290 * editfns.c (insert_before_markers): Mention overlay in the doc string.
3291
2bede2ed
XF
3292 * marker.c (set_marker): Remove documentation of undefined behavior.
3293
703dbeba
LMI
32942013-08-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
3295
3296 * image.c (imagemagick_compute_animated_image): Animate correctly
3297 when sub-images are smaller than the main image.
1d18b1e6
LMI
3298 (imagemagick_compute_animated_image): Setting the iterator row to
3299 zero is apparently not allowed.
79670014
LMI
3300 (imagemagick_compute_animated_image): Allow images that say they
3301 have sub-images that are bigger than the main image, but just crop
3302 them.
703dbeba 3303
63216c5e
JD
33042013-08-15 Jan Djärv <jan.h.d@swipnet.se>
3305
3306 * nsmenu.m (menuWillOpen:): Fix preprocessor test (Bug#15001).
3307
a5b5f73f
LMI
33082013-08-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
3309
3310 * image.c (imagemagick_compute_animated_image): Respect the GIF
3311 disposal methods.
3312
0fe73012
KB
33132013-08-15 Ken Brown <kbrown@cornell.edu>
3314
3315 * emacs.c (main): Update comment about G_SLICE_ALWAYS_MALLOC.
3316 * gmalloc.c (memalign) [CYGWIN]: Revert last change; it's not
3317 needed.
3318
691a357f
PE
33192013-08-15 Paul Eggert <eggert@cs.ucla.edu>
3320
3321 Fix minor problems found by static checking.
3322 * frame.c (delete_frame):
3323 * xdisp.c (next_element_from_display_vector):
3324 Avoid uninitialized local.
3325 * image.c (imagemagick_compute_animated_image): Port to C89.
3326 Prefer usual GNU indentation style for loops.
3327 Be more careful about bizarrely large sizes, by using ptrdiff_t
3328 instead of int.
3329
42fe2e88
DA
33302013-08-15 Dmitry Antipov <dmantipov@yandex.ru>
3331
3332 Fix infinite frame selection loop (Bug#15025).
3333 * frame.c (delete_frame): Prefer fast ad-hoc loop to next_frame.
3334
d39a3da6
EZ
33352013-08-15 Eli Zaretskii <eliz@gnu.org>
3336
068f9124
SM
3337 * xdisp.c (compute_window_start_on_continuation_line):
3338 When WORD_WRAP is in effect, use move_it_to instead of move_it_by_lines
d39a3da6
EZ
3339 to make sure we end up setting the window start at the leftmost
3340 visible character of the display line. This avoids funky
3341 horizontal shifting because the window start is not kept on the
3342 same position. (Bug#15090)
05426239
EZ
3343 (next_element_from_display_vector): Support 'box' face attribute
3344 in the face definitions of a display vector. (Bug#15099)
d39a3da6 3345
6e856b69
LMI
33462013-08-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
3347
3348 * image.c (imagemagick_compute_animated_image): Implement animated
3349 images (bug#14700).
995be755
LMI
3350 (imagemagick_compute_animated_image): Fix some compilation
3351 warnings. Implement a very simple cache to make the animation
3352 usable at all, but it should be replaced with a per-image cache.
6e856b69 3353
d5a1acfa
DA
33542013-08-15 Dmitry Antipov <dmantipov@yandex.ru>
3355
3356 * lisp.h (FOR_EACH_ALIST_VALUE): New macro
3357 to do `for' loops over alist values.
3358 * buffer.h (FOR_EACH_BUFFER):
3359 * process.c (FOR_EACH_PROCESS): Use it.
3360 (handle_child_signal, status_notify, Fget_buffer_process)
3361 (kill_buffer_processes): Use FOR_EACH_PROCESS.
3362
9c253307
DA
33632013-08-15 Dmitry Antipov <dmantipov@yandex.ru>
3364
3365 * term.c (get_named_tty, create_tty_output, tty_free_frame_resources)
3366 (tty_free_frame_resources, delete_tty): Prefer eassert to emacs_abort.
3367 * image.c (make_image_cache): For struct image_cache, prefer xmalloc
3368 to xzalloc and so avoid redundant call to memset.
3369 * xterm.c (x_term_init): Avoid unnecessary initializations of dpyinfo
3370 members because it is allocated with xzalloc and so already zeroed.
3371
05e64f9f
KB
33722013-08-14 Ken Brown <kbrown@cornell.edu>
3373
3374 * gmalloc.c (memalign) [CYGWIN]: Rename to emacs_memalign
3375 (Bug#15094).
3376
5b71542d
DA
33772013-08-14 Dmitry Antipov <dmantipov@yandex.ru>
3378
3379 Utility function and macro to copy Lisp string to C string.
3380 * lisp.h (xlispstrdupa): New macro.
3381 (xlispstrdup): New prototype.
3382 * alloc.c (xlispstrdup): New function.
3383 * callint.c (Fcall_interactively):
3384 * fileio.c (Ffile_name_directory, Fexpand_file_name)
3385 (Fsubstitute_in_file_name):
3386 * frame.c (Fmake_terminal_frame): Use xlispstrdupa.
3387 * image.c (x_create_bitmap_from_file):
3388 * w32term.c (w32_term_init):
3389 * xterm.c (x_term_init): Use xlispstrdup.
3390
71530c97
LMI
33912013-08-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
3392
4ce82fb8
LMI
3393 * image.c (imagemagick_load_image): Make animated pictures work.
3394 There's still some problems with background color settings, though
3395 (bug#14700).
3396
71530c97
LMI
3397 * decompress.c (unwind_decompress): Always restore point.
3398
7510a061
XF
33992013-08-14 Xue Fuqiao <xfq.free@gmail.com>
3400
3401 * marker.c (set_marker): Reformat documentation.
3402
01c3051f
PE
34032013-08-14 Paul Eggert <eggert@cs.ucla.edu>
3404
aab1fcdf
PE
3405 * xdisp.c (cursor_type_changed): Now static.
3406
01c3051f
PE
3407 * image.c (imagemagick_filename_hint): New arg HINT_BUFFER.
3408 Use changed. This avoids the need to call xmalloc and for the
3409 caller to call xfree, and avoids memory leaks in some situations.
3410
2084152a
DA
34112013-08-14 Dmitry Antipov <dmantipov@yandex.ru>
3412
3413 * xdisp.c (adjust_window_ends): Move duplicated code to new function.
3414 (try_window, try_window_reusing_current_matrix, try_window_id): Use it.
94a4e898
DA
3415 (redisplay_window): If window_end_valid is cleared due to non-zero
3416 windows_or_buffers_changed, clear current_matrix_up_to_date_p and
3417 so do not call to try_cursor_movement for that window.
2084152a 3418
02455cb6
DA
34192013-08-14 Dmitry Antipov <dmantipov@yandex.ru>
3420
3421 * window.h (struct window): Convert window_end_pos and
3422 window_end_vpos from Lisp_Object to ptrdiff_t and int, respectively.
3423 (wset_window_end_pos, wset_window_end_vpos): Remove.
3424 * dispnew.c (adjust_glyph_matrix):
3425 * window.c (Fwindow_end, replace_window, set_window_buffer)
3426 (make_window):
3427 * xdisp.c (check_window_end, move_it_to, redisplay_internal)
3428 (set_vertical_scroll_bar, redisplay_window, try_window)
3429 (try_window_reusing_current_matrix, find_first_unchanged_at_end_row)
3430 (try_window_id, decode_mode_spec, mouse_face_from_buffer_pos)
3431 (note_mouse_highlight): Adjust users.
3432 (try_cursor_movement): Likewise. Convert old precondition to eassert.
3433 Add comment.
3434
da5707e8
DA
34352013-08-14 Dmitry Antipov <dmantipov@yandex.ru>
3436
3437 Fix --enable-gcc-warnings errors introduced in 2013-08-13 commit.
3438 * image.c (imagemagick_filename_hint): Use `const char *' and
3439 prefer SSDATA to SDATA to avoid warnings.
3440
25554267
DA
34412013-08-14 Dmitry Antipov <dmantipov@yandex.ru>
3442
3443 Cleanup window fringes, margins and scroll bars adjustments.
3444 * window.c (set_window_fringes, set_window_margins)
3445 (set_window_scroll_bars, apply_window_adjustment): New functions.
3446 (set_window_buffer, Fset_window_margins, Fset_window_fringes)
3447 (Fset_window_scroll_bars): Use them.
3448
38a2c910
DA
34492013-08-14 Dmitry Antipov <dmantipov@yandex.ru>
3450
3451 * window.h (struct window): Convert scroll_bar_width
3452 from Lisp_Object to integer. Adjust comment.
3453 (WINDOW_CONFIG_SCROLL_BAR_WIDTH, WINDOW_CONFIG_SCROLL_BAR_COLS):
3454 Adjust users.
3455 * window.c (wset_scroll_bar_width): Remove.
3456 (make_window): Initialize scroll_bar_width.
3457 (Fsplit_window_internal): Use direct assignment.
3458 (Fset_window_configuration, save_window_save):
3459 Convert Lisp_Object to integer and back where appropriate.
3460 (Fset_window_scroll_bars): Adjust user. Return t if any scroll
3461 bar was actually changed, and mention this in docstring.
3462
2d065031
PE
34632013-08-13 Paul Eggert <eggert@cs.ucla.edu>
3464
3465 * decompress.c: Minor simplifications.
3466 (Fzlib_decompress_region): Don't bother verifying
3467 that avail_out <= UINT_MAX, as that was confusing.
3468 Mention the restriction in a comment instead.
3469 Prefer 'int' to 'ptrdiff_t' when 'int' is wide enough.
3470
a5bd5abb
JD
34712013-08-13 Jan Djärv <jan.h.d@swipnet.se>
3472
3473 * nsmenu.m (x_activate_menubar): Check for OSX >= 10.5
3474 (trackingNotification:): Call ns_check_menu_open only for OSX >= 10.5.
3475
66e7901a
LMI
34762013-08-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
3477
3478 * image.c (imagemagick_filename_hint): Check for errors in the
3479 alist structure.
3480
2fa611b7
EZ
34812013-08-13 Eli Zaretskii <eliz@gnu.org>
3482
3483 * window.c (Fwindow_margins): Return nil when there's no marginal
3484 area, as per the documented API.
3485
3486 * w32term.c (x_scroll_bar_create): Use ALLOCATE_PSEUDOVECTOR, not
3487 Fmake_vector, as scroll bar's struct members are not all Lisp
3488 objects now. This avoids crashes in GC.
3489
3490 * w32term.h (struct scroll_bar): Convert fringe_extended_p to a
3491 bool, so its address could be taken.
3492
8259030d
LMI
34932013-08-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
3494
3495 * image.c (imagemagick_filename_hint): New function to possibly
3496 apply `image-content-type-suffixes'.
3497 (imagemagick_load_image): Use it.
3498
866c710e
EZ
34992013-08-13 Eli Zaretskii <eliz@gnu.org>
3500
3501 * decompress.c (Fzlib_decompress_region) [WINDOWSNT]: Return Qnil
3502 if loading zlib failed.
3503
f10490f0
JD
35042013-08-13 Jan Djärv <jan.h.d@swipnet.se>
3505
96311be7
JD
3506 * nsterm.m (ns_set_vertical_scroll_bar): Fix breakage intruduced by
3507 2013-08-13 checkin below. Change bool to BOOL, rule is:
3508 All Obj-C code uses BOOL, except for interfaces callable from C.
3509
f10490f0
JD
3510 * nsterm.h: Fix CGFloat for OSX 10.4 (Bug#15086).
3511
c8ae93b0
DA
35122013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
3513
3514 * window.h (WINDOW_FRINGE_EXTENDED_P): New macro.
3515 * nsterm.m (ns_set_vertical_scroll_bar): Use it. Use convenient
3516 bool instead of BOOL.
3517 * w32term.h (struct scroll_bar): Convert fringe_extended_p
3518 from Lisp_Object to bitfield. Adjust comment.
3519 * w32term.c (x_scroll_bar_create): Adjust user.
3520 Use WINDOW_FRINGE_EXTENDED_P and bool for boolean.
3521 * xterm.c (XTset_vertical_scroll_bar): Likewise.
3522 Use bool for boolean.
3523 * xterm.h (struct scroll_bar): Prefer commonly used `unsigned'
3524 to `unsigned int' when defining a bitfield.
3525
53b64418
PE
35262013-08-13 Paul Eggert <eggert@cs.ucla.edu>
3527
3528 * decompress.c (Fzlib_decompress_region): Try to clarify 'avail_out'.
3529
eeaf9bf3
DA
35302013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
3531
3532 * window.h (struct window): Convert left_margin_cols and
3533 right_margin_cols from Lisp_Objects to integers. Adjust comment.
3534 (WINDOW_LEFT_MARGIN_COLS, WINDOW_RIGHT_MARGIN_COLS)
3535 (WINDOW_LEFT_MARGIN_WIDTH, WINDOW_RIGHT_MARGIN_WIDTH):
3536 Adjust users.
3537 * dispnew.c (margin_glyphs_to_reserve): Convert 3rd arg to int.
3538 Adjust comment.
3539 (showing_window_margins_p, update_window_line, update_frame_1):
3540 * fringe.c (draw_fringe_bitmap_1):
3541 * xdisp.c (window_box_width): Adjust users.
3542 * window.c (wset_left_margin_cols, wset_right_margin_cols): Remove.
3543 (adjust_window_margins, set_window_buffer, Fsplit_window_internal):
3544 Use direct assignment.
3545 (Fset_window_configuration, save_window_save, Fwindow_margins):
3546 Convert Lisp_Object to integer and back where appropriate.
3547 (Fset_window_margins): Adjust user. Return t if any margin
3548 was actually changed, and mention this in docstring.
3549
956720af
XF
35502013-08-13 Xue Fuqiao <xfq.free@gmail.com>
3551
f73f4ce6 3552 * syntax.c (forward_word):
956720af
XF
3553 * cmds.c (forward_char, backward_char): Mention the optional argument.
3554
9e37ee3b
DA
35552013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
3556
3557 * window.h (struct window): Convert left_fringe_width
3558 and right_fringe_width from Lisp_Objects to integers.
3559 Adjust comment.
3560 (WINDOW_FRINGE_COLS, WINDOW_LEFT_FRINGE_WIDTH)
3561 (WINDOW_RIGHT_FRINGE_WIDTH): Adjust users.
3562 * window.c (wset_left_fringe_width, wset_right_fringe_width):
3563 Remove.
3564 (make_window): Initialize new integer fields to -1.
3565 (Fsplit_window_internal): Use direct assignment.
068f9124
SM
3566 (Fset_window_configuration, save_window_save):
3567 Convert Lisp_Object to integer and back where appropriate.
9e37ee3b
DA
3568 (Fset_window_fringes): Adjust user. Return t if any fringe
3569 was actually changed, and mention this in docstring.
3570
e4375ca7
DA
35712013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
3572
3573 * keyboard.c (Fdiscard_input): Do not increment update_mode_lines.
9cda66e4
DA
3574 * nsfns.m (x_set_cursor_type):
3575 * w32fns.c (x_set_cursor_type):
e903c210 3576 * xfns.c (x_set_cursor_type): Do not set cursor_type_changed here...
9cda66e4 3577 * xdisp.c (set_frame_cursor_types): ...but in common code.
e4375ca7 3578
a45543bc
DA
35792013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
3580
3581 * font.c (clear_font_cache): New function, stripped from...
3582 (Fclear_font_cache): ...here, which now uses the function
3583 above. Adjust comment.
3584 * font.h (clear_font_cache): Add prototype.
3585 * xfaces.c (clear_face_cache): Use clear_font_cache.
3586
ae966a86
DA
35872013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
3588
3589 * window.c (Fset_window_start): Compare `w', not `window' because
3590 `w' might not be equal to `window' after call to decode_live_window.
3591
297a545b
PE
35922013-08-12 Paul Eggert <eggert@cs.ucla.edu>
3593
3594 * process.c (deactivate_process): Reset fds to -1 (Bug#15035).
3595 This fixes a problem introduced by the Bug#15035 patch
3596 when using GPG. Reported by Herbert J. Skuhra.
3597
aa942e2b
EZ
35982013-08-12 Eli Zaretskii <eliz@gnu.org>
3599
3600 * decompress.c <zlib_initialized> [WINDOWSNT]: New static variable.
3601 (Fzlib_decompress_region) [WINDOWSNT]: Call init_zlib_functions if
3602 not yet initialized.
3603
7699d09e
LMI
36042013-08-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
3605
3606 * decompress.c (Fzlib_decompress_region): Support zlib
3607 decompression, too, and rename.
3608
1d238bc7
PE
36092013-08-12 Paul Eggert <eggert@cs.ucla.edu>
3610
3611 Minor zlib configuration tweaks.
3612 * decompress.c (fn_inflateInit2) [!WINDOWSNT]:
3613 Don't assume presence of fn_inflateInit2_ zlib internal function.
3614
8a44a184
LMI
36152013-08-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
3616
3617 * decompress.c (Fzlib_decompress_gzipped_region): Rename to
3618 include the zlib prefix.
3619
594a4307
EZ
36202013-08-12 Eli Zaretskii <eliz@gnu.org>
3621
3622 * decompress.c [WINDOWSNT]: Include windows.h and w32.h.
3623 (DEF_ZLIB_FN, LOAD_ZLIB_FN) [WINDOWSNT]: New macros. Use them to
3624 define static variables that are pointers to zlib functions to be
3625 dynamically loaded.
3626 (init_zlib_functions) [WINDOWSNT]: New function.
3627 (fn_inflateInit2_, fn_inflate, fn_inflateEnd, fn_inflateInit2):
3628 New macros.
3629 (Fdecompress_gzipped_region, unwind_decompress): Use the fn_*
3630 macros instead of invoking the zlib functions directly.
068f9124
SM
3631 (syms_of_decompress): DEFSYM Qzlib_dll.
3632 Staticpro Szlib_available_p.
594a4307 3633
d2e113bc
DA
36342013-08-12 Dmitry Antipov <dmantipov@yandex.ru>
3635
3636 Avoid looping over all frame windows to freeze and unfreeze.
3637 * window.h (struct window): Drop frozen_window_start_p.
3638 (freeze_window_starts): Drop prototype.
3639 * frame.h (struct frame): New frozen_window_starts flag.
3640 (FRAME_WINDOWS_FROZEN): New macro.
3641 * window.c (freeze_window_start, freeze_window_starts):
3642 Remove.
3643 (select_window, replace_window): Adjust users.
3644 * xdisp.c (resize_mini_window): Use FRAME_WINDOWS_FROZEN.
3645 (window_frozen_p): New function.
3646 (redisplay_window): Use it.
3647
94fcd171
PE
36482013-08-12 Paul Eggert <eggert@cs.ucla.edu>
3649
3650 Fix some fd issues when running subprocesses (Bug#15035).
3651 Fix bugs that can leak files or file descriptors on errors.
3652 Don't unlink open temp files, as that's hard for users to diagnose
3653 when things go awry (e.g., temp disk exhausted).
3654 Don't bother to lock temp files. Check for invalid recursion.
3655 * callproc.c (synch_process_fd): Remove. All uses removed.
3656 (synch_process_tempfile): New var or macro.
3657 (CALLPROC_STDOUT, CALLPROC_STDERR, CALLPROC_PIPEREAD, CALLPROC_FDS):
3658 New constants.
3659 (record_kill_process): New arg, the temp name. All callers changed.
3660 (delete_temp_file): Now just a simple wrapper around unlink.
3661 (call_process_kill): New arg, the call_process_fd array.
3662 Close them all. Clear synch_process_pid. Remove the temp file,
3663 or arrange for it to be removed.
3664 (call_process_cleanup) [MSDOS]: Arg no longer contains file name;
3665 that's been moved to synch_process_tempfile. Caller changed.
3666 Do not remove the tempfile; that's now call_process_kill's
3667 responsibility.
3668 (call_process_cleanup) [!MSDOS]: Do not record unwind-protect for
3669 call_process_kill; the caller now does that.
3670 (call_process_cleanup): Do not close the process fd; that's now
3671 call_process_kill's responsibility.
3672 (Fcall_process): Implement via new function call_process, which
3673 has most of the old body of Fcall_process, but with a different API.
3674 (call_process): New function that does not open or close filefd if
3675 it is nonnegative. Record which fds need to be closed, and let
3676 call_process_kill close (and remove the tempfile, on MSDOS) on error.
3677 Signal an error if invoked recursively (could be done via a hook).
3678 Simplify creation of the tempfile in the MSDOS case.
3679 Don't create the output file until after checking for the executable.
3680 Report any failure to open /dev/null.
3681 Don't open /dev/null for writing twice; once is enough.
3682 Don't create pipe if all output is being discarded or sent to file.
3683 Don't worry about setting up the coding system or reading from the
3684 pipe if all output is being discarded.
3685 Hoist fd_error local into top level, to lessen block nesting.
3686 Don't record deleted pid here; now done by Fcall_process_region.
3687 (Fcall_process) [MSDOS]: Report mktemp failure immediately,
3688 and note its success in synch_process_tempfile.
3689 Do not leak resources when child_setup fails.
3690 (Fcall_process) [!MSDOS && !WINDOWSNT]: Remove duplicate assignment
3691 to child_errno. Remove unnecessary close of fd0; it's close-on-exec.
3692 (create_temp_file): Now returns open fd, with an additional
3693 Lisp_Object * argument to return the name. All callers changed.
3694 Do not close the file; rewind it instead, and leave it open for
3695 the caller. Do not lock the temp file. Unwind-protect the file
3696 and the file-descriptor.
3697 (Fcall_process_region): If the input is /dev/null, unwind-protect it.
3698 If an asynchrounous process, record it here, not in call_process.
3699 (syms_of_callproc) [MSDOS]: Initialize synch_process_tempfile.
3700 * eval.c (set_unwind_protect): New function.
3701 * fileio.c (write_region): New function, generalized from the
3702 old Fwrite_region. Do not lock temp files.
3703 (Fwrite_region): Use it.
3704 * lisp.h (set_unwind_protect, write_region): New decls.
3705 * process.c: Include <verify.h>.
3706 (make_process): Mark fds as initially closed.
3707 (deleted_pid_list): Now a list of pid-filename pairs.
3708 All uses changed.
3709 (close_process_fd): New function.
3710 (SUBPROCESS_STDIN, WRITE_TO_SUBPROCESS, READ_FROM_SUBPROCESS)
3711 (SUBPROCESS_STDOUT, READ_FROM_EXEC_MONITOR, EXEC_MONITOR_OUTPUT):
3712 New constants. Verify that their number matches PROCESS_OPEN_FDS.
3713 (create_process, create_pty, Fmake_serial_process)
3714 (server_accept_connection): Record which fds need to be closed,
3715 and let deactivate_process close them.
3716 (Fmake_network_process): Do not discard the unwind-protect
3717 until it's safe to do so.
3718 (deactivate_process): Close the fds opened by create_process etc.
3719 (Fprocess_send_eof): Adjust to new way of recording open fds.
3720 Report an error if /dev/null can't be opened, instead of aborting.
3721 * process.h (PROCESS_OPEN_FDS): New constant.
3722 (struct Lisp_Process): New member open_fds.
3723 (record_kill_process, record_deleted_pid): Adjust signatures.
3724 (record_deleted_pid): Move decl here ...
3725 * syswait.h (record_deleted_pid): ... from here.
3726
d0e615c3
PE
37272013-08-11 Paul Eggert <eggert@cs.ucla.edu>
3728
3729 * decompress.c: Fix bugs with large buffers and weird inputs.
3730 Tune a bit. Reindent as per usual Emacs style.
3731 (BUFFER_SIZE): Remove.
3732 (Fdecompress_gzipped_region): Do not mishandle input buffers with
3733 more than UINT_MAX bytes. Decompress into the gap instead of into
3734 an auto buffer, as this should avoid copying. Return nil if
3735 'inflate' returns Z_NEED_DICT, as we have no dictionary. Do not
3736 set immediate_quit; we shouldn't trust zlib code that much.
3737
313546eb
LMI
37382013-08-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
3739
99a32242
LMI
3740 * decompress.c (Fdecompress_gzipped_region): Respect all zlib
3741 errors, and really move the gap to where we want it.
3742
313546eb
LMI
3743 * lisp.h: Include decompress.c support.
3744
3745 * emacs.c (main): Include decompress.c support.
3746
3747 * Makefile.in: Include -lz if present.
3748
d2d699ac
JD
37492013-08-11 Jan Djärv <jan.h.d@swipnet.se>
3750
f90e3ebd
JD
3751 * nsmenu.m (ns_update_menubar): Call fillWithWidgetValue:frame:
3752 (initWithTitle:): Initialize frame to 0.
3753 (fillWithWidgetValue:): Call fillWithWidgetValue:frame.
068f9124 3754 (fillWithWidgetValue:frame:): Rename from
f90e3ebd
JD
3755 fillWithWidgetValue:setDelegate, call initWithTile:frame: if f.
3756
3757 * nsterm.h (EmacsMenu): fillWithWidgetValue:setDelegate renamed to
3758 fillWithWidgetValue:frame:
3759
423d3b3f
JD
3760 * nsfns.m (Fns_convert_utf8_nfd_to_nfc): Allocate and release pool to
3761 remove memory leak warnings.
3762
d2d699ac
JD
3763 * nsterm.m (menu_pending_title, ns_get_pending_menu_title): Remove.
3764 (ns_check_menu_open): Handle menu == nil. Remove assignment to
3765 menu_pending_title.
3766
3767 * nsmenu.m (ns_update_menubar): Call fillWithWidgetValue:setDelegate.
3768 (x_activate_menubar): Update the whole menu.
3769 (trackingNotification:): Call ns_check_menu_open if tracking ends.
3770 (menuWillOpen:): Increment trackingMenu. For OSX <= 10.6, exit if
3771 current event is not NSSystemDefined (Bug#15001).
3772 Call ns_check_menu_open only if trackingMenu is 2.
3773 (menuDidClose:): New method, decrease trackingMenu.
3774 (fillWithWidgetValue:setDelegate:): New method.
3775 (fillWithWidgetValue:): Call the above.
3776
3777 * nsterm.h (EmacsMenu): Add fillWithWidgetValue:setDelegate:
3778
7d652d97
PE
37792013-08-11 Paul Eggert <eggert@cs.ucla.edu>
3780
3781 Omit some unnecessary casts.
3782 Many of these go back to the old pre-C89 days, when they may have
3783 been needed, but we've been assuming C89 or later for a while now.
3784 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
3785 (live_float_p, live_misc_p, live_vector_p):
3786 * buffer.c (compare_overlays, cmp_for_strings, mmap_find)
3787 (mmap_alloc, alloc_buffer_text, enlarge_buffer_text)
3788 (defvar_per_buffer):
3789 * callint.c (Fcall_interactively):
3790 * doc.c (Fsubstitute_command_keys):
3791 * filelock.c (get_boot_time):
3792 * frame.c (xrdb_get_resource):
3793 * gtkutil.c (hierarchy_ch_cb, qttip_cb, style_changed_cb)
3794 (delete_cb, xg_dialog_response_cb, xg_maybe_add_timer)
3795 (xg_get_file_name_from_selector, menuitem_destroy_callback)
3796 (menuitem_highlight_callback, menu_destroy_callback)
3797 (xg_update_menu_item, xg_modify_menubar_widgets, menubar_map_cb)
3798 (xg_tool_bar_callback, xg_get_tool_bar_widgets)
3799 (xg_tool_bar_detach_callback, xg_tool_bar_attach_callback)
3800 (xg_tool_bar_help_callback, tb_size_cb):
3801 * image.c (xpm_alloc_color, png_read_from_memory)
3802 (png_read_from_file, png_load_body, our_memory_skip_input_data)
3803 (jpeg_memory_src, jpeg_file_src, imagemagick_load_image)
3804 (syms_of_image):
3805 * keymap.c (describe_map):
3806 * nsfns.m (Fns_display_monitor_attributes_list):
3807 * nsmenu.m (process_dialog:):
3808 * nsterm.m (hold_event):
3809 * process.c (wait_reading_process_output):
3810 * regex.c (REGEX_REALLOCATE, re_set_registers, re_exec, regexec):
3811 * scroll.c (do_direct_scrolling, scrolling_1):
3812 * termcap.c (tgetent):
3813 * window.c (check_window_containing, add_window_to_list)
3814 (freeze_window_starts):
3815 * xdisp.c (compare_overlay_entries, vmessage):
3816 * xfns.c (x_window, x_get_monitor_attributes_xinerama)
3817 (x_get_monitor_attributes_xrandr)
3818 (Fx_display_monitor_attributes_list, x_display_info_for_name)
3819 (Fx_open_connection, file_dialog_cb, file_dialog_unmap_cb):
3820 * xfont.c (xfont_match, xfont_open):
3821 * xmenu.c (x_menu_wait_for_event, menu_highlight_callback)
3822 (menubar_selection_callback, menu_position_func)
3823 (popup_selection_callback, create_and_show_popup_menu)
3824 (dialog_selection_callback, create_and_show_dialog):
3825 * xrdb.c (x_get_string_resource):
3826 (main) [TESTRM]:
3827 * xsmfns.c (x_session_check_input):
3828 * xterm.c (x_draw_glyphless_glyph_string_foreground)
3829 (xm_scroll_callback, xg_scroll_callback, xg_end_scroll_callback)
3830 (xaw_jump_callback, xaw_scroll_callback):
3831 Omit unnecessary casts.
3832
9acc1074
PE
38332013-08-10 Paul Eggert <eggert@cs.ucla.edu>
3834
3835 Minor string-length refactoring.
3836 * alloc.c (xstrdup): Use memcpy, not strcpy, since the length's known.
3837 * frame.c (make_monitor_attribute_list):
3838 Prefer build_string to strlen + make_string.
3839
361c0eb8
JD
38402013-08-10 Jan Djärv <jan.h.d@swipnet.se>
3841
3842 * xterm.c (x_error_handler): Also ignore BadWindow for X_SetInputFocus,
3843 don't check minor_code (Bug#14417).
3844
14ba0822
EZ
38452013-08-09 Eli Zaretskii <eliz@gnu.org>
3846
3847 * xdisp.c (draw_glyphs): Don't compare row pointers, compare row
3848 vertical positions instead. This avoids calling MATRIX_ROW with
3849 row numbers that are possibly beyond valid limits. (Bug#15064)
3850
309f24d1
DA
38512013-08-09 Dmitry Antipov <dmantipov@yandex.ru>
3852
3853 Use xstrdup and build_unibyte_string where applicable.
3854 * alloc.c (xstrdup): Tiny cleanup. Add eassert.
3855 * xfns.c (x_window):
3856 * xrdb.c (x_get_customization_string):
3857 * xterm.c (xim_initialize):
3858 * w32fns.c (w32_window): Use xstrdup.
3859 (w32_display_monitor_attributes_list):
3860 * emacs.c (init_cmdargs):
3861 * keyboard.c (PUSH_C_STR):
3862 * nsfont.m (nsfont_open):
3863 * sysdep.c (system_process_attributes):
3864 * w32.c (system_process_attributes):
3865 * xdisp.c (message1, message1_nolog): Use build_unibyte_string.
3866
55902276
EZ
38672013-08-09 Eli Zaretskii <eliz@gnu.org>
3868
3869 * w32.c (PEXCEPTION_POINTERS, PEXCEPTION_RECORD, PCONTEXT): Define
3870 variables of these types so that GDB would know about them, as aid
3871 for debugging fatal exceptions. (Bug#15024) See also
3872 http://sourceware.org/ml/gdb/2013-08/msg00010.html for related
3873 discussions.
3874
10bf7f5a
JD
38752013-08-08 Jan Djärv <jan.h.d@swipnet.se>
3876
3877 * nsterm.m (ns_update_begin): Don't change clip path if it would be
3878 larger than the NSWindow (Bug#14934).
3879
65620264
DA
38802013-08-08 Dmitry Antipov <dmantipov@yandex.ru>
3881
3882 Redesign redisplay interface to drop global variable updated_window.
3883 Always pass currently updated window as a parameter to update routines.
3884 * dispextern.h (updated_window): Remove declaration.
3885 (struct redisplay_interface): Pass window parameter to
3886 write_glyphs, insert_glyphs, clear_end_of_line, cursor_to
3887 and after_update_window_hook.
3888 (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line, x_cursor_to):
3889 Adjust prototypes.
3890 * dispnew.c (updated_window): Remove.
3891 (redraw_overlapped_rows, update_marginal_area, update_text_area)
3892 (update_window_line): Adjust to match redisplay interface changes.
3893 * nsterm.m (ns_update_window_begin, ns_update_window_end)
3894 (ns_scroll_run, ns_after_update_window_line):
3895 * w32term.c (x_update_window_begin, x_update_window_end)
3896 (x_after_update_window_line, x_scroll_run):
3897 * xterm.c (x_update_window_begin, x_update_window_end)
3898 (x_after_update_window_line, x_scroll_run):
3899 * xdisp.c (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
3900 Likewise. Adjust comments where appropriate.
3901 (x_cursor_to): Simplify because this is always called during window
3902 update (but install debugging check anyway).
3903 (expose_window): Check must_be_updated_p flag to see whether this
3904 function is called during window update.
3905
628fdc56
DA
39062013-08-08 Dmitry Antipov <dmantipov@yandex.ru>
3907
3908 Do not reset window modification event counters excessively.
3909 These leftovers and poor man's tricky methods to catch extra
3910 redisplay's attention are no longer needed.
3911 * frame.c (set_menu_bar_lines_1):
3912 * minibuf.c (read_minibuf_unwind):
3913 * window.c (Fset_window_start, set_window_buffer, window_resize_apply)
3914 (grow_mini_window, shrink_mini_window, window_scroll_pixel_based)
3915 (window_scroll_line_based, Fset_window_configuration):
3916 * xdisp.c (redisplay_window): Do not reset last_modified and
3917 last_overlay_modified counters.
3918
8fd9c92e
JD
39192013-08-07 Jan Djärv <jan.h.d@swipnet.se>
3920
3921 * xselect.c (x_send_client_event): Set send_event and serial, memset
3922 data.l as it might be bigger than data.b. Use 24 bit mask to
3923 XSendEvent (Bug#15034).
3924
0ee18172
EZ
39252013-08-07 Eli Zaretskii <eliz@gnu.org>
3926
3927 * xdisp.c (prepare_menu_bars): Don't call x_consider_frame_title
3928 for TTY frames that are not the top frame on their console.
3929 (Bug#14616)
3930
16ddd1a6
MR
39312013-08-07 Martin Rudalics <rudalics@gmx.at>
3932
3933 * w32term.c (w32fullscreen_hook): Really maximize frame when
3934 asked for (Bug#14841).
3935
d2a95ffb
DA
39362013-08-07 Dmitry Antipov <dmantipov@yandex.ru>
3937
3938 Prefer selected_window to Fselected_window, likewise for frames.
3939 * buffer.c (Fbuffer_swap_text):
3940 * data.c (Fvariable_binding_locus):
3941 * window.c (run_window_configuration_change_hook): Adjust users.
3942 * w16select.c (Fw16_set_clipboard_data, Fw16_get_clipboard_data):
3943 Use decode_live_frame.
3944
170da1ec
DA
39452013-08-07 Dmitry Antipov <dmantipov@yandex.ru>
3946
3947 Be more careful if selected window shows the buffer other than current,
3948 use window_outdated only if this is not so. This change should also
3949 address some weird issues discussed in Bug#13012.
3950 * window.h (window_outdated): New prototype.
3951 * window.c (window_outdated): Now here. Convert from static and
3952 always assume window's buffer.
3953 (Fwindow_end, Fwindow_line_height): Use it.
3954 * xdisp.c (reconsider_clip_changes): Remove prototype, drop 2nd arg
3955 and always assume window's buffer.
3956 (redisplay_window): Adjust user.
e5eefe9b 3957 (redisplay_internal): Call to reconsider_clip_changes once and
170da1ec
DA
3958 check whether mode line should be updated only if selected window
3959 shows current buffer.
3960 (run_window_scroll_functions): Use eassert for debugging check.
3961 (Fmove_point_visually, note_mouse_highlight): Use window_outdated.
3962
56b5d5b1
DA
39632013-08-06 Dmitry Antipov <dmantipov@yandex.ru>
3964
3965 * window.c (window_scroll, window_scroll_pixel_based)
3966 (window_scroll_line_based): Use bool for booleans.
3967
2878ba7e
PE
39682013-08-06 Paul Eggert <eggert@cs.ucla.edu>
3969
3970 * process.c: Fix minor off-by-one issues in descriptor counts.
3971 This shouldn't fix any real bugs, but it cleans up the code a bit.
3972 (max_process_desc, max_input_desc): -1, not 0, means none.
3973 All uses changed.
3974 (delete_input_desc): New function.
3975 (delete_write_fd, delete_keyboard_wait_descriptor): Use it.
3976 (deactivate_process): Scan backwards when recomuting max_process_desc;
3977 that should be faster.
3978 (init_process_emacs): Initialize max_input_desc.
3979
e30b79c1
DA
39802013-08-06 Dmitry Antipov <dmantipov@yandex.ru>
3981
3982 Use region cache to speedup bidi_find_paragraph_start.
3983 * buffer.h (struct buffer): New member bidi_paragraph_cache.
3984 Rename cache_long_line_scans to cache_long_scans.
3985 * buffer.c (bset_cache_long_line_scans): Rename to
3986 bset_cache_long_scans.
3987 (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer)
3988 (Fbuffer_swap_text, init_buffer_once): Take bidi_paragraph_cache
3989 into account.
3990 (syms_of_buffer): Rename cache-long-line-scans to
3991 cache-long-scans. Adjust docstring.
3992 * search.c (newline_cache_on_off):
3993 * indent.c (width_run_cache_on_off): Adjust users.
3994 * bidi.c (bidi_paragraph_cache_on_off): New function.
3995 (bidi_find_paragraph_start): Use bidi_paragraph_cache if needed.
068f9124
SM
3996 * insdel.c (prepare_to_modify_buffer):
3997 Invalidate bidi_paragraph_cache if enabled.
e30b79c1 3998
00012b86
DA
39992013-08-06 Dmitry Antipov <dmantipov@yandex.ru>
4000
4001 Invalidate region caches only if buffer text is going to be changed.
4002 * lisp.h (modify_region_1): Remove 3rd arg and rename to...
4003 (modify_text): ...new prototype.
4004 (prepare_to_modify_buffer_1): New prototype.
4005 * textprop.c (modify_region): Rename to...
4006 (modify_text_properties): ...new function.
4007 (add_text_properties_1, set_text_properties, Fremove_text_properties)
4008 (Fremove_list_of_text_properties): Adjust users.
4009 * insdel.c (modify_region_1): Remove 3rd arg and reimplement as...
4010 (modify_text): ...new function.
4011 (prepare_to_modify_buffer): Reimplement mostly as a wrapper for...
4012 (prepare_to_modify_buffer_1): ...new function.
4013 * casefiddle.c (casify_region):
4014 * editfns.c (Fsubst_char_in_region, Ftranslate_region_internal)
4015 (Ftranspose_regions): Use modify_text.
4016
dc6c0eda
SM
40172013-08-05 Stefan Monnier <monnier@iro.umontreal.ca>
4018
4019 * lisp.mk (lisp): Add nadvice.elc.
4020
8f3a2c26
DA
40212013-08-05 Dmitry Antipov <dmantipov@yandex.ru>
4022
4023 New macro to iterate over live buffers similar to frames.
4024 * buffer.h (FOR_EACH_LIVE_BUFFER): New macro.
4025 (Vbuffer_alist, Qpriority, Qbefore_string, Qafter_string):
4026 Declare buffer-related variables here to offload lisp.h.
4027 * buffer.c (Vbuffer_alist): Adjust comment.
4028 (Fget_file_buffer, get_truename_buffer, Fother_buffer)
4029 (other_buffer_safely):
4030 * data.c (store_symval_forwarding):
4031 * dispnew.c (Fframe_or_buffer_changed_p):
4032 * fileio.c (Fdo_auto_save):
4033 * filelock.c (unlock_all_files):
4034 * minibuf.c (read_minibuf): Use FOR_EACH_LIVE_BUFFER.
4035
e0fdb694
PE
40362013-08-04 Paul Eggert <eggert@cs.ucla.edu>
4037
4038 Fix some minor races in hosts lacking mkostemp (Bug#15015).
4039 * callproc.c (create_temp_file):
4040 * filelock.c (create_lock_file):
4041 Assume mkostemp, since it's now provided by Gnulib.
4042
63f5c6c2
EZ
40432013-08-04 Eli Zaretskii <eliz@gnu.org>
4044
4045 * w32.c (mkostemp): New function.
4046 (mktemp): Remove, no longer used. Most of the code reused in
4047 mkostemp. (Bug#15015)
484ab239 4048 (mktemp): Don't undef.
63f5c6c2 4049
f0b79313
DA
40502013-08-04 Dmitry Antipov <dmantipov@yandex.ru>
4051
4052 * dispnew.c (glyph_matrix_count, glyph_pool_count):
4053 Move under GLYPH_DEBUG and ENABLE_CHECKING.
4054 (new_glyph_matrix, free_glyph_matrix, new_glyph_pool)
4055 (free_glyph_pool, check_glyph_memory): Likewise for
4056 all users. Adjust comments where appropriate.
4057
98f638d6
PE
40582013-08-03 Paul Eggert <eggert@cs.ucla.edu>
4059
4060 * composite.h: Minor fixups.
4061 (composition_registered_p): Rename from COMPOSITION_REGISTERD_P
4062 to fix a misspelling, and change it to an inline function while
4063 we're at it (it need not be a macro). All uses changed.
4064 (composition_method, composition_valid_p):
4065 Rewrite to avoid assignments in if-conditions.
4066
75c59fb3
DA
40672013-08-03 Dmitry Antipov <dmantipov@yandex.ru>
4068
4069 Do not use global Lisp_Object in composition macros.
4070 * composite.h (composition_temp): Remove declaration.
4071 (COMPOSITION_METHOD, COMPOSITION_VALID_P): Replace with...
4072 (composition_method, composition_valid_p): ...inline functions.
416a3e01 4073 (compose_region): Remove the leftover.
75c59fb3
DA
4074 * composite.c (composition_temp): Remove.
4075 (run_composition_function, update_compositions)
4076 (composition_compute_stop_pos, composition_adjust_point)
4077 (Ffind_composition_internal):
4078 * coding.c (handle_composition_annotation):
4079 * xdisp.c (handle_composition_prop, check_point_in_composition):
4080 Related users changed.
4081
a10c8269
DA
40822013-08-03 Dmitry Antipov <dmantipov@yandex.ru>
4083
4084 Drop FRAME_PTR typedef.
4085 * composite.c, font.c, font.h, fontset.c, fontset.h, frame.c, frame.h:
4086 * ftfont.c, ftxfont.c, gtkutil.c, gtkutil.h, image.c, keyboard.c:
4087 * menu.c, menu.h, msdos.c, nsfns.m, nsfont.m, nsmenu.m, nsterm.h:
4088 * nsterm.m, scroll.c, term.c, w32fns.c, w32font.c, w32font.h:
4089 * w32inevt.c, w32inevt.h, w32menu.c, w32notify.c, w32term.c, w32term.h:
4090 * w32uniscribe.c, w32xfns.c, widget.c, window.c, xdisp.c, xfaces.c:
4091 * xfns.c, xfont.c, xftfont.c, xmenu.c, xselect.c, xterm.c:
4092 All related users changed.
4093
a104f656
SM
40942013-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
4095
4096 * eval.c (default_toplevel_binding): New function.
4097 (Fdefvar): Use it.
4098 (unbind_to, backtrace_eval_unrewind): Do a bit of CSE simplification.
4099 (Fdefault_toplevel_value, Fset_default_toplevel_value): New subrs.
4100 (syms_of_eval): Export them.
4101 * data.c (Fdefault_value): Micro cleanup.
4102 * term.c (init_tty): Use "false".
4103
4b5c9326
DA
41042013-08-02 Dmitry Antipov <dmantipov@yandex.ru>
4105
4106 Fix X GC leak in GTK and raw (no toolkit) X ports.
4107 * xterm.c (x_free_frame_resources): If white and black relief
4108 GCs are allocated, always free them here.
4109 * xfns.c (x_make_gc): Omit redundant initialization.
4110 * widget.c (create_frame_gcs): Remove the leftover.
4111 (EmacsFrameDestroy): Do nothing because all GCs are now freed
4112 in x_free_frame_resources.
4113
b19aa636
JD
41142013-08-02 Jan Djärv <jan.h.d@swipnet.se>
4115
4116 * nsterm.m (windowWillResize:toSize:): Only change title if
4117 ! maximizing_resize && FULLSCREEN_NONE (Bug#15005). strdup title before
4118 modifying it.
4119 (viewDidEndLiveResize): New method.
4120
4121 * nsterm.h (EmacsView): Add maximizing_resize, put it and old_title
4122 inside NS_IMPL_COCOA.
4123
af1f7e06
DA
41242013-08-02 Dmitry Antipov <dmantipov@yandex.ru>
4125
4126 * insdel.c (adjust_after_replace, replace_range, del_range_2):
4127 Do not check whether undo is enabled because record_insert and
4128 record_delete does that themselves.
4129
65b02bb9
DA
41302013-08-02 Dmitry Antipov <dmantipov@yandex.ru>
4131
4132 * xterm.h (struct x_output) [HAVE_X_I18N]: Remove xic_base_fontname
4133 member which is not really used any more.
4134 (FRAME_XIC_BASE_FONTNAME): Remove.
4135 * xfns.c (xic_free_fontset): Adjust user.
4136 * xmenu.c (mouse_position_for_popup, x_activate_menubar)
4137 (update_frame_menubar, set_frame_menubar, free_frame_menubar)
4138 (create_and_show_popup_menu, xmenu_show, create_and_show_dialog)
4139 (xdialog_show): Use eassert for debugging check.
7ee0f047 4140 * w32term.c (x_unfocus_frame): Remove unused dummy function.
65b02bb9 4141
6318cde0
PE
41422013-08-01 Paul Eggert <eggert@cs.ucla.edu>
4143
4144 * fileio.c, fns.c (merge): Move extern decl from here ...
4145 * lisp.h (merge): ... to here.
4146
6c1a09ba
DA
41472013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
4148
4149 Fix last font-related change.
4150 * w32font.h (w32font_list_internal, w32font_match_internal):
4151 Fix prototype.
4152 * w32uniscribe.c (uniscribe_list, uniscribe_match):
4153 (uniscribe_list_family): Adjust to match font API change.
4154 MS-Windows breakage reported by Juanma Barranquero <lekktu@gmail.com>
4155 at http://lists.gnu.org/archive/html/emacs-devel/2013-08/msg00006.html.
4156
f8c20208
DA
41572013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
4158
4159 * frame.h (FRAME_MOUSE_UPDATE):
4160 * nsterm.m (ns_frame_up_to_date): Omit redundant check
4161 whether hlinfo->mouse_face_mouse_frame is non-NULL.
4162
fdb396e2
DA
41632013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
4164
4165 Avoid redundant Lisp_Object <-> struct frame conversions in font API.
4166 * font.h (struct font_driver): Change list, match, and list_family
4167 functions to accept struct frame * as first arg.
068f9124
SM
4168 * font.c (font_score, font_compare, font_sort_entities):
4169 Remove prototypes.
fdb396e2
DA
4170 (font_sort_entities, font_list_entities, font_select_entity):
4171 (font_find_for_lface, Flist_fonts, Ffont_family_list): Adjust to
4172 match font API change.
4173 * xfont.c (xfont_list, xfont_match, xfont_list_family):
4174 * ftfont.c (ftfont_list, ftfont_match, ftfont_list_family):
4175 * ftxfont.c (ftxfont_list, ftxfont_match):
4176 * xftfont.c (xftfont_list, xftfont_match):
4177 * nsfont.m (nsfont_list, nsfont_match, nsfont_list_family):
4178 * w32font.c (w32font_list, w32font_match, w32font_list):
4179 (w32font_list_internal, w32_font_match_internal): Likewise.
4180 * xfaces.c (Fx_family_fonts): Adjust user.
4181
52b8a085
DA
41822013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
4183
4184 Do not use pure Xism x_wm_set_icon_position in non-X ports.
4185 * frame.c (x_set_frame_parameters): Call to x_wm_set_icon_position
4186 only if HAVE_X_WINDOWS is in use.
4187 * frame.h (x_set_frame_parameters): Move under HAVE_X_WINDOWS.
4188 * nsterm.m (x_wm_set_icon_position): Remove no-op.
4189 * w32term.c (x_wm_set_icon_position): Likewise.
4190 * w32fns.c (x_icon): Adjust user.
4191
c791c18e
DA
41922013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
4193
4194 * xterm.c (last_mouse_press_frame): Remove the
4195 leftover which is not really used any more.
4196 (handle_one_xevent, syms_of_xterm): Adjust users.
1ca6cc28
DA
4197 (x_flush): Call XFlush once per each X display, not frame.
4198 This is better because this code always unconditionally skips
4199 non-X frames in Vframe_list and issues the only XFlush if we
4200 have more than one X frame on the same X display.
2f935d86
DA
4201 (any_help_event_p, x_draw_glyph_string_background, x_display_ok):
4202 Use bool for booleans.
4203 (x_draw_glyph_string_background, cvt_string_to_pixel):
4204 (cvt_pixel_dtor): Drop unnecessary prototypes.
4205 * xterm.h (x_display_ok): Adjust prototype.
c791c18e 4206
f435830e
DA
42072013-07-31 Dmitry Antipov <dmantipov@yandex.ru>
4208
4209 Drop unnecessary functions that deals with frame pixel size.
4210 * frame.h, msdos.h, w32term.h, xterm.h (x_pixel_width)
4211 (x_pixel_height): Drop prototypes.
4212 * msdos.c, nsfns.m, w32fns.c, xfns.c (x_pixel_width)
4213 (x_pixel_height): Drop implementations.
4214 * frame.c (Fframe_pixel_height): Use FRAME_PIXEL_HEIGHT
4215 which should be always valid for window frame.
4216 (Frame_pixel_width): Likewise with FRAME_PIXEL_WIDTH.
4217 * w32menu.c (Fx_popup_dialog):
4218 * xmenu.c (Fx_popup_dialog): Likewise for both.
4219
84231434
DA
42202013-07-31 Dmitry Antipov <dmantipov@yandex.ru>
4221
4222 * frame.c (Fmake_terminal_frame): Use store_in_alist to setup
4223 frame parameters and call to Fmodify_frame_parameters just once.
4c131798
DA
4224 (Fset_frame_height, Fset_frame_width): Mention nil frame in docstring.
4225 (Fset_frame_size, Fset_frame_position): Use decode_live_frame
4226 and mention nil frame in docstring.
84231434 4227
959067a1
DA
42282013-07-31 Dmitry Antipov <dmantipov@yandex.ru>
4229
4230 * frame.c (make_frame, x_set_frame_parameters): Use bool for boolean.
4231 (x_figure_window_size): Likewise. Adjust to return long.
4232 (syms_of_frame): Do not DEFSYM Qterminal_live_p.
4233 (toplevel): Move Qterminal_live_p to...
4234 * terminal.c (toplevel): ...here, make it static, and...
4235 (syms_of_terminal): ...DEFSYM here.
4236 * frame.h (Qterminal_live_p): Remove declaration.
4237 (make_frame, x_figure_window_size): Adjust prototype.
4238 * nsfns.m (Fx_create_frame): Use long for window flags.
4239
f4b169ce
PE
42402013-07-30 Paul Eggert <eggert@cs.ucla.edu>
4241
4242 Fix tempfile bug on platforms lacking mkostemp and mkstemp (Bug#14986).
4243 * callproc.c (create_temp_file) [! (HAVE_MKOSTEMP || HAVE_MKSTEMP)]:
4244 Do not assume that emacs_close (INT_MAX) is a no-op.
4245
bee6a2c7
DA
42462013-07-30 Dmitry Antipov <dmantipov@yandex.ru>
4247
4248 * xfaces.c (make_face_cache): For struct face_cache, prefer
4249 xmalloc to xzalloc and so avoid redundant call to memset.
4250 (Finternal_set_lisp_face_attribute): Fix comment typo and style.
4251
d7e6881a
DA
42522013-07-30 Dmitry Antipov <dmantipov@yandex.ru>
4253
4254 * fringe.c (draw_window_fringes, update_window_fringes)
4255 (compute_fringe_widths):
4256 * w32term.c (x_draw_glyph_string):
4257 * window.c (candidate_window_p, Frecenter):
4258 * xfaces.c (realize_basic_faces, realize_default_face)
4259 (Fbitmap_space_p, Finternal_set_lisp_face_attribute)
4260 (x_update_menu_appearance, face_attr_equal_p, lface_equal_p):
4261 * xfns.c (x_set_cursor_color, xic_free_xfontset):
4262 * xmenu.c (Fx_menu_bar_open_internal):
4263 * xselect.c (x_reply_selection_request, Fx_get_atom_name):
4264 * xsettings.c (xft_settings_event):
4265 * xterm.c (x_draw_glyph_string, x_had_errors_p):
4266 Use bool for booleans. Adjust style and comments where
4267 appropriate.
4268 * dispextern.h (draw_window_fringes, update_window_fringes)
4269 (compute_fringe_widths):
4270 * xterm.h (x_had_errors_p): Adjust prototype.
4271
ec3058af
DA
42722013-07-30 Dmitry Antipov <dmantipov@yandex.ru>
4273
4274 * frame.c (Fmodify_frame_parameters): Always check 2nd arg with
4275 CHECK_LIST. Rewrite the loop to avoid useless local variable.
4276
218e0637
DA
42772013-07-29 Dmitry Antipov <dmantipov@yandex.ru>
4278
4279 * fns.c (toplevel): Remove comment before Fsafe_length because
4280 it checks for QUIT.
4281
e560aba9
PE
42822013-07-28 Paul Eggert <eggert@cs.ucla.edu>
4283
4284 * frame.c (delete_frame): Avoid unnecessary 'this_f' test (Bug#14970).
4285
2e5ce5de
EZ
42862013-07-28 Eli Zaretskii <eliz@gnu.org>
4287
4288 * w32fns.c (w32_wnd_proc) <WM_IME_STARTCOMPOSITION>: Make sure the
4289 frame which got the message is still alive, before dereferencing
4290 its pointer. (Bug#14970)
4291
4292 * frame.c (delete_frame): Test "this" frame's minibuffer window to
4293 be a live window, before using it as such. (Bug#14970)
4294
e95da6d3
EZ
42952013-07-27 Eli Zaretskii <eliz@gnu.org>
4296
4297 * w32term.c (w32_read_socket) <WM_KILLFOCUS>: Call
4298 w32_detect_focus_change instead of doing part of its job by hand.
4299 This fixes the problem whereby FOCUS_OUT events were not sent to
4300 the event queue.
4301
a8f93651
EZ
43022013-07-26 Eli Zaretskii <eliz@gnu.org>
4303
fec92060
EZ
4304 * process.c (Fprocess_list): Doc fix.
4305
a8f93651
EZ
4306 * w32term.c (w32_read_socket) <WM_EMACS_PAINT>: Warn about frame
4307 being re-exposed only if it didn't ask to become visible.
4308 <WM_SIZE>: Under SIZE_RESTORED, only set the frame visible if it
4309 was previously iconified. (Bug#14841)
4310 (x_iconify_frame): Mark the frame iconified.
4311
d5a7a9d9
PE
43122013-07-26 Paul Eggert <eggert@cs.ucla.edu>
4313
4314 Fix minor problems found by static checking.
4315 * eval.c (get_backtrace_frame, backtrace_eval_unrewind): Now static.
4316 (backtrace_eval_unrewind): ';' -> '{}' to pacify GCC.
4317
56ea7291
SM
43182013-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
4319
4320 * eval.c (set_specpdl_old_value): New function.
4321 (unbind_to): Minor simplification.
4322 (get_backtrace_frame): New function.
4323 (Fbacktrace_frame): Use it. Add `base' argument.
4324 (backtrace_eval_unrewind, Fbacktrace_eval): New functions.
4325 (syms_of_eval): Export backtrace-eval.
4326 * xterm.c (x_focus_changed): Simplify.
4327
9d611ffe
PE
43282013-07-25 Paul Eggert <eggert@cs.ucla.edu>
4329
4330 * fileio.c (Finsert_file_contents): Avoid double-close (Bug#14936).
4331
999c74e3
EZ
43322013-07-24 Eli Zaretskii <eliz@gnu.org>
4333
4334 * xdisp.c (redisplay_window): Instead of moving point out of
4335 scroll margin, reject the force_start method, and try scrolling
4336 instead. (Bug#14780)
4337
198fa217
KB
43382013-07-24 Ken Brown <kbrown@cornell.edu>
4339
4340 * alloc.c (make_save_ptr): Define if HAVE_NTGUI is defined
4341 (Bug#14944).
4342
53840e55
PE
43432013-07-24 Paul Eggert <eggert@cs.ucla.edu>
4344
4345 * eval.c (Fprogn): Do not check that BODY is a proper list.
4346 This undoes the previous change. The check slows down the
4347 interpreter, and is not needed to prevent a crash. See
4348 <http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00693.html>.
4349
60967f56
GM
43502013-07-23 Glenn Morris <rgm@gnu.org>
4351
4352 * Makefile.in ($(etc)/DOC, temacs$(EXEEXT)): Ensure etc/ exists.
4353
9ca960e2
PE
43542013-07-23 Paul Eggert <eggert@cs.ucla.edu>
4355
a29c3e6d
PE
4356 Port to GNU/Linux systems with tinfo but not ncurses.
4357 * dispnew.c (init_display): Depend on USE_NCURSES, not GNU_LINUX,
4358 to decide whether ncurses is being used. Without this change,
4359 GCC complains about tgetent not being declared, on a system
4360 that has tinfo installed but ncurses not installed.
4361
f274311c
PE
4362 * eval.c (Fprogn): Check that BODY is a proper list.
4363
16b0520a
PE
4364 Tune UNEVALLED functions by using XCAR instead of Fcar, etc.
4365 * data.c (Fsetq_default):
4366 * eval.c (Fif, Fcond, Fprog1, Fsetq, Fquote, Ffunction, Fdefvar)
4367 (Fdefconst, FletX, Flet, Fwhile, Fcatch, Funwind_protect)
4368 (Fcondition_case):
4369 Tune by taking advantage of the fact that ARGS is always a list
4370 when a function is declared to have UNEVALLED args.
4371
9ca960e2
PE
4372 * emacsgtkfixed.c: Port to GCC 4.6.
4373 GCC 4.6 complains about -Wunused-local-typedefs, introduced in 4.7.
4374
afacaa1b
JB
43752013-07-23 Juanma Barranquero <lekktu@gmail.com>
4376
4377 * callproc.c (child_setup)[!WINDOWSNT]: Move exec_errno and pid
4378 here to silence compiler warnings.
4379
368a85a4
PE
43802013-07-22 Paul Eggert <eggert@cs.ucla.edu>
4381
4382 * sysdep.c (frame) [__FreeBSD__]: #define to freebsd_frame
4383 when including <sys/user.h>, to prevent Sparc/ARM machine/frame.h
4384 from messing up Emacs's 'struct frame' (Bug#14923).
4385
f4e891b5
PE
43862013-07-21 Paul Eggert <eggert@cs.ucla.edu>
4387
4388 * alloc.c (make_save_ptr_ptr): Define this function.
4389 It was inadvertently omitted. It's needed only if
4390 HAVE_MENUS && ! (USE_X_TOOLKIT || USE_GTK).
4391
96c8b65e
JD
43922013-07-21 Jan Djärv <jan.h.d@swipnet.se>
4393
4394 * nsterm.m (sendEvent:): Skip mouse moved if no dialog and no Emacs
4395 frame have focus (Bug#14895).
4396
ee010797
PE
43972013-07-21 Paul Eggert <eggert@cs.ucla.edu>
4398
4399 Avoid vfork-related deadlock more cleanly.
4400 * callproc.c (child_setup): When the child's exec fails, output
4401 the program name, as that's more useful. Use O_NONBLOCK to avoid
4402 deadlock.
4403 * process.c (create_process_1): Remove; no longer needed.
4404 (create_process): Remove timer hack; no longer needed, now that
4405 the child avoids deadlock.
4406
f0398ec1 44072013-07-20 Glenn Morris <rgm@gnu.org>
8bfcc21a
GM
4408
4409 * image.c (Fimage_flush): Fix doc typo.
4410
b2a069c2
PE
44112013-07-20 Paul Eggert <eggert@cs.ucla.edu>
4412
6496aec9
PE
4413 Fix array bounds violation when pty allocation fails.
4414 * process.c (PTY_NAME_SIZE): New constant.
4415 (pty_name): Remove static variable; it's now auto.
4416 (allocate_pty): Define even if !HAVE_PTYS; that's simpler.
4417 Take pty_name as an arg rather than using a static variable.
4418 All callers changed.
4419 (create_process): Recover pty_flag from process, not from volatile local.
4420 (create_pty): Stay inside array even when pty allocation fails.
4421 (Fmake_serial_process): Omit unnecessary initializaiton of pty_flag.
4422
b2a069c2
PE
4423 * lread.c (Fload): Avoid initialization only when lint checking.
4424 Mention that it's needed only for older GCCs.
4425
99107004
KH
44262013-07-20 Kenichi Handa <handa@gnu.org>
4427
4428 * coding.c (CODING_ISO_FLAG_LEVEL_4): New macro.
4429 (decode_coding_iso_2022): Check the single-shift area. (Bug#8522)
4430
6b1b199d
AS
44312013-07-20 Andreas Schwab <schwab@linux-m68k.org>
4432
4433 * lread.c (Fload): Avoid uninitialized warning.
4434
4195afc3
PE
44352013-07-19 Paul Eggert <eggert@cs.ucla.edu>
4436
3f5bef16
PE
4437 Fix some minor file descriptor leaks and related glitches.
4438 * filelock.c (create_lock_file) [!O_CLOEXEC]: Use fcntl with FD_CLOEXEC.
4439 (create_lock_file): Use write, not emacs_write.
4440 * image.c (slurp_file, png_load_body):
4441 * process.c (Fnetwork_interface_list, Fnetwork_interface_info)
4442 (server_accept_connection):
4443 Don't leak an fd on memory allocation failure.
4444 * image.c (slurp_file): Add a cheap heuristic for growing files.
4445 * xfaces.c (Fx_load_color_file): Block input around the fopen too,
4446 as that's what the other routines do. Maybe input need not be
4447 blocked at all, but it's better to be consistent.
4448 Avoid undefined behavior when strlen is zero.
4449
4195afc3
PE
4450 * alloc.c (staticpro): Avoid buffer overrun on repeated calls.
4451 (NSTATICS): Now a constant; doesn't need to be a macro.
4452
a1aeeffe
RS
44532013-07-19 Richard Stallman <rms@gnu.org>
4454
4455 * coding.c (decode_coding_utf_8): Add simple loop for fast
4456 processing of ASCII characters.
4457
63b34baa
PE
44582013-07-19 Paul Eggert <eggert@cs.ucla.edu>
4459
4460 * conf_post.h (RE_TRANSLATE_P) [emacs]: Remove obsolete optimization.
4461
621dd9ac
EZ
44622013-07-19 Eli Zaretskii <eliz@gnu.org>
4463
4464 * keyboard.c (kbd_buffer_get_event): Use Display_Info instead of
4465 unportable 'struct x_display_info'.
4466 (DISPLAY_LIST_INFO): Delete macro: not needed, since Display_Info
4467 is a portable type.
4468
1396ac86
PE
44692013-07-19 Paul Eggert <eggert@cs.ucla.edu>
4470
ab9980cd
PE
4471 * sysdep.c [GNU_LINUX]: Fix fd and memory leaks and similar issues.
4472 (procfs_ttyname): Don't use uninitialized storage if emacs_fopen
4473 or fscanf fails.
4474 (system_process_attributes): Prefer plain char to unsigned char
4475 when either will do. Clean up properly if interrupted or if
068f9124
SM
4476 memory allocations fail. Don't assume sscanf succeeds.
4477 Remove no-longer-needed workaround to stop GCC from whining.
4478 Read command-line once, instead of multiple times. Check read status a
ab9980cd
PE
4479 bit more carefully.
4480
1396ac86
PE
4481 Fix obscure porting bug with varargs functions.
4482 The code assumed that int is treated like ptrdiff_t in a vararg
4483 function, which is not a portable assumption. There was a similar
4484 -- though these days less likely -- porting problem with various
4485 assumptions that pointers of different types all smell the same as
4486 far as vararg functions is conserved. To make this problem less
4487 likely in the future, redo the API to use varargs functions.
4488 * alloc.c (make_save_value): Remove this vararg function.
4489 All uses changed to ...
4490 (make_save_int_int_int, make_save_obj_obj_obj_obj)
4491 (make_save_ptr_int, make_save_funcptr_ptr_obj, make_save_memory):
4492 New functions.
4493 (make_save_ptr): Rename from make_save_pointer, for consistency with
4494 the above. Define only on platforms that need it. All uses changed.
4495
4d19d194
PE
44962013-07-18 Paul Eggert <eggert@cs.ucla.edu>
4497
4498 * keyboard.c: Try to fix typos in previous change.
4499 (DISPLAY_LIST_INFO): New macro.
4500 (kbd_buffer_get_event): Do not access members that are not present
c7064f05 4501 in X11. Revert inadvertent change of "!=" to "=".
4d19d194 4502
945c5bb1
JB
45032013-07-18 Juanma Barranquero <lekktu@gmail.com>
4504
4505 * keyboard.c (kbd_buffer_get_event):
4506 * w32term.c (x_focus_changed): Port FOCUS_(IN|OUT)_EVENT changes to W32.
4507 Followup to 2013-07-16T11:41:06Z!jan.h.d@swipnet.se.
4508
f4b1eb36
PE
45092013-07-18 Paul Eggert <eggert@cs.ucla.edu>
4510
5e679a2c
PE
4511 * filelock.c: Fix unlikely file descriptor leaks.
4512 (get_boot_time_1): Rework to avoid using emacs_open.
4513 This doesn't actually fix a leak, but is better anyway.
4514 (read_lock_data): Use read, not emacs_read.
4515
a8cd4836
PE
4516 * doc.c: Fix minor memory and file descriptor leaks.
4517 * doc.c (get_doc_string): Fix memory leak when doc file absent.
4518 (get_doc_string, Fsnarf_documentation):
4519 Fix file descriptor leak on error.
4520
ef30e638
PE
4521 * term.c: Fix minor fdopen-related file descriptor leaks.
4522 * term.c (Fresume_tty) [!MSDOS]: Close fd if fdopen (fd) fails.
4523 (init_tty) [!DOS_NT]: Likewise. Also close fd if isatty (fd) fails.
4524
f4b1eb36
PE
4525 * charset.c: Fix file descriptor leaks and errno issues.
4526 Include <errno.h>.
4527 (load_charset_map_from_file): Don't leak file descriptor on error.
4528 Use plain record_xmalloc since the allocation is larger than
4529 MAX_ALLOCA; that's simpler here. Simplify test for exhaustion
4530 of entries.
4531 * eval.c (record_unwind_protect_nothing):
4532 * fileio.c (fclose_unwind):
4533 New functions.
4534 * lread.c (load_unwind): Remove. All uses replaced by fclose_unwind.
4535 The replacement doesn't block input, but that no longer seems
4536 necessary.
4537
b648c163
PE
45382013-07-17 Paul Eggert <eggert@cs.ucla.edu>
4539
a0931322
PE
4540 * lread.c: Fix file descriptor leaks and errno issues.
4541 (Fload): Close some races that leaked fds or streams when 'load'
4542 was interrupted.
4543 (Fload, openp): Report error number of last nontrivial failure to open.
4544 ENOENT counts as trivial.
4545 * eval.c (do_nothing, clear_unwind_protect, set_unwind_protect_ptr):
4546 New functions.
4547 * fileio.c (close_file_unwind): No need to test whether FD is nonnegative,
4548 now that the function is always called with a nonnegative arg.
4549 * lisp.h (set_unwind_protect_ptr, set_unwind_protect_int): Remove.
4550 All uses replaced with ...
4551 (clear_unwind_protect, set_unwind_protect_ptr): New decls.
4552
b648c163
PE
4553 A few more minor file errno-reporting bugs.
4554 * callproc.c (Fcall_process):
4555 * doc.c (Fsnarf_documentation):
4556 * fileio.c (Frename_file, Fadd_name_to_file, Fmake_symbolic_link):
4557 * process.c (set_socket_option):
4558 Don't let a constructor trash errno.
4559 * doc.c: Include <errno.h>.
4560
b1dc4084
JB
45612013-07-16 Juanma Barranquero <lekktu@gmail.com>
4562
4563 * w32fns.c (unwind_create_tip_frame): Fix declaration.
4564
c43843aa
PE
45652013-07-16 Paul Eggert <eggert@cs.ucla.edu>
4566
50a30cce
PE
4567 Fix w32 bug with call-process-region (Bug#14885).
4568 * callproc.c (Fcall_process_region): Pass nil, not "/dev/null",
4569 to Fcall_process when the input is empty. This simplifies the
4570 code a bit. It makes no difference on POSIXish platforms but
4571 apparently it fixes a bug on w32.
4572
44e18199 4573 Fix bug where insert-file-contents closes a file twice (Bug#14839).
41d48a42
PE
4574 * fileio.c (close_file_unwind): Don't close if FD is negative;
4575 this can happen when unwinding a zapped file descriptor.
4576 (Finsert_file_contents): Unwind-protect the fd before the point marker,
4577 in case Emacs runs out of memory between the two unwind-protects.
4578 Don't trash errno when closing FD.
4579 Zap the FD in the specpdl when closing it, instead of deferring
4580 the removal of the unwind-protect; this fixes a bug where a child
4581 function unwinds the stack past us.
4582
27e498e6
PE
4583 New unwind-protect flavors to better type-check C callbacks.
4584 This also lessens the need to write wrappers for callbacks,
4585 and the need for make_save_pointer.
4586 * alloca.c (free_save_value):
4587 * atimer.c (run_all_atimers):
4588 Now extern.
4589 * alloc.c (safe_alloca_unwind):
4590 * atimer.c (unwind_stop_other_atimers):
4591 * keyboard.c (cancel_hourglass_unwind) [HAVE_WINDOW_SYSTEM]:
4592 * menu.c (cleanup_popup_menu) [HAVE_NS]:
4593 * minibuf.c (choose_minibuf_frame_1):
4594 * process.c (make_serial_process_unwind):
4595 * xdisp.h (pop_message_unwind):
4596 * xselect.c (queue_selection_requests_unwind):
4597 Remove no-longer-needed wrapper. All uses replaced by the wrappee.
4598 * alloca.c (record_xmalloc):
4599 Prefer record_unwind_protect_ptr to record_unwind_protect with
4600 make_save_pointer.
4601 * alloca.c (Fgarbage_collect):
4602 Prefer record_unwind_protect_void to passing a dummy.
4603 * buffer.c (restore_buffer):
4604 * window.c (restore_window_configuration):
4605 * xfns.c, w32fns.c (do_unwind_create_frame)
4606 New wrapper. All record-unwind uses of wrappee changed.
4607 * buffer.c (set_buffer_if_live):
4608 * callproc.c (call_process_cleanup, delete_temp_file):
4609 * coding.c (code_conversion_restore):
4610 * dired.c (directory_files_internal_w32_unwind) [WINDOWSNT]:
4611 * editfns.c (save_excursion_restore)
4612 (subst_char_in_region_unwind, subst_char_in_region_unwind_1)
4613 (save_restriction_restore):
4614 * eval.c (restore_stack_limits, un_autoload):
4615 * fns.c (require_unwind):
4616 * keyboard.c (recursive_edit_unwind, tracking_off):
4617 * lread.c (record_load_unwind, load_warn_old_style_backquotes):
4618 * macros.c (pop_kbd_macro, restore_menu_items):
4619 * nsfns.m (unwind_create_frame):
4620 * print.c (print_unwind):
4621 * process.c (start_process_unwind):
4622 * search.c (unwind_set_match_data):
4623 * window.c (select_window_norecord, select_frame_norecord):
4624 * xdisp.c (unwind_with_echo_area_buffer, unwind_format_mode_line)
4625 (fast_set_selected_frame):
4626 * xfns.c, w32fns.c (unwind_create_tip_frame):
4627 Return void, not a dummy Lisp_Object. All uses changed.
4628 * buffer.h (set_buffer_if_live): Move decl here from lisp.h.
4629 * callproc.c (call_process_kill):
4630 * fileio.c (restore_point_unwind, decide_coding_unwind)
4631 (build_annotations_unwind):
4632 * insdel.c (Fcombine_after_change_execute_1):
4633 * keyboard.c (read_char_help_form_unwind):
4634 * menu.c (unuse_menu_items):
4635 * minibuf.c (run_exit_minibuf_hook, read_minibuf_unwind):
4636 * sound.c (sound_cleanup):
4637 * xdisp.c (unwind_redisplay):
4638 * xfns.c (clean_up_dialog):
4639 * xselect.c (x_selection_request_lisp_error, x_catch_errors_unwind):
4640 Accept no args and return void, instead of accepting and returning
4641 a dummy Lisp_Object. All uses changed.
4642 * cygw32.c (fchdir_unwind):
4643 * fileio.c (close_file_unwind):
4644 * keyboard.c (restore_kboard_configuration):
4645 * lread.c (readevalllop_1):
4646 * process.c (wait_reading_process_output_unwind):
4647 Accept int and return void, rather than accepting an Emacs integer
4648 and returning a dummy object. In some cases this fixes an
4649 unlikely bug when the corresponding int is outside Emacs integer
4650 range. All uses changed.
4651 * dired.c (directory_files_internal_unwind):
4652 * fileio.c (do_auto_save_unwind):
4653 * gtkutil.c (pop_down_dialog):
4654 * insdel.c (reset_var_on_error):
4655 * lread.c (load_unwind):
4656 * xfns.c (clean_up_file_dialog):
4657 * xmenu.c, nsmenu.m (pop_down_menu):
4658 * xmenu.c (cleanup_widget_value_tree):
4659 * xselect.c (wait_for_property_change_unwind):
4660 Accept pointer and return void, rather than accepting an Emacs
4661 save value encapsulating the pointer and returning a dummy object.
4662 All uses changed.
4663 * editfns.c (Fformat): Update the saved pointer directly via
4664 set_unwind_protect_ptr rather than indirectly via make_save_pointer.
4665 * eval.c (specpdl_func): Remove. All uses replaced by definiens.
4666 (unwind_body): New function.
4667 (record_unwind_protect): First arg is now a function returning void,
4668 not a dummy Lisp_Object.
4669 (record_unwind_protect_ptr, record_unwind_protect_int)
4670 (record_unwind_protect_void): New functions.
4671 (unbind_to): Support SPECPDL_UNWIND_PTR etc.
4672 * fileio.c (struct auto_save_unwind): New type.
4673 (do_auto_save_unwind): Use it.
4674 (do_auto_save_unwind_1): Remove; subsumed by new do_auto_save_unwind.
4675 * insdel.c (struct rvoe_arg): New type.
4676 (reset_var_on_error): Use it.
4677 * lisp.h (SPECPDL_UNWIND_PTR, SPECPDL_UNWIND_INT, SPECPDL_UNWIND_VOID):
4678 New constants.
4679 (specbinding_func): Remove; there are now several such functions.
4680 (union specbinding): New members unwind_ptr, unwind_int, unwind_void.
4681 (set_unwind_protect_ptr): New function.
4682 * xselect.c: Remove unnecessary forward decls, to simplify maintenance.
4683
4e604a5d
PE
4684 Be simpler and more consistent about reporting I/O errors.
4685 * fileio.c (Fcopy_file, Finsert_file_contents, Fwrite_region):
4686 Say "Read error" and "Write error", rather than "I/O error", or
4687 "IO error reading", or "IO error writing", when a read or write
4688 error occurs.
4689 * process.c (Fmake_network_process, wait_reading_process_output)
4690 (send_process, Fprocess_send_eof, wait_reading_process_output):
4691 Capitalize diagnostics consistently. Put "failed foo" at the
4692 start of the diagnostic, so that we don't capitalize the
4693 function name "foo". Consistently say "failed" for such
4694 diagnostics.
4695 * sysdep.c, w32.c (serial_open): Now accepts Lisp string, not C string.
4696 All callers changed. This is so it can use report_file_error.
4697 * sysdep.c (serial_open, serial_configure): Capitalize I/O
4698 diagnostics consistently as above.
4699
a9757f6a
PE
4700 * fileio.c (report_file_errno): Fix errno reporting bug.
4701 If the file name is neither null nor a pair, package it up as a
4702 singleton list. All callers changed, both to this function and to
4703 report_file_error. This fixes a bug where the memory allocator
4704 invoked by list1 set errno so that the immediately following
4705 report_file_error reported the wrong errno value.
4706
c43843aa
PE
4707 Fix minor problems found by --enable-gcc-warnings.
4708 * frame.c (Fhandle_focus_in, Fhandle_focus_out): Return a value.
4709 * keyboard.c (kbd_buffer_get_event): Remove unused local.
4710
18c26d81
JD
47112013-07-16 Jan Djärv <jan.h.d@swipnet.se>
4712
4713 * xterm.c (x_focus_changed): Always generate FOCUS_IN_EVENT.
4714 Set event->arg to Qt if switch-event shall be generated.
4715 Generate FOCUS_OUT_EVENT for FocusOut if this is the focused frame.
4716
4717 * termhooks.h (enum event_kind): Add FOCUS_OUT_EVENT.
4718
4719 * nsterm.m (windowDidResignKey): If this is the focused frame, generate
4720 FOCUS_OUT_EVENT.
4721
4722 * keyboard.c (Qfocus_in, Qfocus_out): New static objects.
4723 (make_lispy_focus_in, make_lispy_focus_out): Declare and define.
4724 (kbd_buffer_get_event): For FOCUS_IN, make a focus_in event if no
4725 switch frame event is made. Check ! NILP (event->arg) if X11 (moved
44e18199 4726 from xterm.c). Make focus_out event for FOCUS_OUT_EVENT if NS or X11
18c26d81
JD
4727 and there is a focused frame.
4728 (head_table): Add focus-in and focus-out.
4729 (keys_of_keyboard): Add focus-in and focus-out to Vspecial_event_map,
4730 bind to handle-focus-in/out.
4731
4732 * frame.c (Fhandle_focus_in, Fhandle_focus_out): New functions.
4733 (Fhandle_switch_frame): Call Fhandle_focus_in.
4734 (syms_of_frame): defsubr handle-focus-in/out.
4735
6c6f1994
PE
47362013-07-16 Paul Eggert <eggert@cs.ucla.edu>
4737
c7ddc792
PE
4738 Fix porting bug to older POSIXish platforms (Bug#14862).
4739 * sysdep.c (emacs_pipe): New function, that implements
4740 pipe2 (fd, O_CLOEXEC) even on hosts that lack O_CLOEXEC.
4741 This should port better to CentOS 5 and to Mac OS X 10.6.
4742 All calls to pipe2 changed.
4743
6c6f1994
PE
4744 Prefer list1 (X) to Fcons (X, Qnil) when building lists.
4745 This makes the code easier to read and the executable a bit smaller.
4746 Do not replace all calls to Fcons that happen to create lists,
4747 just calls that are intended to create lists. For example, when
4748 creating an alist that maps FOO to nil, use list1 (Fcons (FOO, Qnil))
4749 rather than list1 (list1 (FOO)) or Fcons (Fcons (FOO, Qnil), Qnil).
4750 Similarly for list2 through list5.
4751 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
4752 * bytecode.c (exec_byte_code):
4753 * callint.c (quotify_arg, Fcall_interactively):
4754 * callproc.c (Fcall_process, create_temp_file):
4755 * charset.c (load_charset_map_from_file)
4756 (Fdefine_charset_internal, init_charset):
4757 * coding.c (get_translation_table, detect_coding_system)
4758 (Fcheck_coding_systems_region)
4759 (Fset_terminal_coding_system_internal)
4760 (Fdefine_coding_system_internal, Fdefine_coding_system_alias):
4761 * composite.c (update_compositions, Ffind_composition_internal):
4762 * dired.c (directory_files_internal, file_name_completion)
4763 (Fsystem_users):
4764 * dispnew.c (Fopen_termscript, bitch_at_user, init_display):
4765 * doc.c (Fsnarf_documentation):
4766 * editfns.c (Fmessage_box):
4767 * emacs.c (main):
4768 * eval.c (do_debug_on_call, signal_error, maybe_call_debugger)
4769 (Feval, eval_sub, Ffuncall, apply_lambda):
4770 * fileio.c (make_temp_name, Fcopy_file, Faccess_file)
4771 (Fset_file_selinux_context, Fset_file_acl, Fset_file_modes)
4772 (Fset_file_times, Finsert_file_contents)
4773 (Fchoose_write_coding_system, Fwrite_region):
4774 * fns.c (Flax_plist_put, Fyes_or_no_p, syms_of_fns):
4775 * font.c (font_registry_charsets, font_parse_fcname)
4776 (font_prepare_cache, font_update_drivers, Flist_fonts):
4777 * fontset.c (Fset_fontset_font, Ffontset_info, syms_of_fontset):
4778 * frame.c (make_frame, Fmake_terminal_frame)
4779 (x_set_frame_parameters, x_report_frame_params)
4780 (x_default_parameter, Fx_parse_geometry):
4781 * ftfont.c (syms_of_ftfont):
4782 * image.c (gif_load):
4783 * keyboard.c (command_loop_1):
4784 * keymap.c (Fmake_keymap, Fmake_sparse_keymap, access_keymap_1)
4785 (Fcopy_keymap, append_key, Fcurrent_active_maps)
4786 (Fminor_mode_key_binding, accessible_keymaps_1)
4787 (Faccessible_keymaps, Fwhere_is_internal):
4788 * lread.c (read_emacs_mule_char):
4789 * menu.c (find_and_return_menu_selection):
4790 * minibuf.c (get_minibuffer):
4791 * nsfns.m (Fns_perform_service):
4792 * nsfont.m (ns_script_to_charset):
4793 * nsmenu.m (ns_popup_dialog):
4794 * nsselect.m (ns_get_local_selection, ns_string_from_pasteboard)
4795 (Fx_own_selection_internal):
4796 * nsterm.m (append2):
4797 * print.c (Fredirect_debugging_output)
4798 (print_prune_string_charset):
4799 * process.c (Fdelete_process, Fprocess_contact)
4800 (Fformat_network_address, set_socket_option)
4801 (read_and_dispose_of_process_output, write_queue_push)
4802 (send_process, exec_sentinel):
4803 * sound.c (Fplay_sound_internal):
4804 * textprop.c (validate_plist, add_properties)
4805 (Fput_text_property, Fadd_face_text_property)
4806 (copy_text_properties, text_property_list, syms_of_textprop):
4807 * unexaix.c (report_error):
4808 * unexcoff.c (report_error):
4809 * unexsol.c (unexec):
4810 * xdisp.c (redisplay_tool_bar, store_mode_line_string)
4811 (Fformat_mode_line, syms_of_xdisp):
4812 * xfaces.c (set_font_frame_param)
4813 (Finternal_lisp_face_attribute_values)
4814 (Finternal_merge_in_global_face, syms_of_xfaces):
4815 * xfns.c (x_default_scroll_bar_color_parameter)
4816 (x_default_font_parameter, x_create_tip_frame):
4817 * xfont.c (xfont_supported_scripts):
4818 * xmenu.c (Fx_popup_dialog, xmenu_show, xdialog_show)
4819 (menu_help_callback, xmenu_show):
4820 * xml.c (make_dom):
4821 * xterm.c (set_wm_state):
4822 Prefer list1 (FOO) to Fcons (FOO, Qnil) when creating a list,
4823 and similarly for list2 through list5.
4824
bafe80ce
PE
48252013-07-15 Paul Eggert <eggert@cs.ucla.edu>
4826
4827 * callproc.c (Fcall_process_region): Fix minor race and tune.
4828 (create_temp_file): New function, with the temp-file-creation part
4829 of the old Fcall_process_region. Use Fcopy_sequence to create the
4830 temp file name, rather than alloca + build_string, for simplicity.
4831 Don't bother to block input around the temp file creation;
068f9124
SM
4832 shouldn't be needed. Simplify use of mktemp.
4833 Use record_unwind_protect immediately after creating the temp file;
bafe80ce
PE
4834 this closes an unlikely race where the temp file was not removed.
4835 Use memcpy rather than an open-coded loop.
4836 (Fcall_process_region): Use the new function. If the input is
4837 empty, redirect from /dev/null rather than from a newly created
4838 empty temp file; this avoids unnecessary file system traffic.
4839
4700b5a5
PE
48402013-07-14 Paul Eggert <eggert@cs.ucla.edu>
4841
5c97beae
PE
4842 * filelock.c (create_lock_file) [!HAVE_MKOSTEMP && !HAVE_MKSTEMP]:
4843 Simplify by making this case like the other two. This is a bit
4844 slower on obsolete hosts, but the extra complexity isn't worth it.
4845
4700b5a5
PE
4846 * callproc.c (child_setup, relocate_fd) [!DOS_NT]:
4847 * process.c (create_process) [!DOS_NT]:
4848 Remove now-unnecessary calls to emacs_close.
4849
f9a74c4c
EZ
48502013-07-13 Eli Zaretskii <eliz@gnu.org>
4851
922ae7ee
EZ
4852 * w32term.c (x_draw_hollow_cursor): Delete the brush object when
4853 returning early. (Bug#14850)
4854
f9a74c4c
EZ
4855 * coding.c (syms_of_coding): Set up inhibit-null-byte-detection
4856 and inhibit-iso-escape-detection attributes of 'undecided'.
4857 (Bug#14822)
4858
5e301d76
PE
48592013-07-13 Paul Eggert <eggert@cs.ucla.edu>
4860
69e0e5ee
PE
4861 * deps.mk (sysdep.o): Remove dependency on ../lib/ignore-value.h.
4862 Reported by Herbert J. Skuhra in
4863 <http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00455.html>.
4864
5e301d76
PE
4865 Don't lose top specpdl entry when memory is exhausted.
4866 * eval.c (grow_specpdl): Increment specpdl top by 1 and check for
4867 specpdl overflow here, to simplify callers; all callers changed.
4868 Always reserve an unused entry at the stack top; this avoids
4869 losing the top entry's information when memory is exhausted.
4870
7e649856
PE
48712013-07-12 Paul Eggert <eggert@cs.ucla.edu>
4872
a773ed9a
PE
4873 Clean up errno reporting and fix some errno-reporting bugs.
4874 * callproc.c (Fcall_process):
4875 * fileio.c (Fcopy_file, Finsert_file_contents, Fwrite_region):
4876 * process.c (create_process, Fmake_network_process):
4877 * unexaix.c (report_error):
4878 * unexcoff.c (report_error):
4879 Be more careful about reporting the errno of failed operations.
4880 The code previously reported the wrong errno sometimes.
4881 Also, prefer report_file_errno to setting errno + report_file_error.
4882 (Fcall_process): Look at openp return value rather than at path,
4883 as that's a bit faster and clearer when there's a numeric predicate.
4884 * fileio.c (report_file_errno): New function, with most of the
4885 old contents of report_file_error.
4886 (report_file_error): Use it.
4887 (Ffile_exists_p, Ffile_accessible_directory_p):
4888 Set errno to 0 when it is junk.
4889 * fileio.c (Faccess_file):
4890 * image.c (x_create_bitmap_from_file):
4891 Use faccessat rather than opening the file, to avoid the hassle of
4892 having a file descriptor open.
4893 * lisp.h (report_file_errno): New decl.
4894 * lread.c (Flocate_file_internal): File descriptor 0 is valid, too.
4895
7e649856
PE
4896 Minor EBADF fixes.
4897 * process.c (create_process, wait_reading_process_output) [AIX]:
4898 Remove obsolete SIGHUP-related code, as Emacs no longer disables
4899 SIGHUP, so EBADF is no longer acceptable here (it wouldn't work in
4900 a multithreaded environment anyway).
4901 * sysdep.c (emacs_close): It's not dangerous to invoke emacs_close (-1).
4902
f6774c1a
AS
49032013-07-12 Andreas Schwab <schwab@linux-m68k.org>
4904
4905 * image.c (x_find_image_file): Don't close a remote file handle.
4906
bacba3c2
PE
49072013-07-12 Paul Eggert <eggert@cs.ucla.edu>
4908
4909 Fix races with threads and file descriptors.
4910 * callproc.c (Fcall_process_region):
4911 * dired.c (open_directory):
4912 * emacs.c (main, Fdaemon_initialized):
4913 * image.c (x_find_image_file):
4914 * inotify.c (Finotify_rm_watch):
4915 * lread.c (Flocate_file_internal):
4916 * process.c (Fnetwork_interface_list, Fnetwork_interface_info):
4917 * term.c (term_mouse_moveto, init_tty):
4918 * termcap.c (tgetent):
4919 * unexaix.c, unexcoff.c (report_error, report_error_1, adjust_lnnoptrs)
4920 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c (unexec):
4921 * unexhp9k800.c, unexmacosx.c (unexec):
4922 * callproc.c (Fcall_process_region):
4923 Use emacs_close, not close.
4924 * sysdep.c (POSIX_CLOSE_RESTART, posix_close) [!POSIX_CLOSE_RESTART]:
4925 New macro and function, which emulates the POSIX_CLOSE_RESTART macro
4926 and posix_close function on current platforms (which all lack them).
4927 (emacs_close): Use it. This should fix the races on GNU/Linux and
4928 on AIX and on future platforms that support POSIX_CLOSE_RESTART,
4929 and it should avoid closing random victim file descriptors on
4930 other platforms.
4931
653d4f43
PE
49322013-07-11 Paul Eggert <eggert@cs.ucla.edu>
4933
c8536ec4
PE
4934 * inotify.c (uninitialized): Remove. All uses replaced by -1.
4935 (Finotify_add_watch): Simplify, since -1 means uninitialized now.
4936 Touch up doc a bit.
4937
9c203066
PE
4938 * eval.c (backtrace_function, backtrace_args): Now EXTERNALLY_VISIBLE.
4939 This is for .gdbinit xbacktrace.
4940
653d4f43
PE
4941 * sysdep.c, term.c, termcap.c, terminal.c: Integer-related minor fixes.
4942 * sysdep.c (emacs_get_tty): Return void, since nobody uses the value.
4943 (emacs_set_tty): Now static.
4944 * sysdep.c (emacs_set_tty, tabs_safe_p, emacs_close):
4945 * term.c (tty_capable_p, tty_default_color_capabilities)
4946 (get_tty_terminal, term_mouse_movement)
4947 (handle_one_term_event, init_tty, maybe_fatal):
4948 * termcap.c (tgetst1, struct termcap_buffer, valid_filename_p)
4949 (tgetent, scan_file, name_match, compare_contin):
4950 * terminal.c (get_terminal):
4951 Use bool for boolean.
4952 * sysdep.c (init_system_name): Don't overflow stack on huge hostname.
4953 Prefer char to unsigned char if either will do.
4954 * term.c (OUTPUT, turn_on_face): Omit unnecessary casts to int.
4955 (tty_write_glyphs): Prefer int to unsigned.
4956 (produce_glyphless_glyph): Remove 2nd (unused) int arg.
4957 All callers changed.
4958 * termcap.c (tprint, main) [TEST]: Remove non-working test.
4959
45b683a1
PE
49602013-07-10 Paul Eggert <eggert@cs.ucla.edu>
4961
29abe551
PE
4962 Port to C89.
4963 * bytecode.c (BYTE_CODE_THREADED): Do not define if __STRICT_ANSI__.
4964 (B__dummy__): New dummy symbol, to pacify C89.
4965 * dbusbind.c (XD_DEBUG_MESSAGE): Omit debugging on C89 hosts, since
4966 they can't grok varargs macros.
4967 * dispnew.c (add_window_display_history)
4968 (add_frame_display_history):
4969 * print.c (print_object):
4970 * xdisp.c (debug_method_add):
4971 Use %p printf format only for void pointers.
4972 * emacs.c (usage_message): New constant, replacing ...
4973 (USAGE1, USAGE2, USAGE3): Remove; they were too long for C89.
4974 (main): Adjust to usage reorg.
4975 * fns.c (syms_of_fns):
4976 * profiler.c (syms_of_profiler):
4977 Don't use non-constant struct initializers.
4978 * gnutls.h (gnutls_initstage_t):
4979 * lisp.h (enum Lisp_Fwd_Type):
4980 * lread.c (lisp_file_lexically_bound_p):
4981 * xsettings.c (anonymous enum):
4982 Remove trailing comma.
4983 * xsettings.c (apply_xft_settings): Use %f, not %lf; %lf is a C99ism.
4984 * lisp.h (ENUM_BF): Use unsigned if pedantic.
4985 (DEFUN_FUNCTION_INIT): New macro, that falls back on a cast if pre-C99.
4986 (DEFUN): Use it.
4987 * regex.c (const_re_char): New type, to pacify strict C89.
4988 All uses of 'const re_char' replaced to use it.
4989 * regex.h (_Restrict_): Rename from __restrict, to avoid clash
4990 with glibc when strict C89. This change is imported from gnulib.
4991 All uses changed.
4992 (_Restrict_arr_): Rename from __restrict_arr, similarly.
4993 * sysdep.c (time_from_jiffies) [!HAVE_LONG_LONG_INT]:
4994 Omit GNU_LINUX implementation, since it requires long long.
4995 * xterm.c (x_draw_underwave):
4996 Do not assume the traditional order of struct's members.
4997 (x_term_init): Rewrite to avoid the need for non-constant structure
4998 initializers.
4999
45b683a1 5000 Syntax cleanup, mostly replacing macros with functions.
763a086d 5001 This removes the need for the syntax_temp hack.
45b683a1
PE
5002 * search.c: Include syntax.h after buffer.h, since syntax.h uses BVAR.
5003 * syntax.c (SYNTAX_INLINE): New macro.
5004 (SYNTAX_FLAGS_COMSTART_FIRST, SYNTAX_FLAGS_COMSTART_SECOND)
5005 (SYNTAX_FLAGS_COMEND_FIRST, SYNTAX_FLAGS_COMEND_SECOND)
5006 (SYNTAX_FLAGS_PREFIX, SYNTAX_FLAGS_COMMENT_STYLEB)
5007 (SYNTAX_FLAGS_COMMENT_STYLEC, SYNTAX_FLAGS_COMMENT_STYLEC2)
5008 (SYNTAX_FLAGS_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_STYLE)
5009 (SYNTAX_COMEND_FIRST): Now functions, not macros.
5010 (ST_COMMENT_STYLE, ST_STRING_STYLE, INTERVALS_AT_ONCE):
5011 Now constants, not macros.
5012 (syntax_temp) [!__GNUC__]: Remove.
5013 (SYNTAX_PREFIX): Remove; all uses replaced by syntax_prefix_flag_p.
5014 (syntax_prefix_flag_p): Move implementation of SYNTAX_PREFIX here.
5015 (SET_RAW_SYNTAX_ENTRY, SET_RAW_SYNTAX_ENTRY_RANGE, SYNTAX_MATCH)
5016 (SETUP_SYNTAX_TABLE, SETUP_SYNTAX_TABLE_FOR_OBJECT):
5017 Move here from syntax.h; now functions, not macros. Except for the
5018 last function, these are static since only syntax.c uses them.
5019 (syntax_multibyte): Rename from SYNTAX_WITH_MULTIBYTE_CHECK.
5020 All uses changed. Now a function, not a macro; use this fact
5021 to simplify the code.
5022 (scan_lists, scan_sexps_forward): Remove workarounds for ancient
5023 compiler bugs; no longer relevant.
5024 * syntax.h: Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
5025 (SYNTAX_INLINE): New macro.
5026 (struct gl_state_s, gl_state): Move earlier, so that it's in scope
5027 for the new functions. Use bool for boolean member.
5028 (SYNTAX_ENTRY, SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH)
5029 (SYNTAX_TABLE_BYTE_TO_CHAR, UPDATE_SYNTAX_TABLE_FORWARD)
5030 (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE)
5031 (SETUP_BUFFER_SYNTAX_TABLE):
5032 Now extern inline functions, not macros.
5033 (CURRENT_SYNTAX_TABLE, SYNTAX_ENTRY_INT):
5034 Remove; all uses replaced by implementation.
5035 (syntax_temp) [!__GNUC__]: Remove decl.
5036 (SETUP_SYNTAX_TABLE_FOR_OBJECT): New decl.
5037
29be4a50
JD
50382013-07-10 Jan Djärv <jan.h.d@swipnet.se>
5039
5040 * emacs.c (main): Fix syntax error.
5041
954b166e
PE
50422013-07-10 Paul Eggert <eggert@cs.ucla.edu>
5043
5044 Timestamp fixes for undo (Bug#14824).
5045 * atimer.c (schedule_atimer):
5046 * fileio.c (Ffile_newer_than_file_p):
5047 Minor cleanup: use EMACS_TIME_LT so that we can remove EMACS_TIME_GT.
5048 * buffer.c (buffer-undo-list): Document (t . 0) and (t . -1).
5049 * fileio.c (Fclear_visited_file_modtime): Move to lisp/files.el.
5050 (syms_of_fileio): Remove Sclear_visited_file_name.
5051 (Fvisited_file_modtime): Return -1, not (-1 ...), when the visited
5052 file doesn't exist; this avoids an ambiguity with negative timestamps.
5053 (Fset_visited_file_modtime): Accept -1 and 0 as time-list arg.
5054 * systime.h (make_emacs_time, invalid_emacs_time):
5055 Don't assume struct timespec layout; POSIX doesn't guarantee it.
5056 (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE): Remove.
5057 * undo.c (record_first_change): Push (visited-file-modtime) onto
5058 undo list rather than reimplementing it by hand, incorrectly.
5059
d74647c3
KB
50602013-07-09 Ken Brown <kbrown@cornell.edu>
5061
5062 * sheap.c (STATIC_HEAP_SIZE) [__x86_64__]: Increase to 18MB.
5063
3c51b96b
JB
50642013-07-09 Juanma Barranquero <lekktu@gmail.com>
5065
5066 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/sysdep.$(O)): Update.
5067
4ebbdd67
PE
50682013-07-09 Paul Eggert <eggert@cs.ucla.edu>
5069
5070 Handle errno and exit status a bit more carefully.
5071 * callproc.c (child_setup) [!DOS_NT]: Don't try to stuff an error
5072 number into an exit status. Instead, use EXIT_CANCELED.
5073 (child_setup) [!MSDOS]: Avoid possible deadlock with vfork.
5074 * callproc.c (relocate_fd):
5075 * emacs.c (close_output_streams, main):
5076 * process.c (create_process):
5077 * sysdep.c (sys_subshell) [!DOS_NT || !WINDOWSNT]:
5078 Use emacs_perror for simplicity.
5079 * callproc.c (relocate_fd, main):
5080 * sysdep.c (sys_subshell):
5081 Exit with EXIT_CANCELED etc., not 1, when exec setup fails.
5082 (shut_down_emacs): Use emacs_write, not write.
5083 * emacs.c, sysdep.c: Don't include <ignore-value.h>.
5084 * fileio.c (Fcopy_file, e_write):
5085 * nsterm.m (ns_select):
5086 * process.c (send_process):
5087 * sound.c (vox_write):
5088 Use emacs_write_sig, not emacs_write.
5089 * lisp.h (emacs_write_sig, emacs_perror): New decls.
5090 * process.h (EXIT_CANCELED), EXIT_CANNOT_INVOKE, EXIT_ENOENT):
5091 New constants.
5092 * sysdep.c (emacs_backtrace): Use emacs_write, not ignore_value
5093 of write.
5094 (emacs_full_write): New function.
5095 (emacs_write): Rewrite to use it.
5096 (emacswrite_sig, emacs_perror): New functions.
5097 * xrdb.c (fatal): Don't invoke perror, since errno might be garbage.
5098
44e18199 50992013-07-08 Magnus Henoch <magnus.henoch@gmail.com> (tiny change)
e4b1e5af
JD
5100
5101 * image.c (imagemagick_load_image): Do not use MagickExportImagePixels
5102 on NS even if it is present. Pixmap on NS is a void*.
5103
9caab067
PE
51042013-07-07 Paul Eggert <eggert@cs.ucla.edu>
5105
5106 Port to Ubuntu 10 (Bug#14803).
5107 Problem reported by T.V. Raman.
5108 * process.c (close_on_exec, accept4, process_socket):
5109 Define these if !HAVE_ACCEPT4, not if !SOCK_CLOEXEC.
5110
1d442672
EZ
51112013-07-07 Eli Zaretskii <eliz@gnu.org>
5112
5113 * w32.c (sys_dup): Declare prototype.
5114
5115 * filelock.c:
5116 * emacs.c:
5117 * callproc.c [WINDOWSNT]: Include sys/socket.h.
5118
067428c1
PE
51192013-07-07 Paul Eggert <eggert@cs.ucla.edu>
5120
5121 Make file descriptors close-on-exec when possible (Bug#14803).
5122 This simplifies Emacs a bit, since it no longer needs to worry
5123 about closing file descriptors by hand in some cases.
5124 It also fixes some unlikely races. Not all such races, as
5125 libraries often open files internally without setting
5126 close-on-exec, but it's an improvement.
5127 * alloc.c (valid_pointer_p) [!WINDOWSNT]:
5128 * callproc.c (Fcall_process) [!MSDOS]:
5129 * emacs.c (main) [!DOS_NT]:
5130 * nsterm.m (ns_term_init):
5131 * process.c (create_process):
5132 Use 'pipe2' with O_CLOEXEC instead of 'pipe'.
5133 * emacs.c (Fcall_process_region) [HAVE_MKOSTEMP]:
5134 * filelock.c (create_lock_file) [HAVE_MKOSTEMP]:
5135 Prefer mkostemp with O_CLOEXEC to mkstemp.
5136 * callproc.c (relocate_fd) [!WINDOWSNT]:
5137 * emacs.c (main): Use F_DUPFD_CLOEXEC, not plain F_DUPFD.
5138 No need to use fcntl (..., F_SETFD, FD_CLOEXEC), since we're
5139 now using pipe2.
5140 * filelock.c (create_lock_file) [! HAVE_MKOSTEMP]:
5141 Make the resulting file descriptor close-on-exec.
5142 * lisp.h, lread.c, process.c (close_load_descs, close_process_descs):
5143 * lread.c (load_descriptor_list, load_descriptor_unwind):
5144 Remove; no longer needed. All uses removed.
5145 * process.c (SOCK_CLOEXEC): Define to 0 if not supplied by system.
5146 (close_on_exec, accept4, process_socket) [!SOCK_CLOEXEC]:
5147 New functions.
5148 (socket) [!SOCK_CLOEXEC]: Supply a substitute.
5149 (Fmake_network_process, Fnetwork_interface_list):
5150 (Fnetwork_interface_info, server_accept_connection):
5151 Make newly-created socket close-on-exec.
5152 * sysdep.c (emacs_open, emacs_fopen):
5153 Make new-created descriptor close-on-exec.
5154 * w32.c (fcntl): Support F_DUPFD_CLOEXEC well enough for Emacs.
5155 * w32.c, w32.h (pipe2): Rename from 'pipe', with new flags arg.
5156
0da857dd
JD
51572013-07-07 Jan Djärv <jan.h.d@swipnet.se>
5158
5159 * nsterm.m (sendEvent:): Propagate keyboard events to modal windows
5160 for NS_IMPL_GNUSTEP.
5161
5f86adcd
PE
51622013-07-07 Paul Eggert <eggert@cs.ucla.edu>
5163
5164 Fix openp errno handling.
5165 * callproc.c (Fcall_process): Preserve openp errno around close.
5166 * lread.c (openp): Set errno when returning -1, as some callers
5167 expect this.
5168
1afb1d07
JD
51692013-07-06 Jan Djärv <jan.h.d@swipnet.se>
5170
5171 * nsterm.m (sendEvent:): Handle NSAPP_DATA2_RUNFILEDIALOG.
5172
5173 * nsterm.h (NSSavePanel): Update comment.
5174 (NSAPP_DATA2_RUNFILEDIALOG): Define.
5175 (ns_run_file_dialog): Declare.
5176
5177 * nsfns.m: Remove panelOK.
5178 (ns_fd_data): New.
5179 (ns_run_file_dialog): New function.
5180 (Fns_read_file_name): Fill in ns_fd_data, post an event and start the
5181 event loop, so file dialog is popped up by ns_run_file_dialog, called
5182 by sendEvent (Bug#14578).
5183 (EmacsSavePanel, EmacsOpenPanel): Remove ok and cancel methods.
5184
3323c263
EZ
51852013-07-06 Eli Zaretskii <eliz@gnu.org>
5186
fdda0220
EZ
5187 * xdisp.c (default_line_pixel_height): New function.
5188 (pos_visible_p, move_it_vertically_backward, try_scrolling)
5189 (try_cursor_movement, redisplay_window, try_window)
5190 (try_window_id): Use it instead of FRAME_LINE_HEIGHT. (Bug#14771)
5191
068f9124
SM
5192 * window.c (window_scroll_pixel_based):
5193 use default_line_pixel_height.
fdda0220
EZ
5194
5195 * dispextern.h (default_line_pixel_height): Add prototype.
5196
5197 * frame.c (x_set_line_spacing): Accept a float value for
5198 line-spacing parameter, per the documentation.
5199
3323c263
EZ
5200 * data.c (Fmultibyte_string_p): Doc fix.
5201
47ba6d43
PE
52022013-07-05 Paul Eggert <eggert@cs.ucla.edu>
5203
406af475
PE
5204 Use emacs_open more consistently when opening files.
5205 This handles EINTR more consistently now, and makes it easier
5206 to introduce other uniform changes to file descriptor handling.
5207 * src/systdio.h: New file.
5208 * src/buffer.c (mmap_init):
5209 * cygw32.c (chdir_to_default_directory):
5210 * dispnew.c (Fopen_termscript):
5211 * emacs.c (Fdaemon_initialized):
5212 * fileio.c (Fdo_auto_save):
5213 * image.c (slurp_file, png_load_body, jpeg_load_body):
5214 * keyboard.c (Fopen_dribble_file):
5215 * lread.c (Fload):
5216 * print.c (Fredirect_debugging_output):
5217 * sysdep.c (get_up_time, procfs_ttyname, procfs_get_total_memory):
5218 * termcap.c (tgetent):
5219 * unexaix.c, unexcoff.c (unexec, adjust_lnnoptrs):
5220 * unexcw.c, unexelf.c, unexhp9k800.c, unexmacosx.c (unexec):
5221 * w32term.c (w32_initialize) [CYGWIN]:
5222 * xfaces.c (Fx_load_color_file):
5223 Use emacs_open instead of plain open, and emacs_fopen instead of
5224 plain fopen.
5225 * dispnew.c, fileio.c, image.c, keyboard.c, lread.c, print.c, sysdep.c:
5226 * xfaces.c: Include sysstdio.h rather than stdio.h, for emacs_fopen.
5227 * callproc.c (default_output_mode): New constant.
5228 (Fcall_process): Use it to call emacs_open instead of plain creat.
5229 * dispnew.c (Fopen_termscript): Fix minor race in opening termscript.
5230 * sysdep.c (emacs_open): Add commentary and don't call file name "path".
5231 (emacs_fopen): New function.
5232 * unexaix.c, unexcoff.c, unexelf.c, unexhp9k800.c, unexmacosx.c:
5233 Include <lisp.h>, for emacs_open.
5234 * unexelf.c (fatal): Remove decl; not needed with <lisp.h> included.
5235
47ba6d43
PE
5236 Remove duplicate #include directives.
5237 * alloc.c [GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES]:
5238 * xfaces.c:
5239 Don't include stdio.h twice.
5240 * buffer.c [USE_MMAP_FOR_BUFFERS]:
5241 Don't include sys/types.h or stdio.h twice.
5242 * fileio.c [WINDOWSNT | MSDOS]: Don't include fcntl.h twice.
5243 * lread.c: Don't include coding.h twice.
5244 * nsfont.m: Don't include frame.h twice.
5245 * process.c [HAVE_RES_INIT]: Don't include <netinet/in.h> twice.
5246 * ralloc.c: Don't include <unistd.h> twice.
5247 * xdisp.c: Don't include font.h twice.
5248 * xterm.c: Don't include fontset.h twice.
5249 * xterm.h [USE_X_TOOLKIT]: Don't include X11/StringDefs.h twice.
5250
b9ed53d5
PE
52512013-07-04 Paul Eggert <eggert@cs.ucla.edu>
5252
5253 Scale ImageMagick images more carefully.
5254 * image.c (scale_image_size) [HAVE_IMAGEMAGICK]: New function.
5255 (compute_image_size): Use it. Define only if HAVE_IMAGEMAGICK.
5256 Be more careful about avoiding undefined behavior after
5257 integer overflow and division by zero.
5258
cf13177e
YM
52592013-07-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
5260
5261 * w32fns.c (Qgeometry, Qworkarea, Qmm_size, Qframes): New variables.
5262 (syms_of_w32fns): DEFSYM them.
5263 (MONITORINFOF_PRIMARY, SM_XVIRTUALSCREEN, SM_YVIRTUALSCREEN)
5264 (CCHDEVICENAME): Define macros if not defined.
5265 (struct MONITOR_INFO_EX): New struct.
5266 (MonitorEnum_Proc, EnumDisplayMonitors_Proc): New prototypes.
5267 (enum_display_monitors_fn): New variable.
5268 (globals_of_w32fns): Initialize it.
5269 (Fx_display_pixel_width, Fx_display_pixel_height)
5270 (Fx_display_mm_height, Fx_display_mm_width): Mention behavior on
5271 multi-monitor setups in docstrings.
5272 (Fx_display_mm_height, Fx_display_mm_width): Approximate whole
5273 screen size by primary monitor's millimeter per pixel.
5274 (w32_monitor_enum, w32_display_monitor_attributes_list)
5275 (w32_display_monitor_attributes_list_fallback)
5276 (Fw32_display_monitor_attributes_list): New functions.
5277 (syms_of_w32fns): Defsubr Sw32_display_monitor_attributes_list.
5278
5279 * w32term.c (SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN): Define macros
5280 if not defined.
5281 (x_display_pixel_height, x_display_pixel_width): Use GetSystemMetrics.
5282
86dfb7a8
MA
52832013-07-04 Michael Albinus <michael.albinus@gmx.de>
5284
5285 * fileio.c (Qfile_notify_error): New error symbol.
5286
5287 * gfilenotify.c (Fgfile_add_watch, Fgfile_rm_watch):
5288 * inotify.c (inotify_callback, symbol_to_inotifymask)
5289 (Finotify_add_watch, Finotify_rm_watch): Use it.
5290 (inotifyevent_to_event): Exchange order of cookie and file name.
5291 (Finotify_add_watch): Adapt docstring.
5292
5293 * lisp.h (Qfile_notify_error): Declare.
5294
2c1c974b
PE
52952013-07-04 Paul Eggert <eggert@cs.ucla.edu>
5296
5297 Try again to fix FreeBSD bug re multithreaded memory alloc (Bug#14569).
5298 * emacs.c (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
5299 Do not clear _malloc_thread_enabled_p, undoing the previous change,
5300 which did not work (see <http://bugs.gnu.org/14569#307>).
5301 (main): Do not invoke malloc_enable_thread if (! CANNOT_DUMP
5302 && (!noninteractive || initialized)). This attempts to thread
5303 the needle between the Scylla of FreeBSD and the Charybdis of Cygwin.
5304
7a35b20f
JB
53052013-07-04 Juanma Barranquero <lekktu@gmail.com>
5306
5307 * image.c (x_to_xcolors) [HAVE_NTGUI]: Remove unused var `hdc'.
5308 (x_build_heuristic_mask) [HAVE_NTGUI]: Remove unused var `frame_dc'.
5309
1ce5cd04
PE
53102013-07-04 Paul Eggert <eggert@cs.ucla.edu>
5311
5312 Try to fix FreeBSD bug re multithreaded memory allocation (Bug#14569).
5313 * emacs.c (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
5314 Clear _malloc_thread_enabled_p at startup. Reported by Ashish SHUKLA in
5315 <http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00088.html>.
5316
57f8c490
PE
53172013-07-02 Paul Eggert <eggert@cs.ucla.edu>
5318
5319 * sysdep.c (sys_siglist) [HAVE_DECL___SYS_SIGLIST]:
5320 Define to __sys_siglist.
5321
bcffb5ca
EZ
53222013-07-02 Eli Zaretskii <eliz@gnu.org>
5323
5324 * xdisp.c (IT_OVERFLOW_NEWLINE_INTO_FRINGE): Don't disallow
5325 word-wrap, so that overflow-newline-into-fringe would work in
5326 visual-line-mode. (Bug#2749)
5327 (move_it_in_display_line_to): When the last scanned display
5328 element fits exactly on the display line, and
5329 overflow-newline-into-fringe is non-nil, but wrap_it is valid,
5330 don't return MOVE_NEWLINE_OR_CR, but instead back up to the last
5331 wrap point and return MOVE_LINE_CONTINUED. Fixes problems with
5332 finding buffer position that corresponds to pixel coordinates,
5333 e.g. in buffer_posn_from_coords.
5334
2c41e781
JD
53352013-07-02 Jan Djärv <jan.h.d@swipnet.se>
5336
5337 * process.c (handle_child_signal): Call catch_child_signal if
5338 NS_IMPL_GNUSTEP.
5339
c2418359
PE
53402013-07-02 Paul Eggert <eggert@cs.ucla.edu>
5341
52a9bcae
PE
5342 Don't convert function pointers to void * and back.
5343 It isn't portable C, and it's easy enough to avoid.
5344 * alloc.c: Verify SAVE_FUNCPOINTER bits, too.
5345 (make_save_value): Add support for SAVE_FUNCPOINTER.
5346 * keymap.c (map_keymap_char_table_item, map_keymap_internal):
5347 * print.c (print_object):
5348 Distinguish function from object pointers.
5349 * lisp.h (SAVE_FUNCPOINTER): New constant.
5350 (SAVE_SLOT_BITS): Adjust to it.
5351 (SAVE_TYPE_FUNCPTR_PTR_OBJ): New constant, replacing
5352 SAVE_TYPE_PTR_PTR_OBJ. Change the only use.
5353 (voidfuncptr): New typedef.
5354 (struct Lisp_Save_Value): New member data[0].funcpointer.
5355 (XSAVE_FUNCPOINTER): New function.
5356
c2418359
PE
5357 Simplify buildobj processing.
5358 * Makefile.in (buildobj.h): Make it a sequence of strings each
5359 followed by comma, rather than a single string. Put it into a
5360 .tmp file in case there's an error while generating it.
5361 (gl-stamp): Use .tmp for temp files.
5362 (mostlyclean): Clean .tmp files.
5363 * doc.c (buildobj): Move to just the routine that needs it.
5364 It's now an array of strings, so processing is simpler.
5365
8f43ce49
PE
53662013-07-01 Paul Eggert <eggert@cs.ucla.edu>
5367
5368 Fix bug re noninteractive multithreaded memory allocation (Bug#14569).
5369 * emacs.c (malloc_enable_thread): Hoist extern decl to top level.
5370 (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
5371 Invoke malloc_enable_thread even when not interactive.
5372 Problem reported by Ken Brown in <http://bugs.gnu.org/14569#275>.
5373 * process.c (init_process_emacs) [CYGWIN]: Tickle glib even
5374 in this case, since the underlying bug has now been fixed.
5375
24827db9
JB
53762013-07-01 Juanma Barranquero <lekktu@gmail.com>
5377
5378 * emacs.c (Fkill_emacs): Expand Vauto_save_list_file_name before
5379 unlinking it (bug#14691).
5380
ef099a94
MN
53812013-06-30 Michal Nazarewicz <mina86@mina86.com>
5382
5383 * buffer.c (FKill_buffer): Run `kill-buffer-query-functions'
5384 before checking whether buffer is modified. This lets
5385 `kill-buffer-query-functions' cancel killing of the buffer or save
5386 its content before `kill-buffer' asks user the "Buffer %s
5387 modified; kill anyway?" question.
5388
9d3f2fc2
JD
53892013-06-30 Jan Djärv <jan.h.d@swipnet.se>
5390
5391 * nsfns.m (handlePanelKeys): Don't process Command+Function keys.
5392 Let the super performKeyEquivalent deal with them (Bug#14747).
5393
e6c6c8c7
PE
53942013-06-30 Paul Eggert <eggert@cs.ucla.edu>
5395
1d71c1d9
PE
5396 * widget.c (resize_cb): Remove unused local.
5397
8f5f35cc
PE
5398 Do not use GTK 3 if it exists but cannot be compiled.
5399 * xmenu.c (x_menu_wait_for_event) [!USE_GTK]:
5400 * xterm.c (x_error_handler) [!USE_GTK]:
5401 Do not use GTK 3.
5402
e6c6c8c7
PE
5403 * intervals.c (get_local_map): Actually clip POSITION (Bug#14753).
5404
0ba54312
EZ
54052013-06-30 Eli Zaretskii <eliz@gnu.org>
5406
5d1c3286
EZ
5407 * intervals.c (get_local_map): Instead of aborting, clip POSITION
5408 to the valid range of values. (Bug#14753)
5409
0ba54312
EZ
5410 * xdisp.c (Fmove_point_visually): Invalidate the cursor position
5411 when moving point by using the current glyph matrix. This avoids
5412 the need to force redisplay when this function is called in a
5413 loop.
5414
9c90cc06
PE
54152013-06-29 Paul Eggert <eggert@cs.ucla.edu>
5416
5417 Fix minor problems found by static checking.
5418 * coding.c (encode_inhibit_flag, inhibit_flag): New functions.
5419 Redo the latter's body to sidestep GCC parenthesization warnings.
5420 (setup_coding_system, detect_coding, detect_coding_system): Use them.
5421 * coding.c (detect_coding, detect_coding_system):
5422 * coding.h (struct undecided_spec):
5423 Use bool for boolean.
5424 * image.c (QCmax_width, QCmax_height): Now static.
5425 * xdisp.c (Fmove_point_visually): Remove unused local.
5426
4c672a0f
EZ
54272013-06-29 Eli Zaretskii <eliz@gnu.org>
5428
5429 * xdisp.c (Fmove_point_visually): New function.
5430
c1ea3abf
JB
54312013-06-28 Kenichi Handa <handa@gnu.org>
5432
5433 * coding.h (define_coding_undecided_arg_index): New enum.
5434 (coding_attr_index): New members
5435 coding_attr_undecided_inhibit_null_byte_detection,
5436 coding_attr_undecided_inhibit_iso_escape_detection,
5437 coding_attr_undecided_prefer_utf_8.
5438 (undecided_spec): New struct.
5439 (struct coding_system): New member `undecided' of the member
5440 `spec'.
5441
5442 * coding.c (setup_coding_system): Handle CODING->spec.undecided.
5443 (detect_coding): Likewise.
5444 (detect_coding_system): Likewise.
5445 (Fdefine_coding_system_internal): New coding system properties
5446 :inhibit-null-byte-detection, :inhibit-iso-escape-detection, and
5447 :prefer-utf-8.
5448 (syms_of_coding): Adjust for coding_arg_undecided_max.
5449
ba3de9e6
PE
54502013-06-28 Paul Eggert <eggert@cs.ucla.edu>
5451
5452 * image.c (x_from_xcolors): Remove unused local.
5453
547c9269
YM
54542013-06-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
5455
5456 Defer image data transfer between X client and server until actual
5457 display happens.
5458
5459 * dispextern.h (struct image) [HAVE_X_WINDOWS]: New members `ximg'
5460 and `mask_img'.
5461
5462 * image.c (Destroy_Image): Remove.
5463 (x_clear_image_1): New arg `flags' instead of 3 bools `pixmap_p',
5464 `mask_p', and `colors_p'. All uses changed.
5465 (x_clear_image_1) [HAVE_X_WINDOWS]: Destroy `ximg' and `mask_img'.
ef099a94
MN
5466 (CLEAR_IMAGE_PIXMAP, CLEAR_IMAGE_MASK, CLEAR_IMAGE_COLORS):
5467 New macros for `flags' arg to x_clear_image_1.
547c9269
YM
5468 (postprocess_image, xpm_load_image, x_build_heuristic_mask)
5469 (png_load_body): Use x_clear_image_1 instead of Free_Pixmap.
04b66ce7 5470 (ZPixmap, XGetImage) [HAVE_NS]: Remove.
547c9269
YM
5471 (image_get_x_image_or_dc, image_unget_x_image_or_dc)
5472 (image_get_x_image, image_unget_x_image): New functions or macros.
5473 (image_background, image_background_transparent, x_to_xcolors)
5474 (x_build_heuristic_mask): Use image_get_x_image_or_dc instead of
5475 XGetImage or CreateCompatibleDC. Use image_unget_x_image_or_dc
5476 instead of Destroy_Image.
5477 (image_create_x_image_and_pixmap, image_put_x_image): New functions.
5478 (xpm_load_image, x_from_xcolors, x_build_heuristic_mask, pbm_load)
5479 (png_load_body, jpeg_load_body, tiff_load, gif_load)
5480 (imagemagick_load_image, svg_load_image): Use them instead of
5481 x_create_x_image_and_pixmap, and x_put_x_image followed by
5482 x_destroy_x_image, respectively.
5483 (xpm_load) [HAVE_XPM && !HAVE_NTGUI]: Use XpmReadFileToImage and
5484 XpmCreateImageFromBuffer instead of XpmReadFileToPixmap and
5485 XpmCreatePixmapFromBuffer. Create pixmaps. Fill background and
5486 background_transparent fields.
5487 (image_sync_to_pixmaps) [HAVE_X_WINDOWS]: New function.
5488 (prepare_image_for_display, x_disable_image) [HAVE_X_WINDOWS]: Use it.
5489
dae2f5ef
PE
54902013-06-27 Paul Eggert <eggert@cs.ucla.edu>
5491
5492 Do not tickle glib SIGCHLD handling if Cygwin (Bug#14569).
5493 This mostly consists of undoing recent changes.
5494 * callproc.c (Fcall_process):
5495 * process.c (create_process):
5496 Do not worry about catching SIGCHLD here, undoing previous change.
5497 * nsterm.m (ns_term_init): Re-catch SIGCHLD, undoing previous change.
5498 * process.c, process.h (catch_child_signal):
5499 No longer extern if !NS_IMPL_GNUSTEP, undoing 06-22 change.
5500 * process.c (catch_child_handler): Don't worry about being called
5501 lazily and do not assume caller has blocked SIGCHLD, undoing
5502 previous change. Move first-time stuff back to
5503 init_process_emacs, undoing 06-22 change. If CYGWIN, do not
5504 tickle glib, as that causes Cygwin bootstrap to fail. Do not
5505 set lib_child_handler if it's already initialized, which may
5506 help avoid problems on GNUStep.
5507
fa55d2aa
PE
55082013-06-23 Paul Eggert <eggert@cs.ucla.edu>
5509
5510 A more-conservative workaround for Cygwin SIGCHLD issues (Bug#14569).
5511 * callproc.c (Fcall_process):
5512 * process.c (create_process):
5513 Make sure SIGCHLD is caught before we fork,
5514 since Emacs startup no arranges to catch SIGCHLD.
5515 * process.c (lib_child_handler): Initialize to null, not to
5516 dummy_handler.
5517 (catch_child_signal): Allow self to be called lazily.
5518 Do nothing if it's already been called.
5519 Assume caller has blocked SIGCHLD (all callers do now).
5520 * emacs.c (main): Do not catch SIGCHLD here; defer it until
5521 just before it's really needed.
5522 * nsterm.m (ns_term_init): No need to re-catch SIGCHLD here,
5523 since it hasn't been caught yet.
5524
f3f9606c
LMI
55252013-06-23 Lars Magne Ingebrigtsen <larsi@gnus.org>
5526
5527 * image.c (compute_image_size): New function to implement
5528 :max-width and :max-height.
5529 (imagemagick_load_image): Use it.
5530
c7041908
PE
55312013-06-23 Paul Eggert <eggert@cs.ucla.edu>
5532
5533 Try to avoid malloc SEGVs on Cygwin (Bug#14569).
5534 * callproc.c, process.h (block_child_signal, unblock_child_signal):
5535 Now extern.
5536 * emacs.c (main): Catch SIGCHLD just before initializing gfilenotify.
5537 * process.c (catch_child_signal): Block SIGCHLD while futzing with
5538 the SIGCHLD handler, since the code is not atomic and (due to glib)
5539 signals may be arriving now.
5540 * sysdep.c (init_signals): Do not catch child signals here;
5541 'main' now does that later, at a safer time.
5542
f86852b4
PE
55432013-06-22 Paul Eggert <eggert@cs.ucla.edu>
5544
0dfeed58
PE
5545 Clean up SIGCHLD handling a bit (Bug#14569).
5546 * process.c, process.h (catch_child_signal):
5547 Now always extern, even if !NS_IMPL_GNUSTEP.
5548 * process.c (catch_child_signal): Move glib tickler here from
5549 init_process_emacs, so that it's done earlier in Emacs
5550 initialization. Also move the noninteractive && !initialized
5551 check here from init_process_emacs. This is all a bit cleaner for
5552 GNUish platforms, and I hope it works around the Cygwin bug.
5553 * sysdep.c (init_signals): Invoke catch_child_signal here, so
5554 that glib signal handling is tickled before glib creates threads.
5555
f86852b4
PE
5556 * process.c (wait_reading_process_output): Avoid int overflow
5557 when reading more than 2 GiB total from a process.
5558
cbd6509c
PE
55592013-06-21 Paul Eggert <eggert@cs.ucla.edu>
5560
5561 * process.c (create_process): Handle a couple more cases,
5562 i.e., work even if new_argv and wait_child_setup[i] are cached.
5563 Use Fcall_process's style for volatile vars.
5564
9de1114a
AS
55652013-06-21 Andreas Schwab <schwab@linux-m68k.org>
5566
5567 * process.c (create_process): Mark PROCESS volatile.
5568
fbe9e0b9
PE
55692013-06-21 Paul Eggert <eggert@cs.ucla.edu>
5570
5571 Use C99-style flexible array members if available.
5572 This avoids some subtle aliasing issues, which typically
5573 aren't a problem with GCC but may be a problem elsewhere.
5574 * alloc.c (sdata): New typedef, replacing the old struct sdata.
5575 It is a struct if GC_CHECK_STRING_BYTES, a union otherwise.
5576 In either case, it uses a flexible array member rather than
5577 the old struct hack. All uses changed.
5578 (SDATA_NBYTES, sweep_strings) [!GC_CHECK_STRING_BYTES]:
5579 Adjust to sdata reorganization.
5580 * alloc.c (VBLOCK_BYTES_MIN, allocate_vectorlike, Fgarbage_collect):
5581 Use offsetof (struct, flex_array_member), not sizeof (struct), as
5582 that ports better to pre-C99 non-GCC.
5583 * chartab.c (Fmake_char_table, make_sub_char_table, copy_char_table):
5584 Use CHAR_TABLE_STANDARD_SLOTS rather than its definition,
5585 as the latter has changed.
5586 * conf_post.h (FLEXIBLE_ARRAY_MEMBER): Move here from w32.c,
5587 and port better to pre-C99 GCC.
5588 * image.c (struct xpm_cached_color):
5589 * lisp.h (struct Lisp_Vector, struct Lisp_Bool_Vector)
5590 (struct Lisp_Char_Table, struct Lisp_Sub_Char_Table):
5591 Use FLEXIBLE_ARRAY_MEMBER.
5592 * lisp.h (string_bytes) [GC_CHECK_STRING_BYTES]:
5593 Move decl to top level so it gets checked against implementation.
5594 (CHAR_TABLE_STANDARD_SLOTS): Adjust to struct Lisp_Char_Table change.
5595 * w32.c (FLEXIBLE_ARRAY_MEMBER): Move to conf_post.h.
5596
1fc71008
PE
55972013-06-20 Paul Eggert <eggert@cs.ucla.edu>
5598
5599 * syntax.c: Integer cleanups.
5600 (SYNTAX_FLAGS_COMMENT_STYLEC): Return a boolean, not 0-or-2.
5601 All uses that need 0-or-2 changed to:
5602 (SYNTAX_FLAGS_COMMENT_STYLEC2): New macro, with the same semantics
5603 as the old SYNTAX_FLAGS_COMMENT_STYLEC.
5604 (struct lisp_parse_state, syntax_prefix_flag_p, update_syntax_table)
5605 (char_quoted, prev_char_comend_first, back_comment)
5606 (Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
5607 (in_classes, forw_comment, scan_lists, scan_sexps_forward):
5608 Use bool for boolean.
5609 (update_syntax_table, skip_chars, skip_syntaxes):
5610 Prefer int to unsigned when either will do.
5611 (back_comment): Return boolean success flag, like forw_comment,
5612 instead of positive-or-minus-1 (which might have overflowed int anyway).
5613 Don't stuff ptrdiff_t into int.
5614 (syntax_spec_code, syntax_code_spec): Now const.
5615 (Fmatching_paren, scan_lists, scan_sexps_forward):
5616 Use enum syntaxcode for syntax code.
5617 (Fmatching_paren): Check that arg is a character, not just an integer.
5618 (Fstring_to_syntax): Don't assume 0377 fits in enum syntaxcode.
5619 (Finternal_describe_syntax_value): Omit no-longer-needed
5620 comparison to 0.
5621 (skip_chars): Use char, not unsigned char, when the distinction
5622 doesn't matter.
5623 (forw_comment, scan_lists): Prefer A |= B to A = A || B when B's cheap.
5624 * bytecode.c (exec_byte_code):
5625 * syntax.c (syntax_spec_code, Fchar_syntax)
5626 (Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
5627 (init_syntax_once):
5628 * syntax.h (SYNTAX_WITH_FLAGS):
5629 Omit unnecessary casts.
5630
b932cad7
EZ
56312013-06-20 Eli Zaretskii <eliz@gnu.org>
5632
5633 * w32fns.c (w32_wnd_proc): Don't compute the header line and mode
5634 line dimensions here, to avoid race conditions with the main
5635 thread. (Bug#14062, bug#14630, bug#14669)
5636
5637 * w32term.c (w32_draw_window_cursor): Compute the header line and
5638 mode line dimensions here.
5639 <w32_system_caret_window, w32_system_caret_hdr_height>:
5640 <w32_system_caret_mode_height>: New variables.
5641
5642 * w32term.h: Declare them.
5643
89561f72
PE
56442013-06-20 Paul Eggert <eggert@cs.ucla.edu>
5645
5013fc08
PE
5646 * alloc.c (die): Move "assertion failed" string here ...
5647 * lisp.h (eassert): ... from here. Also, suppress evaluation of
5648 COND when SUPPRESS_CHECKING. This shrinks the executable text
5649 size by 0.8% to 2.2% when configured with --enable-checking,
5650 depending on optimization flags (GCC 4.8.1 x86-64).
5651
89561f72
PE
5652 * floatfns.c (Flog10): Move to Lisp (marked obsolete there).
5653
763a086d 56542013-06-20 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
89561f72
PE
5655
5656 * floatfns.c (Flog) [HAVE_LOG2]: Use log2 if available and if the
5657 base is 2; this is more accurate.
5658
983aeb9a
JB
56592013-06-19 Juanma Barranquero <lekktu@gmail.com>
5660
5661 * sound.c (string_default): Move to !WINDOWSNT section.
5662 (Fplay_sound_internal) [WINDOWSNT]: Remove i_result to avoid warning.
5663
178ba3e6
PE
56642013-06-19 Paul Eggert <eggert@cs.ucla.edu>
5665
bbc51b15
PE
5666 * sound.c: Integer cleanups.
5667 Remove unnecessary forward decls.
5668 (struct sound_device): The 'file' member is now a Lisp_Object, not
5669 a char *, so that we needn't invoke alloca on a huge size.
5670 (Fplay_sound_internal): Adjust to this.
5671 (string_default): New function.
5672 (vox_open, vox_init, alsa_open, alsa_configure, alsa_init):
5673 Use it to adjust to the struct sound_device change.
5674 (parse_sound, wav_init, au_init, alsa_init): Use bool for booleans.
5675 (be2hs) [0]: Remove.
5676
178ba3e6
PE
5677 * syntax.c (skip_chars): Don't use uninitialized storage
5678 when searching a multibyte buffer for characters that are not in a
5679 unibyte string that contains non-ASCII characters.
5680
69f60cdc
JD
56812013-06-18 Jan Djärv <jan.h.d@swipnet.se>
5682
5683 * process.c: Include xgselect.h if HAVE_GLIB. Include glib.h
5684 if HAVE_GLIB && ! WINDOWSNT (Bug#14654).
5685
0d6224d4
PE
56862013-06-18 Paul Eggert <eggert@cs.ucla.edu>
5687
5688 * conf_post.h: Add comments for INLINE, EXTERN_INLINE, etc.
5689
3c542890
KH
56902013-06-18 Kenichi Handa <handa@gnu.org>
5691
f7e3f7cd
KH
5692 * font.c (Ffont_spec): Signal an error for an invalid font name
5693 (Bug#14648).
3c542890 5694
9349e5f7
PE
56952013-06-18 Paul Eggert <eggert@cs.ucla.edu>
5696
5697 Porting fixes for merged specpdl and backtrace stacks (Bug#14643).
5698 In particular this ports to 32-bit sparc Sun cc.
5699 * eval.c (init_eval_once, grow_specpdl): Allocate a specbinding
5700 array with a dummy element at specpdl[-1], so that its address can
5701 be taken portably.
5702 (unbind_to): Do not copy the binding; not needed, now that we
5703 copy old_value in the one place where the copy is needed.
5704 * fileio.c (Fwrite_region): Use ptrdiff_t, not int, for specpdl count.
5705 * lisp.h (BITS_PER_PTRDIFF_T): Remove; no longer needed.
5706 (union specbinding): Rename from struct specbinding. Redo layout
5707 to avoid the need for 'ptrdiff_t nargs : BITS_PER_PTRDIFF_T - 1;',
5708 which is not portable. With Sun C 5.12 32-bit sparc, the
5709 declaration causes nargs to be an unsigned bitfield, a behavior
5710 that the C standard allows; but Emacs wants nargs to be signed.
5711 The overall type is now a union of structures rather than a
5712 structure of union of structures, and the 'kind' member is now a
5713 bitfield, so that the overall type doesn't grow. All uses changed.
5714 * process.c (Fmake_serial_process): Remove unnecessary initialization.
5715
0a4df6a5
PE
57162013-06-17 Paul Eggert <eggert@cs.ucla.edu>
5717
ec6ecaad
PE
5718 * frame.c (x_report_frame_params): Cast parent_desc to uintptr_t.
5719 Needed if HAVE_NTGUI. Reported by Juanma Barranquero.
5720
0a4df6a5
PE
5721 * nsfont.m (ns_registry_to_script): Parenthesize while expression.
5722
7bfe8dbc
EZ
57232013-06-17 Eli Zaretskii <eliz@gnu.org>
5724
5725 * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT
5726 unless we know that the window w's frame is a frame object.
5727 Another attempt at solving bug#14062 and bug#14630.
5728
708e05f6
LMI
57292013-06-17 Lars Magne Ingebrigtsen <larsi@gnus.org>
5730
5731 * textprop.c (property_set_type): New enum.
5732 (add_properties): Allow appending/prepending text properties.
5733 (add_text_properties_1): Factored out of Fadd_text_properties.
ef099a94 5734 (Fadd_text_properties): Move all the code into
708e05f6
LMI
5735 add_text_properties_1.
5736 (Fadd_face_text_property): New function that calls
5737 add_text_properties_1.
5738
84575e67
PE
57392013-06-17 Paul Eggert <eggert@cs.ucla.edu>
5740
5741 Move functions from lisp.h to individual modules when possible.
5742 From a suggestion by Andreas Schwab in <http://bugs.gnu.org/11935#68>.
5743 * alloc.c (XFLOAT_INIT, set_symbol_name):
5744 * buffer.c (CHECK_OVERLAY):
5745 * chartab.c (CHECK_CHAR_TABLE, set_char_table_ascii)
5746 (set_char_table_parent):
5747 * coding.c (CHECK_NATNUM_CAR, CHECK_NATNUM_CDR):
5748 * data.c (BOOLFWDP, INTFWDP, KBOARD_OBJFWDP, OBJFWDP, XBOOLFWD)
5749 (XKBOARD_OBJFWD, XINTFWD, XOBJFWD, CHECK_SUBR, set_blv_found)
5750 (blv_value, set_blv_value, set_blv_where, set_blv_defcell)
5751 (set_blv_valcell):
5752 * emacs.c (setlocale) [!HAVE_SETLOCALE]:
5753 * eval.c (specpdl_symbol, specpdl_old_value, specpdl_where)
5754 (specpdl_arg, specpdl_func, backtrace_function, backtrace_nargs)
5755 (backtrace_args, backtrace_debug_on_exit):
5756 * floatfns.c (CHECK_FLOAT):
5757 * fns.c (CHECK_HASH_TABLE, CHECK_LIST_END)
5758 (set_hash_key_and_value, set_hash_next, set_hash_next_slot)
5759 (set_hash_hash, set_hash_hash_slot, set_hash_index)
5760 (set_hash_index_slot):
5761 * keymap.c (CHECK_VECTOR_OR_CHAR_TABLE):
5762 * marker.c (CHECK_MARKER):
5763 * textprop.c (CHECK_STRING_OR_BUFFER):
5764 * window.c (CHECK_WINDOW_CONFIGURATION):
5765 Move here from lisp.h, and make these functions static rather than
5766 extern inline.
5767 * buffer.c (Qoverlayp):
5768 * data.c (Qsubrp):
5769 * fns.c (Qhash_table_p):
5770 * window.c (Qwindow_configuration_p):
5771 Now static.
5772 * lisp.h: Remove the abovementioned defns and decls.
5773
44e18199 5774 Use functions, not macros, for XINT etc (Bug#11935).
84575e67
PE
5775 In lisp.h, prefer functions to function-like macros, and
5776 constants to object-like macros, when either will do. This:
5777 . simplifies use, as there's no more need to worry about
5778 arguments' side effects being evaluated multiple times.
5779 . makes the code easier to debug on some platforms.
5780 However, when using gcc -O0, keep using function-like macros
5781 for a few critical operations, for performance reasons.
5782 This sort of thing isn't needed with gcc -Og, but -Og
5783 is a GCC 4.8 feature and isn't widely-enough available yet.
5784 * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]:
5785 Remove enum lsb_bits; no longer needed.
5786 (allocate_misc, free_misc): Don't use XMISCTYPE as an lvalue.
5787 * buffer.c (Qoverlap):
5788 * data.c (Qsubrp):
5789 * fns.c (Qhash_table_p):
5790 Now extern, so lisp.h can use these symbols.
5791 * dispextern.h: Include character.h, for MAX_CHAR etc.
5792 (GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE)
5793 (SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
5794 (SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P)
5795 (GLYPH_CODE_P): Move here from lisp.h.
5796 (GLYPH_CHAR, GLYPH_FACE, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
5797 (GLYPH_CHAR_VALID_P, GLYPH_CODE_P): Now functions, not macros.
5798 (GLYPH_MODE_LINE_FACE): Now enums, not macros.
5799 * eval.c (Fautoload): Cast XUNTAG output to intptr_t, since
5800 XUNTAG now returns void *.
5801 * lisp.h (lisp_h_XLI, lisp_h_XIL, lisp_h_CHECK_LIST_CONS)
5802 (lisp_h_CHECK_NUMBER CHECK_SYMBOL, lisp_h_CHECK_TYPE)
5803 (lisp_h_CONSP, lisp_h_EQ, lisp_h_FLOATP, lisp_h_INTEGERP)
5804 (lisp_h_MARKERP, lisp_h_MISCP, lisp_h_NILP)
5805 (lisp_h_SET_SYMBOL_VAL, lisp_h_SYMBOL_CONSTANT_P)
5806 (lisp_h_SYMBOL_VAL, lisp_h_SYMBOLP, lisp_h_VECTORLIKEP)
5807 (lisp_h_XCAR, lisp_h_XCDR, lisp_h_XCONS, lisp_h_XHASH)
5808 (lisp_h_XPNTR, lisp_h_XSYMBOL):
5809 New macros, renamed from their sans-lisp_h_ counterparts.
5810 (XLI, XIL, CHECK_LIST_CONS, CHECK_NUMBER CHECK_SYMBOL)
5811 (CHECK_TYPE, CONSP, EQ, FLOATP, INTEGERP, MARKERP)
5812 (MISCP, NILP, SET_SYMBOL_VAL, SYMBOL_CONSTANT_P, SYMBOL_VAL, SYMBOLP)
5813 (VECTORLIKEP, XCAR, XCDR, XCONS, XHASH, XPNTR, XSYMBOL):
5814 If compiling via GCC without optimization, define these as macros
5815 in addition to inline functions.
5816 To disable this, compile with -DINLINING=0.
5817 (LISP_MACRO_DEFUN, LISP_MACRO_DEFUN_VOID): New macros.
5818 (check_cons_list) [!GC_CHECK_CONS_LIST]: Likewise.
5819 (make_number, XFASTINT, XINT, XTYPE, XUNTAG): Likewise, but
5820 hand-optimize only in the USE_LSB_TAG case, as GNUish hosts do that.
5821 (INTMASK, VALMASK): Now macros, since static values cannot be
5822 accessed from extern inline functions.
5823 (VALMASK): Also a constant, for benefit of old GDB.
5824 (LISP_INT_TAG_P): Remove; no longer needed as the only caller
5825 is INTEGERP, which can fold it in.
5165d44a 5826 (XLI, XIL, XHASH, XTYPE, XINT, XFASTINT, XUINT)
84575e67
PE
5827 (make_number, XPNTR, XUNTAG, EQ, XCONS, XVECTOR, XSTRING, XSYMBOL)
5828 (XFLOAT, XPROCESS, XWINDOW, XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE)
5829 (XSUB_CHAR_TABLE, XBOOL_VECTOR, make_lisp_ptr, CHECK_TYPE)
5830 (CHECK_STRING_OR_BUFFER, XCAR, XCDR, XSETCAR, XSETCDR, CAR, CDR)
5831 (CAR_SAFE, CDR_SAFE, STRING_MULTIBYTE, SDATA, SSDATA, SREF, SSET)
5832 (SCHARS, STRING_BYTES, SBYTES, STRING_SET_CHARS, STRING_COPYIN, AREF)
5833 (ASIZE, ASET, CHAR_TABLE_REF_ASCII, CHAR_TABLE_REF)
5834 (CHAR_TABLE_SET, CHAR_TABLE_EXTRA_SLOTS, SYMBOL_VAL, SYMBOL_ALIAS)
5835 (SYMBOL_BLV, SYMBOL_FWD, SET_SYMBOL_VAL, SET_SYMBOL_ALIAS)
5836 (SET_SYMBOL_BLV, SET_SYMBOL_FWD, SYMBOL_NAME, SYMBOL_INTERNED_P)
5837 (SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P, SYMBOL_CONSTANT_P)
5838 (XHASH_TABLE, HASH_TABLE_P, CHECK_HASH_TABLE, HASH_KEY, HASH_VALUE)
5839 (HASH_NEXT, HASH_HASH, HASH_INDEX, HASH_TABLE_SIZE)
5840 (XMISC, XMISCANY, XMARKER, XOVERLAY, XSAVE_VALUE, XFWDTYPE)
5841 (XINTFWD, XBOOLFWD, XOBJFWD, XBUFFER_OBJFWD, XKBOARD_OBJFWD)
5842 (XFLOAT_DATA, XFLOAT_INIT, NILP, NUMBERP, NATNUMP)
5843 (RANGED_INTEGERP, CONSP, FLOATP, MISCP, STRINGP, SYMBOLP)
5844 (INTEGERP, VECTORLIKEP, VECTORP, OVERLAYP)
5845 (MARKERP, SAVE_VALUEP, AUTOLOADP, INTFWDP, BOOLFWDP, OBJFWDP)
5846 (BUFFER_OBJFWDP, KBOARD_OBJFWDP, PSEUDOVECTOR_TYPEP)
5847 (PSEUDOVECTORP, WINDOW_CONFIGURATIONP, PROCESSP, WINDOWP)
5848 (TERMINALP, SUBRP, COMPILEDP, BUFFERP, CHAR_TABLE_P)
5849 (SUB_CHAR_TABLE_P, BOOL_VECTOR_P, FRAMEP, IMAGEP, ARRAYP)
5850 (CHECK_LIST, CHECK_LIST_CONS, CHECK_LIST_END, CHECK_STRING)
5851 (CHECK_STRING_CAR, CHECK_CONS, CHECK_SYMBOL, CHECK_CHAR_TABLE)
5852 (CHECK_VECTOR, CHECK_VECTOR_OR_STRING, CHECK_ARRAY)
5853 (CHECK_VECTOR_OR_CHAR_TABLE, CHECK_BUFFER, CHECK_WINDOW)
5854 (CHECK_WINDOW_CONFIGURATION, CHECK_PROCESS, CHECK_SUBR)
5855 (CHECK_NUMBER, CHECK_NATNUM, CHECK_MARKER, XFLOATINT)
5856 (CHECK_FLOAT, CHECK_NUMBER_OR_FLOAT, CHECK_OVERLAY)
5857 (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR, CHECK_NATNUM_CAR)
5858 (CHECK_NATNUM_CDR, FUNCTIONP, SPECPDL_INDEX, LOADHIST_ATTACH)
5859 Now functions.
5860 (check_cons_list) [!GC_CHECK_CONS_LIST]: New empty function.
5861 (LISP_MAKE_RVALUE, TYPEMASK): Remove; no longer needed.
5862 (VALMASK): Define in one place rather than in two, merging the
5863 USE_LSB_TAG parts; this is simpler.
5864 (aref_addr, gc_aset, MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM)
5865 (max, min, struct Lisp_String, UNSIGNED_CMP, ASCII_CHAR_P):
5866 Move up, to avoid use before definition.
5867 Also include "globals.h" earlier, for the same reason.
5868 (make_natnum): New function.
5869 (XUNTAG): Now returns void *, not intptr_t, as this means fewer casts.
5870 (union Lisp_Fwd, BOOLFWDP, BOOL_VECTOR_P, BUFFER_OBJFWDP, BUFFERP)
5871 (CHAR_TABLE_P, CHAR_TABLE_REF_ASCII, CONSP, FLOATP, INTEGERP, INTFWDP)
5872 (KBOARD_OBJFWDP, MARKERP, MISCP, NILP, OBJFWDP, OVERLAYP, PROCESSP)
5873 (PSEUDOVECTORP, SAVE_VALUEP, STRINGP, SUB_CHAR_TABLE_P, SUBRP, SYMBOLP)
5874 (VECTORLIKEP, WINDOWP, Qoverlayp, char_table_ref, char_table_set)
5875 (char_table_translate, Qarrayp, Qbufferp, Qbuffer_or_string_p)
5876 (Qchar_table_p, Qconsp, Qfloatp, Qintegerp, Qlambda, Qlistp, Qmarkerp)
5877 (Qnil, Qnumberp, Qsubrp, Qstringp, Qsymbolp, Qvectorp)
5878 (Qvector_or_char_table_p, Qwholenump, Ffboundp, wrong_type_argument)
5879 (initialized, Qhash_table_p, extract_float, Qprocessp, Qwindowp)
5880 (Qwindow_configuration_p, Qimage): New forward declarations.
5881 (XSETFASTINT): Simplify by rewriting in terms of make_natnum.
5882 (STRING_COPYIN): Remove; unused.
5883 (XCAR_AS_LVALUE, XCDR_AS_LVALUE): Remove these macros, replacing with ...
5884 (xcar_addr, xcdr_addr): New functions. All uses changed.
5885 (IEEE_FLOATING_POINT): Now a constant, not a macro.
5886 (GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE)
5887 (SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
5888 (SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P)
5889 (GLYPH_CODE_P): Move to dispextern.h, to avoid define-before-use.
5890 (TYPE_RANGED_INTEGERP): Simplify.
5891 (Qsubrp, Qhash_table_p, Qoverlayp): New extern decls.
5892 (setlocale, fixup_locale, synchronize_system_messages_locale)
5893 (synchronize_system_time_locale) [!HAVE_SETLOCALE]:
5894 Now empty functions, not macros.
5895 (functionp): Return bool, not int.
5896 * window.c (Qwindow_configuration_p): Now extern,
5897 so window.h can use it.
5898 * window.h (Qwindowp): Move decl back to lisp.h.
5899
9583ec36
EZ
59002013-06-15 Eli Zaretskii <eliz@gnu.org>
5901
5902 * xdisp.c (Fline_pixel_height): New function, required for solving
5903 bug #14567.
5904
210272ce
PE
59052013-06-15 Paul Eggert <eggert@cs.ucla.edu>
5906
5907 * fns.c (Fcopy_sequence): Simplify XTYPE calculation.
5908
de0503df
SM
59092013-06-13 Stefan Monnier <monnier@iro.umontreal.ca>
5910
5911 * lread.c (syms_of_lread):
5912 * fns.c (Fprovide): Adjust to new format of after-load-alist.
5913
afbfe143
KD
59142013-06-13 Kelly Dean <kellydeanch@yahoo.com> (tiny change)
5915
5916 * fileio.c (Fdo_auto_save): Trap errors in auto-save-hook. (Bug#14479)
5917
d177e213
XF
59182013-06-12 Xue Fuqiao <xfq.free@gmail.com>
5919
5920 * fileio.c (expand_file_name): Doc fix.
5921
05e3e412
PE
59222013-06-11 Paul Eggert <eggert@cs.ucla.edu>
5923
f7394b12
PE
5924 Tickle glib by waiting for Emacs itself, not for process 0 (Bug#14569).
5925 * process.c (init_process_emacs) [HAVE_GLIB && !WINDOWSNT]:
5926 Wait for self, not for 0. This can't hurt on GNU or similar
5927 system, and may help with Cygwin.
5928
05e3e412
PE
5929 * keyboard.c: Don't use PROP (...) as an lvalue.
5930 (parse_tool_bar_item) [!USE_GTK && !HAVE_NS]:
5931 Use set_prop (A, B), not PROP (A) = B.
5932
17dd3097
EZ
59332013-06-10 Eli Zaretskii <eliz@gnu.org>
5934
5935 * xdisp.c (get_it_property): Use it->window instead of generating
5936 a Lisp object from it->w.
5937
52fab9c9
EZ
59382013-06-09 Eli Zaretskii <eliz@gnu.org>
5939
5940 * xdisp.c (get_it_property): If it->object is a buffer, pass to
5941 get-char-property the window that is being rendered, instead of
5942 the buffer, to support window-specific overlays. (Bug#14575)
ad257d4f
EZ
5943 (compute_display_string_pos): When W is NULL, use the current
5944 buffer as the object to pass to get-char-property.
5945 (Fcurrent_bidi_paragraph_direction): Assign NULL to the window
5946 pointer member of the bidi iterator, since no window is pertinent
5947 to this function.
52fab9c9 5948
5bf97bfc
EZ
59492013-06-08 Eli Zaretskii <eliz@gnu.org>
5950
5951 * bidi.c (bidi_fetch_char): Accept additional argument, the window
5952 being displayed, and pass it to compute_display_string_pos.
5953 (bidi_level_of_next_char, bidi_resolve_explicit_1)
5954 (bidi_paragraph_init): All callers changed.
5955
5956 * xdisp.c (init_from_display_pos, init_iterator)
5957 (handle_single_display_spec, next_overlay_string)
5958 (get_overlay_strings_1, reseat_1, reseat_to_string)
e7b41c4c
JB
5959 (push_prefix_prop, Fcurrent_bidi_paragraph_direction):
5960 Set bidi_it.w member from it->w.
5bf97bfc
EZ
5961 (compute_display_string_pos): Accept additional argument, the
5962 window being displayed, and pass it to Fget_char_property.
5963 (Bug#14575)
5964
5965 * dispextern.h (struct bidi_it): New member w, the window being
5966 displayed.
5967 (compute_display_string_pos): Adjust prototype.
5968
5de0e011
JD
59692013-06-08 Jan Djärv <jan.h.d@swipnet.se>
5970
e7b41c4c 5971 * xgselect.c: Remove unneeded include xterm.h.
b33f93ee
JD
5972
5973 * process.c (wait_reading_process_output): Check for NS before GLIB.
5974 GLIB may be linked in due to rsvg, but ns_select must be called.
5975
5de0e011
JD
5976 * xgselect.c (xg_select): Remove call to window_system_available
5977 and g_main_context_pending at the top, so Gdk events (i.e. file
5978 notify) are processed when Emacs is started with -nw.
5979
a822acff
EZ
59802013-06-07 Eli Zaretskii <eliz@gnu.org>
5981
5982 * Makefile.in (ctagsfiles1, ctagsfiles2): Don't include *.m files.
5983 (ctagsfiles3): New variable, includes only *.m files.
5984 (TAGS): Use an explicit language name in the regular expressions,
5985 to avoid transformation of '/SOMETHING' by MSYS to
5986 'c:\MSYS\SOMETHING'.
5987
6c0a9ed1
RC
59882013-06-07 Richard Copley <rcopley@gmail.com> (tiny change)
5989
5990 * epaths.in: Fix commentary to PATH_SITELOADSEARCH.
5991
9ef6111b
EZ
59922013-06-06 Eli Zaretskii <eliz@gnu.org>
5993
5994 * xdisp.c (note_mouse_highlight): When mouse-highlight is off,
5995 still need to set the mouse pointer shape and activate help-echo.
5996 (Bug#14558)
5997
7d300d64
PE
59982013-06-06 Paul Eggert <eggert@cs.ucla.edu>
5999
6000 A few porting etc. fixes for the new file monitor code.
6001 See the thread containing
6002 <http://lists.gnu.org/archive/html/emacs-devel/2013-06/msg00109.html>.
6003 * gfilenotify.c (dir_monitor_callback, Fgfile_add_watch)
6004 (Fgfile_rm_watch): Don't assume EMACS_INT is the same width as a pointer.
6005 (dir_monitor_callback, Fgfile_rm_watch):
6006 Use assq_no_quit instead of Fassoc, for speed.
6007 (dir_monitor_callback, Fgfile_rm_watch):
6008 eassert that the monitor is a fixnum.
6009 (dir_monitor_callback): No need for CDR_SAFE.
6010 Simplify building of lisp with alternative tails.
6011 (Fgfile_add_watch, Fgfile_rm_watch):
6012 Do not assume glib functions set errno reliably on failure.
6013 (Fgfile_add_watch): Check that the monitor survives the XIL trick,
6014 and signal an error otherwise.
6015 (Fgfile_rm_watch): Prefer CONSP to !NILP.
6016 Use Fdelq instead of Fdelete, for speed.
6017
817ebfcf
EZ
60182013-06-05 Eli Zaretskii <eliz@gnu.org>
6019
6020 * xdisp.c (handle_tool_bar_click): When mouse-highlight is off,
6021 don't insist on being invoked on a highlighted tool-bar button.
6022 Avoids losing tool-bar functionality when mouse-highlight is nil.
6023 (note_tool_bar_highlight, note_mode_line_or_margin_highlight):
6024 Don't highlight when mouse-highlight is nil.
6025 (note_mouse_highlight): When mouse-highlight is nil, don't return
6026 right away; instead, run tool-bar and mode-line highlight
6027 subroutine, clear any existing highlight, and revert the mouse
6028 pointer to its default shape. (Bug#14558)
6029
55577e7c
SM
60302013-06-05 Stefan Monnier <monnier@iro.umontreal.ca>
6031
6032 * lisp.mk (lisp): Add prog-mode.el.
6033
f019a684
PE
60342013-06-05 Paul Eggert <eggert@cs.ucla.edu>
6035
6036 Chain glib's SIGCHLD handler from Emacs's (Bug#14474).
6037 * process.c (dummy_handler): New function.
6038 (lib_child_handler): New static var.
6039 (handle_child_signal): Invoke it.
6040 (catch_child_signal): If a library has set up a signal handler,
6041 save it into lib_child_handler.
6042 (init_process_emacs): If using glib and not on Windows, tickle glib's
6043 child-handling code so that it initializes its private SIGCHLD handler.
6044 * syssignal.h (SA_SIGINFO): Default to 0.
6045 * xterm.c (x_term_init): Remove D-bus hack that I installed on May
6046 31; it should no longer be needed now.
6047
90db8702
MA
60482013-06-05 Michael Albinus <michael.albinus@gmx.de>
6049
6050 * emacs.c (main) [HAVE_GFILENOTIFY]: Call globals_of_gfilenotify.
6051
6052 * gfilenotify.c (globals_of_gfilenotify): New function.
6053 (syms_of_gfilenotify): Move global initialization there.
6054
6055 * lisp.h (globals_of_gfilenotify) [HAVE_GFILENOTIFY]: Add prototype.
6056
bfa3acd6
SM
60572013-06-05 Stefan Monnier <monnier@iro.umontreal.ca>
6058
6059 * keymap.c (Fcurrent_active_maps, Fdescribe_buffer_bindings):
6060 * keyboard.c (menu_bar_items, tool_bar_items):
6061 * doc.c (Fsubstitute_command_keys): Voverriding_terminal_local_map does
6062 not override local keymaps any more.
6063
ba59bd80
EZ
60642013-06-04 Eli Zaretskii <eliz@gnu.org>
6065
6066 * window.c (Fpos_visible_in_window_p): Doc fix. (Bug#14540)
6067
7f203aa1
EZ
60682013-06-03 Eli Zaretskii <eliz@gnu.org>
6069
9337e206
EZ
6070 * w32console.c (initialize_w32_display): Return the dimensions of
6071 the console window via 2 additional arguments, not via the current
6072 frame. This avoids crashes due to overrunning the bounds of
6073 frame's decode_mode_spec_buffer, which is not resized following
6074 the change of the frame dimensions from the initial 10x10.
6075
6076 * w32term.h (w32_initialize_display_info): Adjust prototype.
6077
6078 * term.c (init_tty): Take dimensions of the frame from the values
6079 returned by initialize_w32_display.
6080
7f203aa1
EZ
6081 * Makefile.in (GFILENOTIFY_CFLAGS, GFILENOTIFY_LIBS): New variables.
6082 (ALL_CFLAGS): Add $(GFILENOTIFY_CFLAGS).
6083 (LIBES): Add $(GFILENOTIFY_LIBS).
6084
6085 * w32inevt.c (handle_file_notifications): Add dummy implementation
6086 for !HAVE_W32NOTIFY.
6087
6088 * w32term.c: Wrap code with HAVE_W32NOTIFY.
6089
55a87246
JD
60902013-06-03 Jan Djärv <jan.h.d@swipnet.se>
6091
6092 * xgselect.c: Replace #if defined ... with #ifdef HAVE_GLIB.
6093
6094 * process.c (wait_reading_process_output): Call xg_select if HAVE_GLIB.
6095
6096 * Makefile.in (XGSELOBJ): New, xgselect.o if GLib is used, or empty.
6097
3d5ee10a
PE
60982013-06-03 Paul Eggert <eggert@cs.ucla.edu>
6099
6100 Fix minor problems found by static checking.
6101 * data.c (pure_write_error):
6102 Use xsignal2, not Fsignal, as Fsignal might return.
6103 * eval.c (set_backtrace_debug_on_exit): Now static.
6104 (backtrace_p, backtrace_top, backtrace_next, record_in_backtrace):
6105 No longer inline. EXTERN_INLINE is needed only for functions
6106 defined in .h files. Reindent function header as per GNU style.
6107 (backtrace_p, backtrace_top, backtrace_next):
6108 Mark EXTERNALLY_VISIBLE so they don't get optimized away by the
6109 compiler or linker. Add extern decls to pacify gcc -Wall.
6110 * frame.c, frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource):
6111 Now static.
6112 * frame.c (free_monitors): Define only on platforms that need it.
6113 * nsterm.m (ns_term_init):
6114 * process.c (catch_child_signal):
6115 Don't worry about whether SIGCHLD is defined, as SIGCHLD is
6116 defined on all porting targets these days.
6117 * process.c, process.h (catch_child_signal):
6118 Make it extern only if NS_IMPL_GNUSTEP is defined.
6119
e2d8a6f0
EZ
61202013-06-03 Eli Zaretskii <eliz@gnu.org>
6121
6122 * w32.c (gettimeofday): Make the signature identical to prototype
6123 in nt/inc/sys/time.h.
6124
a8a7c5f6
SM
61252013-06-03 Stefan Monnier <monnier@iro.umontreal.ca>
6126
6127 * eval.c (backtrace_p, backtrace_top, backtrace_next): Export them to
6128 .gdbinit.
6129
6130 * keyboard.c (safe_run_hooks_error): Improve error message.
6131
6132 * data.c (pure_write_error): Add `object' argument.
6133 * puresize.h (CHECK_IMPURE): Use it.
6134
c9628c79
MA
61352013-06-03 Michael Albinus <michael.albinus@gmx.de>
6136
6137 * Makefile.in (NOTIFY_OBJ): New variable.
6138 (base_obj): Replace inotify.o by $(NOTIFY_OBJ).
6139
6140 * emacs.c (main): Use HAVE_W32NOTIFY to wrap respective code.
6141 Call syms_of_gfilenotify.
6142
6143 * gfilenotify.c: New file.
6144
6145 * keyboard.c (Qfile_notify): New variable. Replaces Qfile_inotify
6146 and Qfile_w32notify.
6147 (top): Wrap respective code by HAVE_GFILENOTIFY, HAVE_INOTIFY,
6148 HAVE_W32NOTIFY and USE_FILE_NOTIFY.
6149
6150 * lisp.h: Declare syms_of_gfilenotify.
6151
6152 * termhooks.h (e): Wrap enum by USE_FILE_NOTIFY.
6153
2f592f95
SM
61542013-06-03 Stefan Monnier <monnier@iro.umontreal.ca>
6155
6156 Merge the specpdl and backtrace stacks. Make the structure of the
6157 specpdl entries more obvious via a tagged union of structs.
6158 * lisp.h (BITS_PER_PTRDIFF_T): New constant.
6159 (enum specbind_tag): New enum.
6160 (struct specbinding): Make it a tagged union of structs.
6161 Add a case for backtrace records.
6162 (specpdl_symbol, specpdl_old_value, specpdl_where, specpdl_arg)
6163 (specpdl_func, backtrace_function, backtrace_nargs, backtrace_args)
6164 (backtrace_debug_on_exit): New accessors.
6165 (struct backtrace): Remove.
6166 (struct catchtag): Remove backlist field.
6167 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
6168 Move to eval.c.
6169 (Flocal_variable_p): Speed up the common case where the binding is
6170 already loaded.
6171 * eval.c (backtrace_list): Remove.
6172 (set_specpdl_symbol, set_specpdl_old_value): Remove.
6173 (set_backtrace_args, set_backtrace_nargs)
6174 (set_backtrace_debug_on_exit, backtrace_p, backtrace_top)
6175 (backtrace_next): New functions.
6176 (Fdefvaralias, Fdefvar): Adjust to new specpdl format.
6177 (unwind_to_catch, internal_lisp_condition_case)
6178 (internal_condition_case, internal_condition_case_1)
6179 (internal_condition_case_2, internal_condition_case_n): Don't bother
6180 with backtrace_list any more.
6181 (Fsignal): Adjust to new backtrace format.
6182 (grow_specpdl): Move up.
6183 (record_in_backtrace): New function.
6184 (eval_sub, Ffuncall): Use it.
6185 (apply_lambda): Adjust to new backtrace format.
6186 (let_shadows_buffer_binding_p, let_shadows_global_binding_p): Move from
6187 data.c.
6188 (specbind): Adjust to new specpdl format. Simplify.
6189 (record_unwind_protect, unbind_to): Adjust to new specpdl format.
6190 (Fbacktrace_debug, Fbacktrace, Fbacktrace_frame): Adjust to new
6191 backtrace format.
6192 (mark_backtrace): Remove.
6193 (mark_specpdl, get_backtrace, backtrace_top_function): New functions.
6194 * xdisp.c (redisplay_internal): Use record_in_backtrace.
6195 * alloc.c (Fgarbage_collect): Use record_in_backtrace.
6196 Use mark_specpdl.
6197 * profiler.c (record_backtrace): Use get_backtrace.
6198 (handle_profiler_signal): Use backtrace_top_function.
6199 * .gdbinit (xbacktrace, hookpost-backtrace): Use new backtrace
6200 accessor functions.
6201
c0342369
JD
62022013-06-02 Jan Djärv <jan.h.d@swipnet.se>
6203
6204 * process.h (catch_child_signal): Declare.
6205
6206 * process.c (catch_child_signal): New function.
6207 (init_process_emacs): Call it.
6208
6209 * nsterm.m: Include process.h if NS_IMPL_GNUSTEP.
6210 (ns_menu_bar_is_hidden, menu_will_open_state): Define only if
6211 NS_IMPL_COCOA.
6212 (x_set_cursor_type): Remove declaration.
6213 (ns_update_begin): Only use r and bp if NS_IMPL_COCOA.
6214 (ns_update_end, ns_focus, ns_unfocus): Remove GNUStep specific code.
6215 (x_set_window_size): Remove 3 pixels from toolbar if NS_IMPL_GNUSTEP.
6216 (ns_get_color): Use F suffix on float.
6217 (ns_color_to_lisp, ns_query_color): Use EmacsCGFloat.
6218 (ns_get_rgb_color): Remove.
6219 (x_set_frame_alpha): Move view inside NS_IMPL_COCOA.
6220 (note_mouse_movement): x and y are CGFloat.
6221 (ns_draw_fringe_bitmap): Remove unused rowY.
6222 Change #if to COCOA && >= 10_6.
6223 (ns_draw_window_cursor): Remove unused overspill.
6224 (ns_draw_underwave): width and x are EamcsCGFloat.
6225 (ns_draw_box): thickness is CGFloat.
6226 (ns_dumpglyphs_image): Change #if to COCOA && >= 10_6.
6227 (ns_send_appdefined): When NS_IMPL_GNUSTEP, redirect to main thread
6228 if not in main thread.
6229 (ns_get_pending_menu_title, ns_check_menu_open)
6230 (ns_check_pending_open_menu): Put inside #if COCOA && >= 10_5.
6231 (ns_term_init): Call catch_child_signal if NS_IMPL_GNUSTEP && SIGCHLD.
6232 (sendFromMainThread:): New method.
6233 (changeFont:): size is CGFloat.
6234 (keyDown:): Check for Delete when NS_IMPL_GNUSTEP.
6235 Disable warning about permanent text.
6236 (characterIndexForPoint:): Adjust return type depending on GNUStep
6237 version.
6238 (mouseDown:): delta is CGFloat.
6239 (updateFrameSize): Remove unised variable f.
6240 (initFrameFromEmacs): Move toggleButton inside NS_IMPL_COCOA.
6241 Cast float to EmacsCGFloat.
6242 (windowWillUseStandardFrame:defaultFrame:): Set maximized_height
6243 also to -1 when restoring.
6244 (windowDidExitFullScreen:): Put call to updateCollectionBehaviour
6245 inside NS_IMPL_COCOA.
6246 (toggleFullScreen:): Put call to toggleFullScreen inside
6247 NS_IMPL_COCOA. Cast float to EmacsCGFloat.
6248 (setPosition:portion:whole:): por is CGFloat.
6249 (getMouseMotionPart:window:x:y:): Add F suffix to float.
6250 (mouseDown:): Use CGFloat.
6251 (mouseDragged:): Remove unised variable edge.
6252 (EmacsDocument): Implement for NS_IMPL_GNUSTEP.
6253
6254 * nsterm.h (EmacsCGFloat): Typedef for OSX and GNUStep when the size
6255 of CGFloat differs.
6256 (EmacsApp): New variable nextappdefined. Declare sendFromMainThread
6257 when NS_IMPL_GNUSTEP.
6258 (EmacsDocument): Declare when NS_IMPL_GNUSTEP.
6259 (EmacsView): Remove unlockFocusNeedsFlush, add windowDidMove.
6260 (EmacsToolbar): Add clearAll. Add tag argument to
6261 addDisplayItemWithImage.
6262 (EmacsSavePanel, EmacsOpenPanel): Remove getFilename and getDirectory.
6263
6264 * nsselect.m (ns_get_local_selection): Remove unused variable type.
6265
6266 * nsmenu.m (ns_update_menubar): Make static.
6267 (x_activate_menubar): Surround with ifdef NS_IMPL_COCOA
6268 (fillWithWidgetValue:): Add cast to SEL for setAction.
6269 (addSubmenuWithTitle:forFrame:): Add cast to SEL for action.
6270 (update_frame_tool_bar): Update code for GNUStep.
6271 (clearAll): New method.
6272 (addDisplayItemWithImage:idx:tag:helpText:enabled:): Handle new tag
4f405069 6273 argument. Call insertItemWithItemIdentifier when NS_IMPL_GNUSTEP.
e7b41c4c 6274 Move identifierToItem setObject and activeIdentifiers addObject before
c0342369
JD
6275 call to insertItemWithItemIdentifier.
6276 (validateVisibleItems): Fix indentation.
6277 (toolbarAllowedItemIdentifiers:): Return activeIdentifiers.
6278 (initWithContentRect:styleMask:backing:defer:): Add ClosableWindow and
6279 UtilityWindow to aStyle, remove call to setStyleMask.
6280
6281 * nsimage.m (setXBMColor:, getPixelAtX:Y:): Use EmacsCGFloat.
6282
6283 * nsfont.m (ns_attribute_fvalue, ns_spec_to_descriptor)
6284 (ns_charset_covers, ns_get_covering_families, nsfont_open):
6285 Use F suffix on floats.
6286 (ns_char_width): Returns CGFloat.
6287 (ns_ascii_average_width): w is CGFloat instead of float.
e7b41c4c 6288 (nsfont_draw): cbuf and c are unsigned. Cast to char* in call to
c0342369
JD
6289 DPSxshow.
6290 (ns_glyph_metrics): CGFloat instead of float.
6291
a0eb10b3
JB
6292 * nsfns.m (x_set_foreground_color, x_set_background_color):
6293 Use EmacsCGFloat.
6294 (ns_implicitly_set_icon_type, Fx_create_frame): Make static,
6295 remove unused variables.
6296 (Fns_read_file_name): Keep track if panel is for save.
6297 Use ns_filename_from_panel/ns_directory_from_panel.
c0342369 6298 (Fns_list_services): delegate only used for COCOA.
a0eb10b3
JB
6299 (Fns_convert_utf8_nfd_to_nfc): Remove warning for GNUStep.
6300 Just return the input if GNUStep.
c0342369
JD
6301 (x_screen_planes): Remove.
6302 (Fxw_color_values): Use EmacsCGFloat
6303 (Fns_display_monitor_attributes_list): Only get screen number for
6304 Cocoa.
ef099a94 6305 (getDirectory, getFilename): Remove from EmacsOpenPanel and
c0342369
JD
6306 EmacsSavePanel.
6307 (EmacsOpenPanel:ok:): Use ns_filename_from_panel and
6308 ns_directory_from_panel.
6309
da9aff11
PE
63102013-06-01 Paul Eggert <eggert@cs.ucla.edu>
6311
6312 * process.c (handle_child_signal): Also use WCONTINUED.
6313 This is so that list-processes doesn't mistakenly list the process
6314 as stopped, when the process has actually been continued and is
6315 now running.
6316
0e64479a
PE
63172013-05-31 Paul Eggert <eggert@cs.ucla.edu>
6318
fc186a96
PE
6319 Don't let D-bus autolaunch mess up SIGCHLD handling (Bug#14474).
6320 * xterm.c (x_term_init): Inhibit D-Bus autolaunch if D-Bus is
6321 not already configured.
6322
0e64479a
PE
6323 * fileio.c (Finsert_file_contents): Remove unused local (Bug#8447).
6324
38b787fa
EZ
63252013-05-29 Eli Zaretskii <eliz@gnu.org>
6326
6327 * Makefile.in (mostlyclean): Remove *.res files.
6328
22513e52
SM
63292013-05-29 Stefan Monnier <monnier@iro.umontreal.ca>
6330
6331 * fileio.c (Finsert_file_contents): Preserve undo info when reverting
6332 a buffer (bug#8447).
6333
6ef3db10
EZ
63342013-05-27 Eli Zaretskii <eliz@gnu.org>
6335
6336 * xdisp.c (pos_visible_p): When CHARPOS is displayed frrom a
6337 display vector, and we backtrack, handle the case that the
6338 previous character position is also displayed from a display
6339 vector or covered by a display string or image. (Bug#14476)
6340
6799bb26
JD
63412013-05-25 Jan Djärv <jan.h.d@swipnet.se>
6342
6343 * xfns.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove.
6344 (struct MonitorInfo, free_monitors): Remove.
6345 (x_make_monitor_attribute_list): Call make_monitor_attribute_list.
6346 (Fx_display_monitor_attributes_list): Call make_monitor_attribute_list.
6347 (syms_of_xfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size,
6348 Qframes, Qsource.
6349
6350 * nsfns.m (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove.
6351 (struct MonitorInfo, free_monitors): Remove.
6352 (ns_screen_name): Make static.
6353 (ns_make_monitor_attribute_list): Call make_monitor_attribute_list.
6354 (syms_of_nsfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size,
6355 Qframes, Qsource.
6356
6357 * frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare.
6358 (struct MonitorInfo): New struct.
6359 (free_monitors, make_monitor_attribute_list): Declare.
6360
22513e52
SM
6361 * frame.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource):
6362 New Lisp_Object:s.
6799bb26
JD
6363 (free_monitors, make_monitor_attribute_list): New functions.
6364 (syms_of_frame): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes,
6365 Qsource.
6366
38cd43eb
XF
63672013-05-25 Xue Fuqiao <xfq.free@gmail.com>
6368
6369 * callproc.c (call_process): Refine the doc string. (Bug#14045)
6370
2af0948d
SM
63712013-05-23 Stefan Monnier <monnier@iro.umontreal.ca>
6372
a7eb9b0f
SM
6373 * keyboard.c: Apply keyboard decoding only to events that come directly
6374 from the tty, not from unread-command-events (bug#14368).
6375 (read_event_from_main_queue): New function, extracted from read_char).
6376 (read_decoded_char): Remove.
6377 (read_decoded_event_from_main_queue): New function to replace it.
6378 (read_char): Use it.
6379 (read_key_sequence): Use read_char rather than read_decoded_char.
6380
2af0948d
SM
6381 * keyboard.c (read_decoded_char): Don't decode under w32 (bug#14403).
6382
9698f11c 63832013-05-22 Barry O'Reilly <gundaetiapo@gmail.com>
1413e9a5
BR
6384
6385 * casetab.c (init_casetab_once): Fix last change (bug#14424).
6386
e6d2f155
KH
63872013-05-22 Kenichi Handa <handa@gnu.org>
6388
6389 The following changes are to fix the setting of
6390 buffer-file-coding-system on, for instance, C-x RET c unix RET
6391 _FILE_OF_DOS_EOL_TYPE_ RET.
6392
6393 * coding.h (struct coding_system): New member detected_utf8_chars.
6394
6395 * coding.c (detect_coding_utf_8): Count characters and check EOL
6396 format. Include CATEGORY_MASK_UTF_8_AUTO in detect_info->found if
6397 BOM is there.
6398 (setup_coding_system): Do not initialize coding->head_ascii.
6399 (check_ascii): Do not set coding->eol_seen but update it. Do not
6400 call adjust_coding_eol_type here.
1413e9a5
BR
6401 (detect_coding): Fix detection of BOM for utf-8 and utf-16.
6402 If the eol-type of CODING is already specified, adjust the eol type
e6d2f155
KH
6403 of the found coding-system.
6404 (decode_coding_gap): Cancel previous change. Utilize the
6405 character numbers counted by detect_coding_utf_8. Fix detection
6406 of BOM for utf-8.
6407
9698f11c 64082013-05-21 Barry O'Reilly <gundaetiapo@gmail.com>
fc30d803
SM
6409
6410 * search.c (looking_at_1): Only set last_thing_searched if the match
6411 changed the match-data (bug#14281).
6412
ecc3c6ed
DA
64132013-05-21 Dmitry Antipov <dmantipov@yandex.ru>
6414
6415 * xdisp.c (reseat_at_previous_visible_line_start):
a0eb10b3 6416 Already declared in dispextern.h, so remove it here.
ecc3c6ed
DA
6417 (move_it_vertically_backward): Likewise.
6418
5ba8bf35
YM
64192013-05-20 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
6420
6421 * xfns.c (check_x_display_info): Don't use XINT for terminal object.
d6635ba2 6422 (Fx_display_pixel_width, Fx_display_pixel_height)
fc30d803
SM
6423 (Fx_display_mm_width, Fx_display_mm_height):
6424 Mention `display-monitor-attributes-list' in docstrings.
5ba8bf35 6425
91e8418b 6426 * nsfns.m (ns_get_screen): Remove function. All uses removed.
a0eb10b3 6427 (check_ns_display_info): Sync with check_x_display_info in xfns.c.
91e8418b
YM
6428 (Fx_server_max_request_size, Fx_server_vendor, Fx_server_version)
6429 (Fx_display_screens, Fx_display_mm_width, Fx_display_mm_height)
6430 (Fx_display_backing_store, Fx_display_visual_class)
6431 (Fx_display_save_under, Fx_close_connection, Fxw_display_color_p)
6432 (Fx_display_grayscale_p, Fx_display_pixel_width)
6433 (Fx_display_pixel_height, Fx_display_planes)
6434 (Fx_display_color_cells): Sync args and docstrings with xfns.c.
6435 (Fx_display_screens): Don't confuse X11 screens with NS screens.
6436 (Fx_display_mm_width, Fx_display_mm_height)
6437 (Fx_display_pixel_width, Fx_display_pixel_width): Return width or
6438 height for all physical monitors as in X11.
6439
fc30d803
SM
6440 * nsterm.m (x_display_pixel_width, x_display_pixel_height):
6441 Return pixel width or height for all physical monitors as in X11.
91e8418b 6442
31ff141c
PE
64432013-05-18 Paul Eggert <eggert@cs.ucla.edu>
6444
6445 Port --enable-gcc-warnings to clang.
6446 * bytecode.c (exec_byte_code):
6447 * regex.c:
6448 Redo diagnostic pragmas to pacify clang, too.
6449 * dbusbind.c (xd_retrieve_arg): Do not use uninitialized variable.
6450 * editfns.c (Fencode_time):
6451 * fileio.c (file_accessible_directory_p):
6452 * font.c (font_unparse_xlfd):
6453 Use '&"string"[index]' instead of '"string" + (index)'.
6454 * undo.c (user_error): Remove; unused.
6455
df065a0b
EZ
64562013-05-16 Eli Zaretskii <eliz@gnu.org>
6457
04d360e7
EZ
6458 * insdel.c (insert_1_both): Document the arguments, instead of
6459 referring to insert_1, which no longer exists.
6460
5bb98290
EZ
6461 * xdisp.c (message_dolog): If the *Messages* buffer is shown in
6462 some window, increment windows_or_buffers_changed, so that
6463 *Messages* display in that window is updated. (Bug#14408)
6464
df065a0b
EZ
6465 * w32.c: Include epaths.h.
6466 (init_environment): Use cmdproxy.exe without leading directories.
6467 Support emacs.exe in src; point SHELL to cmdproxy in ../nt in that
6468 case.
6469 (gettimeofday): Adjust signature and return value to Posix
6470 expectations.
6471
6472 * unexw32.c (open_output_file): Delete the existing emacs.exe
6473 before creating it, to break the hard link to the versioned
6474 executable.
6475
6476 * Makefile.in (EMACS_MANIFEST, CM_OBJ, TEMACS_POST_LINK)
6477 (ADDSECTION, EMACS_HEAPSIZE, MINGW_TEMACS_POST_LINK)
6478 (FIRSTFILE_OBJ): New variables.
6479 (W32_RES): Rename to EMACSRES. All users changed.
6480 (base_obj): Use $(CM_OBJ).
6481 (ALLOBJS): Use $(FIRSTFILE_OBJ).
6482 (emacs$(EXEEXT)): Depend on $(ADDSECTION).
6483 (temacs$(EXEEXT)): Use $(TEMACS_POST_LINK), and move
6484 $(W32_RES_LINK) before $(LIBES).
6485 (emacs.res): Depend on $(EMACS_MANIFEST). Put emacs.rc in nt.
6486
1aa8d505
SM
64872013-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
6488
6e911150
SM
6489 * makefile.w32-in (DOC): Use just "DOC".
6490
6491 * Makefile.in (bootstrap-clean): DOC-* doesn't exist any more.
6492
1aa8d505
SM
6493 * process.c: Export default filters and sentinels to Elisp.
6494 (Qinternal_default_process_sentinel, Qinternal_default_process_filter):
6495 New constants.
6496 (pset_filter, pset_sentinel, make_process, Fset_process_filter)
6497 (Fset_process_sentinel, Fformat_network_address):
6498 Default to them instead of nil.
6499 (server_accept_connection): Sentinels can't be nil any more.
6500 (read_and_dispose_of_process_output): New function, extracted from
6501 read_process_output.
6502 (read_process_output): Use it; filters can't be nil.
6503 (Finternal_default_process_filter): New function, extracted from
6504 read_process_output.
6505 (exec_sentinel_unwind): Remove function.
6506 (exec_sentinel): Don't zilch sentinel while running.
6507 (status_notify): Sentinels can't be nil.
6508 (Finternal_default_process_sentinel): New function extracted from
6509 status_notify.
6510 (setup_process_coding_systems): Default filter is not nil any more.
6511 (syms_of_process): Export new Elisp functions and initialize
6512 new constants.
6513 * lisp.h (make_lisp_proc): New function.
6514
5ac2eb34
SM
65152013-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
6516
6517 * regex.c (regex_compile) [\=, \>, \<]: Don't forget to set laststart.
6518
eda9c7d7
EZ
65192013-05-14 Eli Zaretskii <eliz@gnu.org>
6520
6521 * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT
5ac2eb34
SM
6522 unless we know that the window w is a leaf window.
6523 Another attempt at solving bug#14062.
eda9c7d7 6524
8fdeaad5
JD
65252013-05-14 Jan Djärv <jan.h.d@swipnet.se>
6526
6527 * nsfont.m (ns_spec_to_descriptor): Retain and autorelease
6528 fdesc (Bug#14375).
6529
44aa9ee6
PE
65302013-05-12 Paul Eggert <eggert@cs.ucla.edu>
6531
6532 * image.c (gif_load): Check that subimages fit (Bug#14345).
6533
759fd763
SM
65342013-05-09 Stefan Monnier <monnier@iro.umontreal.ca>
6535
6536 * lread.c (skip_dyn_eof): New function.
6537 (read1): Use it to skip the end of a file in response to #@00.
6538
6539 * doc.c (get_doc_string): Slightly relax the sanity checking.
6540
4465bfb4
JD
65412013-05-09 Jan Djärv <jan.h.d@swipnet.se>
6542
6543 * nsfns.m: Include IOGraphicsLib.h if Cocoa.
6544 (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare.
6545 (MonitorInfo): New struct.
6546 (free_monitors, ns_screen_name, ns_make_monitor_attribute_list)
6547 (Fns_display_monitor_attributes_list): New functions.
6548 (display-usable-bounds): Remove.
6549 (syms_of_nsfns): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes and
6550 Qsource.
6551
7583e2a0
PE
65522013-05-09 Paul Eggert <eggert@cs.ucla.edu>
6553
6554 * xterm.h (GTK_PREREQ): Remove, replacing with GTK_CHECK_VERSION.
6555 (GTK_CHECK_VERSION): New macro, if not already defined.
6556 All uses of GTK_PREREQ, GTK_MAJOR_VERSION, etc.
6557 replaced by GTK_CHECK_VERSION.
6558
ad75d77e
PE
65592013-05-08 Paul Eggert <eggert@cs.ucla.edu>
6560
6561 * xterm.h (GTK_PREREQ): New macro.
6562 All simple uses of GTK_MAJOR_VERSION and GTK_MINOR_VERSION changed
6563 to use this macro instead, for consistency and clarity.
6564
07525f77
EZ
65652013-05-08 Eli Zaretskii <eliz@gnu.org>
6566
6567 * xdisp.c (row_for_charpos_p): New function, with code of
6568 cursor_row_p, but accepts an additional argument CHARPOS instead
6569 of using a hardcoded PT.
6570 (cursor_row_p): Call row_for_charpos_p with 2nd argument PT.
6571 (row_containing_pos): Call row_for_charpos_p instead of partially
6572 doing the same. Fixes cursor positioning under longlines-mode
6573 when longlines-show-effect includes more than one newline, when
6574 moving the cursor vertically up.
6575
d901fc8d
JB
65762013-05-08 Juanma Barranquero <lekktu@gmail.com>
6577
6578 * makefile.w32-in (ACL_H): New macro.
6579 ($(BLD)/fileio.$(O)): Update dependencies.
6580
f269bc61
PE
65812013-05-07 Paul Eggert <eggert@cs.ucla.edu>
6582
e7b41c4c 6583 Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295)
ffdc270a
PE
6584 * Makefile.in (LIB_ACL): New macro.
6585 (LIBACL_LIBS): Remove.
6586 (LIBES): Use LIB_ACL, not LIBACL_LIBS.
6587 * fileio.c: Include <acl.h>.
6588 Use HAVE_ACL_SET_FILE rather than HAVE_POSIX_ACL.
6589 (ACL_NOT_WELL_SUPPORTED): Remove. All uses replaced by
6590 !acl_errno_valid.
6591 (Fcopy_file) [!WINDOWSNT]: Use qcopy_acl instead of rolling
6592 it ourselves.
6593
f269bc61
PE
6594 * unexelf.c: Don't assume ElfW (Half) fits in int.
6595 (entry_address, find_section, unexec): Use ptrdiff_t, not int,
6596 when dealing with ElfW (Half) values, since they can exceed 2**31
6597 on 64-bit OpenBSD hosts. Problem reported privately by Han Boetes.
6598 (entry_address): Omit unused NUM arg. All uses changed.
6599
a261c53e
JL
66002013-05-07 Juri Linkov <juri@jurta.org>
6601
6602 * callint.c (Fcall_interactively): Set `visargs[i]' for code 'n'
6603 to the string converted from number with `Fnumber_to_string'.
6604 (Bug#14254)
6605
2b66427d
PE
66062013-05-07 Paul Eggert <eggert@cs.ucla.edu>
6607
6608 * xfns.c (x_get_net_workarea): Define only if !GTK || GTK<3.4.
6609 This fixes a problem introduced by my previous change.
6610
15acfe41
GM
66112013-05-07 Glenn Morris <rgm@gnu.org>
6612
6613 * lread.c (readchar): Don't read from a dead buffer. (Bug#14280)
6614
5ea03bf5
JD
66152013-05-07 Jan Djärv <jan.h.d@swipnet.se>
6616
6617 * xfns.c: Move misplaced ifndef USE_GTK from previous checkin.
6618
e0c9d565
PE
66192013-05-07 Paul Eggert <eggert@cs.ucla.edu>
6620
6621 Static checking by GCC 4.8.0.
6622 * xfns.c (x_get_net_workarea, struct MonitorInfo, free_monitors)
6623 (x_get_monitor_for_frame, x_make_monitor_attribute_list)
6624 (x_get_monitor_attributes_fallback)
6625 (x_get_monitor_attributes_xinerama)
6626 (x_get_monitor_attributes_xrandr, x_get_monitor_attributes):
6627 Define only if USE_GTK.
6628 (free_monitors): Define only if HAVE_XINERAMA || HAVE_XRANDR.
6629 (x_get_monitor_attributes_fallback): Omit unused locals.
6630 (x_get_monitor_attributes_xinerama, Fx_display_monitor_attributes_list):
6631 Use double, not float, to avoid mixed-mode floating point arithmetic.
6632
4e3f9230
YM
66332013-05-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
6634 Jan Djärv <jan.h.d@swipnet.se>
6635
6636 * Makefile.in (XRANDR_LIBS, XRANDR_CFLAGS, XINERAMA_LIBS)
6637 (XINERAMA_CFLAGS): New macros.
6638 (ALL_CFLAGS, LIBES): Use them.
6639
6640 * xfns.c: Include <X11/extensions/Xrandr.h> if HAVE_XRANDR, and
6641 include <X11/extensions/Xinerama.h> if HAVE_XINERAMA.
6642 (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): New variables.
6643 (syms_of_xfns): DEFSYM them.
6644 (struct MonitorInfo): New struct.
6645 (x_get_net_workarea, free_monitors, x_get_monitor_for_frame)
6646 (x_make_monitor_attribute_list, x_get_monitor_attributes_fallback)
6647 (x_get_monitor_attributes_xrandr, x_get_monitor_attributes)
6648 (x_get_monitor_attributes_xinerama): New functions.
6649 (Fx_display_monitor_attributes_list): New primitive.
6650 (syms_of_xfns): Defsubr it.
6651
6652 * xterm.h (x_display_info): Add Xatom_net_workarea and
6653 Xatom_net_current_desktop.
6654
6655 * xterm.c (x_term_init): Initialize dpyinfo->Xatom_net_workarea
6656 and dpyinfo->Xatom_net_current_desktop.
6657
05839b6a
EZ
66582013-05-06 Eli Zaretskii <eliz@gnu.org>
6659
6660 * xdisp.c (pos_visible_p): Use the special code for finding the
6661 beginning of a display property or overlay for any "replacing"
6662 display property, not just for display strings. This solves
6663 incorrect reporting of position by posn-at-point. (Bug#14241)
6664
dc4a2ee0
PE
66652013-05-06 Paul Eggert <eggert@cs.ucla.edu>
6666
5ee94506
PE
6667 * unexelf.c: Fix some 32-bit integer problems, notably when debugging.
6668 Include <limits.h>, <stdbool.h>, <intprops.h>, <verify.h>.
6669 Verify that ElfW (Half) fits in int.
6670 (fatal): Use same signature as lisp.h.
6671 (UNEXELF_DEBUG): New macro, replacing DEBUG, so that people can
6672 configure and build with -DUNEXELF_DEBUG without worrying about
6673 other modules that use DEBUG.
6674 (DEBUG_LOG) [UNEXELF_DEBUG]: New macro. All debug code that prints
6675 possibly-wide integers now uses it instead of plain fprintf.
6676 (entry_address): New function, which avoids problems with 32-bit
6677 overflow on 64-bit hosts.
6678 (OLD_SECTION_H, NEW_SECTION_H, NEW_PROGRAM_H): Use it.
6679 (round_up): Don't assume the remainder fits in int.
6680 (find_section): Use bool for boolean. Simplify debug code.
6681 (unexec): Don't assume file sizes fit in int or size_t.
6682 Omit unnecessary trailing newline in 'fatal' format.
6683 Use strerror rather than outputting decimal error number.
6684 Remove unused code when emacs is not defined;
6685 this file relies on Emacs now.
6686 Don't assume e_phnum and e_shnum are positive.
6687
dc4a2ee0
PE
6688 * regex.c: Fix problems when DEBUG is defined.
6689 (extract_number, extract_number_and_incr): Define regardless of
6690 whether DEBUG is defined; that's simpler and makes the code less
6691 likely to go stale in the normal case when DEBUG is not defined.
6692 Return int rather than taking an int * arg. All callers changed.
6693 (DEBUG_PRINT1, DEBUG_PRINT2, DEBUG_PRINT3, DEBUG_PRINT4):
6694 Remove, replacing with ...
6695 (DEBUG_PRINT): New macro. All callers changed.
6696 (DEBUG_COMPILES_ARGUMENTS): New macro.
6697 (print_fastmap, print_partial_compiled_pattern) [DEBUG]:
6698 (print_compiled_pattern, print_double_string) [DEBUG]:
6699 Use prototype rather than old-style definition.
6700 (print_partial_compiled_pattern, print_compiled_pattern) [DEBUG]:
6701 (ENSURE_FAIL_STACK, PUSH_FAILURE_REG) [DEBUG]:
6702 (POP_FAILURE_REG_OR_COUNT, PUSH_FAILURE_POINT) [DEBUG]:
6703 (POP_FAILURE_POINT, re_match_2_internal) [DEBUG]:
6704 Don't assume ptrdiff_t, size_t, and long are the same width as int.
6705 (POINTER_TO_OFFSET): Return ptrdiff_t, not regoff_t.
6706 This matters only when DEBUG is defined.
6707
14c7ed05
EZ
67082013-05-05 Eli Zaretskii <eliz@gnu.org>
6709
6710 * xdisp.c (set_iterator_to_next): Set the
6711 ignore_overlay_strings_at_pos_p flag only if we are _really_
6712 iterating over an overlay string, as indicated by the
6713 current.overlay_string_index member. (Bug#14306)
6714
e6076b1b
JD
67152013-05-05 Jan Djärv <jan.h.d@swipnet.se>
6716
6717 * nsmenu.m (ns_update_menubar): Move initialization of submenuTitle
6718 to where it is used, to avoid autorelease issues (Bug#14050).
6719
cbee2131
PE
67202013-05-05 Paul Eggert <eggert@cs.ucla.edu>
6721
6722 `write-region-inhibit-fsync' defaults to noninteractive (Bug#14273).
6723 * fileio.c (syms_of_fileio): Implement this.
6724 * filelock.c (create_lock_file): If symbolic links don't work, so
6725 we use a regular file as a lock file, do not fsync the lock file;
6726 it's not needed.
6727
30c7e542
SM
67282013-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
6729
6730 * minibuf.c (Fread_minibuffer, Feval_minibuffer): Move to Elisp.
6731 (syms_of_minibuf): Adjust accodingly.
6732 * lread.c (Fread):
6733 * callint.c (Fcall_interactively): Adjust calls accordingly.
6734
5bebd186
EZ
67352013-05-04 Eli Zaretskii <eliz@gnu.org>
6736
6737 * dispextern.h (WINDOW_WANTS_HEADER_LINE_P): Verify that
30c7e542
SM
6738 w->contents is a buffer before computing everything else.
6739 Use parentheses to disambiguate last part of the condition.
5bebd186
EZ
6740
6741 * w32fns.c (w32_wnd_proc): Remove temporary code used to trap
6742 assertion violations. (Bug#14062)
6743
0fb0a4f3
DR
67442013-05-01 David Reitter <david.reitter@gmail.com>
6745
6746 * nsfns.m (ns_tooltip): Initialize.
6747
9e63b4a5
EZ
67482013-04-28 Eli Zaretskii <eliz@gnu.org>
6749
6750 * coding.c (decode_coding_gap): Don't remove the character before
6751 a newline unless it's a CR character. (Bug#14287)
6752
ad60824e
DN
67532013-04-28 Dan Nicolaescu <dann@gnu.org>
6754
6755 * dispextern.h (struct face): Move enum face_underline_type
6756 earlier so that bitfields can be in the same word.
6757
edbdcec0
JD
67582013-04-28 Jan Djärv <jan.h.d@swipnet.se>
6759
6760 * nsfns.m (handlePanelKeys): New function.
6761 (EmacsOpenPanel:performKeyEquivalent:)
6762 (EmacsSavePanel:performKeyEquivalent:): Call handlePanelKeys to handle
6763 arrows/function/control and copy/paste keys (Bug#14296).
6764
0208ede7
JL
67652013-04-27 Juri Linkov <juri@jurta.org>
6766
6767 * callint.c (Fcall_interactively): Call `Qread_number' for
6768 interactive code letter `n' instead of using duplicate code.
6769 (Bug#14254)
6770
b8dd59f7
PE
67712013-04-27 Paul Eggert <eggert@cs.ucla.edu>
6772
6773 * systime.h (make_timeval): Declare as 'const'.
6774
8bd722db
KH
67752013-04-27 Kenichi Handa <handa@gnu.org>
6776
6777 * font.c (font_open_entity): Always open a font of manageable
6778 size.
6779
13d0e56f 67802013-04-26 Paul Eggert <eggert@cs.ucla.edu>
cbee2131 6781
f780d632
PE
6782 Port better to AIX (Bug#14258).
6783 * lisp.h (ENUM_BF) [__IBMC__]: Make it 'unsigned int' here, too,
6784 to pacify AIX xlc.
6785
ec509856
KH
67862013-04-24 Kenichi Handa <handa@gnu.org>
6787
6788 * coding.c (decode_coding_iso_2022): When an invalid escape
6789 sequence is encountered, reset the invocation and designation
6790 status to the safest one.
6791
84fc48e5
PE
67922013-04-22 Paul Eggert <eggert@cs.ucla.edu>
6793
6794 * Makefile.in (bootstrap-clean): Remove stamp-h1 too.
6795 Without this fix, "make distclean" leaves stamp-h1 behind.
6796
806bda47
EC
67972013-04-20 Erik Charlebois <erikcharlebois@gmail.com>
6798
6799 * w32fns.c (w32_fullscreen_rect): New function to compute the
6800 window rectangle for the given fullscreen mode.
6801 (w32_wnd_proc): When in a fullscreen mode, WM_WINDOWPOSCHANGING no
6802 longer tunes the window size. This keeps the window's edges flush
6803 with the screen and allows the taskbar to hide itself in fullboth.
6804
6805 * w32term.c (w32fullscreen_hook): 'fullboth' now shows without
6806 window decorations and uses the entire screen.
6807
6808 * w32term.h (w32_fullscreen_rect) Add prototype.
6809 (struct w32_output): Replace normal_width, normal_height,
6810 normal_top, and normal_left members with a single normal_placement
6811 struct.
6812 (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP):
6813 Remove macros.
6814 (FRAME_NORMAL_PLACEMENT): New macro.
6815
9cc2810b
JB
68162013-04-16 Juanma Barranquero <lekktu@gmail.com>
6817
6818 * minibuf.c (Ftest_completion): Silence compiler warning.
6819
fd16b54c
EZ
68202013-04-15 Eli Zaretskii <eliz@gnu.org>
6821
6822 * w32fns.c (w32_wnd_proc): Add more assertions to investigate
5fbcd237 6823 bug#14062.
fd16b54c
EZ
6824
6825 * frame.h (WINDOW_FRAME): Protect macro and its argument with
6826 parentheses.
6827
6828 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
6829 (CURRENT_HEADER_LINE_HEIGHT, WINDOW_WANTS_MODELINE_P)
6830 (WINDOW_WANTS_HEADER_LINE_P): Protect macro arguments with
6831 parentheses where appropriate.
6832
9e3379a0
PE
68332013-04-14 Paul Eggert <eggert@cs.ucla.edu>
6834
6835 * keyboard.c (timer_start_idle): Remove no-longer-used local.
6836
ddd6b685
EZ
68372013-04-14 Eli Zaretskii <eliz@gnu.org>
6838
6839 * buffer.c (syms_of_buffer) <left-margin-width, right-margin-width>
6840 <left-fringe-width, right-fringe-width, fringes-outside-margins>:
6841 Mention in the doc string that setting these variables takes
6842 effect only after a call to set-window-buffer. (Bug#14200)
6843
29b79ba1
EZ
68442013-04-13 Eli Zaretskii <eliz@gnu.org>
6845
6846 * indent.c (Fvertical_motion): Don't consider display strings on
6847 overlay strings as display strings on the buffer position we
6848 started from. This prevents vertical cursor motion from jumping
6849 more than one line when there's an overlay string with a display
6850 property at end of line.
6851 Reported by Karl Chen <Karl.Chen@quarl.org> in
6852 http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00362.html.
6853
562c6ee9
SM
68542013-04-12 Stefan Monnier <monnier@iro.umontreal.ca>
6855
6856 * window.c (select_window): `record_buffer' even if window is
6857 already selected (bug#14191).
6858
fcc1fe85
EZ
68592013-04-11 Eli Zaretskii <eliz@gnu.org>
6860
6861 * window.c (Fwindow_end): Test more flags, including the buffer's
6862 last_overlay_modified flag, to determine whether the window's
6863 display is really up-to-date. Prevents the function from
6864 returning a stale value. (Bug#14170)
6865 (Fwindow_line_height): Fix the test for up-to-date-ness of the
6866 current matrix.
6867
f009190a
EZ
68682013-04-10 Eli Zaretskii <eliz@gnu.org>
6869
6870 * frame.c (do_switch_frame): Mark the TTY frame we switch to as
562c6ee9
SM
6871 garbaged only if it is not already the top frame on its TTY.
6872 This prevents flickering due to constant redrawing of TTY frames when
f009190a
EZ
6873 there are GUI frames open in the same session. (Bug#13864)
6874
78ce603d
SM
68752013-04-10 Stefan Monnier <monnier@iro.umontreal.ca>
6876
6877 * keyboard.c (timer_start_idle): Call internal-timer-start-idle instead
6878 of marking the idle timers directly.
6879
a8036e40
SM
68802013-04-09 Stefan Monnier <monnier@iro.umontreal.ca>
6881
6882 * minibuf.c (Ftest_completion): Ignore non-string/symbol keys in hash
6883 tables (bug#14054).
6884
7ffe7ef6
SM
68852013-04-08 Stefan Monnier <monnier@iro.umontreal.ca>
6886
6887 * window.c (select_window): Don't record_buffer while the invariant is
6888 temporarily broken (bug#14161).
6889
6890 * fns.c (Fdelq): Don't assume !NILP => CONSP.
6891
7d9f6883
EZ
68922013-04-07 Eli Zaretskii <eliz@gnu.org>
6893
6894 * fileio.c (ACL_NOT_WELL_SUPPORTED): Define macro for WINDOWSNT.
6895
5406cfd9
RF
68962013-04-07 Romain Francoise <romain@orebokech.com>
6897
6898 Ignore additional platform-specific ACL errors (Bug#13702).
6899 * fileio.c (ACL_NOT_WELL_SUPPORTED): New macro copied from gnulib.
6900 (Fcopy_file, Fset_file_acl) [HAVE_POSIX_ACL]: Use it.
6901
95c0e83b
JD
69022013-03-31 Jan Djärv <jan.h.d@swipnet.se>
6903
6904 * nsterm.m (ns_mouse_position): Use NS_FRAME_P instead of checking
6905 f->output_data.ns.
6906
876da980
PE
69072013-04-07 Paul Eggert <eggert@cs.ucla.edu>
6908
6909 Fix --enable-profiling bug introduced by 2013-02-25 change (Bug#13783).
6910 This bug was introduced by my 2013-02-25 change that simplified
6911 data_start configuration. Without this change, on GNU/Linux
6912 an Emacs configured with --enable-profiling fails immediately
6913 due to a profiler signal.
6914 * Makefile.in: Compile with $(PROFILING_CFLAGS), but do not link
6915 with these flags. On platforms where special flags are needed
6916 when linking temacs, the flags are now in LD_SWITCH_SYSTEM_TEMACS.
6917 (ALL_CFLAGS): Remove $(PROFILING_CFLAGS).
6918 (.c.o, .m.o): Compile with $(PROFILING_CFLAGS).
6919
7452b7bd
DA
69202013-04-07 Dmitry Antipov <dmantipov@yandex.ru>
6921
6922 Get rid of some platform-specific functions examining window
6923 system and its capabilities. This is a partial rework of the
6924 2013-04-05 change.
6925 * lisp.h (have_menus_p): Remove prototype. This function is
6926 replaced with platform-independent window_system_available.
6927 (check_window_system): Move to...
6928 * frame.h (decode_window_system_frame, window_system_available):
6929 ...here, add new prototypes.
6930 * frame.c (window_system_available, decode_window_system_frame):
6931 New functions.
6932 (check_window_system): Platform-independent now.
6933 * xterm.h (x_in_use): Remove declaration.
6934 (check_x_frame):
6935 * w32term.h (check_x_frame):
6936 * nsterm.h (check_x_frame): Remove prototypes. This function
6937 is replaced with platform-independent decode_window_system_frame.
6938 * msdos.c (have_menus_p): Remove.
6939 * nsfns.m (check_window_system, have_menus_p, check_ns_frame):
6940 Remove platform-specific functions. Use check_window_system,
6941 decode_window_system_frame and check_ns_display_info where
6942 appropriate. Minor style and comment tweaks.
6943 * w32fns.c (w32_in_use, check_window_system, have_menus_p)
6944 (check_x_frame): Likewise.
6945 * xfns.c (x_in_use, check_window_system, have_menus_p, check_x_frame):
6946 Likewise.
6947 * fileio.c, fns.c, font.c, fontset.c, image.c, menu.c, nsmenu.m:
6948 * nsselect.m, nsterm.m, w32font.c, w32menu.c, xfaces.c, xgselect.c:
6949 * xmenu.c, xselect.c: All related users changed.
6950
251e9147
KH
69512013-04-03 Kenichi Handa <handa@gnu.org>
6952
6953 The following changes is to optimize the code for reading UTF-8
6954 files.
6955
562c6ee9 6956 * coding.c (check_ascii): Rename from detect_ascii. Return value
251e9147
KH
6957 changed. Check EOL format. Do not call adjust_coding_eol_type
6958 here.
6959 (check_utf_8): New function.
6960 (adjust_coding_eol_type): Do nothing if already adjusted.
6961 (detect_coding): Compare the return value of check_ascii with
6962 coding->src_bytes. Call adjust_coding_eol_type if necessary.
6963 (decode_coding_gap): Optimize for valid UTF-8.
6964
8bc369d4
KH
69652013-03-21 Kenichi Handa <handa@gnu.org>
6966
6967 * coding.c (syms_of_coding): Cancel previous change.
6968
6969 * insdel.c (insert_from_gap): Fix previous change.
6970
73931ad1
DA
69712013-04-05 Dmitry Antipov <dmantipov@yandex.ru>
6972
6973 Consistently use platform-specific function to detect window system.
6974 * lisp.h (check_window_system): New prototype. This function is
6975 going to replace check_x, check_w32 and check_ns.
6976 (have_menus_p): Mention msdos.c in comment.
6977 * fontset.c (check_window_system_func): Remove. Adjust all users.
6978 * fontset.h (check_window_system_func): Remove prototype.
6979 * nsterm.h (check_ns):
6980 * xterm.h (check_x):
6981 * w32term.h (check_w32): Likewise.
6982 * menu.c (Fx_popup_menu): Use check_window_system.
6983 * msdos.c (check_window_system): Define for MS-DOS.
6984 * nsfns.m (check_window_system): Define for NS. Adjust all users.
6985 * w32fns.c (check_window_system): Likewise for MS-Windows.
6986 * xfns.c (check_window_system): Likewise for X.
6987 * font.c, frame.c, nsmenu.m, nsselect.m, nsterm.m, w32menu.c:
6988 * xfaces.c, xmenu.c: Use check_window_system where appropriate.
6989
7216e43b
PE
69902013-04-02 Paul Eggert <eggert@cs.ucla.edu>
6991
6992 Prefer < to > in range checks such as 0 <= i && i < N.
6993 This makes it easier to visualize quantities on a number line.
6994 This patch doesn't apply to all such range checks,
6995 only to the range checks affected by the 2013-03-24 change.
6996 This patch reverts most of the 2013-03-24 change.
6997 * alloc.c (xpalloc, Fgarbage_collect):
6998 * ccl.c (ccl_driver, resolve_symbol_ccl_program):
6999 * character.c (string_escape_byte8):
7000 * charset.c (read_hex):
7001 * data.c (cons_to_unsigned):
7002 * dispnew.c (update_frame_1):
7003 * doc.c (Fsubstitute_command_keys):
7004 * doprnt.c (doprnt):
7005 * editfns.c (hi_time, decode_time_components):
7006 * fileio.c (file_offset):
7007 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
7008 * font.c (font_intern_prop):
7009 * frame.c (x_set_alpha):
7010 * gtkutil.c (get_utf8_string):
7011 * indent.c (check_display_width):
7012 * keymap.c (Fkey_description):
7013 * lisp.h (FIXNUM_OVERFLOW_P, vcopy):
7014 * lread.c (read1):
7015 * minibuf.c (read_minibuf_noninteractive):
7016 * process.c (wait_reading_process_output):
7017 * search.c (Freplace_match):
7018 * window.c (get_phys_cursor_glyph):
7019 * xdisp.c (redisplay_internal):
7020 * xsmfns.c (smc_save_yourself_CB):
7021 Prefer < to > for range checks.
7022 * dispnew.c (sit_for): Don't mishandle NaNs.
7023 This fixes a bug introduced in the 2013-03-24 change.
7024 * editfns.c (decode_time_components): Don't hoist comparison.
7025 This fixes another bug introduced in the 2013-03-24 change.
7026
92759988
DA
70272013-03-31 Dmitry Antipov <dmantipov@yandex.ru>
7028
7029 * frame.h (struct frame): Drop scroll_bottom_vpos
7030 member becaue all real users are dead long ago.
7031 (FRAME_SCROLL_BOTTOM_VPOS): Remove.
7032 * xdisp.c (redisplay_internal): Adjust user.
7033
9a1971bb
GM
70342013-03-30 Darren Ho <darren.hoo@gmail.com> (tiny change)
7035
f38ab167
JD
7036 * nsmenu.m (showAtX:Y:for:): setLevel to
7037 NSPopUpMenuWindowLevel (Bug#13998).
7038
6d01f1fe
JD
70392013-03-30 Jan Djärv <jan.h.d@swipnet.se>
7040
7041 * nsterm.h (ns_get_pending_menu_title, ns_check_menu_open)
7042 (ns_check_pending_open_menu): Declare.
7043
7044 * nsmenu.m (ns_update_menubar): Correct NSTRACE.
7045 (x_activate_menubar): Update the menu with title that matches
7046 ns_get_pending_menu_title, and call
7047 ns_check_pending_openmenu (Bug#12698).
7048 (menuWillOpen:): New method.
7049 (menuNeedsUpdate:): Add check for ! COCOA || OSX < 10.5 (Bug#12698).
7050
7051 * nsterm.m (menu_will_open_state, menu_mouse_point)
7052 (menu_pending_title): New varaibles.
7053 (ns_get_pending_menu_title, ns_check_menu_open)
7054 (ns_check_pending_open_menu): New functions.
7055
781f4782
DA
70562013-03-29 Dmitry Antipov <dmantipov@yandex.ru>
7057
7058 * indent.c (current_column_bol_cache): Remove leftover which is not
7059 used in Fmove_to_column any more.
7060 (current_column, scan_for_column): Adjust users.
7061 * keyboard.c (last_point_position_buffer, last_point_position_window):
7062 Remove leftovers which are not used for recording undo any more.
7063 (command_loop_1, syms_of_keyboard): Adjust users.
7064 * xdisp.c (last_max_ascent): Remove leftover which is not used in
7065 redisplay_window any more.
7066 (move_it_to): Adjust user.
7067
1921c31b
JB
70682013-03-29 Juanma Barranquero <lekktu@gmail.com>
7069
7070 * makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/filelock.$(O)):
7071 Update dependencies.
7072
717b8bcd
SM
70732013-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
7074
7075 * lisp.h (save_type, XSAVE_POINTER, set_save_pointer, XSAVE_INTEGER)
7076 (set_save_integer, XSAVE_OBJECT, XSAVE_VALUE): Move to avoid
7077 forward references.
7078
e74aeda8
DA
70792013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
7080
7081 * window.h (struct window): Replace hchild, vchild and buffer slots
7082 with the only contents slot. This is possible because each valid
7083 window may have either the child window (in vertical or horizontal
7084 combination) or buffer to display (for the leaf window). Using that,
7085 a lof of operations to traverse and/or change window hierarchies may
7086 be simplified. New member horizontal is used to distinguish between
7087 horizontal and vertical combinations of internal windows.
7088 (WINDOW_LEAF_P, WINDOW_HORIZONTAL_COMBINATION_P)
7089 (WINDOW_VERTICAL_COMBINATION_P): New macros.
7090 (WINDOW_VALID_P, WINDOW_LIVE_P): Adjust to match struct window changes.
7091 * window.c (wset_hchild, wset_vchild): Remove. Adjust all users.
7092 Use contents slot, not buffer, where appropriate.
7093 (wset_combination): New function.
7094 (wset_buffer): Add eassert.
7095 (Fframe_first_window): Simplify the loop reaching first window.
7096 (Fwindow_buffer): Use WINDOW_LEAF_P.
7097 (Fwindow_top_child): Use WINDOW_VERTICAL_COMBINATION_P.
7098 (Fwindow_left_child): Use WINDOW_HORIZONTAL_COMBINATION_P.
7099 (unshow_buffer): Convert initial debugging check to eassert.
7100 (replace_window, recombine_windows, Fdelete_other_windows_internal)
7101 (make_parent_window, window_resize_check, window_resize_apply)
7102 (resize_frame_windows, Fsplit_window_internal, Fdelete_window_internal)
7103 (Fset_window_configuration, delete_all_child_windows, save_window_save):
7104 Adjust to match struct window changes.
7105 (window_loop): Check for broken markers in CHECK_ALL_WINDOWS.
7106 (mark_window_cursors_off, count_windows, get_leaf_windows)
7107 (foreach_window_1): Simplify the loop.
7108 * alloc.c (mark_object): Do not check for the leaf window because
7109 internal windows has no glyph matrices anyway.
7110 * dispnew.c (clear_window_matrices, showing_window_margins_p)
7111 (allocate_matrices_for_window_redisplay, fake_current_matrices)
7112 (allocate_matrices_for_frame_redisplay, free_window_matrices)
7113 (build_frame_matrix_from_window_tree, mirror_make_current)
7114 (frame_row_to_window, mirror_line_dance, check_window_matrix_pointers)
7115 (update_window_tree, set_window_update_flags): Simplify the loop.
7116 (sync_window_with_frame_matrix_rows): Enforce live window.
7117 Use contents slot, not buffer, where appropriate.
7118 * frame.c (set_menu_bar_lines_1): Use WINDOW_VERTICAL_COMBINATION_P
7119 and WINDOW_HORIZONTAL_COMBINATION_P.
7120 (make_frame_visible_1): Simplify the loop.
7121 Use contents slot, not buffer, where appropriate.
7122 * xdisp.c (hscroll_window_tree, mark_window_display_accurate)
7123 (redisplay_windows, redisplay_mode_lines, update_cursor_in_window_tree)
7124 (expose_window_tree): Likewise.
7125 Use contents slot, not buffer, where appropriate.
7126 * textprop.c (get_char_property_and_overlay): Add CHECK_LIVE_WINDOW
7127 to avoid deleted windows. Use contents slot instead of buffer.
7128 * buffer.c, dispextern.h, editfns.c, fileio.c, font.c, fringe.c:
7129 * indent.c, insdel.c, keyboard.c, keymap.c, minibuf.c, msdos.c:
7130 * nsfns.m, nsmenu.m, nsterm.m, print.c, w32fns.c, w32menu.c, xfaces.c:
7131 * xfns.c, xmenu.c: Use contents slot, not buffer, where appropriate.
7132
121ab1cd
EZ
71332013-03-28 Eli Zaretskii <eliz@gnu.org>
7134
ef454cf7
EZ
7135 * w32fns.c (w32_wnd_proc) [ENABLE_CHECKING]: Add code to help
7136 identify the reasons for assertion violations in bug#14062 and
7137 similar ones.
21e930f8
EZ
7138 (Fx_show_tip): Fix compilation error under
7139 "--enable-check-lisp-object-type". (Bug#14073)
ef454cf7 7140
121ab1cd
EZ
7141 * image.c (g_error_free) [WINDOWSNT]: Add DEF_IMGLIB_FN.
7142 Reported by <rzl24ozi@gmail.com>.
7143
5c89ca24
DA
71442013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
7145
7146 * xdisp.c (with_echo_area_buffer_unwind_data): Save window
7147 start marker...
562c6ee9
SM
7148 (unwind_with_echo_area_buffer): ...to restore it here.
7149 This is needed to ensure that...
5c89ca24
DA
7150 (redisplay_window): ...both window markers are valid here,
7151 which is verified by eassert.
7152 * editfns.c (save_excursion_save): Do not assume that
7153 selected_window always displays the buffer.
c7f53895
DA
7154 * buffer.c (Fbuffer_swap_text): Adjust window start markers.
7155 Fix comment.
5c89ca24 7156
f557c1b1
SM
71572013-03-27 Stefan Monnier <monnier@iro.umontreal.ca>
7158
7159 * casetab.c (init_casetab_once): Don't abuse the ascii eqv table for
7160 the upcase table.
7161
40693bba 71622013-03-27 rzl24ozi <rzl24ozi@gmail.com> (tiny changes)
7163
7164 * image.c [WINDOWSNT]: Fix calls to DEF_IMGLIB_FN for SVG function.
7165
c86f791f
EZ
71662013-03-27 Eli Zaretskii <eliz@gnu.org>
7167
7168 * w32proc.c (IsValidLocale) [__GNUC__]: Don't declare prototype,
7169 since MinGW's w32api headers do. This avoids compiler warnings.
7170
7171 * w32.c (FSCTL_GET_REPARSE_POINT) [_MSC_VER || _W64]: Don't define
7172 if already defined.
7173
c6e72e17
EZ
71742013-03-26 Eli Zaretskii <eliz@gnu.org>
7175
7176 * w32.c (_REPARSE_DATA_BUFFER): Condition by _MSVC and _W64.
7177
54e95010
JD
71782013-03-26 Jan Djärv <jan.h.d@swipnet.se>
7179
7180 * gtkutil.c (style_changed_cb): Check if frame is live and an
7181 X frame (Bug#14038).
7182
b88b62de
EZ
71832013-03-26 Eli Zaretskii <eliz@gnu.org>
7184
a18d7de6
EZ
7185 * w32.c (_PROCESS_MEMORY_COUNTERS_EX) [_WIN32_WINNT < 0x0500]:
7186 Define only for _WIN32_WINNT less than 0x0500.
da9dcbb8
EZ
7187 (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT) [!_W64]: Don't define for
7188 MinGW64.
8f5e14c8
EZ
7189 Move inclusion of time.h before sys/time.h, so that MinGW64 could
7190 see its own definitions of 'struct timeval' and 'struct timezone'.
a18d7de6 7191
b88b62de
EZ
7192 Fix incompatibilities between MinGW.org and MinGW64 headers.
7193 * w32term.c (WCRANGE, GLYPHSET): Don't define if _W64 is defined.
7194
7195 * w32.c (REPARSE_DATA_BUFFER): Guard with
7196 MAXIMUM_REPARSE_DATA_BUFFER_SIZE being defined.
7197
c074e458
JD
71982013-03-25 Jan Djärv <jan.h.d@swipnet.se>
7199
7200 * xterm.c: Include X11/XKBlib.h
7201 (XTring_bell): Use XkbBell if HAVE_XKB (Bug#14041).
7202
908589fd
AS
72032013-03-24 Andreas Schwab <schwab@linux-m68k.org>
7204
7205 * alloc.c (xpalloc, Fgarbage_collect): Reorder conditions that are
7206 written backwards.
7207 * blockinput.h (input_blocked_p): Likewise.
7208 * bytecode.c (exec_byte_code): Likewise.
7209 * callproc.c (call_process_kill, call_process_cleanup)
7210 (Fcall_process): Likewise.
7211 * ccl.c (ccl_driver, resolve_symbol_ccl_program)
7212 (Fccl_execute_on_string): Likewise.
7213 * character.c (string_escape_byte8): Likewise.
7214 * charset.c (read_hex): Likewise.
7215 * cm.c (calccost): Likewise.
7216 * data.c (cons_to_unsigned): Likewise.
7217 * dired.c (directory_files_internal, file_name_completion):
7218 Likewise.
7219 * dispnew.c (scrolling_window, update_frame_1, Fsleep_for)
7220 (sit_for): Likewise.
7221 * doc.c (Fsubstitute_command_keys): Likewise.
7222 * doprnt.c (doprnt): Likewise.
7223 * editfns.c (hi_time, decode_time_components, Fformat): Likewise.
7224 * emacsgtkfixed.c: Likewise.
7225 * fileio.c (file_offset, Fwrite_region): Likewise.
7226 * floatfns.c (Fexpt, fmod_float): Likewise.
7227 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
7228 Likewise.
7229 * font.c (font_intern_prop): Likewise.
7230 * frame.c (x_set_alpha): Likewise.
7231 * gtkutil.c (get_utf8_string): Likewise.
7232 * indent.c (check_display_width): Likewise.
7233 * intervals.c (create_root_interval, rotate_right, rotate_left)
7234 (split_interval_right, split_interval_left)
7235 (adjust_intervals_for_insertion, delete_node)
7236 (interval_deletion_adjustment, adjust_intervals_for_deletion)
7237 (merge_interval_right, merge_interval_left, copy_intervals)
7238 (set_intervals_multibyte_1): Likewise.
7239 * keyboard.c (gobble_input, append_tool_bar_item): Likewise.
7240 * keymap.c (Fkey_description): Likewise.
7241 * lisp.h (FIXNUM_OVERFLOW_P, vcopy): Likewise.
7242 * lread.c (openp, read_integer, read1, string_to_number):
7243 Likewise.
7244 * menu.c (ensure_menu_items): Likewise.
7245 * minibuf.c (read_minibuf_noninteractive): Likewise.
7246 * print.c (printchar, strout): Likewise.
7247 * process.c (create_process, Faccept_process_output)
7248 (wait_reading_process_output, read_process_output, send_process)
7249 (wait_reading_process_output): Likewise.
7250 * profiler.c (make_log, handle_profiler_signal): Likewise.
7251 * regex.c (re_exec): Likewise.
7252 * regex.h: Likewise.
7253 * search.c (looking_at_1, Freplace_match): Likewise.
7254 * sysdep.c (get_child_status, procfs_ttyname)
7255 (procfs_get_total_memory): Likewise.
7256 * systime.h (EMACS_TIME_VALID_P): Likewise.
7257 * term.c (dissociate_if_controlling_tty): Likewise.
7258 * window.c (get_phys_cursor_glyph): Likewise.
7259 * xdisp.c (init_iterator, redisplay_internal, redisplay_window)
7260 (try_window_reusing_current_matrix, try_window_id, pint2hrstr):
7261 Likewise.
7262 * xfns.c (Fx_window_property): Likewise.
7263 * xmenu.c (set_frame_menubar): Likewise.
7264 * xselect.c (x_get_window_property, x_handle_dnd_message):
7265 Likewise.
7266 * xsmfns.c (smc_save_yourself_CB): Likewise.
7267 * xterm.c (x_scroll_bar_set_handle): Likewise.
7268
2bf7d27a
DA
72692013-03-24 Dmitry Antipov <dmantipov@yandex.ru>
7270
7271 * xfaces.c (Finternal_face_x_get_resource): Allow 3rd (frame) argument
7272 to be optional or nil. Adjust comment and convert it to docstring.
7273 * xselect.c (Fx_send_client_event): Rename to Fx_send_client_message.
7274 * frame.c (display_x_get_resource, Fx_get_resource): Break long line.
7275
a9ebfa0b
PE
72762013-03-24 Paul Eggert <eggert@cs.ucla.edu>
7277
7278 Static checking by GCC 4.8-20130319.
7279 * image.c (gif_load): Assume pass < 3 to pacify GCC.
7280 * process.c (Fset_process_datagram_address)
7281 (Fmake_network_process): Check get_lisp_to_sockaddr_size return value.
7282 * xdisp.c (get_char_face_and_encoding):
7283 (get_glyph_face_and_encoding): Ensure that *CHAR2B is initialized.
7284 (get_glyph_face_and_encoding): Prepare face before possibly using it.
7285 (get_per_char_metric): Don't use CHAR2B if it might not be initialized.
7286
4f3576ee
KB
72872013-03-24 Ken Brown <kbrown@cornell.edu>
7288
789b5e9a
KB
7289 * w32fns.c (emacs_abort) [CYGWIN]: Define `_open' as a macro to
7290 fix compilation on 64-bit Cygwin, where underscores are not
7291 automatically prepended.
7292
4f3576ee
KB
7293 * w32term.c (w32_initialize): Silence compiler warning.
7294
b5b7745f
EZ
72952013-03-23 Eli Zaretskii <eliz@gnu.org>
7296
cdc0d0bd
EZ
7297 * w32term.c (w32fullscreen_hook): Use FRAME_NORMAL_WIDTH,
7298 FRAME_NORMAL_HEIGHT, and FRAME_PREV_FSMODE, instead of static
562c6ee9
SM
7299 variables, to save and restore frame dimensions.
7300 Use FRAME_NORMAL_LEFT and FRAME_NORMAL_TOP to restore frame position
7301 after returning from a 'fullscreen' configuration.
7302 use SendMessage instead of PostMessage to send the SC_RESTORE message,
cdc0d0bd
EZ
7303 to avoid races between the main thread and the input thread.
7304
7305 * w32term.h (struct w32_output): New members normal_width,
7306 normal_height, normal_top, normal_left, and prev_fsmode.
7307 (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP)
7308 (FRAME_NORMAL_LEFT, FRAME_PREV_FSMODE): New macros to access these
7309 members of a frame.
7310
b5b7745f
EZ
7311 * w32term.c (w32fullscreen_hook): Record last value of the frame's
7312 'fullscreen' parameter. Always record previous width and height
7313 of the frame, except when switching out of maximized modes, so
7314 that they could be restored correctly, instead of resetting to the
7315 default frame dimensions. Send SC_RESTORE command to the frame,
7316 unless we are going to send SC_MAXIMIZE, to restore the frame
7317 resize hints in the mouse pointer shown by the window manager.
7318 (Bug#14032)
7319
7320 * frame.c (get_frame_param): Now extern for WINDOWSNT as well.
7321
7322 * lisp.h (get_frame_param): Adjust conditions for prototype
7323 declaration.
7324
a3454eed
KB
73252013-03-22 Ken Brown <kbrown@cornell.edu>
7326
7327 * unexcw.c: Drop unneeded inclusion of w32common.h.
7328 (report_sheap_usage): Declare.
7329 (read_exe_header): Add magic numbers for x86_64.
7330 (fixup_executable): Fix printf format specifier for unsigned long
7331 argument.
7332
5a49b79c
DA
73332013-03-22 Dmitry Antipov <dmantipov@yandex.ru>
7334
7335 * frame.h (struct frame): Put menu_bar_window under #ifdef
7336 because this member is not needed when X toolkit is in use.
7337 (fset_menu_bar_window):
7338 * dispnew.c (clear_current_matrices, clear_desired_matrices)
7339 (free_glyphs, update_frame):
7340 * xdisp.c (expose_frame): Likewise.
7341 (display_menu_bar): Likewise. Remove redundant eassert.
7342 * window.h (WINDOW_MENU_BAR_P): Always define to 0 if X
7343 toolkit is in use.
7344
d6723bf7
PE
73452013-03-21 Paul Eggert <eggert@cs.ucla.edu>
7346
7b1123d8
PE
7347 Use functions and constants to manipulate Lisp_Save_Value objects.
7348 This replaces code that used macros and strings and token-pasting.
7349 The change makes the C source a bit easier to follow,
7350 and shrinks the Emacs executable a bit.
7351 * alloc.c: Verify some properties of Lisp_Save_Value's representation.
7352 (make_save_value): Change 1st arg from string to enum. All callers
7353 changed.
7354 (INTX): Remove.
7355 (mark_object): Use if, not #if, for GC_MARK_STACK.
7356 * lisp.h (SAVE_VALUEP, XSAVE_VALUE, XSAVE_POINTER, XSAVE_INTEGER)
7357 (XSAVE_OBJECT): Now functions, not macros.
7358 (STRING_BYTES_BOUND): Now just a macro, not a constant too;
7359 the constant was never used.
7360 (SAVE_SLOT_BITS, SAVE_VALUE_SLOTS, SAVE_TYPE_BITS, SAVE_TYPE_INT_INT)
7361 (SAVE_TYPE_INT_INT_INT, SAVE_TYPE_OBJ_OBJ, SAVE_TYPE_OBJ_OBJ_OBJ)
7362 (SAVE_TYPE_OBJ_OBJ_OBJ_OBJ, SAVE_TYPE_PTR_INT, SAVE_TYPE_PTR_OBJ)
7363 (SAVE_TYPE_PTR_PTR, SAVE_TYPE_PTR_PTR_OBJ, SAVE_TYPE_MEMORY):
7364 New constants.
7365 (struct Lisp_Save_Value): Replace members area, type0, type1, type2,
7366 type3 with a single member save_type. All uses changed.
7367 (save_type, set_save_pointer, set_save_integer): New functions.
7368 * print.c (PRINTX): Remove.
7369
d6723bf7
PE
7370 * alloc.c: Remove redundant static declarations.
7371
5f24fa51
DA
73722013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
7373
7374 * window.h (struct window): Convert left_col, top_line, total_lines
7375 and total_cols from Lisp_Objects to integers. Adjust comments.
7376 (wset_left_col, wset_top_line, wset_total_cols, wset_total_lines):
7377 Remove.
7378 (WINDOW_TOTAL_COLS, WINDOW_TOTAL_LINES, WINDOW_LEFT_EDGE_COL)
7379 (WINDOW_TOP_EDGE_LINE): Drop Lisp_Object to integer conversion.
7380 * dispnew.c, frame.c, w32fns.c, window.c, xdisp.c, xfns.c:
7381 Adjust users where appropriate.
7382
42143acd
DA
73832013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
7384
7385 * frame.h (struct frame): Drop resx and resy because the same data is
7386 available from window system-specific output context. Adjust users.
562c6ee9
SM
7387 (default_pixels_per_inch_x, default_pixels_per_inch_y):
7388 New functions to provide defaults when no window system available.
42143acd 7389 (FRAME_RES_X, FRAME_RES_Y): New macros.
562c6ee9 7390 (NUMVAL): Move from xdisp.c.
42143acd
DA
7391 * font.c (font_pixel_size, font_find_for_lface, font_open_for_lface)
7392 (Ffont_face_attributes, Fopen_font):
7393 * image.c (gs_load):
7394 * w32font.c (fill_in_logfont):
7395 * xdisp.c (calc_pixel_width_or_height):
7396 * xfaces.c (Fx_family_fonts, set_lface_from_font): Use them.
7397 * xsettings.c (apply_xft_settings): Drop frame loop and adjust comment.
7398
c0a17406
KH
73992013-03-20 Kenichi Handa <handa@gnu.org>
7400
7401 * coding.c (syms_of_coding): Initialize disable_ascii_optimization
7402 to 1 (temporary workaround until a bug related to ASCII
7403 optimization is fixed).
7404
095d384d
DA
74052013-03-19 Dmitry Antipov <dmantipov@yandex.ru>
7406
7407 * window.c (Fwindow_combination_limit, Fset_window_combination_limit):
7408 Signal error if window is not internal. Adjust docstring.
7409 (delete_all_child_windows): Use combination_limit to save the buffer.
7410 (Fset_window_configuration): Adjust accordingly.
cf4bb06d
DA
7411 * print.c (syms_of_print): Initialize debugging output not here...
7412 (init_print_once): ...but in a new function here.
7413 * lisp.h (init_print_once): Add prototype.
7414 * emacs.c (main): Add call to init_print_once. Adjust comments.
095d384d 7415
748fa866
DA
74162013-03-18 Dmitry Antipov <dmantipov@yandex.ru>
7417
7418 * window.c (window_resize_check, window_resize_apply)
7419 (window_from_coordinates, recombine_windows, set_window_buffer)
7420 (make_parent_window, Fwindow_resize_apply, resize_frame_windows)
7421 (Fsplit_window_internal, Fdelete_window_internal)
7422 (freeze_window_starts): Use bool for booleans.
7423 * window.h (window_frame_coordinates, resize_frame_windows)
7424 (freeze_window_starts, set_window_buffer): Adjust prototypes.
7425
81519fd2
SM
74262013-03-17 Stefan Monnier <monnier@iro.umontreal.ca>
7427
7428 * dispnew.c (bitch_at_user): Use `user-error'.
7429
6db423a9
KB
74302013-03-17 Ken Brown <kbrown@cornell.edu>
7431
7432 * dispextern.h (RGB_PIXEL_COLOR): Move here from image.c. Use it
7433 as return type of image_background. (Bug#13981)
7434 * image.c (RGB_PIXEL_COLOR): Move to dispextern.h.
7435
8f2906f5
JD
74362013-03-16 Jan Djärv <jan.h.d@swipnet.se>
7437
960ce480 7438 * nsterm.m (updateFrameSize:): Change resize increments if needed.
6615748a 7439 (ns_select): Don't return with result uninitialized.
960ce480 7440
8f2906f5
JD
7441 * nsterm.h (EmacsSavePanel, EmacsOpenPanel): Add getFilename
7442 and getDirectory.
7443
81519fd2
SM
7444 * nsfns.m (ns_filename_from_panel, ns_directory_from_panel):
7445 New functions.
8f2906f5
JD
7446 (Fns_read_file_name): ret is BOOL. If ! dir_only_p, don't choose
7447 directories. If filename is nil, get directory name (Bug#13932).
7448 Use getFilename and getDirectory.
7449 (getFilename, getDirectory): New methods for EmacsSavePanel and
7450 EmacsOpenPanel.
7451 (ok:): In EmacsOpenPanel, if we can't choose directories, just return.
7452
cded56c1
PE
74532013-03-15 Paul Eggert <eggert@cs.ucla.edu>
7454
7455 * coding.c (decode_coding_gap): Fix typo caught by static checking.
7456
251e9147 74572013-03-15 Kenichi Handa <handa@gnu.org>
8a44e6d1
KH
7458
7459 * insdel.c (insert_from_gap): New arg text_at_gap_tail.
7460 (adjust_after_replace): Make it back to static. Delete the third
7461 arg text_at_gap_tail. Cancel the code for handling it.
7462
7463 * coding.h (struct coding_system): New member eol_seen.
7464
7465 * coding.c (detect_ascii): New function.
7466 (detect_coding): Set coding->head_ascii and coding->eol_seen only
7467 when the source bytes are actually scanned. On detecting for
7468 coding_category_utf_8_auto, call detect_ascii instead of scanning
7469 source bytes directly.
7470 (produce_chars): Call insert_from_gap with the new arg 0.
7471 (encode_coding): Likewise.
7472 (decode_coding_gap): Control ASCII optimization by the variable
7473 disable_ascii_optimization instead of #ifndef .. #endif.
7474 Deccode EOL format according to coding->eol_seen.
7475 (syms_of_coding): Declare disable-ascii-optimization as a Lisp
7476 variable.
7477
8a44e6d1
KH
7478 * lisp.h (adjust_after_replace): Cancel externing it.
7479 (insert_from_gap): Adjust prototype.
7480
5f795e34
EZ
74812013-03-15 Eli Zaretskii <eliz@gnu.org>
7482
7483 * w32term.c (w32fullscreen_hook): Swap FULLSCREEN_BOTH and
7484 FULLSCREEN_MAXIMIZED. (Bug#13935)
7485
f258b4be
DA
74862013-03-15 Dmitry Antipov <dmantipov@yandex.ru>
7487
7488 * region-cache.c (find_cache_boundary, move_cache_gap)
7489 (insert_cache_boundary, delete_cache_boundaries, set_cache_region):
7490 Simplify debugging check and convert to eassert. Adjust comment.
7491 (pp_cache): Put under ENABLE_CHECKING.
7492
a5cc4dde
EZ
74932013-03-14 Eli Zaretskii <eliz@gnu.org>
7494
7495 * w32term.c (w32_read_socket) <WM_WINDOWPOSCHANGED>: Remove old
7496 and incorrect code. Treat WM_WINDOWPOSCHANGED like WM_ACTIVATE
7497 and WM_ACTIVATEAPP.
7498 (w32fullscreen_hook): If the frame is visible, reset
7499 f->want_fullscreen flag after changing the frame size. If the
7500 frame is not visible, set f->want_fullscreen to FULLSCREEN_WAIT.
7501 (Bug#13953)
7502
3fc5e44a
DC
75032013-03-13 Daniel Colascione <dancol@dancol.org>
7504
7505 * emacs.c (main): Call syms_of_cygw32 on CYGWIN non-NTGUI builds
7506 too so that these builds can use Cygwin's file conversion
7507 functions. (We've been building and linking cygw32.o all along
7508 and just not using it.)
7509
47d7532e
PE
75102013-03-13 Paul Eggert <eggert@cs.ucla.edu>
7511
7512 File synchronization fixes (Bug#13944).
7513 * Makefile.in (LIB_FDATASYNC): New macro.
7514 (LIBES): Use it.
7515 * conf_post.h (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed.
7516 * fileio.c (Fwrite_region, write_region_inhibit_fsync):
7517 Don't worry about HAVE_FSYNC, since a substitute fsync is
7518 available if the system lacks one.
7519 (Fwrite_regin): Retry fsync if interrupted.
7520
c7ffccaf
EZ
75212013-03-13 Eli Zaretskii <eliz@gnu.org>
7522
4e2df81d 7523 * w32term.c (w32_read_socket): If the Emacs frame is being
c7ffccaf
EZ
7524 activated, call w32fullscreen_hook, to make sure the new frame
7525 dimensions are in effect. (Bug#13937)
7526
8a7debc1
DA
75272013-03-13 Dmitry Antipov <dmantipov@yandex.ru>
7528
7529 * xdisp.c (init_iterator): Simplify because both character and byte
7530 positions are either specified or -1. Add eassert. Adjust comment.
ffcd945e
DA
7531 * window.c (Fscroll_other_window): Use SET_PT_BOTH because both
7532 character and byte positions can be obtained from marker.
8a7debc1 7533
7fd8c501
PE
75342013-03-13 Paul Eggert <eggert@cs.ucla.edu>
7535
d9df6f40
PE
7536 Static checking by Sun C 5.12.
7537 * alloc.c (buffer_memory_full) [REL_ALLOC]:
7538 * bytecode.c (exec_byte_code):
7539 * dispnew.c (init_display):
7540 * eval.c (error):
7541 * fileio.c (Fsubstitute_in_file_name):
7542 * keyboard.c (Fevent_convert_list):
7543 * keymap.c (Fsingle_key_description):
7544 * term.c (maybe_fatal, fatal):
7545 * xfns.c (Fx_display_backing_store, Fx_display_visual_class):
7546 * xsmfns.c (Fhandle_save_session):
7547 Omit unreachable code.
7548 * keymap.c (map_keymap_char_table_item): Cast void * to
7549 a function pointer type; the C Standard requires this.
7550
7fd8c501
PE
7551 * sysdep.c: Remove a use of BSD_SYSTEM, which I'm trying to phase out.
7552 Include <sys/param.h> unconditionally, as that works elsewhere and
7553 is simpler here. Include <sys/sysctl.h> if DARWIN_OS ||
7554 __FreeBSD__, not if BSD_SYSTEM, since it's needed only for Darwin
7555 and FreeBSD now.
7556
a020afb9 7557See ChangeLog.12 for earlier changes.
aac0c6e3
MR
7558
7559;; Local Variables:
7560;; coding: utf-8
aac0c6e3
MR
7561;; End:
7562
ab422c4d 7563 Copyright (C) 2011-2013 Free Software Foundation, Inc.
aac0c6e3
MR
7564
7565 This file is part of GNU Emacs.
7566
7567 GNU Emacs is free software: you can redistribute it and/or modify
7568 it under the terms of the GNU General Public License as published by
7569 the Free Software Foundation, either version 3 of the License, or
7570 (at your option) any later version.
7571
7572 GNU Emacs is distributed in the hope that it will be useful,
7573 but WITHOUT ANY WARRANTY; without even the implied warranty of
7574 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7575 GNU General Public License for more details.
7576
7577 You should have received a copy of the GNU General Public License
7578 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.