aboutsummaryrefslogtreecommitdiffstats
path: root/src/ChangeLog
diff options
context:
space:
mode:
authorBill Wohler2014-02-23 18:04:35 -0800
committerBill Wohler2014-02-23 18:04:35 -0800
commit3e93bafb95608467e438ba7f725fd1f020669f8c (patch)
treef2f90109f283e06a18caea3cb2a2623abcfb3a92 /src/ChangeLog
parent791c0d7634e44bb92ca85af605be84ff2ae08963 (diff)
parente918e27fdf331e89268fc2c9d7cf838d3ecf7aa7 (diff)
downloademacs-3e93bafb95608467e438ba7f725fd1f020669f8c.tar.gz
emacs-3e93bafb95608467e438ba7f725fd1f020669f8c.zip
Merge from trunk; up to 2014-02-23T23:41:17Z!lekktu@gmail.com.
Diffstat (limited to 'src/ChangeLog')
-rw-r--r--src/ChangeLog29903
1 files changed, 8468 insertions, 21435 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index adff00f7189..86605b97764 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,22614 +1,9647 @@
12013-03-02 Paul Eggert <eggert@cs.ucla.edu> 12014-02-22 Glenn Morris <rgm@gnu.org>
2
3 The lock for FILE is now .#FILE or .#-FILE (Bug#13807).
4 The old approach, which fell back on DIR/.#FILE.0 through
5 DIR/.#FILE.9, had race conditions that could not be easily fixed.
6 If DIR/.#FILE is a non-symlink file, Emacs now does not create a
7 lock file for DIR/FILE; that is, DIR/FILE is no longer partly
8 protected by a lock if DIR/.#FILE is a non-symlink file ("partly"
9 because the locking mechanism was never reliable in that case).
10 This patch fixes this and other bugs discovered by a code
11 inspection that was prompted by
12 <http://lists.gnu.org/archive/html/emacs-devel/2013-02/msg00531.html>.
13 Also, this patch switches to .#-FILE (not .#FILE) on MS-Windows,
14 to avoid interoperability problems between the MS-Windows and
15 non-MS-Windows implementations. MS-Windows and non-MS-Windows
16 instances of Emacs now ignore each others' locks.
17 * filelock.c (defined_WINDOWSNT): New constant.
18 (MAKE_LOCK_NAME, fill_in_lock_file_name):
19 Don't create DIR/.#FILE.0 through DIR/.#FILE.9. Instead, create
20 DIR/.#FILE symlinks on non-MS-Windows hosts, and DIR/.#-FILE
21 regular files on MS-Windows hosts.
22 (MAKE_LOCK_NAME, unlock_file, Ffile_locked_p):
23 Use SAFE_ALLOCA to avoid problems with long file names.
24 (MAX_LFINFO): Now a local constant, not a global macro.
25 (IS_LOCK_FILE): Remove.
26 (lock_file_1): Don't inspect errno if symlink call succeeds;
27 that's not portable.
28 (lock_file): Document that this function can return if lock
29 creation fails.
30 (lock_file): Don't access freed storage.
31
322013-03-02 Andreas Schwab <schwab@linux-m68k.org>
33
34 * lisp.h (XPNTR) [!USE_LSB_TAG]: Remove extra paren. (Bug#13734)
35
362013-03-02 Paul Eggert <eggert@cs.ucla.edu>
37
38 * textprop.c: Use bool for booleans.
39 (validate_interval_range, Fadd_text_properties)
40 (Fremove_text_properties): Prefer bool to int when either works.
41
422013-03-02 Eli Zaretskii <eliz@gnu.org>
43
44 * textprop.c (Fadd_text_properties, Fremove_text_properties): If
45 the interval tree changes as a side effect of calling
46 modify_region, re-do processing starting from the call to
47 validate_interval_range. (Bug#13743)
48
492013-02-28 Eli Zaretskii <eliz@gnu.org>
50
51 * w32.c (sys_open): Don't reset the flags for FD in fd_info[].
52 (Bug#13546).
53
542013-02-27 Eli Zaretskii <eliz@gnu.org>
55
56 * filelock.c (create_lock_file) [WINDOWSNT]: Use _sopen with
57 _SH_DENYRW flag, instead of emacs_open, to deny any other process
58 access to the lock file until it is written and closed.
59 (Bug#13807)
60
612013-02-27 Paul Eggert <eggert@cs.ucla.edu>
62
63 * callint.c (Qcall_interactively):
64 * macros.c (Qexecute_kbd_macro):
65 Now static.
66
672013-02-26 Bastien Guerry <bzg@gnu.org>
68
69 * window.c (Frecenter): Tiny docstring enhancement.
70
712013-02-26 Paul Eggert <eggert@cs.ucla.edu>
72
73 Minor textprop integer cleanup.
74 * intervals.h, textprop.c (add_text_properties_from_list):
75 Return void, not int, since nobody uses the return value.
76 * textprop.c (validate_plist, add_properties, remove_properties)
77 (Fadd_text_properties):
78 Don't assume list length fits in int.
79 (interval_has_all_properties, interval_has_some_properties)
80 (interval_has_some_properties_list, add_properties, remove_properties)
81 (Fadd_text_properties, Fremove_text_properties)
82 (Fremove_list_of_text_properties, text_property_stickiness):
83 Use bool for booleans.
84 (Fadd_text_properties, Fremove_text_properties):
85 (Fremove_list_of_text_properties):
86 Reindent do-while as per GNU style.
87
882013-02-25 Eli Zaretskii <eliz@gnu.org>
89
90 Implement CLASH_DETECTION for MS-Windows.
91
92 * filelock.c [WINDOWSNT]: Include w32.h.
93 (MAKE_LOCK_NAME): Don't use 'lock', it clashes with MS runtime
94 function of that name. Up-case the macro arguments.
95 (IS_LOCK_FILE): New macro.
96 (fill_in_lock_file_name): Use IS_LOCK_FILE instead of S_ISLNK.
97 (create_lock_file): New function, with body extracted from
98 lock_file_1.
99 [WINDOWSNT]: Implement lock files by writing a regular file with
100 the lock information as its contents.
101 (read_lock_data): New function, on Posix platforms just calls
102 emacs_readlinkat.
103 [WINDOWSNT]: Read the lock info from the file.
104 (current_lock_owner): Call read_lock_data instead of calling
105 emacs_readlinkat directly.
106 (lock_file) [WINDOWSNT]: Run the file name through
107 dostounix_filename.
108
109 * w32proc.c (sys_kill): Support the case of SIG = 0, in which case
110 just check if the process by that PID exists.
111
112 * w32.c (sys_open): Don't reset the _O_CREAT flag if _O_EXCL is
113 also present, as doing so will fail to error out if the file
114 already exists.
115
116 * makefile.w32-in ($(BLD)/filelock.$(O)): Depend on src/w32.h.
117
118 * textprop.c (Fadd_text_properties, Fremove_text_properties)
119 (Fremove_list_of_text_properties): Skip all of the intervals in
120 the region between START and END that already have resp. don't
121 have the requested properties, not just the first one. Add
122 assertions that the loop afterwards always modifies the
123 properties. (Bug#13743)
124
1252013-02-25 Stefan Monnier <monnier@iro.umontreal.ca>
126
127 * callint.c (Fcall_interactively): Use the right lexical environment
128 for `interactive' specs (bug#13811).
129 * eval.c (Feval): Accept a lexical environment.
130
1312013-02-25 Paul Eggert <eggert@cs.ucla.edu>
132
133 Simplify data_start configuration (Bug#13783).
134 This is a followon simplification to the fix for Bug#13650.
135 * Makefile.in (LD_FIRSTFLAG, LIB_GCC, CRT_DIR, LIB_STANDARD)
136 (START_FILES): Remove. All uses removed.
137 (otherobj): Remove $(VMLIMIT_OBJ), as it's now first.
138 (ALLOBJS): Move here from autodeps.mk, and with VMLIMITS_OBJ first.
139 (buildobj.h): Use it.
140 ($(ALLOBJS)): Depend on globals.h.
141 (temacs$(EXEEXT)): Use $(ALLOBJS).
142 * autodeps.mk (ALLOBJS): Move to Makefile.in.
143 * deps.mk (vm-limit.o):
144 * makefile.w32-in ($(BLD)/vm-limit.$(O)):
145 Do not depend on mem-limits.h.
146 * emacs.c (__do_global_ctors, __do_global_ctors_aux)
147 (__do_global_dtors, __CTOR_LIST__, __DTOR_LIST__)
148 [__GNUC__ && !ORDINARY_LINK]: Remove.
149 * mem-limits.h, pre-crt0.c: Remove.
150 * unexaix.c, unexcoff.c: Don't include mem-limits.h.
151 * unexcoff.c (etext): New decl.
152 (make_hdr): Use DATA_START instead of start_of_data.
153 * vm-limit.c: Move most of mem-limits.h's contents here.
154 (data_start): New decl. It's OK if this is approximate,
155 so simplify-away some unnecessary exactness.
156 (POINTER): Remove; all uses removed.
157 (data_space_start): Now char *, to avoid casts.
158 (exceeds_lisp_ptr): New function, replacing the old
159 EXCEEDS_LISP_PTR macro. All uses changed.
160 (check_memory_limits): Simplify and remove casts.
161 (start_of_data) [!CANNOT_DUMP || !SYSTEM_MALLOC]: Remove.
162 (memory_warnings): Use data_start instead of start_of_data.
163
1642013-02-24 Andreas Schwab <schwab@linux-m68k.org>
165
166 * xdisp.c (set_message): Only check for debug-on-message if STRING
167 is a string. (Bug#13797)
168
1692013-02-24 Paul Eggert <eggert@cs.ucla.edu>
170
171 Fix regression introduced by July 10 filelock.c patch.
172 * filelock.c (fill_in_lock_file_name): Fix crash caused by the
173 2012-07-10 patch to this file. Reported by Eli Zaretskii in
174 <http://lists.gnu.org/archive/html/emacs-devel/2013-02/msg00533.html>
175 and diagnosed by Andreas Schwab in
176 <http://lists.gnu.org/archive/html/emacs-devel/2013-02/msg00534.html>.
177
1782013-02-22 Paul Eggert <eggert@cs.ucla.edu>
179
180 Assume C89 or better.
181 * ralloc.c (SIZE, POINTER, NIL):
182 * vm-limit.c (POINTER):
183 Remove, replacing all uses with C89 equivalents. These old
184 symbols were present only for porting to pre-C89 platforms.
185
1862013-02-22 Claudio Bley <claudio.bley@gmail.com>
187
188 * w32.c (emacs_gnutls_pull): Don't call 'select', and don't loop.
189 This avoids warning messages reported as part of Bug#13546.
190
1912013-02-21 Ken Brown <kbrown@cornell.edu>
192
193 * sheap.c (report_sheap_usage): Fix arguments of message1_no_log.
194
1952013-02-20 Stefan Monnier <monnier@iro.umontreal.ca>
196
197 * sheap.c (report_sheap_usage): Prefer message1_nolog.
198
199 * keyboard.c (Qcommand_execute): New var.
200 (command_loop_1, read_char): Use it.
201 (Fcommand_execute): Remove, replace by an Elisp implementation.
202 (syms_of_keyboard): Adjust accordingly.
203
2042013-02-19 Daniel Colascione <dancol@dancol.org>
205
206 * sheap.c (report_sheap_usage): Use message, not message1, so
207 that we don't try to create a buffer while we're in the middle
208 of dumping Emacs. Explain why.
209
2102013-02-20 Dmitry Antipov <dmantipov@yandex.ru>
211 * search.c (find_newline): Return byte position in bytepos.
212 Adjust comment.
213 (find_next_newline_no_quit, find_before_next_newline):
214 Add bytepos argument.
215 * lisp.h (find_newline, find_next_newline_no_quit)
216 (find_before_next_newline): Adjust prototypes.
217 * bidi.c (bidi_find_paragraph_start):
218 * editfns.c (Fconstrain_to_field, Fline_end_position):
219 * indent.c (compute_motion, vmotion):
220 * xdisp.c (back_to_previous_line_start, forward_to_next_line_start):
221 (get_visually_first_element, move_it_vertically_backward):
222 Adjust users and avoid calls to CHAR_TO_BYTE where appropriate.
223
2242013-02-19 Eli Zaretskii <eliz@gnu.org>
225
226 * w32proc.c (new_child): Avoid leaking handles if the subprocess
227 resources were not orderly released.
228
2292013-02-17 Eli Zaretskii <eliz@gnu.org>
230
231 * xdisp.c (x_draw_vertical_border): For a window that is neither
232 the leftmost nor the rightmost, redraw both the left and the right
233 vertical borders. (Bug#13723)
234
2352013-02-17 Stefan Monnier <monnier@iro.umontreal.ca>
236
237 * xml.c (init_libxml2_functions):
238 * sound.c (sound_warning):
239 * sheap.c (report_sheap_usage):
240 * process.c (wait_reading_process_output):
241 * msdos.c (XMenuActivate):
242 * macros.c (Fstart_kbd_macro, Fend_kbd_macro):
243 * keyboard.c (top_level_1):
244 * editfns.c (Fmessage, Fmessage_box):
245 * callint.c (Fcall_interactively):
246 * fns.c (Fyes_or_no_p): Prefer `message1' over `message'.
247
2482013-02-17 Jan Djärv <jan.h.d@swipnet.se>
249
250 * xterm.c (syms_of_xterm): Move scroll-bar-adjust-thumb-portion ...
251 * frame.c (syms_of_frame): ... to here.
252
2532013-02-16 Eli Zaretskii <eliz@gnu.org>
254
255 * w32.c (sys_chown): Remove unused function.
256
257 * w32term.c <input_signal_count>: Declare 'volatile'
258 unconditionally. (Bug#9066)
259
260 * w32.c (set_errno): Reset h_errno and don't set it to any other
261 value. Set errno instead.
262 (check_errno): Reset h_errno.
263 (sys_socket, socket_to_fd, sys_bind, sys_connect)
264 (sys_gethostname, sys_getservbyname, sys_getpeername)
265 (sys_shutdown, sys_setsockopt, sys_listen, sys_getsockname)
266 (sys_accept, sys_recvfrom, sys_sendto, fcntl, sys_read): Don't set
267 h_errno.
268 (sys_gethostbyname): Set h_errno only errors detected.
269
2702013-02-15 Paul Eggert <eggert@cs.ucla.edu>
271
272 * process.c (h_errno) [!HAVE_H_ERRNO]: Remove unused decl.
273
2742013-02-15 Eli Zaretskii <eliz@gnu.org>
275
276 * keyboard.c (read_char): Fix calculation of auto-save time out
277 when auto-save-timeout is less than 4. (Bug#13720)
278
279 * w32proc.c (new_child): Free up to 2 slots of dead processes at a
280 time. Improve diagnostics in DebPrint. (Bug#13546)
281
282 * w32.c (sys_socket, sys_bind, sys_connect, sys_gethostname)
283 (sys_gethostbyname, sys_getservbyname, sys_getpeername)
284 (sys_shutdown, sys_setsockopt, sys_listen, sys_getsockname)
285 (sys_accept, sys_recvfrom, sys_sendto, fcntl): In case of failure,
286 make sure errno is set to an appropriate value. (Bug#13546)
287 (socket_to_fd): Add assertion against indexing fd_info[] with a
288 value that is out of bounds.
289 (sys_accept): If fd is negative, do not set up the child_process
290 structure for reading.
291
2922013-02-15 Dmitry Antipov <dmantipov@yandex.ru>
293
294 * composite.c (fill_gstring_header): Remove useless prototype.
295 Break long line.
296 * lisp.h (message_dolog, compile_pattern): Adjust prototype.
297 * print.c (PRINTDECLARE, print_object):
298 * search.c (compile_pattern, fast_looking_at, search_buffer):
299 (simple_search, boyer_moore, Freplace_match):
300 * xdisp.c (c_string_pos, number_of_chars, message_dolog):
301 (get_overlay_arrow_glyph_row, display_mode_element):
302 (decode_mode_spec_coding, message3):
303 * xfaces.c (face_at_string_position): Use bool for booleans.
304 Adjust comments.
305
3062013-02-15 Paul Eggert <eggert@cs.ucla.edu>
307
308 Fix AIX port (Bug#13650).
309 * lisp.h (XPNTR) [!USE_LSB_TAG && DATA_SEG_BITS]:
310 Fix bug introduced in 2012-07-27 change. DATA_SEG_BITS, if set,
311 was #undeffed earlier, so it cannot be used as a macro here.
312 Use the constant and not the macro.
313
3142013-02-15 Eli Zaretskii <eliz@gnu.org>
315
316 * w32proc.c (new_child): If no vacant slots are found in
317 child_procs[], make another pass looking for slots whose process
318 has exited or died. (Bug#13546)
319
320 * w32.c (sys_pipe): When failing due to file descriptors above
321 MAXDESC, set errno to EMFILE.
322 (_sys_read_ahead): Update cp->status when failing to read serial
323 communications input, so that the status doesn't stay at
324 STATUS_READ_IN_PROGRESS. (Bug#13546)
325
3262013-02-14 Jan Djärv <jan.h.d@swipnet.se>
327
328 * gtkutil.c (tb_size_cb): New function.
329 (xg_create_tool_bar): Connect size-allocate to tb_size_cb (Bug#13512).
330 2
3312013-02-14 Stefan Monnier <monnier@iro.umontreal.ca> 3 * frame.c (frame-alpha-lower-limit, frame-resize-pixelwise):
4 * window.c (window-resize-pixelwise): Doc fixes.
332 5
333 * keyboard.c (active_maps): Fcurrent_active_maps expects a position, not 6 * process.c (Finternal_default_process_filter)
334 an event. 7 (Finternal_default_process_sentinel): Doc tweaks.
335 8
3362013-02-13 Stefan Monnier <monnier@iro.umontreal.ca> 92014-02-21 Glenn Morris <rgm@gnu.org>
337
338 * keyboard.c (syms_of_keyboard): Further tweaks of docstring.
339
3402013-02-13 Dmitry Antipov <dmantipov@yandex.ru>
341
342 * font.c (font_range): Add pos_byte argument. Adjust comment
343 and break long line.
344 * font.h (font_range): Adjust prototype.
345 * composite.c (autocmp_chars): Pass byte position to font_range.
346 Break long line. Remove useless prototype and format comment.
347
3482013-02-13 Glenn Morris <rgm@gnu.org>
349
350 * keyboard.c (input-decode-map, key-translation-map): Doc fixes.
351
3522013-02-13 Paul Eggert <eggert@cs.ucla.edu>
353
354 Improve AIX port some more (Bug#13650).
355 With this, it should be as good as it was in 23.3, though it's
356 still pretty bad: the dumped emacs does not run. See Mark Fleishman in
357 http://lists.gnu.org/archive/html/help-gnu-emacs/2011-04/msg00287.html
358 * unexaix.c (start_of_text): Remove.
359 (_data, _text): Declare as char[], not int, as AIX manual suggests.
360 (bias, lnnoptr, text_scnptr, data_scnptr, load_scnptr)
361 (orig_load_scnptr, orig_data_scnptr):
362 Now off_t, not long, since they are file offsets.
363 (make_hdr): Use _data, not start_of_data ().
364 This is the key part of the fix.
365 (make_hdr, unrelocate_symbols): Use off_t for file offsets.
366 (unrelocate_symbols): Cast pointers to intptr_t, not to ulong.
367
368 * pre-crt0.c (data_start): Initialize to 1.
369 This ports to compilers that optimize the external declaration
370 'int x = 0;' as if it were 'int x;' to shrink the executable.
371
372 Improve AIX port (Bug#13650).
373 This doesn't fix the bug, but it makes progress: Emacs builds now.
374 * unexaix.c: Include inttypes.h, stdarg.h.
375 (report_error, report_error_1): Mark as _Noreturn.
376 (report_error): Don't report the wrong errno.
377 (report_error_1): Now varargs. All callers changed.
378 (make_hdr): Use uintptr_t, not unsigned, when converting pointers
379 to unsigned. Don't use ADDR_CORRECT, as it no longer exists.
380 (write_ptr): Use %p to print address rather than %lx and a cast
381 to unsigned long. Grow buffer a bit, to be safer.
382
3832013-02-13 Eli Zaretskii <eliz@gnu.org>
384
385 * bidi.c (bidi_resolve_neutral): After finding the next
386 non-neutral character, accept NEUTRAL_ON type as well, because
387 directional control characters, such as LRE and RLE, have their
388 type converted to that by bidi_resolve_weak. This avoids aborts
389 when LRE/RLE follows a run of neutrals.
390 (bidi_move_to_visually_next): Assert that return value of
391 bidi_peek_at_next_level is non-negative. Negative values will
392 cause an infloop.
393
3942013-02-13 Paul Eggert <eggert@cs.ucla.edu>
395
396 Minor getenv-related fixes.
397 * callproc.c (Fcall_process_region) [!DOS_NT]:
398 Avoid unnecessary duplicate call to getenv.
399 * callproc.c (init_callproc):
400 * dispnew.c (init_display):
401 * sysdep.c (sys_subshell):
402 Omit unnecessary cast of getenv or egetenv.
403
4042013-02-13 Juanma Barranquero <lekktu@gmail.com>
405
406 * makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/sysdep.$(O)):
407 Update dependencies.
408
4092013-02-12 Eli Zaretskii <eliz@gnu.org>
410
411 * xdisp.c (redisplay_internal): Don't set w->region_showing to the
412 marker's position.
413 (display_line): Set w->region_showing to the value of
414 it->region_beg_charpos, not to -1. This fixes redisplay
415 optimization when cursor is moved up after M->. (Bug#13623)
416 (Bug#13626)
417 (try_scrolling): Scroll text up more if point is too close to ZV
418 and inside the scroll margin. This makes sure point is moved
419 outside the scroll margin in these cases.
420
421 * window.h (struct window): region_showing can no longer be
422 negative.
423
4242013-02-11 Paul Eggert <eggert@cs.ucla.edu>
425
426 Tune by using memchr and memrchr.
427 * doc.c (Fsnarf_documentation):
428 * fileio.c (Fsubstitute_in_file_name):
429 * search.c (find_newline, scan_newline):
430 * xdisp.c (pos_visible_p, display_count_lines):
431 Use memchr and memrchr rather than scanning byte-by-byte.
432 * search.c (find_newline): Rename from scan_buffer.
433 Omit first arg TARGET, as it's always '\n'. All callers changed.
434
435 Clean up read_key_sequence a tiny bit more.
436 * keyboard.c (read_char_x_menu_prompt) [HAVE_MENUS]:
437 (read_key_sequence): Remove unused locals.
438
4392013-02-11 Stefan Monnier <monnier@iro.umontreal.ca>
440
441 Clean up read_key_sequence a bit; reread active keymaps after first event.
442 * keyboard.c (read_char, read_char_x_menu_prompt)
443 (read_char_minibuf_menu_prompt):
444 Replace nmaps+maps with a single `map' arg.
445 (follow_key): Operate on a single map.
446 (active_maps): New function.
447 (test_undefined): Also return true for nil bindings.
448 (read_key_sequence): Use active_maps to replace the arrays of keymaps with
449 a single (composed) keymap. Remember `first_event' to choose the right
450 set of active keymaps. Recompute the set of keymaps after receiving
451 the first event. Remove GOBBLE_FIRST_EVENT.
452 (syms_of_keyboard): Remove inhibit_local_menu_bar_menus.
453 * keyboard.h (read_char): Update declaration.
454 * lread.c (read_filtered_event): Adjust call to read_char.
455
4562013-02-11 Eli Zaretskii <eliz@gnu.org>
457
458 * xdisp.c (move_it_vertically_backward, move_it_by_lines):
459 Don't use the limitation on backwards movement when lines are truncated
460 in the window. (Bug#13675)
461
4622013-02-11 Dmitry Antipov <dmantipov@yandex.ru>
463
464 * marker.c (set_marker_internal): If desired position is passed
465 as a marker, avoid call to buf_charpos_to_bytepos.
466 * window.c (Fset_window_point): Omit redundant type checking.
467 (Fset_window_start): Likewise. Format comment.
468 (window_scroll_pixel_based): Use set_marker_restricted_both
469 with character and byte positions obtained from an iterator.
470 (Fset_window_configuration): Use set_marker_restricted_both.
471 * xdisp.c (message_dolog): Likewise.
472
4732013-02-10 Eli Zaretskii <eliz@gnu.org>
474
475 * xdisp.c (move_it_vertically_backward, move_it_by_lines):
476 When text lines are longer than window's screen lines, don't move back
477 too far. This speeds up some redisplay operations. (Bug#13675)
478
4792013-02-10 Dmitry Antipov <dmantipov@yandex.ru>
480
481 * syntax.c (scan_sexps_forward): Fix byte position calculation
482 Bug#13664 (a.k.a Bug#13667) introduced with 2013-02-08 change.
483
4842013-02-10 Paul Eggert <eggert@cs.ucla.edu>
485
486 * fileio.c (Fexpand_file_name): Omit confusing pointer comparison
487 that was not needed.
488
4892013-02-09 Paul Eggert <eggert@cs.ucla.edu>
490
491 Minor hashing refactoring.
492 * fns.c (SXHASH_REDUCE): Move to lisp.h.
493 (sxhash_float): Return EMACS_UINT, for consistency with the other
494 hash functions.
495 * lisp.h (INTMASK): Now a macro, since SXHASH_REDUCE is now a
496 non-static inline function and therefore can't use static vars.
497 (SXHASH_REDUCE): Move here from fns.c, and make it inline.
498 * profiler.c (hashfn_profiler): Use SXHASH_REDUCE, to be consistent
499 with the other hash functions.
500
5012013-02-09 Eli Zaretskii <eliz@gnu.org>
502
503 * callproc.c (Fcall_process_region) [WINDOWSNT]: Make sure the
504 XXXXXX part of the temporary file pattern is not downcased even
505 when w32-downcase-file-names is non-nil. (Bug#13661)
506
507 * xdisp.c (decode_mode_spec): Remove handling of %t.
508
509 * msdos.c (careadlinkatcwd): Remove.
510
5112013-02-08 Stefan Monnier <monnier@iro.umontreal.ca>
512
513 * lread.c (skip_dyn_bytes): New function (bug#12598).
514 (read1): Use it. Use getc instead of READCHAR to read bytes.
515 (load_each_byte): Remove. Update users.
516
5172013-02-08 Dmitry Antipov <dmantipov@yandex.ru>
518
519 * search.c (scan_buffer): Calculate end byte position just once.
520 (scan_newline): Do not recalculate start_byte.
521 (search_command): Use eassert.
522 * syntax.c (struct lisp_parse_state): New member location_byte.
523 (scan_sexps_forward): Record from_byte and avoid redundant
524 character to byte position calculation ...
525 (Fparse_partial_sexp): ... here. Break too long line.
526
5272013-02-08 Dmitry Antipov <dmantipov@yandex.ru>
528
529 * lisp.h (make_uninit_vector): New function.
530 * alloc.c (Fvector, Fmake_byte_code):
531 * ccl.c (Fregister_ccl_program):
532 * charset.c (Fdefine_charset_internal, define_charset_internal):
533 * coding.c (make_subsidiaries, Fdefine_coding_system_internal):
534 * composite.c (syms_of_composite):
535 * font.c (Fquery_font, Ffont_info, syms_of_font):
536 * fontset.c (FONT_DEF_NEW, Fset_fontset_font):
537 * ftfont.c (ftfont_shape_by_flt):
538 * indent.c (recompute_width_table):
539 * nsselect.m (clean_local_selection_data):
540 * syntax.c (init_syntax_once):
541 * w32unsubscribe.c (uniscribe_shape):
542 * window.c (Fcurrent_window_configuration):
543 * xfaces.c (Fx_family_fonts):
544 * xselect.c (selection_data_to_lisp_data): Use it.
545
5462013-02-07 Dmitry Antipov <dmantipov@yandex.ru>
547
548 * coding.c (Fdefine_coding_system_internal): Use AREF where
549 argument is known to be a vector.
550 * fns.c (Flocale_info): Likewise for ASET.
551 * xselect.c (selection_data_to_lisp_data): Likewise for ASET.
552 * w32fns.c (w32_parse_hot_key): Likewise for ASIZE and AREF.
553
5542013-02-05 Jan Djärv <jan.h.d@swipnet.se>
555
556 * nsmenu.m (update_frame_tool_bar): Check for negative tool bar
557 height.
558
559 * nsterm.h (HAVE_NATIVE_FS): Define if OSX => 10.7.
560 (EmacsView): Add fs_is_native, fsIsNative, isFullscreen and
561 updateCollectionBehaviour.
562
563 * nsterm.m (NEW_STYLE_FS): Remove.
564 (ns_last_use_native_fullscreen): New variable.
565 (x_make_frame_visible): Replace NEW_STYLE_FS with isFullscreen.
566 (x_set_window_size): Do not take title bar and tool bar into account
567 if isFullscreen returns YES.
568 (ns_fullscreen_hook): Replace NEW_STYLE_FS with isFullscreen.
569 (check_native_fs): New function.
570 (ns_select, ns_read_socket): Call check_native_fs if HAVE_NATIVE_FS.
571 (ns_term_init): Remove NEW_STYLE_FS.
572 (updateFrameSize:, windowWillResize:toSize:): Only adjust for title bar
573 and tool bar if isFullscreen returns NO.
574 (windowDidResize:): Replace NEW_STYLE_FS with fsIsNative.
575 (initFrameFromEmacs:): Initialize fs_is_native. Replace NEW_STYLE_FS
576 with HAVE_NATIVE_FS.
577 (window:willUseFullScreenPresentationOptions:): New method.
578 (windowDidEnterFullScreen:): Replace NEW_STYLE_FS with fsIsNative.
579 Hide toolbar if not enabled (Bug#13444).
580 (windowDidExitFullScreen:): Call updateCollectionBehaviour.
581 Restore tool bar if enabled, hide it otherwise (Bug#13444).
582 (fsIsNative, isFullscreen, updateCollectionBehaviour): New methods.
583 (toggleFullScreen:): If fs_is_native, call toggleFullScreen on
584 window. Do no set FRAME_EXTERNAL_TOOL_BAR (f) to 0.
585 Check FRAME_EXTERNAL_TOOL_BAR (f) before restoring
586 FRAME_TOOLBAR_HEIGHT (f). Call updateFrameSize when going non-fs.
587 (syms_of_nsterm): Add ns-use-native-fullscreen.
588
5892013-02-04 Paul Eggert <eggert@cs.ucla.edu>
590
591 * fileio.c (Qchoose_write_coding_system): Now static.
592
5932013-02-04 Eli Zaretskii <eliz@gnu.org>
594
595 * xdisp.c (window_buffer_changed): region_showing can be negative,
596 which still means region is being displayed.
597 (redisplay_internal): Resurrect code that forced redisplay of the
598 whole window when showing region and the mark has changed.
599 Record the new mark position to allow redisplay optimizations.
600 (display_line): If it->region_beg_charpos is non-zero, set the
601 window's region_showing member to -1. (Bug#13623) (Bug#13626)
602
603 * window.h (struct window) <region_showing>: Declare ptrdiff_t,
604 not bitfield of 1 bit.
605
6062013-02-03 Daniel Colascione <dancol@dancol.org>
607
608 * emacs.c: Use execvp, not execv, when DAEMON_MUST_EXEC, so that
609 daemon mode works on cygw32 when Emacs is installed and not just
610 during development.
611
6122013-02-02 Paul Eggert <eggert@cs.ucla.edu>
613
614 Avoid file time stamp bug on MS-Windows (Bug#13149).
615 * fileio.c (Fwrite_region): Don't use the heuristic on empty files,
616 as FAT32 doesn't update time stamps when truncating them.
617 Also, check that a file time stamp is not a multiple of 100 ns;
618 this should catch all instances of the problem on MS-Windows,
619 as its native file system resolution is 100 ns or worse, and
620 checking for a non-multiple of 100 ns should impose only a small
621 overhead on systems with ns resolution.
622
6232013-02-02 Eli Zaretskii <eliz@gnu.org>
624
625 Avoid encoding file names on MS-Windows when they need to be run
626 through dostounix_filename.
627 * w32.c (normalize_filename): Accept an additional argument
628 MULTIBYTE; if non-zero, traverse the file name by bytes and don't
629 downcase it even if w32-downcase-file-names is non-nil.
630 (dostounix_filename): Accept an additional argument MULTIBYTE and
631 pass it to normalize_filename.
632 (emacs_root_dir): Adjust.
633
634 * msdos.h (dostounix_filename): Adjust prototype.
635
636 * w32.h (dostounix_filename): Adjust prototype.
637
638 * msdos.c (dostounix_filename): Accept an additional argument and
639 ignore it.
640 (init_environment): Adjust callers of dostounix_filename.
641
642 * fileio.c (Ffile_name_directory, file_name_as_directory)
643 (directory_file_name, Fexpand_file_name)
644 (Fsubstitute_in_file_name): [DOS_NT] Adjust call to
645 dostounix_filename.
646 [WINDOWSNT]: Downcase file names if w32-downcase-file-names is
647 non-nil.
648 (Fsubstitute_in_file_name): [DOS_NT] Don't downcase environment
649 variables, as egetenv is case-insensitive for DOS_NT.
650
651 * dired.c (file_name_completion): Don't call Fdirectory_file_name
652 with an encoded file name.
653
654 * w32proc.c (Fw32_short_file_name, Fw32_long_file_name):
655 Adjust calls to dostounix_filename.
656
657 * w32fns.c (Fx_file_dialog): Adjust call to dostounix_filename.
658
659 * unexw32.c (unexec): Adjust call to dostounix_filename.
660
661 * termcap.c (tgetent) [MSDOS]: Adjust call to dostounix_filename.
662
663 * emacs.c (decode_env_path) [DOS_NT]: Adjust call to
664 dostounix_filename.
665
666 * callproc.c (Fcall_process) [MSDOS]: Adjust call to
667 dostounix_filename.
668 10
669 * callproc.c (Fcall_process): Make sure program name in PATH and 11 * process.c (Fprocess_buffer, Faccept_process_output)
670 new_argv[0] is encoded, if needed. Otherwise, un-encoded string 12 (Finternal_default_process_filter, Finternal_default_process_sentinel):
671 is passed to exec/spawnve, which fails unless the file-name 13 Doc fixes.
672 encoding is UTF-8.
673
674 * w32proc.c (sys_spawnve): Make sure escape_char is initialized,
675 even if w32-quote-process-args is nil.
676
6772013-02-01 Paul Eggert <eggert@cs.ucla.edu>
678
679 Fix timestamp bug when write-region appends nothing (Bug#13149).
680 * fileio.c (Fwrite_region): When neither O_EXCL nor O_TRUNC is used,
681 the file's time stamp doesn't change if Emacs happens to write nothing
682 to the file, and on a buggy file system this could cause Emacs to
683 incorrectly infer that the file system doesn't have the bug.
684 Avoid this problem by inhibiting the inference in this case.
685
6862013-02-01 Dmitry Antipov <dmantipov@yandex.ru>
687
688 * window.h (struct window): Convert base_line_number, base_line_pos
689 and column_number_displayed members from Lisp_Object to ptrdiff_t.
690 Convert region_showing member from Lisp_Object to bitfield.
691 Remove sequence_number member. Adjust comments.
692 * window.c (sequence_number): Remove.
693 (make_window): Initialize column_number_displayed.
694 * print.c (print_object): Follow the printed representation of
695 frames and print window pointer to distinguish between windows.
696 (adjust_window_count): Invalidate base_line_pos. Adjust comment.
697 * xdisp.c (wset_base_line_number, wset_base_line_pos)
698 (wset_column_number_displayed, wset_region_showing): Remove.
699 (window_buffer_changed, mode_line_update_needed, redisplay_internal)
700 (try_scrolling, try_cursor_movement, redisplay_window)
701 (try_window_reusing_current_matrix, try_window_id, display_line)
702 (display_mode_lines, decode_mode_spec): Adjust users.
703 * .gdbinit (pwinx): Do not print sequence_number.
704
7052013-02-01 Paul Eggert <eggert@cs.ucla.edu>
706
707 Use fdopendir, fstatat and readlinkat, for efficiency (Bug#13539).
708 * conf_post.h (GNULIB_SUPPORT_ONLY_AT_FDCWD): Remove.
709 * dired.c: Include <fcntl.h>.
710 (open_directory): New function, which uses open and fdopendir
711 rather than opendir. DOS_NT platforms still use opendir, though.
712 (directory_files_internal, file_name_completion): Use it.
713 (file_attributes): New function, with most of the old Ffile_attributes.
714 (directory_files_internal, Ffile_attributes): Use it.
715 (file_attributes, file_name_completion_stat): First arg is now fd,
716 not dir name. All uses changed. Use fstatat rather than lstat +
717 stat.
718 (file_attributes): Use emacs_readlinkat rather than Ffile_symlink_p.
719 * fileio.c: Include <allocator.h>, <careadlinkat.h>.
720 (emacs_readlinkat): New function, with much of the old
721 Ffile_symlink_p, but with an fd argument for speed.
722 It uses readlinkat rather than careadlinkatcwd, so that it
723 need not assume the working directory.
724 (Ffile_symlink_p): Use it.
725 * filelock.c (current_lock_owner): Use emacs_readlinkat
726 rather than emacs_readlink.
727 * lisp.h (emacs_readlinkat): New decl.
728 (READLINK_BUFSIZE, emacs_readlink): Remove.
729 * sysdep.c: Do not include <allocator.h>, <careadlinkat.h>.
730 (emacs_norealloc_allocator, emacs_readlink): Remove.
731 This stuff is moved to fileio.c.
732 * w32.c (fstatat, readlinkat): New functions.
733 (careadlinkat): Don't check that fd == AT_FDCWD.
734 (careadlinkatcwd): Remove; no longer needed.
735
7362013-01-31 Glenn Morris <rgm@gnu.org>
737
738 * fileio.c (choose_write_coding_system): Make it callable from Lisp.
739 (Fwrite_region): Update for new choose_write_coding_system args.
740 Move the last piece of choose_write_coding_system here. (Bug#13522)
741 (syms_of_fileio): Add choose-write-coding-system.
742
7432013-01-30 Eli Zaretskii <eliz@gnu.org>
744
745 * w32.c (sys_open): Zero out the flags for the new file descriptor.
746 (sys_close): Zero out the flags for the file descriptor before
747 closing it. (Bug#13546)
748
749 * w32.c (parse_root, get_volume_info, readdir, read_unc_volume)
750 (logon_network_drive, stat_worker, symlink, chase_symlinks):
751 Use CharNextExA and CharPrevExA to iterate over file names encoded in
752 DBCS. (Bug#13553)
753
754 * w32.c (w32_get_long_filename, init_environment, readlink):
755 Support file names encoded in DBCS codepages.
756 (readlink): Use the current file-name-coding-system, not the ANSI
757 codepage, to decode and handle targets of symlinks.
758
7592013-01-28 Eli Zaretskii <eliz@gnu.org>
760
761 * w32.c (opendir): Now accepts a 'const char *'.
762
7632013-01-28 Dmitry Antipov <dmantipov@yandex.ru>
764
765 Remove obsolete redisplay code. See the discussion at
766 http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00576.html.
767 * dispnew.c (preemption_period, preemption_next_check): Remove.
768 (Vredisplay_preemption_period): Likewise.
769 (update_frame, update_single_window, update_window, update_frame_1):
770 Adjust users. Always assume that PERIODIC_PREEMPTION_CHECKING is not
771 used, following the 2012-06-22 change.
772
7732013-01-25 Eli Zaretskii <eliz@gnu.org>
774
775 * w32notify.c (Fw32notify_add_watch): Doc fix. (Bug#13540)
776
7772013-01-25 Dmitry Antipov <dmantipov@yandex.ru>
778
779 * font.c (num_fonts): Remove the leftover from old
780 debugging code. Adjust comment style here and there.
781 * insdel.c (insert_1): Remove.
782 * lisp.h (insert_1): Remove prototype.
783 * xdisp.c (message_dolog): Adjust users to call insert_1_both.
784
7852013-01-25 Eli Zaretskii <eliz@gnu.org>
786
787 * w32.c (max_filename_mbslen): New function.
788 (normalize_filename, readdir): Use it to detect locales where ANSI
789 encoding of file names uses a double-byte character set (DBCS).
790 If a DBCS encoding is used, advance by characters using
791 CharNextExA, instead of incrementing a 'char *' pointer.
792 Use _mbslwr instead of _strlwr. (Bug#13515)
793
794 * w32heap.c (allocate_heap) [!_WIN64]: Decrease the initial
795 request of memory reservation to 1.7GB. (Bug#13065)
796
7972013-01-25 Andreas Schwab <schwab@linux-m68k.org>
798
799 * coding.c (detect_coding_iso_2022): Move back mis-reordered code
800 at check_extra_latin label. (Bug#13505)
801
8022013-01-24 Dmitry Antipov <dmantipov@yandex.ru>
803
804 * nsfont.m (ns_escape_name, ns_unescape_name, ns_registry_to_script):
805 Avoid redundant calls to strlen.
806
8072013-01-24 Dmitry Antipov <dmantipov@yandex.ru>
808
809 Drop async_visible and async_iconified fields of struct frame.
810 This is possible because async input is gone; for details, see
811 http://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00734.html.
812 * frame.h (struct frame): Remove async_visible and async_iconified
813 members, convert garbaged to unsigned bitfield. Adjust comments.
814 (FRAME_SAMPLE_VISIBILITY): Remove. Adjust all users.
815 (SET_FRAME_VISIBLE, SET_FRAME_ICONIFIED): New macros.
816 * frame.c, gtkutil.c, term.c, w32fns.c, window.c, xdisp.c:
817 Consistently use SET_FRAME_VISIBLE, SET_FRAME_ICONIFIED,
818 FRAME_VISIBLE_P and FRAME_ICONIFIED_P macros where appropriate.
819 * w32term.c: Ditto.
820 (w32_read_socket): Save iconified state to generate DEICONIFY_EVENT
821 properly. Likewise for obscured.
822 * xterm.c: Ditto.
823 (handle_one_xevent): Save visible state to generate ICONIFY_EVENT
824 properly.
825 * nsterm.m: Ditto.
826 (windowDidDeminiaturize): Generate DEICONIFY_EVENT.
827
8282013-01-24 Dmitry Antipov <dmantipov@yandex.ru>
829
830 * insdel.c (prepare_to_modify_buffer): Revert last change as suggested
831 in http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00555.html.
832
8332013-01-23 Stefan Monnier <monnier@iro.umontreal.ca>
834
835 * xdisp.c (message2, message2_nolog): Remove functions.
836 (message3, message3_nolog): Extract nbytes and multibyteness directly
837 from the string. Change all callers.
838 (message3_nolog): Don't set message_enable_multibyte since set_message
839 will reset it anyway.
840 (message1, message1_nolog): Use message3.
841 (vmessage): Use a stack allocated buffer rather than f->message_buf.
842 (with_echo_area_buffer): Remove last two arguments. Update all callers.
843 (set_message): Drop all but the second arg, which has to be a string.
844 (set_message_1): Simplify now that we know that a1 is NULL and the
845 second arg is a string.
846 * frame.h (struct frame): Remove `message_buf' field.
847 Use glyphs_initialized_p instead.
848 (FRAME_MESSAGE_BUF): Remove macro.
849 * w16select.c (Fw16_set_clipboard_data): Prefer message3 to message2.
850 * lisp.h (message2, message2_nolog): Remove declarations.
851 (message3, message3_nolog): Update declarations.
852 * keyboard.c (read_char_minibuf_menu_text)
853 (read_char_minibuf_menu_width): Remove vars.
854 (read_char_minibuf_menu_prompt): Rewrite the menu's construction so as
855 to correctly handle multibyte strings.
856 * frame.c (delete_frame): Don't free message_buf any more.
857 * editfns.c (message_text, message_length): Remove vars.
858 (Fmessage_box): Don't copy the Lisp string's bytes any longer.
859 * fileio.c (auto_save_error): Use message3 instead of message2.
860 * dispnew.c (adjust_frame_message_buffer): Remove function.
861
8622013-01-23 Eli Zaretskii <eliz@gnu.org>
863
864 * w32term.c (w32fullscreen_hook): Account correctly for the screen
865 real estate used for the tool bar and the menu bar.
866
8672013-01-23 Dmitry Antipov <dmantipov@yandex.ru>
868
869 * insdel.c (prepare_to_modify_buffer): Force redisplay if
870 hidden buffer is prepared to modification (Bug#13164).
871
8722013-01-22 Dmitry Antipov <dmantipov@yandex.ru>
873
874 * window.h (struct window): Change window_end_valid member from
875 Lisp_Object to a bitfield. Adjust comments.
876 (wset_window_end_valid): Remove.
877 * window.c (adjust_window_count): Clear window_end_valid.
878 (Fwindow_end): Adjust user. Remove ancient #if 0 code.
879 (Fwindow_line_height, set_window_buffer, Frecenter)
880 (Fsplit_window_internal, Fdelete_other_windows_internal)
881 (Fset_window_fringes, Fset_window_scroll_bars): Adjust users.
882 * dispnew.c (adjust_glyph_matrix, clear_window_matrices): Likewise.
883 * xdisp.c (check_window_end, reconsider_clip_changes)
884 (redisplay_internal, mark_window_display_accurate_1, redisplay_window)
885 (try_window, try_window_reusing_current_matrix, note_mouse_highlight)
886 (find_first_unchanged_at_end_row, try_window_id): Likewise.
887
8882013-01-22 Dmitry Antipov <dmantipov@yandex.ru>
889
890 * xdisp.c (mark_window_display_accurate): Simplify the loop
891 assuming that the only one of vchild, hchild or buffer window
892 slots is non-nil. Call mark_window_display_accurate_1 for
893 the leaf windows only.
894 (mark_window_display_accurate_1): Always assume leaf window.
895 Adjust comment.
896
8972013-01-22 Paul Eggert <eggert@cs.ucla.edu>
898
899 * emacs.c (Qkill_emacs_hook): Now static.
900
901 * fileio.c (Finsert_file_contents): Simplify.
902 Remove unnecessary assignments and tests.
903
9042013-01-21 Eli Zaretskii <eliz@gnu.org>
905
906 * w32.c (acl_set_file): Don't test for errors unless
907 set_file_security returns FALSE. Avoids spurious errors when
908 saving files.
909
9102013-01-21 Dmitry Antipov <dmantipov@yandex.ru>
911 14
912 * fileio.c (Finsert_file_contents): Revert code introduced at 152014-02-21 Martin Rudalics <rudalics@gmx.at>
913 2013-01-18 in favor of the simpler and generally better fix.
914 Save stack space by removing 'buffer' and reusing 'read_buf'
915 where appropriate.
916 16
9172013-01-19 Paul Eggert <eggert@cs.ucla.edu> 17 * window.c (Fwindow_scroll_bar_width): New function.
918 18
919 * lisp.h (eabs): Define unconditionally (Bug#13419). 192014-02-21 Paul Eggert <eggert@cs.ucla.edu>
920 The old "#if !defined (eabs)" was an unnecessary revenant of back
921 when this macro was called "abs". Document 'eabs' better.
922 20
9232013-01-19 Glenn Morris <rgm@gnu.org> 21 Pacify GCC when configuring with --enable-gcc-warnings.
924 22 * xdisp.c (move_it_in_display_line_to) [lint]:
925 * fns.c (Frandom): Doc fix. 23 Initialize recently-added local.
926
9272013-01-19 Eli Zaretskii <eliz@gnu.org>
928
929 * editfns.c (get_pos_property): Use SAFE_ALLOCA_LISP, to avoid
930 segfault when there are lots of overlays.
931
932 * buffer.c (sort_overlays): Use SAFE_NALLOCA, to avoid segfault
933 when there are lots of overlays.
934 See http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00421.html
935 for the details and a way to reproduce.
936 24
9372013-01-19 Paul Eggert <eggert@cs.ucla.edu> 252014-02-21 Daniel Colascione <dancol@dancol.org>
938 26
939 * fileio.c: Use O_APPEND to append. 27 * dbusbind.c: Rename dbus-init-bus to dbus-init-bus-1.
940 This corresponds better to the natural interpretation of "append",
941 and avoids the need to open the output file twice, or to invoke
942 lseek when APPEND is neither nil nor a number.
943 This relies on POSIX 1003.1-1988 or later, which is OK nowadays.
944 (Fwrite_region): Simplify. Use O_APPEND instead of opening the
945 file possibly twice, and lseeking to its end; this avoids the
946 need to lseek on non-regular files. Do not use O_EXCL and O_TRUNC
947 at the same time: the combination is never needed and apparently
948 it doesn't work with DOS_NT.
949
950 Fix size bug on DOS_NT introduced by CIFS workaround (Bug#13149).
951 * fileio.c (Fwrite_region): Use O_BINARY in checking code, too.
952
953 Allow floating-point file offsets.
954 Problem reported by Vitalie Spinu in
955 <http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00411.html>.
956 * fileio.c (emacs_lseek): Remove.
957 (file_offset): New function.
958 (Finsert_file_contents, Fwrite_region): Use it.
959
9602013-01-19 Chong Yidong <cyd@gnu.org>
961
962 * emacs.c (Fkill_emacs): Set waiting_for_input to 0 to avoid
963 aborting on Fsignal (Bug#13289).
964
9652013-01-19 Eli Zaretskii <eliz@gnu.org>
966
967 * w32.c (acl_set_file): Treat ERROR_ACCESS_DENIED from
968 set_file_security as failure due to insufficient privileges.
969 Reported by Fabrice Popineau <fabrice.popineau@supelec.fr>.
970 (fstat): Return owner and group like 'stat' and 'lstat' do.
971
9722013-01-19 Paul Eggert <eggert@cs.ucla.edu>
973
974 Work around bug in CIFS and vboxsf file systems (Bug#13149).
975 The bug was observed on Ubuntu operating inside a virtual machine,
976 editing files mounted via CIFS or vboxsf from the MS Windows 7 host.
977 The workaround introduces a race condition on non-buggy hosts,
978 but it's an unlikely race and anyway there's a nearly identical
979 nearby race that can't be fixed.
980 * fileio.c (valid_timestamp_file_system, timestamp_file_system):
981 New static vars.
982 (Fwrite_region): Test for file system time stamp bug.
983 (init_fileio): New function.
984 * lisp.h (init_fileio): Declare it.
985 * emacs.c (main): Call it.
986
987 * fileio.c (Finsert_file_contents): Simplify new diagnostic
988 and make it more consistent with other stat-failure diagnostics.
989
9902013-01-18 Dmitry Antipov <dmantipov@yandex.ru>
991
992 Fix crash when inserting data from non-regular files.
993 See http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00406.html
994 for the error description produced by valgrind.
995 * fileio.c (read_non_regular): Rename to read_contents.
996 Free Lisp_Save_Value object used to pass parameters.
997 (read_non_regular_quit): Rename to read_contents_quit.
998 (Finsert_file_contents): Redesign internal file reading loop to adjust
999 gap and end positions after each read and so help make_gap to work
1000 properly. Do not signal an I/O error too early and so do not leave
1001 not yet decoded characters in a buffer, which was the reason of
1002 redisplay crash. Use list2 to build return value. Adjust comments.
1003
10042013-01-17 Paul Eggert <eggert@cs.ucla.edu>
1005
1006 Close a race when statting and reading files (Bug#13149).
1007 * fileio.c (Finsert_file_contents): Use open+fstat, not stat+open.
1008 This avoids a race if the file is renamed between stat and open.
1009 This race is not the problem originally noted in Bug#13149;
1010 see <http://bugs.gnu.org/13149#73> and later messages in the thread.
1011
10122013-01-17 Dmitry Antipov <dmantipov@yandex.ru>
1013
1014 * lisp.h (toplevel): Add comment about using Lisp_Save_Value
1015 objects, related functions and macros.
1016 (make_save_value): Adjust prototype.
1017 (make_save_pointer): New prototype.
1018 (SAFE_NALLOCA): Fix indentation. Use make_save_pointer.
1019 (SAFE_ALLOCA_LISP): Adjust make_save_value usage.
1020 * alloc.c (format_save_value): Rename to make_save_value.
1021 (make_save_pointer): New function.
1022 (record_xmalloc): Use make_save_pointer.
1023 * dired.c, editfns.c, fileio.c, font.c, gtkutil.c, lread.c:
1024 * nsmenu.m, nsterm.m, xfns.c, xmenu.c, xselect.c, keymap.c:
1025 Change users of make_save_value to make_save_pointer.
1026 Likewise for format_save_value and make_save_value.
1027
10282013-01-17 Dmitry Antipov <dmantipov@yandex.ru>
1029
1030 * buffer.h (NARROWED, BUF_NARROWED): Drop unused macros.
1031 (DECODE_POSITION, BUFFER_CHECK_INDIRECTION): Fix indentation.
1032 * buffer.c (toplevel, syms_of_buffer): Drop old commented-out
1033 debugging stubs.
1034
10352013-01-15 Paul Eggert <eggert@cs.ucla.edu>
1036
1037 * alloc.c (free_save_value): Now static.
1038
10392013-01-15 Dmitry Antipov <dmantipov@yandex.ru>
1040
1041 * keymap.c (map_keymap_internal): Use format_save_value.
1042 (map_keymap_char_table_item): Adjust accordingly.
1043 * fileio.c (non_regular_fd, non_regular_inserted)
1044 (non_regular_nbytes): Remove.
1045 (Finsert_file_contents): Convert trytry to ptrdiff_t.
1046 Use format_save_value to pass parameters to read_non_regular.
1047 (read_non_regular): Use XSAVE_ macros to extract parameters.
1048 Adjust comment.
1049 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT && !USE_GTK]: Use
1050 format_save_value.
1051 (pop_down_menu) [!USE_X_TOOLKIT && !USE_GTK]: Adjust user.
1052
10532013-01-15 Dmitry Antipov <dmantipov@yandex.ru>
1054
1055 * lisp.h (XSAVE_POINTER, XSAVE_INTEGER): Change to allow
1056 extraction from any Lisp_Save_Value slot. Add type checking.
1057 * alloc.c, dired.c, editfns.c, fileio.c, ftfont.c, gtkutil.c:
1058 * keymap.c, lread.c, nsterm.h, nsmenu.c, xfns.c, xmenu.c:
1059 * xselect.c: All users changed.
1060
10612013-01-15 Dmitry Antipov <dmantipov@yandex.ru>
1062
1063 Some convenient bits to deal with Lisp_Save_Values.
1064 * lisp.h (XSAVE_OBJECT): New macro to extract saved objects.
1065 (allocate_misc): Remove prototype.
1066 (format_save_value): New prototype.
1067 * alloc.c (allocate_misc): Revert back to static.
1068 (format_save_value): New function to build Lisp_Save_Value
1069 object with the specified internal structure.
1070 (make_save_value): Reimplement using format_save_value.
1071 * editfns.c (save_excursion_save): Use format_save_value.
1072 (save_excursion_restore): Use XSAVE_OBJECT.
1073
10742013-01-14 Paul Eggert <eggert@cs.ucla.edu>
1075
1076 Avoid needless casts with XSAVE_POINTER.
1077 * alloc.c (mark_object) [GC_MARK_STACK]:
1078 * dired.c (directory_files_internal_unwind):
1079 * fileio.c (do_auto_save_unwind):
1080 * gtkutil.c (pop_down_dialog):
1081 * keymap.c (map_keymap_char_table_item):
1082 * lread.c (load_unwind):
1083 * nsmenu.m (pop_down_menu):
1084 * print.c (print_object) [GC_MARK_STACK]:
1085 * xfns.c (clean_up_file_dialog):
1086 * xmenu.c (cleanup_widget_value_tree):
1087 Omit casts between XSAVE_POINTER and a pointer type.
1088 28
10892013-01-14 Dmitry Antipov <dmantipov@yandex.ru> 292014-02-20 Eli Zaretskii <eliz@gnu.org>
1090 30
1091 Fix compilation with GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE. 31 * xdisp.c (init_iterator): Don't dereference a bogus face
1092 * eval.c (eval_sub): Protect `form' from being GCed before its 32 pointer. (Bug#16819)
1093 car and cdr becomes protected with the backtrace entry. 33 (try_cursor_movement): Don't use cursor position if
34 set_cursor_from_row failed to compute it. This avoids assertion
35 violations in MATRIX_ROW.
36 (move_it_in_display_line_to): Save the iterator state in ppos_it
37 only once per call. Reimplement the method used to return to the
38 best candidate position if all the positions found in display line
39 are beyond TO_CHARPOS. This cuts down the number of calls to
40 bidi_shelve_cache, which moves a lot of stuff when lines are long
41 and include bidirectional text. (Bug#15555)
1094 42
10952013-01-14 Dmitry Antipov <dmantipov@yandex.ru> 432014-02-20 Glenn Morris <rgm@gnu.org>
1096 44
1097 Make Lisp_Save_Value more versatile storage for up to four objects. 45 * data.c (Fdefalias): Doc fix.
1098 * lisp.h (toplevel): Enumeration to describe types of saved objects.
1099 (struct Lisp_Save_Value): New layout. Adjust comments.
1100 (XSAVE_POINTER): New macro.
1101 (XSAVE_INTEGER): Likewise.
1102 (allocate_misc): Add prototype.
1103 (free_misc): Likewise.
1104 * alloc.c (allocate_misc): Now global.
1105 (free_misc): Likewise. Adjust comment.
1106 (make_save_value): Use new Lisp_Save_Value layout. Adjust comment.
1107 (free_save_value): Likewise.
1108 (mark_object): Likewise.
1109 * editfns.c (save_excursion_save): Pack everything within
1110 Lisp_Save_Value and so avoid xmalloc.
1111 (save_excursion_restore): Adjust to match new layout. Use free_misc
1112 because we do not allocate extra memory any more. Add eassert.
1113 * print.c (print_object): New code to print Lisp_Save_Value. Do not
1114 rely on valid_lisp_object_p if !GC_MARK_STACK. Adjust comments.
1115 * dired.c, fileio.c, font.c, ftfont.c, gtkutil.c, keymap.c,
1116 * lread.c, nsmenu.m, nsterm.h, xfns.c, xmenu.c, xselect.c:
1117 Use XSAVE_POINTER and XSAVE_INTEGER where appropriate.
1118 46
11192013-01-13 Jan Djärv <jan.h.d@swipnet.se> 472014-02-19 Eli Zaretskii <eliz@gnu.org>
1120 48
1121 * nsfont.m (LCD_SMOOTHING_MARGIN): New define. 49 * xdisp.c (display_line): Fix horizontal scrolling of large images
1122 (nsfont_draw): Remove disabling of LCD smoothing. 50 when fringes are turned off. This comes at a price of not
1123 (ns_glyph_metrics): Add LCD_SMOOTHING_MARGIN to bearings to fix 51 displaying the truncation/continuation glyphs in this case.
1124 Bug#11484 with LCD smoothing on. 52 (Bug#16806)
1125 53
11262013-01-13 Paul Eggert <eggert@cs.ucla.edu> 54 * image.c (x_create_x_image_and_pixmap) [HAVE_NTGUI]: If
55 CreateDIBSection returns an error indication, zero out *ximg after
56 destroying the image. This avoids crashes in memory allocations
57 due to the fact that some of the callers also call
58 x_destroy_x_image, which will attempt to free an already free'd
59 block of memory.
1127 60
1128 Fix SIGDANGER handlers, for AIX (Bug#13408). 612014-02-18 Martin Rudalics <rudalics@gmx.at>
1129 * sysdep.c.c (handle_danger_signal, deliver_danger_signal) [SIGDANGER]:
1130 Move handlers here from emacs.c; they were out of place.
1131 62
11322013-01-11 Jan Djärv <jan.h.d@swipnet.se> 63 * widget.c (update_various_frame_slots): Don't set
64 FRAME_PIXEL_HEIGHT and FRAME_PIXEL_WIDTH here (Bug#16736).
1133 65
1134 * xterm.c (syms_of_xterm): Adjust documentation for 662014-02-18 Michael Albinus <michael.albinus@gmx.de>
1135 scroll-bar-adjust-thumb-portion.
1136 67
11372012-12-31 Adam Sjøgren <asjo@koldfront.dk> (tiny change) 68 * dbusbind.c (xd_close_bus): Apply proper check on busobj.
1138 69
1139 * xterm.c (scroll-bar-adjust-thumb-portion): New variable to 702014-02-17 Paul Eggert <eggert@cs.ucla.edu>
1140 determine whether scroll bar thumb size should be adjusted or
1141 not. Use variable for MOTIF.
1142 71
1143 * gtkutil.c (scroll-bar-adjust-thumb-portion): Use variable for 72 temacs --daemon fix (Bug#16599).
1144 GTK. 73 * emacs.c (main): Initialize daemon_pipe[1] here ...
74 (syms_of_emacs): ... instead of here.
1145 75
11462013-01-13 Jan Djärv <jan.h.d@swipnet.se> 762014-02-16 Anders Lindgern <andlind@gmail.com>
1147 77
1148 * nsterm.m (keyDown:): Set processingCompose to NO if an emacs key 78 * nsterm.m (keyDown:): Check for normal key even if NSNumericPadKeyMask
1149 event is generated. 79 is set (Bug#16505).
1150 (doCommandBySelector:): Set processingCompose to NO.
1151 80
1152 * nsfont.m (ns_findfonts): Add block/unblock_input calls. 812014-02-16 Daniel Colascione <dancol@dancol.org>
1153 Remove check for fkeys count > zero, block/unblock fixes the real bug.
1154 (nsfont_list_family): Add block/unblock_input calls.
1155 (nsfont_open): Move block_input earlier. Add unblock_input before early
1156 return.
1157 (nsfont_draw): Add block/unblock_input calls.
1158 82
11592013-01-12 Dmitry Antipov <dmantipov@yandex.ru> 83 * dbusbind.c (xd_lisp_dbus_to_dbus): New function.
84 (xd_get_connection_address): Use it.
85 (xd_close_bus): Use xd_lisp_dbus_to_dbus to instead of
86 xd_get_connection_address because the latter signals if the bus
87 we're trying to close is already disconnected.
1160 88
1161 * indent.c (Fvertical_motion): Remove now-incorrect GCPROs 892014-02-13 Eli Zaretskii <eliz@gnu.org>
1162 for old_charpos and old_bytepos.
1163 90
11642013-01-12 Paul Eggert <eggert@cs.ucla.edu> 91 * w32proc.c (start_timer_thread): Pass a non-NULL pointer as last
92 argument to CreateThread. This avoids segfaults on Windows 9X.
93 Reported by oslsachem <oslsachem@gmail.com>.
1165 94
1166 Fix bug with set-time-zone-rule and LOCALTIME_CACHE (Bug#13415). 952014-02-13 Paul Eggert <eggert@cs.ucla.edu>
1167 * editfns.c (set_time_zone_rule) [LOCALTIME_CACHE]:
1168 Clear tzvalbuf_in_environ if this workaround is in effect.
1169 Problem and fix reported by Kazuhiro Ito.
1170 96
11712013-01-11 Aaron S. Hawley <Aaron.Hawley@vtinfo.com> 97 Fix subspace record bug on HP-UX 10.20 (Bug#16717).
98 * unexhp9k800.c (unexec_error): New function, to simplify the code.
99 (check_lseek): New function, to report lseek errors.
100 (save_data_space, update_file_ptrs, read_header, write_header)
101 (copy_file, copy_rest, unexec): Use these news functions.
102 (update_file_ptrs): Don't assume wraparound behavior when
103 converting a large size_t value to off_t.
1172 104
1173 * insdel.c (Fcombine_after_change_execute, syms_of_insdel): 1052014-02-13 Dmitry Antipov <dmantipov@yandex.ru>
1174 Fix ambiguous doc string cross-reference(s).
1175 106
1176 * keyboard.c (Fcommand_execute, syms_of_keyboard): Fix ambiguous 107 * composite.c (fill_gstring_header): Pass positions as C integers
1177 doc string cross-reference(s). 108 and move parameters checking to...
109 (Fcomposition_get_gstring): ...this function. Handle case when
110 buffer positions are in reversed order and avoid crash (Bug#16739).
111 Adjust docstring.
112 * buffer.c (validate_region): Mention current buffer in error message.
1178 113
1179 * window.c (Fwindow_point, syms_of_window): Fix ambiguous doc 1142014-02-12 Marcus Karlsson <mk@acc.umu.se> (tiny change)
1180 string cross-reference(s).
1181 115
11822013-01-11 Dmitry Antipov <dmantipov@yandex.ru> 116 * image.c (pbm_load): Set to NO_PIXMAP on error (Bug#16683).
1183 117
1184 Avoid unnecessary byte position calculation for the gap movement. 1182014-02-12 Lars Ingebrigtsen <larsi@gnus.org>
1185 Since all users of move_gap do CHAR_TO_BYTE for other purposes
1186 anyway, all of them should use move_gap_both instead.
1187 * lisp.h (move_gap): Remove prototype.
1188 * insdel.c (move_gap): Remove.
1189 (move_gap_both): Add eassert.
1190 * editfns.c (Ftranspose_regions): Tweak to use move_gap_both.
1191 * xml.c (parse_region): Likewise.
1192 119
11932013-01-11 Paul Eggert <eggert@cs.ucla.edu> 120 * buffer.c (syms_of_buffer): Doc clarification (bug#9981).
1194 121
1195 emacsclient -t should not suspend Emacs server (Bug#13387) 1222014-02-11 Glenn Morris <rgm@gnu.org>
1196 * lisp.h, sysdep.c (block_tty_out_signal, unblock_tty_out_signal):
1197 New functions.
1198 * term.c (init_tty): Use them instead of rolling our own code.
1199 * sysdep.c (tcsetpgrp_without_stopping): Likewise. Here, this
1200 switches from 'signal' to 'pthread_sigmask', which is safer in
1201 multithreaded applications.
1202 * term.c (Fresume_tty): Don't bother dissociating if O_IGNORE_CTTY,
1203 which has already arranged for that.
1204 (dissociate_if_controlling_tty): If setsid fails, fall back on TIOCNOTTY.
1205 This is the main part of the bug fix.
1206
12072013-01-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> (tiny change)
1208
1209 * gtkutil.c (xg_initialize): Add ifdef HAVE_FREETYPE around
1210 x_last_font_name (Bug#13403).
1211
12122013-01-10 Dmitry Antipov <dmantipov@yandex.ru>
1213
1214 Omit buffer_slot_type_mismatch and use generic predicates to enforce
1215 the type of per-buffer values where appropriate.
1216 * lisp.h (struct Lisp_Buffer_Objfwd): Rename slottype member to
1217 predicate, which is how it's really used now. Adjust comment.
1218 * buffer.h (buffer_slot_type_mismatch): Remove prototype.
1219 * buffer.c (buffer_slot_type_mismatch): Remove.
1220 (DEFVAR_PER_BUFFER, defvar_per_buffer): Rename type argument to
1221 predicate. Adjust comment.
1222 (syms_of_buffer): Use Qsymbolp for major-mode. Use Qintegerp for
1223 fill-column, left-margin, tab-width, buffer-saved-size,
1224 left-margin-width, right-margin-width, left-fringe-width,
1225 right-fringe-width, scroll-bar-width and buffer-display-count.
1226 Use Qstringp for default-directory, buffer-file-name,
1227 buffer-file-truename and buffer-auto-save-file-name. Use Qfloatp for
1228 scroll-up-aggressively and scroll-down-aggressively. Use Qnumberp for
1229 line-spacing.
1230 * data.c (store_symval_forwarding): Adjust to call the predicate.
1231
12322013-01-09 Juanma Barranquero <lekktu@gmail.com>
1233
1234 * w32.c (get_name_and_id, acl_set_file):
1235 * w32term.c (w32fullscreen_hook): Remove unused local variables.
1236
12372013-01-09 Dmitry Antipov <dmantipov@yandex.ru>
1238
1239 * lisp.h (make_gap_1): New prototype.
1240 * buffer.h (GAP_BYTES_DFL, GAP_BYTES_MIN): New macros for the special
1241 gap size values.
1242 * editfns.c (Fbuffer_size): Rename from Fbufsize to fit the common
1243 naming convention.
1244 (syms_of_editfns): Adjust defsubr. Drop commented-out obsolete code.
1245 * insdel.c (make_gap_larger): Use GAP_BYTES_DFL. Adjust comment.
1246 (make_gap_smaller): Use GAP_BYTES_MIN. Adjust comment.
1247 (make_gap_1): New function to adjust the gap of any buffer.
1248 * coding.c (coding_alloc_by_making_gap): Use it.
1249 * buffer.c (compact_buffer): Likewise. Use BUF_Z_BYTE, BUF_GAP_SIZE,
1250 GAP_BYTES_DFL and GAP_BYTES_MIN. Adjust comment.
1251
12522013-01-08 Juri Linkov <juri@jurta.org>
1253
1254 * xfaces.c (tty_supports_face_attributes_p): Return 0 for the case
1255 of (supports :underline (:style wave)). (Bug#13000)
1256
12572013-01-08 Aaron S. Hawley <aaron.s.hawley@gmail.com>
1258
1259 * undo.c (Fprimitive_undo): Move to simple.el.
1260 (syms_of_undo): Remove declarations for Sprimitive_undo.
1261
12622013-01-08 Stefan Monnier <monnier@iro.umontreal.ca>
1263
1264 * keyboard.c (echo_add_key): Rename from echo_add_char.
1265
12662013-01-06 Chong Yidong <cyd@gnu.org>
1267
1268 * keyboard.c (echo_add_char): New function, factored out from
1269 echo_char. Don't add a space if the previous echo string was
1270 empty (Bug#13255).
1271 (echo_char): Use it.
1272 (read_key_sequence): When echoing mock input, ensure that the
1273 trailing dash is properly added.
1274
12752013-01-05 Eli Zaretskii <eliz@gnu.org>
1276
1277 * xdisp.c (dump_glyph): Align glyph data better. Use "pD" instead
1278 of a non-portable "t" to print ptrdiff_t values. Allow up to 9
1279 digits for buffer positions, before misalignment starts.
1280 Display "0" for integer "object" field.
1281 (dump_glyph_row): Adapt the header line to changes in dump_glyph.
1282 Display the newline glyph more unambiguously.
1283
12842013-01-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
1285
1286 * nsterm.m (ns_draw_underwave):
1287 * w32term.c (w32_draw_underwave):
1288 * xterm.c (x_draw_underwave): Make underwave look more triangular
1289 and also degrade gracefully for small fonts. (Bug#13000)
1290
1291 * nsterm.m (ns_draw_text_decoration):
1292 * w32term.c (x_draw_glyph_string):
1293 * xterm.c (x_draw_glyph_string): Don't use previous underline
1294 thickness and position if previous underline type is underwave.
1295 123
12962013-01-04 Stefan Monnier <monnier@iro.umontreal.ca> 124 * nsfns.m (ns_display_info_for_name, Fx_open_connection):
125 Replace refs to "OpenStep" in messages.
1297 126
1298 * fileio.c (Ffile_acl): Undocument return format. 1272014-02-10 Paul Eggert <eggert@cs.ucla.edu>
1299 128
13002013-01-02 Glenn Morris <rgm@gnu.org> 129 Avoid "." at end of error diagnostics.
1301 130 * cmds.c (Fself_insert_command): Reword and avoid "." at end.
1302 * keymap.c (Fkey_description): Doc fix. (Bug#13323) 131 * font.c (Ffont_at):
1303 132 * nsfns.m (ns_display_info_for_name):
13042013-01-02 Paul Eggert <eggert@cs.ucla.edu> 133 * nsselect.m (Fx_own_selection_internal):
1305 134 * nsterm.m (performDragOperation:):
1306 Simplify via eabs. 135 Remove "." from end of diagnostic.
1307 * dired.c (file_name_completion):
1308 * doc.c (get_doc_string):
1309 * floatfns.c (round2):
1310 * font.c (font_score, font_delete_unmatched):
1311 * fringe.c (compute_fringe_widths):
1312 * lread.c (read_list):
1313 * minibuf.c (Ftry_completion):
1314 * term.c (tty_ins_del_lines):
1315 * xterm.c (x_draw_image_foreground, x_draw_image_foreground_1):
1316 Use eabs (x) rather than open-coding it as (x < 0 ? -x : x).
1317
13182012-12-31 Eli Zaretskii <eliz@gnu.org>
1319
1320 * w32.c (unsetenv): Set up the string passed to _putenv
1321 correctly.
1322 See http://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00863.html
1323 for the bug this caused.
1324
13252012-12-30 Paul Eggert <eggert@cs.ucla.edu>
1326
1327 * coding.c (Qmac): Now static.
1328
13292012-12-30 Jan Djärv <jan.h.d@swipnet.se>
1330
1331 * gtkutil.c (TOOLBAR_TOP_WIDGET): New macro.
1332 (xg_pack_tool_bar): Use TOOLBAR_TOP_WIDGET, condition out use of
1333 handlebox_widget. Set toolbar_in_hbox to false/true, set
1334 toolbar_is_packed to true.
1335 (xg_update_tool_bar_sizes): Use widget returned by TOOLBAR_TOP_WIDGET.
1336 (update_frame_tool_bar): Check toolbar_is_packed for packing.
1337 Show all on TOOLBAR_TOP_WIDGET.
1338 (free_frame_tool_bar): Check toolbar_is_packed. Use widget returned
1339 by TOOLBAR_TOP_WIDGET.
1340 (xg_change_toolbar_position): Use widget returned by TOOLBAR_TOP_WIDGET.
1341 Check toolbar_is_packed.
1342 (xg_have_tear_offs, tearoff_remove, tearoff_activate): Condition on
1343 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
1344 (xg_have_tear_offs): When ! HAVE_GTK_TEAROFF_MENU_ITEM_NEW, return
1345 false.
1346 (create_menus): Create tearoff only if HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
1347 (xg_update_menubar): Update title only if
1348 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
1349 (xg_update_submenu): Skip tearoff only if
1350 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
1351 (xg_initialize): Initialize xg_detached_menus only if
1352 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
1353
1354 * xterm.h (struct x_output): Surround handlebox_widget with
1355 #ifdef HAVE_GTK_HANDLE_BOX_NEW. toolbar_is_packed is new,
1356 toolbar_in_hbox is bool.
1357
13582012-12-30 Andreas Schwab <schwab@linux-m68k.org>
1359
1360 * src/Makefile.in (TEMACS_LDFLAGS2): Remove.
1361 (LIBS_GNUSTEP): Define.
1362 (LIBES): Add $(LIBS_GNUSTEP).
1363 (temacs$(EXEEXT)): Use $(LDFLAGS) instead of $(TEMACS_LDFLAGS2).
1364
13652012-12-30 Eli Zaretskii <eliz@gnu.org>
1366
1367 * xdisp.c (set_cursor_from_row): Don't confuse a truncation or
1368 continuation glyph on a TTY with an indication of an empty line.
1369 (Bug#13277)
1370
13712012-12-29 Eli Zaretskii <eliz@gnu.org>
1372
1373 * fileio.c (Fset_file_selinux_context, Fset_file_acl): Return t if
1374 file's SELinux context or ACLs successfully set, nil otherwise.
1375 (Bug#13298)
1376 (Fcopy_file) [WINDOWSNT]: Improve diagnostics when CopyFile fails.
1377
1378 * w32proc.c (reader_thread): Avoid passing NULL handles to
1379 SetEvent and WaitForSingleObject.
1380
13812012-12-28 Paul Eggert <eggert@cs.ucla.edu>
1382
1383 Port EXTERNALLY_VISIBLE to Clang 3.2.
1384 * conf_post.h (__has_attribute): New macro.
1385 (EXTERNALLY_VISIBLE): Use it. This ports to Clang 3.2.
1386
13872012-12-27 Glenn Morris <rgm@gnu.org>
1388
1389 * cygw32.c (Fcygwin_convert_file_name_to_windows)
1390 (Fcygwin_convert_file_name_from_windows): Doc fixes.
1391
13922012-12-27 Eli Zaretskii <eliz@gnu.org>
1393
1394 * fileio.c (file_name_as_directory, directory_file_name):
1395 Accept an additional argument MULTIBYTE to indicate whether the input C
1396 came from a multibyte or a unibyte Lisp string; all callers
1397 adjusted. Don't assume the input string is always multibyte.
1398 (Bug#13262)
1399 (Ffile_name_directory) [DOS_NT]: Handle unibyte strings correctly:
1400 don't ENCODE_FILE them, and return a unibyte string if the input
1401 was unibyte.
1402 (Fexpand_file_name): Don't mix unibyte with multibyte strings, and
1403 don't assume the input strings will always be multibyte. If the
1404 input strings are multibyte, decode strings obtained from C
1405 library functions.
1406
14072012-12-26 Dmitry Antipov <dmantipov@yandex.ru>
1408
1409 * lisp.h (toplevel): Add two notices to the comment about
1410 defining a new Lisp data type.
1411 * print.c (print_object): If Lisp_Save_Value object's pointer
1412 is the address of a memory area containing Lisp_Objects, try
1413 to print them.
1414 * alloc.c (valid_lisp_object_p): Adjust comment.
1415
14162012-12-26 Dmitry Antipov <dmantipov@yandex.ru>
1417
1418 * keyboard.c (record_asynch_buffer_change): Initialize an event
1419 only if it's really needed.
1420 * frame.h (enum output_method): Remove output_mac member since
1421 it's a leftover from the deleted code.
1422 * frame.c (Fframep): Adjust user here ...
1423 * terminal.c (Fterminal_live_p): ... and here.
1424 * coding.c (Qmac): Now here because it's only used to denote
1425 end-of-line encoding type.
1426 (syms_of_coding): DEFSYM it.
1427 * frame.h (Qmac): Remove duplicated declaration.
1428
14292012-12-26 Paul Eggert <eggert@cs.ucla.edu>
1430
1431 * window.c (select_window_1): Now static, since it's used only here.
1432
14332012-12-25 Eli Zaretskii <eliz@gnu.org>
1434
1435 * window.c (window_body_cols): Subtract display margins from the
1436 window body width on TTYs as well. See
1437 http://lists.gnu.org/archive/html/help-gnu-emacs/2012-12/msg00317.html
1438 for the original report.
1439
14402012-12-25 Dmitry Antipov <dmantipov@yandex.ru>
1441
1442 * xdisp.c (redisplay_window): Remove inner local variable
1443 because the outer shadowed one has the same meaning.
1444 * xterm.h (struct x_output): Remove toolbar_detached member since it's
1445 set but never used.
1446 * gtkutil.c (xg_tool_bar_detach_callback, xg_tool_bar_attach_callback)
1447 (xg_create_tool_bar): Adjust users.
1448
14492012-12-24 Dmitry Antipov <dmantipov@yandex.ru>
1450 136
1451 * buffer.h (BUF_COMPACT): New macro to follow the common style. 1372014-02-10 Lars Ingebrigtsen <larsi@gnus.org>
1452 * buffer.c (Fget_buffer_create): Use it to set compact field of
1453 struct buffer_text to avoid accessing an uninitialized value
1454 when compact_buffer is called for the first time.
1455 (compact_buffer): Use convenient BUF_COMPACT and BUF_MODIFF.
1456 (Fset_buffer_modified_p): Use buffer_window_count to check
1457 whether the buffer is displayed in some window.
1458 * xdisp.c (message_dolog): Likewise.
1459 138
14602012-12-23 Eli Zaretskii <eliz@gnu.org> 139 * fns.c (Fmaphash): Say what `maphash' returns, since it may be
1461 140 unintuitive (bug#15824).
1462 * w32.c (acl_set_file): If setting the file security descriptor 141 (Fyes_or_no_p): Doc fix (bug#15456).
1463 fails, and the new DACL is identical to the existing one, silently
1464 return success. This fixes problems for users backing up their
1465 own files without having the necessary privileges for setting
1466 security descriptors.
1467
1468 * w32proc.c (reader_thread): Do not index fd_info[] with negative
1469 values.
1470 (reader_thread): Exit when cp->status becomes STATUS_READ_ERROR
1471 after WaitForSingleObject returns normally. This expedites reader
1472 thread shutdown when delete_child triggers it.
1473 (reap_subprocess): More accurate commentary for why we call
1474 delete_child only when cp->fd is negative.
1475 142
1476 * w32.c (sys_close): Do not call delete_child on a subprocess 1432014-02-10 Dmitry Antipov <dmantipov@yandex.ru>
1477 whose handle is not yet closed. Instead, set its file descriptor
1478 to a negative value, so that reap_subprocess will call
1479 delete_child on that subprocess when its SIGCHLD arrives.
1480 This avoids closing handles used for communications between sys_select
1481 and reader_thread, which doesn't give sys_select a chance to
1482 notice that the process exited and invoke the SIGCHLD handler for
1483 it.
1484 144
14852012-12-23 Jan Djärv <jan.h.d@swipnet.se> 145 * cmds.c (Fself_insert_command): Respect the width of EMACS_INT
146 and avoid warning.
147 * eval.c (call_debugger): When exiting the debugger, do not allow
148 max_specpdl_size less than actual binding depth (Bug#16603).
149 (syms_of_eval): Adjust docstring.
1486 150
1487 * nsfns.m (Fns_do_applescript): Run event loop until script has 1512014-02-09 Lars Ingebrigtsen <larsi@gnus.org>
1488 been executed (Bug#12969).
1489 (ns_run_ascript): Chech as_script for nil, set to nil after
1490 executing script.
1491 152
14922012-12-22 Martin Rudalics <rudalics@gmx.at> 153 * cmds.c (Fself_insert_command): Output a clearer error message on
154 negative repetitions (bug#9476).
1493 155
1494 * window.c (Fselect_window): Reword doc-string (Bug#13248). 156 * macros.c (Fexecute_kbd_macro): Doc fix (bug#14206).
1495 157
14962012-12-22 Eli Zaretskii <eliz@gnu.org> 1582014-02-08 Lars Ingebrigtsen <larsi@gnus.org>
1497 159
1498 * w32term.c (w32fullscreen_hook): New function. 160 * syntax.c (Fskip_syntax_backward): Doc clarification (bug#15115).
1499 (w32_create_terminal): Plug it into the terminal's fullscreen_hook.
1500 161
15012012-12-21 Eli Zaretskii <eliz@gnu.org> 162 * minibuf.c (Fread_string): Doc clarification (bug#15422).
1502 163
1503 * fileio.c (Finsert_file_contents): Doc fix. 164 * buffer.c (Fmake_overlay): Doc clarification (bug#15489).
1504 165
1505 * w32proc.c (new_child, delete_child, find_child_pid): For a 1662014-02-08 Juanma Barranquero <lekktu@gmail.com>
1506 subprocess, consider its slot being in use as long as its process
1507 handle (procinfo.hProcess) is not NULL. This avoids reusing the
1508 slot when a new process is started immediately after killing
1509 another one, without waiting enough time for the first process to
1510 be reaped and resources allocated for it be orderly freed.
1511 (Bug#13086)
1512 Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
1513 167
15142012-12-21 Chong Yidong <cyd@gnu.org> 168 * keyboard.c (Frecursive_edit): Fix typo in docstring.
1515 169
1516 * buffer.c (Fset_buffer_major_mode): Doc fix (Bug#13231). 1702014-02-08 Lars Ingebrigtsen <larsi@gnus.org>
1517 171
1518 * fns.c (Fcompare_strings): Doc fix (Bug#13081). 172 * xdisp.c (syms_of_xdisp): Doc clarification (bug#15657).
1519 173
15202012-12-21 Eli Zaretskii <eliz@gnu.org> 174 * keyboard.c (Frecursive_edit): Say more precicely how throwing
175 `exit' works (bug#15865).
1521 176
1522 * w32.c (get_name_and_id): Always pass NULL as the first argument 1772014-02-07 Martin Rudalics <rudalics@gmx.at>
1523 of lookup_account_sid. Avoids crashes with UNC file names that
1524 refer to DFS domains, not to specific machine names. (Bug#12621)
1525 Remove now unused argument FNAME; all callers changed.
1526 (get_file_owner_and_group): Remove now unused argument FNAME; all
1527 callers changed.
1528 178
15292012-12-21 Chong Yidong <cyd@gnu.org> 179 Constrain window box/body sizes and margin widths (Bug#16649).
180 * xdisp.c (window_box_width): Don't return less than zero.
181 (window_box_left_offset, window_box_right_offset): Don't return
182 more than the window's pixel width.
183 * window.c (window_body_height, window_body_width): Don't return
184 negative value.
185 (window_resize_apply): Adjust margin width, if necessary.
1530 186
1531 * editfns.c (Finsert_char): Since read-char-by-name now signals an 1872014-02-07 Glenn Morris <rgm@gnu.org>
1532 error for invalid chars, don't check for a nil return value.
1533 188
15342012-12-20 Dmitry Antipov <dmantipov@yandex.ru> 189 * nsterm.m (syms_of_nsterm): Doc fix.
1535 190
1536 Avoid calls to CHAR_TO_BYTE if byte position is known. 1912014-02-06 Eli Zaretskii <eliz@gnu.org>
1537 * editfns.c (make_buffer_string_both): Use move_gap_both.
1538 (Fbuffer_string): Use make_buffer_string_both.
1539 * marker.c (buf_charpos_to_bytepos): Convert to eassert.
1540 Adjust comment.
1541 (buf_bytepos_to_charpos): Likewise.
1542 (charpos_to_bytepos): Remove.
1543 * fileio.c (Finsert_file_contents): Use move_gap_both.
1544 * search.c (Freplace_match): Likewise.
1545 * process.c (process_send_region): Likewise. Use convenient
1546 names for byte positions.
1547 * lisp.h (charpos_to_bytepos): Remove prototype.
1548 * indent.c (scan_for_column): Use CHAR_TO_BYTE.
1549 * insdel.c (move_gap): Likewise.
1550 192
15512012-12-20 Paul Eggert <eggert@cs.ucla.edu> 193 * w32.c (pMultiByteToWideChar, pWideCharToMultiByte): New
194 variables: pointers through which to call the respective APIs.
195 (filename_to_utf16, filename_from_utf16, filename_to_ansi)
196 (filename_from_ansi, sys_link, check_windows_init_file): Call
197 MultiByteToWideChar and WideCharToMultiByte through pointers.
198 This is required on Windows 9X, where we dynamically load
199 UNICOWS.DLL which has their non-stub implementations.
200 (maybe_load_unicows_dll): Assign addresses to these 2 function
201 pointers after loading UNICOWS.DLL.
1552 202
1553 * xdisp.c (redisplay_internal): Remove now-unused local. 203 * w32fns.c (Fx_file_dialog, Fw32_shell_execute) [!CYGWIN]: Call
204 MultiByteToWideChar and WideCharToMultiByte through function
205 pointers.
1554 206
15552012-12-20 Stefan Monnier <monnier@iro.umontreal.ca> 207 * w32.h (pMultiByteToWideChar, pWideCharToMultiByte): New
208 declarations.
1556 209
1557 * xdisp.c (select_frame_for_redisplay, ensure_selected_frame): Remove. 2102014-02-06 Jan Djärv <jan.h.d@swipnet.se>
1558 (redisplay_internal): Don't bother selecting the frame to get the
1559 proper value of frame-local variables (bug#13225).
1560 211
15612012-12-20 Dmitry Antipov <dmantipov@yandex.ru> 212 * nsterm.m (toggleFullScreen:): Hide menubar on secondary monitor
213 for OSX >= 10.9 if separate spaces are used.
214 (toggleFullScreen:): Use screen of w instead of fw (Bug#16659).
1562 215
1563 * textprop.c (set_text_properties_1): Do not allow NULL interval. 2162014-02-06 Glenn Morris <rgm@gnu.org>
1564 Rename 4th argument since it may be buffer or string. Adjust comment.
1565 * intervals.c (graft_intervals_info_buffer): Find an interval here.
1566 217
15672012-12-19 Dmitry Antipov <dmantipov@yandex.ru> 218 * buffer.c (cache-long-scans): Doc fix.
1568 219
1569 * coding.c (Fdetect_coding_region): Do not check start and end with 2202014-02-05 Eli Zaretskii <eliz@gnu.org>
1570 CHECK_NUMBER_COERCE_MARKER since validate_region does that itself.
1571 (code_convert_region): Likewise.
1572 221
15732012-12-18 Eli Zaretskii <eliz@gnu.org> 222 * w32fns.c (Fw32_shell_execute): Doc fix.
1574 223
1575 * w32.c (acl_get_file, acl_set_file): Run the file name through 2242014-02-05 Bastien Guerry <bzg@gnu.org>
1576 map_w32_filename, and resolve any symlinks in the file name, like
1577 Posix platforms do.
1578 (acl_set_file): Call revert_to_self, if any privileges were
1579 enabled.
1580 225
15812012-12-17 Juanma Barranquero <lekktu@gmail.com> 226 * syntax.c (Fforward_word): Call Fconstrain_to_field with
227 ESCAPE-FROM-EDGE set to `nil' (Bug#16453).
1582 228
1583 * makefile.w32-in ($(BLD)/editfns.$(O), $(BLD)/fileio.$(O)) 2292014-02-05 Martin Rudalics <rudalics@gmx.at>
1584 ($(BLD)/w32.$(O)): Update dependencies.
1585 230
15862012-12-17 Stefan Monnier <monnier@iro.umontreal.ca> 231 * fringe.c (draw_fringe_bitmap_1): Don't draw a fringe if it's
232 outside the window (Bug#16649).
1587 233
1588 * xdisp.c (select_frame_for_redisplay): Use select_window_1 to 234 * xdisp.c (note_mouse_highlight): When entering a margin area show
1589 propagate redisplay's scrolling (if any) to the right window. 235 a non-text cursor (Bug#16647).
1590 (redisplay_internal): Use ensure_selected_frame.
1591 (display_mode_lines): Complete last fix.
1592 * window.c (select_window_1): New func, extracted from select_window.
1593 (select_window): Use it.
1594 * window.h (select_window_1): Declare.
1595 236
15962012-12-17 Eli Zaretskii <eliz@gnu.org> 2372014-02-04 Paul Eggert <eggert@cs.ucla.edu>
1597 238
1598 Emulate Posix ACL APIs on MS-Windows. 239 * menu.c (Fx_popup_dialog): Remove label 'dialog_via_menu'.
1599 * w32.c: Include sddl.h and sys/acl.h. 240 It prompted a compile-time diagnostic on GNU/Linux.
1600 (SDDL_REVISION_1): Define if not already defined. 241 Simplify to remove the need for the label.
1601 (g_b_init_get_security_descriptor_dacl)
1602 (g_b_init_convert_sd_to_sddl, g_b_init_convert_sddl_to_sd)
1603 (g_b_init_is_valid_security_descriptor)
1604 (g_b_init_set_file_security): New static flags.
1605 (globals_of_w32): Initialize them to zero.
1606 (SetFileSecurity_Name): New string constant.
1607 (SetFileSecurity_Proc, GetSecurityDescriptorDacl_Proc)
1608 (ConvertStringSecurityDescriptorToSecurityDescriptor_Proc)
1609 (ConvertSecurityDescriptorToStringSecurityDescriptor_Proc)
1610 (IsValidSecurityDescriptor_Proc): New typedefs.
1611 (get_file_security, get_security_descriptor_owner)
1612 (get_security_descriptor_group): Set errno to ENOTSUP.
1613 (set_file_security, get_security_descriptor_dacl)
1614 (is_valid_security_descriptor, convert_sd_to_sddl)
1615 (convert_sddl_to_sd, acl_valid, acl_to_text, acl_from_text)
1616 (acl_free, acl_get_file, acl_set_file): New functions.
1617
1618 * fileio.c (Fcopy_file) [WINDOWSNT]: Support copying ACLs.
1619
16202012-12-17 Paul Eggert <eggert@cs.ucla.edu>
1621
1622 Don't reraise SIGCHLD, as that can now lose (Bug#13192).
1623 With the 2012-12-03 fix for Bug#12980 in place, an old workaround
1624 for some of that bug's symptoms can now cause Emacs to abort.
1625 Remove the workaround.
1626 * process.c (wait_reading_process_output): Don't reraise SIGCHLD.
1627 The bug that caused SIGCHLD to get lost has been fixed, and the
1628 workaround for it can now cause Emacs to abort.
1629
16302012-12-16 Paul Eggert <eggert@cs.ucla.edu>
1631
1632 * sysdep.c (emacs_abort): Bump backtrace size to 40.
1633 Companion to the 2012-09-30 patch. Suggested by Eli Zaretskii in
1634 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00796.html>.
1635
16362012-12-16 Romain Francoise <romain@orebokech.com>
1637
1638 * fileio.c (Ffile_acl, Fset_file_acl): New functions.
1639 (Fcopy_file): Change last arg to `preserve_extended_attributes'
1640 and copy ACL entries of file in addition to SELinux context if set.
1641 (syms_of_fileio): Add `file-acl' and `set-file-acl'.
1642
1643 * Makefile.in (LIBACL_LIBS): New macro.
1644 (LIBES): Use it.
1645 242
16462012-12-15 Paul Eggert <eggert@cs.ucla.edu> 2432014-02-04 Eli Zaretskii <eliz@gnu.org>
1647 244
1648 * fileio.c (internal_delete_file): Use bool for boolean. 245 * w32menu.c (w32_popup_dialog): Don't condition the whole function
246 on HAVE_DIALOGS. If the dialog is "simple", pop up a message box
247 to show it; otherwise return 'unsupported--w32-dialog' to signal
248 to the caller that emulation with menus is necessary. This
249 resurrects code inadvertently deleted by the 2013-10-08 commit.
250 (Bug#16636)
251 (syms_of_w32menu): DEFSYM Qunsupported__w32_dialog.
1649 252
16502012-12-15 Eli Zaretskii <eliz@gnu.org> 253 * w32term.h (w32_popup_dialog): Prototype is no longer conditioned
254 by HAVE_DIALOGS.
1651 255
1652 Fix bug #13079 on MS-Windows with temp files not being deleted. 256 * menu.c (Fx_popup_dialog): Don't condition the call to
1653 * w32.h (_child_process): New members input_file and 257 w32_popup_dialog on HAVE_DIALOGS. If w32_popup_dialog returns a
1654 pending_deletion. 258 special symbol 'unsupported--w32-dialog', emulate the dialog with
1655 (register_child): First argument is now pid_t. 259 a menu by calling x-popup-menu.
1656 (record_infile, record_pending_deletion): New prototypes.
1657 260
1658 * w32proc.c (new_child): Initialize input_file and 261 * menu.h (Qunsupported__w32_dialog): New extern variable.
1659 pending_deletion members of the child.
1660 (delete_child): Delete the child's temporary input file, if any,
1661 that is pending deletion.
1662 (register_child): First argument is now pid_t.
1663 (record_infile, record_pending_deletion): New functions.
1664 (reap_subprocess): Fix a typo in DebPrint string.
1665 (sys_spawnve, sys_kill): Use pid_t for PID arguments.
1666 262
1667 * fileio.c (internal_delete_file): Return an int again: non-zero 2632014-02-04 Michael Albinus <michael.albinus@gmx.de>
1668 if delete-file succeeds, zero otherwise.
1669 264
1670 * lisp.h (internal_delete_file): Adjust prototype. 265 * keyboard.c (kbd_buffer_get_event): Read file notification events
266 also in batch mode.
1671 267
1672 * callproc.c (Fcall_process): Don't overwrite infile with result 268 * xgselect.c (xg_select): Read glib events in any case, even if
1673 of DECODE_FILE. 269 there are no file descriptors to watch for. (Bug#16519)
1674 [WINDOWSNT] If BUFFER is an integer, i.e. we are launching an
1675 asynchronous subprocess, record the name of the input file name,
1676 if any.
1677 (delete_temp_file) [WINDOWSNT]: If internal_delete_file fails to
1678 delete the file, record it as pending deletion when the subprocess
1679 exits.
1680 270
16812012-12-14 Eli Zaretskii <eliz@gnu.org> 2712014-02-03 Martin Rudalics <rudalics@gmx.at>
1682 272
1683 * editfns.c [HAVE_PWD_H]: Include grp.h. 273 * dispextern.h (face_id): Add WINDOW_DIVIDER_FIRST_PIXEL_FACE_ID
274 and WINDOW_DIVIDER_LAST_PIXEL_FACE_ID.
275 * w32term.c (w32_draw_window_divider): Handle first and last
276 pixels specially.
277 * w32term.h (w32_fill_area_abs): New function.
278 * xdisp.c (x_draw_right_divider): Don't draw over bottom
279 divider.
280 * xfaces.c (realize_basic_faces): Handle new face ids.
281 * xfns.c (Fx_create_frame): Call x_default_parameter for right
282 and bottom divider width.
283 * xterm.c (x_draw_window_divider): Handle first and last pixels
284 specially.
1684 285
1685 * makefile.w32-in ($(BLD)/editfns.$(O)): Add $(NT_INC)/grp.h. 2862014-02-03 Dmitry Antipov <dmantipov@yandex.ru>
1686 287
16872012-12-14 Paul Eggert <eggert@cs.ucla.edu> 288 * print.c (Fexternal_debugging_output): Add cast to pacify
289 --enable-gcc-warnings.
290 * eval.c (call_debugger): Grow specpdl if the debugger was
291 entered due to specpdl overflow (Bug#16603) and allow more
292 specpdl space for the debugger itself.
1688 293
1689 Fix permissions bugs with setgid directories etc. (Bug#13125) 2942014-02-02 Martin Rudalics <rudalics@gmx.at>
1690 * dired.c (Ffile_attributes): Return t as the 9th attribute,
1691 to mark it as a placeholder. The old value was often wrong.
1692 The only user of this attribute has been changed to use
1693 file-ownership-preserved-p instead, with its new group arg.
1694 * editfns.c (Fgroup_gid, Fgroup_real_gid): New functions.
1695 295
16962012-12-14 Stefan Monnier <monnier@iro.umontreal.ca> 296 * w32fns.c (Fx_create_frame): Process frame alpha earlier.
297 (Bug#16619)
1697 298
1698 * xdisp.c (select_frame_for_redisplay, display_mode_lines): 2992014-02-01 Eli Zaretskii <eliz@gnu.org>
1699 Keep selected_window and selected_frame in sync.
1700 300
17012012-12-14 Eli Zaretskii <eliz@gnu.org> 301 * w32fns.c (Ffile_system_info): Use WINAPI in the function
302 pointers that get the address of GetDiskFreeSpaceEx. (Bug#16615)
1702 303
1703 * w32.c (stat_worker): If w32_stat_get_owner_group is zero, do not 304 * print.c (Fexternal_debugging_output): If the argument character
1704 try to get accurate owner and group information from NT file 305 is non-ASCII, encode it with the current locale's encoding before
1705 security APIs. This is to make most callers of 'stat' and 306 writing the result to the terminal. (Bug#16448)
1706 'lstat', which don't need that information, much faster.
1707 307
1708 * dired.c (Ffile_attributes) [WINDOWSNT]: 308 * w32fns.c (Fw32_shell_execute): Don't call file-exists-p for
1709 Set w32_stat_get_owner_group to a non-zero value, to request accurate 309 DOCUMENT that is a "remote" file name, i.e. a file-handler exists
1710 owner and group information from 'lstat'. 310 for it. (Bug#16558)
1711 311
17122012-12-13 Paul Eggert <eggert@cs.ucla.edu> 3122014-01-30 Andreas Schwab <schwab@linux-m68k.org>
1713 313
1714 * fileio.c (Finsert_file_contents): Don't put tail into head area, 314 * process.c (create_process): Reset SIGPROF handler in the child.
1715 as that confuses set-auto-coding, so insist on the head-read 315 * callproc.c (call_process): Likewise.
1716 returning the full 1024 bytes. Let lseek compute the tail offset;
1717 less work for us. Do not ignore I/O errors when reading the tail.
1718 316
1719 * xdisp.c: Minor style fixes. 3172014-01-29 Paul Eggert <eggert@cs.ucla.edu>
1720 (init_iterator): Hoist assignment out of if-expression.
1721 (markpos_of_region): Callers now test for sign, not for -1.
1722 318
17232012-12-13 Dmitry Antipov <dmantipov@yandex.ru> 319 * xmenu.c (create_and_show_popup_menu): Port comment to C89.
1724 320
1725 Minor redisplay optimization when the region length is zero. 3212014-01-29 Eli Zaretskii <eliz@gnu.org>
1726 * xdisp.c (markpos_of_region): New function.
1727 (init_iterator): Do not highlight the region of zero length.
1728 (redisplay_window): Check whether the region is of non-zero length.
1729 (try_cursor_movement): Allow if the region length is zero.
1730 (try_window_reusing_current_matrix, try_window_id): Likewise.
1731 322
17322012-12-13 Eli Zaretskii <eliz@gnu.org> 323 * .gdbinit (xprintstr, xprintbytestr): Don't use repetition count
324 of zero to print strings, GDB doesn't like it.
1733 325
1734 * search.c (search_buffer): Check the inverse translations of each 326 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE, not
1735 character in pattern when the buffer being searched is unibyte. 327 STRING_CHAR_AND_LENGTH, so that if the string is relocated by GC,
1736 (Bug#13084) 328 we still use correct addresses. (Bug#16576)
1737 329
17382012-12-13 Paul Eggert <eggert@cs.ucla.edu> 3302014-01-27 K. Handa <handa@gnu.org>
1739 331
1740 * fileio.c (Fvisited_file_modtime): Return (-1 ...) for nonexistent 332 Fix bug#16286 by a different method from 2014-01-26T00:32:30Z!eggert@cs.ucla.edu,
1741 files, fixing a regression from 24.2. 333 to preserve the code detection behavior of 24.3.
1742 (Fverify_visited_file_modtime): Don't read uninitialized st.st_size. 334 * coding.h (struct coding_system): New member detected_utf8_bytes.
335 * coding.c (detect_coding_utf_8): Set coding->detected_utf8_bytes.
336 (decode_coding_gap): Use short cut for UTF-8 file reading only
337 when coding->detected_utf8_bytes equals to coding->src_bytes.
338 * fileio.c (Finsert_file_contents): Cancel the previous change.
1743 339
17442012-12-13 Paul Eggert <eggert@cs.ucla.edu> 3402014-01-29 Martin Rudalics <rudalics@gmx.at>
1745 341
1746 * fileio.c (Fcopy_file): Make fstat failure as serious as open failure. 342 * w32fns.c (x_set_tool_bar_lines): Don't clear area on frames
1747 fstat shouldn't fail, and if it does fail copy-file should not proceed. 343 that are not visible.
1748 Remove unnecessary S_ISLNK test, as (contra the comments) this
1749 function can't copy symlinks. Improve quality of error message
1750 when attempting to copy files that are neither regular files nor
1751 directories.
1752 344
17532012-12-12 Dmitry Antipov <dmantipov@yandex.ru> 3452014-01-29 Jan Drv <jan.h.d@swipnet.se>
1754 346
1755 * dispnew.c (set_window_cursor_after_update): Use clip_to_bounds. 347 * xmenu.c (create_and_show_popup_menu): Handle case when no key
1756 * gtkutil.c (xg_set_toolkit_scroll_bar_thumb): 348 is grabbed (Bug#16565).
1757 * window.c (Frecenter):
1758 * xdisp.c (resize_mini_window, hscroll_window_tree, draw_glyphs):
1759 * xterm.c (x_set_toolkit_scroll_bar_thumb): Likewise.
1760 349
17612012-12-12 Daniel Colascione <dancol@dancol.org> 3502014-01-28 Martin Rudalics <rudalics@gmx.at>
1762 351
1763 * unexcw.c (fixup_executable): Use posix_fallocate to ensure that 352 * xdisp.c (last_max_ascent): Re-remove after erroneously
1764 the dumped Emacs is not a sparse file, greatly improving Cygwin 353 reintroducing it on 2013-11-30 and abolishing Dmitry's removal
1765 "make bootstrap" performance. 354 from 2013-03-29.
355 (move_it_to): Re-remove reference to last_max_ascent.
356 (Fwindow_text_pixel_size): Add iterator's max_ascent and
357 max_descent here instead of calling line_bottom_y. Fix
358 doc-string.
1766 359
17672012-12-11 Michael Albinus <michael.albinus@gmx.de> 3602014-01-28 Dmitry Antipov <dmantipov@yandex.ru>
1768 361
1769 * inotify.c (inotify_callback): Generate an Emacs event for every 362 * terminal.c (initial_free_frame_resources): New function.
1770 incoming inotify event. 363 (init_initial_terminal): Install new hook to free face cache
364 on initial frame and avoid memory leak. For details, see
365 <http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg01974.html>.
366 * xfaces.c (free_frame_faces): Adjust comment.
1771 367
17722012-12-11 Eli Zaretskii <eliz@gnu.org> 3682014-01-26 Paul Eggert <eggert@cs.ucla.edu>
1773 369
1774 * xdisp.c (handle_face_prop): Fix logic of computing 370 * data.c (Fstring_to_number): Document results if unparsable
1775 it->start_of_box_run_p. 371 (Bug#16551).
1776 (append_space_for_newline): If the glyph row is R2L, reset the
1777 iterator's end_of_box_run_p flag before prepending the space glyph.
1778 (extend_face_to_end_of_line): If the glyph row is R2L, reset the
1779 iterator's start_of_box_run_p flag before prepending the stretch.
1780 (append_glyph, produce_image_glyph, append_composite_glyph)
1781 (append_stretch_glyph, append_glyphless_glyph): Reverse the
1782 left_box_line_p and right_box_line_p flags of the glyph for R2L
1783 glyph rows. (Bug#13011)
1784 372
17852012-12-11 Dmitry Antipov <dmantipov@yandex.ru> 3732014-01-26 Jan Drv <jan.h.d@swipnet.se>
1786 374
1787 * buffer.c (Fset_buffer_multibyte): Do not force redisplay 375 * xterm.c (x_focus_changed): Check for non-X terminal-frame (Bug#16540)
1788 if changed buffer is not shown in a window.
1789 * insdel.c (prepare_to_modify_buffer): Likewise.
1790 * window.c (replace_buffer_in_windows_safely): Do nothing
1791 if buffer is not shown in a window.
1792 (Fforce_window_update): Likewise if string or buffer argument
1793 is passed.
1794 376
17952012-12-11 Eli Zaretskii <eliz@gnu.org> 3772014-01-26 Paul Eggert <eggert@cs.ucla.edu>
1796 378
1797 * inotify.c (Finotify_add_watch): Rename decoded_file_name to 379 When decoding, prefer ptrdiff_t to int for buffer positions etc.
1798 encoded_file_name, which is what it is. 380 * coding.c (detect_coding_utf_8, emacs_mule_char)
381 (detect_coding_iso_2022, encode_coding_iso_2022, check_ascii)
382 (check_utf_8, decode_coding):
383 * coding.h (struct coding_system.errors):
384 Use ptrdiff_t, not int, for integer values derived from buffer and
385 string positions.
1799 386
18002012-12-11 Dmitry Antipov <dmantipov@yandex.ru> 387 Fix crash with insert-file-contents and misdecoded text (Bug#16286).
388 * fileio.c (Finsert_file_contents): Set CODING_MODE_LAST_BLOCK
389 before invoking decode_coding_gap, since there's just one block.
1801 390
1802 Consistently use marker_position and marker_byte_position. 3912014-01-25 Martin Rudalics <rudalics@gmx.at>
1803 * fringe.c (Ffringe_bitmaps_at_pos):
1804 * indent.c (Fvertical_motion):
1805 * insdel.c (prepare_to_modify_buffer):
1806 * keyboard.c (make_lispy_position):
1807 * window.c (Fwindow_end, Fpos_visible_in_window_p, unshow_buffer)
1808 (window_scroll_pixel_based, displayed_window_lines)
1809 (Fset_window_configuration):
1810 * xdisp.c (message_dolog, with_echo_area_buffer_unwind_data)
1811 (mark_window_display_accurate_1, redisplay_window, decode_mode_spec):
1812 Replace direct access to marker fields with calls
1813 to marker_position and/or marker_byte_position.
1814 392
18152012-12-11 Juanma Barranquero <lekktu@gmail.com> 393 Fix handling of face attributes in Fx_create_frame (Bug#16529).
394 * w32fns.c (Fx_create_frame): Don't inhibit running Lisp code
395 too early. Again run change_frame_size before assigning menu-
396 and tool-bar-lines.
1816 397
1817 * makefile.w32-in (SIG2STR_H): New macro. 3982014-01-25 Fabrice Popineau <fabrice.popineau@gmail.com>
1818 (SYSWAIT_H, $(BLD)/emacs.$(O), $(BLD)/process.$(O))
1819 ($(BLD)/w32notify.$(O)): Update dependencies.
1820 399
18212012-12-10 Daniel Colascione <dancol@dancol.org> 400 * w32term.c (w32_read_socket): When the WM_DISPLAYCHANGE message
401 arrives, call x_check_fullscreen, in case the new display has a
402 different resolution. (Bug#16517)
1822 403
1823 * w32term.c, keyboard.c: Fix build break in cygw32 by omitting 4042014-01-25 Eli Zaretskii <eliz@gnu.org>
1824 Windows file notification functionality unless WINDOWSNT.
1825 405
1826 * w32gui.h (hprevinst, lpCmdLine, nCmdShow): Remove unused 406 * term.c (read_menu_input): If the selected frame changes, exit
1827 declarations. 407 the menu.
408 (tty_menu_show): If the selected frame changes while we displayed
409 a menu, throw to top level. (Bug#16479)
1828 410
1829 * w32fns.c (cache_system_info): Initialize the global hinst 4112014-01-25 Stefan Monnier <monnier@iro.umontreal.ca>
1830 variable here so various initialization calls DTRT.
1831 412
1832 * unexw32.c (hprevinst, lpCmdLine, nCmdShow): Remove unused variables. 413 * eval.c (Fsignal): Fix `debug' handling to match 2013-10-03 change.
1833 (hinst): Remove unneeded extern declaration.
1834 (_start): Remove initialization of above variables; remove
1835 initialization of hinst, as cache_system_info now does that.
1836 414
1837 * emacs.c (main): Call cache_system_info early in startup; we 4152014-01-24 Paul Eggert <eggert@cs.ucla.edu>
1838 previously weren't calling it in Cygwin builds.
1839 416
1840 * Makefile.in (ntsource, WINDRES, W32_RES, W#@_RES_LINK): 417 Fix bool-vector-count-population bug on MinGW64 (Bug#16535).
1841 Teach the autoconf build system how to compile a Windows resource file 418 * data.c (count_one_bits_word): Fix bug (negated comparison)
1842 and link it to Emacs. 419 when BITS_PER_ULL < BITS_PER_BITS_WORD.
1843 420
18442012-12-10 Dmitry Antipov <dmantipov@yandex.ru> 4212014-01-24 Dmitry Antipov <dmantipov@yandex.ru>
1845 422
1846 Per-buffer window counters. 423 * xdisp.c (reseat_1, Fcurrent_bidi_paragraph_direction): Avoid
1847 * buffer.h (struct buffer): New member window_count. 424 undefined behavior by initializing display property bit of a
1848 (buffer_window_count): New function. 425 string processed by the bidirectional iterator. For details, see
1849 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): 426 <http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg01920.html>.
1850 Initialize window_count.
1851 (Fkill_buffer): Verify window_count for the buffer being killed.
1852 (modify_overlay): Do not force redisplay if buffer is not shown
1853 in any window.
1854 (init_buffer_once): Initialize window_count for buffer_defaults
1855 and buffer_local_symbols.
1856 * window.h (buffer_shared): Remove declaration.
1857 (wset_buffer): Convert from inline ...
1858 * window.c (wset_buffer): ... to an ordinary function.
1859 (adjust_window_count): New function.
1860 (make_parent_window): Use it.
1861 * xdisp.c (buffer_shared): Remove.
1862 (redisplay_internal, redisplay_window): Adjust users.
1863 (buffer_shared_and_changed): Use per-buffer window counter.
1864
18652012-12-10 Eli Zaretskii <eliz@gnu.org>
1866
1867 Support for filesystem notifications on MS-Windows.
1868 * w32proc.c (sys_select): If drain_message_queue returns non-zero,
1869 and this is a TTY frame, signal the caller that keyboard input is
1870 available.
1871
1872 * w32xfns.c (drain_message_queue): Now returns an int: an
1873 indication whether any WM_EMACS_FILENOTIFY messages were found in
1874 the queue.
1875
1876 * w32inevt.c (handle_file_notifications): New function.
1877 (w32_console_read_socket): Call it to process file notifications.
1878
1879 * w32console.c (initialize_w32_display): Record the main thread ID
1880 in dwMainThreadId.
1881
1882 * deps.mk (inotify.o): New dependency list.
1883
1884 * Makefile.in (SOME_MACHINE_OBJECTS): Add w32notify.o.
1885
1886 * w32term.h (WM_EMACS_FILENOTIFY): New custom message.
1887 (WM_EMACS_END): Bump value by 1.
1888 (notification_buffer_in_use, file_notifications)
1889 (notifications_size, notifications_desc): Declare.
1890 (w32_get_watch_object, lispy_file_action, globals_of_w32notify):
1891 Add prototypes.
1892 427
1893 * w32term.c (lispy_file_action, queue_notifications): New functions. 4282014-01-23 Paul Eggert <eggert@cs.ucla.edu>
1894 (syms_of_w32term) <Qadded, Qremoved, Qmodified, Qrenamed_from>
1895 <Qrenamed_to>: New symbols.
1896 (w32_read_socket): Handle the WM_EMACS_FILENOTIFY message.
1897 429
1898 * w32notify.c: New file, implements file event notifications for 430 Minor cleanup of previous change.
1899 MS-Windows. 431 * image.c (imagemagick_error, Fimagemagick_types):
432 Omit some recently-introduced and unnecessary casts and assignments.
1900 433
1901 * w32fns.c (w32_wnd_proc): Handle the WM_EMACS_FILENOTIFY message 4342014-01-23 Dmitry Antipov <dmantipov@yandex.ru>
1902 by posting it to the w32_read_socket queue.
1903 435
1904 * termhooks.h (enum event_kind) [HAVE_NTGUI]: Support FILE_NOTIFY_EVENT. 436 Fix two memory leaks discovered with Valgrind.
437 * ftfont.c (ftfont_list) [HAVE_LIBOTF]: Call OTF_close.
438 * image.c (Fimagemagick_types): Call MagickRelinquishMemory.
1905 439
1906 * makefile.w32-in (OBJ2): Add $(BLD)/w32notify.$(O). 4402014-01-22 Martin Rudalics <rudalics@gmx.at>
1907 (GLOBAL_SOURCES): Add w32notify.c
1908 ($(BLD)/w32notify.$(O)): New set of dependencies.
1909 441
1910 * lisp.h (syms_of_w32notify) [WINDOWSNT]: Add prototype. 442 Fixes in window size functions around Bug#16430 and Bug#16470.
443 * window.c (Fwindow_pixel_width, Fwindow_pixel_height)
444 (Fwindow_mode_line_height, Fwindow_header_line_height)
445 (Fwindow_right_divider_width, Fwindow_bottom_divider_width):
446 Minor doc-string adjustments.
447 (Fwindow_total_height, Fwindow_total_width): New argument ROUND.
448 Rewrite doc-strings.
449 (window_body_height, window_body_width): Do not count partially
450 visible lines/columns when PIXELWISE is nil (Bug#16470).
451 (Qfloor, Qceiling): New symbols.
1911 452
1912 * keyboard.c (kbd_buffer_get_event) [WINDOWSNT]: 4532014-01-21 Eli Zaretskii <eliz@gnu.org>
1913 Handle FILE_NOTIFY_EVENT.
1914 (syms_of_keyboard) [HAVE_NTGUI] <Qfile_notify>: New symbol.
1915 (keys_of_keyboard) [WINDOWSNT]: Bind file-notify to
1916 w32notify-handle-event by default.
1917 454
1918 * emacs.c (main) [WINDOWSNT]: Call globals_of_w32notify and 455 * w32fns.c (unwind_create_frame): Avoid crashing inside assertion
1919 syms_of_w32notify. 456 when the image cache is not yet allocated. (Bug#16509)
1920 457
19212012-12-10 Rüdiger Sonderfeld <ruediger@c-plusplus.de> 4582014-01-21 Dmitry Antipov <dmantipov@yandex.ru>
1922 459
1923 Support for filesystem notifications on GNU/Linux via inotify. 460 * buffer.c (Fkill_buffer): When killing an indirect buffer,
1924 * termhooks.h (enum event_kind) [HAVE_INOTIFY]: Add FILE_NOTIFY_EVENT. 461 re-attach intervals to its base buffer (Bug#16502).
462 * intervals.c (set_interval_object): Move from here...
463 * intervals.h (set_interval_object): ... to here. Fix comments.
1925 464
1926 * lisp.h (syms_of_inotify) [HAVE_INOTIFY]: Add prototype. 4652014-01-20 Paul Eggert <eggert@cs.ucla.edu>
1927 466
1928 * keyboard.c (Qfile_inotify) [HAVE_INOTIFY]: New variable. 467 Avoid undefined behavior by initializing buffer redisplay bit.
1929 (syms_of_keyboard): DEFSYM it. 468 Problem reported by Dmitry Antipov in
1930 (kbd_buffer_get_event) [HAVE_INOTIFY]: Generate FILE_NOTIFY_EVENT. 469 <http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg01756.html>.
1931 (make_lispy_event): Support FILE_NOTIFY_EVENT by generating 470 * buffer.c (Fget_buffer_create): Initialize redisplay bit.
1932 Qfile_inotify events.
1933 (keys_of_keyboard) [HAVE_INOTIFY]: Bind file-inotify events in
1934 special-event-map to inotify-handle-event.
1935 471
1936 * emacs.c (main) [HAVE_INOTIFY]: Call syms_of_inotify. 472 Revert some of the CANNOT_DUMP fix (Bug#16494).
473 * lread.c (init_lread): Fix typo: NILP, not !NILP.
1937 474
1938 * Makefile.in (base_obj): Add inotify.o. 4752014-01-19 Eli Zaretskii <eliz@gnu.org>
1939 476
1940 * inotify.c: New file. 477 * w32font.c (w32_load_unicows_or_gdi32, get_outline_metrics_w)
478 (get_text_metrics_w, get_glyph_outline_w, get_char_width_32_w)
479 [!WINDOWSNT]: These functions are no longer compiled on Cygwin;
480 they are replaced by macros that expand into direct calls to the
481 corresponding functions from GDI32.DLL.
482 (globals_of_w32font) [WINDOWSNT]: Don't initialize g_b_* static
483 variables in the Cygwin build, they are unused.
1941 484
19422012-12-10 Jan Djärv <jan.h.d@swipnet.se> 4852014-01-19 K. Handa <handa@gnu.org>
1943 486
1944 * nsterm.m (fd_handler:): FD_ZERO fds (Bug#13103). 487 * composite.c (composition_update_it): Fix previous change.
1945 488
19462012-12-10 Fabrice Popineau <fabrice.popineau@gmail.com> 4892014-01-18 Eli Zaretskii <eliz@gnu.org>
1947 490
1948 * w32fns.c (cache_system_info): Cast sysinfo_cache.dwPageSize to 491 Fix file name handling on MS-Windows 9X.
1949 DWORD_PTR, for compatibility with 64-bit builds. 492 * w32.c (maybe_load_unicows_dll): New function.
1950 493
1951 * w32.c (_PROCESS_MEMORY_COUNTERS_EX): 494 * emacs.c (main) [WINDOWSNT]: Call maybe_load_unicows_dll early
1952 (GetProcessWorkingSetSize_Proc, get_process_working_set_size) 495 on, to make sure we can convert file names to and from UTF-8 on
1953 (system_process_attributes): Use SIZE_T rather than DWORD, for 496 Windows 9X. This fixes a failure to start up because Emacs cannot
1954 compatibility with 64-bit builds. 497 find term/w32-win.el. Reported by oslsachem <oslsachem@gmail.com>.
1955 498
19562012-12-10 Christopher Schmidt <christopher@ch.ristopher.com> 499 * w32font.c [WINDOWSNT]: Include w32.h.
500 (w32_load_unicows_or_gdi32): Call maybe_load_unicows_dll, instead
501 of implementing the same stuff.
502 Remove now unused g_b_init_is_windows_9x.
1957 503
1958 * lread.c (Vload_source_file_function): Doc fix (Bug#11647). 504 * w32.h (maybe_load_unicows_dll): Add prototype.
1959 505
19602012-12-10 Eli Zaretskii <eliz@gnu.org> 5062014-01-17 Eli Zaretskii <eliz@gnu.org>
1961 507
1962 * indent.c (Fvertical_motion): If a display string will be 508 * menu.c (Fx_popup_menu): When invoking tty_menu_show, temporarily
1963 displayed on the left or the right margin, don't consider it as a 509 switch to single keyboard. Prevents daemon crashes when a new
1964 factor in cursor positioning. (Bug#13108) 510 client connects while we show a TTY menu in an existing client.
511 (Bug#16479)
1965 512
19662012-12-10 Martin Rudalics <rudalics@gmx.at> 5132014-01-14 Paul Eggert <eggert@cs.ucla.edu>
1967 514
1968 * editfns.c (Fcompare_buffer_substrings): Reword doc-string. 515 Fix MinGW64 porting problem with _setjmp.
516 Reported by Eli Zaretskii in:
517 http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg01297.html
518 * image.c (FAST_SETJMP, FAST_LONGJMP): New macros, replacing
519 the old _setjmp and _longjmp. All uses changed.
1969 520
19702012-12-10 Paul Eggert <eggert@cs.ucla.edu> 5212014-01-13 Daniel Colascione <dancol@dancol.org>
1971 522
1972 * fileio.c (Fsubstitute_in_file_name): Use ptrdiff_t, not int, 523 * textprop.c (Fremove_list_of_text_properties): Correctly
1973 for string length. 524 handle reaching the end of the interval tree. (Bug#15344)
1974 525
19752012-12-08 Eli Zaretskii <eliz@gnu.org> 5262014-01-13 Martin Rudalics <rudalics@gmx.at>
1976 527
1977 * w32.c (unsetenv): Return 0 if the input string is too long. 528 * xdisp.c (resize_mini_window): Round height to a multiple of
529 frame's line height. Fix bug in calculation of window start
530 position (Bug#16424).
1978 531
19792012-12-08 Paul Eggert <eggert@cs.ucla.edu> 5322014-01-13 Jan Djärv <jan.h.d@swipnet.se>
1980 533
1981 Use putenv+unsetenv instead of modifying environ directly (Bug#13070). 534 * macfont.m: Include termchar.h.
1982 * alloc.c (xputenv): New function. 535 (CG_SET_FILL_COLOR_WITH_FACE_FOREGROUND)
1983 * dbusbind.c (Fdbus_init_bus): 536 (CG_SET_FILL_COLOR_WITH_FACE_BACKGROUND)
1984 * emacs.c (main): 537 (CG_SET_STROKE_COLOR_WITH_FACE_FOREGROUND): Modified from
1985 * xterm.c (x_term_init): 538 *_WITH_GC_* to take face and f as parameters.
1986 Use xputenv instead of setenv or putenv, to detect memory exhaustion. 539 (macfont_draw): Check for DRAW_MOUSE_FACE and set face accordingly.
1987 * editfns.c (initial_tz): Move static var decl up. 540 Use *_WITH_FACE_*, and pass face as parameter (Bug#16425).
1988 (tzvalbuf_in_environ): New static var.
1989 (init_editfns): Initialize these two static vars.
1990 (Fencode_time): Don't assume arbitrary limit on EMACS_INT width.
1991 Save old TZ value on stack, if it's small.
1992 (Fencode_time, set_time_zone_rule): Don't modify 'environ' directly;
1993 instead, use xputenv+unsetenv to set and restore TZ.
1994 (environbuf): Remove static var. All uses removed.
1995 (Fset_time_zone_rule): Do not save TZ and environ;
1996 no longer needed here.
1997 (set_time_zone_rule_tz1, set_time_zone_rule_tz2) [LOCALTIME_CACHE]:
1998 Move to inside set_time_zone_rule; they don't need file scope any more.
1999 (set_time_zone_rule): Maintain the TZ=value string separately.
2000 (syms_of_editfns): Don't initialize initial_tz;
2001 init_editfns now does it.
2002 * emacs.c (dump_tz) [HAVE_TZSET]: Now const.
2003 * lisp.h (xputenv): New decl.
2004
20052012-12-08 Fabrice Popineau <fabrice.popineau@gmail.com>
2006
2007 * w32fns.c (emacs_abort): Don't do arithmetics on void pointers.
2008
20092012-12-08 Eli Zaretskii <eliz@gnu.org>
2010
2011 * w32.c (unsetenv, sys_putenv): New functions.
2012
20132012-12-08 Chong Yidong <cyd@gnu.org>
2014
2015 * editfns.c (Finsert_char): Make the error message more
2016 informative (Bug#12992).
2017
20182012-12-08 Paul Eggert <eggert@cs.ucla.edu>
2019
2020 Simplify get_lim_data.
2021 * vm-limit.c (get_lim_data): Combine RLIMIT_AS and RLIMIT_DATA methods.
2022 Remove USG and vlimit methods; no longer used these days.
2023 Add #error catchall just in case.
2024
2025 Assume POSIX 1003.1-1988 or later for signal.h (Bug#13026).
2026 Exceptions: do not assume SIGCONT, SIGSTOP, SIGTSTP, SIGTTIN,
2027 SIGTTOU, SIGUSR1, SIGUSR2, as Microsoft platforms lack these.
2028 * process.c [subprocesses]: Include <c-ctype.h>, <sig2str.h>.
2029 (deleted_pid_list, Fdelete_process, create_process)
2030 (record_child_status_change, handle_child_signal, deliver_child_signal)
2031 (init_process_emacs, syms_of_process):
2032 Assume SIGCHLD is defined.
2033 (parse_signal): Remove. All uses removed.
2034 (abbr_to_signal): New static function.
2035 (Fsignal_process): Use it to convert signal names to ints.
2036 * sysdep.c (sys_suspend) [!DOS_NT]: Use kill (0, ...) rather than
2037 kill (getpgrp (), ...).
2038 (emacs_sigaction_init): Assume SIGCHLD is defined.
2039 (init_signals): Assume SIGALRM, SIGCHLD, SIGHUP, SIGKILL,
2040 SIGPIPE, and SIGQUIT are defined. Do not worry about SIGCLD any more.
2041 * syssignal.h (EMACS_KILLPG): Remove.
2042 All uses replaced by 'kill' with a negative pid.
2043 (SIGCHLD): Remove definition, as we now assume SIGCHLD.
2044 * w32proc.c (sys_kill): Support negative pids compatibly with POSIX.
2045
20462012-12-07 Paul Eggert <eggert@cs.ucla.edu>
2047
2048 * sysdep.c (get_child_status): Abort on internal error (Bug#13086).
2049 This will cause a production Emacs to dump core instead of
2050 infinite-looping.
2051
20522012-12-07 Dmitry Antipov <dmantipov@yandex.ru>
2053
2054 * frame.c (make_frame): Do not set window's buffer to t.
2055 * window.c (Fsplit_window_internal): Likewise. Previously it was
2056 used to indicate that the window is being set up. Now we use
2057 set_window_buffer for all new windows, so the condition in ...
2058 (Fset_window_buffer): ... is always true and can be removed.
2059
20602012-12-07 Dmitry Antipov <dmantipov@yandex.ru>
2061
2062 Convenient macro to check whether the buffer is hidden.
2063 * buffer.h (BUFFER_HIDDEN_P): New macro.
2064 * frame.c (make_frame): Use it. Adjust comment.
2065 * buffer.c (candidate_buffer): New function.
2066 (Fother_buffer, other_buffer_safely): Use it.
2067
20682012-12-06 Eli Zaretskii <eliz@gnu.org>
2069
2070 * w32proc.c (waitpid): Avoid busy-waiting when called with WNOHANG
2071 if the child process is still running. Instead, exit the wait
2072 loop and return zero. (Bug#13086)
2073
20742012-12-06 Dmitry Antipov <dmantipov@yandex.ru>
2075
2076 * frame.h (x_char_width, x_char_height): Remove prototypes.
2077 * w32term.h (x_char_width, x_char_height): Likewise.
2078 * xfns.c (x_char_width, x_char_height): Remove.
2079 * w32fns.c (x_char_width, x_char_height): Likewise.
2080 * nsfns.c (x_char_width, x_char_height): Likewise.
2081 * frame.c (Fframe_char_width): Use FRAME_COLUMN_WIDTH for
2082 all window frames.
2083 (Fframe_char_height): Likewise with FRAME_LINE_HEIGHT.
2084 * keyboard.c (command_loop_1): Remove prototype.
2085 (command_loop_2, top_level_1): Add static to match prototype.
2086
20872012-12-06 Paul Eggert <eggert@cs.ucla.edu>
2088
2089 Fix a recently-introduced delete-process race condition.
2090 * callproc.c, process.h (record_kill_process):
2091 New function, containing part of the old call_process_kill.
2092 (call_process_kill): Use it.
2093 This does not change call_process_kill's behavior.
2094 * process.c (Fdelete_process): Use record_kill_process to fix a
2095 race condition that could cause Emacs to lose track of a child.
2096
20972012-12-06 Dmitry Antipov <dmantipov@yandex.ru>
2098
2099 Avoid code duplication between prev_frame and next_frame.
2100 * frame.c (candidate_frame): New function. Add comment.
2101 (prev_frame, next_frame): Use it. Adjust comment.
2102
21032012-12-06 Eli Zaretskii <eliz@gnu.org>
2104
2105 * callproc.c (Fcall_process_region) [!HAVE_MKSTEMP]: If mktemp
2106 fails, signal an error instead of continuing with an empty
2107 string. (Bug#13079)
2108 Encode expanded temp file pattern before passing it to mkstemp or
2109 mktemp.
2110
2111 * fileio.c (file_name_as_directory, directory_file_name) [DOS_NT]:
2112 Encode the file name before passing it to dostounix_filename, in
2113 case it will downcase it (under w32-downcase-file-names).
2114 (Bug#12933)
2115
21162012-12-05 Paul Eggert <eggert@cs.ucla.edu>
2117
2118 Minor call-process cleanups.
2119 * callproc.c (Fcall_process): Do record-unwind-protect on MSDOS
2120 at the same time as other platforms, to simplify analysis.
2121 No need for fd0_volatile since we have synch_process_fd.
2122 Avoid needless emacs_close; arg is always negative.
2123
21242012-12-04 Andreas Schwab <schwab@linux-m68k.org>
2125
2126 * callproc.c (Fcall_process): Fix specpdl nesting for asynchronous
2127 processes.
2128
21292012-12-04 Dmitry Antipov <dmantipov@yandex.ru>
2130
2131 * lisp.h (Mouse_HLInfo): Remove set-but-unused mouse_face_image_state
2132 member. Adjust users. Convert mouse_face_past_end, mouse_face_defer
2133 and mouse_face_hidden members to a bitfields.
2134 * frame.h (struct frame): Remove set-but-not-used space_width member.
2135 (FRAME_SPACE_WIDTH): Remove.
2136 * nsterm.m, w32term.c, xterm.c: Adjust users.
2137 * termchar.h (struct tty_display_info): Remove set-but-unused se_is_so
2138 member. Adjust users. Convert term_initted, delete_in_insert_mode,
2139 costs_set, insert_mode, standout_mode, cursor_hidden and flow_control
2140 members to a bitfields.
2141
21422012-12-03 Paul Eggert <eggert@cs.ucla.edu>
2143
2144 Don't let call-process be a zombie factory (Bug#12980).
2145 Fixing this bug required some cleanup of the signal-handling code.
2146 As a side effect, this change also fixes a longstanding rare race
2147 condition whereby Emacs could mistakenly kill unrelated processes,
2148 and it fixes a bug where a second C-g does not kill a recalcitrant
2149 synchronous process in GNU/Linux and similar platforms.
2150 The patch should also fix the last vestiges of Bug#9488,
2151 a bug which has mostly been fixed on the trunk by other changes.
2152 * callproc.c, process.h (synch_process_alive, synch_process_death)
2153 (synch_process_termsig, sync_process_retcode):
2154 Remove. All uses removed, to simplify analysis and so that
2155 less consing is done inside critical sections.
2156 * callproc.c (call_process_exited): Remove. All uses replaced
2157 with !synch_process_pid.
2158 * callproc.c (synch_process_pid, synch_process_fd): New static vars.
2159 These take the role of what used to be in unwind-protect arg.
2160 All uses changed.
2161 (block_child_signal, unblock_child_signal):
2162 New functions, to avoid races that could kill innocent-victim processes.
2163 (call_process_kill, call_process_cleanup, Fcall_process): Use them.
2164 (call_process_kill): Record killed processes as deleted, so that
2165 zombies do not clutter up the system. Do this inside a critical
2166 section, to avoid a race that would allow the clutter.
2167 (call_process_cleanup): Fix code so that the second C-g works again
2168 on common platforms such as GNU/Linux.
2169 (Fcall_process): Create the child process in a critical section,
2170 to fix a race condition. If creating an asynchronous process,
2171 record it as deleted so that zombies do not clutter up the system.
2172 Do unwind-protect for WINDOWSNT too, as that's simpler in the
2173 light of these changes. Omit unnecessary call to emacs_close
2174 before failure, as the unwind-protect code does that.
2175 * callproc.c (call_process_cleanup):
2176 * w32proc.c (waitpid): Simplify now that synch_process_alive is gone.
2177 * process.c (record_deleted_pid): New function, containing
2178 code refactored out of Fdelete_process.
2179 (Fdelete_process): Use it.
2180 (process_status_retrieved): Remove. All callers changed to use
2181 child_status_change.
2182 (record_child_status_change): Remove, folding its contents into ...
2183 (handle_child_signal): ... this signal handler. Now, this
2184 function is purely a handler for SIGCHLD, and is not called after
2185 a synchronous waitpid returns; the synchronous code is moved to
2186 wait_for_termination. There is no need to worry about reaping
2187 more than one child now.
2188 * sysdep.c (get_child_status, child_status_changed): New functions.
2189 (wait_for_termination): Now takes int * status and bool
2190 interruptible arguments, too. Do not record child status change;
2191 that's now the caller's responsibility. All callers changed.
2192 Reimplement in terms of get_child_status.
2193 (wait_for_termination_1, interruptible_wait_for_termination):
2194 Remove. All callers changed to use wait_for_termination.
2195 * syswait.h: Include <stdbool.h>, for bool.
2196 (record_child_status_change, interruptible_wait_for_termination):
2197 Remove decls.
2198 (record_deleted_pid, child_status_changed): New decls.
2199 (wait_for_termination): Adjust to API changes noted above.
2200
2201 * bytecode.c, lisp.h (Qbytecode): Remove.
2202 No longer needed after 2012-11-20 interactive-p changes.
2203
22042012-12-03 Eli Zaretskii <eliz@gnu.org>
2205
2206 * xdisp.c (redisplay_window): If the cursor is visible, but inside
2207 the scroll margin, move point outside the margin. (Bug#13055)
2208
22092012-12-03 Jan Djärv <jan.h.d@swipnet.se>
2210
2211 * gtkutil.c (my_log_handler): New function.
2212 (xg_set_geometry): Set log handler to my_log_handler (Bug#11177).
2213
22142012-12-03 Dmitry Antipov <dmantipov@yandex.ru>
2215
2216 * lisp.h (modify_region): Rename to...
2217 (modify_region_1): ...new prototype.
2218 * textprop.c (modify_region): Now static. Adjust users.
2219 * insdel.c (modify_region): Rename to...
2220 (modify_region_1): ...new function to work with current buffer.
2221 Adjust comment and users. Use true and false for booleans.
2222
22232012-12-03 Dmitry Antipov <dmantipov@yandex.ru>
2224
2225 * alloc.c (free_save_value): New function.
2226 (safe_alloca_unwind): Use it.
2227 * lisp.h (free_save_value): New prototype.
2228 * editfns.c (save_excursion_save): Use Lisp_Misc_Save_Value.
2229 Add comment.
2230 (save_excursion_restore): Adjust to match saved data structure.
2231 Use free_save_value to offload some work from GC. Drop obsolete
2232 #if 0 code.
2233 541
22342012-12-03 Chong Yidong <cyd@gnu.org> 5422014-01-13 Daniel Colascione <dancol@dancol.org>
2235 543
2236 * fileio.c (Vauto_save_list_file_name): Doc fix. 544 Fix menu item updating in the presence of the Unity global menu
545 GTK+ module.
2237 546
22382012-12-03 Fabrice Popineau <fabrice.popineau@gmail.com> 547 * gtkutil.h (xg_have_tear_offs): Add frame parameter
548 * gtkutil.c (xg_have_tear_offs): Count the global menu as a
549 tear-off.
550 (xg_update_menubar, xg_update_menu_item): Call g_object_notify when
551 updating menus; explain why.
552 (xg_update_frame_menubar): Remove the 23px hack: I can't repro the
553 problem it's supposed to solve and it interferes with detecting
554 the presence of a global menu.
555 * xmenu.c (set_frame_menubar): Call xg_have_tear_offs with new
556 parameter.
2239 557
2240 * w32fns.c: Remove prototype of atof. 5582014-01-11 K. Handa <handa@gnu.org>
2241 (syspage_mask): Make it DWORD_PTR, for compatibility with 64-bit
2242 builds.
2243 (file_dialog_callback): Make it UINT_PTR.
2244 559
2245 * w32common.h (syspage_mask): Declare DWORD_PTR, for compatibility 560 * composite.c (composition_update_it): Fix indexing of
2246 with 64-bit builds. 561 LGSTRING_CHAR (Bug#15984).
2247 562
2248 * w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED) 5632014-01-11 Fabrice Popineau <fabrice.popineau@gmail.com>
2249 (FILE_ANY_ACCESS, CTL_CODE) [_MSC_VER]: Define only if not already
2250 defined.
2251 564
22522012-12-03 Glenn Morris <rgm@gnu.org> 565 * unexw32.c (_start) [__MINGW64__]: Define to __start.
2253 566
2254 * data.c (Fboundp, Fsymbol_value): Doc fix re lexical-binding. 5672014-01-11 Eli Zaretskii <eliz@gnu.org>
2255 568
22562012-12-02 Paul Eggert <eggert@cs.ucla.edu> 569 * xdisp.c (try_window_id): Don't use this function's optimizations
2257 570 if overlays in the buffer displayed by the window have changed
2258 Fix xpalloc confusion after memory is exhausted. 571 since last redisplay. (Bug#16347)
2259 * alloc.c (xpalloc): Comment fix. 572 (message_dolog): Fix indentation.
2260 * charset.c (Fdefine_charset_internal): If xpalloc exhausts memory
2261 and signals an error, do not clear charset_table_size, as
2262 charset_table is still valid.
2263 * doprnt.c (evxprintf): Clear *BUF after freeing it.
2264
2265 Use execve to avoid need to munge environ (Bug#13054).
2266 * callproc.c (Fcall_process):
2267 * process.c (create_process):
2268 Don't save and restore environ; no longer needed.
2269 * callproc.c (child_setup):
2270 Use execve, not execvp, to preserve environ.
2271 573
22722012-12-01 Paul Eggert <eggert@cs.ucla.edu> 5742014-01-11 Martin Rudalics <rudalics@gmx.at>
2273 575
2274 * xterm.c (x_draw_image_relief): Remove unused locals (Bug#10500). 576 * frame.c (frame_resize_pixelwise): Fix doc-string.
2275 577
22762012-12-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 5782014-01-10 Martin Rudalics <rudalics@gmx.at>
2277 579
2278 * xterm.c (x_draw_relief_rect, x_draw_image_relief): Fix relief 580 Fix handling of internal borders (Bug#16348).
2279 display for sliced images (Bug#10500). 581 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Remove
582 internal border width from pixel width of windows.
583 (change_frame_size_1): Don't return early when frame's pixel
584 size changes - we still have to record the new sizes in the
585 frame structure.
586 * w32fns.c (x_set_tool_bar_lines): Clear internal border width
587 also when toolbar gets larger.
588 * window.c (check_frame_size): Include internal_border_width in
589 check.
590 * xdisp.c (Ftool_bar_height): Fix doc-string typo.
591 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines): In
592 non-toolkit/non-GTK version clear internal border.
593 * xterm.c (x_clear_under_internal_border): New function for
594 non-toolkit/non-GTK version.
595 (x_after_update_window_line): In non-toolkit/non-GTK version
596 don't do that.
597 (handle_one_xevent, x_set_window_size): Call
598 x_clear_under_internal_border in non-toolkit/non-GTK version.
599 * xterm.h (x_clear_under_internal_border): Extern it.
2280 600
2281 * w32term.c (w32_draw_relief_rect, x_draw_image_relief): Likewise. 6012014-01-07 Paul Eggert <eggert@cs.ucla.edu>
2282 602
22832012-11-30 Juanma Barranquero <lekktu@gmail.com> 603 Fix misdisplay of interlaced GIFs with libgif5 (Bug#16372).
604 * image.c (gif_load): libgif5 deinterlaces for us, so don't do
605 it again.
2284 606
2285 * doc.c (Fdocumentation): Re-add handling of function-documentation, 6072014-01-06 Eli Zaretskii <eliz@gnu.org>
2286 accidentally removed in 2012-11-09T04:10:16Z!monnier@iro.umontreal.ca (bug#13034).
2287 608
22882012-11-29 Dmitry Antipov <dmantipov@yandex.ru> 609 * xdisp.c (redisplay_window): Don't skip window redisplay if the
610 last value of point is not equal to buffer's point. (Bug#16129)
2289 611
2290 * xdisp.c (window_outdated): Remove eassert since it hits 6122014-01-05 Paul Eggert <eggert@cs.ucla.edu>
2291 some suspicious corner cases (see Bug#13007 and Bug#13012).
2292 (mode_line_update_needed): New function.
2293 (redisplay_internal, redisplay_window): Use it.
2294 (ensure_selected_frame): New function.
2295 (redisplay_internal, unwind_redisplay): Use it.
2296 (redisplay_internal): Move comment about buffer_shared...
2297 (buffer_shared_and_changed): ...near to its real use.
2298 613
22992012-11-29 Paul Eggert <eggert@cs.ucla.edu> 614 Spelling fixes.
615 * nsterm.h (updateCollectionBehavior): Rename from
616 updateCollectionBehaviour. All uses changed.
2300 617
2301 * callproc.c (Fcall_process): Don't misreport vfork failure. 618 Port to GNU/Linux with recent grsecurity/PaX patches (Bug#16343).
619 * Makefile.in (SETFATTR): New macro.
620 (temacs$(EXEEXT)): Use it.
2302 621
23032012-11-28 Paul Eggert <eggert@cs.ucla.edu> 6222014-01-04 Martin Rudalics <rudalics@gmx.at>
2304 623
2305 * callproc.c (Fcall_process): Fix vfork portability problems. 624 Fix maximization behavior on Windows (Bug#16300).
2306 Do not assume that fd[0], count, filefd, and save_environ survive 625 * w32fns.c (w32_fullscreen_rect): Don't handle
2307 vfork. Fix bug whereby wrong errno value could be reported for 626 FULLSCREEN_MAXIMIZED and FULLSCREEN_NONE specially.
2308 pipe failure. Some minor cleanups, too, as follows. Move buf and 627 * w32term.c (w32fullscreen_hook): Use SetWindowPlacement instead
2309 bufsize to the context where they're needed. Change new_argv to 628 of SetWindowPos. Restore last placement also when leaving
2310 be of type char **, as this is more convenient and avoids casts. 629 FULLSCREEN_HEIGHT and FULLSCREEN_WIDTH. Call ShowWindow in all
2311 (CALLPROC_BUFFER_SIZE_MIN, CALLPROC_BUFFER_SIZE_MAX): 630 but the FULLSCREEN_BOTH case.
2312 Now local constants, not macros.
2313 631
23142012-11-18 Kenichi Handa <handa@gnu.org> 6322014-01-03 Paul Eggert <eggert@cs.ucla.edu>
2315 633
2316 * font.c (font_unparse_xlfd): Fix previous change. Keep "const" 634 Port to C89.
2317 for the variable "f". 635 * data.c (arithcompare_driver):
636 * fileio.c (Fcar_less_than_car):
637 * fns.c (internal_equal):
638 * frame.c (delete_frame):
639 * lisp.h (enum More_Lisp_Bits):
640 * lread.c (read1):
641 Avoid C99 constructs that don't work in C89.
642 * data.c (ULL_MAX, count_trailing_zeros_ll): New macros,
643 to port to C89, which doesn't have 'long long'.
644 (count_trailing_zero_bits): Use them.
2318 645
23192012-11-13 Kenichi Handa <handa@gnu.org> 6462014-01-03 Chong Yidong <cyd@gnu.org>
2320 647
2321 * font.c (font_unparse_xlfd): Exclude special characters from the 648 * doc.c (Fdocumentation): Remove dynamic-docstring-function.
2322 generating XLFD name.
2323 649
23242012-11-27 Paul Eggert <eggert@cs.ucla.edu> 6502014-01-02 Martin Rudalics <rudalics@gmx.at>
2325 651
2326 Assume POSIX 1003.1-1988 or later for grp.h, pwd.h. 652 Further adjust frame/window scrollbar width calculations.
2327 * dired.c (stat_uname, stat_gname): 653 * window.c (apply_window_adjustment): Set
2328 * fileio.c (Fexpand_file_name): Remove no-longer-needed casts. 654 windows_or_buffers_changed.
655 (Fwindow_scroll_bars): Return actual scrollbar width.
656 * xfns.c (x_set_scroll_bar_default_width): Rename wid to unit.
657 For non-toolkit builds again use 14 as minimum width and set
658 FRAME_CONFIG_SCROLL_BAR_WIDTH accordingly.
659 * xterm.c (XTset_vertical_scroll_bar): Take width from
660 WINDOW_SCROLL_BAR_AREA_WIDTH.
661 (x_new_font): Rename wid to unit. Base calculation of new
662 scrollbar width on toolkit used and make it analogous to that of
663 x_set_scroll_bar_default_width.
664 * w32fns.c (x_set_scroll_bar_default_width): Rename wid to unit.
665 (Fx_create_frame): Call x_set_scroll_bar_default_width instead
666 of GetSystemMetrics.
667 * w32term.c (w32_set_vertical_scroll_bar): Take width from
668 WINDOW_SCROLL_BAR_AREA_WIDTH.
669 (x_new_font): Make it correspond to changes in xterm.c.
2329 670
2330 Assume POSIX 1003.1-1988 or later for errno.h (Bug#12968). 6712014-01-01 Paul Eggert <eggert@cs.ucla.edu>
2331 * dired.c (directory_files_internal, file_name_completion):
2332 Assume EAGAIN and EINTR are defined.
2333
2334 * fileio.c (Fcopy_file): Assume EISDIR is defined.
2335 * gmalloc.c (ENOMEM, EINVAL): Assume they're defined.
2336 * gnutls.c (emacs_gnutls_write): Assume EAGAIN is defined.
2337 * lread.c (readbyte_from_file): Assume EINTR is defined.
2338 * process.c (wait_reading_process_output, send_process) [subprocesses]:
2339 Assume EIO and EAGAIN are defined.
2340 * unexcoff.c (write_segment): Assume EFAULT is defined.
2341
23422012-11-27 Eli Zaretskii <eliz@gnu.org>
2343
2344 * fontset.c (Finternal_char_font): Return nil on non-GUI frames.
2345 (Bug#11964)
2346
2347 * xdisp.c (draw_glyphs): Don't draw in mouse face if mouse
2348 highlighting on the frame was cleared. Prevents assertion
2349 violations when repeatedly clicking on the "Top" link of the
2350 "bread-crumbs" in Info buffers.
2351
23522012-11-25 Paul Eggert <eggert@cs.ucla.edu>
2353
2354 * sysdep.c (sys_subshell): Don't assume pid_t fits in int.
2355
23562012-11-24 Ken Brown <kbrown@cornell.edu>
2357
2358 * keyboard.c (HAVE_MOUSE):
2359 * frame.c (HAVE_MOUSE): Remove, and rewrite code as if HAVE_MOUSE
2360 were always defined.
2361
23622012-11-24 Eli Zaretskii <eliz@gnu.org>
2363
2364 * xdisp.c (set_cursor_from_row): Skip step 2 only if point is not
2365 between bpos_covered and bpos_max. This fixes cursor display when
2366 several display strings follow each other.
2367
2368 * .gdbinit (pgx): If the glyph's object is a string, display the
2369 pointer to string data, rather than the value of the string object
2370 itself (which barfs under CHECK_LISP_OBJECT_TYPE).
2371
2372 * indent.c (Fvertical_motion): If the starting position is covered
2373 by a display string, return to one position before that, to avoid
2374 overshooting it inside move_it_to. (Bug#12930)
2375
23762012-11-23 Dmitry Antipov <dmantipov@yandex.ru>
2377
2378 * frame.h (struct frame): Remove display_preempted member
2379 since all users are dead long ago.
2380 * nsterm.h (struct x_output): Use the only dummy member.
2381 * w32menu.c (pending_menu_activation): Remove since not
2382 really used.
2383 (set_frame_menubar): Adjust user.
2384 * w32term.h (struct x_output): Drop outdated #if 0 code.
2385 (struct w32_output): Use bitfields for explicit_parent,
2386 asked_for_visible and menubar_active members.
2387 Drop unused pending_menu_activation member.
2388 * xterm.h (struct x_output): Drop outdated #if 0 code.
2389 Use bitfields for explicit_parent, asked_for_visible,
2390 has_been_visible and net_wm_state_hidden_seen members.
2391
23922012-11-23 Eli Zaretskii <eliz@gnu.org>
2393
2394 * makefile.w32-in (globals.h, gl-stamp): Use $(SWITCHCHAR) instead
2395 of a literal "/". (Bug#12955)
2396 (gl-stamp): Invoke fc.exe directly, not through cmd.
2397
23982012-11-23 Paul Eggert <eggert@cs.ucla.edu>
2399
2400 Assume POSIX 1003.1-1988 or later for dirent.h (Bug#12958).
2401 * dired.c: Assume HAVE_DIRENT_H.
2402 (NAMLEN): Remove, replacing with ...
2403 (dirent_namelen): New function. All uses changed. Use the GNU macro
2404 _D_EXACT_NAMELEN if available, as it's faster than strlen.
2405 (DIRENTRY): Remove, replacing all uses with 'struct dirent'.
2406 (DIRENTRY_NONEMPTY): Remove. All callers now assume it's nonzero.
2407 * makefile.w32-in (DIR_H): Remove. All uses replaced with
2408 $(NT_INC)/dirent.h.
2409 ($(BLD)/w32.$(O)): Do not depend on $(SRC)/ndir.h.
2410 * ndir.h: Rename to ../nt/inc/dirent.h.
2411 * sysdep.h (closedir) [!HAVE_CLOSEDIR]: Remove.
2412 Do not include <dirent.h>; no longer needed.
2413 * w32.c: Include <dirent.h> rather than "ndir.h".
2414
24152012-11-23 Chong Yidong <cyd@gnu.org>
2416
2417 * xftfont.c (xftfont_open): Remove duplicate assignment.
2418
24192012-11-22 Dmitry Antipov <dmantipov@yandex.ru>
2420
2421 * alloc.c (Fgarbage_collect): Unblock input after clearing
2422 gc_in_progress to avoid note_mouse_highlight glitch with GC.
2423 * frame.h (FRAME_MOUSE_UPDATE): New macro.
2424 * msdos.c (IT_frame_up_to_date): Use it here...
2425 * w32term.c (w32_frame_up_to_date): ...here...
2426 * xterm.c (XTframe_up_to_date): ...and here...
2427 * nsterm.m (ns_frame_up_to_date): ...but not here.
2428 * lisp.h (Mouse_HLInfo): Remove mouse_face_deferred_gc member.
2429 Adjust users.
2430 * xdisp.c (message2_nolog, message3_nolog, note_mouse_highlight):
2431 Do not check whether GC is in progress.
2432 672
24332012-11-22 Dmitry Antipov <dmantipov@yandex.ru> 673 * lisp.h (EMACS_INT): Configure based on INTPTR_MAX, not LONG_MAX.
674 This is a cleaner way to fix the MinGW-w64 porting problem.
675 Check for INTPTR_MAX misconfiguration.
2434 676
2435 * xdisp.c (window_buffer_changed): New function. 6772014-01-01 Eli Zaretskii <eliz@gnu.org>
2436 (update_menu_bar, update_tool_bar): Use it to
2437 simplify large 'if' statements.
2438 (redisplay_internal): Generalize commonly used
2439 'tail' and 'frame' local variables.
2440 678
24412012-11-22 Eli Zaretskii <eliz@gnu.org> 679 * search.c (newline_cache_on_off, find_newline): In indirect
680 buffers, use the newline cache of the base buffer.
2442 681
2443 * w32.c (getcwd): Fix the 2nd argument type, to prevent conflicts 682 * insdel.c (invalidate_buffer_caches): If BUF is an indirect
2444 with Windows system header. 683 buffer, invalidate the caches of its base buffer. (Bug#16265)
2445 684
24462012-11-21 Paul Eggert <eggert@cs.ucla.edu> 685 * indent.c (width_run_cache_on_off, compute_motion): In indirect
686 buffers, use the width-run cache of the base buffer.
2447 687
2448 Assume POSIX 1003.1-1988 or later for unistd.h (Bug#12945). 688 * xdisp.c (redisplay_window): When the window displays an indirect
2449 * alloc.c: Assume unistd.h exists. 689 buffer, and the character widths in the display table have
2450 * fileio.c (Fexpand_file_name) [DOS_NT]: Use getcwd, not getwd. 690 changed, invalidate the width-run cache of the corresponding base
2451 * sysdep.c (get_current_dir_name): Assume getcwd exists. 691 buffer.
2452 (getwd) [USG]: Remove; no longer needed.
2453 (sys_subshell) [DOS_NT]: Use getcwd, not getwd.
2454 * w32.c (getcwd): Rename from getwd, and switch to getcwd's API.
2455 * w32.h (getcwd): Remove decl.
2456 692
24572012-11-21 Stefan Monnier <monnier@iro.umontreal.ca> 693 * fileio.c (Finsert_file_contents): When invalidating the newline
694 cache, consider the case of inserting into indirect buffer.
2458 695
2459 * xdisp.c (fast_set_selected_frame): Rename from update_tool_bar_unwind. 696 * bidi.c (bidi_paragraph_cache_on_off, bidi_find_paragraph_start):
2460 Make it set selected_window as well. 697 In indirect buffers, use the paragraph cache of the base buffer.
2461 (update_tool_bar): Use it.
2462 698
24632012-11-21 Ken Brown <kbrown@cornell.edu> 6992013-12-31 Martin Rudalics <rudalics@gmx.at>
2464 700
2465 * emacs.c (main): Set the G_SLICE environment variable for all 701 * window.c (grow_mini_window): Fix last change.
2466 Cygwin builds, not just GTK builds. See
2467 https://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00368.html.
2468 702
24692012-11-21 Eli Zaretskii <eliz@gnu.org> 7032013-12-31 Jan Djärv <jan.h.d@swipnet.se>
2470 704
2471 * w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED) 705 * nsterm.m (windowDidResignKey:): Set mouse_moved to 0 (Bug#8421).
2472 (FILE_ANY_ACCESS, CTL_CODE, FSCTL_GET_REPARSE_POINT) [_MSC_VER]:
2473 Define for the MSVC compiler.
2474 706
2475 * w32term.h (EnumSystemLocalesW) [_MSC_VER]: Add a missing semi-colon. 7072013-12-31 Fabrice Popineau <fabrice.popineau@supelec.fr>
2476 708
2477 * fileio.c (Fsubstitute_in_file_name, Ffile_name_directory) 709 * w32term.c (w32_initialize): Use LCID and LOWORD.
2478 (Fexpand_file_name) [DOS_NT]: Pass encoded file name to
2479 dostounix_filename. Prevents crashes down the road, because
2480 dostounix_filename assumes it gets a unibyte string.
2481 Reported by Michel de Ruiter <michel@sentient.nl>, see
2482 http://lists.gnu.org/archive/html/help-emacs-windows/2012-11/msg00017.html
2483 710
24842012-11-20 Stefan Monnier <monnier@iro.umontreal.ca> 711 * w32proc.c (create_child): Use pid_t for 5th argument.
712 (IsValidLocale): Don't provide prototype for MinGW64.
713 (Fw32_get_valid_keyboard_layouts, Fw32_get_keyboard_layout)
714 (Fw32_set_keyboard_layout): Use HKL and HIWORD/LOWORD.
2485 715
2486 Conflate Qnil and Qunbound for `symbol-function'. 716 * w32heap.c (allocate_heap) [_WIN64]: Use "ull", not "i64", which
2487 * alloc.c (Fmake_symbol): Initialize `function' to Qnil. 717 MinGW64 doesn't support.
2488 * lread.c (init_obarray): Set `function' fields to Qnil.
2489 * eval.c (Fcommandp): Ignore Qunbound.
2490 (Fautoload, eval_sub, Fapply, Ffuncall, Fmacroexpand):
2491 * data.c (Ffset, Ffboundp, indirect_function, Findirect_function):
2492 Test NILP rather than Qunbound.
2493 (Ffmakunbound): Set to Qnil.
2494 (Fsymbol_function): Never signal an error.
2495 (Finteractive_form): Ignore Qunbound.
2496 718
24972012-11-20 Paul Eggert <eggert@cs.ucla.edu> 719 * lisp.h (EMACS_INT) [_WIN64]: Define for the MinGW64 build.
2498 720
2499 * eval.c (interactive_p): Remove no-longer-used decl. 721 * w32.c (set_named_security_info): New function.
722 (acl_set_file): Fall back on set_named_security_info if
723 set_file_security fails.
724 (g_b_init_set_named_security_info_w)
725 (g_b_init_set_named_security_info_a): New static variables.
726 (globals_of_w32): Initialize them to zero.
727 (set_named_security_info): Set them to non-zero if the
728 corresponding API is available.
729 (SetNamedSecurityInfoW_Proc, SetNamedSecurityInfoA_Proc): New
730 function typedefs.
2500 731
25012012-11-20 Dmitry Antipov <dmantipov@yandex.ru> 7322013-12-31 Martin Rudalics <rudalics@gmx.at>
2502 733
2503 * xdisp.c (buffer_shared): Adjust comment. 734 Some more fixes following pixelwise resize changes including one
2504 (buffer_shared_and_changed): New function. 735 for Bug#16306.
2505 (prepare_menu_bars, redisplay_internal): Use it to 736 * gtkutil.c (x_wm_set_size_hint): Have size hints respect value
2506 decide whether all windows or frames should be updated. 737 of frame_resize_pixelwise.
2507 (window_outdated): New function. 738 * widget.c (pixel_to_text_size): New function.
2508 (text_outside_line_unchanged_p, redisplay_window): Use it. 739 (update_wm_hints): Have size hints respect value of
2509 (redisplay_internal): Likewise. Fix indentation. 740 frame_resize_pixelwise.
741 (EmacsFrameResize): Alway process resize requests pixelwise.
742 * window.c (grow_mini_window): Make sure mini window is at least
743 one line tall.
744 * xdisp.c (display_menu_bar): Make sure menubar extends till
745 right end of frame.
746 * xfns.c (x_set_menu_bar_lines): Resize frame windows pixelwise.
747 (x_set_tool_bar_lines): Calculate pixelwise.
748 * xterm.c (x_wm_set_size_hint): Have size hints respect value of
749 frame_resize_pixelwise.
2510 750
25112012-11-20 Stefan Monnier <monnier@iro.umontreal.ca> 7512013-12-30 Juanma Barranquero <lekktu@gmail.com>
2512 752
2513 * eval.c (Finteractive_p, Fcalled_interactively_p, interactive_p): Remove. 753 * fileio.c (Fcopy_file) [!WINDOWSNT]: Don't declare on Windows
2514 (syms_of_eval): Remove corresponding defsubr. 754 variables not used there.
2515 * bytecode.c (exec_byte_code): `interactive-p' is now a Lisp function.
2516 755
25172012-11-19 Daniel Colascione <dancol@dancol.org> 7562013-12-30 Eli Zaretskii <eliz@gnu.org>
2518 757
2519 * w32fns.c (Fx_file_dialog): 758 * w32.c (sys_umask): New function. (Bug#16299)
2520 (Fx_file_dialog): Accomodate rename of cygwin_convert_path* to
2521 cygwin_convert_file_name*.
2522 759
2523 * cygw32.c (Fcygwin_convert_path_to_windows, syms_of_cygw32): 7602013-12-30 Martin Rudalics <rudalics@gmx.at>
2524 Rename cygwin_convert_path* to cygwin_convert_file_name*.
2525 761
25262012-11-18 Paul Eggert <eggert@cs.ucla.edu> 762 * dispnew.c (change_frame_size_1): Take old width of root window
763 from that window's pixel width. (Bug#16284)
2527 764
2528 * nsterm.m (ns_select): Send SIGIO only to self, not to process group. 7652013-12-29 Paul Eggert <eggert@cs.ucla.edu>
2529 766
25302012-11-18 Eli Zaretskii <eliz@gnu.org> 767 Plain copy-file no longer chmods an existing destination (Bug#16133).
768 * fileio.c (realmask): Now a static var, not a local.
769 (barf_or_query_if_file_exists): New arg KNOWN_TO_EXIST.
770 Remove arg STATPTR. All uses changed.
771 (Fcopy_file): Do not alter permissions of existing destinations,
772 unless PRESERVE-PERMISSIONS (renamed from
773 PRESERVE-EXTENDED-ATTRIBUTES) is non-nil.
774 Avoid race when testing for existing destinations and for
775 when input and output files are the same.
776 If changing the group fails, adjust both default and
777 preserved permissions so that access is not granted to the
778 wrong group.
779 (Fset_default_file_modes, init_fileio): Update realmask.
780 (Fdefault_file_modes): Use realmask instead of calling umask.
2531 781
2532 * w32select.c: Include w32common.h before w32term.h, so that 7822013-12-28 Paul Eggert <eggert@cs.ucla.edu>
2533 windows.h gets included before w32term.h uses some of its
2534 features, see below.
2535 783
2536 * w32term.h (LOCALE_ENUMPROCA, LOCALE_ENUMPROCW) [_MSC_VER]: 784 Fix pipe bug with OS X emacs --daemon (Bug#16262).
2537 New typedefs. 785 * emacs.c (main) [DAEMON_MUST_EXEC]: Clear the close-on-exec
2538 (EnumSystemLocalesA, EnumSystemLocalesW) [_MSC_VER]: 786 flags on the daemon pipe ends before execing.
2539 New prototypes.
2540 (EnumSystemLocales) [_MSC_VER]: Define if undefined. (Bug#12878)
2541
25422012-11-18 Jan Djärv <jan.h.d@swipnet.se>
2543
2544 * nsterm.m (hold_event): Set send_appdefined to YES (Bug#12834).
2545 (ns_select): Return at once if events are held (Bug#12834).
2546 787
25472012-11-18 enami tsugutomo <tsugutomo.enami@jp.sony.com> 7882013-12-28 Eli Zaretskii <eliz@gnu.org>
2548 789
2549 * unexelf.c (ELFSIZE) [__NetBSD__ && _LP64]: Set to 64. 790 * w32fns.c (Fx_create_frame): Error out if called from a TTY
2550 Needed following 2012-10-20 change. (Bug#12902) 791 session. (Bug#14739)
2551
25522012-11-18 Juanma Barranquero <lekktu@gmail.com>
2553 792
2554 * w32proc.c (waitpid): Remove unused label get_result. 7932013-12-27 Jarek Czekalski <jarekczek@poczta.onet.pl>
2555 794
25562012-11-17 Juanma Barranquero <lekktu@gmail.com> 795 * callproc.c (Vexec_path): Document that exec-directory is in it.
2557 796
2558 * makefile.w32-in (SYSWAIT_H): New macro. 7972013-12-27 Steve Purcell <steve@sanityinc.com> (tiny change)
2559 ($(BLD)/callproc.$(O), $(BLD)/w32proc.$(O), $(BLD)/process.$(O))
2560 ($(BLD)/sysdep.$(O)): Update dependencies.
2561 798
25622012-11-17 Paul Eggert <eggert@cs.ucla.edu> 799 * nsterm.m (syms_of_nsterm): Enable ns-use-srgb-colorspace by
800 default.
2563 801
2564 Assume POSIX 1003.1-1988 or later for fcntl.h (Bug#12881). 8022013-12-27 Chong Yidong <cyd@gnu.org>
2565 * callproc.c (relocate_fd): Assume F_DUPFD.
2566 * emacs.c, term.c (O_RDWR): Remove.
2567 * keyboard.c (tty_read_avail_input): Use O_NONBLOCK rather than
2568 O_NDELAY, since O_NONBLOCK is the standard name for this flag.
2569 * nsterm.m: Assume <fcntl.h> exists.
2570 * process.c (NON_BLOCKING_CONNECT, allocate_pty, create_process)
2571 (create_pty, Fmake_network_process, server_accept_connection)
2572 (wait_reading_process_output, init_process_emacs):
2573 Assume O_NONBLOCK.
2574 (wait_reading_process_output): Put in a special case for WINDOWSNT
2575 to mimick the older behavior where it had O_NDELAY but not O_NONBLOCK.
2576 It's not clear this is needed, but it's a more-conservative change.
2577 (create_process): Assume FD_CLOEXEC.
2578 (create_process, create_pty): Assume O_NOCTTY.
2579 * sysdep.c (init_sys_modes, reset_sys_modes): Assume F_SETFL.
2580 (reset_sys_modes): Use O_NONBLOCK rather than O_NDELAY.
2581 Omit if not DOS_NT, since F_GETFL is not defined there.
2582 (serial_open): Assume O_NONBLOCK and O_NOCTTY.
2583 * term.c: Include <fcntl.h>, for flags like O_NOCTTY.
2584 (O_NOCTTY): Remove.
2585 (init_tty): Assume O_IGNORE_CTTY is defined to 0 on platforms that
2586 lack it, since gnulib guarantees this.
2587 * w32.c (fcntl): Test for O_NONBLOCK rather than O_NDELAY.
2588 803
25892012-11-17 Eli Zaretskii <eliz@gnu.org> 804 * data.c (Fsymbol_function): Doc fix.
2590 805
2591 * w32.c (faccessat): Pretend that directories have the execute bit 8062013-12-26 Martin Rudalics <rudalics@gmx.at>
2592 set. Emacs expects that, e.g., in files.el:cd-absolute.
2593 807
2594 * w32proc.c (create_child): Don't clip the PID of the child 808 Some more tinkering with Bug#16051.
2595 process to fit into an Emacs integer, as this is no longer a 809 * window.c (resize_frame_windows): Don't let the size of the
2596 restriction. 810 root window drop below the frame's default character size.
2597 (waitpid): Rename from sys_wait. Emulate a Posix 'waitpid' by 811 Never ever delete any subwindows - let the window manager do the
2598 reaping only the process specified by PID argument, if that is 812 clipping.
2599 positive. Use PID instead of dead_child to know which process to
2600 reap. Wait for the child to die only if WNOHANG is not in
2601 OPTIONS.
2602 (sys_select): Don't set dead_child.
2603 813
2604 * sysdep.c (wait_for_termination_1): Remove the WINDOWSNT portion, 814 * w32fns.c (x_set_tool_bar_lines): Rewrite calculation of number
2605 as it is no longer needed. 815 of toolbar lines needed when they exceed the height of the root
816 window.
817 (unwind_create_frame_1): New function.
818 (Fx_create_frame): Generally inhibit calling the window
819 configuration change hook here. Remove extra call to
820 change_frame_size - it's not needed when we don't run the
821 configuration change hook.
2606 822
2607 * process.c (waitpid, WUNTRACED) [!WNOHANG]: Remove definitions, 8232013-12-26 Paul Eggert <eggert@cs.ucla.edu>
2608 no longer needed.
2609 (record_child_status_change): Remove the setting of
2610 record_at_most_one_child for the !WNOHANG case.
2611 824
26122012-11-17 Paul Eggert <eggert@cs.ucla.edu> 825 Fix core dumps with gcc -fsanitize=address and GNU/Linux.
826 On my Fedora 19 platform the core dumps were so big that
827 my desktop became nearly catatonic.
828 * alloc.c (no_sanitize_memcpy) [MAX_SAVE_STACK > 0]: New function.
829 (Fgarbage_collect) [MAX_SAVE_STACK > 0]: Use it.
830 (USE_ALIGNED_MALLOC): Do not define if addresses are sanitized.
831 (mark_memory): Use ATTRIBUTE_NO_SANITIZE_ADDRESS rather than
832 a clang-only syntax.
833 * conf_post.h (__has_feature): New macro, if not already defined.
834 (ADDRESS_SANITIZER, ADDRESS_SANITIZER_WORKAROUND)
835 (ATTRIBUTE_NO_SANITIZE_ADDRESS): New macros.
2613 836
2614 Fix problems in ns port found by static checking. 8372013-12-25 Eli Zaretskii <eliz@gnu.org>
2615 * nsterm.m: Include <pthread.h>, for pthread_mutex_lock etc.
2616 (hold_event, setPosition:portion:whole:): Send SIGIO only to self,
2617 not to process group.
2618 (ns_select): Use emacs_write, not write, as that's more robust
2619 in the presence of signals.
2620 (fd_handler:): Check for read errors.
2621 838
26222012-11-16 Glenn Morris <rgm@gnu.org> 839 * w32fns.c (Fw32_shell_execute): Make DOCUMENT absolute only if it
840 is a file name. (Bug#16252)
2623 841
2624 * editfns.c (Fmessage): Mention message-log-max. (Bug#12849) 8422013-12-25 Chong Yidong <cyd@gnu.org>
2625 843
26262012-11-16 Stefan Monnier <monnier@iro.umontreal.ca> 844 * keyboard.c (Voverriding_terminal_local_map):
845 (Voverriding_local_map): Doc fix.
2627 846
2628 * eval.c (Finteractive_p): Revert lexbind-merge mishap. 847 * keymap.c (Vemulation_mode_map_alists): Doc fix.
2629 848
26302012-11-16 Eli Zaretskii <eliz@gnu.org> 8492013-12-24 Eli Zaretskii <eliz@gnu.org>
2631 850
2632 * w32proc.c (timer_loop): Make sure SuspendThread and ResumeThread 851 * w32fns.c (Fw32_shell_execute): Ensure DOCUMENT is an absolute
2633 use the same value of thread handle. 852 file name when it is submitted to ShellExecute. Simplify code.
2634 (start_timer_thread): If the timer thread exited (due to error), 853 Don't test DOCUMENT for being a string, as that is enforced by
2635 clean up by closing the two handles it used. Duplicate the caller 854 CHECK_STRING. Doc fix.
2636 thread's handle here, so it gets duplicated only once, when
2637 launching the timer thread. Set priority of the timer thread, not
2638 the caller thread.
2639 (getitimer): Don't duplicate the caller thread's handle here.
2640 (Bug#12832)
2641 855
26422012-11-16 Jan Djärv <jan.h.d@swipnet.se> 8562013-12-23 Eli Zaretskii <eliz@gnu.org>
2643 857
2644 * nsterm.m (hold_event): Send SIGIO to make sure ns_read_socket is 858 * xdisp.c (tool_bar_height): Use WINDOW_PIXEL_WIDTH to set up the
2645 called (Bug#12834). 859 iterator X limits, not FRAME_TOTAL_COLS, for consistency with what
860 redisplay_tool_bar does. Improve and fix commentary.
861 (hscroll_window_tree): Don't assume w->cursor.vpos is within the
862 limits of the glyph matrices. (Bug#16051)
863 (redisplay_tool_bar): Modify the tool-bar-lines frame parameter
864 only when the new size is different from the old one, and the new
865 size can be achieved given the frame height.
2646 866
26472012-11-16 Paul Eggert <eggert@cs.ucla.edu> 8672013-12-23 Jan Djärv <jan.h.d@swipnet.se>
2648
2649 Remove no-longer-used pty_max_bytes variable.
2650 * process.c (pty_max_bytes): Remove; unused.
2651 (send_process): Do not set it.
2652
26532012-11-15 Juanma Barranquero <lekktu@gmail.com>
2654
2655 * makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/emacs.$(O)):
2656 Update dependencies.
2657 868
26582012-11-15 Paul Eggert <eggert@cs.ucla.edu> 869 * conf_post.h: Use unsigned it for bool_bf if GNUSTEP (Bug#16210).
2659 870
2660 * eval.c (mark_backtrace) [BYTE_MARK_STACK]: Remove stray '*'. 8712013-12-23 Glenn Morris <rgm@gnu.org>
2661 This follows up on the 2012-09-29 patch that removed indirection
2662 for the 'function' field. Reported by Sergey Vinokurov in
2663 <http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00263.html>.
2664 872
26652012-11-14 Eli Zaretskii <eliz@gnu.org> 873 * lread.c (Fload): Mention load-prefer-newer in doc.
2666 874
2667 * w32.c (faccessat): Rename from sys_faccessat. (No need to use a 8752013-12-22 Martin Rudalics <rudalics@gmx.at>
2668 different name, as the MS runtime does not have such a function,
2669 and probably never will.) All callers changed. Ignore DIRFD
2670 value if PATH is an absolute file name, to match Posix spec
2671 better. If AT_SYMLINK_NOFOLLOW is set in FLAGS, don't resolve
2672 symlinks.
2673 876
26742012-11-14 Dmitry Antipov <dmantipov@yandex.ru> 877 Handle Bug#16207 by being more restrictive when running hooks.
878 * window.c (unwind_change_frame): New function.
879 (Fset_window_configuration): Don't run configuration change hook
880 while the frame configuration is unsafe. Call select_window
881 twice.
2675 882
2676 * xdisp.c (echo_area_display, redisplay_internal): 8832013-12-22 Xue Fuqiao <xfq.free@gmail.com>
2677 Omit redundant check whether frame_garbaged is set.
2678 884
26792012-11-14 Paul Eggert <eggert@cs.ucla.edu> 885 * lread.c (syms_of_lread) <load_prefer_newer>: Doc fix.
2680 886
2681 Use faccessat, not access, when checking file permissions (Bug#12632). 8872013-12-21 Jan Djärv <jan.h.d@swipnet.se>
2682 This fixes a bug that has been present in Emacs since its creation.
2683 It was reported by Chris Torek in 1983 even before GNU Emacs existed,
2684 which must set some sort of record. (Torek's bug report was against
2685 a predecessor of GNU Emacs, but GNU Emacs happened to have the
2686 same common flaw.) See Torek's Usenet posting
2687 "setuid/setgid programs & Emacs" Article-I.D.: sri-arpa.858
2688 Posted: Fri Apr 8 14:18:56 1983.
2689 * Makefile.in (LIB_EACCESS): New macro.
2690 (LIBES): Use it.
2691 * callproc.c (init_callproc):
2692 * charset.c (init_charset):
2693 * fileio.c (check_existing, check_executable, check_writable)
2694 (Ffile_readable_p):
2695 * lread.c (openp, load_path_check):
2696 * process.c (allocate_pty):
2697 * xrdb.c (file_p):
2698 Use effective UID when checking permissions, not real UID.
2699 * callproc.c (init_callproc):
2700 * charset.c (init_charset):
2701 * lread.c (load_path_check, init_lread):
2702 Test whether directories are accessible, not merely whether they exist.
2703 * conf_post.h (GNULIB_SUPPORT_ONLY_AT_FDCWD): New macro.
2704 * fileio.c (check_existing, check_executable, check_writable)
2705 (Ffile_readable_p):
2706 Use symbolic names instead of integers for the flags, as they're
2707 portable now.
2708 (check_writable): New arg AMODE. All uses changed.
2709 Set errno on failure.
2710 (Ffile_readable_p): Use faccessat, not stat + open + close.
2711 (Ffile_writable_p): No need to call check_existing + check_writable.
2712 Just call check_writable and then look at errno. This saves a syscall.
2713 dir should never be nil; replace an unnecessary runtime check
2714 with an eassert. When checking the parent directory of a nonexistent
2715 file, check that the directory is searchable as well as writable, as
2716 we can't create files in unsearchable directories.
2717 (file_directory_p): New function, which uses 'stat' on most platforms
2718 but faccessat with D_OK (for efficiency) if WINDOWSNT.
2719 (Ffile_directory_p, Fset_file_times): Use it.
2720 (file_accessible_directory_p): New function, which uses a single
2721 syscall for efficiency.
2722 (Ffile_accessible_directory_p): Use it.
2723 * xrdb.c (file_p): Use file_directory_p.
2724 * lisp.h (file_directory_p, file_accessible_directory_p): New decls.
2725 * lread.c (openp): When opening a file, use fstat rather than
2726 stat, as that avoids a permissions race. When not opening a file,
2727 use file_directory_p rather than stat.
2728 (dir_warning): First arg is now a usage string, not a format.
2729 Use errno. All uses changed.
2730 * nsterm.m (ns_term_init): Remove unnecessary call to file-readable
2731 that merely introduced a race.
2732 * process.c, sysdep.c, term.c: All uses of '#ifdef O_NONBLOCK'
2733 changed to '#if O_NONBLOCK', to accommodate gnulib O_* style,
2734 and similarly for the other O_* flags.
2735 * w32.c (sys_faccessat): Rename from sys_access and switch to
2736 faccessat's API. All uses changed.
2737 * xrdb.c: Do not include <sys/stat.h>; no longer needed.
2738 (magic_db): Rename from magic_file_p.
2739 (magic_db, search_magic_path): Return an XrmDatabase rather than a
2740 char *, so that we don't have to test for file existence
2741 separately from opening the file for reading. This removes a race
2742 fixes a permission-checking problem, and simplifies the code.
2743 All uses changed.
2744 (file_p): Remove; no longer needed.
2745
27462012-11-13 Dmitry Antipov <dmantipov@yandex.ru>
2747
2748 Omit glyphs initialization at startup.
2749 * dispnew.c (glyphs_initialized_initially_p): Remove.
2750 (adjust_frame_glyphs_initially): Likewise. Adjust users.
2751 (Fredraw_frame): Move actual code from here...
2752 (redraw_frame): ...to here. Add eassert. Adjust comment.
2753 (Fredraw_display): Use redraw_frame.
2754 * xdisp.c (clear_garbaged_frames): Likewise.
2755
27562012-11-13 Eli Zaretskii <eliz@gnu.org>
2757
2758 * xdisp.c (decode_mode_spec): Limit the value of WIDTH argument
2759 passed to pint2str and pint2hrstr to be at most the size of the
2760 frame's decode_mode_spec_buffer. This avoids crashes with very
2761 large values of FIELD_WIDTH argument to decode_mode_spec.
2762 (Bug#12867)
2763
27642012-11-13 Paul Eggert <eggert@cs.ucla.edu>
2765
2766 Fix a race with verify-visited-file-modtime (Bug#12863).
2767 Since at least 1991 Emacs has ignored an mtime difference of no
2768 more than one second, but my guess is that this was to work around
2769 file system bugs that were fixed long ago. Since the race is
2770 causing problems now, let's remove that code.
2771 * fileio.c (Fverify_visited_file_modtime): Do not accept a file
2772 whose time stamp is off by no more than a second. Insist that the
2773 file time stamps match exactly.
2774
27752012-11-12 Dmitry Antipov <dmantipov@yandex.ru>
2776
2777 * frame.h (struct frame): Convert external_tool_bar member to
2778 1-bit unsigned bitfield.
2779 * termhooks.h (struct terminal): Remove mouse_moved member since
2780 all users are long dead. Adjust comment on mouse_position_hook.
2781
27822012-11-12 Dmitry Antipov <dmantipov@yandex.ru>
2783
2784 Simplify by using FOR_EACH_FRAME here and there.
2785 * frame.c (next_frame, prev_frame, other_visible_frames)
2786 (delete_frame, visible-frame-list): Use FOR_EACH_FRAME.
2787 * w32term.c (x_window_to_scroll_bar): Likewise.
2788 * window.c (window_list): Likewise.
2789 * xdisp.c (x_consider_frame_title): Likewise.
2790 * xfaces.c ( Fdisplay_supports_face_attributes_p): Likewise.
2791 * xfns.c (x_window_to_frame, x_any_window_to_frame)
2792 (x_menubar_window_to_frame, x_top_window_to_frame): Likewise.
2793 * xmenu.c (menubar_id_to_frame): Likewise.
2794 * xselect.c (frame_for_x_selection): Likewise.
2795 * xterm.c (x_frame_of_widget, x_window_to_scroll_bar)
2796 (x_window_to_menu_bar): Likewise.
2797 * w32fns.c (x_window_to_frame): Likewise. Adjust comment.
2798 888
27992012-11-12 Paul Eggert <eggert@cs.ucla.edu> 889 * nsterm.h: Declare EmacsColor category.
2800 890
2801 * data.c (Qdefalias_fset_function): Now static. 891 * nsterm.m (NSColor): Implement EmacsColor category.
892 (ns_get_color): Use colorUsingDefaultColorSpace.
893 (ns_get_color, ns_term_init): Use colorForEmacsRed.
2802 894
2803 Another tweak to vectorlike_header change. 895 * nsfns.m (Fxw_color_values): Use colorUsingDefaultColorSpace.
2804 * alloc.c (struct Lisp_Vectorlike_Free, NEXT_IN_FREE_LIST):
2805 Remove, and replace all uses with ...
2806 (next_in_free_list, set_next_in_free_list):
2807 New functions, which respect C's aliasing rules better.
2808 896
28092012-11-11 Paul Eggert <eggert@cs.ucla.edu> 8972013-12-21 Eli Zaretskii <eliz@gnu.org>
2810 898
2811 * window.c (list4i): Rename from 'quad'. All uses changed. 899 * image.c (fn_png_longjmp) [WINDOWSNT]: Mark the function as
2812 Needed because <sys/types.h> defines 'quad' on Solaris 10. 900 having the PNG_NORETURN attribute, to avoid compiler warning in
901 my_png_error.
2813 902
28142012-11-11 Juanma Barranquero <lekktu@gmail.com> 9032013-12-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2815 904
2816 * xdisp.c (start_hourglass) [HAVE_NTGUI]: Add block to silence 905 * w32term.h (struct scroll_bar): Remove member `fringe_extended_p'.
2817 warning about mixing declarations and code in ISO C90.
2818 906
28192012-11-10 Martin Rudalics <rudalics@gmx.at> 907 * w32term.c (w32_draw_fringe_bitmap, x_scroll_run): Remove code for
908 fringe background extension.
909 (x_scroll_bar_create): Remove variables `sb_left' and `sb_width',
910 because they are now always the same as `left' and `width',
911 respectively. Remove code for the case that `width' and
912 `sb_width' are different.
2820 913
2821 * window.c (Fsplit_window_internal): Set combination limit of 9142013-12-20 Martin Rudalics <rudalics@gmx.at>
2822 new parent window to t iff Vwindow_combination_limit is t;
2823 fixing a regression introduced with the change from 2012-09-22.
2824 (Fset_window_combination_limit): Fix doc-string.
2825 915
28262012-11-10 Eli Zaretskii <eliz@gnu.org> 916 Remove scroll_bar_actual_width from frames.
917 * frame.h (struct frame): Remove scroll_bar_actual_width slot.
918 * frame.c (Fscroll_bar_width): Return scroll bar area width.
919 (x_figure_window_size):
920 * nsterm.m (x_set_window_size):
921 * widget.c (set_frame_size):
922 * w32term.c (x_set_window_size):
923 * xterm.c (x_set_window_size, x_set_window_size_1): Don't set
924 scroll_bar_actual_width.
2827 925
2828 * xdisp.c (try_scrolling): Fix correction of aggressive-scroll 926 Convert scroll_bar members to integers on Windows.
2829 amount when the scroll margins are too large. When scrolling 927 * w32term.h (struct scroll_bar): Convert top, left, width,
2830 backwards in the buffer, give up if cannot reach point or the 928 height, start, end and dragging to integers.
2831 scroll margin within a reasonable number of screen lines. 929 * w32fns.c (w32_createscrollbar): Remove XINT conversions for
2832 Fixes point position in window under scroll-up/down-aggressively when 930 scroll_bar members.
2833 point is positioned many lines beyond the window top/bottom. 931 * w32term.c (w32_set_scroll_bar_thumb)
2834 (Bug#12811) 932 (w32_scroll_bar_handle_click): Remove XINT conversions for
933 scroll_bar members. Treat bar->dragging as integer.
934 (x_scroll_bar_create): Call ALLOCATE_PSEUDOVECTOR with "top" as
935 first element. Remove XINT conversions for scroll_bar members.
936 (w32_set_vertical_scroll_bar, x_scroll_bar_report_motion):
937 Remove XINT conversions for scroll_bar members.
2835 938
2836 * ralloc.c (relinquish): If real_morecore fails to return memory 939 Fix assignment for new window total sizes.
2837 to the system, don't crash; instead, leave the last heap 940 * window.c (Fwindow_resize_apply_total): Assign values for
2838 unchanged and return. (Bug#12774) 941 minibuffer window.
2839 942
28402012-11-09 Stefan Monnier <monnier@iro.umontreal.ca> 9432013-12-20 Chong Yidong <cyd@gnu.org>
2841 944
2842 * lisp.h (AUTOLOADP): New macro. 945 * textprop.c (Fadd_face_text_property): Doc fix. Rename `appendp'
2843 * eval.c (Fautoload): Don't attach to loadhist, call Fdefalias instead. 946 argument to `append'.
2844 * data.c (Ffset): Remove special ad-advice-info handling.
2845 (Fdefalias): Handle autoload definitions and new Qdefalias_fset_function.
2846 (Fsubr_arity): CSE.
2847 (Finteractive_form): Simplify.
2848 (Fquo): Don't insist on having at least 2 arguments.
2849 (Qdefalias_fset_function): New var.
2850 947
28512012-11-09 Jan Djärv <jan.h.d@swipnet.se> 9482013-12-19 Eli Zaretskii <eliz@gnu.org>
2852 949
2853 * image.c (xpm_make_color_table_h): Change to hashtest_equal. 950 * xdisp.c (extend_face_to_end_of_line): Use default face, not the
951 current text face, for extending the face of the display margins.
952 (Bug#16192)
2854 953
2855 * nsfont.m (Qcondensed, Qexpanded): New variables. 954 * casefiddle.c (Fupcase_word, Fdowncase_word, Fcapitalize_word):
2856 (ns_descriptor_to_entity): Restore Qcondensed, Qexpanded setting. 955 Doc fix. (Bug#16190)
2857 (syms_of_nsfont): Defsym Qcondensed, Qexpanded.
2858 956
28592012-11-09 Dmitry Antipov <dmantipov@yandex.ru> 9572013-12-19 Jan Drv <jan.h.d@swipnet.se>
2860 958
2861 Fix recently introduced crash on MS-Windows (Bug#12839). 959 * nsterm.h (KEY_NS_DRAG_FILE, KEY_NS_DRAG_COLOR, KEY_NS_DRAG_TEXT):
2862 * w32term.h (struct scroll_bar): Use convenient header. 960 Remove.
2863 (SCROLL_BAR_VEC_SIZE): Remove.
2864 * w32term.c (x_scroll_bar_create): Use VECSIZE.
2865
28662012-11-09 Dmitry Antipov <dmantipov@yandex.ru>
2867 961
2868 Tweak last vectorlike_header change. 962 * nsterm.m (Qfile, Qurl): New.
2869 * alloc.c (struct Lisp_Vectorlike_Free): Special type to represent 963 (EV_MODIFIERS2): New macro.
2870 vectorlike object on the free list. This is introduced to avoid 964 (EV_MODIFIERS): Use EV_MODIFIERS2.
2871 some (but not all) pointer casting and aliasing problems, see 965 (ns_term_init): Remove font and color from DND, does not work on
2872 http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00105.html. 966 newer OSX, and other ports don't have them.
2873 * .gdbinit (pvectype, pvecsize): New commands to examine vectorlike 967 (performDragOperation:): Handle modifiers used during drag.
2874 objects. 968 Use DRAG_N_DROP_EVENT instead of NS specific events (Bug#8051).
2875 (xvectype, xvecsize): Use them to examine Lisp_Object values. 969 Remove global Lisp variables used to communicate with ns-win.el.
970 Remove font and color handling.
971 (syms_of_nsterm): Defsym Qfile and Qurl.
2876 972
28772012-11-09 Jan Djärv <jan.h.d@swipnet.se> 9732013-12-19 Anders Lindgren <andlind@gmail.com>
2878 974
2879 * nsfont.m (ns_descriptor_to_entity): Qcondensed and Qexpanded has 975 * nsterm.m (NSTRACE_SIZE, NSTRACE_RECT): New macros.
2880 been removed, so remove them here also. 976 (ns_constrain_all_frames, x_set_offset): Remove assignment to
977 dont_constrain.
978 (updateFrameSize:, windowWillResize:toSize:): Add trace.
979 (constrainFrameRect): Remove special case nr_screens == 1.
980 Don't constrain size to size of view.
2881 981
28822012-11-09 Stefan Monnier <monnier@iro.umontreal.ca> 982 * nsterm.h (ns_output): Remove dont_constrain.
2883 983
2884 * doc.c (Fdocumentation): Handle new property 9842013-12-19 Anders Lindgren <andlind@gmail.com>
2885 dynamic-docstring-function to replace the old ad-advice-info.
2886 985
28872012-11-09 Paul Eggert <eggert@cs.ucla.edu> 986 * nsterm.m (mouseDown:): Generate HORIZ_WHEEL_EVENT.
2888 987
2889 * fns.c (Qeql, hashtest_eq): Now static. 9882013-12-18 Paul Eggert <eggert@cs.ucla.edu>
2890 989
28912012-11-08 Stefan Monnier <monnier@iro.umontreal.ca> 990 Minor fixes for recent openp changes.
991 * lisp.h (GCPRO7): New macro.
992 * lread.c (openp): Use bool for boolean; all callers changed.
993 Protect save_string from GC. Don't assume that file descriptors
994 are nonzero. Redo save_mtime comparison to avoid bogus GCC
995 warning about uninitialized variable.
2892 996
2893 * lisp.h (XHASH): Redefine to be imperfect and fit in a Lisp int. 9972013-12-18 Eli Zaretskii <eliz@gnu.org>
2894 * fns.c (hashfn_eq, hashfn_eql, sxhash):
2895 * profiler.c (hashfn_profiler): Don't use XUINT on non-integers.
2896 * buffer.c (compare_overlays): Use XLI rather than XHASH.
2897 998
28982012-11-08 Paul Eggert <eggert@cs.ucla.edu> 999 * w32fns.c (emacs_abort): Use intptr_t as argument of
1000 INT_BUFSIZE_BOUND, to avoid compiler warnings.
2899 1001
2900 Use same hash function for hashfn_profiler as for hash_string etc. 10022013-12-18 Glenn Morris <rgm@gnu.org>
2901 * fns.c (SXHASH_COMBINE): Remove. All uses replaced by sxhash_combine.
2902 * lisp.h (sxhash_combine): New inline function, with the contents
2903 of the old SXHASH_COMBINE.
2904 * profiler.c (hashfn_profiler): Use it, instead of having a
2905 special hash function containing a comparison that always yields 1.
2906 1003
29072012-11-08 Stefan Monnier <monnier@iro.umontreal.ca> 1004 * lread.c (Fload): Pass load_prefer_newer to openp.
1005 Don't bother checking mtime if openp already did it.
1006 (openp): Add `newer' argument, to check all suffixes
1007 and find the newest file.
1008 (syms_of_lread) <load_prefer_newer>: New option. (Bug#2061)
1009 * callproc.c (call_process):
1010 * charset.c (load_charset_map_from_file):
1011 * emacs.c (init_cmdargs):
1012 * image.c (x_create_bitmap_from_file, x_find_image_file):
1013 * lisp.h (openp):
1014 * lread.c (Flocate_file_internal):
1015 * process.c (Fformat_network_address):
1016 * sound.c (Fplay_sound_internal):
1017 * w32.c (check_windows_init_file):
1018 * w32proc.c (sys_spawnve): Update for new arg spec of openp.
2908 1019
2909 * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic) 1020 * emacs.c (standard_args) [HAVE_NS]: Remove -disable-font-backend.
2910 (Qultra_condensed, Qextra_condensed, Qcondensed, Qsemi_condensed)
2911 (Qsemi_expanded, Qextra_expanded, Qexpanded, Qultra_expanded):
2912 Remove unused vars.
2913 1021
29142012-11-08 Jan Djärv <jan.h.d@swipnet.se> 10222013-12-17 Eli Zaretskii <eliz@gnu.org>
2915 1023
2916 * image.c (xpm_make_color_table_h): Fix compiler error because 1024 * w32.c (getloadavg): Don't index samples[] array with negative
2917 make_hash_table changed. 1025 indices. Recover from wall-clock time being set backwards.
2918 1026
29192012-11-08 Thomas Kappler <tkappler@gmail.com> (tiny change) 1027 * w32term.c (w32_initialize): Declare the argument of
1028 set_user_model as const.
2920 1029
2921 * nsfont.m (ns_findfonts): Handle empty matchingDescs (Bug#11541). 1030 * w32menu.c <MessageBoxW_Proc>: Fix argument declarations.
1031 (w32_menu_show): Constify some arguments passed to MessageBox.
2922 1032
29232012-11-08 Stefan Monnier <monnier@iro.umontreal.ca> 1033 * w32uniscribe.c (uniscribe_font_driver): Use LISP_INITIALLY_ZERO
1034 to initialize Lisp objects.
2924 1035
2925 Use ad-hoc comparison function for the profiler's hash-tables. 1036 * w32font.c (w32font_driver): Use LISP_INITIALLY_ZERO to
2926 * profiler.c (Qprofiler_backtrace_equal, hashtest_profiler): New vars. 1037 initialize Lisp objects.
2927 (make_log): Use them.
2928 (handle_profiler_signal): Don't inhibit quit any longer since we don't
2929 call Fequal any more.
2930 (Ffunction_equal): New function.
2931 (cmpfn_profiler, hashfn_profiler): New functions.
2932 (syms_of_profiler): Initialize them.
2933 * lisp.h (struct hash_table_test): New struct.
2934 (struct Lisp_Hash_Table): Use it.
2935 * alloc.c (mark_object): Mark hash_table_test fields of hash tables.
2936 * fns.c (make_hash_table): Take a struct to describe the test.
2937 (cmpfn_eql, cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
2938 (hashfn_equal, hashfn_user_defined): Adjust to new calling convention.
2939 (hash_lookup, hash_remove_from_table): Move assertion checking of
2940 hashfn result here. Check hash-equality before calling cmpfn.
2941 (Fmake_hash_table): Adjust call to make_hash_table.
2942 (hashtest_eq, hashtest_eql, hashtest_equal): New structs.
2943 (syms_of_fns): Initialize them.
2944 * emacs.c (main): Move syms_of_fns earlier.
2945 * xterm.c (syms_of_xterm):
2946 * category.c (hash_get_category_set): Adjust call to make_hash_table.
2947 * print.c (print_object): Adjust to new hash-table struct.
2948 * composite.c (composition_gstring_put_cache): Adjust to new hashfn.
2949 1038
29502012-11-08 Eli Zaretskii <eliz@gnu.org> 1039 * frame.c (x_set_frame_parameters) [HAVE_X_WINDOWS]: Declare and
1040 use variables used only on X under that condition.
2951 1041
2952 * w32fns.c (modifier_set): Fix handling of Scroll Lock when the 1042 * fileio.c (Fcopy_file) [!WINDOWSNT]: Don't declare on Windows
2953 value of w32-scroll-lock-modifier is neither nil nor one of the 1043 variables not used there.
2954 known key modifiers. (Bug#12806)
2955 1044
29562012-11-08 Dmitry Antipov <dmantipov@yandex.ru> 10452013-12-16 Paul Eggert <eggert@cs.ucla.edu>
2957 1046
2958 Shrink struct vectorlike_header to the only size field. 1047 Fix problems with CANNOT_DUMP and EMACSLOADPATH.
2959 * lisp.h (enum pvec_type): Avoid explicit enum member values. 1048 * lread.c (init_lread): If CANNOT_DUMP, we can't be dumping.
2960 Adjust comment.
2961 (enum More_Lisp_Bits): Change PSEUDOVECTOR_SIZE_BITS and
2962 PVEC_TYPE_MASK to arrange new bitfield in the vector header.
2963 (PSEUDOVECTOR_REST_BITS, PSEUDOVECTOR_REST_MASK): New members.
2964 (PSEUDOVECTOR_AREA_BITS): New member used to extract subtype
2965 information from the vector header. Adjust comment.
2966 (XSETPVECTYPE, XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR)
2967 (PSEUDOVECTOR_TYPEP, DEFUN): Adjust to match new vector header
2968 layout.
2969 (XSETSUBR, SUBRP): Adjust to match new Lisp_Subr layout.
2970 (struct vectorlike_header): Remove next member. Adjust comment.
2971 (struct Lisp_Subr): Add convenient header. Adjust comment.
2972 (allocate_pseudovector): Adjust prototype.
2973 * alloc.c (mark_glyph_matrix, mark_face_cache, allocate_string)
2974 (sweep_string, lisp_malloc): Remove useless prototypes.
2975 (enum mem_type): Adjust comment.
2976 (NEXT_IN_FREE_LIST): New macro.
2977 (SETUP_ON_FREE_LIST): Adjust XSETPVECTYPESIZE usage.
2978 (Fmake_bool_vector): Likewise.
2979 (struct large_vector): New type to represent allocation unit for
2980 the vectors with the memory footprint more than VBLOOCK_BYTES_MAX.
2981 (large_vectors): Change type to struct large_vector.
2982 (allocate_vector_from_block): Simplify.
2983 (PSEUDOVECTOR_NBYTES): Replace with...
2984 (vector_nbytes): ...new function. Adjust users.
2985 (sweep_vectors): Adjust processing of large vectors.
2986 (allocate_vectorlike): Likewise.
2987 (allocate_pseudovector): Change type of 3rd arg to enum pvec_type.
2988 Add easserts. Adjust XSETPVECTYPESIZE usage.
2989 (allocate_buffer): Use BUFFER_PVEC_INIT.
2990 (live_vector_p): Adjust to match large vector.
2991 * buffer.c (init_buffer_once): Use BUFFER_PVEC_INIT.
2992 * buffer.h (struct buffer): Add next member.
2993 (BUFFER_LISP_SIZE, BUFFER_REST_SIZE, BUFFER_PVEC_INIT):
2994 New macros.
2995 (FOR_EACH_BUFFER): Adjust to match struct buffer change.
2996 * fns.c (internal_equal): Adjust to match enum pvec_type change.
2997 (copy_hash_table): Adjust to match vector header change.
2998 * lread.c (defsubr): Use XSETPVECTYPE.
2999 * .gdbinit (xpr, xbacktrace): Adjust to match vector header change.
3000 (xvectype): Likewise. Print PVEC_NORMAL_VECTOR for regular vectors.
3001 (xvecsize): New command.
3002
30032012-11-08 Dmitry Antipov <dmantipov@yandex.ru>
3004
3005 * keyboard.c (event_to_kboard): Do not dereference
3006 frame_or_window field of SELECTION_REQUEST_EVENT
3007 and SELECTION_CLEAR_EVENT events (Bug#12814).
3008 * xterm.h (struct selection_input_event): Adjust comment.
3009
30102012-11-07 Eli Zaretskii <eliz@gnu.org>
3011
3012 * w32fns.c (modifier_set): Don't report modifiers from toggle key,
3013 such as Scroll Lock, if the respective keys are treated as
3014 function keys, not as modifiers. This avoids destroying non-ASCII
3015 keyboard input when Scroll Lock is toggled ON. (Bug#12806)
3016
30172012-11-07 Dmitry Antipov <dmantipov@yandex.ru>
3018
3019 * xfns.c (Fx_wm_set_size_hint): Use check_x_frame. Adjust docstring.
3020
30212012-11-06 Paul Eggert <eggert@cs.ucla.edu>
3022
3023 Restore some duplicate definitions (Bug#12814).
3024 This undoes part of the 2012-11-03 changes. Some people build
3025 with plain -g rather than with -g3, and they need the duplicate
3026 definitions for .gdbinit to work; see <http://bugs.gnu.org/12814#26>.
3027 * lisp.h (GCTYPEBITS, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK):
3028 Define as macros, as well as as enums or as constants.
3029
30302012-11-06 Jan Djärv <jan.h.d@swipnet.se>
3031
3032 * nsterm.m (convert_ns_to_X_keysym, keyDown:): Add NSNumericPadKeyMask
3033 to keypad keys (Bug#12816).
3034
30352012-11-06 Paul Eggert <eggert@cs.ucla.edu>
3036
3037 Minor adjustments of recently-changed frame functions.
3038 * buffer.c (Fbuffer_list): Omit CHECK_FRAME, since arg is already
3039 known to be a frame (we're in the FRAMEP branch).
3040 * lisp.h (Qframep): Remove decl. frame.h declares this.
3041 * window.c (quad): Args are of type EMACS_INT, not ptrdiff_t,
3042 since they're meant for Lisp fixnum values.
3043
30442012-11-06 Dmitry Antipov <dmantipov@yandex.ru>
3045
3046 * window.c (Fwindow_combination_limit): Revert to the only
3047 required argument and adjust docstring as suggested in
3048 http://lists.gnu.org/archive/html/emacs-diffs/2012-11/msg01082.html
3049 by Martin Rudalics <rudalics@gmx.at>.
3050
30512012-11-06 Dmitry Antipov <dmantipov@yandex.ru>
3052
3053 Widely used frame validity and checking functions.
3054 * frame.h (decode_live_frame, decode_any_frame): Add prototypes.
3055 * frame.c (decode_live_frame, decode_any_frame): New functions.
3056 (delete_frame, Fredirect_frame_focus, Fframe_parameters)
3057 (Fframe_parameter, Fframe_char_height, Fframe_char_width)
3058 (Fframe_pixel_height, Fframe_pixel_width, Ftool_bar_pixel_width)
3059 (Fframe_pointer_visible_p): Use decode_any_frame.
3060 (Fmake_frame_visible, Fmake_frame_invisible, Ficonify_frame)
3061 (Fraise_frame, Flower_frame, Fmodify_frame_parameters)
3062 (Fset_frame_height, Fset_frame_width): Use decode_live_frame.
3063 (Fframe_focus): Likewise. Allow zero number of arguments.
3064 Adjust docstring.
3065 (frame_buffer_list, frame_buffer_predicate): Remove.
3066 * lisp.h (frame_buffer_predicate): Remove prototype.
3067 * buffer.c (Fother_buffer): Use decode_any_frame.
3068 * xdisp.c (Ftool_bar_lines_needed): Likewise.
3069 * xfaces.c (Fcolor_gray_p, Fcolor_supported_p): Likewise.
3070 * font.c (Ffont_face_attributes, Ffont_family_list, Fopen_font)
3071 (Fclose_font, Ffont_info): Use decode_live_frame.
3072 * fontset.c (check_fontset_name): Likewise.
3073 * terminal.c (Fframe_terminal): Likewise.
3074 * w32fns.c (check_x_frame): Likewise.
3075 * window.c (Fminibuffer_window, Fwindow_at)
3076 (Fcurrent_window_configuration): Likewise.
3077 (Frun_window_configuration_change_hook, Fwindow_resize_apply):
3078 Likewise. Allow zero number of arguments. Adjust docstring.
3079 * dispnew.c (Fredraw_frame): Likewise.
3080 * xfaces.c (frame_or_selected_frame): Remove.
3081 (Fx_list_fonts, Finternal_get_lisp_face_attribute, Fface_font)
3082 (Finternal_lisp_face_equal_p, Finternal_lisp_face_empty_p)
3083 (Fframe_face_alist): Use decode_live_frame.
3084 * xfns.c (check_x_frame): Likewise.
3085
30862012-11-06 Dmitry Antipov <dmantipov@yandex.ru>
3087
3088 * window.c (quad): New function.
3089 (Fwindow_edges, Fwindow_pixel_edges, Fwindow_inside_edges)
3090 (Fwindow_absolute_pixel_edges, Fwindow_inside_absolute_pixel_edges)
3091 (Fwindow_inside_pixel_edges, Fpos_visible_in_window_p)
3092 (Fwindow_line_height): Use it.
3093 (Fwindow_fringes): Use list3.
3094 (Fwindow_scroll_bars): Use list4.
3095 (Fwindow_frame, Fwindow_top_child, Fwindow_left_child)
3096 (Fwindow_combination_limit): Allow zero number of arguments.
3097
30982012-11-05 Eli Zaretskii <eliz@gnu.org>
3099
3100 * makefile.w32-in ($(BLD)/w32fns.$(O)): Depend on $(NT_INC)/unistd.h.
3101
3102 * w32fns.c: Include unistd.h, to avoid compiler warnings on Cygwin.
3103 (emacs_abort) [CYGWIN]: Don't call _open_osfhandle; instead, use
3104 file descriptor 2 for standard error. (Bug#12805)
3105
31062012-11-05 Chong Yidong <cyd@gnu.org>
3107
3108 * process.c (wait_reading_process_output): Revert previous change.
3109
31102012-11-05 Paul Eggert <eggert@cs.ucla.edu>
3111
3112 Assume at least POSIX.1-1988 for getpgrp, setpgid, setsid (Bug#12800).
3113 This removes code that has been obsolete since around 1990.
3114 * callproc.c (Fcall_process):
3115 * emacs.c (main):
3116 * process.c (create_process):
3117 * term.c (dissociate_if_controlling_tty):
3118 Assume setsid exists.
3119 * callproc.c (child_setup): Assume setpgid exists and behaves as
3120 per POSIX.1-1988 or later.
3121 * conf_post.h (setpgid) [!HAVE_SETPGID]: Remove.
3122 * emacs.c (shut_down_emacs):
3123 * sysdep.c (sys_suspend, init_foreground_group):
3124 Assume getpgrp behaves as per POSIX.1-1998 or later.
3125 * msdos.c (setpgrp): Remove.
3126 (tcgetpgrp, setpgid, setsid): New functions.
3127 * systty.h (EMACS_GETPGRP): Remove. All callers now use getpgrp.
3128 * term.c (no_controlling_tty): Remove; unused.
3129 * w32proc.c (setpgrp): Remove.
3130 (setsid, tcgetpgrp): New functions.
3131
3132 Simplify by assuming __fpending.
3133 * dispnew.c: Include <fpending.h>, not <stdio_ext.h>.
3134 (update_frame_1): Use __fpending, not PENDING_OUTPUT_COUNT.
3135 Do not assume that __fpending's result fits in int.
3136
31372012-11-04 Paul Eggert <eggert@cs.ucla.edu>
3138
3139 Remove EMACS_OUTQSIZE+sleep hack.
3140 * dispnew.c (update_frame_1): Remove hack for terminals slower
3141 than 2400 bps, which throttled Emacs by having it sleep.
3142 This code hasn't worked since at least 2007, when the multi-tty stuff
3143 was added, and anyway those old terminals are long dead.
3144 * systty.h (EMACS_OUTQSIZE): Remove; unused. The macro isn't used even
3145 without the dispnew.c change, as dispnew.c doesn't include systty.h.
3146
3147 Fix data-loss with --version (Bug#9574).
3148 * emacs.c (close_output_streams): Use strerror, not emacs_strerror,
3149 as we can't assume that emacs_strerror is initialized, and strerror
3150 is good enough here.
3151 (main): Invoke atexit earlier, to catch earlier instances of
3152 sending data to stdout and exiting, e.g., "emacs --version >/dev/full".
3153
31542012-11-04 Michael Marchionna <tralfaz@pacbell.net>
3155
3156 * nsterm.m: Add NSClearLineFunctionKey and keypad keys (Bug#8680).
3157 (keyDown): Remap keypad keys to X11 virtual key codes.
3158
31592012-11-03 Paul Eggert <eggert@cs.ucla.edu>
3160
3161 Fix data-loss with --batch (Bug#9574).
3162 * emacs.c: Include <close-stream.h>.
3163 (close_output_streams): New function.
3164 (main): Pass it to atexit, so that Emacs closes stdout and stderr
3165 and handles errors appropriately.
3166 (Fkill_emacs): Don't worry about flushing, as close_output_stream
3167 does that now.
3168
3169 Fix a race condition that causes Emacs to mess up glib (Bug#8855).
3170 The symptom is a diagnostic "GLib-WARNING **: In call to
3171 g_spawn_sync(), exit status of a child process was requested but
3172 SIGCHLD action was set to SIG_IGN and ECHILD was received by
3173 waitpid(), so exit status can't be returned." The diagnostic
3174 is partly wrong, as the SIGCHLD action is not set to SIG_IGN.
3175 The real bug is a race condition between Emacs and glib: Emacs
3176 does a waitpid (-1, ...) and reaps glib's subprocess by mistake,
3177 so that glib can't find it. Work around the bug by invoking
3178 waitpid only on subprocesses that Emacs itself creates.
3179 * process.c (create_process, record_child_status_change):
3180 Don't use special value -1 in pid field, as the caller now must
3181 know the pid rather than having the callee infer it.
3182 The inference was sometimes incorrect anyway, due to another race.
3183 (create_process): Set new 'alive' member if child is created.
3184 (process_status_retrieved): New function.
3185 (record_child_status_change): Use it.
3186 Accept negative 1st argument, which means to wait for the
3187 processes that Emacs already knows about. Move special-case code
3188 for DOS_NT (which lacks WNOHANG) here, from caller. Keep track of
3189 processes that have already been waited for, by testing and
3190 clearing new 'alive' member.
3191 (CAN_HANDLE_MULTIPLE_CHILDREN): Remove, as record_child_status_change
3192 now does this internally.
3193 (handle_child_signal): Let record_child_status_change do all
3194 the work, since we do not want to reap all exited child processes,
3195 only the child processes that Emacs itself created.
3196 * process.h (Lisp_Process): New boolean member 'alive'.
3197
3198 Omit duplicate definitions no longer needed with gcc -g3.
3199 * lisp.h (GCTYPEBITS, GCALIGNMENT, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG)
3200 (VALMASK, MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM):
3201 Define only as macros. There's no longer any need to also define
3202 these symbols as enums or as constants, since we now assume
3203 gcc -g3 when debugging.
3204
32052012-11-03 Eli Zaretskii <eliz@gnu.org>
3206
3207 * lisp.mk: Adjust comments to the fact that term/internal is now
3208 loaded from loadup.el.
3209
3210 * msdos.c (msdos_abort): Rename from emacs_abort, and make static.
3211 (msdos_fatal_signal): New function.
3212 (XMenuActivate): Adjust the call to kbd_buffer_events_waiting to
3213 its argument list.
3214
3215 * conf_post.h (_GL_EXECINFO_INLINE) [MSDOS]: Define to "inline"
3216 for GCC versions before 4.
3217 (emacs_raise): Define to call msdos_fatal_signal.
3218
3219 * xdisp.c (init_from_display_pos): Fix initialization of the bidi
3220 iterator when starting in the middle of a display or overlay
3221 string. (Bug#12745)
3222
32232012-11-03 Chong Yidong <cyd@gnu.org>
3224
3225 * process.c (wait_reading_process_output): Clean up the last
3226 change.
3227
32282012-11-03 Jim Paris <jim@jtan.com> (tiny change)
3229
3230 * process.c (wait_reading_process_output): Avoid a race condition
3231 with SIGIO delivery (Bug#11536).
3232
32332012-11-03 Chong Yidong <cyd@gnu.org>
3234
3235 * buffer.c (cursor_type): Untabify docstring.
3236
32372012-11-03 Dmitry Antipov <dmantipov@yandex.ru>
3238
3239 * frame.h (struct frame): Drop can_have_scroll_bars member
3240 which is meaningless for a long time. Adjust comments.
3241 (FRAME_CAN_HAVE_SCROLL_BARS): Remove.
3242 * frame.c, nsfns.m, term.c, w32fns.c, xfns.c: Adjust users.
3243
32442012-11-03 Dmitry Antipov <dmantipov@yandex.ru>
3245
3246 * window.c (decode_next_window_args): Update window arg after
3247 calling decode_live_window and so fix crash reported at
3248 http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00035.html
3249 by Juanma Barranquero <lekktu@gmail.com>.
3250 (Fwindow_body_width, Fwindow_body_height): Simplify a bit.
3251 * font.c (Ffont_at): Likewise.
3252
32532012-11-01 Jan Djärv <jan.h.d@swipnet.se>
3254
3255 * widget.c (resize_cb): New function.
3256 (EmacsFrameRealize): Add resize_cb as event handler (Bug#12733).
3257 (EmacsFrameResize): Check if all is up to date before changing frame
3258 size.
3259 1049
32602012-11-02 Eli Zaretskii <eliz@gnu.org> 10502013-12-16 Eli Zaretskii <eliz@gnu.org>
3261
3262 Implement backtrace output for fatal errors on MS-Windows.
3263 * w32fns.c (CaptureStackBackTrace_proc): New typedef.
3264 (BACKTRACE_LIMIT_MAX): New macro.
3265 (w32_backtrace): New function.
3266 (emacs_abort): Use w32_backtrace when the user chooses not to
3267 attach a debugger. Update the text of the abort dialog.
3268
32692012-11-02 Dmitry Antipov <dmantipov@yandex.ru>
3270
3271 Window-related stuff cleanup here and there.
3272 * dispnew.c (Finternal_show_cursor, Finternal_show_cursor_p):
3273 Use decode_any_window.
3274 * fringe.c (Ffringe_bitmaps_at_pos): Likewise.
3275 * xdisp.c (Fformat_mode_line): Likewise.
3276 * font.c (Ffont_at): Use decode_live_window.
3277 * indent.c (Fcompute_motion, Fvertical_motion): Likewise.
3278 * window.c (decode_next_window_args): Likewise.
3279 (decode_any_window): Remove static.
3280 * window.h (decode_any_window): Add prototype.
3281 * lisp.h (CHECK_VALID_WINDOW, CHECK_LIVE_WINDOW): Move from here...
3282 * window.h: ...to here, redefine via WINDOW_VALID_P and WINDOW_LIVE_P,
3283 respectively.
3284
32852012-11-02 Dmitry Antipov <dmantipov@yandex.ru>
3286
3287 Remove pad from struct input_event.
3288 * termhooks.h (struct input_event): Remove padding field.
3289 Adjust comment.
3290 * keyboard.c (event_to_kboard): Simplify because frame_or_window
3291 member is never cons for a long time. Adjust comment.
3292 (mark_kboards): Adjust because SELECTION_REQUEST_EVENT and
3293 SELECTION_CLEAR_EVENT has no Lisp_Objects to mark. Add comment.
3294 * xterm.c (handle_one_xevent): Do not initialize frame_or_window
3295 field of SELECTION_REQUEST_EVENT and SELECTION_CLEAR_EVENT.
3296
32972012-11-01 Eli Zaretskii <eliz@gnu.org>
3298
3299 * w32proc.c (getpgrp, setpgid): New functions. (Bug#12776)
3300
33012012-10-31 Paul Eggert <eggert@cs.ucla.edu>
3302
3303 Fix crash when using Emacs as commit editor for git (Bug#12697).
3304 * callproc.c (setpgrp): Remove macro, as we now use setpgid
3305 and it is configured in conf_post.h.
3306 (Fcall_process): Don't invoke both setsid and setpgid; the former
3307 is enough, if it exists.
3308 * callproc.c (Fcall_process, child_setup):
3309 * process.c (create_process): Use setpgid.
3310 * conf_post.h (setpgid) [!HAVE_SETPGID]: New macro, which substitutes
3311 for the real thing.
3312 * dispnew.c (init_display): Initialize the foreground group
3313 if we are running a tty display.
3314 * emacs.c (main): Do not worry about setpgrp; init_display does it now.
3315 * lisp.h (init_foreground_group): New decl.
3316 * sysdep.c (inherited_pgroup): New static var.
3317 (init_foreground_group, tcsetpgrp_without_stopping)
3318 (narrow_foreground_group, widen_foreground_group): New functions.
3319 (init_sys_modes): Narrow foreground group.
3320 (reset_sys_modes): Widen foreground group.
3321
33222012-10-31 Michael Albinus <michael.albinus@gmx.de>
3323 1051
3324 * dbusbind.c: Fix cut'n'waste error. Use HAVE_DBUS_VALIDATE_INTERFACE. 1052 * xdisp.c (Fmove_point_visually): Fix subtle bugs in the fallback
1053 code, revealed in presence of R2L characters, character
1054 compositions, and display vectors. A better fix for Bug#16148.
1055 (extend_face_to_end_of_line): Don't reference tool_bar_window in
1056 GTK and NS builds, they don't have this member of struct frame.
3325 1057
33262012-10-31 Martin Rudalics <rudalics@gmx.at> 1058 * dispextern.h (struct composition_it): Correct a comment for the
1059 'width' member.
3327 1060
3328 * minibuf.c (read_minibuf): Restore current buffer since 10612013-12-16 Paul Eggert <eggert@cs.ucla.edu>
3329 choose_minibuf_frame calling Fset_frame_selected_window may
3330 change it (Bug#12766).
3331 1062
33322012-10-30 Jan Djärv <jan.h.d@swipnet.se> 1063 * font.h (valid_font_driver) [!ENABLE_CHECKING]: Define a dummy.
1064 This prevents a compilation error on C compilers that do not
1065 default functions to return 'int' if not declared. Also, add
1066 INLINE_HEADER_BEGIN and INLINE_HEADER_END to this include file,
1067 since it now uses inline functions.
3333 1068
3334 * frame.c (Fframe_pixel_height): Fix documentation (Bug#12733). 10692013-12-16 Eli Zaretskii <eliz@gnu.org>
3335 1070
33362012-10-30 Kenichi Handa <handa@gnu.org> 1071 * xdisp.c (extend_face_to_end_of_line): Don't fill background of
1072 display margins on mode line, header line, and in the frame's
1073 tool-bar window. (Bug#16165)
3337 1074
3338 * font.c (Ffont_at): If WINDOW is specified and it is not 10752013-12-16 Andreas Schwab <schwab@suse.de>
3339 displaying the current buffer, signal an error.
3340 1076
33412012-10-29 Daniel Colascione <dancol@dancol.org> 1077 * gnutls.c (Fgnutls_boot): Properly check Flistp return value.
3342 1078
3343 * cygw32.h, cygw32.c (Qutf_16le, from_unicode, to_unicode): 10792013-12-16 Teodor Zlatanov <tzz@lifelogs.com>
3344 In preparation for fixing bug#12739, move these functions from
3345 here...
3346 1080
3347 * coding.h, coding.c: ... to here, and compile them only when 1081 * gnutls.c (Fgnutls_boot): Use `Flistp' instead of
3348 WINDOWSNT or CYGWIN. Moving these functions out of cygw32 proper 1082 `CHECK_LIST_CONS'.
3349 lets us write cygw32-agnostic code for the HAVE_NTGUI case.
3350
33512012-10-28 Eli Zaretskii <eliz@gnu.org>
3352
3353 * w32proc.c (TIMER_TICKS_PER_SEC): New macro.
3354 (timer_loop, getitimer, setitimer): Use it instead of
3355 CLOCKS_PER_SEC, which is no longer pertinent, since we don't use
3356 'clock'.
3357 (w32_get_timer_time): Use 10*TIMER_TICKS_PER_SEC instead of a
3358 literal 10000.
3359
33602012-10-28 Jan Djärv <jan.h.d@swipnet.se>
3361
3362 * nsterm.m (NO_APPDEFINED_DATA): New define.
3363 (last_appdefined_event_data): New variable
3364 (last_appdefined_event): Remove.
3365 (ns_select): Initialize t from last_appdefined_event_data instead
3366 of [last_appdefined_event data1].
3367 (sendEvent:): Save [theEvent data1] to last_appdefined_event_data,
3368 remove last_appdefined_event (Bug#12698).
3369 1083
33702012-10-28 Stefan Monnier <monnier@iro.umontreal.ca> 10842013-12-16 Martin Rudalics <rudalics@gmx.at>
3371 1085
3372 * frame.c (x_set_font): Catch internal error. 1086 * w32term.c (w32_enable_frame_resize_hack): Default to 1.
3373 1087
33742012-10-27 Eli Zaretskii <eliz@gnu.org> 10882013-12-16 Dmitry Antipov <dmantipov@yandex.ru>
3375 1089
3376 Avoid overflow in w32 implementation of interval timers. 1090 * font.c (valid_font_driver) [ENABLE_CHECKING]: New function
3377 When possible, for ITIMER_PROF count only times the main thread 1091 intended to find bogus pointers in font objects (Bug#16140).
3378 actually executes. 1092 * font.h (valid_font_driver) [ENABLE_CHECKING]: Add prototype.
3379 * w32proc.c <struct itimer_data>: 'expire' and 'reload' are now 1093 * alloc.c (cleanup_vector): Use valid_font_driver in eassert.
3380 'volatile ULONGLONG' types. All the other data which was 1094 (compact_font_cache_entry, compact_font_caches) [!HAVE_NTGUI]:
3381 previously clock_t is now ULONGLONG. 'terminate' is 'volatile int'. 1095 Disable for MS-Windows due to Bug#15876; apparently this
3382 (GetThreadTimes_Proc): New typedef. 1096 requires more or less substantial changes in fontset code.
3383 (w32_get_timer_time): New function, returns a suitable time value 1097 * xfont.c (xfont_close):
3384 for the timer. 1098 * xftfont.c (xftfont_close): Call x_display_info_for_display
3385 (timer_loop): Enter critical section when accessing ULONGLONG 1099 to check whether 'Display *' is valid (Bug#16093 and probably
3386 values of the itimer_data struct, as these accesses are no longer 1100 Bug#16069).
3387 atomic. Call 'w32_get_timer_time' instead of 'clock'.
3388 Remove unused variable.
3389 (init_timers): Initialize s_pfn_Get_Thread_Times.
3390 (start_timer_thread): Don't assign itimer->caller_thread here.
3391 (getitimer): Assign itimer->caller_thread here.
3392 (setitimer): Always call getitimer to get the value of ticks_now.
3393 (sys_spawnve): Avoid compiler warning about format mismatch.
3394 1101
33952012-10-26 Eli Zaretskii <eliz@gnu.org> 11022013-12-15 Eli Zaretskii <eliz@gnu.org>
3396 1103
3397 * w32fns.c (w32_wnd_proc) <WM_MOUSEMOVE>: Don't enable tracking of 1104 * fileio.c (Fexpand_file_name) [WINDOWSNT]: Fix conditionals.
3398 mouse movement events if the menu bar is active. This avoids 1105 Reported by Juanma Barranquero <lekktu@gmail.com>.
3399 producing a busy "hour-glass" cursor by Windows if the mouse
3400 pointer is positioned over a tooltip shown for some menu item.
3401 1106
34022012-10-25 Paul Eggert <eggert@cs.ucla.edu> 1107 * process.c (Fprocess_send_eof): Don't crash if someone tries to
1108 open a pty on MS-Windows. (Bug#16152)
1109
1110 * emacs.c (decode_env_path): Fix bogus comparison against
1111 emacs_dir. Reported by Juanma Barranquero <lekktu@gmail.com>.
1112
11132013-12-15 Juanma Barranquero <lekktu@gmail.com>
1114
1115 * w32fns.c (Fw32_shell_execute): Remove unused local variable.
1116 (Fx_file_dialog): Add parentheses around && to silence warning.
1117
1118 * w32term.c (construct_drag_n_drop): Remove unused local variable.
1119
11202013-12-15 Eli Zaretskii <eliz@gnu.org>
1121
1122 * xdisp.c (extend_face_to_end_of_line): Extend background of
1123 non-default face in margin areas as well. (Bug#16151)
1124 (display_line): Call extend_face_to_end_of_line for continued
1125 lines as well, if the display margins have non-zero width.
1126 (set_glyph_string_background_width): When needed, set the
1127 extends_to_end_of_line_p flag on glyph strings to be drawn in
1128 margin areas, not only in the text area.
1129
1130 * frame.h (FRAME_MOUSE_UPDATE): Fix a typo that caused infloop at
1131 startup.
1132
11332013-12-15 Paul Eggert <eggert@cs.ucla.edu>
1134
1135 * gnutls.c (Fgnutls_boot): Fix typo; "!" applied to a Lisp_Object.
1136 Don't worry about verify_error being t, since it has to be a list.
1137
11382013-12-14 Paul Eggert <eggert@cs.ucla.edu>
1139
1140 Use bool for boolean, focusing on headers.
1141 * atimer.h, lisp.h, syssignal.h, syswait.h, unexelf.c:
1142 No need to include <stdbool.h>, since conf_post.h does it now.
1143 * buffer.h (BUF_COMPUTE_UNCHANGED, DECODE_POSITION)
1144 (BUFFER_CHECK_INDIRECTION, GET_OVERLAYS_AT, PER_BUFFER_VALUE_P)
1145 (SET_PER_BUFFER_VALUE_P):
1146 * ccl.c, ccl.h (setup_ccl_program):
1147 * ccl.h (CHECK_CCL_PROGRAM):
1148 * character.h (MAKE_CHAR_UNIBYTE, CHECK_CHARACTER_CAR)
1149 (CHECK_CHARACTER_CDR, CHAR_STRING_ADVANCE, NEXT_CHAR_BOUNDARY)
1150 (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE)
1151 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE)
1152 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, FETCH_CHAR_ADVANCE)
1153 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, INC_BOTH)
1154 (DEC_BOTH, BUF_INC_POS, BUF_DEC_POS):
1155 * charset.h (CHECK_CHARSET, CHECK_CHARSET_GET_ID)
1156 (CHECK_CHARSET_GET_ATTR, CHECK_CHARSET_GET_CHARSET)
1157 (CHARSET_FAST_MAP_SET):
1158 * coding.c (decode_coding_ccl, encode_coding_ccl):
1159 * coding.h (CHECK_CODING_SYSTEM, CHECK_CODING_SYSTEM_GET_SPEC)
1160 (CHECK_CODING_SYSTEM_GET_ID, SJIS_TO_JIS, SJIS_TO_JIS2)
1161 (JIS_TO_SJIS, JIS_TO_SJIS2, ENCODE_FILE, DECODE_FILE)
1162 (ENCODE_SYSTEM, DECODE_SYSTEM, ENCODE_UTF_8)
1163 (decode_coding_c_string):
1164 * composite.h (COMPOSITION_DECODE_REFS, COMPOSITION_DECODE_RULE):
1165 * conf_post.h (has_attribute):
1166 * dispextern.h (trace_redisplay_p):
1167 (INC_TEXT_POS, DEC_TEXT_POS, SET_GLYPH_FROM_GLYPH_CODE)
1168 (SET_CHAR_GLYPH, SET_CHAR_GLYPH_FROM_GLYPH)
1169 (SET_GLYPH_FROM_CHAR_GLYPH):
1170 (WINDOW_WANTS_MODELINE_P, WINDOW_WANTS_HEADER_LINE_P)
1171 (FACE_SUITABLE_FOR_ASCII_CHAR_P, FACE_SUITABLE_FOR_CHAR_P)
1172 (PRODUCE_GLYPHS, reset_mouse_highlight, in_display_vector_p)
1173 (cursor_in_mouse_face_p):
1174 * dispnew.c (adjust_glyph_matrix, clear_glyph_matrix_rows)
1175 (blank_row, prepare_desired_row)
1176 (build_frame_matrix_from_leaf_window, make_current)
1177 (mirror_make_current, mirrored_line_dance, mirror_line_dance)
1178 (update_window, scrolling_window, update_frame_line):
1179 * disptab.h (GLYPH_FOLLOW_ALIASES):
1180 * editfns.c (Fformat):
1181 * font.h (FONT_WEIGHT_SYMBOLIC, FONT_SLANT_SYMBOLIC)
1182 (FONT_WIDTH_SYMBOLIC, FONT_WEIGHT_FOR_FACE, FONT_SLANT_FOR_FACE)
1183 (FONT_WIDTH_FOR_FACE, FONT_WEIGHT_NAME_NUMERIC)
1184 (FONT_SLANT_NAME_NUMERIC, FONT_WIDTH_NAME_NUMERIC)
1185 (FONT_SET_STYLE, CHECK_FONT, CHECK_FONT_SPEC, CHECK_FONT_ENTITY)
1186 (CHECK_FONT_OBJECT, CHECK_FONT_GET_OBJECT, FONT_ADD_LOG)
1187 (FONT_DEFERRED_LOG):
1188 * frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_WINDOW_P):
1189 (FRAME_EXTERNAL_TOOL_BAR, FRAME_EXTERNAL_MENU_BAR, FOR_EACH_FRAME)
1190 (FRAME_MOUSE_UPDATE):
1191 * fringe.c (Fdefine_fringe_bitmap):
1192 * image.c (x_create_bitmap_from_data, x_create_bitmap_mask)
1193 (x_create_bitmap_from_xpm_data, xpm_load_image):
1194 * intervals.h (INTERVAL_HAS_PARENT, INTERVAL_PARENT)
1195 (set_interval_parent, RESET_INTERVAL, COPY_INTERVAL_CACHE)
1196 (MERGE_INTERVAL_CACHE):
1197 * keymap.h (KEYMAPP):
1198 * lisp.h (eassert, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE)
1199 (STRING_SET_UNIBYTE, STRING_SET_MULTIBYTE, DEFSYM, PSEUDOVECTORP)
1200 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER)
1201 (CHECK_NUMBER_COERCE_MARKER, CHECK_NUMBER_OR_FLOAT_COERCE_MARKER)
1202 (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL, DEFVAR_INT)
1203 (DEFVAR_BUFFER_DEFAULTS, DEFVAR_KBOARD, QUIT)
1204 (RETURN_UNGCPRO, USE_SAFE_ALLOCA, SAFE_NALLOCA, SAFE_FREE)
1205 (SAFE_ALLOCA_LISP, FOR_EACH_ALIST_VALUE, functionp):
1206 * syntax.h (SYNTAX_ENTRY, SYNTAX_WITH_FLAGS, SYNTAX)
1207 (UPDATE_SYNTAX_TABLE_FORWARD, UPDATE_SYNTAX_TABLE_BACKWARD)
1208 (SETUP_BUFFER_SYNTAX_TABLE):
1209 * systime.h (timespec_valid_p):
1210 * term.c (save_and_enable_current_matrix):
1211 * window.h (WINDOW_MENU_BAR_P, WINDOW_TOOL_BAR_P):
1212 * xdisp.c (in_display_vector_p, display_tool_bar_line)
1213 (redisplay_internal, try_window_reusing_current_matrix)
1214 (sync_frame_with_window_matrix_rows, try_window_id)
1215 (display_menu_bar, display_tty_menu_item, display_mode_line)
1216 (coords_in_mouse_face_p, cursor_in_mouse_face_p):
1217 * xdisp.c (trace_redisplay_p) [GLYPH_DEBUG]:
1218 * xmenu.c (xmenu_show):
1219 * xterm.c (use_xim, x_term_init):
1220 * xterm.h (XSync, GTK_CHECK_VERSION, use_xim, SET_SCROLL_BAR_X_WIDGET)
1221 (struct x_bitmap_record):
1222 Use bool for booleans.
1223 * ccl.c (struct buffer_text):
1224 * ccl.h (struct ccl_program):
1225 * charset.h (struct charset):
1226 * cm.h (struct cm):
1227 * coding.h (struct iso_2022_spec, struct coding_system):
1228 * dispextern.h (struct glyph, struct glyph_matrix, struct glyph_row)
1229 (struct glyph_string, struct face, struct face_cache)
1230 (struct bidi_string_data, struct bidi_it)
1231 (struct draw_fringe_bitmap_params, struct it, Mouse_HLInfo)
1232 (struct image):
1233 * editfns.c (Fformat):
1234 * frame.h (struct frame):
1235 * fringe.c (struct fringe_bitmap):
1236 * intervals.h (struct interval):
1237 * keyboard.h (struct kboard):
1238 * lisp.h (struct Lisp_Symbol, struct Lisp_Misc_Any, struct Lisp_Marker)
1239 (struct Lisp_Overlay, struct Lisp_Save_Value, struct Lisp_Free)
1240 (struct Lisp_Buffer_Local_Value, union specbinding):
1241 * macfont.m (struct macfont_info):
1242 * process.h (struct Lisp_Process):
1243 * termchar.h (struct tty_display_info):
1244 * window.h (struct window):
1245 * xterm.h (struct x_output):
1246 Use bool_bf for boolean bit-fields.
1247 * ccl.c (setup_ccl_program): Now returns bool instead of -1 or 0.
1248 All callers changed.
1249 * ccl.h (struct ccl_program): Remove unused members private_state,
1250 src_multibyte, dst_multibyte, cr_consumed, suppress_error,
1251 eight_bit_control.
1252 (struct ccl_spec): Remove unused members cr_carryover,
1253 eight_bit_carryover.
1254 * conf_post.h: Include <stdbool.h>.
1255 (bool_bf): New type.
1256 * dispextern.h (TRACE, PREPARE_FACE_FOR_DISPLAY):
1257 * intervals.h (RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE)
1258 Surround statement macro with proper 'do { ... } while (false)' brackets.
1259 * dispextern.h (IF_DEBUG): Properly parenthesize and convert to void.
1260 Args must now be expressions; all callers changed.
1261 (SET_MATRIX_ROW_ENABLED_P): Assume 2nd arg is bool.
1262 (PRODUCE_GLYPHS): Simplify use of boolean.
1263 * fileio.c (Fcopy_file):
1264 If I is an integer, prefer 'if (I != 0)' to 'if (I)'.
1265 * lisp.h (UNGCPRO): Return void, not int.
1266 (FOR_EACH_TAIL): Use void expression, not int expression.
1267 * region-cache.c: Reindent.
1268 * region-cache.h: Copy comments from region-cache.c, to fix
1269 incorrect remarks about booleans.
3403 1270
3404 Don't assume process IDs fit in int. 12712013-12-14 Eli Zaretskii <eliz@gnu.org>
3405 * emacs.c (shut_down_emacs) [!DOS_NT]:
3406 * sysdep.c (sys_suspend) [SIGTSTP && !MSDOS]:
3407 * term.c (dissociate_if_controlling_tty) [!DOS_NT]:
3408 Use pid_t, not int, to store process IDs, as 'int'
3409 is not wide enough on a few platforms (e.g., AIX and IRIX).
3410 1272
34112012-10-23 Kenichi Handa <handa@gnu.org> 1273 * xdisp.c (Fmove_point_visually): Expect overshoot in move_it_to
1274 when character at point is displayed from a display vector.
1275 (Bug#16148)
3412 1276
3413 The following change is to make face-font-rescale-alist work 12772013-12-14 Teodor Zlatanov <tzz@lifelogs.com>
3414 correctly for non-ASCII fonts.
3415 1278
3416 * font.c (font_open_entity): Don't handle Vface_font_rescale_alist. 1279 * gnutls.c: Replace `:verify_hostname_error' with `:verify_error',
3417 (font_open_for_lface): Handle Vface_font_rescale_alist. 1280 now a list of certificate validation checks that will abort a
1281 connection with an error.
1282 (Fgnutls_boot): Document it and use it.
3418 1283
34192012-10-23 Chong Yidong <cyd@gnu.org> 12842013-12-14 Martin Rudalics <rudalics@gmx.at>
3420 1285
3421 * xfaces.c (Vfont_list_limit): Move unused variable to faces.el. 1286 * w32term.c (w32_enable_frame_resize_hack): New variable.
1287 (x_set_window_size): Use it to hack frame resizing on Windows
1288 (Bug#16028).
3422 1289
34232012-10-21 Jan Djärv <jan.h.d@swipnet.se> 12902013-12-14 Eli Zaretskii <eliz@gnu.org>
3424 1291
3425 * nsfont.m (nsfont_open, ns_glyph_metrics): Force integer advancement 1292 * fileio.c (Fcopy_file) [WINDOWSNT]: Move most of the
3426 for screen font. 1293 Windows-specific code to w32.c. Change error message text to
3427 (nsfont_draw): Turn off LCD-smoothing (Bug#11484). 1294 match that of Posix platforms.
3428 1295
3429 * xterm.c (x_focus_changed): Check if daemonp when sending focus in 1296 * w32.c (w32_copy_file): New function, most of the code copied and
3430 event (Bug#12681). 1297 reworked from Fcopy_file. Improve error handling. Plug memory
1298 leak when errors are thrown. Support file names outside of the
1299 current codepage. (Bug#7100)
3431 1300
34322012-10-21 Glenn Morris <rgm@gnu.org> 13012013-12-13 Paul Eggert <eggert@cs.ucla.edu>
3433 1302
3434 * lisp.mk (lisp): Add cp51932.el and eucjp-ms.el. 1303 * lread.c (load_path_default): Prototype.
3435 1304
34362012-10-20 Paul Eggert <eggert@cs.ucla.edu> 13052013-12-13 Glenn Morris <rgm@gnu.org>
3437 1306
3438 Port to OpenBSD 5.1. 1307 * lread.c: Unconditionally reset load-path after dumping. (Bug#16107)
3439 * frame.c (Fmouse_position, Fmouse_pixel_position): 1308 (dump_path): Remove.
3440 * xdisp.c (produce_stretch_glyph): 1309 (load-path-default): Remove `changed' argument.
3441 Declare local vars only when they're needed. 1310 Do not set dump_path permanently. Simplify.
3442 This is clearer and avoids a warning on OpenBSD about unused vars. 1311 (init_lread): Simplify.
3443 * frame.h (FRAME_WINDOW_P): Always evaluate its argument. 1312 (syms_of_lread): Remove dump_path.
3444 This is safer, and avoids OpenBSD warnings about unused vars.
3445 * keyboard.c (record_menu_key): Remove unnecessary decl.
3446 (poll_timer): Define only if POLL_FOR_INPUT is defined.
3447 * unexelf.c (ELFSIZE) [!ElfW]: Do not define if already defined,
3448 as our definition clashes with OpenBSD's.
3449 * xfaces.c (load_face_colors, check_lface_attrs)
3450 (get_lface_attributes_no_remap, get_lface_attributes)
3451 (lface_fully_specified_p, x_supports_face_attributes_p)
3452 (tty_supports_face_attributes_p, face_fontset, realize_face)
3453 (realize_x_face, realize_tty_face):
3454 Declare parameters to be Lisp_Object[LFACE_VECTOR_SIZE], not
3455 merely Lisp_Object *. This is more informative and avoids
3456 a warning on OpenBSD about accessing beyond an object's size.
3457 1313
34582012-10-20 Chong Yidong <cyd@gnu.org> 13142013-12-13 Dmitry Antipov <dmantipov@yandex.ru>
3459 1315
3460 * lread.c (Fload): Doc fix (Bug#12592). 1316 * alloc.c, font.c, font.h, ftfont.c, ftxfont.c, macfont.m,
1317 * nsfont.m, w32font.c, xfont.c, xftfont.c: Revert last and
1318 2013-12-12 font-related change to avoid Bug#16128, which
1319 is quite hard to fix without even more substantial changes.
3461 1320
34622012-10-19 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change) 13212013-12-13 Dmitry Antipov <dmantipov@yandex.ru>
3463 1322
3464 * font.c (Ffont_at): Fix previous change. 1323 * font.c (font_close_object): Check for live frame (Bug#16128).
3465 1324
34662012-10-19 Eli Zaretskii <eliz@gnu.org> 13252013-12-13 Paul Eggert <eggert@cs.ucla.edu>
3467 1326
3468 * puresize.h (BASE_PURESIZE): Bump the base value to 1700000. 1327 * gnutls.c, gnutls.h (emacs_gnutls_record_check_pending):
3469 See http://lists.gnu.org/archive/html/emacs-devel/2012-10/msg00593.html 1328 Return ptrdiff_t, not int, since it's a buffer size.
3470 for the reasons. 1329 Reindent/reparen some macros to a more Gnuish style.
3471 1330
3472 * alloc.c (NSTATICS): Decrease to 0x800. 13312013-12-12 Paul Eggert <eggert@cs.ucla.edu>
3473 1332
34742012-10-19 Stefan Monnier <monnier@iro.umontreal.ca> 1333 Avoid undefined behavior with huge regexp interval counts.
1334 * regex.c (GET_INTERVAL_COUNT): Rename from 'GET_UNSIGNED_NUMBER',
1335 since it's now specialized to interval counts. All uses changed.
1336 Do not assume wrapraound on signed integer overflow.
1337 (regex_compile): Simplify based on the above changes.
3475 1338
3476 * fns.c (Fnreverse): Include the problem element when signaling an 13392013-12-12 Eli Zaretskii <eliz@gnu.org>
3477 error (bug#12677).
3478 1340
34792012-10-18 Jan Djärv <jan.h.d@swipnet.se> 1341 Support file names on MS-Windows that use characters outside of
1342 the current system codepage. (Bug#7100)
3480 1343
3481 * nsterm.m (ns_select): Check writefds before call to 1344 * w32.c (get_file_security, set_file_security)
3482 FD_ISSET (Bug#12668). 1345 (create_symbolic_link): Separate pointers and boolean flags for
1346 ANSI and Unicode APIs. Use the latter if w32_unicode_filenames is
1347 non-zero, else the former.
1348 (codepage_for_filenames, filename_to_utf16, )
1349 (filename_from_utf16, filename_to_ansi, filename_from_ansi): New
1350 functions.
1351 (init_user_info): Allow $HOME and $SHELL to include non-ANSI
1352 characters.
1353 (normalize_filename): Lose the DBCS code, now works on UTF-8.
1354 Accept only one argument; all callers changed.
1355 (dostounix_filename): Remove the second argument, now works in
1356 UTF-8. All callers changed.
1357 (parse_root): Lose DBCS code.
1358 (get_long_basename, w32_get_short_filename, init_environment)
1359 (GetCachedVolumeInformation, sys_readdir, open_unc_volume)
1360 (read_unc_volume, logon_network_drive, faccessat, sys_chdir)
1361 (sys_chmod, sys_creat, sys_fopen, sys_link, sys_mkdir, sys_open)
1362 (sys_rename_replace, sys_rmdir, sys_unlink, stat_worker, utime)
1363 (is_symlink, readlink, chase_symlinks, w32_delayed_load): Work in
1364 Unicode mode if w32_unicode_filenames is non-zero, in ANSI mode
1365 otherwise.
1366 (ansi_encode_filename): New function.
1367 (get_emacs_configuration, get_emacs_configuration_options):
1368 Functions deleted.
1369 (add_volume_info, GetCachedVolumeInformation): Run the input file
1370 name through unixtodos_filename, to ensure it is stored and
1371 referenced in canonical form.
1372 (get_volume_info): Lose the DBCS code, now works in UTF-8.
1373 (logon_network_drive, sys_link, utime): Improve error handling.
1374 (sys_access): New function.
1375 (hashval, generate_inode_val): Unused functions deleted.
1376 (symlink, readlink, readlinkat): Lose DBCS code, now works in UTF-8.
1377 (check_windows_init_file): Convert error message from UTF-8 to
1378 ANSI codepage, for display in the message box.
1379 (globals_of_w32): Set w32_unicode_filenames according to the OS
1380 version.
1381
1382 * w32term.c (construct_drag_n_drop): Work in Unicode mode when
1383 w32_unicode_filenames is non-zero, ANSI mode otherwise.
1384 (syms_of_w32term): Declare w32-unicode-filenames.
1385
1386 * w32proc.c (new_child, delete_child): Remove code that handled
1387 unused pending_deletion and input_file members of the child struct.
1388 (create_child, sys_spawnve): Convert all file names to ANSI
1389 codepage. Use ANSI APIs explicitly; forcibly fail if any file
1390 name cannot be encoded in ANSI codepage. Don't use
1391 unixtodos_filename, mirror slashes by hand.
1392 (record_infile, record_pending_deletion): Functions deleted.
1393 (Fw32_short_file_name): Call w32_get_short_filename instead of
1394 GetShortPathName.
1395
1396 * w32notify.c (add_watch): Work in Unicode mode when
1397 w32_unicode_filenames is non-zero, ANSI mode otherwise.
1398 (Fw32notify_add_watch): Rewrite to avoid using GetFullPathName;
1399 instead, do the same with Lisp primitives.
1400
1401 * w32fns.c (file_dialog_callback, Fx_file_dialog)
1402 (Fsystem_move_file_to_trash, Fw32_shell_execute)
1403 (Ffile_system_info, Fdefault_printer_name): Work in Unicode mode
1404 when w32_unicode_filenames is non-zero, ANSI mode otherwise.
1405 (Fw32_shell_execute): Improve error reporting.
1406 (Fdefault_printer_name): Ifdef away for Cygwin.
1407
1408 * w32.h (struct _child_process): Remove input_file and
1409 pending_deletion members that are no longer used.
1410 (dostounix_filename, w32_get_short_filename, filename_from_ansi)
1411 (filename_to_ansi, filename_from_utf16, filename_to_utf16)
1412 (ansi_encode_filename): New and updated prototypes.
1413
1414 * unexw32.c (open_input_file, open_output_file, unexec): Use ANSI
1415 APIs explicitly.
1416 (unexec): Don't use dostounix_filename, it expects a file name in
1417 UTF-8. Instead, mirror backslashes by hand. Convert NEW_NAME to
1418 ANSI encoding.
3483 1419
34842012-10-18 Daniel Colascione <dancol@dancol.org> 1420 * fileio.c (Ffile_name_directory, file_name_as_directory)
1421 (directory_file_name, Fexpand_file_name)
1422 (Fsubstitute_in_file_name) [WINDOWSNT]: Adapt to the change in
1423 arguments of dostounix_filename.
1424 (Fexpand_file_name) [WINDOWSNT]: Convert value of $HOME to UTF-8.
1425 use MAX_UTF8_PATH for size of file-name strings.
1426 (emacs_readlinkat): Build an explicitly unibyte string for file
1427 names.
1428 (syms_of_fileio) <file-name-coding-system>:
1429 <default-file-name-coding-system>: Mention MS-Windows peculiarities.
1430
1431 * emacs.c (init_cmdargs) [WINDOWSNT]: Convert argv[0] to UTF-8.
1432 (main) [WINDOWSNT]: Convert the argv[] elements that are files or
1433 directories to UTF-8.
1434 (decode_env_path) [WINDOWSNT]: Convert file names taken from the
1435 environment, and each element of the input PATH, to UTF-8.
1436
1437 * dired.c (file_attributes): Use build_unibyte_string explicitly
1438 to make Lisp strings from user and group names.
1439
1440 * coding.h (ENCODE_FILE, DECODE_FILE): Just call encode_file and
1441 decode_file.
1442
1443 * coding.c (decode_file_name, encode_file_name): New functions.
1444
1445 * termcap.c (tgetent): Adapt to the change in arguments of
1446 dostounix_filename.
3485 1447
3486 * alloc.c (NSTATICS): Increase from 0x650 to 0x1000 1448 * sysdep.c (sys_subshell) [WINDOWSNT]: Use MAX_UTF8_PATH for file
3487 (staticpro): If we run out of staticpro slots, die with an 1449 names.
3488 informative error instead of just calling emacs_abort. 1450
1451 * msdos.c (dostounix_filename, init_environment): Adapt to the
1452 change in arguments of dostounix_filename.
1453
1454 * image.c (xpm_load, tiff_load, gif_load, imagemagick_load)
1455 [WINDOWSNT]: Encode file names passed to the image libraries in
1456 ANSI codepage.
1457
1458 * gnutls.c (Fgnutls_boot): Encode all file names passed to GnuTLS.
1459 [WINDOWSNT]: Convert file names to the current ANSI codepage.
1460
1461 * filelock.c (lock_file) [WINDOWSNT]: Adapt to the change in
1462 arguments of dostounix_filename.
1463
14642013-12-12 Dmitry Antipov <dmantipov@yandex.ru>
1465
1466 * font.h (struct font_entity) [HAVE_NS]: New field to record
1467 font driver which was used to create this entity.
1468 (struct font) [HAVE_WINDOW_SYSTEM]: New field to record
1469 frame where the font was opened.
1470 (font_close_object): Add prototype.
1471 * font.c (font_make_entity) [HAVE_NS]: Zero out driver field.
1472 (font_close_object): Not static any more. Lost frame arg.
1473 Adjust comment and users.
1474 * alloc.c (cleanup_vector): Call font_close_object to adjust
1475 per-frame font counters correctly. If HAVE_NS, also call
1476 driver-specific cleanup for font-entity objects.
1477 * ftfont.c (ftfont_open):
1478 * nsfont.m (nsfont_open):
1479 * w32font.c (w32font_open_internal):
1480 * xfont.c (xfont_open):
1481 * xftfont.c (xftfont_open): Save frame pointer in font object.
1482 * macfont.m (macfont_open): Likewise.
1483 (macfont_descriptor_entity): Save driver pointer to be able
1484 to call its free_entity routine when font-entity is swept.
1485 * ftxfont.c (ftxfont_open): Add eassert because frame
1486 pointer should be saved by ftfont_driver.open.
1487
14882013-12-12 Dmitry Antipov <dmantipov@yandex.ru>
1489
1490 * xterm.c (x_make_frame_visible): Restore hack which is needed when
1491 input polling is used. This is still meaningful for Cygwin, see
1492 http://lists.gnu.org/archive/html/emacs-devel/2013-12/msg00351.html.
1493 * keyboard.c (poll_for_input_1, input_polling_used): Define
1494 unconditionally.
1495 * dispextern.h (FACE_SUITABLE_FOR_CHAR_P): Remove unused macro.
1496 (FACE_FOR_CHAR): Simplify because face_for_char does the same.
1497 * fontset.c (face_suitable_for_char_p) [0]: Remove unused function.
1498 (font_for_char): Prefer ptrdiff_t to int for buffer position.
1499 (face_for_char): Likewise. Rearrange eassert and return ASCII
1500 face for CHAR_BYTE8_P.
1501 * fontset.h (font_for_char, face_for_char): Adjust prototypes.
1502
15032013-12-11 Ken Brown <kbrown@cornell.edu>
1504
1505 * dispextern.h (erase_phys_cursor):
1506 * keyboard.h (make_ctrl_char): Declare prototypes if HAVE_NTGUI.
1507
15082013-12-11 Dmitry Antipov <dmantipov@yandex.ru>
3489 1509
34902012-10-18 Martin Rudalics <rudalics@gmx.at> 1510 * nsterm.m (x_free_frame_resources):
1511 * term.c (tty_free_frame_resources):
1512 * xterm.c (x_free_frame_resources): Do not check for non-NULL
1513 face cache because it's implied by free_frame_faces anyway.
1514 * w32term.c (x_free_frame_resources): Likewise. Do not call
1515 free_frame_faces twice.
3491 1516
3492 Fix two flaws reported by Dmitry Antipov. 15172013-12-11 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
3493 * window.c (Ftemp_output_buffer_show): Remove.
3494 (Fwindow_vscroll, Fset_window_vscroll): Use decode_live_window.
3495 (syms_of_window): Remove defsubr for Stemp_output_buffer_show.
3496 1518
34972012-10-17 Eli Zaretskii <eliz@gnu.org> 1519 * editfns.c (Fformat_time_string): Mention %F in the doc.
3498 1520
3499 * makefile.w32-in ($(BLD)/w32.$(O)): 15212013-12-11 Martin Rudalics <rudalics@gmx.at>
3500 ($(BLD)/vm-limit.$(O)):
3501 ($(BLD)/term.$(O)):
3502 ($(BLD)/unexw32.$(O)):
3503 ($(BLD)/fileio.$(O)):
3504 ($(BLD)/dispnew.$(O)): Update dependencies.
3505 1522
3506 * w32term.h (w32_initialize_display_info, initialize_w32_display): 1523 * window.c (resize_frame_windows): Don't return immediately when
3507 Add prototypes. 1524 the root window's size doesn't change - the minibuffer window
1525 may still have to be repositioned/resized.
1526 * xfns.c (Fx_create_frame): Always change the frame size after
1527 initializing the frame's faces.
1528 * xterm.c (handle_one_xevent): Don't set pixel sizes here,
1529 change_frame_size should already have done it.
1530 (x_new_font): Assign new tool- and menu-bar heights.
1531 (x_set_window_size_1): Account for tool- and menu-bar heights
1532 (Bug#16013). Don't set pixel sizes since change_frame_size
1533 should already have done it.
3508 1534
3509 * w32proc.c: Include ctype.h. 15352013-12-11 Paul Eggert <eggert@cs.ucla.edu>
3510 1536
3511 * w32.h (init_environment, check_windows_init_file) 1537 Remove the option of using libcrypto.
3512 (syms_of_ntproc, syms_of_ntterm, dostounix_filename) 1538 * Makefile.in (LIB_CRYPTO): Remove.
3513 (unixtodos_filename, init_winsock, srandom, random, sys_pipe) 1539 (LIBES): Don't use it.
3514 (set_process_dir, sys_spawnve, register_child, sys_sleep, getwd)
3515 (sys_link): Add prototypes.
3516 1540
3517 * w32.c: Include w32select.h. 15412013-12-11 Juri Linkov <juri@jurta.org>
3518 (sys_access, e_malloc, sys_select): Add prototypes.
3519 (emacs_gnutls_pull): 'timeout' is now EMACS_TIME, not struct timeval.
3520 1542
3521 * vm-limit.c [WINDOWSNT]: Include w32heap.h. 1543 * term.c (term_get_fkeys_1): Remove non-standard IBM terminfo
1544 as obsolete to avoid conflicts with <S-up>. (Bug#13471)
3522 1545
3523 * unexw32.c: Include lisp.h and w32.h. 15462013-12-10 Dmitry Antipov <dmantipov@yandex.ru>
3524 1547
3525 * term.c [WINDOWSNT]: Include w32term.h. 1548 * xdisp.c (display_tool_bar_line): Don't extend on a previously
1549 drawn tool bar items (Bug#16058).
1550 * font.c (font_find_for_lface): Ensure SAFE_FREE on return.
3526 1551
3527 * process.c [WINDOWSNT]: Add prototype of sys_select. 15522013-12-09 Ken Brown <kbrown@cornell.edu>
3528 1553
3529 * fileio.c [WINDOWSNT]: Include w32.h. 1554 * frame.c (get_frame_param): Make extern if HAVE_NTGUI.
3530 1555
3531 * dispnew.c [WINDOWSNT]: Include w32.h. 1556 * lisp.h (get_frame_param): Adjust conditions for prototype
1557 declaration.
3532 1558
3533 * cygw32.c (Fcygwin_convert_path_to_windows) 15592013-12-09 Dmitry Antipov <dmantipov@yandex.ru>
3534 (Fcygwin_convert_path_from_windows): Use EQ to compare 2
3535 Lisp_Object values. (Bug#12661)
3536 1560
3537 * w32fns.c (w32_msg_pump): Use XIL instead of casting an integer 1561 * gtkutil.c (USE_NEW_GTK_FONT_CHOOSER) [HAVE_FREETYPE]:
3538 to Lisp_Object. (Bug#12661) 1562 Avoid unused macro warning if configured --without-xft.
3539 1563
35402012-10-17 Kenichi Handa <handa@gnu.org> 15642013-12-09 Jan Djärv <jan.h.d@swipnet.se>
3541 1565
3542 * xdisp.c (reseat_1): Make the information stored in it->cmp_it 1566 * alloc.c (Fmemory_limit): Avoid compiler warning. Return 0 always.
3543 invalidate.
3544 1567
35452012-10-17 Dmitry Antipov <dmantipov@yandex.ru> 15682013-12-08 Jan Drv <jan.h.d@swipnet.se>
3546 1569
3547 * buffer.c (Fkill_buffer): When unchaining the marker, 1570 * nsterm.m (updateFrameSize:): Fix GNUstep toolbar not updating.
3548 reset its buffer pointer to NULL (Bug#12652).
3549 1571
35502012-10-17 Dmitry Antipov <dmantipov@yandex.ru> 1572 * emacs.c (main): Call fixup_locale a second time for GNUstep.
3551 1573
3552 Do not verify indirection counters of killed buffers (Bug#12579). 15742013-12-08 Martin Rudalics <rudalics@gmx.at>
3553 * buffer.h (BUFFER_CHECK_INDIRECTION): New macro.
3554 * buffer.c (compact_buffer, set_buffer_internal_1): Use it.
3555 1575
35562012-10-16 Dmitry Antipov <dmantipov@yandex.ru> 1576 * frame.c (x_set_font): Mark frame as garbaged (Bug#16028).
3557 1577
3558 * alloc.c (Fmake_byte_code): Fix typo in comment. 15782013-12-08 Paul Eggert <eggert@cs.ucla.edu>
3559 * print.c (print_interval): Define as static to match prototype.
3560 * indent.c (disptab_matches_widthtab, recompute_width_table):
3561 Convert to eassert.
3562 1579
35632012-10-16 Dmitry Antipov <dmantipov@yandex.ru> 1580 Use libcrypto's checksum implementations if available, for speed.
1581 * Makefile.in (LIB_CRYPTO): New macro.
1582 (LIBES): Use it.
3564 1583
3565 * editfns.c (get_system_name): Remove. 1584 * frame.h (SET_FRAME_VISIBLE): Now an inline function.
3566 * lisp.h (get_system_name): Remove prototype. 1585 The macro didn't conform to C99 due to type mismatch,
3567 * xrdb.c (getenv, getpwuid, getpwnam): Remove prototypes. 1586 which caused compilation failure with Sun C 5.12,
3568 (get_environ_db): Use Vsystem_name. Avoid call to strlen. 1587 and it was confusing anyway. Include window.h to declare
1588 redisplay_other_windows.
3569 1589
35702012-10-15 Daniel Colascione <dancol@dancol.org> 15902013-12-08 Stefan Monnier <monnier@iro.umontreal.ca>
3571 1591
3572 * dbusbind.c: Add comment explaining reason for previous change. 1592 * window.c (set_window_buffer): Update mode line (bug#16084).
3573 1593
35742012-10-15 Martin Rudalics <rudalics@gmx.at> 15942013-12-07 Paul Eggert <eggert@cs.ucla.edu>
3575 1595
3576 * window.c (Fwindow_end): Rewrite check whether cached position 1596 Fix minor problems found by static checking.
3577 can be used (Bug#12600). 1597 * keyboard.c (poll_for_input_1, input_polling_used):
3578 (resize_frame_windows, grow_mini_window, shrink_mini_window): 1598 Define only if HAVE_NTGUI.
3579 Set windows_or_buffers_changed. 1599 * xmenu.c (popup_activate_callback): Omit unnecessary
1600 check against USE_X_TOOLKIT, which must be defined here anyway.
1601 * xterm.c, xterm.h (x_dispatch_event) [! (USE_X_TOOLKIT || USE_MOTIF)]:
1602 Now static.
3580 1603
35812012-10-15 Daniel Colascione <dancol@dancol.org> 16042013-12-07 Martin Rudalics <rudalics@gmx.at>
3582 1605
3583 * dbusbind.c: Fix cygw32 build break when compiling with dbus 1606 * w32term.c (w32_read_socket): Fix int/Lisp_Object type mixup.
3584 enabled by undefining the symbol "interface", which the platform
3585 headers define to something incompatible.
3586 1607
35872012-10-14 Daniel Colascione <dancol@dancol.org> 16082013-12-07 Jan Djärv <jan.h.d@swipnet.se>
3588 1609
3589 * image.c (init_tiff_functions, init_imagemagick_functions) 1610 * gtkutil.c (tb_size_cb): Call xg_height_or_width_changed.
3590 (init_svg_functions): Fix cygw32 build break by using these
3591 functions only when WINDOWSNT _and_ HAVE_NTGUI.
3592 1611
35932012-10-14 Jan Djärv <jan.h.d@swipnet.se> 1612 * nsterm.m (x_set_window_size): Remove fprintf.
1613 (init): Define always. Set applicationDidFinishLaunchingCalled
1614 for GNUstep.
1615 (applicationDidFinishLaunching:):
1616 Set applicationDidFinishLaunchingCalled.
1617 (applicationDidBecomeActive:): Call applicationDidFinishLaunching if
1618 not called.
3594 1619
3595 * nsterm.m (ns_select): Count fd:s in writefs also (Bug#12422). 1620 * nsterm.h (EmacsApp): Add applicationDidFinishLaunchingCalled.
3596 1621
35972012-10-13 Jan Djärv <jan.h.d@swipnet.se> 1622 Pixel resize changes for NS (Bug#16049).
1623 * nsterm.m (x_set_window_size): Change parameters rows/cols to
1624 height/width. row/cols are locals.
1625 Pass pixelwise to check_frame_size. Don't set FRAME_PIXEL_WIDTH/HEIGHT.
1626 (updateFrameSize:): Remove gsextra. Adjust for pixelwise resize.
1627 (windowWillResize): Remove gsextra. Calculate extra as in
1628 updateFrameSize.
1629 (x_new_font): Don't change frame size if fullscreen.
1630 Change size pixelwise.
3598 1631
3599 * gtkutil.c (xg_set_widget_bg): Divide by 65535 (Bug#12612). 1632 * nsfns.m (Fx_create_frame): Call change_frame_size twice as per
1633 comment in xfns.c. Change to pixelwise call.
3600 1634
36012012-10-13 HANATAKA, Shinya <bogytech@gmail.com> (tiny change) 16352013-12-06 Eli Zaretskii <eliz@gnu.org>
3602 1636
3603 * coding.c (detect_coding): Set coding->id before calling 1637 * buffer.c (Fset_buffer_multibyte): Invalidate buffer caches.
3604 this->detector. 1638 (Bug#16070)
3605 1639
36062012-10-13 Andreas Schwab <schwab@linux-m68k.org> 16402013-12-06 Dmitry Antipov <dmantipov@yandex.ru>
3607 1641
3608 * fileio.c: Formatting fixes. 1642 * xterm.c (input_signal_count): Remove.
1643 (x_dispatch_event): Define unconditionally.
1644 (x_make_frame_visible): Process X events until the frame
1645 is really visible (Bug#16027).
1646 * xterm.h (x_dispatch_event): Declare unconditionally.
3609 1647
36102012-10-13 Paul Eggert <eggert@cs.ucla.edu> 16482013-12-05 Jan Djärv <jan.h.d@swipnet.se>
3611 1649
3612 Fix some stat-related races. 1650 * nsfns.m (ns_frame_parm_handlers): Add right/bottom_divider_width.
3613 * fileio.c (Fwrite_region): Avoid race condition if a file is
3614 removed or renamed by some other process immediately after Emacs
3615 writes it but before Emacs stats it. Do not assume that stat (or
3616 fstat) succeeds.
3617 * image.c (slurp_file): Resolve the file name with fopen + fstat
3618 rather than stat + fopen.
3619 (pbm_read_file) [0]: Remove unused code with stat race.
3620 * process.c (allocate_pty) [HAVE_PTYS && !PTY_ITERATION && !PTY_OPEN]:
3621 Remove ineffective code with stat race.
3622 1651
36232012-10-12 Stefan Monnier <monnier@iro.umontreal.ca> 1652 * nsterm.m (x_set_window_size): Handle pixelwise.
3624 1653
3625 * doc.c (get_doc_string): Don't signal an error if the file is missing. 16542013-12-05 Martin Rudalics <rudalics@gmx.at>
3626 1655
36272012-10-12 Jan Djärv <jan.h.d@swipnet.se> 1656 * w32term.c (x_new_font):
1657 * xterm.c (x_new_font): Calculate new frame size from new font
1658 size (Bug#16028).
3628 1659
3629 * nsterm.m (hold_event_q): New static variable. 16602013-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
3630 (EV_TRAILER, sendScrollEventAtLoc:fromEvent:): Call hold_event if
3631 ! q_event_ptr.
3632 (hold_event): New function.
3633 (ns_read_socket): If hold_event_q have events, store them and
3634 return (Bug#12384).
3635 (setPosition:portion:whole:): Send SIGIO to ourselves if apploopnr
3636 is zero (Bug#12384).
3637 1661
36382012-10-12 Juanma Barranquero <lekktu@gmail.com> 1662 * lisp.h (FOR_EACH_TAIL): New macro.
1663 * fns.c (Fdelq): Use it to avoid inf-loops; remove QUIT.
3639 1664
3640 * makefile.w32-in ($(BLD)/w32select.$(O)): Update dependencies. 1665 * window.c (select_window): Call second wset_redisplay before we change
1666 selected_window (bug#16034).
3641 1667
36422012-10-12 Eli Zaretskii <eliz@gnu.org> 16682013-12-04 Paul Eggert <eggert@cs.ucla.edu>
3643 1669
3644 * makefile.w32-in ($(BLD)/fileio.$(O)): Add sys/file.h. 1670 * bidi.c (LRM_CHAR, RLM_CHAR): Remove; no longer used.
3645 1671
3646 * fileio.c (check_existing): New function. 16722013-12-04 Eli Zaretskii <eliz@gnu.org>
3647 (make_temp_name, Ffile_exists_p, Ffile_writable_p): Call it
3648 instead of calling 'stat', when what's needed is to check whether
3649 a file exists. This avoids expensive system calls on MS-Windows.
3650 (Bug#12587)
3651 1673
3652 * w32.c (init_environment): Call 'check_existing' instead of 'stat'. 1674 * w32xfns.c: Include window.h, to avoid a compiler warning.
3653 1675
3654 * lread.c (openp) [WINDOWSNT]: Call 'access' instead of 'stat' to 16762013-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
3655 determine whether a file exists and is not a directory.
3656 1677
3657 * lisp.h (check_existing): Add prototype. 1678 * window.c (window_scroll): Mark window for redisplay (bug#16034).
1679 (scroll_command, Fscroll_other_window): Don't cause redisplay now that
1680 window_scroll takes care of it.
1681 (Fset_window_point, Fdelete_other_windows_internal)
1682 (set_window_buffer, Fwindow_resize_apply, resize_frame_windows)
1683 (Fsplit_window_internal, Fdelete_window_internal)
1684 (Fresize_mini_window_internal, Fset_window_configuration)
1685 (apply_window_adjustment): Use fset_redisplay and wset_redisplay to
1686 cause redisplay instead of forcing a complete redisplay.
1687 * xdisp.c (wset_redisplay): Don't set windows_or_buffers_changed if
1688 we're only affecting the selected_window.
3658 1689
36592012-10-12 Jan Djärv <jan.h.d@swipnet.se> 16902013-12-04 Eli Zaretskii <eliz@gnu.org>
3660 1691
3661 * nsfont.m (nsfont_open): Remove font cache, it is not GC correct. 1692 * bidi.c (bidi_get_type, bidi_get_category): Handle the isolate
1693 directional control characters. Update type and category
1694 determination according to the UBA from Unicode v6.3.
1695 (bidi_category_t): New category EXPLICIT_FORMATTING.
3662 1696
36632012-10-12 Glenn Morris <rgm@gnu.org> 1697 * dispextern.h (bidi_type_t): Update to include new bidirectional
1698 properties introduced with Unicode v6.3. (Bug#16043)
3664 1699
3665 * buffer.c (Fset_buffer): Doc fix. (Bug#12624) 17002013-12-04 Martin Rudalics <rudalics@gmx.at>
3666 1701
36672012-10-11 Stefan Monnier <monnier@iro.umontreal.ca> 1702 * xterm.c (XTflash): Fix coordinate of bottom area to flash
1703 (Bug#16044).
3668 1704
3669 * buffer.c (Fkill_buffer): Null out the overlay list(s) as well. 17052013-12-04 Dmitry Antipov <dmantipov@yandex.ru>
3670 1706
3671 * eval.c (Fautoload): Remember previous autoload status in load-history. 1707 * font.c (font_list_entities): Remove dummy assignment.
1708 * font.h (struct font) [HAVE_WINDOW_SYSTEM]: Group members which are
1709 used on graphic displays only. Remove unused 'font_encoder' member.
1710 (struct font_bitmap): Remove unused 'extra' member.
1711 * nsfont.m (nsfont_open):
1712 * w32font.c (w32font_open_internal):
1713 * ftfont.c (ftfont_get_bitmap): Adjust users.
3672 1714
36732012-10-11 Paul Eggert <eggert@cs.ucla.edu> 17152013-12-03 Paul Eggert <eggert@cs.ucla.edu>
3674 1716
3675 lread.c, macros.c, marker.c, menu.c, minibuf.c: Use bool for booleans.
3676 * lread.c (load_each_byte, new_backquote_flag, readchar)
3677 (read_filtered_event, lisp_file_lexically_bound_p)
3678 (safe_to_load_version, Fload, complete_filename_p, openp)
3679 (build_load_history, readevalloop, read_escape, read1)
3680 (string_to_number, read_vector, read_list):
3681 * macros.c (Fstart_kbd_macro):
3682 * marker.c (CONSIDER):
3683 * menu.c (parse_single_submenu, digest_single_submenu)
3684 (find_and_return_menu_selection, Fx_popup_menu):
3685 * minibuf.c (read_minibuf_noninteractive, read_minibuf)
3686 (Ftry_completion):
3687 * nsmenu.m (ns_update_menubar, runMenuAt:forFrame:keymaps:):
3688 (ns_menu_show):
3689 * xmenu.c (set_frame_menubar, create_and_show_popup_menu)
3690 (xmenu_show, xdialog_show):
3691 Use bool for booleans.
3692 * lread.c (safe_to_load_version): Rename from safe_to_load_p,
3693 as it's not a predicate. All uses changed. Omit unnecessary
3694 buffer termination.
3695
36962012-10-11 Dmitry Antipov <dmantipov@yandex.ru>
3697
3698 * editfns.c (save_excursion_save): Use nil if mark points to nowhere.
3699 (save_excursion_restore): Do not restore mark if it was not saved.
3700
37012012-10-11 Paul Eggert <eggert@cs.ucla.edu>
3702
3703 * marker.c (cached_modiff): EMACS_INT, not int.
3704
3705 * w32select.c (waiting_for_input): Declare by including "keyboard.h"
3706 instead of having a wrong decl.
3707 * nsmenu.m (waiting_for_input): Remove wrong decl.
3708
37092012-10-10 Paul Eggert <eggert@cs.ucla.edu>
3710
3711 keyboard.c, keymap.c: Use bool for booleans.
3712 * dispnew.c (sit_for): Distinguish between 3-way display_option
3713 and boolean do_display.
3714 * keyboard.c (single_kboard, this_command_key_count_reset)
3715 (waiting_for_input, echoing, immediate_quit, input_pending)
3716 (interrupt_input, interrupts_deferred, pop_kboard)
3717 (temporarily_switch_to_single_kboard, ignore_mouse_drag_p)
3718 (command_loop_1, adjust_point_for_property)
3719 (safe_run_hooks_error, input_polling_used, read_char):
3720 (help_char_p, readable_events, kbd_buffer_events_waiting)
3721 (kbd_buffer_get_event, timer_check_2, make_lispy_event)
3722 (lucid_event_type_list_p, get_input_pending):
3723 (gobble_input, menu_separator_name_p, menu_bar_item)
3724 (parse_menu_item, parse_tool_bar_item, read_char_x_menu_prompt)
3725 (read_char_minibuf_menu_prompt, access_keymap_keyremap)
3726 (keyremap_step, test_undefined, read_key_sequence)
3727 (detect_input_pending, detect_input_pending_ignore_squeezables)
3728 (detect_input_pending_run_timers, requeued_events_pending_p)
3729 (quit_throw_to_read_char, Fset_input_interrupt_mode):
3730 * keymap.c (get_keymap, keymap_parent, keymap_memberp)
3731 (access_keymap_1, access_keymap, map_keymap, get_keyelt)
3732 (Fdefine_key, Flookup_key, struct accessible_keymaps_data)
3733 (accessible_keymaps_1, Fkey_description, push_key_description):
3734 (shadow_lookup, struct where_is_internal_data)
3735 (where_is_internal, Fwhere_is_internal, where_is_internal_1)
3736 (Fdescribe_buffer_bindings, describe_map_tree, struct describe_map_elt)
3737 (describe_map, describe_vector):
3738 * menu.c (single_menu_item):
3739 * nsmenu.m (ns_update_menubar):
3740 * process.c (wait_reading_process_output):
3741 * search.c (scan_buffer, scan_newline):
3742 Use bool for boolean. 1717 Use bool for boolean.
3743 * keyboard.c (timers_run, swallow_events) 1718 * tparam.c (tparam1):
3744 (detect_input_pending_run_timers): 1719 * undo.c (record_point, record_property_change):
3745 * process.c (wait_reading_process_output): 1720 Use bool for boolean, for local vars that are always true or false.
3746 Use unsigned for counter where wraparound-on-overflow is desired,
3747 since unsigned is guaranteed to have that behavior and signed is not.
3748 (read_char): Use ptrdiff_t for string length.
3749 (get_input_pending): Remove first argument, since it was always
3750 the same pointer-to-int (now pointer-to-boolean) &input_pending,
3751 and behave as if it had that value. Return new value of
3752 input_pending. All callers changed.
3753 * keyboard.h (struct kboard): Use unsigned : 1 for boolean member
3754 immediate_echo. Use ptrdiff_t for echo_after_prompt, since it's
3755 a string length.
3756 * keymap.c (push_key_description): Omit last arg, which was always 1.
3757 All callers changed.
3758
3759 * regex.c (immediate_quit) [emacs]: Remove duplicate decl.
3760
37612012-10-10 Juanma Barranquero <lekktu@gmail.com>
3762
3763 * makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/indent.$(O))
3764 ($(BLD)/term.$(O)): Update dependencies.
3765
37662012-10-10 Dmitry Antipov <dmantipov@yandex.ru>
3767
3768 * alloc.c (mark_object): Use meaningful PVEC_NORMAL_VECTOR.
3769 * lisp.h (enum pvec_type): Adjust comments and omit explicit
3770 initializer for PVEC_NORMAL_VECTOR.
3771 1721
37722012-10-10 Paul Eggert <eggert@cs.ucla.edu> 1722 Minor integer overflow fixes (Bug#16033).
1723 * window.c (Fset_window_new_pixel): Don't let new_pixel go negative.
1724 This improves on the previous fix to this function.
1725 (window_resize_check): When summing up pixel counts, don't rely on
1726 undefined behavior if the sum overflows.
3773 1727
3774 Clean out old termopts cruft. 17282013-12-03 Martin Rudalics <rudalics@gmx.at>
3775 * termopts.h (flow_control, meta_key): Remove unused decls.
3776 * dispnew.c, indent.c, nsterm.m, term.c, xsettings.c, xsmfns.c:
3777 Don't include termopts.h.
3778 1729
37792012-10-10 Dmitry Antipov <dmantipov@yandex.ru> 1730 * window.c (Fset_window_new_pixel): Don't choke at negative
1731 argument value (Bug#16033).
3780 1732
3781 * alloc.c (gc_sweep): Use pointer-to-a-pointer loop for buffers. 1733 * xfns.c (Fx_create_frame): Add another call to change_frame_size
1734 to avoid crash in window_box_height.
3782 1735
37832012-10-10 Paul Eggert <eggert@cs.ucla.edu> 1736 * gtkutil.h: Fix external declaration of xg_frame_set_char_size.
1737 * gtkutil.c (xg_frame_set_char_size, style_changed_cb): Fix size
1738 calculation.
1739 * xterm.c (x_set_window_size): Fix size calculation (Bug#16013).
3784 1740
3785 * commands.h (immediate_quit): Remove duplicate decl. 17412013-12-03 Paul Eggert <eggert@cs.ucla.edu>
3786 1742
37872012-10-09 Jan Djärv <jan.h.d@swipnet.se> 1743 Minor integer overflow fixes.
1744 * window.c (Fset_window_new_pixel, grow_mini_window):
1745 * xdisp.c (Fwindow_text_pixel_size):
1746 Avoid undefined behavior on signed integer overflow.
1747 * xfns.c (x_set_mouse_color):
1748 Check that drag shape fits in 'unsigned', since that's what X wants.
3788 1749
3789 * nsfont.m (Vfonts_in_cache): Remove, not needed as font.c handles 17502013-12-02 Eli Zaretskii <eliz@gnu.org>
3790 caching.
3791 (nsfont_open): Remove setting of Vfonts_in_cache.
3792 (syms_of_nsfont): Remove initialization of Vfonts_in_cache.
3793 1751
37942012-10-09 Eli Zaretskii <eliz@gnu.org> 1752 Improve reporting of fatal exception on MS-Windows.
1753 * w32fns.c (my_exception_handler): New function.
1754 (globals_of_w32fns): Set it up as the unhandled exception
1755 handler. Initialize exception code and address to zeros.
1756 (emacs_abort): If the exception code and address are available,
1757 print them at the beginning of the backtrace. Fix the format of
1758 printing addresses (was producing 0x0x12345678 on XP).
1759 (Bug#15994)
3795 1760
3796 * w32fns.c (w32_last_error): Change the return value to DWORD, to 17612013-12-02 Helmut Eller <eller.helmut@gmail.com>
3797 match what GetLastError returns. Explain why the function is
3798 needed.
3799
3800 * frame.c (delete_frame): Rename local variable 'tooltip_frame' to
3801 'is_tooltip_frame', to avoid confusion with its global namesake.
3802
38032012-10-08 Daniel Colascione <dancol@dancol.org>
3804
3805 * xdisp.c (start_hourglass): Call w32_note_current_window when
3806 HAVE_NTGUI, not just WINDOWSNT, resolving a problem in the cygw32
3807 build that caused Emacs to display the hourglass cursor forever.
3808
3809 * w32fns.c (Fx_display_color_cells): Instead of using NCOLORS,
3810 which is broken under remote desktop, calculate the number of
3811 colors available for a display based on the display's number of
3812 planes and number of bits per pixel per plane. (bug#10397).
3813
38142012-10-08 Jan Djärv <jan.h.d@swipnet.se>
3815
3816 * nsfont.m (Vfonts_in_cache): New variable.
3817 (nsfont_open): Use unsignedLongLongValue for cache in case wide ints
3818 are used. Add cached fonts to Vfonts_in_cache.
3819 (syms_of_nsfont): Initialize and staticpro Vfonts_in_cache.
3820
38212012-10-08 Juanma Barranquero <lekktu@gmail.com>
3822
3823 * makefile.w32-in (LOCAL_FLAGS): Don't define HAVE_NTGUI, it's now
3824 in nt/config.nt.
3825 (FONT_H): Define after FRAME_H.
3826 ($(BLD)/emacs.$(O), $(BLD)/process.$(O), $(BLD)/w32heap.$(O)):
3827 Update dependencies.
3828 1762
3829 * w32term.c: Remove leftover declaration of keyboard_codepage. 1763 * eval.c (Fbacktrace__locals): New function.
3830 1764 (syms_of_eval): Defsubr it.
38312012-10-08 Eli Zaretskii <eliz@gnu.org>
3832 1765
3833 * makefile.w32-in (FONT_H): Add $(FRAME_H). 17662013-12-02 Dmitry Antipov <dmantipov@yandex.ru>
3834 (W32TERM_H): Add $(ATIMER_H) and $(FRAME_H).
3835 ($(BLD)/emacs.$(O), $(BLD)/w32console.$(O)): Update dependencies.
3836 (GLOBAL_SOURCES): Add cygw32.c.
3837 ($(BLD)/unexw32.$(O)):
3838 ($(BLD)/w32.$(O)):
3839 ($(BLD)/w32console.$(O)):
3840 ($(BLD)/w32fns.$(O)):
3841 ($(BLD)/w32heap.$(O)):
3842 ($(BLD)/w32menu.$(O)):
3843 ($(BLD)/w32proc.$(O)): Add w32common.h.
3844 1767
3845 * w32fns.c (w32_color_map_lookup, x_to_w32_color): Argument is now 1768 * font.h (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_DESCENT):
3846 'const char *'. 1769 Define here to unify between...
3847 (x_to_w32_color): Don't modify the argument, modify a copy instead. 1770 * nsterm.h, w32term.h, xterm.h: ...port-specific headers.
1771 * w32term.h (CHECK_W32_FRAME): Remove unused macro.
3848 1772
38492012-10-08 Daniel Colascione <dancol@dancol.org> 17732013-12-02 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3850 1774
3851 * w32term.h (WM_EMACS_BRINGTOTOP, WM_EMACS_INPUT_READY) 1775 * xterm.h (struct scroll_bar): Remove member `fringe_extended_p'.
3852 (WM_EMACS_END): Change WM_EMACS_BRINGTOTOP from 22 to 21 to close
3853 accidental message numbering hole. Change other messages to
3854 match.
3855 1776
3856 * w32select.h (HAVE_W32SELECT): Remove. 1777 * xterm.c (x_draw_fringe_bitmap, x_scroll_run): Remove code for
1778 fringe background extension.
1779 (x_scroll_bar_create): Remove variables `sb_left' and `sb_width',
1780 because they are now always the same as `left' and `width',
1781 respectively. Remove code for the case that `width' and
1782 `sb_width' are different.
3857 1783
3858 * w32select.c, w32proc.c, w32menu.c, w32console.c, w32.c: Include 17842013-12-01 Paul Eggert <eggert@cs.ucla.edu>
3859 w32common.h instead of w32heap.h.
3860 1785
3861 * w32heap.h (ROUND_UP, ROUND_DOWN, get_page_size) 1786 Fix minor problems found by static checking.
3862 (get_allocation_unit, get_processor_type, get_w32_major_version) 1787 * dispextern.h, xdisp.c (x_draw_bottom_divider): Now static.
3863 (get_w32_minor_version, sysinfo_cache, osinfo_cache) 1788 * frame.c (set_frame_param) [!HAVE_NTGUI]: Remove.
3864 (w32_major_version, w32_minor_version, w32_build_number, OS_9X) 1789 * xdisp.c (Ftool_bar_height) [USE_GTK || HAVE_NS]: Now const function.
3865 (OS_NT, os_subtype, cache_system_info): Move declarations to
3866 w32common.
3867 1790
3868 * w32heap.c: Include w32common.h. 17912013-12-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
3869 (sysinfo_cache, syspage_mask, osinfo_cache, w32_major_version)
3870 (w32_minor_version, w32_build_number, w32_subtype):
3871 Remove duplicate definitions.
3872 1792
3873 * w32fns.c: Include w32common.h; include w32heap.h only in 1793 * image.c (imagemagick_compute_animated_image): Don't crash if we
3874 WINDOWSNT. 1794 have an animation with different-sized images (bug#15313).
3875 1795
3876 (Fx_file_dialog): Clarify comment on GetOpenFileName structure. 17962013-11-30 Martin Rudalics <rudalics@gmx.at>
3877 Use `report_file_error' instead of `error' in order to better
3878 inform users of what went wrong. Increase NTGUI_UNICODE file
3879 dialog box file name length to 32k, the maximum allowed by the NT
3880 kernel.
3881 1797
3882 * w32common.h: New file. 1798 Remove some unused items introduced during pixelwise change.
3883 (ROUND_UP, ROUND_DOWN, get_page_size) 1799 * window.c (window_resize_total_check): Remove unused function.
3884 (get_allocation_unit, get_processor_type, get_w32_major_version) 1800 * xdisp.c (remember_mouse_glyph): Remove unused label.
3885 (get_w32_minor_version, sysinfo_cache, osinfo_cache) 1801 (Ftool_bar_height): Move declaration inside #if.
3886 (w32_major_version, w32_minor_version, w32_build_number, OS_9X) 1802 * xterm.c (x_set_window_size): Don't use r and c.
3887 (OS_NT, os_subtype, cache_system_info): Move here.
3888 1803
3889 * unexw32.c, unexcw.c: Include w32common.h. 18042013-11-30 Juanma Barranquero <lekktu@gmail.com>
3890 1805
3891 * emacs.c (main): Use (defined (WINDOWSNT) || defined 1806 * xdisp.c (Fwindow_text_pixel_size): Remove unused variables
3892 HAVE_NTGUI) instead of removed HAVE_W32SELECT to decide whether 1807 `value' and `endp'.
3893 to call syms_of_w32select.
3894 1808
3895 * cygw32.h: Remove obsolete EXFUN declarations. 1809 * window.c (Fset_window_configuration): Comment out unused variables.
3896 1810
3897 * cygw32.c (Qutf_16_le): Rename to Qutf_16le. 1811 * w32term.c (w32_read_socket): Remove unused variable `buf'.
3898 1812
3899 * Makefile.in (SOME_MACHINE_OBJECTS): Reverse accidental removal 18132013-11-30 Jan Djärv <jan.h.d@swipnet.se>
3900 of w32inevt.o from SOME_MACHINE_OBJECTS.
3901
39022012-10-08 Daniel Colascione <dancol@dancol.org>
3903
3904 * image.c: Permanent fix for JPEG compilation issue --- limit
3905 jpeglib `boolean' redefinition to Cygwin builds.
3906
39072012-10-08 Eli Zaretskii <eliz@gnu.org>
3908
3909 * image.c (CHECK_LIB_AVAILABLE): Remove, no longer used.
3910
3911 * emacs.c (DAEMON_MUST_EXEC) [HAVE_NTGUI]: Define this only on
3912 Cygwin.
3913
39142012-10-08 Daniel Colascione <dancol@dancol.org>
3915
3916 * xfaces.c, xdisp.c, window.c, w32xfns.c, w32term.h, w32term.c,
3917 w32select.h w32select.c, w32proc.c, w32menu.c, w32inevt.c,
3918 w32help.c, w32font.c, w32font.c, w32fns.c, w32console.c, w32.h,
3919 w32.c, unexw32.c, termhooks.h, process.c, menu.c, keyboard.h,
3920 keyboard.c, image.c, frame.h, frame.c, fontset.c, font.h, font.c,
3921 emacs.c, dispextern.h, cygw32.h, cygw32.c, conf_post.h,
3922 Makefile.in: use HAVE_NTGUI for W32 GUI and WINDOWSNT for the
3923 operating system. defined(HAVE_NTGUI) && !defined(WINDOWSNT) is
3924 now a supported configuration.
3925
3926 * Makefile.in: consolidate image variables into LIBIMAGE; add
3927 W32_OBJ and W32_LIBS. Compile new files.
3928
3929 * conf_post.h:
3930 (_DebPrint) declare tracing facility for W32 debugging. We need
3931 to unify tracing later.
3932
3933 (NTGUI_UNICODE) Define when compiling for Cygwin to allow the
3934 unconditional use of W32 Unicode functions. Cygwin runs only on
3935 100% Unicode operating systems.
3936
3937 * cygw32.c: New file. Define Cygwin-specific facilities.
3938 (Fcygwin_convert_path_to_windows)
3939 (Fcygwin_convert_path_from_windows): New user functions for
3940 accessing Cygwin path-munging routines.
3941
3942 * cygw32.h: New file.
3943 (WCSDATA, to_unicode, from_unicode): Define facilities for storing
3944 UTF-16LE strings temporarily inside non-Lisp-visible string
3945 objects.
3946
3947 (w32_strerror): Just what it says on the tin.
3948
3949 * emacs.c: Make the NS fork-then-exec code for daemon-launching
3950 also run for Cygwin; both systems have the same problem with using
3951 GUI facilities in a forked child. Also call syms_of_cygw32,
3952 syms_of_w32select in correct places.
3953
3954 (DAEMON_MUST_EXEC): new macro defined to signal that a platform
3955 needs fork-then-exec for daemon launching.
3956
3957 * font.h: Include frame.h.
3958
3959 * image.c: Use the image library cache machinery only when we're
3960 compiling for native WINDOWSNT; Cygwin can use shared libraries
3961 like any other Unixlike system.
3962
3963 * keyboard.c: Clarify a comment regarding the input loop.
3964
3965 * menu.c: When NTGUI_UNICODE is defined, use Unicode menu
3966 functions directly instead of trying to detect at runtime that our
3967 host operating system supports them. We make this change for two
3968 reasons: Cygwin lacks support for the multibyte character
3969 conversion functions used by the legacy menu code, and Cygwin
3970 never needs to rely on non-Unicode APIs.
3971
3972 * unexw32.c (hinst): Declare extern.
3973
3974 * w32.c: Change header order;
3975 (w32_strerror): Move to w32fns.c because we need it for
3976 non-WINDOWSNT builds.
3977 1814
3978 * w32.h: Add #error macro to make sure we don't include w32.h for 1815 * xdisp.c (redisplay_internal): unrequest_sigio => request_sigio.
3979 Cygwin builds. Remove w32select declarations.
3980 1816
3981 * w32console.c (w32_sys_ring_bell, Fset_message_beep): Move to 1817 * xfaces.c (NEAR_SAME_COLOR_THRESHOLD): Move inside HAVE_WINDOW_SYSTEM.
3982 w32fns.c. w32console.c is WINDOWSNT-only.
3983 1818
3984 * w32fns.c: Include cygw32.h or w32.h depending on CYGWIN; more 1819 * gnutls.c (gnutls_audit_log_function): Only declare and define if
3985 NTGUI_UNICODE tweaks. (See above.) Change _snprintf to the more 1820 HAVE_GNUTLS3 (Bug#16001).
3986 POSIXy alternative.
3987 (faked_key, sysinfo_cache, osinfo_cahce, syspage_mask)
3988 (w32_major_version, w32_minor_version, w32_build_number)
3989 (os_subtype, sound_type): Define here
3990 (w32_defined_color): Make color parameter const for consistency
3991 with other _defined_color functions.
3992 (w32_createwindow): Unconditionally call w32_init_class instead of
3993 doing so only when hprevinst is non-NULL. Plumbing hprevinst
3994 through the code is complex and unnecessary because class
3995 registration is practically free.
3996 (w32_name_of_message): New EMACSDEBUG-only function.
3997 (Fset_message_beep): Move here
3998 (Fx_open_connection): Require that the display name for Windows be
3999 "w32" for consistency, emacsclient disambiguation, and maybe, one
4000 day, multi-window-system support.
4001 (file_dialog_callback): NTGUI_UNICODE changes; encode and decode
4002 Cygwin files for W32 GUI facilities, since these clearly don't
4003 expect Cygwin names.
4004 (_DebPrint): Define.
4005 (w32_strerror, w32_console_toggle_lock_key, w32_kbd_mods_to_emacs)
4006 (w32_kbd_patch_key, w32_sys_ring_bell): Move here.
4007 (Ssystem_move_file_to_trash): Define only for native WINDOWSNT.
4008 (w32_last_error): Remove.
4009
4010 * w32font.c: Define _strlwr to strlwr for non-WINDOWSNT builds.
4011
4012 * w32heap.c (syspage_mask): Declare here.
4013 (cache_system_info): Remove.
4014
4015 * w32inevt.c (faked_key): Define globally, not statically.
4016 (w32_kbd_mods_to_emacs, w32_kbd_patch_key, faked_key)
4017 (w32_console_toggle_lock_key): Move to w32fns.c.
4018
4019 * w32menu.c: Include setjmp.h. NTGUI_UNICODE changes throughout.
4020
4021 * w32proc.c (_DebPrint): Move to w32fns.c.
4022 * w32select.c: Include string.h, stdio.h for Cygwin.
4023 * w32select.h: New File.
4024
4025 * w32term.c: Include io.h for non-CYGWIN builds; needed for
4026 get_osfhandle.
4027 (w32_message_fd): New variable. Under Cygwin, holds the file
4028 descriptor the system used to tell us about pending thread
4029 messages.
4030
4031 (w32_init_term): Remove incorrect calls to fcntl and init_sigio
4032 that prevented compilation under non-WINDOWSNT systems.
4033
4034 (w32_initialize): Open /dev/windows and assign it to
4035 w32_message_fd. Provide w32 feature.
4036
4037 * w32term.h: Include frame.h, atimer.h. Declare various frame functions.
4038 (WM_EMACS_INPUT_READY): add.
4039 (prepend_msg, w32_message_fd): Declare globally.
4040
4041 * w32xfns.c:
4042 (keyboard_handle): Use only when WINDOWSNT.
4043 (notify_msg_ready): New function. Posts a message to the main
4044 thread's message queue under CYGWIN, which wakes up the main
4045 thread from select(2) by making the /dev/windows file descriptor
4046 ready. Under WINDOWSNT, it sets an event the same way the old
4047 code did.
4048 1821
4049 (post, prepend_msg): Actually call notify_msg_ready instead of 1822 * xdisp.c (redisplay_internal): Call request_sigio at end_of_redisplay
4050 setting the input event directly. 1823 if interrupts are deferred (Bug#15801).
4051 1824
40522012-10-07 Eli Zaretskii <eliz@gnu.org> 18252013-11-30 Martin Rudalics <rudalics@gmx.at>
4053 1826
4054 * ralloc.c (relinquish): If a heap is ready to be relinquished, 1827 Support resizing frames and windows pixelwise.
4055 but it still has blocs in it, don't return it to the system, 1828 * dispextern.h (enum window_part): Add ON_SCROLL_BAR,
4056 instead of aborting. (Bug#12402) 1829 ON_RIGHT_DIVIDER and ON_BOTTOM_DIVIDER.
4057 1830 (struct glyph_matrix): Replace window_left_col and
40582012-10-07 Jan Djärv <jan.h.d@swipnet.se> 1831 window_top_line by window_pixel_left and window_pixel_top.
4059 1832 (WINDOW_WANTS_MODELINE_P, WINDOW_WANTS_HEADER_LINE_P):
4060 * nsterm.m (ns_dumpglyphs_image): Only draw slice of image (Bug#12506). 1833 Minor rewrite.
4061 1834 (enum face_id): Add WINDOW_DIVIDER_FACE_ID.
4062 * nsterm.m (ns_update_auto_hide_menu_bar): Remove defintion of 1835 (draw_window_divider, move_it_to, x_draw_right_divider)
4063 MAC_OS_X_VERSION_10_6. 1836 (x_draw_bottom_divider, change_frame_size): Add or fix
4064 (syms_of_nsterm): Remove comment about Panther and above for 1837 declarations.
4065 ns-antialias-text. 1838 * dispnew.c (change_frame_size_1): Change prototype.
4066 * nsterm.h (MAC_OS_X_VERSION_10_3, onTiger): Remove. 1839 (adjust_glyph_matrix, required_matrix_width)
4067 (EmacsApp): Remove check for >= MAC_OS_X_VERSION_10_4. 1840 (adjust_frame_glyphs_for_window_redisplay): Use pixel
4068 (struct nsfont_info): Remove check for >= MAC_OS_X_VERSION_10_3. 1841 values instead of lines and columns.
4069 1842 (marginal_area_string): Use WINDOW_FRINGES_WIDTH instead of
4070 * nsselect.m (ns_string_from_pasteboard): Remove check for >= 1843 WINDOW_TOTAL_FRINGE_WIDTH.
4071 MAC_OS_X_VERSION_10_4. 1844 (handle_window_change_signal, do_pending_window_change)
1845 (init_display): Adjusts calls of change_frame_size.
1846 (change_frame_size, change_frame_size_1): Handle pixelwise
1847 changes.
1848 * frame.c (Qright_divider_width, Qbottom_divider_width):
1849 New Lisp objects.
1850 (set_menu_bar_lines_1, set_menu_bar_lines, make_frame)
1851 (make_terminal_frame, Fmake_terminal_frame, Fframe_parameters)
1852 (x_set_internal_border_width, x_set_vertical_scroll_bars)
1853 (x_set_scroll_bar_width, x_figure_window_size): Handle pixel
1854 values.
1855 (set_frame_param): New function.
1856 (Fframe_text_cols, Fframe_text_lines, Fframe_total_cols)
1857 (Fframe_text_width, Fframe_text_height, Fscroll_bar_width)
1858 (Ffringe_width, Fborder_width, Fright_divider_width)
1859 (Fbottom_divider_width): New functions, defsubr them.
1860 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
1861 New argument pixelwise.
1862 (struct frame_parm_table): New members Qright_divider_width and
1863 Qbottom_divider_width.
1864 (x_set_frame_parameters): Handle parameters for pixelwise sizes.
1865 (x_report_frame_params): Handle Qright_divider_width and
1866 Qbottom_divider_width.
1867 (x_set_right_divider_width, x_set_bottom_divider_width):
1868 New functions.
1869 (frame_resize_pixelwise): New option.
1870 * frame.h (struct frame): Add tool_bar_height, menu_bar_height,
1871 new_pixelwise, right_divider_width and bottom_divider_width;
1872 remove total_lines; rename text_lines, text_cols, new_text_lines
1873 and new_text_cols to text_height, text_width, new_height and
1874 new_width respectively.
1875 (FRAME_LINES, FRAME_COLS): Rename to FRAME_TEXT_HEIGHT and
1876 FRAME_TEXT_WIDTH respectively.
1877 (FRAME_MENU_BAR_HEIGHT, FRAME_TOOL_BAR_HEIGHT)
1878 (FRAME_RIGHT_DIVIDER_WIDTH, FRAME_BOTTOM_DIVIDER_WIDTH)
1879 (FRAME_TEXT_TO_PIXEL_WIDTH, FRAME_PIXEL_TO_TEXT_WIDTH):
1880 New macros.
1881 (FRAME_TOP_MARGIN_HEIGHT, FRAME_LEFT_SCROLL_BAR_AREA_WIDTH)
1882 (FRAME_RIGHT_SCROLL_BAR_AREA_WIDTH, FRAME_SCROLL_BAR_AREA_WIDTH)
1883 (SET_FRAME_COLS, SET_FRAME_WIDTH, SET_FRAME_HEIGHT)
1884 (FRAME_TEXT_COLS_TO_PIXEL_WIDTH, FRAME_PIXEL_WIDTH_TO_TEXT_COLS)
1885 (FRAME_TEXT_COLS_TO_PIXEL_WIDTH): Rewrite macros.
1886 (FRAME_TOTAL_COLS_ARG): Remove macro.
1887 * fringe.c (draw_fringe_bitmap_1): Handle right divder.
1888 * gtkutil.c (xg_frame_resized, xg_frame_set_char_size)
1889 (x_wm_set_size_hint): Handle frame pixel sizes.
1890 * indent.c (compute_motion, Fcompute_motion):
1891 Call window_body_width instead of window_body_cols.
1892 * keyboard.c (Qright_divider, Qbottom_divider): New symbols.
1893 (make_lispy_position): Handle right and bottom dividers.
1894 (Fsuspend_emacs): Pixelize call of change_frame_size.
1895 * keyboard.h: Extern Qright_divider, Qbottom_divider.
1896 * lisp.h: Extern set_frame_param.
1897 * nsfns.m (x_set_tool_bar_lines): Pixelize call of
1898 x_set_window_size.
1899 (Fx_create_frame): Add entry for vertical_drag_cursor.
1900 Pixelize call of change_frame_size.
1901 * nsterm.h (struct ns_output): Add vertical_drag_cursor.
1902 * nsterm.m (ns_update_window_end): Optionally draw right
1903 divider.
1904 (x_set_window_size): Add argument pixelwise.
1905 Call check_frame_size and change_frame_size with pixelwise zero.
1906 (ns_draw_window_divider): New function.
1907 (ns_redisplay_interface): Add ns_draw_window_divider.
1908 (updateFrameSize:): Call change_frame_size with pixelwise zero.
1909 (x_new_font): Call x_set_window_size with pixelwise zero.
1910 * print.c (print_object): For a window print its sequence
1911 number again.
1912 * term.c (Fresume_tty): Pixelize call of change_frame_size.
1913 * w32fns.c (x_set_mouse_color): Handle vertical drag cursor.
1914 (x_set_menu_bar_lines, x_set_tool_bar_lines): Calculate pixelwise.
1915 (w32_createwindow): Use scroll bar area width.
1916 (w32_wnd_proc): Handle bottom divider width.
1917 For WM_WINDOWPOSCHANGING return zero if we resize pixelwise.
1918 (Fx_create_frame): Default divider width parameters.
1919 Caclulate sizes pixelwise. Add vertical drag cursor support.
1920 (x_create_tip_frame): Default divider widths to zero.
1921 Pixelize call to change_frame_size.
1922 (Fx_show_tip): Add handling of divider widths. Pixelize window
1923 position and sizes.
1924 (Fw32_frame_rect): New function.
1925 (frame_parm_handler w32_frame_parm_handlers): Add divider
1926 widths.
1927 (Vx_window_vertical_drag_shape): Add variable.
1928 * w32inevt.c (resize_event, maybe_generate_resize_event):
1929 Pixelize change_frame_size calls.
1930 * w32menu.c (set_frame_menubar): Pixelize x_set_window_size
1931 call.
1932 * w32term.c (w32_draw_window_divider): New function.
1933 (x_update_window_end): Handle right divider.
1934 (w32_draw_fringe_bitmap, x_scroll_run)
1935 (w32_set_vertical_scroll_bar): Pixelize scrollbar widths.
1936 (w32_read_socket): Handle SIZE_MAXIMIZED separately.
1937 Calculate new frame sizes pixelwise.
1938 (x_new_font): Pixelize call to x_set_window_size.
1939 (x_check_fullscreen): Pixelize call to change_frame_size.
1940 (x_set_window_size_1, x_set_window_size): New argument
1941 pixelwise. Calculate pixelwise.
1942 (x_wm_set_size_hint): Use scroll bar area width.
1943 (w32_redisplay_interface): Add w32_draw_window_divider.
1944 * w32term.h (struct w32_output): Add vertical drag cursor.
1945 * widget.c (set_frame_size, update_wm_hints)
1946 (EmacsFrameResize, EmacsFrameSetValues): Pixelize calls of
1947 change_frame_size.
1948 (EmacsFrameSetCharSize): Pixelize call of x_set_window_size.
1949 * window.c (sequence_number): Restore.
1950 (Fwindow_pixel_width, Fwindow_pixel_height)
1951 (Fwindow_mode_line_height, Fwindow_header_line_height)
1952 (window_pixel_to_total, Frun_window_scroll_functions)
1953 (Fset_window_new_pixel, window_resize_apply_total)
1954 (Fwindow_resize_apply_total): New functions.
1955 (window_body_height, window_body_width): Rename from
1956 window_body_lines. New argument PIXELWISE.
1957 Calculate pixelwise.
1958 (Fwindow_body_height, Fwindow_body_width): New argument
1959 PIXELWISE.
1960 (coordinates_in_window, window_relative_x_coord): Use window's
1961 pixel width instead of total width.
1962 (replace_window, recombine_windows): Initialize pixel values.
1963 (resize_root_window, resize_frame_windows, grow_mini_window)
1964 (shrink_mini_window): New argument PIXELWISE.
1965 Calculate pixelwise.
1966 (Fdelete_other_windows_internal, adjust_window_margins)
1967 (window_resize_check, window_resize_apply)
1968 (Fdelete_window_internal, Fresize_mini_window_internal)
1969 (Fwindow_text_width, Fwindow_text_height): Calculate pixelwise.
1970 (check_frame_size): Rename arguments. New argument PIXELWISE.
1971 Calculate pixelwise.
1972 (set_window_buffer): Make samebuf bool. Run configuration change
1973 hook only if buffer changed.
1974 (Fset_window_buffer): Rewrite doc-string.
1975 (make_window): Initialize new_pixel slot.
1976 (Fwindow_resize_apply): Check pixel size of root window.
1977 (Fsplit_window_internal): Call 2nd argument pixel_size.
1978 Calculate pixelwise.
1979 (Fscroll_left, Fscroll_right): Call window_body_width instead of
1980 window_body_cols.
1981 (save_window_data): New slots frame_text_width,
1982 frame_text_height, frame_menu_bar_height, frame_tool_bar_height.
1983 (saved_window): New slots pixel_left, pixel_top, pixel_height,
1984 pixel_width.
1985 (Fcurrent_window_configuration, Fset_window_configuration)
1986 (save_window_save, compare_window_configurations): Handle new
1987 slots in save_window_data and saved_window.
1988 (Fset_window_scroll_bars): Fix doc-string.
1989 (window_resize_pixelwise): New variable.
1990 (coordinates_in_window, Fcoordinates_in_window_p):
1991 Handle dividers.
1992 (make_parent_window): Adjust sequence_number.
1993 (Fwindow_right_divider_width, Fwindow_bottom_divider_width):
1994 New functions.
1995 * window.h (struct window): New members new_pixel, pixel_left,
1996 pixel_top, pixel_width, pixel_height. Restore sequence_number.
1997 (wset_new_pixel): New function.
1998 (WINDOW_PIXEL_WIDTH, WINDOW_PIXEL_HEIGHT)
1999 (MIN_SAFE_WINDOW_PIXEL_WIDTH, MIN_SAFE_WINDOW_PIXEL_HEIGHT)
2000 (WINDOW_LEFT_PIXEL_EDGE, WINDOW_RIGHT_PIXEL_EDGE)
2001 (WINDOW_TOP_PIXEL_EDGE, WINDOW_BOTTOM_PIXEL_EDGE)
2002 (WINDOW_BOTTOMMOST_P, WINDOW_BOX_LEFT_PIXEL_EDGE)
2003 (WINDOW_BOX_RIGHT_PIXEL_EDGE, WINDOW_MARGINS_COLS)
2004 (WINDOW_MARGINS_WIDTH, WINDOW_RIGHT_DIVIDER_WIDTH)
2005 (WINDOW_BOTTOM_DIVIDER_WIDTH): New macros.
2006 (WINDOW_TOTAL_FRINGE_WIDTH): Rename to WINDOW_FRINGES_WIDTH.
2007 (WINDOW_TOTAL_WIDTH, WINDOW_TOTAL_HEIGHT): Remove macros.
2008 (WINDOW_RIGHT_EDGE_X, WINDOW_LEFT_EDGE_X, WINDOW_TOP_EDGE_Y)
2009 (WINDOW_BOTTOM_EDGE_Y, WINDOW_FULL_WIDTH_P, WINDOW_LEFTMOST_P)
2010 (WINDOW_RIGHTMOST_P, WINDOW_BOX_LEFT_EDGE_X)
2011 (WINDOW_BOX_RIGHT_EDGE_X, WINDOW_FRINGE_COLS)
2012 (WINDOW_BOX_HEIGHT_NO_MODE_LINE, WINDOW_BOX_TEXT_HEIGHT):
2013 Rewrite.
2014 (resize_frame_windows, grow_mini_window, shrink_mini_window)
2015 (window_body_width, check_frame_size): Adapt external declarations.
2016 * xdisp.c (last_max_ascent): New integer.
2017 (window_text_bottom_y): Handle bottom divider.
2018 (window_box_width, window_box_height): Calculate pixelwise.
2019 (get_glyph_string_clip_rects): Handle right divider.
2020 (remember_mouse_glyph): When windows are resized pixelwise
2021 proceed with width and height set to 1.
2022 (init_iterator): Use WINDOW_PIXEL_WIDTH instead of
2023 WINDOW_TOTAL_WIDTH.
2024 (move_it_to): Calculate and return maximum x position
2025 encountered.
2026 (Fwindow_text_pixel_size): New function.
2027 (resize_mini_window, update_tool_bar): Calculate pixelwise.
2028 (tool_bar_lines_needed): Rename to tool_bar_height.
2029 Calculate pixelwise.
2030 (Ftool_bar_lines_needed): Rename to Ftool_bar_height.
2031 Calculate pixelwise.
2032 (redisplay_tool_bar): Calculate pixelwise.
2033 (redisplay_window): Calculate pixelwise. Handle dividers.
2034 (draw_glyphs, x_clear_end_of_line, note_mouse_highlight)
2035 (x_draw_vertical_border): Handle dividers.
2036 (define_frame_cursor1): Handle vertical drag cursor.
2037 (x_draw_right_divider, x_draw_bottom_divider): New functions.
2038 (expose_window): Calculate pixelwise. Handle dividers.
2039 (init_xdisp): Initialize pixel values.
2040 * xfaces.c (Qwindow_divider): New face.
2041 (realize_basic_faces): Realize it.
2042 * xfns.c (x_set_mouse_color): Handle vertical_drag_cursor.
2043 (x_set_menu_bar_lines, x_set_tool_bar_lines): Calculate pixelwise.
2044 (x_set_scroll_bar_default_width): Default actual width to 16.
2045 (Fx_create_frame): Set sizes pixelwise.
2046 (x_create_tip_frame): Default divider widths to zero.
2047 Pixelize call of change_frame_size.
2048 (Fx_show_tip): Handle divider widths. Initial pixel position
2049 and sizes.
2050 (frame_parm_handler x_frame_parm_handlers): Add divider widths.
2051 (Vx_window_vertical_drag_shape): New option.
2052 * xmenu.c (free_frame_menubar): Pixelize call of
2053 x_set_window_size.
2054 * xterm.c (x_draw_window_divider): New function.
2055 (x_update_window_end): Optionally draw right divider.
2056 (x_draw_fringe_bitmap, x_scroll_run, x_scroll_bar_create)
2057 (XTset_vertical_scroll_bar): Use scroll bar pixel width.
2058 (handle_one_xevent, x_new_font): Calculate pixelwise.
2059 (x_set_window_size_1, x_set_window_size): New argument
2060 pixelwise. Calculate pixelwise.
2061 (x_wm_set_size_hint): Pixelize call of check_frame_size.
2062 (struct x_redisplay_interface): Add x_draw_window_divider.
2063 * xterm.h (struct x_output): Add vertical_drag_cursor.
2064
20652013-11-30 Stefan Monnier <monnier@iro.umontreal.ca>
2066
2067 * xdisp.c (redisplay_internal): Don't call set_window_update_flags.
2068 Set invisible frames's `redisplay' when a full redisplay is requested.
2069 (redisplay_window): Set must_be_updated_p instead (bug#15999).
2070 (redisplay_mode_lines): Don't set must_be_updated_p any more.
2071 (display_mode_lines): Set it here instead.
2072
2073 * dispnew.c (set_window_update_flags): Remove `b' argument; make static.
2074
2075 * dispextern.h (set_window_update_flags): Remove.
2076
20772013-11-29 Stefan Monnier <monnier@iro.umontreal.ca>
2078
2079 * fns.c (internal_equal): Add a hash_table argument to handle cycles.
2080
2081 * xdisp.c (REDISPLAY_SOME_P): New macro.
2082 (redisplay_internal): Use it (bug#15999).
2083 (prepare_menu_bars, redisplay_window): Use it as well.
2084
2085 * lisp.mk (lisp): Add electric.elc and uniquify.elc.
2086
20872013-11-29 Tom Seddon <emacs@tomseddon.plus.com> (tiny change)
2088
2089 * w32font.c (g_b_init_get_char_width_32_w): New static var.
2090 (globals_of_w32font): Zero it out.
2091 (GetCharWidth32W_Proc): New function pointer.
2092 (get_char_width_32_w): New function.
2093 (compute_metrics): If get_glyph_outline_w returns an error, try
2094 get_char_width_32_w before declaring a failure. This avoids
2095 punishing raster (a.k.a. "bitmap") fonts by slowing down
2096 redisplay. (Bug#6364).
2097
20982013-11-29 Eli Zaretskii <eliz@gnu.org>
2099
2100 * xdisp.c (clear_mouse_face): Don't invalidate the entire
2101 mouse-highlight info, just signal frame_up_to_date_hook that mouse
2102 highlight needs to be redisplayed. (Bug#15913)
2103
21042013-11-29 Paul Eggert <eggert@cs.ucla.edu>
4072 2105
4073 * nsmenu.m (fillWithWidgetValue:): Remove code for < 2106 Fix minor problems found by static checking.
4074 MAC_OS_X_VERSION_10_2. 2107 * buffer.h (struct buffer_text, struct buffer):
2108 * frame.h (struct frame):
2109 * window.h (struct window):
2110 Avoid 'bool foo : 1;', as it's not portable to pre-C99 compilers,
2111 as described in ../lib/stdbool.in.h. Use 'unsigned foo : 1;' instead.
2112 * menu.c (syms_of_menu): Define x-popup-dialog, removing a
2113 no-longer-valid use of HAVE_MENUS.
2114 * xdisp.c (propagate_buffer_redisplay): Now static.
2115
21162013-11-29 Stefan Monnier <monnier@iro.umontreal.ca>
2117
2118 * xmenu.c (Fmenu_or_popup_active_p):
2119 * window.c (Fset_window_configuration):
2120 * menu.c (Fx_popup_menu, Fx_popup_dialog):
2121 * keyboard.c (record_menu_key, read_char_x_menu_prompt):
2122 * fns.c (Fyes_or_no_p):
2123 * editfns.c (Fmessage_box, Fmessage_or_box):
2124 * alloc.c (make_save_ptr_ptr):
2125 * xdisp.c, w32menu.c, term.c, xterm.h, xterm.c: Remove HAVE_MENUS.
2126
2127 * window.c (Fset_window_configuration): Move select_window later.
2128
21292013-11-28 Stefan Monnier <monnier@iro.umontreal.ca>
2130
2131 Refine redisplay optimizations to only redisplay *some* frames/windows
2132 rather than all of them.
2133 * xdisp.c (REDISPLAY_SOME): New constant.
2134 (redisplay_other_windows, wset_redisplay, fset_redisplay)
2135 (bset_redisplay, bset_update_mode_line): New functions.
2136 (message_dolog): Use bset_redisplay.
2137 (clear_garbaged_frames): Use fset_redisplay.
2138 (echo_area_display): Use wset_redisplay.
2139 (buffer_shared_and_changed): Remove.
2140 (prepare_menu_bars): Call Vpre_redisplay_function before updating
2141 frame titles. Compute the actual set of windows redisplayed.
2142 Don't update frame titles and menu bars for frames that don't need to
2143 be redisplayed.
2144 (propagate_buffer_redisplay): New function.
2145 (AINC): New macro.
2146 (redisplay_internal): Use it. Be more selective in the set of windows
2147 we redisplay. Propagate windows_or_buffers_changed to
2148 update_mode_lines a bit later to simplify the code.
2149 (mark_window_display_accurate_1): Reset window and buffer's
2150 `redisplay' flag.
2151 (redisplay_window): Do nothing if neither the window nor the buffer nor
2152 the frame needs redisplay.
2153 * window.h (struct window): Add `redisplay' field.
2154 (wset_redisplay, fset_redisplay, bset_redisplay, bset_update_mode_line)
2155 (redisplay_other_windows, window_list): New declarations.
2156 * window.c (select_window, Fset_window_start): Use wset_redisplay.
2157 (window_list): Not static any more.
2158 (grow_mini_window, shrink_mini_window): Use fset_redisplay.
2159 * minibuf.c (read_minibuf_unwind): Don't redisplay everything.
2160 * insdel.c (prepare_to_modify_buffer_1): Use bset_redisplay.
2161 * frame.c (Fmake_frame_visible): Don't redisplay everything.
2162 * frame.h (struct frame): Add `redisplay' field.
2163 Move `external_menu_bar' bitfield next to other bit-fields.
2164 (SET_FRAME_GARBAGED): Use fset_redisplay.
2165 (SET_FRAME_VISIBLE): Don't garbage the frame;
2166 Use redisplay_other_windows.
2167 * buffer.h (struct buffer): Add `redisplay' field.
2168 * buffer.c (Fforce_mode_line_update): Pay attention to the `all' flag.
2169 (modify_overlay): Use bset_redisplay.
2170 * alloc.c (gc_sweep): Don't unmark strings while sweeping symbols.
2171
21722013-11-28 Eli Zaretskii <eliz@gnu.org>
2173
2174 Support w32 file notifications in batch mode.
2175 * w32proc.c (sys_select): Don't wait on interrupt_handle if it is
2176 invalid (which happens in batch mode). If non-interactive, call
2177 handle_file_notifications to store file notification events in the
2178 input queue. (Bug#15933)
2179
2180 * w32notify.c (send_notifications): Handle FRAME_INITIAL frames as well.
2181
2182 * w32inevt.c (handle_file_notifications): Now external, not static.
2183
2184 * w32term.h (handle_file_notifications): Provide prototype.
2185
2186 * emacs.c (main) [HAVE_W32NOTIFY]: When non-interactive, call
2187 init_crit, since init_display, which does that otherwise, is not
2188 called.
2189
21902013-11-27 Glenn Morris <rgm@gnu.org>
2191
2192 * Makefile.in ($(lispsource)/international/charprop.el): New.
2193 (emacs$(EXEEXT)): Depend on charprop.el.
2194
21952013-11-27 Eli Zaretskii <eliz@gnu.org>
2196
2197 * fileio.c (Finsert_file_contents): Invalidate buffer caches when
2198 deleting portions of the buffer under non-nil REPLACE argument.
2199 (Bug#15973)
2200
2201 * w32notify.c (Fw32notify_add_watch): If the argument FILE is a
2202 directory, watch it and not its parent.
2203 (add_watch): Allow empty string in FILE.
2204
22052013-11-27 Martin Rudalics <rudalics@gmx.at>
2206
2207 * window.c (Fset_window_start, window_resize_apply)
2208 (window_scroll): Reset window_end_valid (Bug#15957).
2209
22102013-11-27 Glenn Morris <rgm@gnu.org>
2211
2212 * Makefile.in (leimdir): Now in lisp source directory.
2213 ($(leimdir)/leim-list.el): Just use ../leim .
2214 * epaths.in (PATH_DUMPLOADSEARCH):
2215 * lread.c (load_path_default):
2216 * nsterm.m (ns_load_path): No more leim directory.
2217
22182013-11-26 Andreas Schwab <schwab@suse.de>
2219
2220 * .gdbinit (xgettype): Add cast.
2221
22222013-11-26 Glenn Morris <rgm@gnu.org>
2223
2224 Preload leim-list.el.
2225 * epaths.in (PATH_DUMPLOADSEARCH): Add leim/.
2226 * callproc.c (init_callproc): Don't assume PATH_DUMPLOADSEARCH
2227 is a single directory.
2228
22292013-11-25 Paul Eggert <eggert@cs.ucla.edu>
2230
2231 bool-vector-subsetp is now the normal direction (Bug#15912).
2232 * data.c (Fbool_vector_subsetp): Test whether the first argument
2233 is a subset of the second one, not the reverse. Add doc string.
4075 2234
4076 * nsimage.m (setPixmapData, getPixelAtX, setAlphaAtX): Remove onTiger. 2235 Fix minor problems found by static checking.
2236 * lread.c (load_path_default): Now static.
2237 * textprop.c (text_property_stickiness): Be consistent about the
2238 test used when deciding whether to consider the previous character.
2239 This simplifies the code a bit.
4077 2240
4078 * nsfns.m (Fns_list_services): Remove comment and check for OSX < 10.4. 22412013-11-25 Stefan Monnier <monnier@iro.umontreal.ca>
4079 (ns_do_applescript): Remove check for >= MAC_OS_X_VERSION_10_4.
4080 2242
4081 * nsterm.m (ns_in_resize): Remove (Bug#12479). 2243 * textprop.c (text_property_stickiness): Fix front-stickiness at BOB.
4082 (ns_resize_handle_rect, mouseDown, mouseUp, mouseDragged): Remove.
4083 (ns_clear_frame, sendEvent, windowDidResize, drawRect:):
4084 Remove ns_in_resize check.
4085 (ns_clear_frame_area): Remove resize handle code.
4086
4087 * nsfns.m (ns_in_resize): Remove.
4088 (x_set_icon_name, ns_set_name, ns_set_name_as_filename):
4089 Remove ns_in_resize check.
4090
40912012-10-07 Paul Eggert <eggert@cs.ucla.edu>
4092 2244
4093 Improve sys_siglist detection. 2245 * frame.c (Fhandle_focus_in, Fhandle_focus_out): Move to frame.el.
4094 * sysdep.c (sys_siglist, init_signals): Use _sys_siglist if it's 2246 (syms_of_frame): Don't defsubr them.
4095 defined as a macro, as is done in Solaris.
4096 (sys_siglist_entries): New macro.
4097 (save_strsignal): Use it.
4098 * syssignal.h (safe_strsignal): Now ATTRIBUTE_CONST, to pacify
4099 GCC 4.7.2 on Fedora 17 with the fixed sys_siglist detection.
4100 2247
41012012-10-06 Jan Djärv <jan.h.d@swipnet.se> 22482013-11-25 Glenn Morris <rgm@gnu.org>
4102 2249
4103 * nsfns.m (Fx_create_frame): Call x_default_parameter with 2250 * lread.c (load_path_default): Change the sense of the argument.
4104 fullscreen/Fullscreen. 2251 (init_lread): When EMACSLOADPATH is set, do not ignore changes
2252 from dump_path. When it is not, avoid checking dump_path twice.
4105 2253
4106 * nsterm.h (EmacsView): Rename tbar_height to tibar_height. 2254 * lread.c (init_lread): Fix 2013-11-23 goof that was checking
4107 tobar_height is new. 2255 uninstalled dump_path against installed Vload_path. (Bug#15964)
4108 2256
4109 * nsterm.m (x_make_frame_visible): Check for fullscreen. 22572013-11-24 Stefan Monnier <monnier@iro.umontreal.ca>
4110 (ns_fullscreen_hook): Activate old style fullscreen with a timer.
4111 (ns_term_init): Set activateIgnoringOtherApps if old style fullscreen.
4112 (windowDidResize:): Check for correct window if old style fullscreen.
4113 Capitalize word in comment. Remove incorrect comment.
4114 (initFrameFromEmacs:): tbar_height renamed tibar_height.
4115 (windowDidEnterFullScreen:): Toggle toolbar for fullscreen to fix
4116 error in drawing background.
4117 (toggleFullScreen:): Remove comment. Rearrange calls.
4118 Set toolbar values to zero, save old height in tobar_height.
4119 Restore tool bar height when leaving fullscreen.
4120 (canBecomeMainWindow): New function.
4121 2258
41222012-10-06 Paul Eggert <eggert@cs.ucla.edu> 2259 Export get_pos_property to Elisp.
2260 * editfns.c (Fget_pos_property): Rename from get_pos_property.
2261 (syms_of_editfns): Export it to Elisp.
4123 2262
4124 * keyboard.c (read_char): Remove unnecessary 'volatile's and label. 2263 * data.c (Fmake_variable_buffer_local): Mention `permanent-local'.
4125 2264
41262012-10-05 Eli Zaretskii <eliz@gnu.org> 22652013-11-23 Romain Francoise <romain@orebokech.com>
4127 2266
4128 * w32proc.c (stop_timer_thread): Fix declaration of 'err'. 2267 * fileio.c (init_fileio): Move `write_region_inhibit_fsync'
2268 initialization here ...
2269 (syms_of_fileio): ... from here.
4129 2270
4130 * w32.c (utime): Open the file with FILE_FLAG_BACKUP_SEMANTICS, so 22712013-11-23 Stefan Monnier <monnier@iro.umontreal.ca>
4131 that time stamps of directories could also be changed.
4132 Don't request the too broad GENERIC_WRITE, only the more restrictive
4133 FILE_WRITE_ATTRIBUTES access rights.
4134 2272
4135 * fileio.c (Fset_file_times): Special-case ignoring errors for 2273 * lread.c (init_lread): Fix int/Lisp_Object mixup.
4136 directories only on MSDOS, not on MS-Windows. 2274 Please use --enable-check-lisp-object-type.
4137 2275
41382012-10-05 Ikumi Keita <ikumi@ikumi.que.jp> (tiny change) 22762013-11-23 Glenn Morris <rgm@gnu.org>
4139 2277
4140 * minibuf.c (Fcompleting_read): Doc fix. (Bug#12555) 2278 * process.c (get_process): Explicit error for dead buffers.
4141 2279
41422012-10-04 Eli Zaretskii <eliz@gnu.org> 22802013-11-23 Andreas Schwab <schwab@linux-m68k.org>
4143 2281
4144 * w32.c (utime): Test for INVALID_HANDLE_VALUE, not for NULL, to 2282 * process.c (get_process): Check that OBJ is a live buffer. (Bug#15923)
4145 see whether CreateFile failed.
4146 2283
41472012-10-04 Paul Eggert <eggert@cs.ucla.edu> 22842013-11-23 Glenn Morris <rgm@gnu.org>
4148 2285
4149 * profiler.c (handle_profiler_signal): Inhibit pending signals too, 2286 Empty elements in EMACSLOADPATH stand for the default. (Bug#12100)
4150 to avoid similar races. 2287 * lread.c (load_path_check): Take path to check as argument.
4151 * keyboard.c (pending_signals): Now bool, not int. 2288 (load_path_default): New, split from init_lread.
2289 (init_lread): Move calc of default load-path to load_path_default.
2290 Empty elements in EMACSLOADPATH now stand for the default.
2291 (load-path): Doc fix.
2292 * emacs.c (decode_env_path): Add option to treat empty elements
2293 as nil rather than ".".
2294 * callproc.c (init_callproc_1, init_callproc):
2295 * image.c (Vx_bitmap_file_path):
2296 * lisp.h (decode_env_path):
2297 * lread.c (Vsource_directory):
2298 Update for new argument spec of decode_env_path.
4152 2299
4153 Port timers to OpenBSD, plus check for timer failures. 23002013-11-22 Eli Zaretskii <eliz@gnu.org>
4154 OpenBSD problem reported by Han Boetes.
4155 * profiler.c (setup_cpu_timer): Check for failure of timer_settime
4156 and/or setitimer.
4157 (Fprofiler_cpu_stop): Don't assume HAVE_SETITIMER.
4158 * syssignal.h (HAVE_ITIMERSPEC): New macro. This is for platforms
4159 like OpenBSD, which has timer_settime but does not declare it.
4160 OpenBSD does not define SIGEV_SIGNAL, so use that when deciding
4161 whether to use itimerspec-related primitives. All uses of
4162 HAVE_TIMER_SETTIME replaced with HAVE_ITIMERSPEC.
4163 2301
41642012-10-02 Paul Eggert <eggert@cs.ucla.edu> 2302 * bidi.c (bidi_find_paragraph_start): Limit the returned positions
2303 to BEGV_BYTE..ZV_BYTE range. (Bug#15951)
4165 2304
4166 * profiler.c (handle_profiler_signal): Fix a malloc race 23052013-11-21 Paul Eggert <eggert@cs.ucla.edu>
4167 that caused Emacs to hang on Fedora 17 when profiling Lisp.
4168 2306
41692012-10-02 Jan Djärv <jan.h.d@swipnet.se> 2307 Fix some dependency problems that cause unnecessary recompiles.
2308 Problem reported by RMS in
2309 <http://lists.gnu.org/archive/html/emacs-devel/2013-11/msg00421.html>.
2310 * Makefile.in (OLDXMENU_TARGET, OLDXMENU, OLDXMENU_DEPS)
2311 (really-lwlib, really-oldXMenu, stamp-oldxmenu)
2312 (../src/$(OLDXMENU), $(OLDXMENU)): Remove.
2313 (temacs$(EXEEXT)): Depend on $(LIBXMENU), not stamp-oldxmenu.
2314 ($(lwlibdir)/liblw.a, $(oldXMenudir)/libXMenu11.a, FORCE): New targets.
2315 (boostrap-clean): No need to remove stamp-oldxmenu.
4170 2316
4171 * nsterm.m (windowDidEnterFullScreen): Remove fprintf. 2317 Fix recently introduced bool vector overrun.
2318 This was due to an optimization that went awry.
2319 Reported by Glenn Morris in
2320 <http://lists.gnu.org/archive/html/emacs-devel/2013-11/msg00622.html>.
2321 * alloc.c (make_uninit_bool_vector): Don't allocate a dummy word
2322 for empty vectors, undoing the 2013-11-18 change.
2323 * data.c (bool_vector_binop_driver): Rely on this.
2324 Fix bug that occasionally overran the destination.
2325 * lisp.h (struct Lisp_Bool_vector): Document this.
4172 2326
41732012-10-02 Eli Zaretskii <eliz@gnu.org> 23272013-11-20 Jan Djärv <jan.h.d@swipnet.se>
4174 2328
4175 * w32proc.c (sys_wait): Declare 'signame' 'const char *', to be 2329 * nsterm.m (init, run, stop:): Enable again. stop calls super stop
4176 consistent with the change in return value of 'safe_strsignal'. 2330 to handle dialogs.
4177 2331
41782012-10-02 Paul Eggert <eggert@cs.ucla.edu> 2332 * nsterm.m (init, run, stop:): Comment out for now, does not work
2333 with dialogs.
4179 2334
4180 Prefer plain 'static' to 'static inline' (Bug#12541). 23352013-11-19 Paul Eggert <eggert@cs.ucla.edu>
4181 * bidi.c (bidi_get_type, bidi_check_type, bidi_get_category)
4182 (bidi_set_sor_type, bidi_push_embedding_level)
4183 (bidi_pop_embedding_level, bidi_remember_char, bidi_copy_it)
4184 (bidi_cache_reset, bidi_cache_shrink, bidi_cache_fetch_state)
4185 (bidi_cache_search, bidi_cache_ensure_space)
4186 (bidi_cache_iterator_state, bidi_cache_find)
4187 (bidi_peek_at_next_level, bidi_set_paragraph_end)
4188 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
4189 (bidi_explicit_dir_char, bidi_resolve_neutral_1):
4190 Now 'static', not 'static inline'.
4191 2336
4192 Count overruns when profiling; change units to ns. 2337 * charset.c (syms_of_charset): Don't read past end of string.
4193 * profiler.c (handle_profiler_signal): Count sampling intervals, not ms.
4194 Give extra weight to samples after overruns, to attempt to count
4195 the time more accurately.
4196 (setup_cpu_timer): Change sampling interval units from ms to ns, since
4197 the underlying primitives nominally do ns.
4198 (Fprofiler_cpu_start): Document the change. Mention that
4199 the sampling intervals are only approximate.
4200 2338
42012012-10-02 Stefan Monnier <monnier@iro.umontreal.ca> 23392013-11-19 Glenn Morris <rgm@gnu.org>
4202 2340
4203 * frame.c (Fmake_terminal_frame): Prefer safer CONSP over !NILP. 2341 * frame.c (Fhandle_focus_in, Fhandle_focus_out): Doc fixes.
4204 2342
4205 * coding.h (ENCODE_FILE, DECODE_FILE, DECODE_SYSTEM): Remove special 23432013-11-19 Brian Jenkins <brian@brianjenkins.org> (tiny change)
4206 case for the special 0 coding-system.
4207 2344
4208 * buffer.c (Fset_buffer_multibyte): Signal an error instead of widening. 2345 Add hooks to run on gaining/losing focus. (Bug#15029)
4209 (Fmake_overlay): Remove redundant tests. 2346 * frame.c (Qfocus_in_hook, Qfocus_out_hook): New static lisp objects.
4210 (fix_start_end_in_overlays): Remove redundant recentering. 2347 (Fhandle_focus_in, Fhandle_focus_out): Run focus hooks.
2348 (syms_of_frame): Add focus-in-hook, focus-out-hook.
4211 2349
42122012-10-02 Juanma Barranquero <lekktu@gmail.com> 23502013-11-18 Paul Eggert <eggert@cs.ucla.edu>
4213 2351
4214 * makefile.w32-in ($(BLD)/alloc.$(O), $(BLD)/gmalloc.$(O)): 2352 * data.c (bool_vector_binop_driver): Rename locals for sanity's sake.
4215 Update dependencies. 2353 The old names predated the API change that put destination at end.
4216 2354
42172012-10-01 Paul Eggert <eggert@cs.ucla.edu> 2355 Improve API of recently-added bool vector functions (Bug#15912).
4218 2356 The old API had (bool-vector-count-matches A B)
4219 Fix a malloc race condition involving strsignal. 2357 and (bool-vector-count-matches-at A B I), which gave the
4220 A signal can arrive in the middle of a malloc, and Emacs's signal 2358 misleading impression that the two functions were variants, one
4221 handler can invoke strsignal, which can invoke malloc, which is 2359 with a location I. The new API has (bool-vector-count-population A)
4222 not portable. This race condition bug makes Emacs hang on GNU/Linux. 2360 and (bool-vector-count-consecutive A B I) to make the distinction
4223 Fix it by altering the signal handler so that it does not invoke 2361 clearer. The first function no longer has a B argument, since the
4224 strsignal. 2362 caller can easily determine the number of nils if the length and
4225 * emacs.c (shut_down_emacs): Use safe_strsignal, not strsignal. 2363 number of ts is known.
4226 * process.c (status_message): Use const pointer, in case strsignal 2364 * data.c (Fbool_vector_count_population): Rename from
4227 is #defined to safe_strsignal. 2365 bool_vector_count_matches, and accept just 1 argument.
4228 * sysdep.c (sys_siglist, init_signals): Always define and 2366 (Fbool_vector_count_consecutive): Rename from
4229 initialize a substitute sys_siglist if the system does not define 2367 Fbool_vector_count_matches_at.
4230 one, even if HAVE_STRSIGNAL.
4231 (safe_strsignal): Rename from strsignal. Always define,
4232 using sys_siglist. Return a const pointer.
4233 * syssignal.h (safe_strsignal): New decl.
4234 (strsignal) [!HAVE_STRSIGNAL]: Define in terms of safe_strsignal.
4235
42362012-10-01 Eli Zaretskii <eliz@gnu.org>
4237
4238 * w32proc.c (timer_loop): Fix code that waits for timer
4239 expiration, to avoid high CPU usage.
4240
42412012-10-01 Stefan Monnier <monnier@iro.umontreal.ca>
4242
4243 * fns.c (check_hash_table, get_key_arg, maybe_resize_hash_table)
4244 (sweep_weak_table): Remove redundant prototypes.
4245
42462012-10-01 Fabrice Popineau <fabrice.popineau@gmail.com>
4247
4248 * emacs.c: Move the inclusion of TERM_HEADER after including
4249 windows.h on WINDOWSNT. This avoids compilation problems with
4250 MSVC.
4251
42522012-10-01 Eli Zaretskii <eliz@gnu.org>
4253
4254 * unexw32.c (OFFSET_TO_RVA, RVA_TO_OFFSET)
4255 (RVA_TO_SECTION_OFFSET): Encode all macro arguments in parentheses.
4256 (RVA_TO_PTR): Cast the result of RVA_TO_OFFSET to 'unsigned char *',
4257 as the previous version used 'void *'.
4258
4259 * ralloc.c (ROUNDUP): Fix last change.
4260 (MEM_ROUNDUP): Don't cast MEM_ALIGN, it is already of type
4261 'size_t'.
4262
4263 * w32proc.c <disable_itimers>: New static flag.
4264 (init_timers): Initialize it to zero, after creating the critical
4265 sections used by the timer threads.
4266 (term_timers): Set to 1 before deleting the critical sections.
4267 (getitimer, setitimer): If disable_itimers is non-zero, return an
4268 error indication without doing anything. Reported by Fabrice
4269 Popineau <fabrice.popineau@supelec.fr> as part of bug#12544.
4270 (alarm) [HAVE_SETITIMER]: Be more conformant to the expected
4271 return results.
4272 [!HAVE_SETITIMER]: Behave as the previous version that didn't
4273 support timers.
4274
4275 * emacs.c (shut_down_emacs) [WINDOWSNT]: Move the call to
4276 term_ntproc after all the other bookkeeping, to get timers working
4277 as long as possible.
4278
42792012-10-01 Paul Eggert <eggert@cs.ucla.edu>
4280
4281 * xdisp.c (syms_of_xdisp): Default message-log-max to 1000, not 100.
4282 Suggested by Juri Linkov in
4283 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00821.html>.
4284
4285 Prefer plain 'static' to 'static inline' (Bug#12541).
4286 With static functions, modern compilers inline pretty well by
4287 themselves; advice from programmers often hurts as much as it helps.
4288 On my host (x86-64, Fedora 17, GCC 4.7.2, default 'configure'),
4289 this change shrinks the text size of the Emacs executable by 1.1%
4290 without affecting CPU significantly in my benchmark.
4291 * alloc.c (mem_find, live_string_p, live_cons_p, live_symbol_p)
4292 (live_float_p, live_misc_p, live_vector_p, live_buffer_p)
4293 (mark_maybe_object, mark_maybe_pointer, bounded_number):
4294 * buffer.c (bset_abbrev_mode, bset_abbrev_table)
4295 (bset_auto_fill_function, bset_auto_save_file_format)
4296 (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
4297 (bset_bidi_display_reordering, bset_buffer_file_coding_system)
4298 (bset_cache_long_line_scans, bset_case_fold_search)
4299 (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
4300 (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
4301 (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
4302 (bset_fringe_indicator_alist, bset_fringes_outside_margins)
4303 (bset_header_line_format, bset_indicate_buffer_boundaries)
4304 (bset_indicate_empty_lines, bset_invisibility_spec)
4305 (bset_left_fringe_width, bset_major_mode, bset_mark)
4306 (bset_minor_modes, bset_mode_line_format, bset_mode_name)
4307 (bset_name, bset_overwrite_mode, bset_pt_marker)
4308 (bset_right_fringe_width, bset_save_length)
4309 (bset_scroll_bar_width, bset_scroll_down_aggressively)
4310 (bset_scroll_up_aggressively, bset_selective_display)
4311 (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
4312 (bset_word_wrap, bset_zv_marker, set_buffer_overlays_before)
4313 (set_buffer_overlays_after):
4314 * category.c (bset_category_table):
4315 * charset.c (read_hex):
4316 * coding.c (produce_composition, produce_charset)
4317 (handle_composition_annotation, handle_charset_annotation)
4318 (char_encodable_p):
4319 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers)
4320 (assign_row, set_frame_matrix_frame, make_current)
4321 (add_row_entry):
4322 * eval.c (set_specpdl_symbol, set_specpdl_old_value):
4323 * fns.c (maybe_resize_hash_table):
4324 * frame.c (fset_buffer_predicate, fset_minibuffer_window):
4325 * gmalloc.c (register_heapinfo):
4326 * image.c (lookup_image_type):
4327 * intervals.c (set_interval_object, set_interval_left)
4328 (set_interval_right, copy_interval_parent, rotate_right)
4329 (rotate_left, balance_possible_root_interval):
4330 * keyboard.c (kset_echo_string, kset_kbd_queue)
4331 (kset_keyboard_translate_table, kset_last_prefix_arg)
4332 (kset_last_repeatable_command, kset_local_function_key_map)
4333 (kset_overriding_terminal_local_map, kset_real_last_command)
4334 (kset_system_key_syms, clear_event, set_prop):
4335 * lread.c (digit_to_number):
4336 * marker.c (attach_marker, live_buffer, set_marker_internal):
4337 * nsterm.m (ns_compute_glyph_string_overhangs):
4338 * process.c (pset_buffer, pset_command)
4339 (pset_decode_coding_system, pset_decoding_buf)
4340 (pset_encode_coding_system, pset_encoding_buf, pset_filter)
4341 (pset_log, pset_mark, pset_name, pset_plist, pset_sentinel)
4342 (pset_status, pset_tty_name, pset_type, pset_write_queue):
4343 * syntax.c (bset_syntax_table, dec_bytepos):
4344 * terminal.c (tset_param_alist):
4345 * textprop.c (interval_has_some_properties)
4346 (interval_has_some_properties_list):
4347 * window.c (wset_combination_limit, wset_dedicated)
4348 (wset_display_table, wset_hchild, wset_left_fringe_width)
4349 (wset_left_margin_cols, wset_new_normal, wset_new_total)
4350 (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
4351 (wset_right_fringe_width, wset_right_margin_cols)
4352 (wset_scroll_bar_width, wset_start, wset_temslot, wset_vchild)
4353 (wset_vertical_scroll_bar_type, wset_window_parameters):
4354 * xdisp.c (wset_base_line_number, wset_base_line_pos)
4355 (wset_column_number_displayed, wset_region_showing)
4356 (window_box_edges, run_window_scroll_functions)
4357 (append_glyph_string_lists, prepend_glyph_string_lists)
4358 (append_glyph_string, set_glyph_string_background_width)
4359 (append_glyph, append_composite_glyph)
4360 (take_vertical_position_into_account):
4361 * xfaces.c (x_create_gc, x_free_gc, merge_face_vectors)
4362 (face_attr_equal_p, lface_equal_p, hash_string_case_insensitive)
4363 (lface_hash, lface_same_font_attributes_p, lookup_face):
4364 * xml.c (libxml2_loaded_p):
4365 * xterm.c (x_set_mode_line_face_gc, x_set_glyph_string_gc)
4366 (x_set_glyph_string_clipping, x_clear_glyph_string_rect):
4367 Now 'static', not 'static inline'.
4368
4369 * bidi.c: Tune.
4370 (bidi_copy_it): Do the whole copy with a single memcpy.
4371 (bidi_char_at_pos): Merge the two STRING_CHAR calls into one.
4372
4373 Revert the FOLLOW-SYMLINKS change for file-attributes.
4374 Doing it right would require several changes to Tramp, and there's
4375 not enough time to get that tested before the freeze today.
4376 * dired.c (directory_files_internal, Ffile_attributes):
4377 Undo last change.
4378
4379 * frame.c (x_report_frame_params): Port better to wider ints.
4380 Do not assume that EMACS_UINT is the same width as uprintmax_t,
4381 or that pointers can be printed in 15 decimal digits.
4382 Avoid GCC warnings if EMACS_UINT is wider than a pointer.
4383
43842012-09-30 Fabrice Popineau <fabrice.popineau@supelec.fr>
4385
4386 Support x64 build on MS-Windows.
4387 * w32term.h (SCROLL_BAR_PACK, SCROLL_BAR_UNPACK): Define for x64.
4388 (SET_SCROLL_BAR_W32_WINDOW): Cast ID to intptr_t, for
4389 compatibility with x64.
4390 (x_get_focus_frame): Add prototype.
4391
4392 * w32term.c (w32_draw_underwave): Don't use GCC extensions for
4393 defining an XRectangle structure.
4394
4395 * w32proc.c (RVA_TO_PTR, w32_executable_type): Fix pointer
4396 arithmetics for compatibility with x64.
4397
4398 * w32menu.c (add_menu_item): Use UINT_PTR instead of UINT, for
4399 compatibility with x64.
4400
4401 * w32heap.h: Adjust prototypes and declarations.
4402
4403 * w32heap.c (RVA_TO_PTR, allocate_heap, sbrk, init_heap)
4404 (round_heap): Use DWORD_PTR, ptrdiff_t and size_t instead of
4405 DWORD, long, and unsigned long, for compatibility with x64.
4406 (allocate_heap) [_WIN64]: Reserve 32GB of memory.
4407 (sbrk): Argument is now of type ptrdiff_t.
4408
4409 * w32fns.c (HMONITOR): Condition declaration on _WIN32_WINNT being
4410 less than 0x0500.
4411 (w32_msg_pump): Use WPARAM type for 'result'.
4412
4413 * w32.c (init_environment, get_emacs_configuration): Support AMD64
4414 architecture.
4415 (init_ntproc): Cast arguments of _open_osfhandle to intptr_t, for
4416 compatibility with x64.
4417
4418 * vm-limit.c (lim_data): Now size_t.
4419 (check_memory_limits): Adjust prototypes of real_morecore and
4420 __morecore to receive argument of type ptrdiff_t. Use size_t for
4421 five_percent and data_size.
4422
4423 * unexw32.c: Use DWORD_PTR instead of DWORD for file-scope
4424 variables, for compatibility with x64.
4425 (rva_to_section, offset_to_section, relocate_offset)
4426 (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET)
4427 (PTR_TO_RVA, RVA_TO_PTR, OFFSET_TO_PTR, get_section_info)
4428 (copy_executable_and_dump_data): Use DWORD_PTR instead of DWORD
4429 for compatibility with x64.
4430
4431 * sysdep.c (STDERR_FILENO): Define if not already defined.
4432
4433 * ralloc.c (real_morecore): Argument type is now ptrdiff_t.
4434 (__morecore): Argument type is now ptrdiff_t.
4435 (ROUNDUP, MEM_ROUNDUP): Use size_t instead of 'unsigned long'.
4436 (relinquish): Use ptrdiff_t type for 'excess'.
4437 (r_alloc_sbrk): Argument type is now ptrdiff_t.
4438
4439 * makefile.w32-in (HEAPSIZE): Get value from EMACS_HEAPSIZE.
4440 (bootstrap-temacs-CMD, bootstrap-temacs-SH): Use $(EMACS_PURESIZE)
4441 instead of a literal number.
4442
4443 * gmalloc.c [WINDOWSNT]: Include w32heap.h.
4444 (min): Define only if not already defined.
4445
4446 * frame.c (x_report_frame_params): Use EMACS_UINT for the return
4447 value of FRAME_X_WINDOW, to fit a 64-bit pointer on 64-bit Windows
4448 hosts.
4449
4450 * image.c (x_bitmap_pixmap): Return ptrdiff_t, not int, since
4451 'bitmaps' is a pointer.
4452
4453 * dispextern.h (x_bitmap_pixmap): Adjust prototype.
4454
4455 * alloc.c (gdb_make_enums_visible): Now conditional on __GNUC__.
4456
44572012-09-30 Paul Eggert <eggert@cs.ucla.edu>
4458
4459 file-attributes has a new optional arg FOLLOW-SYMLINKS.
4460 * dired.c (directory_files_internal, Ffile_attributes):
4461 New arg follow_symlinks. All uses changed.
4462 2368
44632012-09-30 Stefan Monnier <monnier@iro.umontreal.ca> 2369 Always allocate at least one bits_word per bool vector.
2370 See Daniel Colascione in:
2371 http://lists.gnu.org/archive/html/emacs-devel/2013-11/msg00518.html
2372 * alloc.c (make_uninit_bool_vector): Always allocate at least one word.
2373 * data.c (bool_vector_binop_driver): Rely on this. Tune.
2374 * lisp.h (struct Lisp_Bool_vector): Document this.
4464 2375
4465 * .gdbinit (xbacktrace): Adjust to recent "struct backtrace" change. 23762013-11-18 Eli Zaretskii <eliz@gnu.org>
4466 2377
44672012-09-30 Eli Zaretskii <eliz@gnu.org> 2378 * insdel.c (invalidate_buffer_caches): New function, consolidated
2379 from part of prepare_to_modify_buffer.
2380 (insert_from_gap, prepare_to_modify_buffer):
2381 * coding.c (code_convert_region, code_convert_string):
2382 Call invalidate_buffer_caches. (Bug#15841)
4468 2383
4469 Support atimers and CPU profiler via profile.c on MS-Windows. 2384 * lisp.h (invalidate_buffer_caches): Add prototype.
4470 * w32proc.c (sig_mask, crit_sig): New static variables.
4471 (sys_signal): Support SIGALRM and SIGPROF.
4472 (sigemptyset, sigaddset, sigfillset, sigprocmask)
4473 (pthread_sigmask, setpgrp): Move here from w32.c. sigaddset,
4474 sigfillset, and sigprocmask are no longer no-ops.
4475 (sigismember): New function.
4476 (struct itimer_data): New definition.
4477 (ticks_now, real_itimer, prof_itimer, clocks_min, crit_real)
4478 (crit_prof): New static variables.
4479 (MAX_SINGLE_SLEEP): New definition.
4480 (timer_loop, stop_timer_thread, term_timers, init_timers)
4481 (start_timer_thread, getitimer, setitimer): New functions.
4482 (alarm): No longer a no-op, calls setitimer.
4483 2385
4484 * w32.c (term_ntproc): Call term_timers. 23862013-11-17 Eli Zaretskii <eliz@gnu.org>
4485 (init_ntproc): Make sure all signals are unblocked at startup, to
4486 erase any traces of dumping. Call init_timers.
4487
4488 * w32fns.c (hourglass_timer, HOURGLASS_ID): Remove.
4489 Windows-specific code to display the hourglass mouse pointer is no
4490 longer used.
4491 (w32_wnd_proc): Remove code that handled the WM_TIMER message due
4492 to hourglass timer expiration.
4493 (start_hourglass, cancel_hourglass, DEFAULT_HOURGLASS_DELAY):
4494 Remove, no longer used.
4495 (w32_note_current_window, show_hourglass, hide_hourglass):
4496 New functions, in support of hourglass cursor display similar to other
4497 window systems.
4498 (syms_of_w32fns): Don't initialize hourglass_timer.
4499
4500 * xdisp.c (start_hourglass, cancel_hourglass): Now used on
4501 WINDOWSNT as well.
4502 (start_hourglass) [WINDOWSNT]: Call w32_note_current_window.
4503
4504 * w32.h (init_timers, term_timers): Add prototypes.
4505
45062012-09-30 Kenichi Handa <handa@gnu.org>
4507
4508 * coding.c (decode_coding_ccl, encode_coding_ccl): Pay attention
4509 to the buffer relocation which may be caused by ccl_driver.
4510
45112012-09-30 Jan Djärv <jan.h.d@swipnet.se>
4512
4513 * xfns.c (Fx_file_dialog): Update comment.
4514
4515 * w32fns.c (Fx_file_dialog): Update comment.
4516
4517 * nsfns.m (Fns_read_file_name): Add argument DIR_ONLY_P.
4518 Initialize panel name field if OSX >= 10.6.
4519
4520 * fileio.c (Fnext_read_file_uses_dialog_p): Add HAVE_NS.
4521
4522 * nsfns.m (ns_frame_parm_handlers): Add x_set_fullscreen.
4523
4524 * nsterm.m (NEW_STYLE_FS): New define.
4525 (ns_fullscreen_hook, windowWillEnterFullScreen)
4526 (windowDidEnterFullScreen, windowWillExitFullScreen)
4527 (windowDidExitFullScreen, toggleFullScreen, handleFS)
4528 (setFSValue): New functions.
4529 (EmacsFSWindow): New implementation.
4530 (canBecomeKeyWindow): New function for EmacsFSWindow.
4531 (ns_create_terminal): Set fullscreen_hook to ns_fullscreen_hook.
4532 (dealloc): Release nonfs_window if in fullscreen.
4533 (updateFrameSize:): Call windowDidMove to update top/left.
4534 (windowWillResize:toSize:): Check if frame is still maximized.
4535 (initFrameFromEmacs:): Initialize fs_state, fs_before_fs,
4536 next_maximized, maximized_width, maximized_height and nonfs_window.
4537 Call setCollectionBehavior if NEW_STYLE_FS. Initialize bwidth and
4538 tbar_height.
4539 (windowWillUseStandardFrame:defaultFrame:): Update frame parameter
4540 fullscreen. Set maximized_width/height. Act on next_maximized.
4541
4542 * nsterm.h (MAC_OS_X_VERSION_10_7, MAC_OS_X_VERSION_10_8): New.
4543 (EmacsView): Add variables for fullscreen.
4544 (handleFS, setFSValue, toggleFullScreen): New in EmacsView.
4545 (EmacsFSWindow): New interface for fullscreen.
4546
45472012-09-30 Juanma Barranquero <lekktu@gmail.com>
4548
4549 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
4550
45512012-09-30 Chong Yidong <cyd@gnu.org>
4552
4553 * fns.c (Frandom): Doc fix.
4554
45552012-09-30 Martin Rudalics <rudalics@gmx.at>
4556
4557 * window.c (Vwindow_combination_limit): New default value.
4558 (Qwindow_size): New symbol replacing Qtemp_buffer_resize.
4559
45602012-09-30 Paul Eggert <eggert@cs.ucla.edu>
4561
4562 * syssignal.h (PROFILER_CPU_SUPPORT): Don't define if PROFILING.
4563 Suggested by Eli Zaretskii in
4564 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00811.html>.
4565
45662012-09-30 Eli Zaretskii <eliz@gnu.org>
4567
4568 * profiler.c (Fprofiler_cpu_stop): Use timer_settime only if
4569 HAVE_TIMER_SETTIME is defined.
4570
45712012-09-30 Paul Eggert <eggert@cs.ucla.edu>
4572
4573 Profiler improvements: more-accurate timers, overflow checks.
4574 * profiler.c: Don't include stdio.h, limits.h, sys/time.h,
4575 signal.h, setjmp.h. Include systime.h instead.
4576 (saturated_add): New function.
4577 (record_backtrace, current_sample_interval): Use EMACS_INT, not size_t.
4578 (record_backtrace, handle_profiler_signal): Saturate on fixnum overflow.
4579 (profiler_timer, profiler_timer_ok) [HAVE_TIMER_SETTIME]:
4580 New static vars.
4581 (enum profiler_cpu_running): New enum.
4582 (profiler_cpu_running): Now of that enum type, not bool.
4583 All uses changed to store the new value.
4584 (handle_profiler_signal): Rename from sigprof_handler_1,
4585 for consistency with other handlers. Do not check whether
4586 cpu_log is a hash-table if garbage collecting, since it
4587 doesn't matter in that case.
4588 (deliver_profiler_signal): Rename from sigprof_handler,
4589 for consistency with other handlers.
4590 (setup_cpu_timer): New function, with much of what used to be in
4591 Fprofiler_cpu_start. Check for out-of-range argument.
4592 Prefer timer_settime if available, and prefer
4593 thread cputime clocks, then process cputime clocks, then
4594 monotonic clocks, to the old realtime clock. Use make_timeval
4595 to round more-correctly when falling back to setitimer.
4596 (Fprofiler_cpu_start): Use it.
4597 (Fprofiler_cpu_stop): Prefer timer_settime if available.
4598 Don't assume that passing NULL as the 2nd argument of setitimer
4599 is the same as passing a pointer to all-zero storage.
4600 Ignore SIGPROF afterwards.
4601 (malloc_probe): Saturate at MOST_POSITIVE_FIXNUM.
4602 * sysdep.c (emacs_sigaction_init): Also mask out SIGPROF in
4603 non-fatal signal handlers. Ignore SIGPROF on startup.
4604 * syssignal.h (PROFILER_CPU_SUPPORT): Define this macro here, not
4605 in profiler.c, since sysdep.c now uses it.
4606
4607 * sysdep.c (handle_fatal_signal): Bump backtrace size to 40.
4608 Suggested by Eli Zaretskii in
4609 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00796.html>.
4610
46112012-09-29 Juanma Barranquero <lekktu@gmail.com>
4612
4613 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
4614
46152012-09-29 Stefan Monnier <monnier@iro.umontreal.ca>
4616
4617 * lisp.h (struct backtrace): Remove indirection for `function' field.
4618 * xdisp.c (redisplay_internal):
4619 * profiler.c (record_backtrace, sigprof_handler_1):
4620 * alloc.c (Fgarbage_collect):
4621 * eval.c (interactive_p, Fsignal, eval_sub, Ffuncall, Fbacktrace)
4622 (Fbacktrace_frame): Adjust accordingly.
4623 2387
46242012-09-28 Glenn Morris <rgm@gnu.org> 2388 * w32term.c (x_update_window_end): Don't invalidate the entire
2389 mouse-highlight info, just signal frame_up_to_date_hook that mouse
2390 highlight needs to be redisplayed. (Bug#15913)
4625 2391
4626 * eval.c (Frun_hook_with_args, Frun_hook_with_args_until_success) 23922013-11-17 Paul Eggert <eggert@cs.ucla.edu>
4627 (Frun_hook_with_args_until_failure): Doc fixes.
4628 2393
46292012-09-28 Eli Zaretskii <eliz@gnu.org> 2394 * lisp.h (DEBUGGER_SEES_C_MACROS): Remove.
4630 2395
4631 * xdisp.c (syms_of_xdisp) <Qredisplay_internal>: Rename from 23962013-11-16 Eli Zaretskii <eliz@gnu.org>
4632 Qautomatic_redisplay and change the symbol name. All users changed.
4633 2397
46342012-09-28 Tomohiro Matsuyama <tomo@cx4a.org> 2398 * doc.c (Fsubstitute_command_keys): Inhibit modification hooks
2399 while we are using Vprin1_to_string_buffer.
4635 2400
4636 * profiler.c (sigprof_handler): Fix race condition. 2401 * keymap.c (describe_map): Don't crash if PT is 1 both before and
2402 after inserting the description string. (Bug#15907)
4637 2403
46382012-09-28 Glenn Morris <rgm@gnu.org> 24042013-11-15 Paul Eggert <eggert@cs.ucla.edu>
4639 2405
4640 * lread.c (lisp_file_lexically_bound_p): Handle #! lines. (Bug#12528) 2406 * data.c: Work around bogus GCC diagnostic about shift count.
2407 Reported by Eli Zaretskii in
2408 <http://lists.gnu.org/archive/html/emacs-devel/2013-11/msg00489.html>.
2409 (pre_value): New function.
2410 (count_trailing_zero_bits): Use it.
4641 2411
46422012-09-27 Paul Eggert <eggert@cs.ucla.edu> 24122013-11-15 Eli Zaretskii <eliz@gnu.org>
4643 2413
4644 Check more robustly for timer_settime. 2414 * lisp.h (DEBUGGER_SEES_C_MACROS) [GCC < v3.5]: Pessimistically
4645 * Makefile.in (LIB_TIMER_TIME): New macro. 2415 assume C macros are not supported even under -g3 in these old GCC
4646 (LIBES): Add it. 2416 versions.
4647 * atimer.c (alarm_timer, alarm_timer_ok, set_alarm, init_atimer):
4648 Use HAVE_TIMER_SETTIME, not SIGEV_SIGNAL, to decide whether to
4649 call timer_settime.
4650 2417
46512012-09-26 Tomohiro Matsuyama <tomo@cx4a.org> 24182013-11-15 Leo Liu <sdl.web@gmail.com>
4652 2419
4653 * profiler.c (Fprofiler_cpu_start): Remove unnecessary flag SA_SIGINFO. 2420 * minibuf.c (Ftry_completion, Fall_completions)
2421 (Ftest_completion): Use FUNCTIONP. (Bug#15889)
4654 2422
46552012-09-26 Juanma Barranquero <lekktu@gmail.com> 24232013-11-15 Paul Eggert <eggert@cs.ucla.edu>
4656 2424
4657 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies. 2425 * lisp.h (DEFINE_GDB_SYMBOL_BEGIN, DEFINE_GDB_SYMBOL_END):
2426 Define to empty if DEBUGGER_SEES_C_MACROS is defined.
2427 This avoids placing unnecessary constants into the Emacs code.
4658 2428
46592012-09-26 Paul Eggert <eggert@cs.ucla.edu> 24292013-11-14 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
4660 2430
4661 * character.h (MAYBE_UNIFY_CHAR): Remove. 2431 * keyboard.c (make_ctrl_char) [HAVE_NTGUI]: Now externally visible
4662 * charset.c, charset.h (maybe_unify_char): Now static. 2432 for Cygwin w32 build.
4663 * charset.c (decode_char): Use maybe_unify_char, not MAYBE_UNIFY_CHAR.
4664 Since this stuff is now private to charset.c, there's no need for
4665 a public macro and no need to inline by hand.
4666 2433
46672012-09-26 Tomohiro Matsuyama <tomo@cx4a.org> 2434 * xdisp.c (erase_phys_cursor) [HAVE_NTGUI]: Now externally visible
4668 Stefan Monnier <monnier@iro.umontreal.ca> 2435 for Cygwin w32 build. (Bug#15892)
4669 Juanma Barranquero <lekktu@gmail.com>
4670 2436
4671 * profiler.c: New file. 24372013-11-14 Paul Eggert <eggert@cs.ucla.edu>
4672 * Makefile.in (base_obj): Add profiler.o.
4673 * makefile.w32-in (OBJ2, GLOBAL_SOURCES): Add profiler.c.
4674 ($(BLD)/profiler.$(O)): New target.
4675 * emacs.c (main): Call syms_of_profiler.
4676 * alloc.c (Qautomatic_gc): New constant.
4677 (MALLOC_PROBE): New macro.
4678 (xmalloc, xzalloc, xrealloc, lisp_malloc, lisp_align_malloc): Use it.
4679 (total_bytes_of_live_objects): New function.
4680 (Fgarbage_collect): Use it. Record itself in backtrace_list.
4681 Call malloc_probe for the memory profiler.
4682 (syms_of_alloc): Define Qautomatic_gc.
4683 * eval.c (eval_sub, Ffuncall): Reorder assignments to avoid
4684 race condition.
4685 (struct backtrace): Move definition...
4686 * lisp.h (struct backtrace): ..here.
4687 (Qautomatic_gc, profiler_memory_running): Declare vars.
4688 (malloc_probe, syms_of_profiler): Declare functions.
4689 * xdisp.c (Qautomatic_redisplay): New constant.
4690 (redisplay_internal): Record itself in backtrace_list.
4691 (syms_of_xdisp): Define Qautomatic_redisplay.
4692 2438
46932012-09-25 Eli Zaretskii <eliz@gnu.org> 2439 Simplify, port and tune bool vector implementation.
46942012-09-25 Juanma Barranquero <lekktu@gmail.com> 2440 * alloc.c (bool_vector_exact_payload_bytes)
2441 (bool_vector_payload_bytes): Remove.
2442 (bool_vector_fill): Return its argument.
2443 * alloc.c (bool_vector_fill):
2444 * lread.c (read1):
2445 * print.c (print_object):
2446 Simplify by using bool_vector_bytes.
2447 * alloc.c (make_uninit_bool_vector):
2448 New function, broken out from Fmake_bool_vector.
2449 (Fmake_bool_vector): Use it. Use tail call.
2450 (make_uninit_bool_vector, vector_nbytes): Simplify size calculations.
2451 * data.c (BITS_PER_ULL): New constant.
2452 (ULLONG_MAX, count_one_bits_ll): Fall back on long counterparts
2453 if long long versions don't exist.
2454 (shift_right_ull): New function.
2455 (count_one_bits_word): New function, replacing popcount_bits_word
2456 macro. Don't assume that bits_word is no wider than long long.
2457 (count_one_bits_word, count_trailing_zero_bits):
2458 Don't assume that bits_word is no wider than long long.
2459 * data.c (bool_vector_binop_driver, bool_vector_not):
2460 * fns.c (Fcopy_sequence):
2461 * lread.c (read1):
2462 Create an uninitialized destination, to avoid needless work.
2463 (internal_equal): Simplify.
2464 (Ffillarray): Prefer tail call.
2465 * data.c (bool_vector_binop_driver): Don't assume bit vectors always
2466 contain at least one word.
2467 (bits_word_to_host_endian): Prefer if to #if. Don't assume
2468 chars are narrower than ints.
2469 * data.c (Fbool_vector_count_matches, Fbool_vector_count_matches_at):
2470 * fns.c (Fcopy_sequence):
2471 Simplify and tune.
2472 * lisp.h (bits_word, BITS_WORD_MAX, BITS_PER_BITS_WORD):
2473 Don't try to port to hosts where bits_word values have holes; the
2474 code wouldn't work there anyway. Verify this assumption, though.
2475 (bool_vector_bytes): New function.
2476 (make_uninit_bool_vector): New decl.
2477 (bool_vector_fill): Now returns Lisp_Object.
2478
2479 * xfns.c (xic_create_fontsetname):
2480 * xrdb.c (gethomedir): Prefer tail calls.
2481
24822013-11-12 Paul Eggert <eggert@cs.ucla.edu>
2483
2484 * xterm.c (syms_of_xterm): staticpro Qmodifier_value, Qalt, Qhyper,
2485 Qmeta, and Qsuper. This is safer, and it's what w32fns.c does.
2486
2487 * buffer.c (Fforce_mode_line_update): Don't fall off end of function
2488 that requires a return value.
2489 (Fset_buffer_modified_p): Take advantage of this change to do
2490 a tail call.
2491
24922013-11-11 Stefan Monnier <monnier@iro.umontreal.ca>
2493
2494 * buffer.c (Frestore_buffer_modified_p): Sync it with
2495 Fset_buffer_modified_p.
2496 (Fforce_mode_line_update): New function, moved from subr.el.
2497 (Fset_buffer_modified_p): Use them.
2498 (syms_of_buffer): Defsubr Fforce_mode_line_update.
2499
25002013-11-11 Paul Eggert <eggert@cs.ucla.edu>
2501
2502 * search.c (find_newline): Rewrite to prefer offsets to pointers.
2503 This avoids undefined behavior when subtracting pointers into
2504 different aways. On my platform it also makes the code a tad
2505 smaller and presumably faster.
2506
25072013-11-11 Stefan Monnier <monnier@iro.umontreal.ca>
2508
2509 * keyboard.c (command_loop_1): Use region-extract-function.
2510 * insdel.c (Qregion_extract_function): Not static any more (can we
2511 stop pretending that these vars can benefit from being marked static?).
2512
25132013-11-09 Eli Zaretskii <eliz@gnu.org>
2514
2515 * search.c (find_newline): If buffer text is relocated during the
2516 "dumb loop", adjust C pointers into buffer text to follow suit.
2517 (Bug#15841)
2518
25192013-11-09 Łukasz Stelmach <stlman@poczta.fm> (tiny change)
2520
2521 * gtkutil.c (xg_check_special_colors): Use rgb: instead of rgbi:
2522 for conversion (Bug#15837).
2523
25242013-11-09 Eli Zaretskii <eliz@gnu.org>
2525
2526 * fileio.c (Finsert_file_contents): Invalidate the newline cache
2527 for the entire range of inserted characters. (Bug#15841)
2528
25292013-11-08 Jan Djärv <jan.h.d@swipnet.se>
2530
2531 * xfaces.c (lface_fully_specified_p): Let distant-foreground be
2532 unspecified.
2533 (realize_default_face): Remove assignment to distant-foreground if
2534 unspecified (Bug#15815).
2535
25362013-11-08 Eli Zaretskii <eliz@gnu.org>
2537
2538 * xdisp.c (message_dolog): Make sure the *Messages* buffer has its
2539 cache-long-scans disabled, since we don't want to call
2540 prepare_to_modify_buffer (in insert_1_both) for each message we
2541 display.
2542
2543 * buffer.h (bset_cache_long_scans): New INLINE function, moved
2544 from buffer.c. Improve commentary to the buffer field setter
2545 functions.
2546
2547 * buffer.c (bset_cache_long_scans): Static function deleted.
2548 Improve commentary to the buffer field setter functions.
2549 (init_buffer_once): Default for cache-long-scans changed to t.
2550 (Bug#15797)
2551
25522013-11-08 Paul Eggert <eggert@cs.ucla.edu>
4695 2553
4696 * makefile.w32-in ($(BLD)/callproc.$(O)): Update dependencies. 2554 * gmalloc.c (special_realloc, calloc, mallochook): Use tail calls.
4697 2555
46982012-09-25 Paul Eggert <eggert@cs.ucla.edu> 2556 * chartab.c (make_sub_char_table): Fix size typo (Bug#15825).
2557 This bug was introduced in my 2013-06-21 change, and caused
2558 struct Lisp_Sub_Char_Table objects to be given too many slots,
2559 which broke 'make -C admin/unidata'.
4699 2560
4700 Prefer POSIX timers if available. 25612013-11-07 Jan Djärv <jan.h.d@swipnet.se>
4701 They avoid a race if the timer is too close to the current time.
4702 * atimer.c (alarm_timer, alarm_timer_ok) [SIGEV_SIGNAL]: New static vars.
4703 (set_alarm) [SIGEV_SIGNAL]: Use POSIX timers if available.
4704 (init_atimer) [SIGEV_SIGNAL]: Initialize them.
4705 2562
47062012-09-25 Eli Zaretskii <eliz@gnu.org> 2563 Import changes from mac-port 4.5.
2564 * macfont.m (mac_font_copy_default_descriptors_for_language)
2565 (mac_font_copy_default_name_for_charset_and_languages): Declare.
2566 (cf_charset_table): big-5-0 has uniquifier 0x4EDC.
2567 (macfont_language_default_font_names): New.
2568 (macfont_list): Rearrange language/charset code.
2569 (macfont_close): Don't check for macfont_info->cache.
2570 (mac_ctfont_create_preferred_family_for_attributes): New font
2571 selection code, call
2572 mac_font_copy_default_name_for_charset_and_languages.
2573 (mac_font_copy_default_descriptors_for_language)
2574 (mac_font_copy_default_name_for_charset_and_languages): New functions.
4707 2575
4708 * coding.c (CHAR_STRING_ADVANCE_NO_UNIFY): Make it an alias of 2576 * macfont.h (kCTVersionNumber10_9): Define if not defined.
4709 CHAR_STRING_ADVANCE.
4710 (STRING_CHAR_ADVANCE_NO_UNIFY): Make it an alias of
4711 STRING_CHAR_ADVANCE.
4712 2577
47132012-09-25 Juanma Barranquero <lekktu@gmail.com> 25782013-11-07 Paul Eggert <eggert@cs.ucla.edu>
4714 2579
4715 Move Vlibrary_cache to emacs.c and reset before dumping. 2580 Port to C11 aligned_alloc, and fix some integer overflows.
2581 * alloc.c (USE_ALIGNED_ALLOC): New symbol.
2582 (USE_POSIX_MEMALIGN): Remove. All uses replaced with USE_ALIGNED_ALLOC,
2583 and use of posix_memalign replaced with aligned_alloc.
2584 (aligned_alloc): New function, defined or declared as needed.
2585 * conf_post.h (HAVE_POSIX_MEMALIGN) [DARWIN_OS]:
2586 Don't undef; configure.ac now does this.
2587 * gmalloc.c (aligned_alloc) [MSDOS]: New decl.
2588 (calloc, aligned_alloc): Check for integer overflow.
2589 (aligned_alloc): Rename from memalign. All uses changed.
2590 (memalign): New function, an alias for aligned_alloc.
4716 2591
4717 * lisp.h (reset_image_types): Declare. 25922013-11-06 Stefan Monnier <monnier@iro.umontreal.ca>
4718 [WINDOWSNT] (Vlibrary_cache): Declare.
4719 2593
4720 * image.c (reset_image_types): New function. 2594 * xdisp.c (redisplay_internal): Fix typo in last change.
4721 2595
4722 * emacs.c [WINDOWSNT] (Vlibrary_cache): Move from w32.c. 25962013-11-06 Paul Eggert <eggert@cs.ucla.edu>
4723 (syms_of_emacs) [WINDOWSNT] <Vlibrary_cache>: Initialize and staticpro.
4724 (Fdump_emacs): Reset Vlibrary_cache and image_types.
4725 2597
4726 * w32.c (Vlibrary_cache): Do not define; moved to emacs.c 2598 * regex.c: Fix --enable-gcc-warning glitch with GCC 4.5.2.
4727 (globals_of_w32) <Vlibrary_cache>: Do not initialize.
4728 2599
4729 * w32.h (Vlibrary_cache): Do not declare. 26002013-11-06 Stefan Monnier <monnier@iro.umontreal.ca>
4730 2601
47312012-09-25 Eli Zaretskii <eliz@gnu.org> 2602 * xdisp.c (syms_of_xdisp): New vars redisplay--all-windows-cause and
2603 redisplay--mode-lines-cause.
2604 (redisplay_internal): Keep them uptodate. Remove redundant check of
2605 buffer_shared_and_changed.
2606 * *.[chm]: Number every assignment to update_mode_lines so we
2607 can track why it is set.
4732 2608
4733 * w32proc.c (sys_signal): Handle all signals defined by the 26092013-11-06 Eli Zaretskii <eliz@gnu.org>
4734 MS-Windows runtime, not just SIGCHLD. Actually install the signal
4735 handlers for signals supported by Windows. Don't override
4736 term_ntproc as the handler for SIGABRT.
4737 (sigaction): Rewrite to call sys_signal instead of duplicating its
4738 code.
4739 (sys_kill): Improve commentary.
4740 2610
4741 * w32.c (term_ntproc): Accept (and ignore) one argument, for 2611 * editfns.c (Fformat_time_string): Doc fix. (Bug#15816)
4742 consistency with a signature of a signal handler. All callers
4743 changed.
4744 (init_ntproc): Accept an argument DUMPING. If dumping, don't
4745 install term_ntproc as a signal handler for SIGABRT, as that
4746 should be done by the dumped Emacs.
4747
4748 * w32.h (init_ntproc, term_ntproc): Adjust prototypes.
4749
4750 * w32select.c (term_w32select): Protect against repeated
4751 invocation by setting clipboard_owner to NULL after calling
4752 DestroyWindow.
4753
4754 * emacs.c (shut_down_emacs, main): Adapt the calls to init_ntproc
4755 and term_ntproc to their modified signatures.
4756
4757 * character.c (char_string, string_char): Remove calls to
4758 MAYBE_UNIFY_CHAR. See the discussion starting at
4759 http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00433.html
4760 for the details.
4761
47622012-09-25 Chong Yidong <cyd@gnu.org>
4763
4764 * xdisp.c (mode_line_inverse_video): Delete obsolete variable.
4765
47662012-09-24 Stefan Monnier <monnier@iro.umontreal.ca>
4767
4768 * bytecode.c (exec_byte_code): Signal an error instead of aborting,
4769 when encountering an unknown bytecode.
4770
47712012-09-24 Paul Eggert <eggert@cs.ucla.edu>
4772
4773 image.c, indent.c: Use bool for booleans.
4774 * dispextern.h (struct image_type): Members valid_p, load, init
4775 now return bool, not int. All uses changed.
4776 * image.c: Omit unnecessary static decls.
4777 (x_create_bitmap_mask, x_build_heuristic_mask):
4778 Return void, not int, since callers don't care about the return value.
4779 (x_create_bitmap_mask, define_image_type, valid_image_p)
4780 (struct image_keyword, parse_image_spec, image_spec_value)
4781 (check_image_size, image_background)
4782 (image_background_transparent, x_clear_image_1)
4783 (postprocess_image, lookup_image, x_check_image_size)
4784 (x_create_x_image_and_pixmap, xbm_image_p)
4785 (Create_Pixmap_From_Bitmap_Data, xbm_read_bitmap_data)
4786 (xbm_load_image, xbm_file_p, xbm_load, xpm_lookup_color)
4787 (init_xpm_functions, xpm_valid_color_symbols_p, xpm_image_p)
4788 (xpm_load, xpm_load_image, lookup_rgb_color, lookup_pixel_color)
4789 (x_to_xcolors, x_build_heuristic_mask, pbm_image_p, pbm_load)
4790 (png_image_p, init_png_functions, png_load_body, png_load)
4791 (jpeg_image_p, init_jpeg_functions, jpeg_load_body, jpeg_load)
4792 (tiff_image_p, init_tiff_functions, tiff_load, gif_image_p)
4793 (init_gif_functions, gif_load, imagemagick_image_p)
4794 (imagemagick_load_image, imagemagick_load, svg_image_p)
4795 (init_svg_functions, svg_load, svg_load_image, gs_image_p)
4796 (gs_load):
4797 * nsimage.m (ns_load_image):
4798 * nsterm.m (ns_defined_color):
4799 * xfaces.c (tty_lookup_color, tty_defined_color, defined_color):
4800 * xfns.c (x_defined_color):
4801 * xterm.c (x_alloc_lighter_color_for_widget)
4802 (x_alloc_nearest_color_1, x_alloc_nearest_color)
4803 (x_alloc_lighter_color):
4804 * indent.c (disptab_matches_widthtab, current_column)
4805 (scan_for_column, string_display_width, indented_beyond_p)
4806 (compute_motion, vmotion, Fvertical_motion):
4807 Use bool for booleans.
4808 2612
48092012-09-24 Chong Yidong <cyd@gnu.org> 26132013-11-06 Stefan Monnier <monnier@iro.umontreal.ca>
4810 2614
4811 * chartab.c (Fset_char_table_default): Obsolete function removed. 2615 * *.[chm]: Number every assignment to windows_or_buffers_changed so we
4812 2616 can track why it is set.
48132012-09-23 Paul Eggert <eggert@cs.ucla.edu> 2617
4814 26182013-11-06 Paul Eggert <eggert@cs.ucla.edu>
4815 Move pid_t related decls out of lisp.h. 2619
4816 * lisp.h, syswait.h (record_child_status_change, wait_for_termination) 2620 Integer-related fixes for term.c etc.
4817 (interruptible_wait_for_termination): 2621 * dispextern.h (face_tty_specified_color): New function.
4818 Move these decls from lisp.h to syswait.h, since they use pid_t. 2622 * term.c (turn_on_face): Don't rely on undefined behavior when
4819 Needed on FreeBSD; see Herbert J. Skuhra in 2623 assigning an out-of-range value to 'long'.
4820 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00571.html>. 2624 Simplify test for toggling highlight.
4821 * callproc.c: Include syswait.h. 2625 (tty_capable_p): Omit last two (unused) args. All callers changed.
4822 2626 * term.c (tty_capable_p, tty_menu_display, tty_menu_add_selection)
4823 gnutls.c, gtkutil.c: Use bool for boolean. 2627 (read_menu_input, tty_menu_activate, tty_menu_show):
4824 * gnutls.c (gnutls_global_initialized, init_gnutls_functions) 2628 * xfaces.c (x_supports_face_attributes_p)
4825 (emacs_gnutls_handle_error): 2629 (tty_supports_face_attributes_p):
4826 * gtkutil.c (xg_check_special_colors, xg_prepare_tooltip) 2630 Use bool for boolean. All callers changed.
4827 (xg_hide_tooltip, xg_create_frame_widgets) 2631 (tty_supports_face_attributes_p): Omit defaults for color indices;
4828 (create_dialog, xg_uses_old_file_dialog) 2632 no longer needed. Simplify tail call.
4829 (xg_get_file_with_chooser, xg_get_file_with_selection) 2633
4830 (xg_get_file_name, xg_have_tear_offs, create_menus, xg_create_widget) 26342013-11-05 Stefan Monnier <monnier@iro.umontreal.ca>
4831 (xg_item_label_same_p, xg_update_menubar) 2635
4832 (xg_modify_menubar_widgets, xg_event_is_for_menubar) 2636 * xdisp.c (prepare_menu_bars): Mark static.
4833 (xg_ignore_gtk_scrollbar, xg_set_toolkit_scroll_bar_thumb) 2637 * lisp.h (prepare_menu_bars): Don't declare.
4834 (xg_event_is_for_scrollbar, xg_pack_tool_bar, xg_make_tool_item) 2638 * xselect.c (x_handle_selection_clear):
4835 (is_box_type, xg_tool_item_stale_p, xg_update_tool_bar_sizes) 2639 * callproc.c (call_process): Remove redundant call to prepare_menu_bars.
4836 (update_frame_tool_bar, free_frame_tool_bar): 2640
4837 * gtkutil.c, w32term.c, xterm.c (x_wm_set_size_hint): 26412013-11-05 Paul Eggert <eggert@cs.ucla.edu>
4838 * nsmenu.m (ns_update_menubar): 2642
4839 * nsmenu.m, w32menu.c, xmenu.c (set_frame_menubar): 2643 * keyboard.c (Fcommand_error_default_function): Fix pointer signedness
4840 * xfns.c (Fx_show_tip) [USE_GTK]: 2644 glitch. Eliminate 'sz' prefix; Hungarian notation is not helpful here.
4841 Use bool for boolean. 2645
4842 * gtkutil.c (xg_update_frame_menubar): 26462013-11-05 Stefan Monnier <monnier@iro.umontreal.ca>
4843 * xmenu.c (update_frame_menubar): 2647
4844 Return void, not int, since caller ignores return value. 2648 * keyboard.c (Fcommand_error_default_function): Rename from
4845 * gtkutil.c (xg_change_toolbar_position): 2649 Fdefault_error_output.
4846 Return void, not 1. 2650
4847 26512013-11-05 Jarek Czekalski <jarekczek@poczta.onet.pl> (tiny change)
48482012-09-23 Juanma Barranquero <lekktu@gmail.com> 2652
4849 2653 * keyboard.c (Fdefault_error_output): New function, extracted from
4850 * makefile.w32-in (BLOCKINPUT_H): Remove. 2654 cmd_error_internal.
4851 (SYSSIGNAL_H): New macro. 2655 (syms_of_keyboard): Use it for Vcommand_error_function.
4852 ($(BLD)/alloc.$(O), $(BLD)/atimer.$(O), $(BLD)/buffer.$(O)) 2656
4853 ($(BLD)/callproc.$(O), $(BLD)/data.$(O), $(BLD)/dired.$(O)) 26572013-11-05 Stefan Monnier <monnier@iro.umontreal.ca>
4854 ($(BLD)/dispnew.$(O), $(BLD)/editfns.$(O), $(BLD)/emacs.$(O)) 2658
4855 ($(BLD)/eval.$(O), $(BLD)/fileio.$(O), $(BLD)/floatfns.$(O)) 2659 * eval.c (handlerlist_sentinel): New variable (bug#15802).
4856 ($(BLD)/fns.$(O), $(BLD)/fontset.$(O), $(BLD)/frame.$(O)) 2660 (init_eval): Use it to ensure handlerlist is non-NULL.
4857 ($(BLD)/fringe.$(O), $(BLD)/image.$(O), $(BLD)/insdel.$(O)) 2661 (unwind_to_catch): Make sure we never set handlerlist to NULL.
4858 ($(BLD)/keyboard.$(O), $(BLD)/keymap.$(O), $(BLD)/lread.$(O)) 2662 (Fsignal): Adjust NULLness test of handlerlist.
4859 ($(BLD)/menu.$(O), $(BLD)/w32inevt.$(O), $(BLD)/w32proc.$(O)) 2663 * lisp.h (PUSH_HANDLER): Assume handlerlist is non-NULL.
4860 ($(BLD)/print.$(O), $(BLD)/process.$(O), $(BLD)/ralloc.$(O)) 2664
4861 ($(BLD)/search.$(O), $(BLD)/sound.$(O), $(BLD)/sysdep.$(O)) 26652013-11-05 Eli Zaretskii <eliz@gnu.org>
4862 ($(BLD)/term.$(O), $(BLD)/window.$(O), $(BLD)/xdisp.$(O)) 2666
4863 ($(BLD)/xfaces.$(O), $(BLD)/w32fns.$(O), $(BLD)/w32menu.$(O)) 2667 * callproc.c (call_process): Call prepare_to_modify_buffer before
4864 ($(BLD)/w32term.$(O), $(BLD)/w32select.$(O), $(BLD)/w32reg.$(O)) 2668 decoding text read from the sub-process, as the decoded stuff will
4865 ($(BLD)/w32xfns.$(O)): Update dependencies. 2669 be inserted into the buffer. This will invalidate the various
4866 2670 caches maintained for the buffer. (Bug#15148)
48672012-09-23 Eli Zaretskii <eliz@gnu.org> 2671
4868 26722013-11-05 Xue Fuqiao <xfq.free@gmail.com>
4869 * .gdbinit: Set breakpoint on terminate_due_to_signal, not on 2673
4870 fatal_error_backtrace. 2674 * xdisp.c (syms_of_xdisp): Mention the active display table in doc
4871 2675 string of glyphless-char-display.
4872 * w32proc.c (sys_kill): Undo last change: don't do anything when 2676
4873 invoked to deliver SIGABRT to our own process. This is now 26772013-11-05 Jan Djärv <jan.h.d@swipnet.se>
4874 handled by emacs_raise. 2678
4875 2679 * nsfns.m (ns_get_name_from_ioreg): New function.
48762012-09-23 Juanma Barranquero <lekktu@gmail.com> 2680 (ns_screen_name): Don't use deprecated CGDisplayIOServicePort on
4877 2681 OSX >= 10.9. Use ns_get_name_from_ioreg.
4878 * w32term.c (w32_read_socket): Remove leftover reference to 2682
4879 interrupt_input_pending. 26832013-11-05 Paul Eggert <eggert@cs.ucla.edu>
4880 2684
48812012-09-23 Paul Eggert <eggert@cs.ucla.edu> 2685 Simplify and port recent bool vector changes.
4882 2686 * alloc.c (ROUNDUP): Move here from lisp.h, since it's now used
4883 Do not use SA_NODEFER. 2687 only in this file. Use a more-efficient implementation if the
4884 Problem reported by Dani Moncayo in 2688 second argument is a power of 2.
4885 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00557.html>. 2689 (ALIGN): Rewrite in terms of ROUNDUP. Make it a function.
4886 * alloc.c (die): 2690 Remove no-longer-necessary compile-time checks.
4887 * sysdep.c (emacs_abort): Do not reset signal handler. 2691 (bool_vector_exact_payload_bytes): New function.
4888 * emacs.c (terminate_due_to_signal): Reset signal handler here. 2692 (bool_vector_payload_bytes): Remove 2nd arg; callers that need
4889 * sysdep.c (init_signals): Do not use SA_NODEFER. It wasn't 2693 exact payload changed to call the new function. Do not assume
4890 wanted even on POSIXish hosts, and it doesn't work on Windows. 2694 that the arg or result fits in ptrdiff_t.
4891 2695 (bool_vector_fill): New function.
48922012-09-23 Jan Djärv <jan.h.d@swipnet.se> 2696 (Fmake_bool_vector): Use it. Don't assume bit counts fit
4893 2697 in ptrdiff_t.
4894 * xterm.c (x_term_init): Call fixup_locale before and after calling 2698 (vroundup_ct): Don't assume arg fits in size_t.
4895 gtk_init (Bug#12392). 2699 * category.c (SET_CATEGORY_SET): Remove. All callers now just
4896 2700 invoke set_category_set.
48972012-09-23 Chong Yidong <cyd@gnu.org> 2701 (set_category_set): 2nd arg is now EMACS_INT and 3rd is now bool.
4898 2702 All callers changed. Use bool_vector_set.
4899 * w32.c (w32_delayed_load): Remove LIBRARIES argument; always use 2703 * category.h (XCATEGORY_SET): Remove; no longer needed.
4900 Vdynamic_library_alist. 2704 (CATEGORY_MEMBER): Now a function. Rewrite in terms of
4901 2705 bool_vector_bitref.
4902 * gnutls.c (init_gnutls_functions): Caller changed; remove arg. 2706 * data.c (Faref): Use bool_vector_ref.
4903 (Fgnutls_available_p): Caller changed. 2707 (Faset): Use bool_vector_set.
4904 2708 (bits_word_to_host_endian): Don't assume you can shift by CHAR_BIT.
4905 * xml.c (init_libxml2_functions, Flibxml_parse_html_region) 2709 (Fbool_vector_not, Fbool_vector_count_matches)
4906 (Flibxml_parse_xml_region): Likewise. 2710 (Fbool_vector_count_matches_at): Don't assume CHAR_BIT == 8.
4907 2711 * fns.c (concat): Use bool_vector_ref.
4908 * dispextern.h (struct image_type): Remove arg from init function. 2712 (Ffillarray): Use bool_vector_fill.
4909 2713 (mapcar1): Use bool_vector_ref.
4910 * image.c (Finit_image_library, lookup_image_type) 2714 (sxhash_bool_vector): Hash words, not bytes.
4911 (define_image_type): Remove now-unneeded second arg. 2715 * lisp.h (BOOL_VECTOR_BITS_PER_CHAR): Now a macro as well as
4912 (init_xpm_functions, init_png_functions, init_jpeg_functions) 2716 a constant, since it's now used in #if.
4913 (init_tiff_functions, init_gif_functions, init_svg_functions): 2717 (bits_word, BITS_WORD_MAX, BITS_PER_BITS_WORD): Fall back on
4914 Arglist and w32_delayed_load calling convention changed. 2718 unsigned char on unusual architectures, so that we no longer
4915 (gs_type): Remove init_gs_functions; there is no such function. 2719 assume that the number of bits per bits_word is a power of two or
4916 (valid_image_p, make_image): Fix caller to lookup_image_type. 2720 is a multiple of 8 or of CHAR_BIT.
4917 2721 (Qt): Add forward decl.
49182012-09-23 Paul Eggert <eggert@cs.ucla.edu> 2722 (struct Lisp_Bool_Vector): Don't assume EMACS_INT is aligned
4919 2723 at least as strictly as bits_word.
4920 Simplify and avoid signal-handling races (Bug#12471). 2724 (bool_vector_data, bool_vector_uchar_data): New accessors.
4921 * alloc.c (die): 2725 All data structure accesses changed to use them.
4922 * sysdep.c (emacs_abort) [HAVE_NTGUI]: 2726 (bool_vector_words, bool_vector_bitref, bool_vector_ref)
4923 Avoid recursive loop if there's a fatal error in the function itself. 2727 (bool_vector_set): New functions.
4924 * atimer.c (pending_atimers): 2728 (bool_vector_fill): New decl.
4925 * blockinput.h: Don't include "atimer.h"; no longer needed. 2729 (ROUNDUP): Move to alloc.c as described above.
4926 (interrupt_input_pending): Remove. All uses removed. 2730
4927 pending_signals now counts both atimers and ordinary interrupts. 2731 Fix recent gnutls changes.
4928 This is less racy than having three separate pending-signal flags. 2732 * gnutls.c (Fgnutls_boot): Don't assume C99.
4929 (block_input, unblock_input, totally_unblock_input, unblock_input_to) 2733 * process.c (wait_reading_process_output): Fix typo in recent change.
4930 (input_blocked_p): 2734
4931 Rename from their upper-case counterparts BLOCK_INPUT, 27352013-11-05 Teodor Zlatanov <tzz@lifelogs.com>
4932 UNBLOCK_INPUT, TOTALLY_UNBLOCK_INPUT, UNBLOCK_INPUT_TO, 2736
4933 INPUT_BLOCKED_P, and turn into functions. All uses changed. 2737 * process.c (wait_reading_process_output, read_process_output)
4934 This makes it easier to access volatile variables more accurately. 2738 (send_process): Check gnutls_state is not NULL.
4935 (BLOCK_INPUT_RESIGNAL): Remove. All uses replaced by unblock_input (). 2739
4936 (input_blocked_p): Prefer this to 'interrupt_input_blocked', as 2740 * gnutls.c (emacs_gnutls_handle_error): Adjust log level for EAGAIN.
4937 that's more reliable if the code is buggy and sets 2741 (Fgnutls_boot): Set process gnutls_p later, after initialization.
4938 interrupt_input_blocked to a negative value. All uses changed. 2742
4939 * atimer.c (deliver_alarm_signal): 27432013-11-04 Jan Djärv <jan.h.d@swipnet.se>
4940 Remove. No need to deliver this to the parent; any thread can 2744
4941 handle this signal now. All uses replaced by underlying handler. 2745 * nsterm.m (init, run, stop:): New methods in EmacsApp for
4942 * atimer.c (turn_on_atimers): 2746 OSX >= 10.9 to prevent memory leak of GCD dispatch source.
4943 * dispnew.c (handle_window_change_signal): 2747
4944 * emacs.c (handle_danger_signal): 2748 * nsterm.h (EmacsApp): Add shouldKeepRunning and isFirst for
4945 * keyboard.c (kbd_buffer_get_event): 2749 OSX >= 10.9.
4946 Don't reestablish signal handler; not needed with sigaction. 2750
4947 * blockinput.h (UNBLOCK_INPUT_TO, TOTALLY_UNBLOCK_INPUT) 2751 * nsfns.m (Fx_create_frame): Fix memory leak.
4948 (UNBLOCK_INPUT_TO): 2752
4949 Rework to avoid unnecessary accesses to volatile variables. 2753 * macfont.m (CG_SET_FILL_COLOR_WITH_GC_FOREGROUND)
4950 (UNBLOCK_INPUT_TO): Now a function. 2754 (CG_SET_FILL_COLOR_WITH_GC_BACKGROUND)
4951 (totally_unblock_input, unblock_input): New decls. 2755 (CG_SET_STROKE_COLOR_WITH_GC_FOREGROUND): Fix memory leak.
4952 * data.c (handle_arith_signal, deliver_arith_signal): Move to sysdep.c 2756
4953 (init_data): Remove. Necessary stuff now done in init_signal. 27572013-11-04 Eli Zaretskii <eliz@gnu.org>
4954 * emacs.c, xdisp.c: Include "atimer.h", since we invoke atimer functions. 2758
4955 * emacs.c (handle_fatal_signal, deliver_fatal_signal): Move to sysdep.c. 2759 * xdisp.c (message3_nolog, message_with_string): Encode the string
4956 (fatal_error_code): Remove; no longer needed. 2760 before writing it to the terminal in a non-interactive session.
4957 (terminate_due_to_signal): Rename from fatal_error_backtrace, since 2761
4958 it doesn't always backtrace. All uses changed. No need to reset 2762 * lread.c (openp): If both FILENAME and SUFFIX are unibyte, make
4959 signal to default, since sigaction and/or die does that for us now. 2763 sure we concatenate them into a unibyte string.
4960 Use emacs_raise (FOO), not kill (getpid (), FOO). 2764
4961 (main): Check more-accurately whether we're dumping. 2765 * fileio.c (make_temp_name): Encode PREFIX, and decode the
4962 Move fatal-error setup to sysdep.c 2766 resulting temporary name before returning it to the caller.
4963 * floatfns.c: Do not include "syssignal.h"; no longer needed. 2767 (Fexpand_file_name): If NAME is pure-ASCII and DEFAULT_DIRECTORY
4964 * gtkutil.c (xg_get_file_name, xg_get_font): 2768 is a unibyte string, convert NAME to a unibyte string to ensure
4965 Remove no-longer-needed signal-mask manipulation. 2769 that the result is also a unibyte string.
4966 * keyboard.c, process.c (POLL_FOR_INPUT): 2770
4967 Don't depend on USE_ASYNC_EVENTS, a symbol that is never defined. 2771 * emacs.c (init_cmdargs): Use build_unibyte_string to make sure we
4968 * keyboard.c (read_avail_input): Remove. 2772 create unibyte strings from default paths and directory/file
4969 All uses replaced by gobble_input. 2773 names.
4970 (Ftop_level): Use TOTALLY_UNBLOCK_INPUT rather than open code. 2774
4971 (kbd_buffer_store_event_hold, gobble_input): 2775 * coding.h (ENCODE_FILE): Do not attempt to encode a unibyte
4972 (record_asynch_buffer_change) [USABLE_SIGIO]: 2776 string.
4973 (store_user_signal_events): 2777
4974 No need to mess with signal mask. 2778 * callproc.c (init_callproc): Use build_unibyte_string to make
4975 (gobble_input): If blocking input and there are terminals, simply 2779 sure we create unibyte strings from default paths and
4976 set pending_signals to 1 and return. All hooks changed to not 2780 directory/file names.
4977 worry about whether input is blocked. 2781
4978 (process_pending_signals): Clear pending_signals before processing 2782 * buffer.c (init_buffer): Don't store default-directory of
4979 them, in case a signal comes in while we're processing. 2783 *scratch* in multibyte form. The original problem which led to
4980 By convention callers now test pending_signals before calling us. 2784 that is described in
4981 (UNBLOCK_INPUT_TO, unblock_input, totally_unblock_input): 2785 http://lists.gnu.org/archive/html/emacs-pretest-bug/2004-11/msg00532.html,
4982 New functions, to support changes to blockinput.h. 2786 but it was solved long ago. (Bug#15260)
4983 (handle_input_available_signal): Now extern. 2787
4984 (reinvoke_input_signal): Remove. All uses replaced by 27882013-11-04 Paul Eggert <eggert@cs.ucla.edu>
4985 handle_async_input. 2789
4986 (quit_count): Now volatile, since a signal handler uses it. 2790 Port to stricter C99 platforms.
4987 (handle_interrupt): Now takes bool IN_SIGNAL_HANDLER as arg. 2791 Especially, C99 prohibits nesting a struct X inside struct Y if
4988 All callers changed. Block SIGINT only if not already blocked. 2792 struct X has a flexible array member.
4989 Clear sigmask reliably, even if Fsignal returns, which it can. 2793 * alloc.c (struct sdata): New type.
4990 Omit unnecessary accesses to volatile var. 2794 (sdata): Implement in terms of struct sdata.
4991 (quit_throw_to_read_char): No need to restore sigmask. 2795 Remove u member; all uses replaced by next_vector, set_next_vector.
4992 * keyboard.c (gobble_input, handle_user_signal): 2796 (SDATA_SELECTOR, SDATA_DATA, SDATA_DATA_OFFSET): Adjust to sdata change.
4993 * process.c (wait_reading_process_output): 2797 (SDATA_DATA_OFFSET): Now a constant, not a macro.
4994 Call signal-handling code rather than killing ourselves. 2798 (struct sblock): Rename first_data member to data, which is now
4995 * lisp.h: Include <float.h>, for... 2799 a flexible array member. All uses changed.
4996 (IEEE_FLOATING_POINT): New macro, moved here to avoid duplication. 2800 (next_vector, set_next_vector, large_vector_vec): New functions.
4997 (pending_signals): Now volatile. 2801 (vector_alignment): New constant.
4998 (syms_of_data): Now const if IEEE floating point. 2802 (roundup_size): Make it a multiple of ALIGNOF_STRUCT_LISP_VECTOR, too.
4999 (handle_input_available_signal) [USABLE_SIGIO]: 2803 (struct large-vector): Now merely a NEXT member, since the old approach
5000 (terminate_due_to_signal, record_child_status_change): New decls. 2804 ran afoul of stricter C99. All uses changed to use
5001 * process.c (create_process): Avoid disaster if memory is exhausted 2805 large_vector_vec or large_vector_offset.
5002 while we're processing a vfork, by tightening the critical section 2806 (large_vector_offset): New constant.
5003 around the vfork. 2807 * dispnew.c: Include tparam.h, for tgetent.
5004 (send_process_frame, process_sent_to, handle_pipe_signal) 2808 Do not include term.h; no longer needed.
5005 (deliver_pipe_signal): Remove. No longer needed, as Emacs now 2809 * gnutls.c (Fgnutls_boot): Don't continue after calling a _Noreturn.
5006 ignores SIGPIPE. 2810 * lisp.h (ENUM_BF) [__SUNPRO_C && __STDC__]: Use unsigned int.
5007 (send_process): No need for setjmp/longjmp any more, since the 2811 (struct Lisp_Vector): Use a flexible array member for contents,
5008 SIGPIPE stuff is now gone. Instead, report an error if errno 2812 instead of a union with a member that is an array of size 1.
5009 is EPIPE.
5010 (record_child_status_change): Now extern. PID and W are now args.
5011 Return void, not bool. All callers changed.
5012 * sysdep.c (wait_debugging) [(BSD_SYSTEM || HPUX) && !defined (__GNU__)]:
5013 Remove. All uses removed. This bug should be fixed now in a
5014 different way.
5015 (wait_for_termination_1): Use waitpid rather than sigsuspend,
5016 and record the child status change directly. This avoids the
5017 need to futz with the signal mask.
5018 (process_fatal_action): Move here from emacs.c.
5019 (emacs_sigaction_flags): New function, containing
5020 much of what used to be in emacs_sigaction_init.
5021 (emacs_sigaction_init): Use it. Block nonfatal system signals that are
5022 caught by emacs, to make races less likely.
5023 (deliver_process_signal): Rename from handle_on_main_thread.
5024 All uses changed. 2813 All uses changed.
5025 (BACKTRACE_LIMIT_MAX): Now at top level. 2814 (ALIGNOF_STRUCT_LISP_VECTOR): New constant, to make up for the
5026 (thread_backtrace_buffer, threadback_backtrace_pointers): 2815 fact that the struct no longer contains a union.
5027 New static vars. 2816 (struct Lisp_Misc_Any, struct Lisp_Marker, struct Lisp_Overlay)
5028 (deliver_thread_signal, deliver_fatal_thread_signal): 2817 (struct Lisp_Save_Value, struct Lisp_Free):
5029 New functions, for more-accurate delivery of thread-specific signals. 2818 Use unsigned, not int, for spacers, to avoid c99 warning.
5030 (handle_fatal_signal, deliver_fatal_signal): Move here from emacs.c. 2819 (union specbinding): Use unsigned, not bool, for bitfield, as
5031 (deliver_arith_signal): Handle in this thread, not 2820 bool is not portable to pre-C99 hosts.
5032 in the main thread, since it's triggered by this thread. 2821
5033 (maybe_fatal_sig): New function. 28222013-11-04 Glenn Morris <rgm@gnu.org>
5034 (init_signals): New arg DUMPING so that we can be more accurate 2823
5035 about whether we're dumping. Caller changed. 2824 * emacs.c (usage_message): Mention that `-L :...' appends.
5036 Treat thread-specific signals differently from process-general signals. 2825
5037 Block all signals while handling fatal error; that's safer. 28262013-11-02 Glenn Morris <rgm@gnu.org>
5038 xsignal from SIGFPE only on non-IEEE hosts, treating it as fatal 2827
5039 on IEEE hosts. 2828 * Makefile.in (abs_builddir): Remove.
5040 When batch, ignore SIGHUP, SIGINT, SIGTERM if they were already ignored. 2829 (bootstrap_exe): Use relative filename.
5041 Ignore SIGPIPE unless batch. 2830
5042 (emacs_backtrace): Output backtrace for the appropriate thread, 2831 Use relative filenames in TAGS files.
5043 which is not necessarily the main thread. 2832 * Makefile.in (abs_srcdir): Remove it again.
5044 * syssignal.h: Include <stdbool.h>. 2833 (.PHONY): Remove frc.
5045 (emacs_raise): New macro. 2834 (maintainer-clean): No more TAGS-LISP file.
5046 * xterm.c (x_connection_signal): Remove; no longer needed 2835 (TAGS): Pass relative file names to etags.
5047 now that we use sigaction. 2836 (../lisp/TAGS): Rename from TAGS-LISP. Work in ../lisp.
5048 (x_connection_closed): No need to mess with sigmask now. 2837
5049 (x_initialize): No need to reset SIGPIPE handler here, since 2838 * Makefile.in (abs_srcdir): New, set by configure.
5050 init_signals does this for us now. 2839 (lispdir): Remove.
5051 2840 (maintainer-clean): Remove pointless echo. That should be in the
50522012-09-23 Jan Djärv <jan.h.d@swipnet.se> 2841 top-level Makefile, if anywhere. Delete TAGS-LISP.
5053 2842 (extraclean): No s/ and m/ directories for some time.
5054 * nsterm.m (ns_dumpglyphs_image): dr is a new rect to draw image into, 2843 (TAGS): Also depend on ctagsfiles3.
5055 background rect may be larger (Bug#12245). 2844 Remove no-longer-defined S_FILE.
5056 2845 Pass absolute filenames to etags once more.
50572012-09-23 Chong Yidong <cyd@gnu.org> 2846 (TAGS-LISP): Replace lispdir with its expansion.
5058 2847 (TAGS-LISP, $(lwlibdir)/TAGS): Correctly pass ETAGS to sub-makes.
5059 * keyboard.c (timer_check): Avoid quitting during Fcopy_sequence. 2848 ($(lwlibdir)/TAGS): Remove useless subshell, check cd return value.
5060 2849
50612012-09-22 Paul Eggert <eggert@cs.ucla.edu> 28502013-11-02 Jan Djärv <jan.h.d@swipnet.se>
5062 2851
5063 * .gdbinit: Just stop at fatal_error_backtrace. 2852 * xfaces.c (check_lface_attrs, realize_default_face):
5064 See Stefan Monnier's request in 2853 Add LFACE_DISTANT_FOREGROUND_INDEX (Bug#15788).
5065 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00549.html>. 2854 (realize_default_face): Set DISTANT_FOREGROUND to unspecified_fg.
5066 Remove no-longer-used query of system type. 2855
5067 28562013-11-02 Paul Eggert <eggert@cs.ucla.edu>
50682012-09-22 Chong Yidong <cyd@gnu.org> 2857
5069 2858 * emacs.c (original_pwd): Remove global var by making it local.
5070 * search.c (Freplace_match): Doc fix (Bug#12325). 2859 (init_cmdargs): New arg ORIGINAL_PWD; caller changed.
5071 2860
5072 * minibuf.c (Finternal_complete_buffer): Doc fix (Bug#12391). 28612013-11-01 Jan Djärv <jan.h.d@swipnet.se>
5073 2862
5074 * editfns.c (Fline_beginning_position): Doc fix (Bug#12416). 2863 * xfaces.c: Declare color_distance.
5075 (Fline_end_position): Doc fix. 2864 (QCdistant_foreground): New variable.
5076 2865 (NEAR_SAME_COLOR_THRESHOLD): New define.
5077 * cmds.c (Fforward_char, Fbackward_char): Doc fix (Bug#12414). 2866 (load_color2): New function.
2867 (load_color): Call load_color2.
2868 (load_face_colors): Call load_color2 and if distant-color is specified
2869 calculate distant and use distant-color if colors are near.
2870 (LFACE_DISTANT_FOREGROUND): New define.
2871 (merge_face_ref, Finternal_set_lisp_face_attribute)
2872 (Finternal_get_lisp_face_attribute)
2873 (x_supports_face_attributes_p): Handle distant-foreground similar to
2874 foreground.
2875 (syms_of_xfaces): DEFSYM QCdistant_foreground.
2876
2877 * dispextern.h (lface_attribute_index):
2878 Add LFACE_DISTANT_FOREGROUND_INDEX.
2879
28802013-11-01 Claudio Bley <claudio.bley@googlemail.com>
2881
2882 * image.c (pbm_next_char): New function.
2883 See http://netpbm.sourceforge.net/doc/pbm.html for the details.
2884 (pbm_scan_number): Use it.
2885 (Qlibjpeg_version): New variable.
2886 (syms_of_image): DEFSYM and initialize it.
2887
28882013-10-31 Jan Djärv <jan.h.d@swipnet.se>
2889
2890 * emacs.c (main): Skip -psn args on OSX even if ! isatty (0).
2891
28922013-10-31 Glenn Morris <rgm@gnu.org>
2893
2894 * emacs.c (original_pwd): New char.
2895 (main): If using --chdir, store original_pwd.
2896 (init_cmdargs): When setting Vinvocation_directory based on a
2897 relative argv[0], use original_pwd if set. (Bug#15768)
2898
28992013-10-29 Stefan Monnier <monnier@iro.umontreal.ca>
2900
2901 * keyboard.c (command_loop_1): If command is nil, call `undefined'.
2902
29032013-10-29 Paul Eggert <eggert@cs.ucla.edu>
2904
2905 * insdel.c: Fix minor problems found by static checking.
2906 (Qregion_extract_function): Now static.
2907 (prepare_to_modify_buffer_1): Remove unused locals.
2908
29092013-10-29 Stefan Monnier <monnier@iro.umontreal.ca>
2910
2911 * xdisp.c (prepare_menu_bars): Call Vpre_redisplay_function.
2912 (syms_of_xdisp): Declare pre-redisplay-function.
2913 (markpos_of_region): Remove function.
2914 (init_iterator, compute_stop_pos, handle_face_prop)
2915 (face_before_or_after_it_pos, reseat_to_string)
2916 (get_next_display_element, window_buffer_changed)
2917 (redisplay_internal, try_cursor_movement, redisplay_window)
2918 (try_window_reusing_current_matrix, try_window_id, display_line)
2919 (note_mode_line_or_margin_highlight, note_mouse_highlight)
2920 (display_string, mouse_face_from_buffer_pos): Remove region handling.
2921 * window.h (struct window): Remove field `region_showing'.
2922 * dispextern.h (struct it): Remove region_beg/end_charpos.
2923 (face_at_buffer_position, face_for_overlay_string)
2924 (face_at_string_position): Update prototypes.
2925 * xfaces.c (face_at_buffer_position, face_for_overlay_string)
2926 (face_at_string_position): Remove `region_beg' and `region_end' args.
2927 * fontset.c (Finternal_char_font):
2928 * font.c (font_at, font_range): Adjust calls accordingly.
2929 * insdel.c (Qregion_extract_function): New var.
2930 (syms_of_insdel): Initialize it.
2931 (prepare_to_modify_buffer_1): Use it.
2932
29332013-10-29 Dmitry Antipov <dmantipov@yandex.ru>
2934
2935 Prefer 'unsigned long' to 'long unsigned int' and 'unsigned long int'.
2936 * ftxfont.c (ftxfont_get_gcs):
2937 * gtkutil.c (xg_set_widget_bg, xg_set_background_color):
2938 * xfaces.c (x_free_colors, x_free_dpy_colors)
2939 (x_create_gc, unload_color):
2940 * xselect.c (x_property_data_to_lisp):
2941 * xsettings.c (parse_settings):
2942 * xterm.c (x_copy_color, x_alloc_lighter_color, x_setup_relief_color)
2943 (get_bits_and_offset): Adjust definition.
2944 * frame.c (XParseGeometry): Adjust locals.
2945 * lisp.h (toplevel): Adjust EMACS_UINT type definition.
2946 * regex.h (toplevel): Likewise for reg_syntax_t.
2947
29482013-10-29 Stefan Monnier <monnier@iro.umontreal.ca>
2949
2950 * eval.c (run_hook_with_args): Use FUNCTIONP.
2951
29522013-10-29 Dmitry Antipov <dmantipov@yandex.ru>
5078 2953
50792012-09-22 Chong Yidong <cyd@gnu.org> 2954 * xterm.h (struct x_output): For 'black_relief' and 'white_relief'
2955 fields, drop 'allocated_p' member and use -1 for uninitialized value.
2956 * w32term.h (struct w32_output): Similarly but do not use -1 because...
2957 * xfaces.c (unload_color) [HAVE_X_WINDOWS]: ...this function is a no-op
2958 on MS-Windows anyway.
2959 (free_face_colors): Define only if HAVE_X_WINDOWS and...
2960 (free_realized_face): ...adjust user.
2961 * xfns.c (Fx_create_frame, x_create_tip_frame): Initialize black and
2962 white relief pixels to -1.
2963 * xterm.c (x_setup_relief_color, x_free_frame_resources): Adjust users.
2964 * w32term.c (w32_setup_relief_color, x_free_frame_resources): Likewise.
2965 * dispextern.h (unload_color): Move prototype under HAVE_X_WINDOWS.
5080 2966
5081 * dispextern.h (struct image_type): Add new slot, storing a type 29672013-10-28 Paul Eggert <eggert@cs.ucla.edu>
5082 initialization function.
5083 2968
5084 * image.c (define_image_type): Call the image initializer function 2969 * dispextern.h, image.c (x_bitmap_height, x_bitmap_width): Now static.
5085 if it is defined. Arguments and return value changed. 2970 * xfaces.c (load_pixmap): Omit last two args, which are always NULL
5086 (valid_image_p, make_image): Callers changed. 2971 in practice now. All callers changed.
5087 (xbm_type, xpm_type, pbm_type, png_type, jpeg_type, tiff_type)
5088 (gif_type, imagemagick_type, svg_type, gs_type):
5089 Add initialization functions.
5090 (Finit_image_library): Call lookup_image_type.
5091 (CHECK_LIB_AVAILABLE): Macro deleted.
5092 (lookup_image_type): Call define_image_type here, rather than via
5093 Finit_image_library, and without using CHECK_LIB_AVAILABLE.
5094 (syms_of_image): Move define_image_type calls for xbm_type and
5095 pbm_type to lookup_image_type.
5096 2972
50972012-09-22 Eli Zaretskii <eliz@gnu.org> 29732013-10-28 Dmitry Antipov <dmantipov@yandex.ru>
5098 2974
5099 * keyboard.c (timer_check_2): Move calculation of 'timers' and 2975 * dispextern.h (struct face): Use bitfields for 'underline_type'
5100 'idle_timers' from here ... 2976 and 'box' members. Remove set-but-unused members 'pixmap_w' and
5101 (timer_check): ... to here. Use Fcopy_sequence to copy the timer 2977 'pixmap_h'. If not HAVE_WINDOW_SYSTEM, also remove dummy
5102 lists, to avoid infloops when the timer does something stupid, 2978 'stipple' member. Move 'lface' member up to help...
5103 like reinvoke itself with the same or smaller time-out. 2979 * xfaces.c (make_realized_face): ...this function to find and
5104 (Bug#12447) 2980 clear just the members that need clearing.
2981 (load_face_colors, realize_x_face):
2982 * xdisp.c (extend_face_to_end_of_line): Adjust user.
5105 2983
51062012-09-22 Martin Rudalics <rudalics@gmx.at> 29842013-10-27 Dmitry Antipov <dmantipov@yandex.ru>
5107 2985
5108 * window.c (Fsplit_window_internal): Handle only Qt value of 2986 * xftfont.c (struct xftfont_info): Remove set-but-unused
5109 Vwindow_combination_limit separately. 2987 'screen' member.
5110 (Qtemp_buffer_resize): New symbol. 2988 (xftfont_open): Adjust user.
5111 (Vwindow_combination_limit): New default value. 2989 (xftfont_get_colors): Remove useless prototype.
5112 Rewrite doc-string.
5113 2990
51142012-09-22 Eli Zaretskii <eliz@gnu.org> 29912013-10-26 Eli Zaretskii <eliz@gnu.org>
5115 2992
5116 * xdisp.c (next_overlay_string): Initialize it->end_charpos for 2993 * emacs.c (Fdump_emacs): Encode FILENAME and SYMFILE arguments
5117 the new overlay string. (Bug#10159) 2994 before passing them to 'unexec'. (Bug#15260)
5118 2995
51192012-09-22 Paul Eggert <eggert@cs.ucla.edu> 29962013-10-26 Xue Fuqiao <xfq.free@gmail.com>
5120 2997
5121 * emacs.c (shut_down_emacs): Don't assume stderr is buffered, 2998 * fringe.c (set_fringe_bitmap_face): Add usage note from lispref.
5122 or that fprintf is async-signal-safe. POSIX doesn't require
5123 either assumption.
5124 2999
51252012-09-22 Chong Yidong <cyd@gnu.org> 30002013-10-25 Eli Zaretskii <eliz@gnu.org>
5126 3001
5127 * buffer.c (Fset_buffer_modified_p): Handle indirect buffers 3002 * w32uniscribe.c (uniscribe_close): Adjust the argument list to
5128 (Bug#8207). 3003 the changed signature of the font driver's 'close' method.
5129 3004
51302012-09-22 Kenichi Handa <handa@gnu.org> 3005 * w32font.h (w32font_close): Adjust the prototype to the change in
3006 function definition.
5131 3007
5132 * composite.c (composition_reseat_it): Handle the case that a 3008 * w32font.c (w32font_close): Reintroduce deleted declaration of i.
5133 grapheme cluster is not covered by a single font (Bug#12352).
5134 3009
51352012-09-21 Chong Yidong <cyd@gnu.org> 3010 * w32uniscribe.c (uniscribe_close): Adapt the call to
3011 w32font_close to its new prototype.
5136 3012
5137 * image.c (define_image_type): Avoid adding duplicate types to 30132013-10-25 Dmitry Antipov <dmantipov@yandex.ru>
5138 image_types (Bug#12463). Suggested by Jörg Walter.
5139 3014
51402012-09-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 3015 Omit unused frame argument of font API's close function.
3016 * font.h (struct font): Drop frame argument. Adjust comment.
3017 * font.c (font_clear_cache, font_close_object): Adjust users.
3018 * ftfont.c (ftfont_close):
3019 * ftxfont.c (ftxfont_close):
3020 * macfont.m (macfont_close):
3021 * nsfont.m (nsfont_close):
3022 * w32font.c (w32font_close):
3023 * xfont.c (xfont_close):
3024 * xftfont.c (xftfont_close): Adjust driver-specific close functions,
3025 tweak comments and make functions safe if called more than once for
3026 the same font object.
5141 3027
5142 * unexmacosx.c: Define LC_DATA_IN_CODE if not defined. 3028 Perform font-specific cleanup when font object is swept by GC. See
5143 (print_load_command_name): Add case LC_DATA_IN_CODE. 3029 http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00740.html.
5144 (dump_it) [LC_DATA_IN_CODE]: Call copy_linkedit_data. 3030 * alloc.c (cleanup_vector): New function.
3031 (sweep_vector): Call it for each reclaimed vector object.
3032 * font.h (struct font): Adjust comment.
5145 3033
51462012-09-21 Glenn Morris <rgm@gnu.org> 30342013-10-24 Glenn Morris <rgm@gnu.org>
5147 3035
5148 * eval.c (Frun_hook_with_args_until_success) 3036 * Makefile.in (abs_top_srcdir): New, set by configure.
5149 (Frun_hook_with_args_until_failure): Doc fixes. (Bug#12393)
5150 3037
51512012-09-21 Andreas Schwab <schwab@linux-m68k.org> 30382013-10-23 Dmitry Antipov <dmantipov@yandex.ru>
5152 3039
5153 * fileio.c (Ffile_selinux_context): Only call freecon when 3040 Adjust recent font-related changes to fix bug#15686.
5154 lgetfilecon succeeded. 3041 * alloc.c (mark_object) [HAVE_WINDOW_SYSTEM]: If marked frame
5155 (Fset_file_selinux_context): Likewise. (Bug#12444) 3042 is a live window system frame, mark its default font too.
5156 3043
51572012-09-21 Eli Zaretskii <eliz@gnu.org> 30442013-10-23 Glenn Morris <rgm@gnu.org>
5158 3045
5159 * xdisp.c (try_window_reusing_current_matrix): Under bidi 3046 * Makefile.in (RUN_TEMACS): Make relative (again).
5160 reordering, locate the cursor by calling set_cursor_from_row; if 3047 ($(leimdir)/leim-list.el, .el.elc, $(lispsource)/loaddefs.el)
5161 that fails, clear the desired glyph matrix before returning a 3048 (bootstrap-emacs$(EXEEXT)):
5162 failure indication to the caller. Fixes leaving garbled display 3049 Quote entities that might contain whitespace.
5163 when fast scrolling with a down-key. (Bug#12403)
5164 (compute_stop_pos_backwards): Fix a typo that caused crashes while
5165 scrolling through multibyte text.
5166 3050
51672012-09-20 Stefan Monnier <monnier@iro.umontreal.ca> 30512013-10-23 Paul Eggert <eggert@cs.ucla.edu>
5168 3052
5169 * alloc.c (mark_object) <PVEC_WINDOW>: Mark prev/next_buffers *after* 3053 Port to Solaris 10 and its bundled GCC.
5170 calling mark_vectorlike since that's the one that marks the window. 3054 Problem reported by Timothy C. Burt.
5171 (mark_discard_killed_buffers): Mark the final cdr. 3055 * floatfns.c (isfinite, isnan): Redefine unconditionally.
5172 * window.h (struct window): Move prev/next_buffers to the
5173 non-standard fields.
5174 * window.c (make_window): Initialize prev/next_buffers manually.
5175 3056
51762012-09-20 Paul Eggert <eggert@cs.ucla.edu> 30572013-10-21 Dmitry Antipov <dmantipov@yandex.ru>
5177 3058
5178 Omit unused arg EXPECTED from socket hooks. 3059 Do not allow font caches to grow too large.
5179 * keyboard.c (gobble_input, read_avail_input, tty_read_avail_input): 3060 * alloc.c (compact_font_cache_entry, compact_font_caches):
5180 * nsterm.m (ns_term_init): 3061 New functions or stub if not HAVE_WINDOW_SYSTEM.
5181 * termhooks.h (struct terminal.read_socket_hook): 3062 (compact_undo_list): Factor out from Fgarbage_collect.
5182 * w32inevt.c (w32_console_read_socket): 3063 Add comment.
5183 * w32term.c (w32_read_socket): 3064 (mark_face_cache): Mark face font. Move down to avoid
5184 * xterm.c (XTread_socket): 3065 extra prototypes.
5185 Omit unused arg EXPECTED. All callers changed. 3066 (mark_terminals): Do not mark font cache here.
5186 (store_user_signal_events): Return void, not int, since callers no 3067 (Fgarbage_collect): Call compaction functions described
5187 longer care about the return value. All uses changed. 3068 above. Adjust comment.
5188 3069
51892012-09-20 Juanma Barranquero <lekktu@gmail.com> 30702013-10-20 Jan Djärv <jan.h.d@swipnet.se>
5190 3071
5191 * w32gui.h (XParseGeometry): Do not declare. 3072 * emacs.c (main): On Cocoa, if GUI session and 0 is not a tty,
5192 3073 chdir to HOME (bug#15607).
51932012-09-19 Paul Eggert <eggert@cs.ucla.edu> 3074
5194 3075 * nsterm.m (Qcocoa, Qgnustep): New variables.
5195 * w32inevt.c (w32_console_read_socket): Return -1 on failure, not 0. 3076 (syms_of_nsterm): Defsym Qcocoa, Qgnustep. Fprovide appropriate one.
5196 Ignore 'expected'. See Eli Zaretskii in 3077 (ns_get_color): Make selection color work for GNUstep also.
5197 <http://bugs.gnu.org/12471#8> (last line). 3078
5198 30792013-10-18 Eli Zaretskii <eliz@gnu.org>
5199 * frame.c (read_integer): Remove. All uses replaced by strtol/strtoul. 3080
5200 (XParseGeometry): Now static. Substitute extremal values for 3081 * keyboard.c (make_lispy_event): Remove GPM-specific code that
5201 values that are out of range. 3082 handles mouse clicks. Instead, let GPM use the same code as all
5202 3083 the other mice use. See the discussion starting at
52032012-09-19 Jan Djärv <jan.h.d@swipnet.se> 3084 http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00521.html
5204 3085 for the details of the problem with the menu bar this fixes.
5205 * w32xfns.c (read_integer, XParseGeometry): Move to frame.c. 3086
5206 30872013-10-18 Dmitry Antipov <dmantipov@yandex.ru>
5207 * nsfns.m (XParseGeometry): Remove. 3088
5208 (Fx_create_frame): Call x_set_offset to correctly interpret 3089 Remove port-specific display name lists to avoid extra
5209 top_pos in geometry. 3090 complexity and data duplication with display info lists.
5210 3091 * xterm.h (x_display_name_list): Remove declaration.
5211 * frame.c (read_integer, XParseGeometry): Move from w32xfns.c. 3092 * xterm.c (x_display_name_list): Remove.
5212 (Fx_parse_geometry): If there is a space in string, call 3093 (x_term_init, x_delete_display, syms_of_xterm): Adjust users.
5213 Qns_parse_geometry, otherwise do as on other terms (Bug#12368). 3094 * xfns.c (x_display_info_for_name, Fx_display_list):
5214 3095 Likewise. Use x_display_list where appropriate.
52152012-09-17 Eli Zaretskii <eliz@gnu.org> 3096 * w32term.h (w32_display_name_list): Remove declaration.
5216 3097 * w32term.c (w32_display_name_list): Remove.
5217 * search.c (scan_buffer): Use character positions in calls to 3098 (w32_initialize_display_info, x_delete_display, syms_of_w32term):
5218 region_cache_forward and region_cache_backward, not byte 3099 Adjust users.
5219 positions. (Bug#12196) 3100 * w32fns.c (x_display_info_for_name, Fx_display_list):
5220 3101 Likewise. Use x_display_list where appropriate.
5221 * w32term.c (w32_read_socket): Set pending_signals to 1, like 3102 * nsterm.h (ns_display_name_list): Remove declaration.
5222 xterm.c does. Reported by Daniel Colascione <dancol@dancol.org>. 3103 * nsterm.m (ns_display_name_list): Remove.
5223 3104 (ns_term_init, syms_of_nsterm): Adjust users.
5224 * ralloc.c (r_alloc_init) [!SYSTEM_MALLOC]: Initialize 3105 * nsfns.m (ns_display_info_for_name, Fx_display_list):
5225 __malloc_extra_blocks to 32 instead of 64, like alloc.c did in 3106 Likewise. Use x_display_list where appropriate.
5226 emacs_blocked_malloc, now deleted. 3107 * termhooks.h (TERMINAL_FONT_CACHE): New macro.
5227 3108 * alloc.c (toplevel) [HAVE_WINDOW_SYSTEM]: Include TERM_HEADER.
52282012-09-17 Paul Eggert <eggert@cs.ucla.edu> 3109 (mark_terminals): Mark per-terminal font cache.
5229 3110
5230 Remove no-longer-needed Solaris 2.4 vfork bug workaround. 31112013-10-17 Barry O'Reilly <gundaetiapo@gmail.com>
5231 The workaround was for improving performance on Solaris 2.4, but 3112
5232 is getting in the way now. Emacs will still work if someone is 3113 Don't run timers in input-pending-p. Its new check-timers param
5233 still running Solaris 2.4 in a museum somewhere; Sun dropped 3114 provides the prior behavior. (Bug#15045).
5234 support for Solaris 2.4 in 2003. 3115 * keyboard.c (Finput_pending_p): Accept optional check-timers param.
5235 * callproc.c (Fcall_process) [HAVE_WORKING_VFORK]: 3116
5236 * process.c (create_process) [HAVE_WORKING_VFORK]: 31172013-10-17 Paul Eggert <eggert@cs.ucla.edu>
5237 Omit now-unnecessary workaround for the Solaris 2.4 vfork bug, 3118
5238 since Emacs no longer uses vfork on that platform. 3119 Make some functions static in non-Microsoft builds.
5239 3120 On my platform (Fedora 19 x86-64), this shrinks the
52402012-09-17 Glenn Morris <rgm@gnu.org> 3121 Emacs executable (text+data) by 0.25%.
5241 3122 * dispextern.h (erase_phys_cursor) [!WINDOWSNT]:
5242 * emacs.c: Use COPYRIGHT. 3123 (load_color) [!MSDOS]:
5243 3124 * gnutls.h (emacs_gnutls_transport_set_errno) [!WINDOWSNT]:
52442012-09-16 Paul Eggert <eggert@cs.ucla.edu> 3125 * keyboard.h (make_ctrl_char) [!WINDOWSNT]:
5245 3126 * lisp.h (check_existing):
5246 Remove configure's --without-sync-input option (Bug#12450). 3127 * process.h (conv_sockaddr_to_lisp, network_interface_list)
5247 When auditing signal-handling in preparation for cleaning it up, 3128 (network_interface_info) [!WINDOWSNT]:
5248 I found that SYNC_INPUT has race conditions and would be a real 3129 * termhooks.h (encode_terminal_code) [!WINDOWSNT]:
5249 pain to fix. Since it's an undocumented and deprecated 3130 Remove extern decls.
5250 configure-time option, now seems like a good time to remove it. 3131 * fileio.c (check_existing):
5251 Also see <http://bugs.gnu.org/11080#16>. 3132 * keyboard.c (make_ctrl_char) [!WINDOWSNT]:
5252 * alloc.c (_bytes_used, __malloc_extra_blocks, _malloc_internal) 3133 * process.c (conv_sockaddr_to_lisp, network_interface_list)
5253 (_free_internal) [!DOUG_LEA_MALLOC]: Remove decls. 3134 (network_interface_info) [!WINDOWSNT]:
5254 (alloc_mutex) [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]: 3135 * term.c (encode_terminal_code) [!WINDOWSNT]:
5255 (malloc_hysteresis): 3136 * xdisp.c (erase_phys_cursor) [!WINDOWSNT]:
5256 (check_depth) [XMALLOC_OVERRUN_CHECK]: 3137 * xfaces.c (load_color) [!MSDOS]:
5257 (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT):
5258 (__malloc_hook, __realloc_hook, __free_hook, BYTES_USED)
5259 (dont_register_blocks, bytes_used_when_reconsidered)
5260 (bytes_used_when_full, emacs_blocked_free, emacs_blocked_malloc)
5261 (emacs_blocked_realloc, reset_malloc_hooks, uninterrupt_malloc):
5262 [!SYSTEM_MALLOC && !SYNC_INPUT]:
5263 Remove. All uses removed.
5264 (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): Use a different
5265 implementation, one that depends on whether the new macro
5266 XMALLOC_BLOCK_INPUT_CHECK is defined, not on whether SYNC_INPUT
5267 is defined.
5268 * atimer.c (run_timers, handle_alarm_signal):
5269 * keyboard.c (pending_signal, poll_for_input_1, poll_for_input)
5270 (handle_async_input, process_pending_signals)
5271 (handle_input_available_signal, init_keyboard):
5272 * nsterm.m (ns_read_socket):
5273 * process.c (wait_reading_process_output):
5274 * regex.c (immediate_quit, IMMEDIATE_QUIT_CHECK):
5275 * sysdep.c (emacs_sigaction_init) [SA_RESTART]:
5276 (emacs_write):
5277 * xterm.c (XTread_socket):
5278 Assume SYNC_INPUT.
5279 * conf_post.h (SA_RESTART) [IRIX6_5]: Do not #undef.
5280 * eval.c (handling_signal): Remove. All uses removed.
5281 * lisp.h (ELSE_PENDING_SIGNALS): Remove.
5282 All uses replaced with the SYNC_INPUT version.
5283 (reset_malloc_hooks, uninterrupt_malloc, handling_signal):
5284 Remove decls.
5285 * sysdep.c, syssignal.h (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
5286 Now static. 3138 Now static.
3139 * fileio.c (check_existing, check_executable, check_writable):
3140 * process.c (network_interface_list, network_interface_info):
3141 Move earlier, so that we don't need forward decls.
3142 * gnutls.c (fn_gnutls_transport_set_errno)
3143 (emacs_gnutls_transport_set_errno) [!WINDOWNT]:
3144 Remove; unused.
3145 * w32.c (init_environment): Use faccessat rather than
3146 check_existing, partly for consistency with the rest of the code
3147 in this file, partly so that check_existing can be static.
5287 3148
5288 * font.c (Ffont_shape_gstring): Remove unused local. 3149 Make VALMASK visible to GDB even if clang is used (Bug#15574).
3150 * emacs.c (MAIN_PROGRAM): New macro.
3151 * lisp.h (DEFINE_GDB_SYMBOL_BEGIN, DEFINE_GDB_SYMBOL_END): New macros.
3152 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Use them.
5289 3153
52902012-09-16 Glenn Morris <rgm@gnu.org> 3154 bool vector int width fixes
5291 3155 * data.c (bool_vector_spare_mask, Fbool_vector_count_matches)
5292 * Makefile.in (clean): No longer run nextstep's clean. 3156 (Fbool_vector_count_matches_at):
3157 Use EMACS_INT, not ptrdiff_t, to record bit counts, as a bit count
3158 can exceed PTRDIFF_MAX, at least in theory.
3159 (Fbool_vector_count_matches_at):
3160 Use int, not ptrdiff_t, to record a value that can't exceed INT_MAX.
5293 3161
5294 * Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Remove variables. 31622013-10-16 Paul Eggert <eggert@cs.ucla.edu>
5295 (ns_frag): Remove.
5296 (ns-app): Move here from ns.mk, and simplify.
5297 (clean): Simplify nextstep entry.
5298 * ns.mk: Remove file.
5299 3163
53002012-09-17 Kenichi Handa <handa@gnu.org> 3164 * process.h (conv_sockaddr_to_lisp): New decl, for newly-extern func.
3165 (struct sockaddr): Add forward decl, for platforms that lack it.
5301 3166
5302 * font.c (Ffont_shape_gstring): Fix previous change; GLYPHs may 31672013-10-16 Jan Djärv <jan.h.d@swipnet.se>
5303 not covert the last few charactes.
5304 3168
53052012-09-16 Kenichi Handa <handa@gnu.org> 3169 * nsselect.m (ns_string_from_pasteboard): Remove Fquit, just return
3170 Qnil (Bug#15628).
5306 3171
5307 * font.c (Ffont_shape_gstring): Don't adjust grapheme cluster 31722013-10-16 Eli Zaretskii <eliz@gnu.org>
5308 here, but just check the validity of glyphs in the glyph-string.
5309 3173
53102012-09-16 Martin Rudalics <rudalics@gmx.at> 3174 * w32.c (network_interface_get_info, network_interface_list)
3175 (network_interface_info): New functions. (Bug#15610)
3176 (GetAdaptersInfo_Proc): New typedef.
3177 (get_adapters_info): New wrapper function.
3178 (globals_of_w32): Initialize g_b_init_get_adapters_info.
5311 3179
5312 * window.c (Fwindow_parameter, Fset_window_parameter): 3180 * process.h (network_interface_list, network_interface_info):
5313 Accept any window as argument (Bug#12452). 3181 New prototypes.
5314 3182
53152012-09-16 Jan Djärv <jan.h.d@swipnet.se> 3183 * process.c (conv_sockaddr_to_lisp): Now externally-visible.
3184 (Fnetwork_interface_list, Fnetwork_interface_info): Define for
3185 all systems. Return non-nil for systems that HAVE_NET_IF_H and
3186 for WINDOWSNT. Doc fix.
3187 (syms_of_process): Defsubr Snetwork_interface_list and
3188 Snetwork_interface_info unconditionally.
5316 3189
5317 * nsfns.m (Fx_open_connection): Move initialization of ns_*_types 3190 * menu.c (have_boxes): Fix redundant simulation of radio buttons
5318 to ns_term_init to avoid memory leak. 3191 in NS GUI sessions. (Bug#15629)
5319 3192
5320 * nsterm.m (ns_update_begin): Initialize bp after lcokFocus, use 31932013-10-16 Dmitry Antipov <dmantipov@yandex.ru>
5321 explicit retain/release.
5322 (ns_term_init): Only allow one display. Initialize outerpool and
5323 ns_*_types.
5324 3194
53252012-09-15 Paul Eggert <eggert@cs.ucla.edu> 3195 * fns.c (Fstring_as_unibyte): Use xlispstrdup.
5326 3196
5327 Port _setjmp fix to POSIXish hosts as well as Microsoft. 31972013-10-15 Paul Eggert <eggert@cs.ucla.edu>
5328 * image.c (_setjmp) [!HAVE__SETJMP]: Restore definition, as
5329 it's needed on POSIXish hosts that lack _setjmp. Attempt to solve
5330 the Microsoft problem in a different way, by altering ../nt/config.nt.
5331 3198
53322012-09-15 Eli Zaretskii <eliz@gnu.org> 3199 * print.c (print_object): Print " ..." when truncating bool vectors.
5333 3200
5334 * w32xfns.c: 32012013-10-15 Eli Zaretskii <eliz@gnu.org>
5335 * w32uniscribe.c:
5336 * w32term.c:
5337 * w32select.c:
5338 * w32reg.c:
5339 * w32proc.c:
5340 * w32menu.c:
5341 * w32inevt.c:
5342 * w32heap.c:
5343 * w32font.c:
5344 * w32fns.c:
5345 * w32console.c:
5346 * w32.c:
5347 * w16select.c: Remove inclusion of setjmp.h, as it is now included
5348 by lisp.h. This completes removal of setjmp.h inclusion
5349 erroneously announced in the previous commit. (Bug#12446)
5350
5351 * lisp.h [!HAVE__SETJMP, !HAVE_SIGSETJMP]: Make the commentary
5352 more accurate.
5353
5354 * image.c (_setjmp) [!HAVE__SETJMP]: Define only if 'setjmp' is
5355 not defined as a macro. The latter happens on MS-Windows.
5356 (Bug#12446)
5357
53582012-09-15 Paul Eggert <eggert@cs.ucla.edu>
5359
5360 Port better to POSIX hosts lacking _setjmp (Bug#12446).
5361 * lisp.h: Include <setjmp.h> here, since we use its symbols here.
5362 Some instances of '#include <setjmp.h>' removed, if the
5363 only reason for the instance was because "lisp.h" was included.
5364 (sys_jmp_buf, sys_setjmp, sys_longjmp): New symbols.
5365 Unless otherwise specified, replace all uses of jmp_buf, _setjmp,
5366 and _longjmp with the new symbols. Emacs already uses _setjmp if
5367 available, so this change affects only POSIXish hosts that have
5368 sigsetjmp but not _setjmp, such as some versions of Solaris and
5369 Unixware. (Also, POSIX-2008 marks _setjmp as obsolescent.)
5370 * image.c (_setjmp, _longjmp) [HAVE_PNG && !HAVE__SETJMP]: New macros.
5371 (png_load_body) [HAVE_PNG]:
5372 (PNG_LONGJMP) [HAVE_PNG && PNG_LIBPNG_VER < 10500]:
5373 (PNG_JMPBUF) [HAVE_PNG && PNG_LIBPNG_VER >= 10500]:
5374 Use _setjmp and _longjmp rather than sys_setjmp and sys_longjmp,
5375 since PNG requires jmp_buf. This is the only exception to the
5376 general rule that we now use sys_setjmp and sys_longjmp.
5377 This exception is OK since this code does not change the signal
5378 mask or longjmp out of a signal handler.
5379
53802012-09-14 Paul Eggert <eggert@cs.ucla.edu>
5381
5382 * alloc.c [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
5383 Include "syssignal.h", for 'main_thread'.
5384
53852012-09-14 Dmitry Antipov <dmantipov@yandex.ru>
5386
5387 Avoid out-of-range marker position (Bug#12426).
5388 * insdel.c (replace_range, replace_range_2):
5389 Adjust markers before overlays, as suggested by comments.
5390 (insert_1_both, insert_from_buffer_1, adjust_after_replace):
5391 Remove redundant check before calling offset_intervals.
5392
53932012-09-14 Martin Rudalics <rudalics@gmx.at>
5394
5395 * xdisp.c (Fformat_mode_line): Unconditionally save/restore
5396 current buffer (Bug#12387).
5397
53982012-09-14 Juanma Barranquero <lekktu@gmail.com>
5399
5400 * makefile.w32-in ($(BLD)/alloc.$(O)): Update dependencies.
5401
54022012-09-13 Paul Eggert <eggert@cs.ucla.edu>
5403
5404 Use a more backwards-compatible timer format (Bug#12430).
5405 * keyboard.c (decode_timer): Get PSECS from the 8th (origin-0)
5406 vector element, not from the 4th, since PSECS is now at the end.
5407 (Fcurrent_idle_time): Doc fix.
5408
54092012-09-13 Dmitry Antipov <dmantipov@yandex.ru>
5410
5411 Function to mark objects and remove killed buffers at once.
5412 * alloc.c (discard_killed_buffers): Rename to ...
5413 (mark_discard_killed buffers) ... new name. Add marking
5414 of remaining objects. Fix comment. Adjust users.
5415 (mark_object): Do not touch frame buffer lists here.
5416 * frame.c (delete_frame): Reset frame buffer lists here.
5417
54182012-09-13 Paul Eggert <eggert@cs.ucla.edu>
5419
5420 Better workaround for GNOME bug when --enable-gcc-warnings.
5421 * emacsgtkfixed.c (G_STATIC_ASSERT): Remove, undoing last change.
5422 Instead, disable -Wunused-local-typedefs. See Dmitry Antipov in
5423 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00335.html>.
5424
5425 Simplify SIGIO usage (Bug#12408).
5426 The code that dealt with SIGIO was crufty and confusing, e.g., it
5427 played tricks like "#undef SIGIO" but these tricks were not used
5428 consistently. Simplify mostly by not #undeffing standard symbols,
5429 e.g., use "defined USABLE_SIGIO" (our symbol, which we can define
5430 or not as we please) rather than "defined SIGIO" (standard symbol
5431 that we probably shouldn't #undef).
5432 * conf_post.h [USG5_4]: Do not include <sys/wait.h> here.
5433 Modules that need it can include it.
5434 [USG5_4 && emacs]: Likewise, do not include the streams stuff here.
5435 * dispextern.h (ignore_sigio): New decl.
5436 * emacs.c (shut_down_emacs): Invoke unrequest_sigio
5437 unconditionally, since it's now a no-op if !USABLE_SIGIO.
5438 * emacs.c (shut_down_emacs):
5439 * keyboard.c (kbd_buffer_store_event_hold):
5440 Use ignore_sigio rather than invoking 'signal' directly.
5441 * keyboard.c (USABLE_FIONREAD && USG5_4): Include <sys/filio.h>,
5442 for FIONREAD.
5443 (FIONREAD, SIGIO): Do not #undef.
5444 (tty_read_avail_input): Use #error rather than a syntax error.
5445 * process.c [USG5_4]: Include <sys/stream.h> and <sys/stropts.h>,
5446 for I_PIPE, used by SETUP_SLAVE_PTY.
5447 (DATAGRAM_SOCKETS): Simplify defn, based on USABLE_FIONREAD.
5448 * sysdep.c (croak): Remove; no longer needed. This bit of
5449 temporary code, with Fred N. Fish's comment that it's temporary,
5450 has been in Emacs since at least 1992!
5451 (init_sigio, reset_sigio, request_sigio, unrequest_sigio):
5452 Arrange for them to be no-ops in all cases when ! USABLE_SIGIO.
5453 * syssignal.h (croak): Remove decl.
5454 (SIGIO, SIGPOO, SIGAIO, SIGPTY): Do not #undef; that's too fragile.
5455 * systty.h [!NO_TERMIO]: Do not include <termio.h>; no longer needed
5456 now that we're termios-only.
5457 (FIONREAD, ASYNC) [BROKEN_FIONREAD]: Do not #undef.
5458 * term.c (dissociate_if_controlling_tty): Use #error rather than
5459 a run-time error.
5460
5461 Work around GCC and GNOME bugs when --enable-gcc-warnings.
5462 * emacsgtkfixed.c (G_STATIC_ASSERT): Redefine to use 'verify',
5463 to work around GNOME bug 683906.
5464 * image.c (jpeg_load_body) [HAVE_JPEG && lint]: Pacify gcc -Wclobber.
5465 (struct my_jpeg_error_mgr) [HAVE_JPEG && lint]: New member fp.
5466 This works around GCC bug 54561.
5467
54682012-09-12 Paul Eggert <eggert@cs.ucla.edu>
5469
5470 More fixes for 'volatile' and setjmp/longjmp.
5471 * eval.c (Fdefvar, Fcondition_case): Remove unnecessary 'volatile's.
5472 * image.c (struct png_load_context) [HAVE_PNG]: New type.
5473 (png_load_body) [HAVE_PNG]:
5474 (jpeg_load_body) [HAVE_JPEG]:
5475 New function, with most of the old parent function's body.
5476 (png_load) [HAVE_PNG]:
5477 (jpeg_load) [HAVE_JPEG]:
5478 Invoke the new function, to avoid longjmp munging our locals.
5479 (struct my_jpeg_error_mgr) [HAVE_JPEG]: New members cinfo, failure_code.
5480 (my_error_exit) [HAVE_JPEG]: Don't trust 'setjmp' to return 2 when
5481 longjmp is passed 2, as the C standard doesn't guarantee this.
5482 Instead, store the failure code into mgr->failure_code.
5483
54842012-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
5485
5486 * keyboard.c (read_char, requeued_events_pending_p, Finput_pending_p)
5487 (Fdiscard_input, quit_throw_to_read_char, init_keyboard)
5488 (syms_of_keyboard): Remove support for unread-command-char.
5489
54902012-09-12 Eli Zaretskii <eliz@gnu.org>
5491
5492 * w32proc.c (sys_kill): If PID is our process ID and the signal is
5493 SIGABRT, call emacs_abort. Avoids silently exiting upon assertion
5494 violation. (Bug#12426)
5495
54962012-09-12 Paul Eggert <eggert@cs.ucla.edu>
5497
5498 * image.c (jpeg_memory_src): Don't assume string len fits in unsigned.
5499
55002012-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
5501
5502 * eval.c: Add `inhibit-debugger'.
5503 (Qinhibit_debugger): New symbol.
5504 (call_debugger): Bind it instead of Qdebug_on_error.
5505 (maybe_call_debugger): Test Vinhibit_debugger.
5506 (syms_of_eval): Define inhibit-debugger.
5507 * xdisp.c (set_message): Don't bind Qinhibit_debug_on_message.
5508 (syms_of_xdisp): Remove inhibit-debug-on-message.
5509
55102012-09-11 Paul Eggert <eggert@cs.ucla.edu>
5511
5512 Avoid _setjmp/_longjmp problems with local nonvolatile variables.
5513 If a nonvolatile local variable is written before a _longjmp to
5514 the frame containing the variable, and is read after the _longjmp,
5515 the value read is indeterminate. Some local variables of type
5516 'struct handler' and 'struct catchtag' are used in this way, so
5517 mark each of their slots as volatile if the slot can be set before
5518 _longjmp and read afterwards.
5519 * lisp.h (struct handler): var and chosen_clause are now volatile.
5520 (struct catchtag): val, next, and pdlcount are now volatile.
5521
5522 * bidi.c (bidi_push_it, bidi_pop_it):
5523 * fns.c (copy_hash_table):
5524 * image.c (define_image_type):
5525 * keyboard.c (kbd_buffer_store_event_hold):
5526 * process.c (Fprocess_send_eof):
5527 * xfaces.c (x_create_gc) [HAVE_NS]:
5528 * xgselect.c (xg_select):
5529 Prefer assignment to memcpy when either will do.
5530
5531 * alloc.c (discard_killed_buffers): Tune and simplify a bit.
5532 Use pointer-to-a-pointer to simplify and avoid a NILP check each
5533 time an item is removed. No need to mark this function 'inline';
5534 the compiler knows better than we do.
5535
55362012-09-11 Jan Djärv <jan.h.d@swipnet.se>
5537
5538 * nsterm.m (ns_judge_scroll_bars): Pass NO to updateFrameSize.
5539 (updateFrameSize:): Add delay parameter to updateFrameSize, send it
5540 to change_frame_size (Bug#12388).
5541 (windowDidResize:): Pass YES to updateFrameSize.
5542
5543 * nsterm.h: Add delay parameter to updateFrameSize.
5544
55452012-09-11 Dmitry Antipov <dmantipov@yandex.ru>
5546
5547 Discard killed buffers from deleted window and frame objects.
5548 This reduces an amount of references to killed buffers and
5549 helps GC to reclaim them faster.
5550 * alloc.c (discard_killed_buffers): New function.
5551 (mark_object): Use it for deleted windows and frames.
5552 (mark_object): If symbol's value is set up for a killed buffer
5553 or deleted frame, restore its global binding.
5554 * data.c (swap_in_global_binding): Add GC notice.
5555 (swap_in_symval_forwarding): Use convenient set_blv_where.
5556 * window.c (wset_next_buffers, wset_prev_buffers): Move ...
5557 * window.h: ... to here.
5558
55592012-09-11 Dmitry Antipov <dmantipov@yandex.ru>
5560
5561 Convenient macro to check whether the buffer is live.
5562 * buffer.h (BUFFER_LIVE_P): New macro.
5563 * alloc.c, buffer.c, editfns.c, insdel.c, lread.c, marker.c:
5564 * minibuf.c, print.c, process.c, window.c, xdisp.c: Use it.
5565
55662012-09-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
5567
5568 * xdisp.c (right_overwritten, right_overwriting): Also handle gstring
5569 composition cases (Bug#12364).
5570
5571 * xterm.c (x_draw_glyph_string): Avoid overwriting inverted left
5572 overhang of succeeding glyphs overlapping box cursor.
5573
5574 * w32term.c (x_draw_glyph_string): Likewise.
5575
55762012-09-11 Paul Eggert <eggert@cs.ucla.edu>
5577
5578 Simplify, document, and port floating-point (Bug#12381).
5579 The porting part of this patch fixes bugs on non-IEEE platforms
5580 with frexp, ldexp, logb.
5581 * data.c, lisp.h (Qdomain_error, Qsingularity_error, Qunderflow_error):
5582 Now static.
5583 * floatfns.c: Simplify discussion of functions that Emacs doesn't
5584 support, by removing commented-out code and briefly listing the
5585 C89 functions excluded. The commented-out stuff was confusing
5586 maintenance, e.g., we thought we needed cbrt but it was commented out.
5587 (logb): Remove decl; no longer needed.
5588 (isfinite): New macro, if not already supplied.
5589 (isnan): Don't replace any existing macro.
5590 (Ffrexp, Fldexp): Define even if !HAVE_COPYSIGN, as frexp and ldexp
5591 are present on all C89 platforms.
5592 (Ffrexp): Do not special-case zero, as frexp does the right thing
5593 for that case.
5594 (Flogb): Do not use logb, as it doesn't have the desired meaning
5595 on hosts that use non-base-2 floating point. Instead, stick with
5596 frexp, which is C89 anyway. Do not pass an infinity or a NaN to
5597 frexp, to avoid getting an unspecified result.
5598 3202
5599 * xdisp.c (Qinhibit_debug_on_message): Now static. 3203 * w32inevt.c (do_mouse_event): Support mouse wheel and all the 5
3204 standard mouse buttons.
5600 3205
56012012-09-10 Jan Djärv <jan.h.d@swipnet.se> 3206 * termhooks.h (struct input_event): Remove incorrect commentary.
5602 3207
5603 * nsterm.m (ns_update_begin): Set clip path to whole view by using 32082013-10-15 Paul Eggert <eggert@cs.ucla.edu>
5604 NSBezierPath (Bug#12131).
5605 3209
56062012-09-10 Chong Yidong <cyd@gnu.org> 3210 Disallow bool vector operations on mixed-length operands.
3211 The old behavior left garbage in the result vector sometimes,
3212 and didn't seem to be useful.
3213 * data.c (Qwrong_length_argument): New static var.
3214 (wrong_length_argument): New function.
3215 (bool_vector_binop_driver): Check that args agree in length.
5607 3216
5608 * fns.c (Fdelq, Fdelete): Doc fix. 3217 * keyboard.c, keyboard.h (all_kboards): Now static.
5609 3218
56102012-09-10 Paul Eggert <eggert@cs.ucla.edu> 32192013-10-15 Xue Fuqiao <xfq.free@gmail.com>
5611 3220
5612 * lisp.h (XSETINT, XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL) 3221 * buffer.c (syms_of_buffer) <buffer-invisibility-spec>: Add usage
5613 (XSETFLOAT, XSETMISC): Parenthesize macro bodies. 3222 note from the lispref.
5614 3223
56152012-09-09 Stefan Monnier <monnier@iro.umontreal.ca> 32242013-10-15 Dmitry Antipov <dmantipov@yandex.ru>
5616 3225
5617 * lisp.h (make_lisp_ptr): New macro to replace XSET. 3226 * nsterm.h (struct ns_display_info): Remove set-but-unused
5618 (XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL, XSETFLOAT, XSETMISC): 3227 member image_cache (image caches are per-terminal anyway).
5619 Use it. 3228 (FRAME_X_IMAGE_CACHE): Remove.
3229 * nsterm.m (ns_initialize_display_info): Adjust user.
5620 3230
56212012-09-09 Eli Zaretskii <eliz@gnu.org> 32312013-10-14 Eli Zaretskii <eliz@gnu.org>
5622
5623 * fringe.c (draw_fringe_bitmap_1): Don't reduce the width of the
5624 left fringe if the window has a left margin. This avoids leaving
5625 traces of the cursor because its leftmost pixel is not drawn over.
5626
5627 * dispnew.c (update_window_line): When the left margin area of a
5628 screen line is updated, set the redraw_fringe_bitmaps_p flag of
5629 that screen line. (Bug#12277)
5630
56312012-09-09 Paul Eggert <eggert@cs.ucla.edu>
5632
5633 Assume C89 or later for math functions (Bug#12381).
5634 This simplifies the code, and makes it a bit smaller and faster,
5635 and (most important) makes it easier to clean up signal handling
5636 since we can stop worring about floating-point exceptions in
5637 library code. That was a problem before C89, but the problem
5638 went away many years ago on all practical Emacs targets.
5639 * data.c, image.c, lread.c, print.c:
5640 Don't include <math.h>; no longer needed.
5641 * data.c, floatfns.c (IEEE_FLOATING_POINT): Don't worry that it
5642 might be autoconfigured, as that never happens.
5643 * data.c (fmod):
5644 * doprnt.c (DBL_MAX_10_EXP):
5645 * print.c (DBL_DIG):
5646 Remove. C89 or later always defines these.
5647 * floatfns.c (HAVE_MATHERR, FLOAT_CHECK_ERRNO, FLOAT_CHECK_DOMAIN)
5648 (in_float, float_error_arg, float_error_arg2, float_error_fn_name)
5649 (arith_error, domain_error, domain_error2):
5650 Remove all this pre-C89 cruft. Do not include <errno.h> as that's
5651 no longer needed -- we simply return what C returns. All uses removed.
5652 (IN_FLOAT, IN_FLOAT2): Remove. All uses replaced with
5653 the wrapped code.
5654 (FLOAT_TO_INT, FLOAT_TO_INT2, range_error, range_error2):
5655 Remove. All uses expanded, as these macros are no longer used
5656 more than once and are now more trouble than they're worth.
5657 (Ftan): Use tan, not sin / cos.
5658 (Flogb): Assume C89 frexp.
5659 (fmod_float): Assume C89 fmod.
5660 (matherr) [HAVE_MATHERR]: Remove; no longer needed.
5661 (init_floatfns): Remove. All uses removed.
5662
56632012-09-08 Jan Djärv <jan.h.d@swipnet.se>
5664
5665 * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Take back
5666 compositeToPoint for OSX < 10.6 (Bug#12390).
5667
56682012-09-08 Paul Eggert <eggert@cs.ucla.edu>
5669
5670 * floatfns.c (Ftan): Use tan (x), not (sin (x) / cos (x)).
5671 This produces more-accurate results.
5672
56732012-09-08 Jan Djärv <jan.h.d@swipnet.se>
5674
5675 * nsterm.m (updateFrameSize): Call setFrame: on the view when size
5676 changes (Bug#12088).
5677
56782012-09-08 Chong Yidong <cyd@gnu.org>
5679
5680 * syntax.c (Fstring_to_syntax): Doc fix.
5681
56822012-09-08 Jan Djärv <jan.h.d@swipnet.se>
5683
5684 * nsterm.m (ns_clip_to_row): Remove code that deals with drawing fringe
5685 in the internal border.
5686 (x_set_window_size): Remove static variables and their usage.
5687 (ns_redraw_scroll_bars): Fix NSTRACE arg.
5688 (ns_after_update_window_line, ns_draw_fringe_bitmap):
5689 Remove fringe/internal border adjustment (Bug#11052).
5690 (ns_draw_fringe_bitmap): Make code more like other terms (xterm.c).
5691 (ns_draw_window_cursor): Remove fringe/internal border adjustment.
5692 (ns_fix_rect_ibw): Remove.
5693 (ns_get_glyph_string_clip_rect): Remove call to ns_fix_rect_ibw.
5694 (ns_dumpglyphs_box_or_relief): Ditto.
5695 (ns_maybe_dumpglyphs_background): Remove fringe/internal border
5696 adjustment.
5697 (ns_dumpglyphs_image): Ditto.
5698 (ns_dumpglyphs_stretch): Fix coding style. Remove fringe/internal
5699 border adjustment.
5700 (ns_set_vertical_scroll_bar): Remove variables barOnVeryLeft/Right and
5701 their usage. Add fringe_extended_p and its use as in other terms.
5702 (ns_judge_scroll_bars): Code style fix. Call updateFrameSize if
5703 scroll bar was removed.
5704 (updateFrameSize): New function.
5705 (windowDidResize): Move code to updateFrameSize and call it.
5706
5707 * nsterm.h (EmacsView): Add updateFrameSize.
5708
57092012-09-07 Chong Yidong <cyd@gnu.org>
5710
5711 * textprop.c (Fget_text_property): Minor doc fix (Bug#12323).
5712
5713 * data.c (Flocal_variable_if_set_p): Doc fix (Bug#10713).
5714
57152012-09-07 Paul Eggert <eggert@cs.ucla.edu>
5716
5717 More signal-handler cleanup (Bug#12327).
5718 * emacs.c (main): Convert three 'signal' calls to 'sigaction' calls.
5719 Problem introduced when merging patches. Noted by Eli Zaretskii in
5720 <http://bugs.gnu.org/12327#67>.
5721 * floatfns.c: Comment fix.
5722 * lisp.h (force_auto_save_soon): Declare regardless of SIGDANGER.
5723 SIGDANGER might not be in scope so "#ifdef SIGDANGER" is not right,
5724 and anyway the declaration is harmless even if SIGDANGER is not defined.
5725 * syssignal.h (SIGIO): Also #undef if (! defined FIONREAD ||
5726 defined BROKEN_FIONREAD). systty.h formerly did this, but other
5727 source files not surprisingly expected syssignal.h to define, or
5728 not define, SIGIO, and it's cleaner to do it that way, for consistency.
5729 Include <sys/ioctl.h>, for FIONREAD.
5730 * systty.h (SIGIO): Do not #undef here; it's now syssignal.h's job.
5731 This eliminates a problem whereby other files mysteriously had
5732 to include "syssignal.h" before including "systty.h" if they
5733 wanted to use "#ifdef SIGIO".
5734
57352012-09-07 Eli Zaretskii <eliz@gnu.org>
5736
5737 * w32proc.c (sigaction): New function, emulates Posix 'sigaction'.
5738
5739 * w32.c (sigemptyset): Empty the set.
5740 (sigsetmask, sigmask, sigblock, sigunblock): Remove unused functions.
5741
5742 * alloc.c [ENABLE_CHECKING]: Include signal.h, since we need SIGABRT.
5743
57442012-09-07 Dmitry Antipov <dmantipov@yandex.ru>
5745
5746 * alloc.c (mark_buffer): Revert unsafe marking optimization.
5747 (mark_object): Likewise for frame objects.
5748
57492012-09-07 Paul Eggert <eggert@cs.ucla.edu>
5750
5751 * syssignal.h (handle_on_main_thread): Always declare,
5752 even if FORWARD_SIGNAL_TO_MAIN_THREAD is not defined.
5753 This ports to platforms without HAVE_PTHREAD.
5754
57552012-09-06 Paul Eggert <eggert@cs.ucla.edu>
5756
5757 Signal-handler cleanup (Bug#12327).
5758 Emacs's signal handlers were written in the old 4.2BSD style with
5759 sigblock and sigmask and so forth, and this led to some
5760 inefficiencies and confusion. Rewrite these to use
5761 pthread_sigmask etc. without copying signal sets around. Also,
5762 get rid of the confusing macros 'SIGNAL_THREAD_CHECK' and
5763 'signal', and instead use functions that do not attempt to take
5764 over the system name space. This patch causes Emacs's text
5765 segment to shrink by 0.7% on my platform, Fedora 17 x86-64.
5766 * alloc.c, emacsgtkfixed.c, nsfns.m, widget.c, xmenu.c:
5767 Do not include <signal.h> or "syssignal.h", as these
5768 modules do not use signals.
5769 * atimer.c, callproc.c, data.c, dispnew.c, emacs.c, floatfns.c:
5770 * gtkutil.c, keyboard.c, process.c, sound.c, sysdep.c, term.c, xterm.c:
5771 Do not include <signal.h>, as "syssignal.h" does that for us now.
5772 * atimer.c (sigmask_atimers): New function.
5773 (block_atimers, unblock_atimers): New functions,
5774 replacing the old macros BLOCK_ATIMERS and UNBLOCK_ATIMERS.
5775 All uses replaced.
5776 * conf_post.h [SIGNAL_H_AHB]: Do not include <signal.h>;
5777 no longer needed here.
5778 * emacs.c (main): Inspect existing signal handler with sigaction,
5779 so that there's no need to block and unblock SIGHUP.
5780 * sysdep.c (struct save_signal): New member 'action', replacing
5781 old member 'handler'.
5782 (save_signal_handlers, restore_signal_handlers):
5783 Use sigaction instead of 'signal' to save and restore.
5784 (get_set_sighandler, set_sighandler) [!WINDOWSNT]:
5785 New function. All users of 'signal' modified to use set_sighandler
5786 if they're writeonly, and to use sys_signal if they're read+write.
5787 (emacs_sigaction_init, forwarded_signal): New functions.
5788 (sys_signal): Remove. All uses replaced by calls to sigaction
5789 and emacs_sigaction_init, or by direct calls to 'signal'.
5790 (sys_sigmask) [!__GNUC__]: Remove; no longer needed.
5791 (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove;
5792 all uses replaced by pthread_sigmask etc. calls.
5793 * syssignal.h: Include <signal.h>.
5794 (emacs_sigaction_init, forwarded_signal): New decls.
5795 (SIGMASKTYPE): Remove. All uses replaced by its definiens, sigset_t.
5796 (SIGEMPTYMASK): Remove; all uses replaced by its definiens, empty_mask.
5797 (sigmask, sys_sigmask): Remove; no longer needed.
5798 (sigpause): Remove. All uses replaced by its definiens, sigsuspend.
5799 (sigblock, sigunblock, sigfree):
5800 (sigsetmask) [!defined sigsetmask]:
5801 Remove. All uses replaced by pthread_sigmask.
5802 (signal): Remove. Its remaining uses (with SIG_DFL and SIG_IGN)
5803 no longer need to be replaced, and its typical old uses
5804 are now done via emacs_sigaction_init and sigaction.
5805 (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove decls.
5806 (sys_sigdel): Remove; unused.
5807 (NSIG): Remove a FIXME; the code's fine. Remove an unnecessary ifdef.
5808
58092012-09-06 Eli Zaretskii <eliz@gnu.org>
5810
5811 * process.c (CAN_HANDLE_MULTIPLE_CHILDREN): Fix a typo that broke
5812 SIGCHLD handling on systems that don't have WNOHANG. (Bug#12327)
5813
58142012-09-06 Dmitry Antipov <dmantipov@yandex.ru>
5815
5816 Explicitly mark buffer_defaults and buffer_local_symbols.
5817 * alloc.c (Fgarbage_collect): Mark buffer_defaults and
5818 mark_local_symbols here.
5819 (mark_object): If GC_CHECK_MARKED_OBJECTS, simplify checking
5820 since special buffers aren't marked here any more.
5821 (allocate_buffer): Chain new buffer with all_buffers here...
5822 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): ...and
5823 not here.
5824 (Vbuffer_defaults, Vbuffer_local_symbols): Remove.
5825 (syms_of_buffer): Remove staticpro of the above.
5826 (init_buffer_once): Set names for buffer_defaults and
5827 buffer_local_symbols.
5828
58292012-09-06 Paul Eggert <eggert@cs.ucla.edu>
5830
5831 Use bool for booleans in font-related modules.
5832 * font.c (font_intern_prop, font_style_to_value)
5833 (font_style_symbolic, font_parse_xlfd, font_parse_fcname)
5834 (generate_otf_features, font_check_otf_features, font_check_otf)
5835 (font_match_p, font_list_entities, font_at):
5836 * fontset.c (fontset_id_valid_p, reorder_font_vector
5837 (fontset_find_font, Fset_fontset_font)
5838 (face_suitable_for_char_p) [0]:
5839 * ftfont.c (fc_initialized, ftfont_get_open_type_spec)
5840 (ftfont_open, ftfont_text_extents, ftfont_check_otf):
5841 (m17n_flt_initialized, ftfont_shape_by_flt):
5842 * ftxfont.c (ftxfont_draw_bitmap, ftxfont_draw):
5843 * nsfont.m (nsfont_draw):
5844 * w32font.c (w32font_draw):
5845 * w32term.c (x_draw_glyphless_glyph_string_foreground):
5846 Use bool for booleans.
5847 * font.h: Adjust to above API changes.
5848 (struct font, struct font_driver, struct font_driver_list):
5849 Use bool for booleans.
5850 (struct font): Remove useless member encoding_type.
5851 All users removed.
5852 * fontset.c, xftfont.c: Omit unnecessary static decls.
5853
58542012-09-06 Dmitry Antipov <dmantipov@yandex.ru>
5855
5856 * alloc.c (mark_object): Revert window marking code
5857 since it's unsafe for the Fset_window_configuration.
5858
58592012-09-05 Paul Eggert <eggert@cs.ucla.edu>
5860
5861 Fix race conditions with signal handlers and errno (Bug#12327).
5862 Be more systematic about preserving errno whenever a signal
5863 handler returns, even if it's not in the main thread. Do this by
5864 renaming signal handlers to distinguish between signal delivery
5865 and signal handling. All uses changed.
5866 * atimer.c (deliver_alarm_signal): Rename from alarm_signal_handler.
5867 * data.c (deliver_arith_signal): Rename from arith_error.
5868 * dispnew.c (deliver_window_change_signal): Rename from
5869 window_change_signal.
5870 * emacs.c (deliver_error_signal): Rename from fatal_error_signal.
5871 (deliver_danger_signal) [SIGDANGER]: Rename from memory_warning_signal.
5872 * keyboard.c (deliver_input_available_signal): Rename from
5873 input_available_signal.
5874 (deliver_user_signal): Rename from handle_user_signal.
5875 (deliver_interrupt_signal): Rename from interrupt_signal.
5876 * process.c (deliver_pipe_signal): Rename from send_process_trap.
5877 (deliver_child_signal): Rename from sigchld_handler.
5878 * atimer.c (handle_alarm_signal):
5879 * data.c (handle_arith_signal):
5880 * dispnew.c (handle_window_change_signal):
5881 * emacs.c (handle_fatal_signal, handle_danger_signal):
5882 * keyboard.c (handle_input_available_signal):
5883 * keyboard.c (handle_user_signal, handle_interrupt_signal):
5884 * process.c (handle_pipe_signal, handle_child_signal):
5885 New functions, with the actual signal-handling code taken from the
5886 original respective signal handlers, sans the sporadic attempts to
5887 preserve errno, since that's now done by handle_on_main_thread.
5888 * atimer.c (alarm_signal_handler): Remove unnecessary decl.
5889 * emacs.c, floatfns.c, lisp.h: Remove unused FLOAT_CATCH_SIGKILL cruft.
5890 * emacs.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
5891 Move to sysdep.c.
5892 (main) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
5893 Move initialization of main_thread to sysdep.c's init_signals.
5894 * process.c (waitpid) [!WNOHANG]: #define to wait; that's good enough for
5895 our usage, and simplifies the mainline code.
5896 (record_child_status_change): New static function, as a helper
5897 for handle_child_signal, and with most of the old child handler's
5898 contents.
5899 (CAN_HANDLE_MULTIPLE_CHILDREN): New constant.
5900 (handle_child_signal): Use the above.
5901 * sysdep.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
5902 Moved here from emacs.c.
5903 (init_signals) [FORWARD_SIGNAL_TO_MAIN_THREAD]: Initialize it;
5904 code moved here from emacs.c's main function.
5905 * sysdep.c, syssignal.h (handle_on_main_thread): New function,
5906 replacing the old SIGNAL_THREAD_CHECK. All uses changed.
5907 This lets callers save and restore errno properly.
5908
59092012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
5910
5911 Remove redundant or unused things here and there.
5912 * lisp.h (CYCLE_CHECK, CHAR_TABLE_TRANSLATE): Remove.
5913 * conf_post.h (RE_TRANSLATE): Use char_table_translate.
5914 * editfns.c (Fcompare_buffer_substrings): Likewise.
5915 * frame.h (struct terminal, struct font_driver_list):
5916 Remove redundant declarations.
5917 * window.h (Qleft, Qright): Likewise.
5918
59192012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
5920
5921 Do not mark objects from deleted buffers, windows and frames.
5922 * alloc.c (mark_buffer): Mark just the buffer if it is dead.
5923 (mark_object): Likewise for windows and frames.
5924
59252012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
5926
5927 * alloc.c (valid_lisp_object_p): Treat killed buffers,
5928 buffer_defaults and buffer_local_symbols as valid objects.
5929 Return special value to denote them.
5930
59312012-09-05 Paul Eggert <eggert@cs.ucla.edu>
5932
5933 * fileio.c, filelock.c, floatfns.c, fns.c: Use bool for boolean.
5934 * fileio.c (auto_saving, auto_save_error_occurred, make_temp_name)
5935 (Fexpand_file_name, barf_or_query_if_file_exists, Fcopy_file)
5936 (file_name_absolute_p, Fsubstitute_in_file_name):
5937 (check_executable, check_writable, Ffile_accessible_directory_p)
5938 (Fset_file_selinux_context, Fdefault_file_modes)
5939 (Finsert_file_contents, choose_write_coding_system)
5940 (Fwrite_region, build_annotations, a_write, e_write)
5941 (Fdo_auto_save):
5942 * filelock.c (boot_time_initialized, get_boot_time)
5943 (get_boot_time_1, lock_file_1, within_one_second):
5944 * floatfns.c (in_float):
5945 * fns.c (concat, internal_equal, Frequire, base64_encode_1)
5946 (base64_decode_1, cmpfn_eql, cmpfn_user_defined)
5947 (sweep_weak_table, sweep_weak_hash_tables, secure_hash):
5948 * lisp.h (struct Lisp_Hash_Table.cmpfn):
5949 * window.c (compare_window_configurations):
5950 Use bool for booleans.
5951 * fileio.c (auto_saving_dir_umask, auto_saving_mode_bits)
5952 (Fdefault_file_modes): Now mode_t, not int, for modes.
5953 (Fdo_auto_save): Set a boolean to 1 rather than using ++.
5954 (internal_delete_file): Now returns void, not a (boolean) int,
5955 since nobody was looking at the return value.
5956 * lisp.h, window.h: Adjust to above API changes.
5957
5958 * xdisp.c (set_message): Simplify and reindent last change.
5959
59602012-09-05 Juanma Barranquero <lekktu@gmail.com>
5961
5962 * makefile.w32-in ($(BLD)/sysdep.$(O)): Update dependencies.
5963
59642012-09-04 Lars Ingebrigtsen <larsi@gnus.org>
5965
5966 * eval.c (call_debugger): Make the function non-static so that we
5967 can call it from set_message.
5968
5969 * xdisp.c (set_message): Implement the new variable `debug-on-message'.
5970 (syms_of_xdisp): Defvar it and `inhibit-debug-on-message'.
5971
59722012-09-04 Paul Eggert <eggert@cs.ucla.edu>
5973
5974 Give more-useful info on a fatal error (Bug#12328).
5975 * alloc.c [ENABLE_CHECKING]: Do not include <execinfo.h>.
5976 (die) [ENABLE_CHECKING]: Call fatal_error_backtrace instead
5977 of doing the work ourselves.
5978 * emacs.c (fatal_error_signal): Let fatal_error_backtrace
5979 do most of the work.
5980 (fatal_error_backtrace): New function, taken from the guts
5981 of the old fatal_error_signal, but with a new option to output
5982 a backtrace.
5983 (shut_down_emacs) [!DOS_NT]: Use strsignal to give more-useful
5984 info about the signal than just its number.
5985 * lisp.h (fatal_error_backtrace, emacs_backtrace): New decls.
5986 * sysdep.c: Include <execinfo.h>
5987 (emacs_backtrace): New function, taken partly from the previous
5988 code of the 'die' function.
5989 (emacs_abort): Call fatal_error_backtrace rather than abort.
5990
59912012-09-04 Stefan Monnier <monnier@iro.umontreal.ca>
5992
5993 * lread.c (readevalloop): Call internal-macroexpand-for-load to perform
5994 eager (load-time) macro-expansion.
5995 * lisp.mk (lisp): Add macroexp.
5996
59972012-09-04 Paul Eggert <eggert@cs.ucla.edu>
5998
5999 Simplify redefinition of 'abort' (Bug#12316).
6000 Do not try to redefine the 'abort' function. Instead, redo
6001 the code so that it calls 'emacs_abort' rather than 'abort'.
6002 This removes the need for the NO_ABORT configure-time macro
6003 and makes it easier to change the abort code to do a backtrace.
6004 * .gdbinit: Just stop at emacs_abort, not at w32_abort or abort.
6005 * emacs.c (abort) [!DOS_NT && !NO_ABORT]:
6006 Remove; sysdep.c's emacs_abort now takes its place.
6007 * lisp.h (emacs_abort): New decl. All calls from Emacs code to
6008 'abort' changed to use 'emacs_abort'.
6009 * msdos.c (dos_abort) [defined abort]: Remove; not used.
6010 (abort) [!defined abort]: Rename to ...
6011 (emacs_abort): ... new name.
6012 * sysdep.c (emacs_abort) [!HAVE_NTGUI]: New function, taking
6013 the place of the old 'abort' in emacs.c.
6014 * w32.c, w32fns.c (abort): Do not #undef.
6015 * w32.c (emacs_abort): Rename from w32_abort.
6016
60172012-09-04 Eli Zaretskii <eliz@gnu.org>
6018
6019 * w32uniscribe.c (uniscribe_shape): Reverse the sign of
6020 offsets[j].dv, since the y axis of the screen coordinates points
6021 down, while the y axis of the font definition coordinates points
6022 up. This fixes display of Arabic diacritics such as KASRA and
6023 KASRATAN. (Bug#11860)
6024
60252012-09-04 Paul Eggert <eggert@cs.ucla.edu>
6026
6027 Be more systematic about _setjmp vs setjmp.
6028 * alloc.c (test_setjmp, mark_stack):
6029 * image.c (PNG_LONGJMP) [PNG_LIBPNG_VER < 10500]:
6030 (PNG_JMPBUF) [! (PNG_LIBPNG_VER < 10500)]:
6031 (png_load, my_error_exit, jpeg_load):
6032 * process.c (send_process_trap, send_process):
6033 Uniformly prefer _setjmp and _longjmp to setjmp and longjmp.
6034 The underscored versions are up to 30x faster on some hosts.
6035 Formerly, the code used setjmp+longjmp sometimes and
6036 _setjmp+_longjmp at other times, with no particular reason to
6037 prefer setjmp+longjmp.
6038
60392012-09-03 Paul Eggert <eggert@cs.ucla.edu>
6040
6041 Fix minor problem found by static checking.
6042 * buffer.c (Fdelete_all_overlays): Return nil.
6043
60442012-09-03 Martin Rudalics <rudalics@gmx.at>
6045
6046 * buffer.c (Fdelete_all_overlays): New function.
6047
60482012-09-03 Chong Yidong <cyd@gnu.org>
6049
6050 * gtkutil.c: Add extern decl for Qxft.
6051
60522012-09-02 Paul Eggert <eggert@cs.ucla.edu>
6053
6054 * emacs.c, eval.c: Use bool for boolean.
6055 * emacs.c (initialized, inhibit_window_system, running_asynch_code):
6056 (malloc_using_checking) [DOUG_LEA_MALLOC]:
6057 (display_arg) [HAVE_X_WINDOWS || HAVE_NS]:
6058 (noninteractive, no_site_lisp, fatal_error_in_progress, argmatch)
6059 (main, decode_env_path, Fdaemon_initialized):
6060 * eval.c (call_debugger, Finteractive_p, interactive_p):
6061 (unwind_to_catch, Fsignal, wants_debugger, skip_debugger)
6062 (maybe_call_debugger, Fbacktrace):
6063 * process.c (read_process_output, exec_sentinel):
6064 Use bool for booleans.
6065 * emacs.c (shut_down_emacs): Omit unused boolean argument NO_X.
6066 All callers changed.
6067 * eval.c (interactive_p): Omit always-true boolean argument
6068 EXCLUDE_SUBRS_P. All callers changed.
6069 * dispextern.h, lisp.h: Reflect above API changes.
6070 * firstfile.c (dummy): Use the address of 'main', whose signature
6071 won't change, instead of the address of 'initialize', whose
6072 signature just changed from int to bool.
6073 * lisp.h (fatal_error_in_progress): New decl of boolean, moved here ...
6074 * msdos.c (fatal_error_in_progress): ... from here.
6075 * xdisp.c (redisplaying_p): Now a boolean. Set it to 1 instead
6076 of incrementing it.
6077 (redisplay_internal, unwind_redisplay): Simply clear
6078 REDISPLAYING_P when unwinding, instead of saving its previous,
6079 always-false value and then restoring it.
6080
6081 Clean up some extern decls.
6082 Mostly, this hoists extern decls out of .c files and into .h files.
6083 That way, we're more likely to catch errors if the interfaces change.
6084 * alloc.c [USE_GTK]: Include "gtkutil.h" so that we need not
6085 declare xg_mark_data.
6086 * dispextern.h (x_frame_parm_handlers):
6087 * font.h (Qxft):
6088 * lisp.h (Qlexical_binding, Qinternal_interpreter_environment)
6089 (Qextra_light, Qlight, Qsemi_light, Qsemi_bold, Qbold, Qextra_bold)
6090 (Qultra_bold, Qoblique, Qitalic):
6091 Move extern decl here from .c file.
6092 * alloc.c (xg_mark_data) [USE_GTK]:
6093 * doc.c (Qclosure):
6094 * eval.c (Qlexical_binding):
6095 * fns.c (time) [!HAVE_UNISTD_H]:
6096 * gtkutil.c (Qxft, Qnormal, Qextra_light, Qlight, Qsemi_light)
6097 (Qsemi_bold, Qbold, Qextra_bold, Qultra_bold, Qoblique, Qitalic):
6098 * image.c (Vlibrary_cache, QCloaded_from) [HAVE_NTGUI]:
6099 * lread.c (Qinternal_interpreter_environment):
6100 * minibuf.c (Qbuffer):
6101 * process.c (QCfamily, QCfilter):
6102 * widget.c (free_frame_faces):
6103 * xfaces.c (free_frame_menubar) [USE_X_TOOLKIT]:
6104 * xfont.c (x_clear_errors):
6105 * xterm.c (x_frame_parm_handlers):
6106 Remove now-redundant extern decls.
6107 * keyboard.c, keyboard.h (ignore_mouse_drag_p) [USE_GTK || HAVE_NS]:
6108 * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic):
6109 Now static.
6110 * xfaces.c: Remove unnecessary static decls.
6111 * xterm.c (updating_frame): Remove decl of nonexistent object.
6112
6113 * Makefile.in (gl-stamp): Don't scan $(SOME_MACHINE_OBJECTS)
6114 when building globals.h, as the objects that are not built on
6115 this host are not needed to compile C files on this host.
6116
61172012-09-02 Jan Djärv <jan.h.d@swipnet.se>
6118
6119 * gtkutil.h: Remove prototype for x_wm_set_size_hint.
6120
6121 * frame.h: Add missing prototype for x_wm_set_size_hint.
6122
61232012-09-02 Paul Eggert <eggert@cs.ucla.edu>
6124
6125 * doc.c, editfns.c, insdel.c, intervals.c: Use bool for boolean.
6126 * doc.c (read_bytecode_char, get_doc_string, reread_doc_file)
6127 (Fdocumentation, Fdocumentation_property, Fsnarf_documentation)
6128 (Fsubstitute_command_keys):
6129 * editfns.c (region_limit, find_field, Fconstrain_to_field)
6130 (save_excursion_save, save_excursion_restore)
6131 (disassemble_lisp_time, decode_time_components, emacs_nmemftime)
6132 (format_time_string, general_insert_function)
6133 (make_buffer_string, make_buffer_string_both)
6134 (Fsubst_char_in_region, Ftranslate_region_internal, Fformat):
6135 * insdel.c (check_markers, gap_left, adjust_markers_for_insert)
6136 (copy_text, insert_1, insert_1_both, insert_from_string)
6137 (insert_from_string_before_markers, insert_from_string_1)
6138 (insert_from_buffer, insert_from_buffer_1, replace_range)
6139 (replace_range_2, del_range_1, del_range_byte, del_range_both)
6140 (del_range_2, modify_region):
6141 * intervals.c (intervals_equal, balance_possible_root_interval)
6142 (adjust_intervals_for_insertion, merge_properties_sticky)
6143 (graft_intervals_into_buffer, lookup_char_property)
6144 (adjust_for_invis_intang, set_point_both)
6145 (get_property_and_range, compare_string_intervals)
6146 (set_intervals_multibyte_1, set_intervals_multibyte):
6147 * keyboard.c (decode_timer):
6148 Use bool for boolean.
6149 * intervals.h, lisp.h, systime.h: Reflect above API changes.
6150 * editfns.c (struct info): Use 1-bit unsigned bitfields for booleans.
6151
61522012-09-02 Chong Yidong <cyd@gnu.org>
6153 3232
6154 * keymap.c (push_key_description): Print M-TAB as C-M-i 3233 * w32proc.c: Include mingw_time.h.
6155 (Bug#11758).
6156 3234
61572012-09-02 Juanma Barranquero <lekktu@gmail.com> 3235 * w32.c: Include mingw_time.h.
6158 3236
6159 * makefile.w32-in (CCL_H, W32FONT_H): New macros. 3237 Implement scrolling of TTY menus when the screen is too short.
6160 (ATIMER_H, FONT_H, $(BLD)/alloc.$(O), $(BLD)/callproc.$(O))
6161 ($(BLD)/editfns.$(O), $(BLD)/ccl.$(O), $(BLD)/chartab.$(O))
6162 ($(BLD)/coding.$(O), $(BLD)/sysdep.$(O), $(BLD)/fontset.$(O))
6163 ($(BLD)/sysdep.$(O), $(BLD)/w32fns.$(O), $(BLD)/keyboard.$(O))
6164 ($(BLD)/w32term.$(O), $(BLD)/w32menu.$(O), $(BLD)/process.$(O))
6165 ($(BLD)/w32font.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
6166 3238
61672012-09-01 Eli Zaretskii <eliz@gnu.org> 3239 * term.c (tty_menu_display): Accept an additional argument, the
3240 menu item from which to start displaying the menu. Account for
3241 the value of Y when limiting the menu to the number of available
3242 screen lines.
3243 (mi_result): New enumeration.
3244 (read_menu_input): Return enumerated value. When the y coordinate
3245 hits min_y or max_y, return scroll indication instead of wrapping
3246 around the menu.
3247 (tty_menu_activate): Handle the scrolling indications from
3248 read_menu_input. Compute the first menu item to display and pass
3249 it to tty_menu_display.
6168 3250
6169 * w32uniscribe.c (uniscribe_shape): Handle correctly the case of 32512013-10-14 Dmitry Antipov <dmantipov@yandex.ru>
6170 more than one grapheme cluster passed to the shaper: compute the
6171 offset adjustment values separately for each cluster. (Bug#11860)
6172 3252
6173 * image.c: Restore mistakenly removed inclusion of w32.h. Without 3253 * termhooks.h (FRAME_MUST_WRITE_SPACES, FRAME_LINE_INS_DEL_OK)
6174 it, GCC doesn't see prototypes of w32_delayed_load, and complains 3254 (FRAME_CHAR_INS_DEL_OK, FRAME_SCROLL_REGION_OK)
6175 about implicit conversions from integer to pointer. 3255 (FRAME_SCROLL_REGION_COST, FRAME_MEMORY_BELOW_FRAME):
3256 Adjust to match the change described below.
3257 (struct terminal): Move must_write_spaces, line_ins_del_ok,
3258 char_ins_del_ok, scroll_region_ok, scroll_region_cost and
3259 memory_below_frame members to...
3260 * termchar.h (struct tty_display_info): ...here because they're
3261 relevant only on TTYs. Prefer unsigned bitfield where appropriate.
3262 * term.c (init_tty):
3263 * nsterm.m (ns_create_terminal):
3264 * w32term.c (w32_create_terminal):
3265 * xterm.c (x_create_terminal): Adjust users.
3266 * dispnew.c (line_hash_code, line_draw_cost): Pass frame arg
3267 to filter out non-TTY frames. Adjust comment.
3268 (scrolling): Adjust user. Prefer eassert for debugging check.
6176 3269
61772012-09-01 Daniel Colascione <dancol@dancol.org> 32702013-10-14 Dmitry Antipov <dmantipov@yandex.ru>
6178 3271
6179 * w32fns.c (x_display_info_for_name): Prevent crash if w32 window 3272 * xfaces.c (PT_PER_INCH): Remove unused macro.
6180 system used too early. 3273 * termhooks.h (struct terminal): Remove set-but-unused
3274 member fast_clear_end_of_line.
3275 (FRAME_FAST_CLEAR_END_OF_LINE): Remove.
3276 * nsterm.m (ns_create_terminal):
3277 * term.c (init_tty):
3278 * w32term.c (w32_create_terminal):
3279 * xterm.c (x_create_terminal): Adjust users.
6181 3280
61822012-09-01 Paul Eggert <eggert@cs.ucla.edu> 32812013-10-14 Paul Eggert <eggert@cs.ucla.edu>
6183 3282
6184 Better seed support for (random). 3283 * lisp.h (bool_vector_size): New function.
6185 * emacs.c (main): Call init_random. 3284 All uses of XBOOL_VECTOR (x)->size changed to bool_vector_size (x).
6186 * fns.c (Frandom): Set the seed from a string argument, if given. 3285 * data.c (bool_vector_spare_mask, bool_vector_binop_driver)
6187 Remove long-obsolete Gentzel cruft. 3286 (Fbool_vector_not, Fbool_vector_count_matches_at):
6188 * lisp.h, sysdep.c (seed_random): Now takes address and size, not long. 3287 Remove uses of 'eassume' that should no longer be needed,
6189 (init_random): New function. 3288 because they are subsumed by the 'eassume' in bool_vector_size.
6190 3289
61912012-09-01 Daniel Colascione <dancol@dancol.org> 32902013-10-12 Eli Zaretskii <eliz@gnu.org>
6192 3291
6193 * xterm.h: Add header guards. Declare x_menubar_window_to_frame. 3292 * image.c (GIFLIB_MAJOR, GIFLIB_MINOR, GIFLIB_RELEASE): Move back
6194 Remove x_set_frame_alpha, x_bitmap_icon, x_make_frame_visible, 3293 after inclusion of gif_lib.h, thus fixing compiler warnings caused
6195 x_make_frame_invisible, x_iconify_frame, x_free_frame_resources, 3294 by 2013-10-10T19:15:33Z!eggert@cs.ucla.edu.
6196 x_wm_set_size_hint, x_query_colors, x_real_positions,
6197 x_set_menu_bar_lines, x_char_width, x_char_height, x_sync,
6198 x_set_tool_bar_lines, x_activate_menubar, and free_frame_menubar,
6199 all of which have been moved to common code.
6200 3295
6201 * xfaces.c: Include TERM_HEADER instead of listing all possible 32962013-10-11 Eli Zaretskii <eliz@gnu.org>
6202 window-system headers.
6203 3297
6204 * w32xfns.c (x_sync): Correct definition of x_sync (a no-op here) 3298 * xdisp.c (deep_copy_glyph_row): Handle the case that FROM and TO
6205 to match header. 3299 have different dimensions. (Bug#15575)
6206 3300
6207 * w32term.h (FRAME_X_WINDOW): Use FRAME_W32_WINDOW instead of 3301 * dispnew.c (fill_up_frame_row_with_spaces): Now has external
6208 directly accessing frame internals. 3302 visibility.
6209 3303
6210 * w32font.h: Include font.h. Define syms_of_w32font and 3304 * dispextern.h (fill_up_frame_row_with_spaces): Add prototype.
6211 globals_of_w32font.
6212 3305
6213 * process.c: Include TERM_HEADER instead of listing all possible 33062013-10-11 Dmitry Antipov <dmantipov@yandex.ru>
6214 window-system headers.
6215 3307
6216 * nsterm.h: Remove declarations now in frame.h. 3308 * term.c (tty_menu_show): Never return with unbalanced
6217 Define FRAME_X_SCREEN, FRAME_X_VISUAL. 3309 specpdl. Use eassert for debugging check. Adjust style.
6218 3310
6219 * menu.c: Include TERM_HEADER instead of listing all possible 33112013-10-11 Eli Zaretskii <eliz@gnu.org>
6220 window-system headers.
6221 3312
6222 * keyboard.h: Declare ignore_mouse_drag_p whenever we have a 3313 * term.c (read_menu_input): Make selection of menu items
6223 window system. 3314 cyclical. Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
3315 (tty_menu_activate): Fix off-by-one error when computing max_y.
6224 3316
6225 * keyboard.c: Include TERM_HEADER instead of listing all possible 33172013-10-11 Teodor Zlatanov <tzz@lifelogs.com>
6226 window-system headers.
6227 3318
6228 * image.c: Include TERM_HEADER instead of listing all possible 3319 * gnutls.c (gnutls_audit_log_function): Add function for GnuTLS
6229 window-system headers. Declare Vlibrary_cache when compiling for 3320 audit logging (only used with GnuTLS 3.x) and enable it.
6230 Windows.
6231 3321
6232 * gtkutil.h (xg_list_node_): Include xterm.h to pick up needed 33222013-10-11 Dmitry Antipov <dmantipov@yandex.ru>
6233 window system declarations.
6234 3323
6235 * frame.h: Move common functions here: set_frame_menubar, 3324 * dispnew.c (redraw_frame): Remove useless #ifdef because
6236 x_set_window_size, x_sync, x_get_focus_frame, 3325 FRAME_MSDOS_P is a compile-time zero everywhere except MS-DOS.
6237 x_set_mouse_position, x_set_mouse_pixel_position, 3326 Also, move TTY fflush to...
6238 x_make_frame_visible, x_make_frame_invisible, x_iconify_frame, 3327 * term.c (tty_update_end): ...this function.
6239 x_char_width, x_char_height, x_pixel_width, x_pixel_height, 3328
6240 x_set_frame_alpha, x_set_menu_bar_lines, x_set_tool_bar_lines, 33292013-10-11 Eli Zaretskii <eliz@gnu.org>
6241 x_activate_menubar, x_real_positions, x_bitmap_icon,
6242 x_set_menu_bar_lines, free_frame_menubar, x_free_frame_resources,
6243 and x_query_colors.
6244 3330
6245 * frame.c: Include TERM_HEADER instead of listing all possible 3331 * xdisp.c (display_tty_menu_item): Make sure we never write beyond
6246 window-system headers. 3332 the end of the frame's glyph matrix. (Bug#15575)
3333
3334 * term.c (tty_menu_display): Don't move cursor while overwriting
3335 frame's glyphs with menu items. Limit the number of items
3336 displayed to what can be shown on the available screen lines,
3337 excluding the echo area.
3338 (tty_menu_activate): Limit the Y coordinate allowed by
3339 read_menu_input to the last screen line used for menu display.
3340
33412013-10-11 Paul Eggert <eggert@cs.ucla.edu>
3342
3343 * lisp.h (eassume): New macro.
3344 Also, include <verify.h>, for 'assume'.
3345 * alloc.c (bool_vector_payload_bytes, Fmake_bool_vector)
3346 (vroundup, vector_nbytes):
3347 * data.c (bool_vector_spare_mask, bool_vector_binop_driver)
3348 (Fbool_vector_not, Fbool_vector_count_matches)
3349 (Fbool_vector_count_matches_at):
3350 Use eassume, not eassert.
3351 * casetab.c (set_identity, shuffle):
3352 * composite.c (composition_gstring_put_cache):
3353 * dispnew.c (update_frame_1):
3354 * ftfont.c (ftfont_shape_by_flt):
3355 * image.c (gif_load):
3356 * intervals.c (offset_intervals):
3357 * macfont.m (macfont_shape):
3358 Remove calls to 'assume' that are no longer needed, because
3359 --enable-gcc-warnings no longer generates bogus warnings
3360 when these calls are removed.
3361
33622013-10-11 Dmitry Antipov <dmantipov@yandex.ru>
3363
3364 * xdisp.c (deep_copy_glyph_row): Remove unused locals.
3365
33662013-10-10 Stefan Monnier <monnier@iro.umontreal.ca>
3367
3368 * fileio.c (Fsubstitute_in_file_name): Use substitute-env-in-file-name.
3369 (Qsubstitute_env_in_file_name): New var.
3370 (syms_of_fileio): Define it.
3371
33722013-10-10 Eli Zaretskii <eliz@gnu.org>
3373
3374 * xdisp.c (deep_copy_glyph_row): Assert that the 'used' counts of
3375 FROM and TO are identical. Copy only the glyphs of TEXT_AREA.
3376 (Bug#15575)
3377
3378 * term.c (save_and_enable_current_matrix): Don't allocate and
3379 don't save margin areas.
3380 (restore_desired_matrix): Don't restore margin areas.
3381 (free_saved_screen): Don't free margin areas.
3382
33832013-10-10 Paul Eggert <eggert@cs.ucla.edu>
3384
3385 * image.c: Pacify --enable-gcc-warnings.
3386 (GIFLIB_MAJOR, GIFLIB_MINOR, GIFLIB_RELEASE, fn_GifErrorString):
3387 #define only if used.
3388
33892013-10-10 Eli Zaretskii <eliz@gnu.org>
3390
3391 * image.c (GIFLIB_MAJOR): Define to 4 if undefined.
3392 (GIFLIB_MINOR, GIFLIB_RELEASE): Define to zero if undefined.
3393 (GifErrorString) [GIFLIB_MAJOR >= 5]: Define a function pointer.
3394 (gif_load): For giflib v5.x and later, display the error message
3395 produced by giflib when its functions fail.
3396 (syms_of_image) <Qlibgif_version> [HAVE_NTGUI]: New DEFSYM.
3397 (Bug#15531)
3398
33992013-10-10 Dmitry Antipov <dmantipov@yandex.ru>
3400
3401 * keyboard.c (last_event_timestamp): Remove. For X selection and
3402 GTK popup menus, it may be obtained from per-frame X display info.
3403 (kbd_buffer_store_event_hold, kbd_buffer_get_event)
3404 (process_special_events): Adjust users.
3405 * keyboard.h (last_event_timestamp): Remove declaration.
3406 * xmenu.c (xmenu_show, create_and_show_popup_menu): Lost last arg.
3407 Use FRAME_DISPLAY_INFO (f)->last_user_time for gtk_menu_popup.
3408 * menu.h (xmenu_show): Adjust prototype.
3409 * menu.c (Fx_popup_menu): Adjust user.
3410 * xselect.c (x_own_selection, x_get_foreign_selection)
3411 (Fx_disown_selection_internal): Use dpyinfo->last_user_time.
3412
34132013-10-10 Dmitry Antipov <dmantipov@yandex.ru>
3414
3415 * keyboard.c (init_kboard): Now static. Add arg
3416 to denote window system. Adjust comment.
3417 (init_keyboard): Adjust user.
3418 (allocate_kboard): New function.
3419 (syms_of_keyboard):
3420 * nsterm.m (ns_term_init):
3421 * term.c (init_tty):
3422 * w32term.c (w32_create_terminal):
3423 * xterm.c (x_term_init): Use it.
3424 * keyboard.h (init_kboard): Remove prototype.
3425 (allocate_kboard): Add prototype.
6247 3426
6248 * font.c: Include TERM_HEADER instead of listing all possible 34272013-10-10 Barry Fishman <barry_fishman@acm.org> (tiny change)
6249 window-system headers.
6250 3428
6251 * emacs.c: Include TERM_HEADER. 3429 * image.c (GIFLIB_MAJOR): Ensure it's defined.
3430 (DGifOpen, DGifOpenFileName): Handle giflib 5 syntax. (Bug#15531)
6252 3431
6253 * dispnew.c: Include TERM_HEADER instead of listing all possible 34322013-10-09 Paul Eggert <eggert@cs.ucla.edu>
6254 window-system headers.
6255 3433
6256 * ccl.h: Include character.h. 3434 * fns.c (sxhash_bool_vector): Fix buffer read overrun.
6257 3435
6258 * Makefile.in: Define WINDOW_SYSTEM_OBJ to hold objects needed for 34362013-10-09 Eli Zaretskii <eliz@gnu.org>
6259 the current window system; include in list of objects to link into
6260 Emacs.
6261 3437
62622012-08-31 Dmitry Antipov <dmantipov@yandex.ru> 3438 * term.c (tty_menu_activate): Flush the output stream after
3439 showing the cursor, and don't mark the frame garbaged at exit from
3440 the function. Fixes redisplay glitches when moving from one menu
3441 to another.
6263 3442
6264 Remove mark_ttys function and fix tty_display_info initialization. 34432013-10-09 Jan Djärv <jan.h.d@swipnet.se>
6265 * lisp.h (mark_ttys): Remove prototype.
6266 * alloc.c (Fgarbage_collect): Remove redundant (and the only) call
6267 to mark_ttys because all possible values of 'top_frame' slot are
6268 the frames which are reachable from Vframe_list.
6269 * term.c (mark_ttys): Remove.
6270 (init_tty): Safely initialize 'top_frame' slot with Qnil.
6271 3444
62722012-08-31 Dmitry Antipov <dmantipov@yandex.ru> 3445 * nsfns.m (Fns_convert_utf8_nfd_to_nfc): Check input for valid UTF-8
3446 or throw error (Bug#15570).
6273 3447
6274 Change struct frame bitfields from unsigned char to unsigned. 34482013-10-09 Paul Eggert <eggert@cs.ucla.edu>
6275 * frame.h (struct frame): Change type of 'display_preempted',
6276 'visible', 'iconified', 'has_minibuffer', 'wants_modeline',
6277 'auto_raise', 'auto_lower', 'no_split', 'explicit_name',
6278 'window_sizes_changed', 'mouse_moved' and 'pointer_invisible'
6279 bitfields from unsigned char to unsigned.
6280 3449
62812012-08-31 Dmitry Antipov <dmantipov@yandex.ru> 3450 * intervals.c (temp_set_point_both): Move test into 'eassert',
3451 for speed.
6282 3452
6283 Remove unused member of struct x_output and struct w32_output. 3453 * lisp.h (eassert): Don't use 'assume'.
6284 * xterm.h (struct x_output): Remove unused field 'needs_exposure'. 3454 Sometimes 'assume' wins in performance, and sometimes it loses,
6285 * w32term.h (struct w32_output): Likewise. 3455 so it shouldn't be used all the time. Perhaps we need two
3456 flavors of 'eassert', one for where 'assume' is far more likely
3457 to help or to hurt; but that can be done later.
3458 Problem reported by Dmitry Antipov in
3459 <http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00276.html>.
3460 Also, don't include <verify.h>; no longer needed.
6286 3461
62872012-08-30 Jan Djärv <jan.h.d@swipnet.se> 34622013-10-09 Glenn Morris <rgm@gnu.org>
6288 3463
6289 * gtkutil.c (x_wm_set_size_hint): Use 1 col for base_width so it 3464 * eval.c (Fcond): Doc tweak.
6290 does not become zero (Bug#12234).
6291 3465
62922012-08-30 Paul Eggert <eggert@cs.ucla.edu> 34662013-10-09 Eli Zaretskii <eliz@gnu.org>
6293
6294 * dispnew.c (update_frame_1): Pacify gcc -Wstrict-overflow
6295 for GCC 4.7.1 x86-64.
6296 3467
62972012-08-30 Glenn Morris <rgm@gnu.org> 3468 * xfaces.c (x_free_gc) [HAVE_X_WINDOWS, HAVE_NTGUI]: Don't pass
3469 expressions with side effects to eassert. (Bug#15565)
6298 3470
6299 * lread.c (init_lread): For out-of-tree builds, only add the 34712013-10-09 Stefan Monnier <monnier@iro.umontreal.ca>
6300 source directory's site-lisp dir to the load-path if it exists,
6301 consistent with in-tree builds. (Bug#12302)
6302 3472
63032012-08-28 Jan Djärv <jan.h.d@swipnet.se> 3473 * fns.c (hashfn_user_defined): Allow hash functions to return any
3474 Lisp_Object.
6304 3475
6305 * nsmenu.m (initWithContentRect:styleMask:backing:defer:): Initialize 34762013-10-08 Paul Eggert <eggert@cs.ucla.edu>
6306 button_values to NULL. Call setStykeMask so dialogs get a close button.
6307 (windowShouldClose:): Set window_closed.
6308 (dealloc): New member, free button_values.
6309 (process_dialog:): Make member function. Remove window argument,
6310 replace window with self. Count buttons and allocate and store values
6311 in button_values.
6312 (addButton:value:row:): value is int with the name tag. Call setTag
6313 with tag. Remove return self, declare return value as void.
6314 (addString:row:): Remove return self, declare return value as void.
6315 (addSplit): Remove return self, declare return value as void.
6316 (clicked:): Remove return self, declare return value as void.
6317 Set dialog_return to button_values[seltag]. Code formatting change.
6318 (initFromContents:isQuestion:): Adjust call to process_dialog.
6319 Code formatting change.
6320 (timeout_handler:): Set timer_fired to YES.
6321 (runDialogAt:): Set timer_fired to NO.
6322 Handle click on close button as quit.
6323
6324 * nsterm.h (EmacsDialogPanel): Make timer_fired BOOL.
6325 Add window_closed and button_values. Add void as return value for
6326 add(Button|String|Split). addButton takes int instead of Lisp_Object.
6327 Add process_dialog as new member.
6328
63292012-08-28 Eli Zaretskii <eliz@gnu.org>
6330
6331 * ralloc.c (free_bloc): Don't dereference a 'heap' structure if it
6332 is not one of the heaps we manage. (Bug#12242)
6333
63342012-08-28 Glenn Morris <rgm@gnu.org>
6335
6336 * eval.c (Fcalled_interactively_p): Doc fix. (Bug#11747)
6337
63382012-08-28 Martin Rudalics <rudalics@gmx.at>
6339
6340 * window.c (Fset_window_configuration): Remove handling of
6341 auto-buffer-name window parameter. Install revision of reverted
6342 fix.
6343 3477
63442012-08-28 Dmitry Antipov <dmantipov@yandex.ru> 3478 Fix minor problems found by static checking.
6345 3479 * dispnew.c (save_current_matrix): Omit unnecessary casts.
6346 Do not allow to set major mode for a dead buffer. 3480 * dispnew.c (update_frame_with_menu): Mark debug local as used.
6347 * buffer.c (Fset_buffer_major_mode): Signal an error 3481 * keyboard.c, keyboard.h (Qmouse_movement): Now static.
6348 if the buffer is dead. 3482 * keyboard.c (read_menu_command): Remove unused local.
6349 (Fother_buffer, other_buffer_safely): Remove redundant 3483 * lisp.h (read_menu_command): New decl.
6350 nested declaration. 3484 * menu.c, menu.h (menu_item_width): Arg is now unsigned char *, for
6351 3485 benefit of STRING_CHAR_AND_LENGTH. All uses changed.
63522012-08-28 Dmitry Antipov <dmantipov@yandex.ru> 3486 Return ptrdiff_t, not int.
6353 3487 * term.c (tty_menu_struct): 'allocated' member is now ptrdiff_t,
6354 Always use set_buffer_if_live to restore original buffer at unwind. 3488 not int, for benefit of xpalloc.
6355 * buffer.h (record_unwind_current_buffer): New function. 3489 (tty_menu_create, tty_menu_make_room): Simplify by using xzalloc
6356 * bytecode.c, dispnew.c, editfns.c, fileio.c, fns.c, insdel.c: 3490 and xpalloc.
6357 * keyboard.c, keymap.c, minibuf.c, print.c, process.c, textprop.c: 3491 (have_menus_p): Remove; unused.
6358 * undo.c, window.c: Adjust users. 3492 (tty_menu_add_pane, tty_menu_add_selection): Change signedness of
6359 * buffer.c (set_buffer_if_live): Fix comment. 3493 local char * pointer to pacify STRING_CHAR_AND_LENGTH.
6360 3494 (tty_menu_add_selection, tty_menu_locate, tty_meny_destroy):
63612012-08-28 Dmitry Antipov <dmantipov@yandex.ru> 3495 Now static.
6362 3496 (save_and_enable_current_matrix): Omit unnecessary casts.
6363 Fix usage of set_buffer_internal. 3497 (read_menu_input): Omit local extern decl (now in lisp.h).
6364 * buffer.h (set_buffer_internal): Make it BUFFER_INLINE. 3498 Don't access uninitialized storage if mouse_get_xy fails.
6365 * buffer.c (set_buffer_if_live): Use set_buffer_internal. 3499 (tty_menu_activate): Mark local as initialized, for lint.
6366 * coding.c (decode_coding): Omit redundant test. 3500 (tty_menu_activate, tty_meny_show): Remove unused locals.
6367 * fileio.c (decide_coding_unwind): Likewise.
6368 * fns.c (secure_hash): Likewise.
6369 * insdel.c (modify_region): Likewise.
6370 * keyboard.c (command_loop_1): Likewise.
6371 * print.c (PRINTFINISH): Likewise.
6372 * xdisp.c (run_window_scroll_functions): Use set_buffer_internal.
6373
63742012-08-27 Paul Eggert <eggert@cs.ucla.edu>
6375
6376 * dispnew.c: Use bool for boolean.
6377 (frame_garbaged, display_completed, delayed_size_change)
6378 (fonts_changed_p, add_window_display_history)
6379 (add_frame_display_history, verify_row_hash)
6380 (adjust_glyph_matrix, clear_window_matrices, glyph_row_slice_p)
6381 (row_equal_p, realloc_glyph_pool)
6382 (allocate_matrices_for_frame_redisplay)
6383 (showing_window_margins_p)
6384 (adjust_frame_glyphs_for_frame_redisplay)
6385 (build_frame_matrix_from_leaf_window, make_current)
6386 (mirrored_line_dance, mirror_line_dance, update_frame)
6387 (update_window_tree, update_single_window)
6388 (check_current_matrix_flags, update_window, update_text_area)
6389 (update_window_line, set_window_update_flags, scrolling_window)
6390 (update_frame_1, scrolling, buffer_posn_from_coords)
6391 (do_pending_window_change, change_frame_size)
6392 (change_frame_size_1, sit_for):
6393 Use bool for boolean.
6394 (clear_glyph_matrix_rows): Rename from enable_glyph_matrix_rows,
6395 and remove last int (actually boolean) argument, which was always 0.
6396 All callers changed.
6397 * dispextern.h, frame.h, lisp.h: Reflect above API changes.
6398 * dispextern.h (struct composition_it): Use bool for boolean.
6399 (struct glyph_matrix): Don't assume buffer sizes can fit in 'int'.
6400 (struct bidi_it): Use unsigned:1, not int, for boolean prev_was_pdf.
6401 * dired.c (file_name_completion):
6402 Use bool for boolean. (This was missed in an earlier change.)
6403
64042012-08-27 Martin Rudalics <rudalics@gmx.at>
6405
6406 * window.c (Fset_window_configuration): Revert first part of
6407 last change.
6408
64092012-08-27 Jan Djärv <jan.h.d@swipnet.se>
6410
6411 * nsterm.h (NSPanel): New class variable dialog_return.
6412
6413 * nsmenu.m (initWithContentRect:styleMask:backing:defer:):
6414 Initialize dialog_return.
6415 (windowShouldClose:): Use stop instead of stopModalWithCode.
6416 (clicked:): Ditto, and also set dialog_return (Bug#12258).
6417 (timeout_handler:): Use stop instead of abortModal. Send a dummy
6418 event.
6419 (runDialogAt:): Make ret Lisp_Object. Set it from dialog_return when
6420 modal loop returns.
6421
64222012-08-27 Paul Eggert <eggert@cs.ucla.edu>
6423
6424 * composite.c, data.c, dbusbind.c, dired.c: Use bool for booleans.
6425 * composite.c (find_composition, composition_gstring_p)
6426 (composition_reseat_it, find_automatic_composition):
6427 * data.c (let_shadows_buffer_binding_p)
6428 (let_shadows_global_binding_p, set_internal, make_blv)
6429 (Fmake_variable_buffer_local, Fmake_local_variable)
6430 (Fmake_variable_frame_local, arithcompare, cons_to_unsigned)
6431 (cons_to_signed, arith_driver):
6432 * dbusbind.c (xd_in_read_queued_messages):
6433 * dired.c (directory_files_internal, file_name_completion):
6434 Use bool for booleans.
6435 * dired.c (file_name_completion):
6436 * process.h (fd_callback):
6437 Omit int (actually boolean) argument. It wasn't being used.
6438 All uses changed.
6439 * composite.h, lisp.h: Reflect above API changes.
6440
6441 * cmds.c, coding.c: Use bool for booleans.
6442 * cmds.c (move_point, Fself_insert_command):
6443 * coding.h (struct composition status, struct coding_system):
6444 * coding.c (detect_coding_utf_8, encode_coding_utf_8)
6445 (detect_coding_utf_16, encode_coding_utf_16, detect_coding_emacs_mule)
6446 (emacs_mule_char, decode_coding_emacs_mule)
6447 (encode_coding_emacs_mule, detect_coding_iso_2022)
6448 (decode_coding_iso_2022, encode_invocation_designation)
6449 (encode_designation_at_bol, encode_coding_iso_2022)
6450 (detect_coding_sjis, detect_coding_big5, decode_coding_sjis)
6451 (decode_coding_big5, encode_coding_sjis, encode_coding_big5)
6452 (detect_coding_ccl, encode_coding_ccl, decode_coding_raw_text)
6453 (encode_coding_raw_text, detect_coding_charset)
6454 (decode_coding_charset, encode_coding_charset, detect_eol)
6455 (detect_coding, get_translation_table, produce_chars)
6456 (consume_chars, reused_workbuf_in_use)
6457 (make_conversion_work_buffer, code_conversion_save)
6458 (decode_coding_object, encode_coding_object)
6459 (detect_coding_system, char_encodable_p)
6460 (Funencodable_char_position, code_convert_region)
6461 (code_convert_string, code_convert_string_norecord)
6462 (Fset_coding_system_priority):
6463 * fileio.c (Finsert_file_contents):
6464 Use bool for booleans.
6465 * coding.h, lisp.h: Reflect above API changes.
6466 * coding.c: Remove unnecessary static function decls.
6467 (detect_coding): Use unsigned, not signed, to copy an unsigned field.
6468 (decode_coding, encode_coding, decode_coding_gap): Return 'void',
6469 not a boolean 'int', since callers never look at the return value.
6470 (ALLOC_CONVERSION_WORK_AREA): Assume caller returns 'void', not 'int'.
6471 * coding.h (decoding_buffer_size, encoding_buffer_size)
6472 (emacs_mule_string_char): Remove unused extern decls.
6473 (struct iso_2022_spec, struct coding_system):
6474 Use 'unsigned int : 1' for boolean fields, since there's more than one.
6475 (struct emacs_mule_spec): Remove unused field 'full_support'.
6476 All initializations removed.
6477 * cmds.c (internal_self_insert): Don't assume EMACS_INT fits in 'int'.
6478
64792012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
6480
6481 Fix spare memory change (Bug#12286).
6482 * alloc.c (mark_maybe_pointer): Handle MEM_TYPE_SPARE.
6483 (valid_lisp_object_p): Likewise.
6484
64852012-08-27 Martin Rudalics <rudalics@gmx.at>
6486
6487 * window.c (Fset_window_configuration): Record any window's old
6488 buffer if it's replaced (see Bug#8789). If the new current
6489 buffer doesn't appear in the selected window, go to its old
6490 point (Bug#12208).
6491
64922012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
6493
6494 Special MEM_TYPE_SPARE to denote reserved memory.
6495 * alloc.c (enum mem_type): New memory type.
6496 (refill_memory_reserve): Use new type for spare memory.
6497 This prevents live_cons_p and live_string_p from incorrect
6498 detection of uninitialized objects from spare memory as live.
6499
65002012-08-26 Paul Eggert <eggert@cs.ucla.edu>
6501
6502 Spelling fixes.
6503 * Makefile.in (.PHONY): versioclean -> versionclean.
6504
6505 Remove unused external symbols.
6506 * data.c (Qcons, Qfloat, Qmisc, Qstring, Qvector):
6507 * window.c (Qwindow_valid_p, decode_valid_window):
6508 Now static, not extern.
6509 * data.c (Qinterval): Remove; unused.
6510 (syms_of_data): Do not define 'interval'.
6511 * lisp.h (Qinteger, Qstring, Qmisc, Qvector, Qfloat, Qcons):
6512 * window.h (decode_valid_window):
6513 Remove decls.
6514
6515 * character.c, charset.c, chartab.c: Use bool for booleans.
6516 * character.c (lisp_string_width, string_count_byte8)
6517 (string_escape_byte8):
6518 * charset.c (charset_map_loaded, load_charset_map, read_hex):
6519 (load_charset_map_from_file, map_charset_chars)
6520 (Fdefine_charset_internal, define_charset_internal)
6521 (Fdeclare_equiv_charset, find_charsets_in_text)
6522 (Ffind_charset_region, char_charset, Fiso_charset):
6523 * chartab.c (sub_char_table_ref, sub_char_table_ref_and_range)
6524 (sub_char_table_set, sub_char_table_set_range)
6525 (char_table_set_range, optimize_sub_char_table)
6526 (map_sub_char_table):
6527 Use bool for boolean.
6528 * character.c (str_to_unibyte): Omit last boolean argument; it was
6529 always 0. All callers changed.
6530 * character.h, charset.h: Adjust to match previous changes.
6531 * character.h (char_printable_p): Remove decl of nonexistent function.
6532 * charset.h (struct charset): Members code_linear_p, iso_chars_96,
6533 ascii_compatible_p, supplementary_p, compact_codes_p, unified_p
6534 are all boolean, so make them single-bit bitfields.
6535
6536 * lisp.h (ASET): Remove attempt to detect side effects.
6537 It was meant to be temporary and it often doesn't work,
6538 because when IDX has side effects the behavior of IDX==IDX
6539 is undefined. See Stefan Monnier in
6540 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00762.html>.
6541
65422012-08-26 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
6543
6544 * lisp.h (functionp): New function (extracted from Ffunctionp).
6545 (FUNCTIONP): Use it.
6546 * eval.c (Ffunctionp): Use it.
6547
65482012-08-25 Paul Eggert <eggert@cs.ucla.edu>
6549
6550 * xgselect.c (xg_select): Use auto storage for the GPollFD buffer
6551 as that's faster and simpler than static storage. Don't bother
6552 with the g_main_context_query overhead if g_main_context_pending
6553 says no events are pending.
6554 (gfds, gfds_size): Remove these static vars.
6555 (xgselect_initialize): Remove; no longer needed.
6556 All uses and decls removed.
6557
6558 * emacs.c (fatal_error_signal_hook): Remove.
6559 All uses removed. This leftover from old code was always 0.
6560
6561 * casefiddle.c, casetab.c, category.c: Use bool for boolean.
6562 * casefiddle.c (casify_object, casify_region):
6563 * casetab.c (set_case_table):
6564 * category.c, category.h (word_boundary_p):
6565 * category.h (CHAR_HAS_CATEGORY):
6566 Use bool for booleans, instead of int.
6567
65682012-08-25 Eli Zaretskii <eliz@gnu.org>
6569
6570 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on $(GNU_LIB)/execinfo.h.
6571
65722012-08-25 Paul Eggert <eggert@cs.ucla.edu>
6573
6574 On assertion failure, print backtrace if available.
6575 * alloc.c [ENABLE_CHECKING]: Include <execinfo.h>.
6576 (die) [ENABLE_CHECKING]: Print a backtrace if available.
6577 * Makefile.in (LIB_EXECINFO): New macro.
6578 (LIBES): Use it.
6579
6580 * bytecode.c, callint.c, callproc.c: Use bool for boolean.
6581 * bytecode.c (exec_byte_code):
6582 * callint.c (check_mark, Fcall_interactively):
6583 * callproc.c (Fcall_process, add_env, child_setup, getenv_internal_1)
6584 (getenv_internal, sync_process_alive, call_process_exited):
6585 * lisp.h (USE_SAFE_ALLOCA):
6586 Use bool for booleans, instead of int.
6587 * lisp.h, process.h: Adjust prototypes to match above changes.
6588 * callint.c (Fcall_interactively): Don't assume the mark's
6589 offset fits in 'int'.
6590
65912012-08-24 Paul Eggert <eggert@cs.ucla.edu>
6592
6593 * buffer.c, buffer.h: Use bool for boolean.
6594 * buffer.c (reset_buffer_local_variables)
6595 (buffer_lisp_local_variables, Fset_buffer_modified_p)
6596 (Frestore_buffer_modified_p, Fset_buffer_multibyte):
6597 (overlays_at, overlays_in, mouse_face_overlay_overlaps)
6598 (overlay_touches_p, overlay_strings, Foverlay_put)
6599 (report_overlay_modification, call_overlay_mod_hooks):
6600 (mmap_enlarge, mmap_set_vars):
6601 * buffer.h (buffer_has_overlays, uppercasep, lowercasep):
6602 Use bool for booleans, instead of int.
6603 * buffer.c (compact_buffer, mmap_free_1): Return void, not int,
6604 since the 1-or-0 return value is always ignored anyway.
6605 (mmap_initialized_p):
6606 * buffer.h (struct buffer_text.inhibit_shrinking): Now bool, not int.
6607 * buffer.h, lisp.h: Adjust prototypes to match above changes.
6608
66092012-08-23 Paul Eggert <eggert@cs.ucla.edu>
6610
6611 * bidi.c: Use bool for boolean.
6612 This is a bit more readable, and makes the text segment of bidi.o
6613 0.4% smaller on my platform (GCC 4.7.1 x86-64, Fedora 15).
6614 Presumably it's faster too.
6615 (bidi_initialized, bidi_ignore_explicit_marks_for_paragraph_level):
6616 Now bool.
6617 (bidi_cache_find_level_change, bidi_cache_iterator_state)
6618 (bidi_unshelve_cache, bidi_init_it, bidi_count_bytes)
6619 (bidi_char_at_pos, bidi_fetch_char, bidi_paragraph_init)
6620 (bidi_explicit_dir_char, bidi_level_of_next_char)
6621 (bidi_find_other_level_edge, bidi_move_to_visually_next):
6622 Use bool for booleans, instead of int.
6623 * dispextern.h (bidi_init_it, bidi_paragraph_init)
6624 (bidi_unshelve_cache): Adjust decls to match code.
6625
66262012-08-23 Martin Rudalics <rudalics@gmx.at>
6627
6628 * keyboard.c (Fposn_at_x_y): Do not allow internal window as
6629 argument.
6630
66312012-08-23 Paul Eggert <eggert@cs.ucla.edu>
6632 3501
6633 * atimer.c, atimer.h (turn_on_atimers): Use bool for boolean. 35022013-10-08 Eli Zaretskii <eliz@gnu.org>
6634 * atimer.h: Include <stdbool.h>.
6635 3503
66362012-08-22 Dan Nicolaescu <dann@gnu.org> 3504 Support menus on text-mode terminals.
3505 * xterm.h (xw_popup_dialog): Add prototype.
6637 3506
6638 * frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_NS_P): Change to 3507 * xmenu.c (Fx_popup_dialog): Function moved to menu.c.
6639 compile time tests instead of run time tests on systems that do 3508 (xmenu_show): Block input here, instead in Fx_popup_menu.
6640 not use them. 3509 (xw_popup_dialog): New function, with X-specific bits of popup
6641 (FRAME_MAC_P): Remove leftover from deleted code. 3510 dialogs.
6642 * frame.c (syms_of_frame): Remove leftover from deleted code.
6643 3511
66442012-08-22 Jan Djärv <jan.h.d@swipnet.se> 3512 * xdisp.c (deep_copy_glyph_row, display_tty_menu_item):
3513 New functions.
6645 3514
6646 * nsterm.m (insertText:): Don't clear modifiers if code is space. 3515 * window.c (Fset_window_configuration): Use run-time tests of the
3516 frame type instead of compile-time conditionals, when menu-bar
3517 lines are considered.
3518
3519 * w32term.h (w32con_hide_cursor, w32con_show_cursor)
3520 (w32_popup_dialog): New prototypes.
3521
3522 * w32menu.c (Fx_popup_dialog): Function deleted.
3523 (w32_popup_dialog): New function, with w32 specific bits of popup
3524 dialogs. Block input here.
3525
3526 * w32inevt.c (w32_console_read_socket): Minor change to add
3527 debugging TTY events.
3528
3529 * w32fns.c (show_hourglass): If returning early because the frame
3530 is not a GUI frame, unblock input.
3531
3532 * w32console.c (w32con_hide_cursor, w32con_show_cursor, cursorX)
3533 (cursorY): New functions.
3534
3535 * termhooks.h (cursorX, cursorY): Prototypes of functions on
3536 WINDOWSNT, macros that call curX and curY elsewhere.
3537
3538 * termchar.h (struct tty_display_info) <showing_menu>: New flag.
3539
3540 * term.c (tty_hide_cursor, tty_show_cursor) [WINDOWSNT]: Call w32
3541 specific function to hide and show cursor on a text-mode terminal.
3542 (tty_menu_struct, struct tty_menu_state): New structures.
3543 (tty_menu_create, tty_menu_make_room, tty_menu_search_pane)
3544 (tty_menu_calc_size, mouse_get_xy, tty_menu_display)
3545 (have_menus_p, tty_menu_add_pane, tty_menu_add_selection)
3546 (tty_menu_locate, save_and_enable_current_matrix)
3547 (restore_desired_matrix, screen_update, read_menu_input)
3548 (tty_menu_activate, tty_menu_destroy, tty_menu_help_callback)
3549 (tty_pop_down_menu, tty_menu_last_menubar_item)
3550 (tty_menu_new_item_coords, tty_menu_show): New functions.
3551 (syms_of_term): New DEFSYMs for tty-menu-* symbols.
3552
3553 * nsterm.h (ns_popup_dialog): Adjust prototype.
3554
3555 * nsmenu.m (ns_menu_show): Block and unblock input here, instead
3556 of in x-popup-menu.
3557 (ns_popup_dialog): Adapt order of arguments to the other
3558 *_menu_show implementations.
3559 (Fx_popup_dialog): Function deleted.
3560
3561 * msdos.c (x_set_menu_bar_lines): Delete unused function.
3562
3563 * menu.h (tty_menu_show, menu_item_width): Provide prototypes.
3564
3565 * menu.c (have_boxes): New function.
3566 (single_keymap_panes): Use it instead of a compile-time
3567 conditional.
3568 (single_menu_item): Use run-time tests of the frame type instead
3569 of compile-time conditionals.
3570 (encode_menu_string): New function.
3571 (list_of_items, list_of_panes): Use it instead of ENCODE_STRING
3572 the macro, since different types of frame need different encoding
3573 of menu items.
3574 (digest_single_submenu): Use run-time tests of frame type instead
3575 of, or in addition to, compile-time conditionals.
3576 (menu_item_width, Fmenu_bar_menu_at_x_y): New functions.
3577 (Fx_popup_menu): Detect when the function is called from keyboard
3578 on a TTY. Don't barf when invoked on a text-mode frame.
3579 Check frame type at run time, instead of compile-time conditionals for
3580 invoking terminal-specific menu-show functions.
3581 Call tty_menu_show on text-mode frames.
3582 (Fx_popup_dialog): Move here from xmenu.c. Test frame types at
3583 run time to determine which alternative to invoke; support dialogs
3584 on TTYs.
3585
3586 * keyboard.h <Qmouse_movement>: Declare.
3587
3588 * keyboard.c <Qmouse_movement>: Now extern.
3589 <Qecho_keystrokes>: New static variable.
3590 (read_key_sequence): Accept an additional argument, a flag to
3591 prevent redisplay during reading of the key sequence. All callers
3592 changed.
3593 (read_menu_command): New function.
3594 (read_char): When COMMANDFLAG is -2, do not redisplay and do not
3595 autosave.
3596 (toolkit_menubar_in_use): New function.
3597 (make_lispy_event): Use it instead of a compile-time test.
6647 3598
66482012-08-22 Paul Eggert <eggert@cs.ucla.edu> 3599 * fns.c (Fyes_or_no_p) [HAVE_MENUS]: Don't condition on
3600 window-system being available.
6649 3601
6650 * fontset.c (FONTSET_ADD): Return void, not Lisp_Object. 3602 * editfns.c (Fmessage_box) [HAVE_MENUS]: Don't condition the call
6651 Otherwise, the compiler complains about (A?B:C) where B is void 3603 to x-popup-dialog on the frame type, they all now support popup
6652 and C is Lisp_Object. This fixes an incompatibility with Sun C 5.12. 3604 dialogs.
6653 (fontset_add): Return void, for FONTSET_ADD.
6654 3605
66552012-08-21 Paul Eggert <eggert@cs.ucla.edu> 3606 * dispnew.c (save_current_matrix): Save the margin areas.
3607 (restore_current_matrix): Restore margin areas.
3608 (update_frame_with_menu): New function.
6656 3609
6657 * alloc.c: Use bool for booleans. 3610 * dispextern.h (display_tty_menu_item, update_frame_with_menu):
6658 (gc_in_progress, abort_on_gc) 3611 Add prototypes.
6659 (setjmp_tested_p) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
6660 (dont_register_blocks) [GC_MALLOC_CHECK]:
6661 (suppress_checking) [ENABLE_CHECKING]: Now bool, not int.
6662 (check_string_bytes, make_specified_string, memory_full)
6663 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
6664 (live_misc_p, live_vector_p, live_buffer_p, mark_maybe_object)
6665 (mark_stack, valid_pointer_p, make_pure_string)
6666 (Fgarbage_collect, survives_gc_p, gc_sweep):
6667 Use bool for booleans, instead of int.
6668 (test_setjmp) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
6669 Remove unused local.
6670 * alloc.c (PURE_POINTER_P):
6671 * lisp.h (STRING_MULTIBYTE): Document that it returns a boolean.
6672 * editfns.c (Fformat):
6673 * fileio.c (Fexpand_file_name, Fsubstitute_in_file_name)
6674 (Fdo_auto_save):
6675 * fns.c (sweep_weak_table):
6676 * lisp.h (suppress_checking, push_message, survives_gc_p)
6677 (make_pure_string, gc_in_progress, abort_on_gc):
6678 * lread.c (readchar, read1):
6679 * print.c (Fprin1_to_string):
6680 * xdisp.c (push_message):
6681 Use bool for booleans affected directly or indirectly by
6682 alloc.c's changes.
6683
6684 Make recently-introduced setters macros.
6685 * fontset.c (set_fontset_id, set_fontset_name, set_fontset_ascii)
6686 (set_fontset_base, set_fontset_frame, set_fontset_nofont_face)
6687 (set_fontset_default, set_fontset_fallback): Rename from their
6688 upper-case counterparts, and make them functions rather than macros.
6689 This is more consistent with the other recently-introduced setters.
6690 These don't need to be inline, since they're local.
6691
66922012-08-21 Jan Djärv <jan.h.d@swipnet.se>
6693
6694 * nsterm.m (fd_handler:): Alloc and release a NSAutoreleasePool in
6695 the loop (Bug#12247).
6696
66972012-08-21 Paul Eggert <eggert@cs.ucla.edu>
6698
6699 * lisp.h (vcopy): Use memcpy rather than our own loop.
6700 This fixes a performance regression introduced by the recent
6701 addition of vcopy. This means 'vcopy' will need to be modified
6702 for a copying collector, but that's OK. Also, tighten the
6703 checking in the assertion.
6704
67052012-08-21 Eli Zaretskii <eliz@gnu.org>
6706
6707 * w32uniscribe.c (uniscribe_shape): Fix producing gstring
6708 components for RTL text (Bug#11860). Adjust X-OFFSET of each
6709 non-base glyph for the width of the base character, according to
6710 what x_draw_composite_glyph_string_foreground expects.
6711 Generate WADJUST value according to composition_gstring_width's
6712 expectations, to produce correct width of the composed character.
6713 Reverse the sign of the DU offset produced by ScriptPlace.
6714
67152012-08-21 Paul Eggert <eggert@cs.ucla.edu>
6716
6717 * dbusbind.c (xd_remove_watch): Do not assume C99 comments.
6718
67192012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
6720
6721 Avoid direct writes to contents member of struct Lisp_Vector.
6722 * lisp.h (vcopy): New function to copy data into vector.
6723 * dispnew.c (Fframe_or_buffer_changed_p): Use AREF and ASET.
6724 * fns.c (Ffillarray): Use ASET.
6725 * keyboard.c (timer_check_2): Use AREF and ASET.
6726 (append_tool_bar_item, Frecent_keys): Use vcopy.
6727 * lread.c (read_vector): Use ASET.
6728 * msdos.c (Frecent_doskeys): Use vcopy.
6729 * xface.c (Finternal_copy_lisp_face): Use vcopy.
6730 (Finternal_merge_in_global_face): Use ASET and vcopy.
6731 * xfont.c (xfont_list_pattern): Likewise.
6732
67332012-08-21 Martin Rudalics <rudalics@gmx.at>
6734
6735 * window.c (Fwindow_point): For the selected window always return
6736 the position of its buffer's point.
6737 (Fset_window_point): For the selected window always go in its
6738 buffer to the specified position.
6739
67402012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
6741
6742 Setter macros for fontsets.
6743 * fontset.c (SET_FONTSET_ID, SET_FONTSET_NAME, SET_FONTSET_ASCII)
6744 (SET_FONTSET_BASE, SET_FONTSET_FRAME, SET_FONTSET_NOFONT_FACE)
6745 (SET_FONTSET_DEFAULT, SET_FONTSET_FALLBACK): New macros.
6746 Adjust users.
6747 3612
67482012-08-20 Glenn Morris <rgm@gnu.org> 3613 * alloc.c (make_save_ptr): Now compiled unconditionally.
6749 3614
6750 * Makefile.in (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)): 36152013-10-08 Dmitry Antipov <dmantipov@yandex.ru>
6751 Don't assume that `ln -f' works.
6752 3616
67532012-08-20 Eli Zaretskii <eliz@gnu.org> 3617 * dispnew.c (set_window_update_flags): Add buffer arg. Adjust comment.
3618 (redraw_frame, update_frame): Adjust users.
3619 * dispextern.h (set_window_update_flags): Adjust prototype.
3620 * xdisp.c (redisplay_internal): When updating all frames with zero
3621 windows_or_buffers_changed, assume that only the windows that shows
3622 current buffer should be really updated.
6754 3623
6755 * .gdbinit: Use "set $dummy = ..." to avoid warnings from GDB 7.5 36242013-10-08 Dmitry Antipov <dmantipov@yandex.ru>
6756 and later about non-assignments with no effect. See discussion at
6757 http://sourceware.org/ml/gdb-patches/2012-08/msg00518.html for
6758 details.
6759 3625
67602012-08-20 Dmitry Antipov <dmantipov@yandex.ru> 3626 Do not allocate huge temporary memory areas and objects while encoding
3627 for file I/O, thus reducing an enormous memory usage for large buffers.
3628 See http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00180.html.
3629 * coding.h (struct coding_system): New member raw_destination.
3630 * coding.c (setup_coding_system): Initialize it to zero.
3631 (encode_coding_object): If raw_destination is set, do not create
3632 dst_object. Add comment.
3633 * fileio.c (toplevel): New constant E_WRITE_MAX.
3634 (e_write): Do not encode more than E_WRITE_MAX characters per one loop
3635 iteration. Use raw_destination if E_WRITE_MAX characters is encoded.
6761 3636
6762 Inline setter functions for Lisp_Objects slots of struct specbinding. 36372013-10-08 Jan Djärv <jan.h.d@swipnet.se>
6763 * eval.c (set_specpdl_symbol, set_specpdl_old_value): New functions.
6764 Adjust users.
6765 3638
67662012-08-20 Martin Rudalics <rudalics@gmx.at> 3639 * nsterm.m (windowDidExitFullScreen:):
3640 (toggleFullScreen:): Change NS_IMPL_COCOA to HAVE_NATIVE_FS.
6767 3641
6768 * window.c (select_window): Always make selected window's buffer 36422013-10-08 Paul Eggert <eggert@cs.ucla.edu>
6769 current.
6770 3643
67712012-08-20 Dmitry Antipov <dmantipov@yandex.ru> 3644 Fix race where emacs aborts when sent SIGTERM (Bug#15534).
3645 * keyboard.c (unblock_input_to): Don't process pending signals
3646 if a fatal error is in progress.
6772 3647
6773 Use AREF and ASET for docstrings of category tables. 3648 * lisp.h (bits_word, BITS_WORD_MAX): New type and macro.
6774 * category.h (CATEGORY_DOCSTRING): Use AREF. 3649 All uses of 'size_t' and 'SIZE_MAX' changed to use them, when
6775 (SET_CATEGORY_DOCSTRING): Use ASET. 3650 they're talking about words in Lisp bool vectors.
6776 * category.c (Fdefine_category): Use SET_CATEGORY_DOCSTRING. 3651 (BITS_PER_BITS_WORD): Rename from BITS_PER_SIZE_T. All uses changed.
6777 3652 * data.c (popcount_bits_word): Rename from popcount_size_t.
67782012-08-20 Dmitry Antipov <dmantipov@yandex.ru> 3653 (bits_word_to_host_endian): Rename from size_t_to_host_endian.
6779
6780 Inline setter functions for hash table members.
6781 * lisp.h (set_hash_key, set_hash_value, set_hash_next)
6782 (set_hash_hash, set_hash_index): Rename with _slot suffix.
6783 (set_hash_key_and_value, set_hash_index, set_hash_next)
6784 (set_hash_hash): New functions.
6785 * charset.c, fns.c: Adjust users.
6786
67872012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
6788
6789 Inline getter and setter functions for per-buffer values.
6790 * buffer.h (per_buffer_default, set_per_buffer_default)
6791 (per_buffer_value, set_per_buffer_value): New functions.
6792 (PER_BUFFER_VALUE, PER_BUFFER_DEFAULT): Remove.
6793 * buffer.c, data.c: Adjust users.
6794
67952012-08-20 Juanma Barranquero <lekktu@gmail.com>
6796
6797 * makefile.w32-in ($(BLD)/vm-limit.$(O)): Update dependencies.
6798
67992012-08-19 Paul Eggert <eggert@cs.ucla.edu>
6800
6801 Rely on <config.h> + <unistd.h> to declare 'environ',
6802 as gnulib does this if the system doesn't.
6803 * callproc.c, editfns.c, process.c (environ) [!USE_CRT_DLL]:
6804 Remove declaration. MS-Windows declares it on stdlib.h which is
6805 included by conf_post.h.
6806 * emacs.c (environ) [DOUG_LEA_MALLOC]:
6807 * vm-limit.c (environ) [ORDINARY_LINK]: Remove decl.
6808 * vm-limit.c: Include <unistd.h>, for 'environ'.
6809
6810 * unexaix.c, unexcoff.c: Include "mem-limits.h".
6811 (start_of_data): Remove decl; mem-limits.h provides it.
6812
6813 * xdisp.c (handle_invisible_prop): Make it a bit faster
6814 and avoid a gcc -Wmaybe-uninitialized diagnostic.
6815
68162012-08-19 Chong Yidong <cyd@gnu.org>
6817
6818 * xdisp.c (handle_invisible_prop): Fix ellipses at overlay string
6819 ends (Bug#3874).
6820
68212012-08-19 Andreas Schwab <schwab@linux-m68k.org>
6822
6823 * .gdbinit: Use call instead of set when calling a function in the
6824 inferior.
6825
6826 * data.c (set_internal): Don't use set_blv_found.
6827 (Fkill_local_variable): Likewise.
6828
68292012-08-18 Alp Aker <alp.tekin.aker@gmail.com>
6830
6831 * nsfont.m (ns_ascii_average_width): Ensure the string
6832 ascii_printable is initialized with a null-terminated character
6833 array. Otherwise, it can contain undesired extra characters.
6834
68352012-08-18 Paul Eggert <eggert@cs.ucla.edu>
6836
6837 port new setting code to Sun C 5.8 2005/10/13
6838 * chartab.c, lisp.h (char_table_set, char_table_set_range):
6839 Return void, not Lisp_Object. Otherwise, the compiler
6840 complains about (A?B:C) where B is void and C is Lisp_Object
6841 when compiling CHAR_TABLE_SET, due to the recent change to
6842 the API of sub_char_table_set_contents.
6843
68442012-08-18 Chong Yidong <cyd@gnu.org>
6845
6846 * xdisp.c (handle_invisible_prop): Obey TEXT_PROP_MEANS_INVISIBLE
6847 for the string case (Bug#3874).
6848
68492012-08-18 Paul Eggert <eggert@cs.ucla.edu>
6850
6851 * buffer.h (BSET): Remove (Bug#12215).
6852 Replace all uses with calls to new setter functions.
6853 (bset_bidi_paragraph_direction, bset_case_canon_table)
6854 (bset_case_eqv_table, bset_directory, bset_display_count)
6855 (bset_display_time, bset_downcase_table)
6856 (bset_enable_multibyte_characters, bset_filename, bset_keymap)
6857 (bset_last_selected_window, bset_local_var_alist)
6858 (bset_mark_active, bset_point_before_scroll, bset_read_only)
6859 (bset_truncate_lines, bset_undo_list, bset_upcase_table)
6860 (bset_width_table):
6861 * buffer.c (bset_abbrev_mode, bset_abbrev_table)
6862 (bset_auto_fill_function, bset_auto_save_file_format)
6863 (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
6864 (bset_bidi_display_reordering, bset_buffer_file_coding_system)
6865 (bset_cache_long_line_scans, bset_case_fold_search)
6866 (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
6867 (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
6868 (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
6869 (bset_fringe_indicator_alist, bset_fringes_outside_margins)
6870 (bset_header_line_format, bset_indicate_buffer_boundaries)
6871 (bset_indicate_empty_lines, bset_invisibility_spec)
6872 (bset_left_fringe_width, bset_major_mode, bset_mark)
6873 (bset_minor_modes, bset_mode_line_format, bset_mode_name)
6874 (bset_name, bset_overwrite_mode, bset_pt_marker)
6875 (bset_right_fringe_width, bset_save_length)
6876 (bset_scroll_bar_width, bset_scroll_down_aggressively)
6877 (bset_scroll_up_aggressively, bset_selective_display)
6878 (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
6879 (bset_word_wrap, bset_zv_marker):
6880 * category.c (bset_category_table):
6881 * syntax.c (bset_syntax_table):
6882 New setter functions.
6883
6884 * process.h (PSET): Remove (Bug#12215).
6885 Replace all uses with calls to new setter functions.
6886 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
6887 (PROCESS_INLINE): New macro.
6888 (pset_childp): New setter function.
6889 (pset_gnutls_cred_type) [HAVE_GNUTLS]: New setter function.
6890 * process.c (PROCESS_INLINE):
6891 Define to EXTERN_INLINE, so that the corresponding functions
6892 are compiled into code.
6893 (pset_buffer, pset_command, pset_decode_coding_system)
6894 (pset_decoding_buf, pset_encode_coding_system)
6895 (pset_encoding_buf, pset_filter, pset_log, pset_mark, pset_name)
6896 (pset_plist, pset_sentinel, pset_status, pset_tty_name)
6897 (pset_type, pset_write_queue): New setter functions.
6898
6899 * window.h (WSET): Remove (Bug#12215).
6900 Replace all uses with calls to new setter functions.
6901 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
6902 (WINDOW_INLINE): New macro.
6903 (wset_buffer, wset_frame, wset_left_col, wset_next, wset_prev)
6904 (wset_redisplay_end_trigger, wset_top_line, wset_total_cols)
6905 (wset_total_lines, wset_vertical_scroll_bar)
6906 (wset_window_end_pos, wset_window_end_valid)
6907 (wset_window_end_vpos): New setter functions.
6908 * window.c (WINDOW_INLINE):
6909 Define to EXTERN_INLINE, so that the corresponding functions
6910 are compiled into code.
6911 (wset_combination_limit, wset_dedicated, wset_display_table)
6912 (wset_hchild, wset_left_fringe_width, wset_left_margin_cols)
6913 (wset_new_normal, wset_new_total, wset_next_buffers)
6914 (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
6915 (wset_prev_buffers, wset_right_fringe_width)
6916 (wset_right_margin_cols, wset_scroll_bar_width, wset_start)
6917 (wset_temslot, wset_vchild, wset_vertical_scroll_bar_type)
6918 (wset_window_parameters):
6919 * xdisp.c (wset_base_line_number, wset_base_line_pos)
6920 (wset_column_number_displayed, wset_region_showing):
6921 New setter functions.
6922
6923 * termhooks.h (TSET): Remove (Bug#12215).
6924 Replace all uses with calls to new setter functions.
6925 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
6926 (TERMHOOKS_INLINE): New macro.
6927 (tset_charset_list, tset_selection_alist): New setter functions.
6928 * terminal.c (TERMHOOKS_INLINE):
6929 Define to EXTERN_INLINE, so that the corresponding functions
6930 are compiled into code.
6931 (tset_param_alist): New setter function.
6932
69332012-08-17 Paul Eggert <eggert@cs.ucla.edu>
6934
6935 * keyboard.h (KSET): Remove (Bug#12215).
6936 Replace all uses with calls to new setter functions.
6937 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
6938 (KEYBOARD_INLINE): New macro.
6939 (kset_default_minibuffer_frame, kset_defining_kbd_macro)
6940 (kset_input_decode_map, kset_last_command, kset_last_kbd_macro)
6941 (kset_prefix_arg, kset_system_key_alist, kset_window_system):
6942 New setter functions.
6943 * keyboard.c (KEYBOARD_INLINE):
6944 Define to EXTERN_INLINE, so that the corresponding functions
6945 are compiled into code.
6946 (kset_echo_string, kset_kbd_queue)
6947 (kset_keyboard_translate_table, kset_last_prefix_arg)
6948 (kset_last_repeatable_command, kset_local_function_key_map)
6949 (kset_overriding_terminal_local_map, kset_real_last_command)
6950 (kset_system_key_syms): New setter functions.
6951
6952 * frame.h (FSET): Remove (Bug#12215).
6953 Replace all uses with calls to new setter functions.
6954 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
6955 (FRAME_INLINE): New macro.
6956 (fset_buffer_list, fset_buried_buffer_list, fset_condemned_scroll_bars)
6957 (fset_current_tool_bar_string, fset_desired_tool_bar_string)
6958 (fset_face_alist, fset_focus_frame, fset_icon_name, fset_menu_bar_items)
6959 (fset_menu_bar_vector, fset_menu_bar_window, fset_name)
6960 (fset_param_alist, fset_root_window, fset_scroll_bars)
6961 (fset_selected_window, fset_title, fset_tool_bar_items)
6962 (fset_tool_bar_position, fset_tool_bar_window): New functions.
6963 * frame.c (FRAME_INLINE):
6964 Define to EXTERN_INLINE, so that the corresponding functions
6965 are compiled into code.
6966 (fset_buffer_predicate, fset_minibuffer_window): New setter functions.
6967
6968 A few more naming-convention fixes for getters and setters.
6969 * buffer.c (set_buffer_overlays_before): Move here from buffer.h,
6970 and rename from buffer_overlays_set_before.
6971 (set_buffer_overlays_after): Move here from buffer.h, and rename
6972 from buffer_overlays_set_after.
6973 * buffer.h (buffer_intervals): Rename from buffer_get_intervals.
6974 All uses changed. 3654 All uses changed.
6975 (set_buffer_intervals): Rename from buffer_set_intervals.
6976 * intervals.c (set_interval_object): Move here from intervals.h,
6977 and rename from interval_set_object.
6978 (set_interval_left): Move here from intervals.h, and rename from
6979 interval_set_left.
6980 (set_interval_right): Move here from intervals.h, and rename from
6981 interval_set_right.
6982 (copy_interval_parent): Move here from intervals.h, and rename from
6983 interval_copy_parent.
6984 * intervals.h (set_interval_parent): Rename from interval_set_parent.
6985 (set_interval_plist): Rename from interval_set_plist.
6986 Return void, not Lisp_Object, since no caller uses the result.
6987 * lisp.h (string_intervals): Rename from string_get_intervals.
6988 (set_string_intervals): Rename from string_set_intervals.
6989
6990 * lisp.h (set_char_table_extras): Rename from char_table_set_extras.
6991 (set_char_table_contents): Rename from char_table_set_contents.
6992 (set_sub_char_table_contents): Rename from sub_char_table_set_contents.
6993 All uses changed. See the end of
6994 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00549.html>.
6995
6996 * lisp.h (CSET): Remove (Bug#12215).
6997 (set_char_table_ascii, set_char_table_defalt, set_char_table_parent)
6998 (set_char_table_purpose): New functions,
6999 replacing CSET. All uses changed. For example, replace
7000 "CSET (XCHAR_TABLE (char_table), parent, parent);" with
7001 "set_char_table_parent (char_table, parent);".
7002 The old version was confusing because it used the same name
7003 'parent' for two different things.
7004
70052012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
7006
7007 Functions to get and set Lisp_Object fields of buffer-local variables.
7008 * lisp.h (blv_found, set_blv_found, blv_value, set_blv_value)
7009 (set_blv_where, set_blv_defcell, set_blv_valcell): New functions.
7010 (BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): Remove.
7011 * data.c, eval.c, frame.c: Adjust users.
7012
70132012-08-17 Chong Yidong <cyd@gnu.org>
7014
7015 * xfaces.c (merge_face_vectors): If the target font specfies a
7016 font spec, make the font's attributes take precedence over
7017 directly-specified attributes.
7018 (merge_face_ref): Recognize :font.
7019
70202012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
7021
7022 Do not use memcpy for copying intervals.
7023 * intervals.c (reproduce_interval): New function.
7024 (reproduce_tree, reproduce_tree_obj): Use it.
7025 (reproduce_tree_obj): Remove prototype.
7026
70272012-08-17 Paul Eggert <eggert@cs.ucla.edu>
7028
7029 * lisp.h (duration_to_sec_usec): Remove unused decl.
7030
70312012-08-17 Alp Aker <alp.tekin.aker@gmail.com>
7032
7033 * nsfont.m (ns_ascii_average_width): Send initWithFormat selector
7034 to an allocated instance of NSString, not to the class itself.
7035
70362012-08-17 Juanma Barranquero <lekktu@gmail.com>
7037
7038 * makefile.w32-in (C_CTYPE_H): New macro.
7039 (LISP_H, $(BLD)/ccl.$(O), $(BLD)/doc.$(O), $(BLD)/w32console.$(O)):
7040 ($(BLD)/fontset.$(O), $(BLD)/frame.$(O), $(BLD)/composite.$(O)):
7041 ($(BLD)/sysdep.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
7042
70432012-08-16 Paul Eggert <eggert@cs.ucla.edu>
7044
7045 Use ASCII tests for character types.
7046 * category.c, dispnew.c, doprnt.c, editfns.c, syntax.c, term.c:
7047 * xfns.c, xterm.c:
7048 Don't include <ctype.h>; was not needed.
7049 * charset.c, doc.c, fileio.c, font.c, frame.c, gtkutil.c, image.c:
7050 * sysdep.c, xfaces.c:
7051 Include <c-ctype.h> instead of <ctype.h>.
7052 * nsterm.m: Include <c-ctype.h>.
7053 * charset.c (read_hex):
7054 * doc.c (Fsnarf_documentation):
7055 * fileio.c (IS_DRIVE) [WINDOWSNT]:
7056 (DRIVE_LETTER) [DOS_NT]:
7057 (Ffile_name_directory, Fexpand_file_name)
7058 (Fsubstitute_in_file_name):
7059 * font.c (font_parse_xlfd, font_parse_fcname):
7060 * frame.c (x_set_font_backend):
7061 * gtkutil.c (xg_get_font):
7062 * image.c (xbm_scan, xpm_scan, pbm_scan_number):
7063 * nsimage.m (hexchar):
7064 * nsterm.m (ns_xlfd_to_fontname):
7065 * sysdep.c (system_process_attributes):
7066 * xfaces.c (hash_string_case_insensitive):
7067 Use C-locale tests instead of locale-specific tests for character
7068 types, since we want the ASCII interpretation here, not the
7069 interpretation suitable for whatever happens to be the current locale.
7070
70712012-08-16 Martin Rudalics <rudalics@gmx.at>
7072
7073 Consistently check windows for validity/liveness
7074 (Bug#11984, Bug#12025, Bug#12026).
7075 * lisp.h (CHECK_VALID_WINDOW): New macro.
7076 * window.c (decode_window): Rename to decode_live_window.
7077 (decode_valid_window, Fwindow_valid_p): New functions.
7078 (Fwindow_frame, Fframe_root_window, Fwindow_minibuffer_p)
7079 (Fframe_first_window, Fframe_selected_window, Fwindow_parent)
7080 (Fwindow_top_child, Fwindow_left_child, Fwindow_next_sibling)
7081 (Fwindow_prev_sibling, Fwindow_combination_limit)
7082 (Fset_window_combination_limit, Fwindow_use_time)
7083 (Fwindow_total_height, Fwindow_total_width, Fwindow_new_total)
7084 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_left_column)
7085 (Fwindow_top_line, Fwindow_body_height, Fwindow_body_width)
7086 (Fwindow_hscroll, Fset_window_hscroll)
7087 (Fwindow_redisplay_end_trigger)
7088 (Fset_window_redisplay_end_trigger, Fwindow_edges)
7089 (Fwindow_pixel_edges, Fwindow_absolute_pixel_edges)
7090 (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
7091 (Fcoordinates_in_window_p, Fwindow_point, Fwindow_start)
7092 (Fwindow_end, Fset_window_point, Fset_window_start)
7093 (Fpos_visible_in_window_p, Fwindow_line_height)
7094 (Fwindow_dedicated_p, Fset_window_dedicated_p)
7095 (Fwindow_prev_buffers, Fset_window_prev_buffers)
7096 (Fwindow_next_buffers, Fwindow_parameters, Fwindow_parameter)
7097 (Fset_window_parameter, Fwindow_display_table)
7098 (Fset_window_display_table, Fdelete_other_windows_internal)
7099 (Fset_window_buffer, Fset_window_new_total)
7100 (Fset_window_new_normal, Fdelete_window_internal)
7101 (Fwindow_text_height, Fset_window_margins, Fwindow_margins)
7102 (Fset_window_fringes, Fwindow_fringes, Fset_window_scroll_bars)
7103 (Fwindow_scroll_bars): Check whether argument window is a valid or
7104 live window. Update doc-strings.
7105 (syms_of_window): New symbol Qwindow_valid_p.
7106 * keyboard.c (Fposn_at_x_y): Check whether argument
7107 frame_or_window denotes a valid window.
7108
71092012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
7110
7111 Fix previous char table change.
7112 * lisp.h (CHAR_TABLE_SET): Use sub_char_table_set_contents.
7113 * chartab.c (optimize_sub_char_table): Likewise.
7114
71152012-08-16 Chong Yidong <cyd@gnu.org>
7116
7117 * gtkutil.c (xg_get_font): Demand an Xft font (Bug#3228).
7118
7119 * xfont.c (xfont_open):
7120 * xftfont.c (xftfont_open): Set the font's max_width field.
7121
7122 * nsfont.m (nsfont_open): Similar to the Xft backend, set
7123 min_width to space_width and average_width to the average over
7124 printable ASCII characters.
7125 (ns_char_width): Code cleanup.
7126 (ns_ascii_average_width): New utility function.
7127
7128 * font.h (struct font): Update comments.
7129
71302012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
7131
7132 Simple interface to set Lisp_Object fields of character tables.
7133 * lisp.h (CSET): New macro.
7134 (char_table_set_extras, char_table_set_contents)
7135 (sub_char_table_set_contents): New function.
7136 * casetab.c, category.c, chartab.c, fns.c, fontset.c, search.c:
7137 * syntax.c: Adjust users.
7138 3655
71392012-08-16 Stefan Monnier <monnier@iro.umontreal.ca> 36562013-10-07 Paul Eggert <eggert@cs.ucla.edu>
7140 3657
7141 * eval.c (eval_sub): Bind lexical-binding. 3658 Improve support for popcount and counting trailing zeros (Bug#15550).
7142 * lread.c (Qlexical_binding): Make non-static. 3659 * data.c: Include <count-one-bits.h>, <count-trailing-zeros.h>.
3660 (USE_MSC_POPCOUNT, POPCOUNT_STATIC_INLINE)
3661 (NEED_GENERIC_POPCOUNT, popcount_size_t_generic)
3662 (popcount_size_t_msc, popcount_size_t_gcc):
3663 Remove; now done by Gnulib.
3664 (popcount_size_t): Now a macro that defers to Gnulib.
3665 (count_trailing_zero_bits): Return int, for consistency with
3666 Gnulib and because Emacs prefers signed to unsigned int.
3667 Don't assume that size_t is either unsigned int or unsigned long
3668 or unsigned long long.
3669 (size_t_to_host_endian): Do not assume that size_t is either
3670 exactly 32 or exactly 64 bits wide.
3671 * lisp.h (BITS_PER_SIZE_T): Define consistently with BITS_PER_LONG
3672 etc., so that it's now an enum constant, not a macro.
3673 No need to assume that it's either 32 or 64.
7143 3674
71442012-08-15 Jan Djärv <jan.h.d@swipnet.se> 36752013-10-07 Jan Djärv <jan.h.d@swipnet.se>
7145 3676
7146 * nsmenu.m (popupSession): Remove. 3677 * nsterm.m (windowDidEnterFullScreen:): setPresentationOptions only
7147 (pop_down_menu): Remove endModalSession. 3678 on >= 10.7.
7148 (timeout_handler:): New method.
7149 (runDialogAt:): Get next timeout. Start a NSTimer with that timeout.
7150 Call runModalForWindow. Check timer_fired when it returns.
7151 If not set, cancel timer and break out of loop.
7152 Otherwise loop again, with a new timeout.
7153 3679
7154 * nsterm.m: Include fcntl.h if present. 36802013-10-07 Dmitry Antipov <dmantipov@yandex.ru>
7155 (fd_entry, t_readfds, inNsSelect): Remove.
7156 (select_writefds, select_valid, select_timeout, selfds)
7157 (select_mutex, apploopnr): Add.
7158 (EV_TRAILER): Call kbd_buffer_store_event_hold only if q_event_ptr.
7159 Otherwise call kbd_buffer_store_event.
7160 (ns_send_appdefined): Remove release of fd_entry.
7161 (ns_read_socket): Always send appdefined. Remove inNsSelect check.
7162 Increment and decrement apploopnr.
7163 (ns_select): If no file descriptors, just do a NSTimer.
7164 Otherwise copy read/write masks and start select thread (fd_handler).
7165 Start main loop and wait for application defined event.
7166 Inform select thread to stop selecting after main loop is exited.
7167 (ns_term_init): Create selfds pipe and set non-blocking.
7168 Initialize select_mutex. Start the select thread (fd_handler).
7169 (fd_handler:): Loop forever, wait for info from the main thread
7170 to either start or stop selecting. When select returns, send
7171 and appdefined event.
7172 (sendScrollEventAtLoc:fromEvent:): Check if q_event_ptr is set.
7173 If not call kbd_buffer_store_event.
7174 3681
7175 * nsterm.h (EmacsApp): fd_handler takes id argument. 3682 * insdel.c (insert_from_gap): Prefer ptrdiff_t to int where needed.
7176 (EmacsDialogPanel): Add timer_fired and timeout_handler. 3683 * xdisp.c (handle_fontified_prop): Likewise. Use bool for boolean.
7177 3684
7178 * gtkutil.c (xg_mark_data): Use FRAME_X_P. 36852013-10-07 Paul Eggert <eggert@cs.ucla.edu>
7179 3686
71802012-08-15 Eli Zaretskii <eliz@gnu.org> 3687 emacs_read and emacs_write now use void *, not char *.
3688 * alloc.c (valid_pointer_p) [!WINDOWSNT]: Remove now-unnecessary cast.
3689 * sysdep.c (emacs_read, emacs_write, emacs_write_sig):
3690 Buffer arg is now void *, not char *. This matches plain
3691 'read' and 'write' better, and avoids a constraint violation
3692 on Solaris 9 with Oracle Studio.
7181 3693
7182 * region-cache.c (move_cache_gap): Update gap_len using the actual 36942013-10-07 Dmitry Antipov <dmantipov@yandex.ru>
7183 growth of the boundaries array. Do not change cache_len.
7184 (Bug#12196)
7185 3695
71862012-08-15 Dmitry Antipov <dmantipov@yandex.ru> 3696 * alloc.c (Fmake_string): For ASCII char initializer, prefer
3697 memset to explicit loop. Otherwise copy largest possible chunk
3698 from initialized to uninitialized part, thus allowing the longer
3699 memcpy runs and reducing the number of loop iterations.
7187 3700
7188 Generalize and cleanup font subsystem checks. 37012013-10-06 Jan Djärv <jan.h.d@swipnet.se>
7189 * font.h (FONT_DEBUG, font_assert): Remove.
7190 * font.c, fontset.c, w32font.c, xfont.c, xftfont.c:
7191 Change font_assert to eassert. Use eassert where appropriate.
7192 3702
71932012-08-15 Dmitry Antipov <dmantipov@yandex.ru> 3703 * nsterm.m (ns_update_begin): If native fullscreen and no toolbar,
3704 hide toolbar (Bug#15388).
3705 (windowDidEnterFullScreen:): If presentation options are zero,
3706 set them here (Bug#15388).
3707 (ns_update_auto_hide_menu_bar): Remove runtime check.
3708 Don't auto hide dock unless menubar is also auto hidden.
7194 3709
7195 * gtkutil.c (xg_get_font): Use pango_units_to_double. 37102013-10-05 Xue Fuqiao <xfq.free@gmail.com>
7196 3711
71972012-08-15 Chong Yidong <cyd@gnu.org> 3712 * editfns.c (message): Mention batch mode in doc string.
7198 3713
7199 * gtkutil.c (xg_get_font): Rename from xg_get_font_name. 37142013-10-05 Jan Djärv <jan.h.d@swipnet.se>
7200 When using the new font chooser, use gtk_font_chooser_get_font_desc to
7201 extract the font descriptor instead of just the font name.
7202 In that case, return a font spec instead of a string.
7203 (x_last_font_name): Move to this file from xfns.c.
7204 3715
7205 * xfns.c (Fx_select_font): The return value can also be a font 3716 * nsterm.m (check_native_fs): Remove erroneous comment.
7206 spec. Move x_last_font_name management to gtkutil.c.
7207 3717
7208 * xfaces.c: Make font weight and style symbols non-static. 37182013-10-04 Dmitry Antipov <dmantipov@yandex.ru>
7209 3719
72102012-08-15 Stefan Monnier <monnier@iro.umontreal.ca> 3720 * xdisp.c (redisplay_internal): Simplify because scan_for_column now
3721 uses find_newline instead of scan_newline and so doesn't move point.
7211 3722
7212 * minibuf.c (read_minibuf): Ignore caller's inhibit-read-only 37232013-10-04 Paul Eggert <eggert@cs.ucla.edu>
7213 (bug#12117).
7214 3724
72152012-08-14 Stefan Monnier <monnier@iro.umontreal.ca> 3725 Use hardware support for byteswapping on glibc x86 etc.
3726 On Fedora 19 x86-64, the new bswap_64 needs 1 instruction,
3727 whereas the old swap64 needed 30.
3728 * fringe.c (init_fringe_bitmap) [WORDS_BIGENDIAN]:
3729 * sound.c (le2hl, le2hs, be2hl) [!WINDOWSNT]:
3730 Use byteswap.h's macros to swap bytes.
3731 * lisp.h (swap16, swap32, swap64): Remove.
3732 All uses replaced by bswap_16, bswap_32, bswap_64.
7216 3733
7217 * alloc.c (Fgarbage_collect): Use plural form consistently. 3734 * bytecode.c (exec_byte_code): Use some more volatile variables
3735 to work around local variables getting clobbered by longjmp.
3736 Port to pre-C99, which doesn't allow decls after stmts.
7218 3737
72192012-08-14 Eli Zaretskii <eliz@gnu.org> 37382013-10-03 Paul Eggert <eggert@cs.ucla.edu>
7220 3739
7221 * keyboard.c (command_loop_1): Reset ignore_mouse_drag_p flag each 3740 * lisp.h (eassert): Assume that COND is true when optimizing.
7222 iteration through the command loop. Fixes a problem whereby mouse 3741 In other words, take on the behavior of eassert_and_assume.
7223 movements are ignored until the first mouse click. 3742 This makes Emacs 0.2% smaller on my platform (Fedora 19, x86-64).
3743 (eassert_and_assume): Remove. All uses replaced by eassert.
7224 3744
72252012-08-14 Paul Eggert <eggert@cs.ucla.edu> 3745 * xdisp.c (Qglyphless_char): Now static.
7226 3746
7227 Use bool, not int, for Lisp booleans. 3747 Adjust to merge from gnulib.
7228 This is more natural, and on my platform (GCC 4.7.1 x86-64) it 3748 * conf_post.h (__has_builtin, assume): Remove; gnulib now does these.
7229 makes Emacs a bit smaller and presumably a bit faster. 3749 * lisp.h: Include <verify.h>, for 'assume'.
7230 * lisp.h: Include <stdbool.h>.
7231 (struct Lisp_Boolfwd, defvar_bool):
7232 * lread.c (defvar_bool): Use bool, not int, for Lisp booleans.
7233 * regex.c [!emacs]: Include <stdbool.h>.
7234 (false, true): Remove; <stdbool.h> does this for us now.
7235 3750
72362012-08-14 Chong Yidong <cyd@gnu.org> 3751 * eval.c (clobbered_eassert): New macro.
3752 (internal_catch, internal_condition_case)
3753 (internal_condition_case_1, internal_condition_case_2)
3754 (internal_condition_case_n): Use it instead of eassert
3755 when the argument contains locals clobbered by longjmp.
3756 Don't use clobbered locals outside of clobbered_eassert.
3757 (internal_lisp_condition_case): Use a volatile variable
3758 to work around a local variable's getting clobbered.
7237 3759
7238 * character.c (Fcharacterp): Doc fix (Bug#12076). 37602013-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
7239 3761
7240 * data.c (Findirect_variable): Doc fix (Bug#11040). 3762 * lisp.h (struct handler): Merge struct handler and struct catchtag.
3763 (PUSH_HANDLER): New macro.
3764 (catchlist): Remove.
3765 (handlerlist): Always declare.
7241 3766
7242 * chartab.c (Fmap_char_table): Doc fix (Bug#12061). 3767 * eval.c (catchlist): Remove (merge with handlerlist).
7243 3768 (handlerlist, lisp_eval_depth): Not static any more.
7244 * editfns.c (Fformat): Doc fix (Bug#12059). 3769 (internal_catch, internal_condition_case, internal_condition_case_1)
7245 (Fsave_current_buffer): Doc fix (Bug#11542). 3770 (internal_condition_case_2, internal_condition_case_n):
3771 Use PUSH_HANDLER.
3772 (unwind_to_catch, Fthrow, Fsignal): Adjust to merged
3773 handlerlist/catchlist.
3774 (internal_lisp_condition_case): Use PUSH_HANDLER. Adjust to new
3775 handlerlist which can only handle a single condition-case handler at
3776 a time.
3777 (find_handler_clause): Simplify since we only a single branch here
3778 any more.
7246 3779
72472012-08-14 Barry OReilly <gundaetiapo@gmail.com> (tiny change) 3780 * bytecode.c (BYTE_CODES): Add Bpushcatch, Bpushconditioncase
3781 and Bpophandler.
3782 (bcall0): New function.
3783 (exec_byte_code): Add corresponding cases. Improve error message when
3784 encountering an invalid byte-code. Let Bunwind_protect accept
3785 a function (rather than a list of expressions) as argument.
7248 3786
7249 * keyboard.c (access_keymap_keyremap): Accept anonymous functions 3787 * alloc.c (Fgarbage_collect): Merge scans of handlerlist and catchlist,
7250 (bug#12022). 3788 and make them unconditional now that they're heap-allocated.
7251 3789
72522012-08-14 Martin Rudalics <rudalics@gmx.at> 37902013-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
7253 3791
7254 * frame.c (make_frame_without_minibuffer, make_minibuffer_frame) 3792 * charset.c (Fdecode_char, Fencode_char): Remove description of
7255 (delete_frame, Fmake_frame_invisible, Ficonify_frame): 3793 `restriction' arg. now that it's hidden by advertised-calling-convention.
7256 * minibuf.c (choose_minibuf_frame, read_minibuf):
7257 * w32fns.c (x_create_tip_frame):
7258 * xfns.c (x_create_tip_frame): Call set_window_buffer instead of
7259 Fset_window_buffer (Bug#11984, Bug#12025, Bug#12026).
7260 3794
72612012-08-14 Paul Eggert <eggert@cs.ucla.edu> 37952013-10-02 Jan Djärv <jan.h.d@swipnet.se>
7262 3796
7263 * intervals.c (offset_intervals): Remove obsolete comment. 3797 * macfont.m (mac_ctfont_create_preferred_family_for_attributes):
3798 Remove unused variable (from mac-port).
3799 (macfont_draw): Use s->ybase for correct y position.
7264 3800
72652012-08-14 Andreas Schwab <schwab@linux-m68k.org> 38012013-10-02 Dmitry Antipov <dmantipov@yandex.ru>
7266 3802
7267 * gtkutil.c (find_rtl_image, update_frame_tool_bar): Use NILP. 3803 * frame.h (struct frame): Drop has_minibuffer member because...
3804 (FRAME_HAS_MINIBUF_P): ...this macro can be implemented without it.
3805 * frame.c (make_frame, make_minibuffer_frame): Adjust users.
7268 3806
72692012-08-14 Gergely Risko <gergely@risko.hu> 38072013-10-02 Dmitry Antipov <dmantipov@yandex.ru>
7270 3808
7271 * coding.c (decode_coding): Record buffer modification before 3809 * window.h (struct window): Prefer enum text_cursor_kinds to int
7272 disabling undo_list (Bug#11773). 3810 for phys_cursor_type member. Move the latter, phys_cursor_width,
3811 phys_cursor_ascent and phys_cursor_height under HAVE_WINDOW_SYSTEM.
3812 * window.c (replace_window, make_window): Adjust users.
7273 3813
72742012-08-14 Dmitry Antipov <dmantipov@yandex.ru> 38142013-10-02 Dmitry Antipov <dmantipov@yandex.ru>
7275 3815
7276 Revert and cleanup some recent overlay changes. 3816 * fringe.c (toplevel): Do not use HAVE_WINDOW_SYSTEM because
7277 * buffer.h (enum overlay_type): Remove. 3817 this module is never compiled otherwise.
7278 (buffer_get_overlays, buffer_set_overlays): Likewise.
7279 (buffer_set_overlays_before, buffer_set_overlays_after):
7280 New function. Adjust users.
7281 (unchain_both): Add eassert.
7282 3818
72832012-08-14 Dmitry Antipov <dmantipov@yandex.ru> 38192013-10-01 Alp Aker <alp.tekin.aker@gmail.com>
7284 3820
7285 * gtkutil.c (update_frame_tool_bar): Use EQ where appropriate. 3821 * macfont.m (macfont_draw): Use CGRectMake rather than NSMakeRect
3822 (Bug#15500).
7286 3823
72872012-08-14 Paul Eggert <eggert@cs.ucla.edu> 38242013-09-29 Eli Zaretskii <eliz@gnu.org>
7288 3825
7289 * gtkutil.c (xg_mark_data): Don't assume C99. 3826 * xdisp.c (get_next_display_element): Don't call face_for_font in
3827 a build configured --without-x. (Bug#15484)
7290 3828
72912012-08-13 Jan Djärv <jan.h.d@swipnet.se> 38292013-09-29 Jan Djärv <jan.h.d@swipnet.se>
7292 3830
7293 * gtkutil.c (xg_frame_tb_info): New struct. 3831 * window.c (calc_absolute_offset): #elif should be #elif defined.
7294 (TB_INFO_KEY): New define.
7295 (xg_free_frame_widgets): Free xg_frame_tb_info for frame if present.
7296 (xg_mark_data): Mark Lisp_Objects in xg_frame_tb_info.
7297 (xg_create_tool_bar): Allocate and initialize a xg_frame_tb_info
7298 if not present.
7299 (update_frame_tool_bar): Return early if data in xg_frame_tb_info
7300 is up to date. Otherwise store new data.
7301 (free_frame_tool_bar): Free xg_frame_tb_info if present.
7302 3832
73032012-08-13 Dmitry Antipov <dmantipov@yandex.ru> 3833 * frame.c (delete_frame): Block/unblock input to overcome race
3834 condition (Bug#15475).
7304 3835
7305 Use KSET for write access to Lisp_Object members of struct kboard. 38362013-09-29 Andreas Politz <politza@hochschule-trier.de> (tiny change)
7306 * keyboard.h (KSET): New macro.
7307 * callint.c, category.c, frame.c, keyboard.c, keyboard.h, macros.c:
7308 * msdos.c, nsfns.m, nsterm.m, term.c, w32fns.c, w32term.c, xfns.c:
7309 * xterm.c: Adjust users.
7310 3837
73112012-08-13 Dmitry Antipov <dmantipov@yandex.ru> 3838 * frame.c (delete_frame): Record selected frame only after
3839 calling Qdelete_frame_functions (Bug#15477).
7312 3840
7313 Use BSET for write access to Lisp_Object members of struct buffer. 38412013-09-28 Jan Djärv <jan.h.d@swipnet.se>
7314 * buffer.h (BSET): New macro.
7315 * buffer.c, casetab.c, cmds.c, coding.c, data.c, editfns.c:
7316 * fileio.c, frame.c, indent.c, insdel.c, intervals.c, keymap.c:
7317 * minibuf.c, print.c, process.c, syntax.c, undo.c, w32fns.c:
7318 * window.c, xdisp.c, xfns.c: Adjust users.
7319 3842
73202012-08-11 BT Templeton <bpt@hcoop.net> (tiny change) 3843 * nsterm.m (ns_selection_color): Remove.
3844 (ns_get_color): Check for ns_selection_(fg|bg)_color using
3845 NSColor selectedText(Background)Color. Only for COCOA.
3846 (ns_term_init): Remove assignment of ns_selection_color, logic
3847 moved to ns_get_color.
7321 3848
7322 * lread.c (syms_of_lread): Initialize Vlexical_binding. 3849 * nsterm.h (NS_SELECTION_BG_COLOR_DEFAULT): Rename from
3850 NS_SELECTION_COLOR_DEFAULT.
3851 (NS_SELECTION_FG_COLOR_DEFAULT): New.
7323 3852
73242012-08-11 Jan Djärv <jan.h.d@swipnet.se> 38532013-09-28 Eli Zaretskii <eliz@gnu.org>
7325 3854
7326 * nsterm.m (not_in_argv): New function. 3855 * xdisp.c (Fdump_tool_bar_row): Ifdef away the body if 'struct
7327 (application:openFile, application:openTempFile:): 3856 frame' does not have the tool_bar_window member.
7328 (application:openFileWithoutUI:, application:openFiles:): Open file
7329 if not_in_argv returns non-zero (bug#12171).
7330 3857
7331 * gtkutil.c (gtk_font_chooser_dialog_new, GTK_FONT_CHOOSER) 38582013-09-26 Barry O'Reilly <gundaetiapo@gmail.com>
7332 (gtk_font_chooser_set_font, gtk_font_chooser_get_font):
7333 Define for Gtk+ versions less than 3.2.
7334 (xg_get_font_name): Use those functions/macros here.
7335 Reported by Frans Oilinki <moilinki@gmail.com>.
7336 3859
73372012-08-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 3860 Signal error when reading an empty byte-code object (Bug#15405)
3861 * lread.c (read1): Signal error.
3862 * alloc.c (make_byte_code): eassert header size.
3863 (sweep_vectors): Change an int to size_t.
7338 3864
7339 * unexmacosx.c (copy_data_segment): Copy initialized data in 38652013-09-24 Paul Eggert <eggert@cs.ucla.edu>
7340 statically linked libraries from input file rather than memory.
7341 3866
7342 * unexmacosx.c (print_load_command_name): Add cases LC_MAIN, 3867 * dispnew.c (clear_glyph_row, copy_row_except_pointers): Use enums
7343 LC_SOURCE_VERSION, and LC_DYLIB_CODE_SIGN_DRS. 3868 instead of ints, as it's the usual style for offsetof constants. See:
7344 (dump_it) [LC_DYLIB_CODE_SIGN_DRS]: Call copy_linkedit_data. 3869 http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00478.html
7345 3870
73462012-08-10 Glenn Morris <rgm@gnu.org> 3871 * data.c (POPCOUNT_STATIC_INLINE): New macro, as a hack for popcount.
3872 This is ugly, but it should fix the performance problem for older
3873 GCC versions in the short run. I'll look into integrating the
3874 Gnulib module for popcount, as a better fix.
3875 See the thread starting in:
3876 http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00474.html
3877 (popcount_size_t_generic) [NEED_GENERIC_POPCOUNT]:
3878 (popcount_size_t_msc) [USE_MSC_POPCOUNT]:
3879 (popcount_size_t_gcc) [USE_GCC_POPCOUNT]:
3880 (popcount_size_t): Use it.
7347 3881
7348 * conf_post.h (IF_LINT, lint_assume): Move here from lisp.h. 38822013-09-24 Daniel Colascione <dancol@dancol.org>
7349 * lisp.h (IF_LINT, lint_assume): Move to conf_post.h.
7350 3883
73512012-08-10 Dmitry Antipov <dmantipov@yandex.ru> 3884 * process.c (Fnetwork_interface_info): Fix build break due to
3885 vector changes.
7352 3886
7353 Fix last change to allow compilation with low optimization levels. 38872013-09-24 Paul Eggert <eggert@cs.ucla.edu>
7354 * intervals.c (INTERVALS_INLINE): Define to EXTERN_INLINE.
7355 Reported by Jan Djärv <jan.h.d@swipnet.se>.
7356 3888
73572012-08-10 Dmitry Antipov <dmantipov@yandex.ru> 3889 * dispnew.c (clear_glyph_row, copy_row_except_pointers):
3890 Prefer signed to unsigned integers where either will do.
3891 No need for 'const' on locals that do not escape.
3892 Omit easserts with unnecessary and unportable assumptions about
3893 alignment. Avoid unnecessary casts to char *.
7358 3894
7359 Use common inline syntax in intervals.h. 38952013-09-24 Dmitry Antipov <dmantipov@yandex.ru>
7360 * intervals.h (INTERVALS_INLINE): New macro.
7361 Change all users from LISP_INLINE.
7362 3896
73632012-08-10 Dmitry Antipov <dmantipov@yandex.ru> 3897 Use union for the payload of struct Lisp_Vector.
3898 This helps to avoid a few glitches dictated by C's aliasing rules.
3899 * lisp.h (struct Lisp_Vector): Use union for next and
3900 contents member. Adjust comment. Change related users.
3901 * alloc.c (next_in_free_list, set_next_in_free_list): Remove.
3902 Related users changed.
3903 * buffer.c, bytecode.c, ccl.c, character.h, chartab.c, composite.c:
3904 * composite.h, disptab.h, fns.c, fontset.c, indent.c, keyboard.c:
3905 * lread.c, msdos.c, process.c, w32menu.c, window.c, xdisp.c:
3906 * xfaces.c, xfont.c, xmenu.c: Related users changed.
7364 3907
7365 Define Qnone once for all platforms. 39082013-09-24 Dmitry Antipov <dmantipov@yandex.ru>
7366 * frame.c (Qnone): Define here.
7367 (syms_of_frame): DEFSYM it.
7368 * lisp.h (Qnone): New declaration.
7369 * nsfns.m, nsterm.h, nsterm.m, w32fns.c, w32font.c:
7370 * xfns.c: Remove duplication. Adjust users.
7371 3909
73722012-08-10 Dmitry Antipov <dmantipov@yandex.ru> 3910 Optimize glyph row clearing and copying routines.
3911 * dispextern.h (struct glyph_row): Change layout of struct
3912 glyph_row to help copy_row_except_pointers. Adjust comment.
3913 * dispnew.c (null_row): Remove.
3914 (clear_glyph_row): Use offsetof and memset to find and clear
3915 just the members that need clearing. Adjust comment.
3916 (copy_row_except_pointers): Likewise for copying.
7373 3917
7374 Remove unused macros from intervals.h. 39182013-09-24 Paul Eggert <eggert@cs.ucla.edu>
7375 * intervals.h (MERGE_INSERTIONS, DISPLAY_INVISIBLE_GLYPH): Remove.
7376 * intervals.c: Adjust comment.
7377 3919
73782012-08-10 Eli Zaretskii <eliz@gnu.org> 3920 Some minor cleanups of recently-added bool vector code.
7379 3921 * conf_post.h (assume): Always return void. Use lint version
7380 * w32fns.c <w32_unicode_gui>: New static variable. 3922 only if GCC and MSC versions don't apply.
7381 (globals_of_w32fns): Initialize it according to os_subtype. 3923 * conf_post.h (assume):
7382 (w32_init_class, w32_msg_pump, w32_wnd_proc): Use it instead of 3924 * data.c (USC_MSC_POPCOUNT, count_trailing_zero_bits):
7383 testing os_subtype. 3925 Depend on _MSC_VER, not __MSC_VER, for consistency with
3926 the rest of Emacs.
3927 * data.c (bool_vector_spare_mask, popcount_size_t_generic)
3928 (popcount_size_t_msc, popcount_size_t_gcc, popcount_size_t)
3929 (bool_vector_binop_driver, count_trailing_zero_bits)
3930 (size_t_to_host_endian): Now static, not static inline;
3931 the latter isn't needed with modern compilers and doesn't
3932 work with older compilers anyway.
3933
3934 * alloc.c (valgrind_p): Use bool for boolean.
3935
39362013-09-23 Dmitry Antipov <dmantipov@yandex.ru>
3937
3938 * xdisp.c (noninteractive_need_newline, message_log_need_newline)
3939 (overlay_arrow_seen, message_enable_multibyte, line_number_displayed)
3940 (display_last_displayed_message_p, message_buf_print)
3941 (message_cleared_p, help_echo_showing_p, hourglass_shown_p):
3942 Use bool for boolean.
3943 * dispextern.h (cancel_line, init_desired_glyphs):
3944 Remove ancient leftover.
3945 (help_echo_showing_p, hourglass_shown_p):
3946 * lisp.h (noninteractive_need_newline): Adjust declaration.
3947
39482013-09-23 Dmitry Antipov <dmantipov@yandex.ru>
3949
3950 * dispnew.c (frame_garbaged, selected_frame, last_nonminibuf_frame):
3951 Move to...
3952 * frame.c (frame_garbaged, selected_frame, last_nonminibuf_frame):
3953 ...this file and convert the latter to static. Adjust comment.
3954 (make_initial_frame):
3955 * window.c (init_window_once): Adjust user.
3956 * frame.h (last_nonminibuf_frame): Remove declaration.
3957 * lisp.h (selected_frame): Likewise.
3958 * msdos.c (the_only_display_info): Adjust comment.
3959
39602013-09-23 Eli Zaretskii <eliz@gnu.org>
3961
3962 * xdisp.c (mouse_face_from_string_pos): Fix off-by-one error in
3963 computing the end column of mouse-highlight that comes from
3964 display or overlay strings. (Bug#15437)
3965 (note_mouse_highlight): Adapt calculation of last argument to
3966 mouse_face_from_string_pos to the above change.
3967
3968 * conf_post.h (__has_builtin): Define to zero, if undefined, on
3969 all platforms, not just for clang.
3970
39712013-09-23 Jan Djärv <jan.h.d@swipnet.se>
3972
3973 * filelock.c (lock_file_1): Rearrange to remove compiler warning
3974 about excess arguments to snprintf.
3975
3976 * conf_post.h(assume): Use __builtin_unreachable for clang.
3977
39782013-09-23 Juanma Barranquero <lekktu@gmail.com>
3979
3980 * w32console.c (initialize_w32_display): Remove unused variable hlinfo.
3981 * w32term.c (w32_scroll_bar_handle_click): Remove unused variable f.
3982
39832013-09-23 Daniel Colascione <dancol@dancol.org>
3984
3985 * alloc.c (USE_VALGRIND): New macro; on by default
3986 when ENABLE_CHECKING.
3987 (mark_maybe_object, mark_maybe_pointer)
3988 [USE_VALGRIND]: Mark conservatively-scanned regions valid for
3989 valgrind purposes.
3990 (valgrind_p) [USE_VALGRIND]: New variable.
3991 (init_alloc) [USE_VALGRIND]: Initialize valgrind_p.
3992
39932013-09-22 Jan Djärv <jan.h.d@swipnet.se>
3994
3995 * process.c (wait_reading_process_output): Change int pnamelen to
3996 socklen_t.
3997
3998 * nsterm.m (setMarkedText:selectedRange:):
3999 (deleteWorkingText):
4000 * nsmenu.m (addDisplayItemWithImage:idx:tag:helpText:enabled:):
4001 * nsfont.m (ns_get_covering_families, ns_findfonts): Cast NSLog
4002 argument to unsigned long to avoid warning.
4003 (nsfont_draw): Use 0.25 instead of Fix2X (kATSItalicQDSkew).
4004
4005 * conf_post.h (assume): Fix compiler error: x shall be cond.
4006
40072013-09-22 Daniel Colascione <dancol@dancol.org>
4008
4009 * xfns.c (x_get_monitor_attributes): Suppress unused variable
4010 warning when compiling without a window system.
4011
40122013-09-22 Daniel Colascione <dancol@dancol.org>
4013
4014 * data.c (Qbool_vector_p): New symbol.
4015 (bool_vector_spare_mask, popcount_size_t_generic)
4016 (popcount_size_t_msc, popcount_size_t_gcc)
4017 (popcount_size_t)
4018 (bool_vector_binop_driver)
4019 (count_trailing_zero_bits, size_t_to_host_endian)
4020 (Fbool_vector_exclusive_or)
4021 (Fbool_vector_union)
4022 (Fbool_vector_intersection, Fbool_vector_set_difference)
4023 (Fbool_vector_subsetp, Fbool_vector_not)
4024 (Fbool_vector_count_matches)
4025 (Fbool_vector_count_matches_at): New functions.
4026 (syms_of_data): Intern new symbol, functions.
4027 * alloc.c (bool_vector_payload_bytes): New function.
4028 (Fmake_bool_vector): Instead of calling Fmake_vector,
4029 which performs redundant initialization and argument checking,
4030 just call allocate_vector ourselves. Make sure we clear any
4031 terminating padding to zero.
4032 (vector_nbytes, sweep_vectors): Use bool_vector_payload_bytes
4033 instead of open-coding the size calculation.
4034 (vroundup_ct): New macro.
4035 (vroundup): Assume argument >= 0; invoke vroundup_ct.
4036 * casetab.c (shuffle, set_identity): Change lint_assume to assume.
4037 * composite.c (composition_gstring_put_cache):
4038 Change lint_assume to assume.
4039 * conf_post.h (assume): New macro.
4040 (lint_assume): Remove.
4041 * dispnew.c (update_frame_1): Change lint_assume to assume.
4042 * ftfont.c (ftfont_shape_by_flt): Change lint_assume
4043 to assume.
4044 * image.c (gif_load): Change lint_assume to assume.
4045 * lisp.h (eassert_and_assume): New macro.
4046 (Qbool_vector_p): Declare.
4047 (CHECK_BOOL_VECTOR, ROUNDUP, BITS_PER_SIZE_T): New macros.
4048 (swap16, swap32, swap64): New inline functions.
4049 * macfont.m (macfont_shape): Change lint_assume to assume.
4050 * ralloc.c: Rename ROUNDUP to PAGE_ROUNDUP throughout.
4051 * xsettings.c (parse_settings): Use new swap16 and
4052 swap32 from lisp.h instead of file-specific macros.
4053
40542013-09-22 Eli Zaretskii <eliz@gnu.org>
4055
4056 * xdisp.c (try_window_id): Don't abort if cursor row could not be
4057 found (which can legitimately happen when the glyph row at the
4058 window start is disabled in the current_matrix. (Bug#15365)
4059
40602013-09-22 Paul Eggert <eggert@cs.ucla.edu>
4061
4062 Fix syntax.h bug introduced by recent INLINE change.
4063 syntax.h defined an extern inline function SYNTAX_ENTRY that was
4064 conditionally compiled one way in some modules, and a different
4065 way in others. This doesn't work with extern inline functions,
4066 which must have the same definition in all modules, because the
4067 defining code might be shared across modules, depending on the
4068 implementation. Symptoms reported by Martin Rudalics in:
4069 http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00414.html
4070 * regex.c, syntax.c (SYNTAX_ENTRY_VIA_PROPERTY): Remove.
4071 (SYNTAX, SYNTAX_ENTRY, SYNTAX_WITH_FLAGS): New macros,
4072 overriding the corresponding functions in syntax.h.
4073 * syntax.h (syntax_property_entry, syntax_property_with_flags)
4074 (syntax_property): New inline functions.
4075 (SYNTAX_ENTRY, SYNTAX_WITH_FLAGS, SYNTAX):
4076 Rewrite in terms of these new functions.
4077
40782013-09-21 Eli Zaretskii <eliz@gnu.org>
4079
4080 * dired.c (directory_files_internal): Use multibyte_chars_in_text,
4081 not chars_in_text, whose result depends on the multibyteness of
4082 the current buffer. (Bug#15426)
4083
40842013-09-20 Paul Eggert <eggert@cs.ucla.edu>
4085
4086 Port recent change to hosts where pointers aren't 'long'.
4087 * xterm.c (x_send_scroll_bar_event, x_scroll_bar_to_input_event):
4088 Don't assume that pointers are the same width as 'long'.
4089 Add a compile-time check that a pointer fits into two X slots.
4090
4091 A simpler, centralized INLINE.
4092 * conf_post.h (INLINE): Define only if not already defined.
4093 This allows us to use a single INLINE, defined by one file
4094 per executable.
4095 * emacs.c (INLINE): Define it.
4096 Also, include category.h, charset.h, composite.h, dispextern.h,
4097 syntax.h, systime.h, so that their INLINE definitions are expanded
4098 properly for Emacs.
4099 * blockinput.h, keyboard.c (BLOCKINPUT_INLINE):
4100 * buffer.h, buffer.c (BUFFER_INLINE):
4101 * category.h, category.c (CATEGORY_INLINE):
4102 * character.h, character.c (CHARACTER_INLINE):
4103 * charset.h, charset.c (CHARSET_INLINE):
4104 * composite.h, composite.c (COMPOSITE_INLINE):
4105 * dispextern.h, dispnew.c (DISPEXTERN_INLINE):
4106 * frame.h, frame.c (FRAME_INLINE):
4107 * intervals.h, intervals.c (INTERVALS_INLINE):
4108 * keyboard.h, keyboard.c (KEYBOARD_INLINE):
4109 * lisp.h, alloc.c (LISP_INLINE):
4110 * process.h, process.c (PROCESS_INLINE):
4111 * syntax.h, syntax.c (SYNTAX_INLINE):
4112 * systime.h, sysdep.c (SYSTIME_INLINE):
4113 * termhooks.h, terminal.c (TERMHOOKS_INLINE):
4114 * window.h, window.c (WINDOW_INLINE):
4115 Remove. All uses replaced with INLINE.
4116
41172013-09-20 Dmitry Antipov <dmantipov@yandex.ru>
4118
4119 * xterm.c (handle_one_xevent): Revert part of 2013-09-17 change
4120 to avoid Bug#15398.
4121
41222013-09-19 Eli Zaretskii <eliz@gnu.org>
4123
4124 * w32reg.c (w32_get_string_resource): Make the first 2 arguments
4125 'const char *' to avoid compiler warnings due to similar change in
4126 the prototype of x_get_string_resource.
4127
41282013-09-19 Dmitry Antipov <dmantipov@yandex.ru>
4129
4130 * xterm.h (struct x_display_info): New members last_mouse_glyph_frame,
4131 last_mouse_scroll_bar, last_mouse_glyph and last_mouse_movement_time,
4132 going to replace static variables below. Adjust comments.
4133 * xterm.c (last_mouse_glyph, last_mouse_glyph_frame)
4134 (last_mouse_scroll_bar, last_mouse_movement_time): Remove.
4135 (note_mouse_movement, XTmouse_position, x_scroll_bar_note_movement)
4136 (x_scroll_bar_report_motion, handle_one_xevent, syms_of_xterm):
4137 Related users changed.
4138 * w32term.h (struct w32_display_info): New members last_mouse_glyph_frame,
4139 last_mouse_scroll_bar, last_mouse_scroll_bar_pos, last_mouse_glyph and
4140 last_mouse_movement_time, going to replace static variables below.
4141 Adjust comments.
4142 * w32term.c (last_mouse_glyph_frame, last_mouse_scroll_bar)
4143 (last_mouse_scroll_bar_pos, last_mouse_glyph, last_mouse_movement_time):
4144 Remove.
4145 (note_mouse_movement, w32_mouse_position, w32_scroll_bar_handle_click)
4146 (x_scroll_bar_report_motion, syms_of_w32term): Related users changed.
4147 * nsterm.h (struct ns_display_info): New members last_mouse_glyph,
4148 last_mouse_movement_time and last_mouse_scroll_bar, going to replace
4149 static variables below.
4150 * nsterm.m (last_mouse_glyph, last_mouse_movement_time)
4151 (last_mouse_scroll_bar): Remove.
4152 (note_mouse_movement, ns_mouse_position, mouseMoved, mouseEntered)
4153 (mouseExited): Related users changed.
4154
41552013-09-19 Dmitry Antipov <dmantipov@yandex.ru>
4156
4157 Do not use external array to process X scroll bar messages.
4158 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): Remove.
4159 (x_send_scroll_bar_event): Pack window pointer into two slots
4160 of XClientMessageEvent if we're 64-bit. Adjust comment.
4161 (x_scroll_bar_to_input_event): Unpack accordingly.
4162
41632013-09-18 Dmitry Antipov <dmantipov@yandex.ru>
4164
4165 Ifdef away recent changes which aren't relevant to NS port.
4166 * dispextern.h (x_mouse_grabbed, x_redo_mouse_highlight)
4167 [!HAVE_NS]: Declare as such.
4168 * frame.c (x_mouse_grabbed, x_redo_mouse_highlight)
4169 [!HAVE_NS]: Define as such.
4170
41712013-09-18 Dmitry Antipov <dmantipov@yandex.ru>
4172
4173 * frame.c (x_redo_mouse_highlight): New function
4174 to factor out common code used in W32 and X ports.
4175 * dispextern.h (x_redo_mouse_highlight): Add prototype.
4176 * xterm.h (struct x_display_info):
4177 * w32term.h (struct w32_display_info):
4178 * nsterm.h (struct ns_display_info): New members
4179 last_mouse_motion_frame, last_mouse_motion_x and
4180 last_mouse_motion_y, going to replace static variables below.
4181 * xterm.c (last_mouse_motion_event, last_mouse_motion_frame)
4182 (redo_mouse_highlight): Remove.
4183 (note_mouse_movement, syms_of_xterm): Adjust user.
4184 (handle_one_xevent): Likewise. Use x_redo_mouse_highlight.
4185 * w32term.c (last_mouse_motion_event, last_mouse_motion_frame)
4186 (redo_mouse_highlight): Remove.
4187 (note_mouse_movement, syms_of_w32term): Adjust user.
4188 (w32_read_socket): Likewise. Use x_redo_mouse_highlight.
4189 * nsterm.m (last_mouse_motion_position, last_mouse_motion_frame):
4190 Remove.
4191 (note_mouse_movement, mouseMoved, syms_of_nsterm):
4192 * nsfns.m (compute_tip_xy): Adjust user.
4193
41942013-09-18 Dmitry Antipov <dmantipov@yandex.ru>
4195
4196 * frame.c (x_mouse_grabbed): New function.
4197 * dispextern.h (x_mouse_grabbed): Add prototype.
4198 (last_mouse_frame): Remove declaration.
4199 * xterm.h (struct x_display_info):
4200 * w32term.h (struct w32_display_info):
4201 * nsterm.h (struct ns_display_info): New member
4202 last_mouse_frame, going to replace...
4203 * xdisp.c (last_mouse_frame): ...global variable.
4204 (note_tool_bar_highlight):
4205 * w32term.c (w32_mouse_position, w32_read_socket):
4206 * xterm.c (XTmouse_position, handle_one_xevent):
4207 Use x_mouse_grabbed.
4208 * nsterm.m (ns_mouse_position, mouseDown): Adjust user.
4209
42102013-09-17 Dmitry Antipov <dmantipov@yandex.ru>
4211
4212 * w32term.c (w32_read_socket): Avoid temporary
4213 variables in a call to x_real_positions.
4214 * xterm.c (handle_one_xevent): Likewise.
4215
42162013-09-17 Dmitry Antipov <dmantipov@yandex.ru>
4217
4218 * frame.h (x_set_bitmap_icon) [!HAVE_NS]: New function.
4219 (x_icon_type): Remove prototype.
4220 (x_bitmap_icon) [!HAVE_NS]: Declare as such.
4221 * frame.c (x_icon_type): Remove.
4222 * w32term.c (x_make_frame_visible, x_iconify_frame):
4223 * xterm.c (x_make_frame_visible, x_iconify_frame):
4224 Use x_set_bitmap_icon to factor out common code.
4225
42262013-09-17 Dmitry Antipov <dmantipov@yandex.ru>
4227
4228 * dispextern.h (check_x_display_info, x_get_string_resource):
4229 Declare here just once and unify the latter.
4230 * frame.c (check_x_display_info, x_get_string_resource):
4231 * nsterm.h (check_x_display_info):
4232 * xrdb.c (x_get_string_resource):
4233 * xterm.h (check_x_display_info): Remove prototypes.
4234 * nsfns.m (x_get_string_resource): Likewise. Adjust definition.
4235 * w32reg.c (x_get_string_resource): Likewise.
4236 (w32_get_rdb_resource): Adjust user.
4237
42382013-09-17 Dmitry Antipov <dmantipov@yandex.ru>
4239
4240 * xterm.h (struct x_display_info): New member
4241 x_pending_autoraise_frame, going to replace...
4242 * xterm.c (pending_autoraise_frame): ...static variable.
4243 (x_new_focus_frame, XTread_socket): Adjust users.
4244 * w32term.h (struct w32_display_info): New member
4245 w32_pending_autoraise_frame, going to replace...
4246 * w32term.c (pending_autoraise_frame): ...global variable.
4247 (x_new_focus_frame, w32_read_socket): Adjust users.
4248
42492013-09-17 Glenn Morris <rgm@gnu.org>
4250
4251 * xdisp.c (message_dolog): If we create *Messages*,
4252 switch it to messages-buffer-mode.
4253
42542013-09-17 Paul Eggert <eggert@cs.ucla.edu>
4255
4256 Don't overuse 'const' in types of locals.
4257 * bidi.c (bidi_count_bytes):
4258 * gtkutil.c, gtkutil.h (xg_event_is_for_menubar)
4259 (xg_event_is_for_scrollbar):
4260 * xselect.c (x_handle_property_notify)
4261 (x_handle_selection_notify, x_handle_dnd_message):
4262 * xsettings.c, xsettings.h (xft_settings_event):
4263 * xterm.c (x_handle_net_wm_state, handle_one_event)
4264 (x_menubar_window_to_frame, x_detect_focus_change)
4265 (construct_mouse_click, note_mouse_movement)
4266 (x_scroll_bar_to_input_event, x_scroll_bar_expose)
4267 (x_scroll_bar_handle_click, x_scroll_bar_note_movement)
4268 (handle_one_xevent, x_handle_net_wm_state):
4269 * xterm.h (x_handle_property_notify, x_handle_selection_notify)
4270 (x_handle_dnd_message):
4271 Avoid unnecessary 'const', typically the second 'const' in
4272 'const foo * const arg', a 'const' that does not affect the API
4273 and doesn't significantly help the human reader.
4274
42752013-09-17 Dmitry Antipov <dmantipov@yandex.ru>
4276
4277 * image.c (fn_g_type_init) [WINDOWSNT]: Define and load
4278 only if Glib < 2.36.0.
4279 (fn_g_type_init) [!WINDOWSNT]: Define only if Glib < 2.36.0.
4280 * xsettings.c (init_gconf, init_gsettings): Do not check
4281 for g_type_init.
4282 * xterm.c (handle_one_xevent): Do not call to x_clear_area
4283 if GTK >= 2.7.0.
4284 (toplevel) [USE_MOTIF]: Include xlwmenu.h to pacify GCC.
4285
42862013-09-16 Jan Djärv <jan.h.d@swipnet.se>
4287
4288 * xsettings.c (init_gconf, init_gsettings): Check for Glib 2.36.0
4289 before calling g_type_init.
4290
4291 * font.c (syms_of_font): Move call to syms_of_(ns|mac)font ...
4292
4293 * nsterm.m (syms_of_nsterm): ... to here.
4294
42952013-09-16 Dmitry Antipov <dmantipov@yandex.ru>
4296
4297 * xterm.c (toolkit_scroll_bar_interaction): Use bool for boolean.
4298 (ignore_next_mouse_click_timeout): Use Time as X does.
4299 (handle_one_xevent): Avoid cast and use unsigned comparison.
4300
43012013-09-16 Dmitry Antipov <dmantipov@yandex.ru>
4302
4303 Do not copy X event in handle_one_xevent except KeyPress case.
4304 Wnen XEvent is processed, it is unlikely to be changed except
4305 KeyPress case, so we can avoid copying and use const pointer to
4306 const data to make sure that an event is not changed elsewhere.
4307 * xterm.c (handle_one_xevent): Change 2nd arg to 'const XEvent *
4308 const' and do not create local copy except for the KeyPress event.
4309 Use casts to avoid a few glitches. Adjust formatting. Add comments.
4310 (SET_SAVED_BUTTON_EVENT): Remove and move the code to the only user.
4311 (x_handle_net_wm_state, x_menubar_window_to_frame)
4312 (x_detect_focus_change, construct_mouse_click, note_mouse_movement)
4313 (x_scroll_bar_to_input_event, x_scroll_bar_expose)
4314 (x_scroll_bar_handle_click, x_scroll_bar_note_movement):
4315 * gtkutil.c (xg_event_is_for_menubar, xg_event_is_for_scrollbar):
4316 * xselect.c (x_handle_property_notify, x_handle_selection_notify)
4317 (x_handle_dnd_message):
4318 * xsettings.c (xft_settings_event):
4319 Use 'const XEvent * const' where appropriate.
4320 * xterm.h, gtkutil.h, xsettings.h: Adjust related prototypes.
4321
43222013-09-16 Dmitry Antipov <dmantipov@yandex.ru>
4323
4324 Fix X event waiting to handle multiple frames.
4325 * frame.h (struct frame) [HAVE_X_WINDOWS]: New member wait_event_type.
4326 * xterm.c (pending_event_wait): Remove. Adjust users.
4327 (x_detect_focus_change): Pass frame arg.
4328 (handle_one_xevent): Find related frame early and clear per-frame
4329 wait_event_type only if this is an event for the relevant frame.
4330 (x_wait_for_event): Use per-frame wait_event_type.
4331
43322013-09-15 Jan Djärv <jan.h.d@swipnet.se>
4333
4334 * nsfns.m (Fx_create_frame): Fix font driver registration for
4335 GNUstep.
4336
4337 * font.c (syms_of_font): Check MAC_OS_X_VERSION_MAX_ALLOWED >= 1050
4338 for syms_of_macfont.
4339
4340 * nsterm.m: Include macfont.h.
4341 (ns_tmp_flags, ns_tmp_font): Remove.
4342 (ns_compute_glyph_string_overhangs): Check for driver Qns.
4343 (ns_draw_glyph_string): Use local variables instead of ns_tmp_flags,
4344 ns_tmp_font. Call ns_draw_text_decoration here instead of nsfont.m.
4345 (changeFont:): Fix code style. Check for font driver type when
4346 getiing font.
4347
4348 * nsterm.h (FONT_DESCENT, FONT_ASCENT): Define to (f)->ascent and
4349 (f)->descent.
4350
4351 * nsfont.m (ns_tmp_flags, ns_tmp_font): Remove.
4352 (nsfont_open): Set font driver type.
4353 Set font->ascent and font->descent. Figure out font instead of
4354 ns_tmp_font, and flags instead of ns_tmp_flags.
4355 Fix indentation. Remove call to ns_draw_text_decoration,
4356 moved to nsterm.
4357
4358 * nsfns.m: Include macfont.h.
4359 (Fx_create_frame): Register macfont driver, make a better default font.
4360 (Fns_popup_font_panel): Get font from macfont driver, if used.
4361
4362 * macfont.m, macfont.h, macuvs.h: New files.
4363
4364 * font.h: Declare syms_of_macfont.
4365
4366 * font.c (syms_of_font): Call syms_of_macfont.
4367
4368 * Makefile.in (NS_OBJ, SOME_MACHINE_OBJECTS): Add macfont.o.
4369
43702013-09-15 Dmitry Antipov <dmantipov@yandex.ru>
4371
4372 Drop VERTICAL_SCROLL_BAR_WIDTH_TRIM. For X, it is zero since 1999,
4373 and it is always zero for others, so I assume that this is an ancient
4374 leftover which nobody will want to change any more.
4375 * xterm.h, w32term.h, nsterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Remove.
4376 (VERTICAL_SCROLL_BAR_INSIDE_WIDTH):
4377 * frame.c (x_set_scroll_bar_width):
4378 * w32fns.c (w32_createscrollbar):
4379 * w32term.c (w32_set_vertical_scroll_bar):
4380 * xfns.c (x_set_scroll_bar_default_width):
4381 * xterm.c (XTflash, x_scroll_bar_create, XTset_vertical_scroll_bar)
4382 (x_scroll_bar_expose): Related users changed.
4383
43842013-09-15 Dmitry Antipov <dmantipov@yandex.ru>
4385
4386 * xterm.h (FRAME_X_SCREEN_NUMBER): Add comment.
4387 (BLACK_PIX_DEFAULT, WHITE_PIX_DEFAULT): Use FRAME_X_SCREEN_NUMBER.
4388 (SCROLL_BAR_X_WIDGET, SET_SCROLL_BAR_X_WIDGET) [USE_X_TOOLKIT]:
4389 Define as such.
4390 * frame.h (FRAME_SMALLEST_CHAR_WIDTH, FRAME_SMALLEST_FONT_HEIGHT):
4391 Define once here...
4392 * nsterm.h, w32term.h, xterm.h: ...and not here.
4393 * w32term.h (SCROLL_BAR_X_WIDGET, SET_SCROLL_BAR_X_WIDGET):
4394 Remove unused Xisms.
4395 * xterm.c, xfns.c (toplevel): Remove #ifdef HAVE_X_WINDOWS because
4396 these modules are never compiled otherwise.
4397
43982013-09-14 Eli Zaretskii <eliz@gnu.org>
4399
4400 * buffer.c (syms_of_buffer) <left-margin-width, right-margin-width>:
4401 Doc fix. (Bug#15375)
4402
44032013-09-13 Dmitry Antipov <dmantipov@yandex.ru>
4404
4405 Unify Fx_focus_frame between all ports.
4406 * frame.h (x_focus_frame): New prototype.
4407 * xfns.c (Fx_focus_frame): Remove.
4408 (syms_of_xfns): Do not defsubr it.
4409 (x_focus_frame): X implementation.
4410 * nsfns.m (Fx_focus_frame): Remove.
4411 (syms_of_nsfns): Do not defsubr it.
4412 (x_focus_frame): NS implementation.
4413 * w32term.c (Fx_focus_frame): Remove.
4414 (x_focus_on_frame): Rename to...
4415 (x_focus_frame): W32 implementation.
4416 * w32term.h (x_focus_on_frame): Remove prototype.
4417 * w32fns.c (Fx_focus_frame): Remove.
4418 (syms_of_w32fns): Do not defsubr it.
4419 * frame.c (Fx_focus_frame): Define here.
4420 (syms_of_frame): Defsubr here.
4421 * gtkutil.c (xg_tool_bar_callback): Use x_focus_frame.
4422
44232013-09-13 Dmitry Antipov <dmantipov@yandex.ru>
4424
4425 Unify FRAME_window_system_DISPLAY_INFO macros between all ports.
4426 All of them are replaced with FRAME_DISPLAY_INFO, defined in
4427 each port to reference the port-specific window system data.
4428 * msdos.h (FRAME_X_DISPLAY_INFO): Remove.
4429 (FRAME_DISPLAY_INFO): Define.
4430 * w32term.h (FRAME_W32_DISPLAY_INFO, FRAME_X_DISPLAY_INFO): Remove.
4431 (FRAME_DISPLAY_INFO): Define. Adjust users.
4432 * xterm.h (FRAME_X_DISPLAY_INFO): Remove.
4433 (FRAME_DISPLAY_INFO): Define. Adjust users.
4434 * frame.h (FRAME_RES_X, FRAME_RES_Y): Unify.
4435 * font.c, frame.c, gtkutil.c, image.c, menu.c, msdos.c, nsfns.m:
4436 * nsfont.m, nsterm.m, w32fns.c, w32font.c, w32menu.c, w32term.c:
4437 * w32xfns.c, widget.c, xdisp.c, xfaces.c, xfns.c, xfont.c, xmenu.c:
4438 * xselect.c, xterm.c: All related users changed.
4439
44402013-09-13 Dmitry Antipov <dmantipov@yandex.ru>
4441
4442 * xterm.h (x_window_to_frame, x_any_window_to_frame)
4443 (x_menubar_window_to_frame): Remove prototypes.
4444 * xfns.c (x_window_to_frame, x_any_window_to_frame)
4445 (x_menubar_window_to_frame, x_top_window_to_frame):
4446 Move from here...
4447 * xterm.c (x_window_to_frame, x_any_window_to_frame)
4448 (x_menubar_window_to_frame, x_top_window_to_frame):
4449 ...to here and convert all but the last to static.
7384 4450
73852012-08-10 Joakim Hårsman <joakim.harsman@gmail.com> (tiny change) 44512013-09-12 Eli Zaretskii <eliz@gnu.org>
7386 Eli Zaretskii <eliz@gnu.org>
7387 4452
7388 Fix bug #10299 with Unicode characters sent by customized 4453 * lisp.mk (lisp): Add w32-common-fns.elc.
7389 keyboards created by MSKLC.
7390 * w32fns.c (INIT_WINDOW_CLASS): New macro.
7391 (w32_init_class): Use it to initialize the Emacs class with either
7392 ANSI or Unicode API calls.
7393 (w32_msg_pump): Call GetMessageW and DispatchMessageW on NT and
7394 later.
7395 (w32_wnd_proc): If the character code sent by WM_CHAR or
7396 WM_SYSCHAR is above 255, post a WM_UNICHAR message, not the
7397 original message. Call DefWindowProcW on NT and later.
7398 4454
73992012-08-10 Glenn Morris <rgm@gnu.org> 44552013-09-12 Xue Fuqiao <xfq.free@gmail.com>
7400 4456
7401 * Makefile.in (config_h): Fix conf_post.h out-of-tree build location. 4457 * charset.c (char_charset): Document an exception for char-charset.
7402 4458
7403 * lisp.h (DIRECTORY_SEP): Let configure set it. 44592013-09-12 Dmitry Antipov <dmantipov@yandex.ru>
7404 4460
74052012-08-09 Dmitry Antipov <dmantipov@yandex.ru> 4461 * xterm.h (x_display_info): New field last_user_time...
4462 * xterm.c (toplevel): ...to replace static last_user_time.
4463 (handle_one_xevent, x_ewmh_activate_frame): Adjust users.
7406 4464
7407 Use TSET for write access to Lisp_Object slots of struct terminal. 44652013-09-12 Dmitry Antipov <dmantipov@yandex.ru>
7408 * termhooks.h (TSET): New macro.
7409 * coding.c, terminal.c, xselect.c: Adjust users.
7410 4466
74112012-08-08 Stefan Monnier <monnier@iro.umontreal.ca> 4467 * xterm.c (x_set_scroll_bar_thumb) [USE_LUCID && !HAVE_XAW3D]: Clip
4468 scroll bar values to prevent thumb from disappear and update comment.
7412 4469
7413 * xdisp.c (safe_eval_handler): Remove prototype. Receive args describing 44702013-09-11 Glenn Morris <rgm@gnu.org>
7414 the failing expression, include them in the error message.
7415 * eval.c (internal_condition_case_n): Pass nargs and args to hfun.
7416 * lisp.h (internal_condition_case_n): Update declaration.
7417 4471
74182012-08-08 Dmitry Antipov <dmantipov@yandex.ru> 4472 * emacs.c (usage_message): Possessive apostrophe tweak.
7419 4473
7420 Inline functions to examine and change buffer overlays. 44742013-09-11 Dmitry Antipov <dmantipov@yandex.ru>
7421 * buffer.c (unchain_both): New function.
7422 * buffer.h (buffer_get_overlays, buffer_set_overlays):
7423 (buffer_has_overlays): New function.
7424 (enum overlay_type): New enum.
7425 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c:
7426 * insdel.c, intervals.c, print.c, xdisp.c: Adjust users.
7427
74282012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
7429
7430 Inline functions to examine and change buffer intervals.
7431 * alloc.c (mark_interval_tree): Remove.
7432 (MARK_INTERVAL_TREE): Simplify.
7433 (UNMARK_BALANCE_INTERVALS): Remove. Adjust users.
7434 * intervals.c (buffer_balance_intervals): New function.
7435 (graft_intervals_into_buffer): Adjust indentation.
7436 (set_intervals_multibyte): Simplify.
7437 * buffer.h (BUF_INTERVALS): Remove.
7438 (buffer_get_intervals, buffer_set_intervals): New function.
7439 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c, insdel.c:
7440 * intervals.c, textprop.c: Adjust users.
7441
74422012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
7443
7444 Inline functions to examine and change string intervals.
7445 * lisp.h (STRING_INTERVALS, STRING_SET_INTERVALS): Remove.
7446 (string_get_intervals, string_set_intervals): New function.
7447 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
7448 * lread.c, print.c, textprop.c: Adjust users.
7449
74502012-08-08 Glenn Morris <rgm@gnu.org>
7451
7452 * lisp.mk (lisp): Remove language/persian.elc.
7453
74542012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
7455
7456 Cleanup intervals.
7457 * intervals.h (NULL_INTERVAL, DEFAULT_INTERVAL): Remove.
7458 (NULL_INTERVAL_P): Likewise. Adjust users.
7459 (FRONT_STICKY_P, END_NONSTICKY_P, FRONT_NONSTICKY_P):
7460 Adjust comment. Move under #if 0.
7461 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
7462 * print.c, syntax.c, textprop.c, xdisp.c: Adjust users.
7463
74642012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
7465
7466 Check total length of intervals with eassert.
7467 * intervals.h (CHECK_TOTAL_LENGTH): Remove.
7468 * intervals.c: Change all users to eassert.
7469
74702012-08-07 Eli Zaretskii <eliz@gnu.org>
7471
7472 * .gdbinit (xframe, xwindow, nextcons, xcar, xcdr, xlist):
7473 Rename fields to match removal of FGET and WGET and disuse of
7474 INTERNAL_FIELD in Lisp_Cons.
7475
74762012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
7477
7478 Revert and cleanup Lisp_Cons, Lisp_Misc and Lisp_Symbol things.
7479 * lisp.h (struct Lisp_Symbol): Change xname to meaningful
7480 name since all xname users are fixed long time ago. Do not
7481 use INTERNAL_FIELD.
7482 (set_symbol_name, set_symbol_function, set_symbol_plist):
7483 (set_symbol_next, set_overlay_plist): New function.
7484 (struct Lisp_Cons): Do not use INTERNAL_FIELD.
7485 (struct Lisp_Overlay): Likewise.
7486 (CVAR, MVAR, SVAR): Remove.
7487 * alloc.c, buffer.c, buffer.h, bytecode.c, cmds.c, data.c:
7488 * doc.c, eval.c, fns.c, keyboard.c, lread.c, nsselect.m:
7489 * xterm.c: Adjust users.
7490 * .gdbinit: Change to use name field of struct Lisp_Symbol
7491 where appropriate.
7492
74932012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
7494
7495 Basic functions to set Lisp_Object and pointer slots of intervals.
7496 * intervals.h (interval_set_parent, interval_set_object):
7497 (interval_set_left, interval_set_right, interval_set_plist):
7498 (interval_copy_parent): New function.
7499 (SET_INTERVAL_OBJECT, SET_INTERVAL_PARENT, INTERVAL_PTR_SIZE): Remove.
7500 (RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE):
7501 Adjust indentation.
7502 (INTERVAL_SIZE): Remove. Adjust users.
7503 * alloc.c, intervals.c, lread.c, textprop.c: Use new functions.
7504
75052012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
7506
7507 Drop PGET and revert read access to Lisp_Objects slots of Lisp_Process.
7508 * process.h (PGET): Remove.
7509 (struct Lisp_Process): Do not use INTERNAL_FIELD.
7510 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
7511
75122012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
7513
7514 Drop WGET and revert read access to Lisp_Objects slots of struct window.
7515 * window.h (WGET): Remove.
7516 (struct window): Do not use INTERNAL_FIELD.
7517 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
7518 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
7519 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
7520 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
7521 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
7522 Adjust users.
7523 4475
75242012-08-07 Chong Yidong <cyd@gnu.org> 4476 * nsterm.m (syms_of_nsterm): Use Qns.
4477 * w32fns.c (Fx_open_connection): Remove old '#if 0' code.
4478 * w32term.c (w32_create_terminal, syms_of_w32term): Use Qw32.
4479 * xfns.c (x_display_info_for_name, Fx_open_connection):
4480 Remove old '#if 0' code.
4481 (syms_of_xfns): Use Qx.
4482 * termhooks.h (fullscreen_hook): Remove the leftover.
4483 (struct terminal): Fix typo in comment.
7525 4484
7526 * window.c (Fwindow_edges, Fwindow_pixel_edges) 44852013-09-11 Dmitry Antipov <dmantipov@yandex.ru>
7527 (Fwindow_absolute_pixel_edges, Fdelete_other_windows_internal)
7528 (Fdelete_window_internal): Signal an error if the window is not on
7529 a live frame (Bug#12025).
7530 4486
75312012-08-07 Dmitry Antipov <dmantipov@yandex.ru> 4487 Cleaning up a few X scroll bar bits.
4488 * termhooks.h (enum scroll_bar_part): Add scroll_bar_nowhere member.
4489 * xterm.h (struct scroll_bar) [USE_TOOLKIT_SCROLL_BARS && USE_LUCID]:
4490 New member last_seen_part, going to replace...
4491 * xterm.c [USE_TOOLKIT_SCROLL_BARS]: ...global last_scroll_bar_part.
4492 (xt_action_hook) [USE_LUCID]: Adjust user.
4493 (xm_scroll_callback, xg_scroll_callback): Do not bloat with
4494 Lucid-specific scroll bar support.
4495 (xaw_jump_callback, xaw_scroll_callback): Prefer enum scroll_par_part
4496 to int and adjust to use last_seen_part member.
4497 (x_set_toolkit_scroll_bar_thumb) [USE_LUCID]: Adjust user.
4498 (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS && USE_LUCID]:
4499 Initialize last_seen_part.
7532 4500
7533 Drop FGET and revert read access to Lisp_Objects slots of struct frame. 45012013-09-11 Stefan Monnier <monnier@iro.umontreal.ca>
7534 * frame.h (FGET): Remove.
7535 (struct frame): Do not use INTERNAL_FIELD.
7536 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
7537 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
7538 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
7539 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
7540 4502
75412012-08-06 Juanma Barranquero <lekktu@gmail.com> 4503 * insdel.c (insert_from_buffer_1): Don't mark buffer as modified when
4504 insert-buffer-substring an empty string.
7542 4505
7543 * w32.c: Silence compiler warnings. 45062013-09-11 Paul Eggert <eggert@cs.ucla.edu>
7544 (map_w32_filename): Remove unused variable `is_fat'.
7545 (chase_symlinks): Add parentheses around expression.
7546 4507
75472012-08-06 Glenn Morris <rgm@gnu.org> 4508 * xdisp.c (Ftool_bar_lines_needed): Declare as 'const' if ifdeffed out,
4509 avoiding a GCC warning.
7548 4510
7549 * sysdep.c: Respect BROKEN_GETWD. 45112013-09-11 Dmitry Antipov <dmantipov@yandex.ru>
7550 4512
7551 * dispnew.c (GNU_LIBRARY_PENDING_OUTPUT_COUNT, PENDING_OUTPUT_COUNT): 4513 Ifdef away frame tool bar code when it is not really used.
7552 Let configure handle it. 4514 * frame.h (struct frame) [HAVE_WINDOW_SYSTEM && !USE_GTK && !HAVE_NS]:
7553 (stdio_ext.h) [DISPNEW_NEEDS_STDIO_EXT]: Include it. 4515 Move tool_bar_window, desired_tool_bar_string, current_tool_bar_string
4516 and minimize_tool_bar_window_p under the above.
4517 (fset_current_tool_bar_string, fset_desired_tool_bar_string)
4518 (fset_tool_bar_window): Likewise.
4519 * dispnew.c (clear_current_matrices, clear_desired_matrices)
4520 (adjust_frame_glyphs_for_window_redisplay, free_glyphs, update_frame)
4521 (change_frame_size_1):
4522 * window.c (window_from_coordinates, Frecenter): Adjust users.
4523 * window.h (WINDOW_TOOL_BAR_P): Define to zero when frame tool bar
4524 code is not really used.
4525 * xdisp.c (build_desired_tool_bar_string, display_tool_bar_line)
4526 (tool_bar_lines_needed, MAX_FRAME_TOOL_BAR_HEIGHT, tool_bar_item_info)
4527 (get_tool_bar_item, handle_tool_bar_click, note_tool_bar_highlight)
4528 [!USE_GTK && !HAVE_NS]: Define as such.
4529 (Ftool_bar_lines_needed, redisplay_tool_bar, show_mouse_face)
4530 (note_mouse_highlight, expose_frame):
4531 * xfns.c (x_set_tool_bar_lines):
4532 * xterm.c (handle_one_xevent): Adjust users.
4533
45342013-09-11 Paul Eggert <eggert@cs.ucla.edu>
4535
4536 Fix corruption with multiple emacsclient -t instances (Bug#15222).
4537 This bug was introduced by my 2013-08-26 patch, which incorrectly
4538 assumed that the terminfo implementation doesn't use termcap buffers.
4539 * term.c (init_tty) [TERMINFO]: Remove optimization, as
4540 these buffers apparently are used after all.
4541 * termchar.h (TERMCAP_BUFFER_SIZE) [TERMINFO]: Define here too.
4542 (struct tty_display_info): Define members termcap_term_buffer and
4543 termcap_strings_buffer even if TERMINFO.
4544
45452013-09-11 Dmitry Antipov <dmantipov@yandex.ru>
4546
4547 Fix last change.
4548 * data.c (Feqlsign, Flss, Fgtr, Fleq, Fgeq): Add convenient
4549 'usage' docstring entry to pacify make-docfile.
4550
45512013-09-11 Barry O'Reilly <gundaetiapo@gmail.com>
4552
4553 Change comparison functions =, <, >, <=, >= to take many arguments.
4554 * data.c: Change comparison functions' interface and implementation.
4555 * lisp.h: Make arithcompare available for efficient two arg
4556 comparisons.
4557 * bytecode.c: Use arithcompare.
4558 * fileio.c: Use new interface.
4559
45602013-09-11 Stefan Monnier <monnier@iro.umontreal.ca>
4561
4562 * keyboard.c (read_char): Don't break immediate_echo (bug#15332).
4563
45642013-09-10 Stefan Monnier <monnier@iro.umontreal.ca>
4565
4566 * eval.c (Feval): Document the new use of `lexical'.
4567
45682013-09-09 Dmitry Antipov <dmantipov@yandex.ru>
4569
4570 Review and drop old frame resize hack.
4571 * frame.h (struct frame): Remove force_flush_display_p.
4572 * dispnew.c (update_frame): Adjust user and don't call
4573 flush_frame here. The comment has said that there was an issues
4574 with redisplaying fringes, but I don't see any differences with
4575 and without this hack. Hopefully we can continue without it.
4576 * xdisp.c (clear_garbaged_frames): Adjust user and do not clear
4577 current frame matrices twice if resized_p is set.
4578
45792013-09-09 Dmitry Antipov <dmantipov@yandex.ru>
4580
4581 Do not populate pure Xism x_sync to other ports.
4582 * frame.h (x_sync): Move under HAVE_X_WINDOWS.
4583 * frame.c (other_visible_frames) [HAVE_X_WINDOWS]: Use as such.
4584 * nsfns.m, w32xfns.c (x_sync): Remove no-op.
4585 * w32term.h (x_sync): Remove prototype.
4586
45872013-09-09 Dmitry Antipov <dmantipov@yandex.ru>
4588
4589 Cleanup frame flushing.
4590 * dispextern.h (struct redisplay_interface):
4591 Drop flush_display_optional because flush_display is enough
4592 for X and flushing via RIF is just a no-op for others.
4593 * frame.h (flush_frame): New function.
4594 * dispnew.c (update_frame):
4595 * minibuf.c (read_minibuf):
4596 * xdisp.c (echo_area_display, redisplay_preserve_echo_area):
4597 Use it.
4598 * keyboard.c (detect_input_pending_run_timers): Do not flush
4599 all frames but selected one in redisplay_preserve_echo_area.
4600 * nsterm.m (ns_flush): Remove no-op.
4601 (ns_redisplay_interface): Adjust user.
4602 * w32term.h (x_flush): Remove no-op.
4603 (w32_redisplay_interface): Adjust user.
4604 * xterm.c (x_flush): Simplify because we do not flush all
4605 frames at once any more. Adjust comment.
4606 (x_redisplay_interface): Adjust user.
4607
46082013-09-07 Paul Eggert <eggert@cs.ucla.edu>
4609
4610 Port --without-x --enable-gcc-warnings to Fedora 19.
4611 * gfilenotify.c (globals_of_gfilenotify):
4612 Call g_type_init only if using an older glib version that needs it.
4613
46142013-09-06 Dmitry Antipov <dmantipov@yandex.ru>
4615
4616 * lisp.h (last_glyphless_glyph_frame, last_glyphless_glyph_face_id)
4617 (last_glyphless_glyph_merged_face_id): Remove declarations.
4618 * dispextern.h (merge_glyphless_glyph_face): Add prototype.
4619 * xdisp.c (last_glyphless_glyph_frame, last_glyphless_glyph_face_id)
4620 (last_glyphless_glyph_merged_face_id): Now static.
4621 (merge_escape_glyph_face): New function, refactored from...
4622 (get_next_display_element): ...here.
4623 (merge_glyphless_glyph_face): New function, refactored from...
4624 (produce_glyphless_glyph): ...here...
4625 * term.c (produce_glyphless_glyph): ...and here.
4626
46272013-09-06 Stefan Monnier <monnier@iro.umontreal.ca>
4628
4629 * eval.c (eval_sub): Only call Ffunction if necessary.
4630
46312013-09-06 Dmitry Antipov <dmantipov@yandex.ru>
4632
4633 Attempt to make redisplay more selective when changing cursor type.
4634 * frame.h (struct frame): New bitfield cursor_type_changed.
4635 * xdisp.c (cursor_type_changed): Remove.
4636 (try_cursor_movement, redisplay_window, try_window_id)
4637 (set_frame_cursor_types, try_window_reusing_current_matrix):
4638 Adjust to use per-frame bitfield.
4639 (redisplay_internal): Look for cursor type change on each visible
4640 frame and consider all frames if cursor type has been changed on
4641 the frame other than selected. If cursor type has been changed on
4642 selected frame only, do not use fast update.
4643
46442013-09-06 Dmitry Antipov <dmantipov@yandex.ru>
4645
4646 Attempt to make redisplay more selective when changing fonts.
4647 * frame.h (struct frame): New bitfield fonts_changed.
4648 * dispextern.h (fonts_changed_p, adjust_glyphs): Remove declaration.
4649 (adjust_frame_glyphs): Add prototype.
4650 * dispnew.c (fonts_changed_p): Remove.
4651 (adjust_glyphs): Remove because we do not
4652 adjust matrices on all frames at once any more.
4653 (adjust_frame_glyphs): Block and unblock input here.
4654 (adjust_glyph_matrix): Use fonts_changed.
4655 (change_frame_size_1): Use adjust_frame_glyphs.
4656 * font.c (font_open_entity): Use fonts_changed.
4657 * frame.c (set_menu_bar_lines, Fmake_terminal_frame):
4658 * w32fns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_show_tip):
4659 * window.c (Fdelete_other_windows_internal, Fwindow_resize_apply)
4660 (Fsplit_window_internal, Fdelete_window_internal, grow_mini_window)
4661 (shrink_mini_window, Fresize_mini_window_internal)
4662 (window_scroll_pixel_based, Fset_window_configuration)
4663 (apply_window_adjustment, Fset_window_vscroll):
4664 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_show_tip):
4665 Use adjust_frame_glyphs.
4666 * xdisp.c (redisplay_tool_bar, redisplay_window, try_window)
4667 (try_window_reusing_current_matrix, try_window_id, display_line)
4668 (IT_EXPAND_MATRIX_WIDTH): Use fonts_changed.
4669 (redisplay_internal): Consider fonts_changed and adjust frame
4670 matrices for each frame only if the frame is visible. If font
4671 has been changed on some frame during full redisplay, retry
4672 only visible frames where the font has been actually changed.
4673
46742013-09-05 Dmitry Antipov <dmantipov@yandex.ru>
4675
4676 Cache current header and mode line height for each window.
4677 * window.h (struct window): New fields mode_line_height
4678 and header_line_height.
4679 * window.c (make_window): Initialize them.
4680 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
4681 (CURRENT_HEADER_LINE_HEIGHT): Use them. Adjust comment.
4682 (current_mode_line_height, current_header_line_height):
4683 Remove declaration.
4684 * xdisp.c (current_mode_line_height, current_header_line_height):
4685 Remove.
4686 (pos_visible_p, init_xdisp): Adjust user.
4687 (redisplay_window): Invalidate mode_line_height and
4688 header_line_height if current and desired matrices do not agree.
7554 4689
75552012-08-06 Dmitry Antipov <dmantipov@yandex.ru> 46902013-09-05 Dmitry Antipov <dmantipov@yandex.ru>
7556 4691
7557 Use GCALIGNMENT where appropriate. 4692 * fontset.c, window.c, xdisp.c (toplevel): Use TERM_HEADER.
7558 * alloc.c (XMALLOC_HEADER_ALIGNMENT, roundup_size): 4693 * xfaces.c (toplevel) [HAVE_X_WINDOWS]: Do not include xterm.h twice.
7559 (union aligned_Lisp_Symbol, union aligned_Lisp_Misc):
7560 (mark_maybe_pointer, pure_alloc): Change to use GCALIGNMENT.
7561 4694
75622012-08-06 Eli Zaretskii <eliz@gnu.org> 46952013-09-05 Dmitry Antipov <dmantipov@yandex.ru>
7563 4696
7564 * w32menu.c (set_frame_menubar, initialize_frame_menubar): 4697 Make --without-x compatible with --enable-gcc-warnings.
7565 Don't use FRAME_MENU_BAR_ITEMS as an lvalue. 4698 * font.c (register_font_driver): Move check under HAVE_WINDOW_SYSTEM.
4699 * font.h (struct font_driver): Move draw, get_bitmap and free_bitmap
4700 members under HAVE_WINDOW_SYSTEM.
4701 * keyboard.c (make_lispy_focus_out): Likewise.
4702 (record_menu_key): Move under HAVE_MENUS.
4703 * xdisp.c (toplevel): Move hourglass_shown_p, hourglass_atimer and
4704 THIN_SPACE_WIDTH under HAVE_WINDOW_SYSTEM.
4705 (syms_of_xdisp): Adjust user.
4706 (window_box_edges): Define only if HAVE_WINDOW_SYSTEM.
4707 (start_hourglass, cancel_hourglass):
4708 * xfaces.c (toplevel): Likewise with PT_PER_INCH,
4709 clear_font_table_count, CLEAR_FONT_TABLE_COUNT
4710 and CLEAR_FONT_TABLE_NFONTS.
4711 (set_font_frame_param, clear_face_gcs, realize_non_ascii_face):
4712 Declare only if HAVE_WINDOW_SYSTEM.
4713 (lface_same_font_attributes_p, clear_face_gcs): Define only
4714 if HAVE_WINDOW_SYSTEM.
7566 4715
75672012-08-06 Stefan Monnier <monnier@iro.umontreal.ca> 47162013-09-05 Dmitry Antipov <dmantipov@yandex.ru>
7568 4717
7569 * buffer.h (struct buffer): Revert `indirections' to a simple int; 4718 * frame.c (check_minibuf_window): Update 'frame' with frame pointer.
7570 that should be sufficient for everyone. 4719 * xterm.c (x_scroll_bar_handle_click) [!USE_TOOLKIT_SCROLL_BARS]:
4720 Don't pass C integer to XINT (tiny fix for 2013-09-03 change).
7571 4721
75722012-08-06 Jan Djärv <jan.h.d@swipnet.se> 47222013-09-05 Stefan Monnier <monnier@iro.umontreal.ca>
7573 4723
7574 * keyboard.c (timer_check_2): Add break so timer_check returns next 4724 * cmds.c (Fself_insert_command): Don't pass a non-integer to XINT.
7575 timeout.
7576 4725
75772012-08-06 Dmitry Antipov <dmantipov@yandex.ru> 47262013-09-04 Paul Eggert <eggert@cs.ucla.edu>
7578 4727
7579 Fix Windows build errors introduced after converting to WGET and WSET. 4728 * alloc.c (make_event_array): First arg is now ptrdiff_t, not int.
7580 * w32term.c (w32_set_vertical_scroll_bar): Change to use WSET. 4729 This fixes a type error on hosts where ptrdiff_t is wider than int.
7581 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
7582 4730
75832012-08-06 Jan Djärv <jan.h.d@swipnet.se> 47312013-09-04 Stefan Monnier <monnier@iro.umontreal.ca>
7584 4732
7585 * nsterm.m (ns_frame_rehighlight): Use FSET. 4733 * keyboard.c (read_key_sequence_vs): New function.
4734 (Fread_key_sequence_vector, Fread_key_sequence): Use it to factor out
4735 common code.
7586 4736
7587 * nsmenu.m (ns_update_menubar): Use FSET. 4737 * callint.c (Fcall_interactively): Always return a vector for 'K'.
7588 4738
75892012-08-06 Dmitry Antipov <dmantipov@yandex.ru> 47392013-09-04 Paul Eggert <eggert@cs.ucla.edu>
7590 4740
7591 Separate read and write access to Lisp_Object slots of Lisp_Process. 4741 Makefile improvements.
7592 * process.h (PGET, PSET): New macros similar to AREF and ASET. 4742 * Makefile.in (config.status): Don't use double-colon rules, as
7593 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users. 4743 they are not portable according to POSIX. Fix shell typo with `;
4744 I guess this rule has never been tested?
4745 (VCSWITNESS): New macro, to override any environment var.
7594 4746
75952012-08-06 Dmitry Antipov <dmantipov@yandex.ru> 47472013-09-04 Dmitry Antipov <dmantipov@yandex.ru>
7596 4748
7597 Separate read and write access to Lisp_Object slots of struct window. 4749 * xterm.h (struct x_display_info): Do not track X connection
7598 * window.h (WGET, WSET): New macros similar to AREF and ASET. 4750 fd separately because it is always available from Display.
7599 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c: 4751 * xterm.c (x_term_init, x_delete_terminal, x_delete_display):
7600 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
7601 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
7602 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
7603 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
7604 Adjust users. 4752 Adjust users.
7605 4753
76062012-08-06 Dmitry Antipov <dmantipov@yandex.ru> 47542013-09-03 Dmitry Antipov <dmantipov@yandex.ru>
7607
7608 Fix Windows build errors introduced after converting to FGET and FSET.
7609 * w32term.c (x_frame_rehighlight, x_scroll_bar_create):
7610 (w32_condemn_scroll_bars, w32_redeem_scroll_bar):
7611 (w32_judge_scroll_bars): Change to use FSET.
7612 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
7613
76142012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
7615
7616 Fix replacement typo.
7617 * window.c (replace_window): Set root_window instead of
7618 selected_window. This fixes a total window subsystem
7619 malfunction reported by Bastien Guerry <bzg@gnu.org>.
7620
76212012-08-06 Glenn Morris <rgm@gnu.org>
7622
7623 * lisp.mk (lisp): Add language/persian.elc.
7624
76252012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
7626
7627 Separate read and write access to Lisp_Object slots of struct frame.
7628 * frame.h (FGET, FSET): New macros similar to AREF and ASET.
7629 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
7630 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
7631 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
7632 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
7633
76342012-08-05 Andreas Schwab <schwab@linux-m68k.org>
7635
7636 * emacs.c (decode_env_path): Only use defaulted if WINDOWSNT.
7637
76382012-08-05 Dmitry Antipov <dmantipov@yandex.ru>
7639
7640 Generalize common compile-time constants.
7641 * lisp.h (header_size, bool_header_size, word_size): Now here.
7642 (struct Lisp_Vector): Add comment.
7643 (struct Lisp_Bool_Vector): Move up to define handy constants.
7644 (VECSIZE, PSEUDOVECSIZE): Simplify.
7645 (SAFE_ALLOCA_LISP): Use new constant. Adjust indentation.
7646 * buffer.c, buffer.h, bytecode.c, callint.c, eval.c, fns.c:
7647 * font.c, fontset.c, keyboard.c, keymap.c, macros.c, menu.c:
7648 * msdos.c, w32menu.c, w32term.h, window.c, xdisp.c, xfaces.c:
7649 * xfont.c, xmenu.c: Use word_size where appropriate.
7650
76512012-08-05 Lawrence Mitchell <wence@gmx.li>
7652
7653 * search.c (Freplace_match): Treat \? in the replacement text
7654 literally (Bug#8161).
7655 4755
76562012-08-05 Chong Yidong <cyd@gnu.org> 4756 * buffer.c (drop_overlay):
4757 * fileio.c (restore_point_unwind): Prefer unchain_marker to
4758 Fset_marker (X, Qnil, ...) (which is the same but a bit slower).
7657 4759
7658 * term.c (Vsuspend_tty_functions, Vresume_tty_functions): 47602013-09-03 Dmitry Antipov <dmantipov@yandex.ru>
7659 * frame.c (Vdelete_frame_functions):
7660 * emacs.c (Vkill_emacs_hook): Doc fix.
7661 4761
76622012-08-04 Eli Zaretskii <eliz@gnu.org> 4762 * buffer.c (Fmake_overlay, Fmove_overlay):
4763 * intervals.c (set_point_from_marker):
4764 * print.c (PRINTPREPARE): Prefer signal_error
4765 to plain error and report unsuitable marker too.
7663 4766
7664 * xfns.c (x_set_menu_bar_lines): Fix compilation error in 47672013-09-03 Dmitry Antipov <dmantipov@yandex.ru>
7665 --with-x-toolkit=no builds.
7666 Reported by Carsten Mattner <carstenmattner@gmail.com>.
7667
76682012-08-04 Chong Yidong <cyd@gnu.org>
7669
7670 * syntax.c (Fmodify_syntax_entry): Doc fix.
7671
76722012-08-04 Eli Zaretskii <eliz@gnu.org>
7673
7674 Fix startup warnings about ../site-lisp on MS-Windows. (Bug#11959)
7675 * w32.c (init_environment): Change the default values of many
7676 environment variables in dflt_envvars[] to NULL, to avoid pushing
7677 them into environment when they were not already defined.
7678 Remove the code that deletes site-lisp subdirectories from the default
7679 value of EMACSLOADPATH, as it is no longer needed.
7680 (check_windows_init_file): Now external, not static.
7681 Use Vload_path as is, without adding anything, as this function is now
7682 called when Vload_path is already set up.
7683
7684 * w32.h (check_windows_init_file): Add prototype.
7685
7686 * emacs.c (init_cmdargs) [WINDOWSNT]: When running from the build
7687 directory, ignore the /*/i386/ tail in Vinvocation_directory, for
7688 compatibility with Posix platforms.
7689 (main): Move the call to check_windows_init_file to here from
7690 w32.c.
7691 (decode_env_path) [WINDOWSNT]: Expand the %emacs_dir%/ prefix, if
7692 any, in the DEFALT argument into the root of the Emacs build or
7693 installation tree, as appropriate.
7694
7695 * callproc.c (init_callproc_1): Call decode_env_path instead of
7696 doing its equivalent by hand.
7697 (init_callproc): Replace DOS_NT condition with MSDOS, thus letting
7698 the code that sets Vexec_path run on MS-Windows.
7699
7700 * lread.c (init_lread): Add comments to #ifdef's.
7701 4768
4769 * xterm.h (struct scroll_bar): Prefer int to Lisp_Object
4770 for 'dragging' member.
4771 (struct x_output): Remove set-but-unused leftovers
4772 'left_before_move' and 'top_before_move'.
4773 * gtkutil.c (xg_set_toolkit_scroll_bar_thumb):
4774 * xterm.c (xt_action_hook, xm_scroll_callback, xg_scroll_callback)
4775 (xg_end_scroll_callback, xaw_jump_callback, xaw_scroll_callback)
4776 (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
4777 (x_scroll_bar_set_handle, XTset_vertical_scroll_bar)
4778 (x_scroll_bar_handle_click, x_scroll_bar_note_movement)
4779 (x_scroll_bar_report_motion, x_set_offset): Related users changed.
4780 * xfns.c, image.c (XLIB_ILLEGAL_ACCESS): No longer needed.
4781
47822013-09-03 Jan Djärv <jan.h.d@swipnet.se>
4783
4784 * nsfont.m (INVALID_GLYPH): New define.
4785 (nsfont_encode_char): Use INVALID_GLYPH.
4786 (ns_uni_to_glyphs): Ditto, check for NSNullGlyph (Bug#15138).
4787
47882013-09-02 Dmitry Antipov <dmantipov@yandex.ru>
4789
4790 * xterm.c (x_last_mouse_movement_time): Revert last change.
4791 This code should use XDisplayMotionBufferSize to check display's
4792 motion history first, and there are few other issues as well.
4793 (x_scroll_bar_note_movement): Pass XMotionEvent rather than XEvent.
4794 (handle_one_xevent): Adjust user.
4795
47962013-09-02 Martin Rudalics <rudalics@gmx.at>
4797
4798 * dispnew.c (Flast_nonminibuf_frame): Move from here ...
4799 * frame.c (Flast_nonminibuf_frame): ... to here.
4800 (check_minibuf_window): Don't abort if no window was found
4801 (Bug#15247).
4802
48032013-09-02 Dmitry Antipov <dmantipov@yandex.ru>
4804
4805 Use XGetMotionEvents to ask the last mouse motion time from X server.
4806 * xterm.c (X_MOTION_HISTORY): Default to 1.
4807 (x_last_mouse_movement_time) [X_MOTION_HISTORY]: New function.
4808 (x_last_mouse_movement_time) [!X_MOTION_HISTORY]: Legacy version.
4809 (note_mouse_movement, x_scroll_bar_note_movement) [!X_MOTION_HISTORY]:
4810 Ifdef away legacy code.
4811 (XTmouse_position, x_scroll_bar_report_motion):
4812 Use x_last_mouse_movement_time.
4813 (handle_one_xevent): Use event.xunmap and not event.xmap when handling
4814 UnmapNotify event.
4815
48162013-09-02 Dmitry Antipov <dmantipov@yandex.ru>
4817
4818 * msdos.c (last_mouse_window): Move to...
4819 (dos_rawgetc): ...this function and adjust comment.
4820 * nsterm.m (last_window): Rename to last_mouse_window, move to...
4821 (mouseMoved): ...this function and adjust comment.
4822 * w32term.c (last_window): Likewise with...
4823 (w32_read_socket): ...this function.
4824 * xterm.c (last_window): Likewise with...
4825 (handle_one_xevent): ...this function.
4826
48272013-09-02 Dmitry Antipov <dmantipov@yandex.ru>
4828
4829 * window.h (Vmouse_window, Vmouse_event): Remove the leftovers.
4830 * xterm.c (toplevel): Drop obsolete comment and move compose_status...
4831 (handle_one_xevent): ...to here.
4832 (STORE_KEYSYM_FOR_DEBUG): Move under ENABLE_CHECKING and make no-op
4833 otherwise.
4834
48352013-09-02 Dmitry Antipov <dmantipov@yandex.ru>
4836
4837 * msdos.c (IT_set_terminal_window): Remove no-op.
4838 (initialize_msdos_display): Adjust terminal setup.
4839 * w32console.c (w32con_set_terminal_window): Remove no-op.
4840 (initialize_w32_display): Adjust terminal setup.
4841 * w32term.c (w32_set_terminal_window): Remove no-op.
4842 (w32_create_terminal): Adjust terminal setup.
4843 * xterm.c (XTset_terminal_window): Remove no-op.
4844 (x_create_terminal): Adjust terminal setup.
4845
48462013-09-01 Dmitry Antipov <dmantipov@yandex.ru>
4847
4848 * nsterm.m (ns_set_terminal_modes, ns_reset_terminal_modes):
4849 Remove no-ops.
4850 (ns_create_terminal): Adjust terminal setup.
4851 * w32term.c (w32_set_terminal_modes, w32_reset_terminal_modes):
4852 Remove no-ops.
4853 (w32_create_terminal): Adjust terminal setup.
4854 * xterm.c (XTset_terminal_modes, XTreset_terminal_modes):
4855 Remove no-ops.
4856 (x_create_terminal): Adjust terminal setup.
4857
48582013-09-01 Dmitry Antipov <dmantipov@yandex.ru>
4859
4860 * dispextern.h (SET_TEXT_POS_FROM_MARKER): Indent.
4861 (CLIP_TEXT_POS_FROM_MARKER): New macro.
4862 * dispnew.c (buffer_posn_from_coords):
4863 * window.c (Fwindow_end, displayed_window_lines):
4864 * xdisp.c (redisplay_mode_lines): Use it.
4865
48662013-09-01 Jan Djärv <jan.h.d@swipnet.se>
4867
4868 * fontset.c (face_for_char): Check char in the current face font first
4869 if HAVE_NS (Bug#15138).
4870
48712013-08-31 Martin Rudalics <rudalics@gmx.at>
4872
4873 * window.c (temp_output_buffer_show): Make sure window returned
4874 by display_buffer is live (Bug#15213).
4875
48762013-08-30 Dmitry Antipov <dmantipov@yandex.ru>
4877
4878 Minor cleanup to avoid forward declarations.
4879 * coding.h (struct ccl_spec): Remove forward declaration.
4880 * composite.h (toplevel): Include font.h.
4881 (struct composition_it, struct face, struct font_metrics):
4882 Remove forward declaration.
4883 * dispextern.h (struct image, struct atimer): Likewise.
4884 * emacsgtkfixed.h (struct frame): Likewise.
4885 * emacsgtkfixed.c (toplevel): Reorder headers and drop stdio.h.
4886 * font.h (struct font_driver, struct font, struct glyph_string)
4887 (struct face): Remove forward declaration.
4888 * fontset.h (struct face, struct font): Likewise.
4889 * frame.h (toplevel): Style cleanup.
4890 (enum output_method): Move to...
4891 * termhooks.h (enum output_method): ...here.
4892 (struct glyph, struct frame, struct ns_display_info)
4893 (struct x_display_info, struct w32_display_info):
4894 Remove forward declaration.
4895 * xterm.h (toplevel): Include termhooks.h.
4896 (struct font, struct window, struct glyph_matrix, struct frame)
4897 (struct input_event, struct face, struct image): Remove forward
4898 declaration.
4899 * gtkutil.h (struct _widget_value): Likewise.
4900 * keyboard.h (toplevel): Include termhooks.h.
4901 (struct input_event): Remove forward declaration.
4902
49032013-08-29 Dmitry Antipov <dmantipov@yandex.ru>
4904
4905 * intervals.c (set_point_from_marker): New function.
4906 * editfns.c (Fgoto_char):
4907 * process.c (Finternal_default_process_filter):
4908 * window.c (select_window_1): Use it.
4909 * buffer.h (set_point_from_marker): Add prototype.
4910
49112013-08-29 Eli Zaretskii <eliz@gnu.org>
4912
4913 * w32.c (term_winsock): Call release_listen_threads before calling
4914 WSACleanup.
4915 (_sys_wait_accept): Wait for accept event in a loop with a finite
4916 timeout, instead of waiting indefinitely. Will hopefully avoid
4917 hanging during exit because WSACleanup deadlocks waiting for the
4918 event object to be released. (Bug#14333)
4919
4920 * w32proc.c (release_listen_threads): New function, signals all
4921 the reader threads that listen for connections to stop waiting.
4922
4923 * w32.h (release_listen_threads): Add prototype.
4924
49252013-08-29 Dmitry Antipov <dmantipov@yandex.ru>
4926
4927 * alloc.c (Fmake_marker, build_marker): Zero need_adjustment
4928 field of new marker (for sanity and safety).
4929 * lisp.h (XSETMARKER): Remove unused macro (it doesn't work
4930 anyway because XMISCTYPE is a function and can't be an lvalue).
4931
49322013-08-29 Dmitry Antipov <dmantipov@yandex.ru>
4933
4934 * xterm.c (x_clear_area): Lost 7th arg because it is always False.
4935 (x_after_update_window_line, x_scroll_bar_create):
4936 (x_scroll_bar_set_handle, XTset_vertical_scroll_bar):
4937 (handle_one_xevent, x_clear_frame_area):
4938 * gtkutil.c (xg_clear_under_internal_border, xg_update_scrollbar_pos):
4939 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines): Adjust users.
4940 * xterm.h (x_clear_area): Adjust prototype.
4941
49422013-08-29 Dmitry Antipov <dmantipov@yandex.ru>
4943
4944 Hook scanning and indentation functions to find_newline. This helps
4945 to avoid duplicated code and renders more respect to newline cache.
4946 * lisp.h (scan_newline): Prefer ptrdiff_t to EMACS_INT.
4947 * cmds.c (Fforward_line):
4948 * indent.c (scan_for_column, Fcurrent_indentation, indented_beyond_p):
4949 Use find_newline and avoid unnecessary point movements.
4950 * search.c (scan_newline): Implement on top of find_newline.
4951
49522013-08-28 Stefan Monnier <monnier@iro.umontreal.ca>
4953
4954 * eval.c (Ffuncall): Fix handling of ((lambda ..) ..) in lexically
4955 scoped code (bug#11258).
4956
49572013-08-28 Davor Cubranic <cubranic@stat.ubc.ca> (tiny change)
4958
4959 * nsterm.m (last_window): New variable.
4960 (EV_TRAILER2): New macro.
4961 (EV_TRAILER): Call EV_TRAILER2.
4962 (mouseMoved:): Add support for mouse-autoselect-window
4963 on nextstep (Bug#6888).
4964
49652013-08-28 Andreas Schwab <schwab@suse.de>
4966
4967 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE, CHAR_HEAD_P)
4968 (SINGLE_BYTE_CHAR_P, SAME_CHARSET_P, MAKE_CHAR, BYTE8_TO_CHAR):
4969 Remove unused macro definitions.
4970 (CHARSET_RANGE_TABLE_BITS, EXTEND_RANGE_TABLE)
4971 (SET_RANGE_TABLE_WORK_AREA_BIT, SET_RANGE_TABLE_WORK_AREA):
4972 Only define if emacs.
4973
49742013-08-28 Dmitry Antipov <dmantipov@yandex.ru>
4975
4976 Prefer enum glyph_row_area to int where appropriate.
4977 * dispextern.h (enum glyph_row_area): Add ANY_AREA member.
4978 Fix comment.
4979 (window_box, window_box_width, window_box_left, window_box_left_offset)
4980 (window_box_right, window_box_right_offset): Adjust prototypes.
4981 * xdisp.c (window_box, window_box_width, window_box_left)
4982 (window_box_left_offset, window_box_right, window_box_right_offset):
4983 Use enum glyph_row_area. Adjust users and tweak comment where needed.
4984 (window_box_edges): Likewise. Lost 2nd arg since it is always ANY_AREA.
4985 * nsterm.m (ns_clip_to_row):
4986 * w32term.c (w32_clip_to_row):
4987 * xterm.c (x_clip_to_row): Likewise.
4988
49892013-08-28 Dmitry Antipov <dmantipov@yandex.ru>
4990
4991 * buffer.c (Foverlays_at, Foverlays_in, Fnext_overlay_change)
4992 (Fprevious_overlay_change): Fast path for buffer with no overlays.
4993
49942013-08-28 Paul Eggert <eggert@cs.ucla.edu>
4995
4996 * Makefile.in (SHELL): Now @SHELL@, not /bin/sh,
4997 for portability to hosts where /bin/sh has problems.
4998
49992013-08-28 Dmitry Antipov <dmantipov@yandex.ru>
5000
5001 Redesign redisplay interface to drop global output_cursor.
5002 * dispextern.h (struct redisplay_interface): Remove cursor_to member.
5003 (toplevel): Remove declaration of output_cursor.
5004 (set_output_cursor, x_cursor_to): Remove prototype.
5005 * window.h (struct window): New member output_cursor.
5006 (output_cursor_to): New function to replace RIF member.
5007 * dispnew.c (redraw_overlapped_rows, update_marginal_area)
5008 (update_text_area, set_window_cursor_after_update): Use it.
5009 * xdisp.c (output_cursor, set_output_cursor, x_cursor_to): Remove.
5010 (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
5011 * nsterm.m (ns_update_window_begin, ns_update_window_end):
5012 * w32term.c (x_update_window_begin, x_update_window_end):
5013 * xterm.c (x_update_window_begin, x_update_window_end):
5014 Adjust to use per-window output cursor.
5015
50162013-08-27 Paul Eggert <eggert@cs.ucla.edu>
5017
5018 Simplify SELECT_TYPE-related code.
5019 Like EMACS_TIME, this portability layer is no longer needed, since
5020 Emacs has been using fd_set as a portability layer for some time.
5021 * sysselect.h (FD_SETSIZE): Rename from MAXDESC. All uses changed.
5022 (SELECT_TYPE): Remove. All uses changed to fd_set.
5023 (fd_set) [!FD_SET]: New typedef.
5024
5025 Simplify EMACS_TIME-related code.
5026 This portability layer is no longer needed, since Emacs has been
5027 using struct timespec as a portability layer for some time.
5028 * atimer.h, buffer.h, dispextern.h, xgselect.h:
5029 Include <time.h> rather than "systime.h"; that's all that's needed now.
5030 * dispnew.c: Include <timespec.h> rather than "systime.h";
5031 that's all that's needed now.
5032 * systime.h (EMACS_TIME): Remove. All uses changed to struct timespec.
5033 (EMACS_TIME_RESOLUTION): Remove. All uses changed to
5034 TIMESPEC_RESOLUTION.
5035 (LOG10_EMACS_TIME_RESOLUTION): Remove. All uses changed to
5036 LOG10_TIMESPEC_RESOLUTION.
5037 (EMACS_SECS, emacs_secs_addr): Remove. All uses changed to tv_sec.
5038 (EMACS_NSECS): Remove. All uses changed to tv_nsec.
5039 (make_emacs_time): Remove. All used changed to make_timespec.
5040 (invalid_timespec): Rename from invalid_emacs_time. All uses changed.
5041 (current_timespec): Rename from current_emacs_time. All uses changed.
5042 (add_emacs_time): Remove. All uses changed to timespec_add.
5043 (sub_emacs_time): Remove. All uses change dot timespec_sub.
5044 (EMACS_TIME_SIGN): Remove. All uses changed to timespec_sign.
5045 (timespec_valid_p): Rename from EMACS_TIME_VALID_P. All uses changed.
5046 (EMACS_TIME_FROM_DOUBLE): Remove. All uses changed to dtotimespec.
5047 (EMACS_TIME_TO_DOUBLE): Remove. All uses changed to timespectod.
5048 (current_timespec): Rename from current_emacs_time. All uses changed.
5049 (EMACS_TIME_EQ, EMACS_TIME_LT, EMACS_TIME_LE): Remove. All uses
5050 changed to timespec_cmp.
5051 * xgselect.c: Include <timespec.h>, since our .h files don't.
5052
50532013-08-27 Dmitry Antipov <dmantipov@yandex.ru>
5054
5055 * xterm.h (FONT_TYPE_FOR_UNIBYTE, FONT_TYPE_FOR_MULTIBYTE:)
5056 * nsterm.h (FONT_TYPE_FOR_UNIBYTE, FONT_TYPE_FOR_MULTIBYTE):
5057 Remove the leftovers.
5058 * gtkutil.c (toplevel): Do not declare Qxft but include
5059 font.h to do so.
5060 * image.c (toplevel): Do not declare Vlibrary_cache because
5061 it's already done in lisp.h.
5062
50632013-08-27 Dmitry Antipov <dmantipov@yandex.ru>
5064
5065 * lisp.h (Mouse_HLInfo): Move from here...
5066 * dispextern.h (Mouse_HLInfo): ...to here and offload lisp.h.
5067 (reset_mouse_highlight): New function.
7702 * msdos.c (dos_set_window_size, IT_update_begin) 5068 * msdos.c (dos_set_window_size, IT_update_begin)
7703 (IT_frame_up_to_date, IT_set_frame_parameters): Use FVAR and WVAR 5069 (internal_terminal_init):
7704 instead of direct references. 5070 * nsterm.m (ns_update_window_end, x_free_frame_resources)
7705 5071 (ns_initialize_display_info):
77062012-08-04 Paul Eggert <eggert@cs.ucla.edu> 5072 * w32console.c (initialize_w32_display):
7707 5073 * w32term.c (x_update_window_end, x_free_frame_resources)
7708 Export DEFAULT_REHASH_* to GDB. 5074 (w32_initialize_display_info):
7709 * lisp.h (DEFAULT_REHASH_THRESHOLD, DEFAULT_REHASH_SIZE): 5075 * xterm.c (x_update_window_end, x_free_frame_resources, x_term_init):
7710 Now constants, not macros. 5076 * window.c (Fdelete_other_windows_internal):
7711 5077 * xdisp.c (clear_mouse_face, cancel_mouse_face): Use it.
77122012-08-03 Paul Eggert <eggert@cs.ucla.edu> 5078 * termchar.h (toplevel):
7713 5079 * xterm.h (toplevel): Include dispextern.h.
7714 Remove unnecessary casts involving pointers. 5080
7715 These casts are no longer needed now that we assume C89 or later, 50812013-08-26 Paul Eggert <eggert@cs.ucla.edu>
7716 since they involve casting to or from void *.
7717 * alloc.c (make_pure_string, make_pure_c_string, pure_cons)
7718 (make_pure_float, make_pure_vector):
7719 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP):
7720 * macros.c (Fstart_kbd_macro):
7721 * menu.c (find_and_return_menu_selection):
7722 * minibuf.c (read_minibuf_noninteractive):
7723 * sysdep.c (closedir):
7724 * xdisp.c (x_produce_glyphs):
7725 * xfaces.c (compare_fonts_by_sort_order):
7726 * xfns.c (x_real_positions, select_visual):
7727 * xselect.c (x_stop_queuing_selection_requests)
7728 (x_get_window_property, x_get_window_property_as_lisp_data):
7729 * xterm.c (x_set_frame_alpha, x_find_modifier_meanings):
7730 Remove unnecessary pointer casts.
7731 * alloc.c (record_xmalloc): New function.
7732 * lisp.h (record_xmalloc): New decl.
7733 (SAFE_ALLOCA): Now takes just one arg -- the size -- and acts
7734 more like a function. This is because the pointer cast is not
7735 needed. All uses changed.
7736 * print.c (print_string, print_error_message): Avoid length recalc.
7737
7738 Improve fix for macroexp crash with debugging (Bug#12118).
7739 * lisp.h (ASET) [ENABLE_CHECKING]: Pay attention to
7740 ARRAY_MARK_FLAG when checking subscripts, because ASET is
7741 not supposed to be invoked from the garbage collector.
7742 See Andreas Schwab in <http://bugs.gnu.org/12118#25>.
7743 (gc_aset): New function, which is like ASET but can be
7744 used in the garbage collector.
7745 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
7746 (set_hash_index): Use it instead of ASET.
7747
77482012-08-03 Eli Zaretskii <eliz@gnu.org>
7749
7750 Support symlinks on latest versions of MS-Windows.
7751 * w32.c: Include winioctl.h and aclapi.h.
7752 (is_symlink, chase_symlinks, enable_privilege, restore_privilege)
7753 (revert_to_self): Forward declarations of static functions.
7754 <static BOOL g_b_init_get_security_info>:
7755 <g_b_init_create_symbolic_link>: New static flags.
7756 (globals_of_w32): Initialize them to zero.
7757 (GetSecurityInfo_Proc, CreateSymbolicLink_Proc): New typedefs.
7758 (map_w32_filename): Improve commentary. Simplify switch.
7759 (SYMBOLIC_LINK_FLAG_DIRECTORY): Define if not defined in system
7760 headers (most versions of MinGW w32api don't).
7761 (get_security_info, create_symbolic_link)
7762 (get_file_security_desc_by_handle, is_symlink, chase_symlinks):
7763 New functions.
7764 (sys_access, sys_chmod): Call 'chase_symlinks' to resolve symlinks
7765 in the argument file name.
7766 (sys_access): Call unc_volume_file_attributes only if
7767 GetFileAttributes fails with network-related error codes.
7768 (sys_rename): Diagnose renaming of a symlink when the user doesn't
7769 have the required privileges.
7770 (get_file_security_desc_by_name): Rename from
7771 get_file_security_desc.
7772 (stat_worker): New function, with most of the guts of 'stat', and
7773 with addition of handling of symlinks and support for 'lstat'.
7774 If possible, get file's attributes and security information by
7775 handle, not by name. Produce S_IFLNK bit for symlinks, when
7776 called from 'lstat'.
7777 (stat, lstat): New functions, call 'stat_worker'.
7778 (symlink, readlink, careadlinkat): Rewritten to create and resolve
7779 symlinks when the underlying filesystem supports them.
7780
77812012-08-02 Paul Eggert <eggert@cs.ucla.edu>
7782
7783 Fix macroexp crash on Windows with debugging (Bug#12118).
7784 * lisp.h (ASET) [ENABLE_CHECKING]: Ignore ARRAY_MARK_FLAG when
7785 checking subscripts; problem introduced with the recent
7786 "ASET (a, i, v)" rather than "AREF (a, i) = v" patch.
7787 (ARRAY_MARK_FLAG): Now a macro as well as a constant,
7788 since it's used in non-static inline functions now.
7789
7790 * xfaces.c (face_at_buffer_position, face_for_overlay_string):
7791 Don't assume buffer size fits in 'int'. Remove unused local.
7792
7793 Use C99-style 'extern inline' if available.
7794 * buffer.h (BUFFER_INLINE):
7795 * category.h (CATEGORY_INLINE):
7796 * character.h (CHARACTER_INLINE):
7797 * charset.h (CHARSET_INLINE):
7798 * composite.h (COMPOSITE_INLINE):
7799 * dispextern.h (DISPEXTERN_INLINE):
7800 * lisp.h (LISP_INLINE):
7801 * systime.h (SYSTIME_INLINE):
7802 New macro, replacing 'static inline' in this header.
7803 * buffer.h, category.h, character.h, charset.h, composite.h:
7804 * dispextern.h, lisp.h, systime.h:
7805 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
7806 * alloc.c (LISP_INLINE):
7807 * buffer.c (BUFFER_INLINE):
7808 * category.c (CATEGORY_INLINE):
7809 * character.c (CHARACTER_INLINE):
7810 * charset.c (CHARSET_INLINE):
7811 * composite.c (COMPOSITE_INLINE):
7812 * dispnew.c (DISPEXTERN_INLINE):
7813 * sysdep.c (SYSTIME_INLINE):
7814 Define to EXTERN_INLINE, so that the corresponding functions
7815 are compiled into code.
7816 * conf_post.h (INLINE, EXTERN_INLINE, INLINE_HEADER_BEGIN)
7817 (INLINE_HEADER_END): New macros.
7818 * lisp.h (PSEUDOVECTOR_FLAG): Now a macro as well as a constant,
7819 since it's used in non-static inline functions now.
7820 (VALMASK) [!USE_LSB_TAG]: Likewise.
7821
78222012-08-02 Glenn Morris <rgm@gnu.org>
7823
7824 * s/: Remove empty directory.
7825
7826 * s/ms-w32.h: Move to ../nt/inc.
7827 * makefile.w32-in (TAGS, TAGS-gmake, MS_W32_H):
7828 Update for new ms-w32.h location.
7829
78302012-08-02 Paul Eggert <eggert@cs.ucla.edu>
7831
7832 Port to Solaris 8.
7833 * syswait.h (WRETCODE): Remove, consistently with ../configure.ac.
7834
78352012-08-02 Glenn Morris <rgm@gnu.org>
7836
7837 * nsterm.m (ns_exec_path, ns_load_path): Use SEPCHAR rather than
7838 hard-coding the path separator.
7839
78402012-08-01 Paul Eggert <eggert@cs.ucla.edu>
7841
7842 Use "ASET (a, i, v)" rather than "AREF (a, i) = v".
7843 This how ASET and AREF are supposed to work, and makes
7844 it easier to think about future improvements. See
7845 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00026.html>.
7846 * charset.h (set_charset_attr): New function.
7847 All lvalue-style uses of CHARSET_DECODER etc. changed to use it.
7848 * lisp.h (ASET): Rewrite so as not to use AREF in an lvalue style.
7849 (aref_addr): New function. All uses of &AREF(...) changed.
7850 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
7851 (set_hash_index): New functions. All lvalue-style uses of
7852 HASH_KEY etc. changed.
7853 * keyboard.c (set_prop): New function. All lvalue-style uses
7854 of PROP changed.
7855
78562012-08-01 Alp Aker <alp.tekin.aker@gmail.com>
7857
7858 * nsterm.m (ns_set_vertical_scroll_bar, ns_redeem_scroll_bar)
7859 (EmacsWindow-accessibilityAttributeValue, EmacsScroller-initFrame:)
7860 (EmacsScroller-dealloc): Adjust to use WVAR. (Bug#12114)
7861 * nsfns.m (ns_set_name_as_filename): Likewise.
7862 * nsmenu.m (ns_update_menubar): Likewise.
7863 * nsselect.m (symbol_to_nsstring): Adjust to use SVAR.
7864
78652012-08-01 Eli Zaretskii <eliz@gnu.org>
7866
7867 * .gdbinit (xcar, xcdr, xlist, xwindow, nextcons, xprintsym):
7868 Adapt to latest changes in field names of the corresponding Lisp
7869 objects.
7870 5082
7871 * xdisp.c (try_window_id): Use WVAR in IF_DEBUG code. 5083 Fix minor problems found by static checking.
7872 5084 * image.c (XGetPixel, XPutPixel) [HAVE_NS]: Now static.
78732012-08-01 Glenn Morris <rgm@gnu.org> 5085 (expect): Avoid nested-if warning.
7874 5086 (x_build_heuristic_mask) [HAVE_NS]: Avoid unused-var warning.
7875 * s/msdos.h: Remove file. 5087 * nsmenu.m (fillWithWidgetValue:): Avoid type warning.
7876 * conf_post.h [MSDOS]: New section, moved from s/msdos.h. 5088 * nsterm.h, nsterm.m (ns_select):
7877 * Makefile.in (S_FILE): Remove. 5089 * xgselect.c, xgselect.h (xg_select):
7878 (config_h): Remove S_FILE. 5090 Adjust signature to better match pselect's.
7879 5091 * nsterm.m (ns_select):
78802012-08-01 Juanma Barranquero <lekktu@gmail.com> 5092 Don't set *TIMEOUT, since pselect doesn't.
7881 5093 * regex.c (whitespace_regexp): Now const_re_char *, to avoid
7882 * s/ms-w32.h (DEVICE_SEP, IS_DIRECTORY_SEP, IS_ANY_SEP): 5094 diagnostic about assigning const char * to it.
7883 Remove; moved to nt/config.nt. 5095 * xfaces.c (x_display_info) [HAVE_NS]: Remove; unused.
7884 5096
78852012-08-01 Dmitry Antipov <dmantipov@yandex.ru> 50972013-08-26 Stefan Monnier <monnier@iro.umontreal.ca>
7886 5098
7887 Use INTERNAL_FIELD for conses and overlays. 5099 * lread.c (substitute_object_recurse): Handle hash-tables as well
7888 * lisp.h (struct Lisp_Cons): Use INTERNAL_FIELD. 5100 (bug#15190).
7889 Remove obsolete comment. 5101
7890 (MVAR): New macro. 51022013-08-26 Paul Eggert <eggert@cs.ucla.edu>
7891 (struct Lisp_Overlay): Use INTERNAL_FIELD. 5103
7892 * alloc.c, buffer.c, buffer.h, fns.c: Adjust users. 5104 Fix unlikely core dump in init_tty, and simplify terminfo case.
7893 5105 * term.c (init_tty) [TERMINFO]: Fix check for buffer overrun.
78942012-08-01 Dmitry Antipov <dmantipov@yandex.ru> 5106 The old version incorrectly dumped core if malloc returned a
7895 5107 buffer containing only non-NUL bytes.
7896 Use INTERNAL_FIELD for symbols. 5108 (init_tty): Do not allocate or free termcap buffers; the
7897 * lisp.h (SVAR): New macro. Adjust users. 5109 struct does that for us now.
7898 * alloc.c, bytecode.c, cmds.c, data.c, doc.c, eval.c: 5110 * termchar.h (TERMCAP_BUFFER_SIZE) [!TERMINFO]: New constant.
7899 * fns.c, keyboard.c, lread.c, xterm.c: Users changed. 5111 (struct tty_display_info): Define members termcap_term_buffer and
5112 termcap_strings_buffer only if !TERMINFO, since terminfo doesn't
5113 use them. Allocate them directly in struct rather than indirectly
5114 via a pointer, to simplify init_tty.
5115
5116 * frame.c (check_minibuf_window): Initialize 'window' properly,
5117 so that Emacs reliably aborts later if 'window' is not initialized.
5118
51192013-08-26 Jan Djärv <jan.h.d@swipnet.se>
5120
5121 * gtkutil.c (xg_initialize): Set gtk-menu-bar-accel to "" instead
5122 of VoidSymbol (Bug#15154).
5123
51242013-08-26 Dmitry Antipov <dmantipov@yandex.ru>
5125
5126 * lisp.h (Mouse_HLInfo): Drop set-but-unused members
5127 mouse_face_beg_y and mouse_face_end_y.
5128 * xdisp.c (note_tool_bar_highlight, mouse_face_from_buffer_pos)
5129 (mouse_face_from_string_pos, note_mode_line_or_margin_highlight):
5130 Adjust users and update comment where appropriate.
5131
51322013-08-26 Martin Rudalics <rudalics@gmx.at>
5133
5134 * frame.c (check_minibuf_window): New function.
5135 (delete_frame, Fmake_frame_invisible, Ficonify_frame):
5136 Call check_minibuf_window (Bug#15183).
7900 5137
79012012-08-01 Dmitry Antipov <dmantipov@yandex.ru> 51382013-08-26 Dmitry Antipov <dmantipov@yandex.ru>
7902 5139
7903 Use INTERNAL_FIELD for processes. 5140 * window.h (struct window): Replace last_cursor with last_cursor_vpos
7904 * process.h (PVAR): New macro. Adjust style. 5141 because this is the only last cursor data we need to keep and consult.
7905 (struct Lisp_Process): Change Lisp_Object members to INTERNAL_FIELD. 5142 * window.c (replace_window, set_window_buffer, Fsplit_window_internal):
7906 * print.c, process.c, sysdep.c, w32.c, xdisp.c: Users changed. 5143 * xdisp.c (mark_window_display_accurate_1, try_cursor_movement):
5144 Adjust users.
7907 5145
79082012-08-01 Dmitry Antipov <dmantipov@yandex.ru> 51462013-08-26 Dmitry Antipov <dmantipov@yandex.ru>
7909 5147
7910 Use INTERNAL_FIELD for windows. 5148 Fix recovering from possible decompression error.
7911 * window.h (WVAR): New macro. 5149 Since insert_from_gap doesn't always move point, we can't use PT as
7912 (struct window): Change Lisp_Object members to INTERNAL_FIELD. 5150 the position where the partially decompressed data ends, and
7913 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c: 5151 should count how many bytes was produced so far.
7914 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c: 5152 * decompress.c (struct decompress_unwind_data): Add nbytes member.
7915 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, nsterm.m, print.c: 5153 (unwind_decompress): Really delete partially uncompressed data.
7916 * textprop.c, w32fns.c, w32menu.c, w32term.c, window.c, xdisp.c: 5154 (Fzlib_decompress_region): Take decompressed data size into account.
7917 * xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
7918 5155
79192012-08-01 Paul Eggert <eggert@cs.ucla.edu> 51562013-08-26 Dmitry Antipov <dmantipov@yandex.ru>
7920 5157
7921 * coding.h (CODING_ATTR_FLUSHING): Remove; unused and wouldn't work. 5158 * syntax.c (init_syntax_once): Adjust comment and do an early
5159 initialization of Qchar_table_extra_slots just once...
5160 * casetab.c (init_casetab_once):
5161 * category.c (init_category_once):
5162 * character.c (syms_of_character):
5163 * coding.c (syms_of_coding):
5164 * xdisp.c (syms_of_xdisp): ...and omit it here.
5165
51662013-08-24 Eli Zaretskii <eliz@gnu.org>
5167
5168 * xdisp.c (get_next_display_element): Don't apply to characters
5169 from a display vector the logic of setting it->end_of_box_run_p
5170 suitable for characters from a buffer. (Bug#15175)
5171
5172 * w32.c (fdutimens): Call 'utime', which is implemented on w32.c
5173 to handle directories, rather than '_utime' which doesn't.
5174 (Bug#15176)
5175
51762013-08-24 Jan Djärv <jan.h.d@swipnet.se>
5177
5178 * gtkutil.c (x_wm_set_size_hint): Don't set hints when maximized
5179 or fullscreen (Bug#14627).
5180
51812013-08-24 Paul Eggert <eggert@cs.ucla.edu>
5182
5183 System-dependent integer overflow fixes.
5184 * process.c (Fset_process_window_size): Signal an error if
5185 the window size is outside the range supported by the lower level.
5186 * sysdep.c (set_window_size): Return negative on error,
5187 nonnegative on success, rather than -1, 0, 1 on not in system,
5188 failure, success. This is simpler. Caller changed.
5189 (serial_configure): Remove unnecessary initialization of local.
5190 (procfs_get_total_memory) [GNU_LINUX]: Don't assume system memory
5191 size fits in unsigned long; this isn't true on some 32-bit hosts.
5192 Avoid buffer overrun if some future version of /proc/meminfo has a
5193 variable name longer than 20 bytes.
5194 (system_process_attributes) [__FreeBSD__]:
5195 Don't assume hw.availpages fits in 'int'.
5196
51972013-08-23 Paul Eggert <eggert@cs.ucla.edu>
5198
5199 Don't let very long directory names overrun the stack.
5200 Fix some related minor problems involving "//", vfork.
5201 * callproc.c (encode_current_directory): New function.
5202 (call_process): Don't append "/"; not needed.
5203 * fileio.c (file_name_as_directory_slop): New constant.
5204 (file_name_as_directory): Allow SRC to be longer than SRCLEN;
5205 this can save the caller having to alloca.
5206 (Ffile_name_as_directory, Fdirectory_file_name, Fexpand_file_name):
5207 Use SAFE_ALLOCA, not alloca.
5208 (directory_file_name, Fexpand_file_name): Leave leading "//"
5209 alone, since it can be special even on POSIX platforms.
5210 * callproc.c (call_process):
5211 * process.c (Fformat_network_address):
5212 * sysdep.c (sys_subshell):
5213 Use encode_current_directory rather than rolling our own.
5214 (create_process): No need to encode directory; caller does that now.
5215 * process.h (encode_current_directory): New decl.
5216 * sysdep.c (sys_subshell): Work even if vfork trashes saved_handlers.
5217 Rework to avoid 'goto xyzzy;'.
5218
52192013-08-23 Eli Zaretskii <eliz@gnu.org>
5220
5221 * xdisp.c (handle_face_prop): If the default face was remapped use
5222 the remapped face for strings from prefix properties. (Bug#15155)
5223
52242013-08-23 Dmitry Antipov <dmantipov@yandex.ru>
5225
5226 Minor cleanup for redisplay interface and few related functions.
5227 * frame.h (enum text_cursor_kinds): Move from here...
5228 * dispextern.h (enum text_cursor_kinds): ...to here.
5229 (toplevel): Drop unnecessary declarations.
5230 (struct redisplay_interface): Use bool and enum text_cursor_kinds
5231 in update_window_end_hook and draw_window_cursor functions.
5232 (display_and_set_cursor, x_update_cursor): Adjust prototypes.
5233 * nsterm.m (ns_update_window_end, ns_draw_window_cursor):
5234 * w32term.c (x_update_window_end, w32_draw_window_cursor):
5235 * xterm.c (x_update_window_end, x_draw_window_cursor):
5236 * xdisp.c (display_and_set_cursor, update_window_cursor)
5237 (update_cursor_in_window_tree, x_update_cursor): Use bool and
5238 enum text_cursor_kinds where appropriate.
5239
52402013-08-23 Dmitry Antipov <dmantipov@yandex.ru>
5241
5242 Redesign redisplay interface to drop updated_row and updated_area.
5243 * dispextern.h (updated_row, updated_area): Remove declaration.
5244 (struct redisplay_interface): Pass glyph row and row area parameters
5245 to write_glyphs, insert_glyphs and clear_end_of_line functions.
5246 (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
5247 Adjust prototypes.
5248 * dispnew.c (updated_row, updated_area): Remove.
5249 (redraw_overlapped_rows, update_window_line): Adjust user.
5250 (update_marginal_area, update_text_area): Likewise. Pass updated row
5251 as a parameter. Prefer enum glyph_row_area to int where appropriate.
5252 * xdisp.c (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
5253 Adjust users.
7922 5254
79232012-08-01 Glenn Morris <rgm@gnu.org> 52552013-08-22 Paul Eggert <eggert@cs.ucla.edu>
7924 5256
7925 * lisp.h (IS_DIRECTORY_SEP, IS_DEVICE_SEP, IS_ANY_SEP): 5257 * process.c (flush_pending_output): Remove stub.
7926 Move to configure.ac. 5258 All uses removed.
7927 5259
79282012-08-01 Juanma Barranquero <lekktu@gmail.com> 52602013-08-21 Paul Eggert <eggert@cs.ucla.edu>
7929 5261
7930 * makefile.w32-in (CONFIG_H): Update dependencies. 5262 * callproc.c: Fix race that killed background processes (Bug#15144).
7931 (CONF_POST_H): New macro. 5263 (call_process): New arg TEMPFILE_INDEX. Callers changed.
5264 Record deleted process-id in critical section, not afterwards.
5265 Don't mistakenly kill process created by a call-process invocation
5266 that discards output and does not wait.
7932 5267
7933 * s/ms-w32.h (SEPCHAR, NULL_DEVICE): Remove; moved to nt/config.nt. 52682013-08-21 Dmitry Antipov <dmantipov@yandex.ru>
7934 5269
79352012-07-31 Glenn Morris <rgm@gnu.org> 5270 Fix compilation with GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE
5271 and GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES.
5272 * alloc.c (toplevel): Remove unnecessary nested #if...#endif.
5273 (mark_maybe_object) [!GC_MARK_STACK]: Define to emacs_abort
5274 to shut up compiler in mark_object.
5275 (dump_zombies): Convert to global and add EXTERNALLY_VISIBLE.
7936 5276
7937 * Makefile.in (S_FILE): No longer set by configure. 52772013-08-21 Paul Eggert <eggert@cs.ucla.edu>
7938 5278
7939 * conf_post.h (config_opsysfile): Move earlier, so that WINDOWSNT 5279 * process.c (allocate_pty) [PTY_OPEN]: Set fd's FD_CLOEXEC flag.
7940 is available. 5280 We can't portably rely on PTY_OPEN doing that, even if
7941 (alloca.h) [WINDOWSNT]: Don't include it on MS Windows. 5281 it calls posix_openpt with O_CLOEXEC.
7942 5282
7943 * process.h (NULL_DEVICE): 52832013-08-20 Kenichi Handa <handa@gnu.org>
7944 * emacs.c (SEPCHAR):
7945 * editfns.c (USER_FULL_NAME): Let configure set them.
7946 5284
7947 * s/README, s/template.h: Remove files. 5285 * character.c (string_char): Improve commentary.
7948 5286
7949 * conf_post.h [HPUX]: Undefine HAVE_RANDOM and HAVE_RINT. 52872013-08-20 Paul Eggert <eggert@cs.ucla.edu>
7950 5288
7951 * conf_post.h (AMPERSAND_FULL_NAME, subprocesses): 5289 * image.c (SIGNATURE_DIGESTSIZE): Remove.
7952 Move to configure.ac. 5290 (struct animation_cache): Make signature a flexible array member.
5291 All uses changed. This is a tad slower but may insulate us better
5292 from future changes to ImageMagick.
7953 5293
79542012-07-31 Eli Zaretskii <eliz@gnu.org> 52942013-08-19 Paul Eggert <eggert@cs.ucla.edu>
7955 5295
7956 * .gdbinit (xframe): Adapt to introduction of FVAR and the 5296 * image.c: Shrink memory needed for animation cache.
7957 resulting renaming of 'struct frame' members. 5297 (SIGNATURE_DIGESTSIZE): New constant.
5298 (struct animation_cache): Make 'signature' a fixed size array of bytes.
5299 (imagemagick_create_cache): Copy the signature. This saves
5300 several KB of memory that ImageMagick wastes per signature.
5301 Don't bother updating the update_time, as the caller does that now.
5302 (imagemagick_prune_animation_cache): Don't destroy the signature, as
5303 it's a fixed size struct member now.
5304 (imagemagick_get_animation_cache): Always destroy the signature,
5305 as it's now imagemagick_create_cache's responsibility to copy it.
5306 Avoid duplicate calls to strcmp and to imagemagick_create_cache,
5307 and use memcmp rather than strcmp.
5308 eassert that ImageMagick returns a signature of the specified length.
7958 5309
7959 * w32menu.c (w32_menu_show): Revert bogus introduction of FVAR. 53102013-08-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
7960 5311
7961 * fontset.c (dump_fontset): Fix compilation with ENABLE_CHECKING 5312 * image.c (imagemagick_get_animation_cache): Don't segfault on
7962 after introduction of FVAR. 5313 each invocation.
5314 (imagemagick_get_animation_cache): Revert to previous definition
5315 so that it actually works. But keep the memory leak fix.
5316 (imagemagick_get_animation_cache): Fix memory leak.
7963 5317
79642012-07-31 Jan Djärv <jan.h.d@swipnet.se> 53182013-08-19 Paul Eggert <eggert@cs.ucla.edu>
7965 5319
7966 * nsmenu.m (update_frame_tool_bar): Change key from NSObject* to id. 5320 * image.c: Fix animation cache signature memory leak.
5321 Fix some other minor performance problems while we're at it.
5322 (imagemagick_create_cache): Clear just the members that
5323 need clearing. Don't set update_time, as caller does that now.
5324 (imagemagick_prune_animation_cache, imagemagick_get_animation_cache):
5325 Simplify by using pointer-to-pointer instead of a prev pointer.
5326 (imagemagick_prune_animation_cache): Use make_emacs_time rather
5327 than EMACS_TIME_FROM_DOUBLE, and DestroyString rather than free.
5328 (imagemagick_get_animation_cache): Don't xstrdup the image signature;
5329 it's already a copy. Free the signature probe unless it's cached.
7967 5330
7968 * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Use drawInRect 5331 * process.c (handle_child_signal): Fix crash; deleted pid (Bug#15106).
7969 instead of compositeToPoint. 5332 This was introduced by my 2013-08-12 fix for Bug#15035.
7970 (applicationShouldTerminate): Pass NS String literal to NSRunAlertPanel.
7971 5333
7972 * nsfns.m, nsmenu.m, nsterm.m: Adopt to struct frame/FVAR changes. 53342013-08-19 Dmitry Antipov <dmantipov@yandex.ru>
7973 5335
79742012-07-31 Dmitry Antipov <dmantipov@yandex.ru> 5336 * image.c (imagemagick_create_cache, imagemagick_get_animation_cache)
5337 (imagemagick_prune_animation_cache): Now static.
7975 5338
7976 Generalize INTERNAL_FIELD between buffers, keyboards and frames. 53392013-08-18 Lars Magne Ingebrigtsen <larsi@gnus.org>
7977 * lisp.h (INTERNAL_FIELD): New macro.
7978 * buffer.h (BUFFER_INTERNAL_FIELD): Remove.
7979 (BVAR): Change to use INTERNAL_FIELD.
7980 * keyboard.h (KBOARD_INTERNAL_FIELD): Likewise.
7981 (KVAR): Change to use INTERNAL_FIELD.
7982 * frame.h (FVAR): New macro.
7983 (struct frame): Use INTERNAL_FIELD for all Lisp_Object fields.
7984 * alloc.c, buffer.c, data.c, dispnew.c, dosfns.c, eval.c, frame.c:
7985 * fringe.c, gtkutil.c, minibuf.c, nsfns.m, nsterm.m, print.c:
7986 * term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
7987 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
7988 5340
79892012-07-31 Dmitry Antipov <dmantipov@yandex.ru> 5341 * image.c (imagemagick_get_animation_cache): Don't segfault when
5342 pruning all entries.
7990 5343
7991 Miscellaneous fixes for non-default X toolkits. 53442013-08-18 Ken Brown <kbrown@cornell.edu>
7992 * xfns.c (Fx_file_dialog): Change to SSDATA to avoid warnings.
7993 * xterm.c (x_frame_of_widget): Remove redundant prototype.
7994 Move under #ifdef USE_LUCID.
7995 (x_create_toolkit_scroll_bar): Adjust scroll_bar_name
7996 definition and usage to avoid warnings.
7997 5345
79982012-07-31 Jan Djärv <jan.h.d@swipnet.se> 5346 * sheap.c (STATIC_HEAP_SIZE): Adjust to current needs; use bigger
5347 static heap if ENABLE_CHECKING is defined.
5348 (max_bss_sbrk_ptr): New variable.
5349 (bss_sbrk): Use it.
5350 (report_sheap_usage): Report maximum static heap usage instead of
5351 ending static heap usage.
7999 5352
8000 * nsterm.m (openFiles): Fix previous checkin. 53532013-08-17 Eli Zaretskii <eliz@gnu.org>
8001 5354
80022012-07-31 Paul Eggert <eggert@cs.ucla.edu> 5355 * decompress.c (Fzlib_available_p) [WINDOWSNT]: Update the value
5356 of zlib_initialized according to the results of calling
5357 init_zlib_functions.
8003 5358
8004 * indent.c (compute_motion): Remove unused local. 53592013-08-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
8005 5360
80062012-07-31 Glenn Morris <rgm@gnu.org> 5361 * image.c: Implement an ImageMagick per-image cache.
5362 (imagemagick_get_animation_cache): Fix a double-free error.
5363 (imagemagick_load_image): Remove the ping_wand code, which only
5364 apparently saved time on invalid animated images, and slowed down
5365 everything else. Optimise for the common case.
8007 5366
8008 * s/usg5-4-common.h (wait3, WRETCODE): Let configure set them. 53672013-08-16 Xue Fuqiao <xfq.free@gmail.com>
8009 5368
8010 * conf_post.h [USG5_4]: 5369 * buffer.c (syms_of_buffer) <buffer-undo-list>: Doc fix.
8011 Move remaining contents of s/usg5-4-common.h here.
8012 * s/usg5-4-common.h: Remove file.
8013 5370
8014 * conf_post.h [IRIX6_5]: Move remaining contents of s/irix6-5.h here. 5371 * editfns.c (insert_before_markers): Mention overlay in the doc string.
8015 * s/irix6-5.h: Remove file.
8016 5372
8017 * conf_post.h [DARWIN_OS]: Move remaining contents of s/darwin.h here. 5373 * marker.c (set_marker): Remove documentation of undefined behavior.
8018 * s/darwin.h: Remove file.
8019 5374
8020 * conf_post.h [HPUX]: Move random, srandom here from s/hpux10-20.h. 53752013-08-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
8021 * s/hpux10-20.h: Remove file, which is now empty.
8022 5376
80232012-07-30 Glenn Morris <rgm@gnu.org> 5377 * image.c (imagemagick_compute_animated_image): Animate correctly
5378 when sub-images are smaller than the main image.
5379 (imagemagick_compute_animated_image): Setting the iterator row to
5380 zero is apparently not allowed.
5381 (imagemagick_compute_animated_image): Allow images that say they
5382 have sub-images that are bigger than the main image, but just crop
5383 them.
8024 5384
8025 * conf_post.h: New, split from configure.ac's AH_BOTTOM. 53852013-08-15 Jan Djärv <jan.h.d@swipnet.se>
8026 * Makefile.in (config_h): Add conf_post.h.
8027 * makefile.w32-in (CONFIG_H): Add conf_post.h.
8028 5386
80292012-07-30 Jan Djärv <jan.h.d@swipnet.se> 5387 * nsmenu.m (menuWillOpen:): Fix preprocessor test (Bug#15001).
8030 5388
8031 * nsterm.m (ns_do_open_file): New variable. 53892013-08-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
8032 (ns_term_init): Set ns_do_open_file to YES after run returns.
8033 (openFile, openTempFile, openFileWithoutUI, openFiles):
8034 Open files only if ns_do_open_file.
8035 5390
80362012-07-30 Paul Eggert <eggert@cs.ucla.edu> 5391 * image.c (imagemagick_compute_animated_image): Respect the GIF
5392 disposal methods.
8037 5393
8038 * lisp.h (SWITCH_ENUM_CAST): Remove. All uses removed. 53942013-08-15 Ken Brown <kbrown@cornell.edu>
8039 This no-op macro hasn't been needed for many years.
8040 * src/regex.c (SWITCH_ENUM_CAST) [!emacs]: Likewise.
8041 5395
8042 Export DIRECTORY_SEP, TYPEMASK, VALMASK to GDB. 5396 * emacs.c (main): Update comment about G_SLICE_ALWAYS_MALLOC.
8043 * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]: Add lsb_bits. 5397 * gmalloc.c (memalign) [CYGWIN]: Revert last change; it's not
8044 * lisp.h (enum lsb_bits) [USE_LSB_TAG]: New enum, for 5398 needed.
8045 gdb_make_enums_visible.
8046 (TYPEMASK, VALMASK) [USE_LSB_TAGS]: Now enum constants, not macros.
8047 (DIRECTORY_SEP): Now a constant, not a macro.
8048 5399
80492012-07-30 Eli Zaretskii <eliz@gnu.org> 54002013-08-15 Paul Eggert <eggert@cs.ucla.edu>
8050 5401
8051 * w32fns.c (w32_wnd_proc): Pass w32_keyboard_codepage to 5402 Fix minor problems found by static checking.
8052 w32_kbd_patch_key as the 2nd arg. (Bug#12082) 5403 * frame.c (delete_frame):
5404 * xdisp.c (next_element_from_display_vector):
5405 Avoid uninitialized local.
5406 * image.c (imagemagick_compute_animated_image): Port to C89.
5407 Prefer usual GNU indentation style for loops.
5408 Be more careful about bizarrely large sizes, by using ptrdiff_t
5409 instead of int.
5410
54112013-08-15 Dmitry Antipov <dmantipov@yandex.ru>
5412
5413 Fix infinite frame selection loop (Bug#15025).
5414 * frame.c (delete_frame): Prefer fast ad-hoc loop to next_frame.
5415
54162013-08-15 Eli Zaretskii <eliz@gnu.org>
5417
5418 * xdisp.c (compute_window_start_on_continuation_line):
5419 When WORD_WRAP is in effect, use move_it_to instead of move_it_by_lines
5420 to make sure we end up setting the window start at the leftmost
5421 visible character of the display line. This avoids funky
5422 horizontal shifting because the window start is not kept on the
5423 same position. (Bug#15090)
5424 (next_element_from_display_vector): Support 'box' face attribute
5425 in the face definitions of a display vector. (Bug#15099)
5426
54272013-08-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
5428
5429 * image.c (imagemagick_compute_animated_image): Implement animated
5430 images (bug#14700).
5431 (imagemagick_compute_animated_image): Fix some compilation
5432 warnings. Implement a very simple cache to make the animation
5433 usable at all, but it should be replaced with a per-image cache.
5434
54352013-08-15 Dmitry Antipov <dmantipov@yandex.ru>
5436
5437 * lisp.h (FOR_EACH_ALIST_VALUE): New macro
5438 to do `for' loops over alist values.
5439 * buffer.h (FOR_EACH_BUFFER):
5440 * process.c (FOR_EACH_PROCESS): Use it.
5441 (handle_child_signal, status_notify, Fget_buffer_process)
5442 (kill_buffer_processes): Use FOR_EACH_PROCESS.
5443
54442013-08-15 Dmitry Antipov <dmantipov@yandex.ru>
5445
5446 * term.c (get_named_tty, create_tty_output, tty_free_frame_resources)
5447 (tty_free_frame_resources, delete_tty): Prefer eassert to emacs_abort.
5448 * image.c (make_image_cache): For struct image_cache, prefer xmalloc
5449 to xzalloc and so avoid redundant call to memset.
5450 * xterm.c (x_term_init): Avoid unnecessary initializations of dpyinfo
5451 members because it is allocated with xzalloc and so already zeroed.
5452
54532013-08-14 Ken Brown <kbrown@cornell.edu>
5454
5455 * gmalloc.c (memalign) [CYGWIN]: Rename to emacs_memalign
5456 (Bug#15094).
5457
54582013-08-14 Dmitry Antipov <dmantipov@yandex.ru>
5459
5460 Utility function and macro to copy Lisp string to C string.
5461 * lisp.h (xlispstrdupa): New macro.
5462 (xlispstrdup): New prototype.
5463 * alloc.c (xlispstrdup): New function.
5464 * callint.c (Fcall_interactively):
5465 * fileio.c (Ffile_name_directory, Fexpand_file_name)
5466 (Fsubstitute_in_file_name):
5467 * frame.c (Fmake_terminal_frame): Use xlispstrdupa.
5468 * image.c (x_create_bitmap_from_file):
5469 * w32term.c (w32_term_init):
5470 * xterm.c (x_term_init): Use xlispstrdup.
8053 5471
8054 * w32term.c <w32_keyboard_codepage>: Renamed from 54722013-08-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
8055 keyboard_codepage and now external. All users changed.
8056 5473
8057 * w32term.h: Add declaration of w32_keyboard_codepage. 5474 * image.c (imagemagick_load_image): Make animated pictures work.
5475 There's still some problems with background color settings, though
5476 (bug#14700).
8058 5477
8059 * w32inevt.c (w32_kbd_patch_key): Accept an additional argument -- 5478 * decompress.c (unwind_decompress): Always restore point.
8060 the codepage to translate keys to Unicode. If this argument is
8061 -1, use the value returned by GetConsoleCP. All callers changed.
8062 5479
80632012-07-30 Paul Eggert <eggert@cs.ucla.edu> 54802013-08-14 Xue Fuqiao <xfq.free@gmail.com>
8064 5481
8065 Update .PHONY listings in makefiles. 5482 * marker.c (set_marker): Reformat documentation.
8066 * Makefile.in (.PHONY): Add all, mostlyclean, clean,
8067 bootstrap-clean, distclean, maintainer-clean, versioclean,
8068 extraclean, frc.
8069 5483
8070 * lisp.h (STRING_BYTES_BOUND): Cast entire result to ptrdiff_t. 54842013-08-14 Paul Eggert <eggert@cs.ucla.edu>
8071 This is a bit clearer. Fix some commentary typos.
8072 5485
80732012-07-30 Glenn Morris <rgm@gnu.org> 5486 * xdisp.c (cursor_type_changed): Now static.
8074 5487
8075 * s/netbsd.h: Let configure include signal.h if needed. 5488 * image.c (imagemagick_filename_hint): New arg HINT_BUFFER.
8076 Remove file, which is now empty. 5489 Use changed. This avoids the need to call xmalloc and for the
5490 caller to call xfree, and avoids memory leaks in some situations.
8077 5491
8078 * s/usg5-4-common.h (_longjmp, _setjmp, TIOCSIGSEND): 54922013-08-14 Dmitry Antipov <dmantipov@yandex.ru>
8079 Let configure set them.
8080 * s/irix6-5.h (_longjmp, _setjmp, TIOCSIGSEND):
8081 No more need to undefine.
8082 5493
80832012-07-30 Andreas Schwab <schwab@linux-m68k.org> 5494 * xdisp.c (adjust_window_ends): Move duplicated code to new function.
5495 (try_window, try_window_reusing_current_matrix, try_window_id): Use it.
5496 (redisplay_window): If window_end_valid is cleared due to non-zero
5497 windows_or_buffers_changed, clear current_matrix_up_to_date_p and
5498 so do not call to try_cursor_movement for that window.
8084 5499
8085 * keymap.c (Fkey_description): Don't remove 0x80 bit from 55002013-08-14 Dmitry Antipov <dmantipov@yandex.ru>
8086 non-single-byte char when adding meta modifier. (Bug#12090)
8087 5501
80882012-07-30 Dmitry Antipov <dmantipov@yandex.ru> 5502 * window.h (struct window): Convert window_end_pos and
5503 window_end_vpos from Lisp_Object to ptrdiff_t and int, respectively.
5504 (wset_window_end_pos, wset_window_end_vpos): Remove.
5505 * dispnew.c (adjust_glyph_matrix):
5506 * window.c (Fwindow_end, replace_window, set_window_buffer)
5507 (make_window):
5508 * xdisp.c (check_window_end, move_it_to, redisplay_internal)
5509 (set_vertical_scroll_bar, redisplay_window, try_window)
5510 (try_window_reusing_current_matrix, find_first_unchanged_at_end_row)
5511 (try_window_id, decode_mode_spec, mouse_face_from_buffer_pos)
5512 (note_mouse_highlight): Adjust users.
5513 (try_cursor_movement): Likewise. Convert old precondition to eassert.
5514 Add comment.
8089 5515
8090 Convert safe_call to use variable number of arguments. 55162013-08-14 Dmitry Antipov <dmantipov@yandex.ru>
8091 * xdisp.c (safe_call): Convert to use varargs. Adjust users.
8092 (safe_call2): Fix comment.
8093 * lisp.h (safe_call): Adjust prototype.
8094 * coding.c (encode_coding_object): Change to use safe_call2.
8095 * xfaces.c (merge_face_heights): Change to use safe_call1.
8096 5517
80972012-07-30 Glenn Morris <rgm@gnu.org> 5518 Fix --enable-gcc-warnings errors introduced in 2013-08-13 commit.
5519 * image.c (imagemagick_filename_hint): Use `const char *' and
5520 prefer SSDATA to SDATA to avoid warnings.
8098 5521
8099 * s/aix4-2.h (sigmask): No need to undefine it, since syssignal.h 55222013-08-14 Dmitry Antipov <dmantipov@yandex.ru>
8100 does that unconditionally. Remove file, which is now empty.
8101 5523
8102 * s/freebsd.h, s/gnu-linux.h, s/sol2-6.h, s/unixware.h: 5524 Cleanup window fringes, margins and scroll bars adjustments.
8103 Remove empty files. 5525 * window.c (set_window_fringes, set_window_margins)
5526 (set_window_scroll_bars, apply_window_adjustment): New functions.
5527 (set_window_buffer, Fset_window_margins, Fset_window_fringes)
5528 (Fset_window_scroll_bars): Use them.
8104 5529
81052012-07-30 Paul Eggert <eggert@cs.ucla.edu> 55302013-08-14 Dmitry Antipov <dmantipov@yandex.ru>
8106 5531
8107 Export to GDB most of lisp.h's remaining object-like macros. 5532 * window.h (struct window): Convert scroll_bar_width
8108 * lisp.h (min, max): Move earlier, because they're used earlier now. 5533 from Lisp_Object to integer. Adjust comment.
8109 (INTMASK, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK) 5534 (WINDOW_CONFIG_SCROLL_BAR_WIDTH, WINDOW_CONFIG_SCROLL_BAR_COLS):
8110 (CHAR_TABLE_STANDARD_SLOTS, CHARTAB_SIZE_BITS_0) 5535 Adjust users.
8111 (CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2, CHARTAB_SIZE_BITS_3) 5536 * window.c (wset_scroll_bar_width): Remove.
8112 (DEFAULT_HASH_SIZE, COMPILED_ARGLIST, COMPILED_BYTECODE) 5537 (make_window): Initialize scroll_bar_width.
8113 (COMPILED_CONSTANTS, COMPILED_STACK_DEPTH, COMPILED_DOC_STRING) 5538 (Fsplit_window_internal): Use direct assignment.
8114 (COMPILED_INTERACTIVE, CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT) 5539 (Fset_window_configuration, save_window_save):
8115 (CHAR_CTL, CHAR_META, CHAR_MODIFIER_MASK, CHARACTERBITS) 5540 Convert Lisp_Object to integer and back where appropriate.
8116 (MANY, UNEVALLED, FLOAT_TO_STRING_BUFSIZE, MAX_ALLOCA): 5541 (Fset_window_scroll_bars): Adjust user. Return t if any scroll
8117 Now constants, for GDB. They need not be macros. 5542 bar was actually changed, and mention this in docstring.
8118 (MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM, STRING_BYTES_BOUND):
8119 Now constants, for GDB, as well as macros, for static initializers.
8120 (CHAR_TABLE_STANDARD_SLOTS, CHAR_TABLE_EXTRA_SLOTS):
8121 Move to after the definition of struct Lisp_Char_Table,
8122 since the former now needs that type defined.
8123 (enum CHARTAB_SIZE_BITS, enum CHAR_TABLE_STANDARD_SLOTS)
8124 (enum DEFAULT_HASH_SIZE, enum Lisp_Compiled, enum char_bits)
8125 (enum maxargs, enum FLOAT_TO_STRING_BUFSIZE, enum MAX_ALLOCA):
8126 New enums, for gdb_make_enums_visible.
8127 (GLYPH_MODE_LINE_FACE): Remove; unused.
8128 * alloc.c (STRING_BYTES_MAX): Now a constant, not a macro.
8129 (gdb_make_enums_visible): Add enum CHARTAB_SIZE_BITS, enum
8130 CHAR_TABLE_STANDARD_SLOTS, enum char_bits, enum DEFAULT_HASH_SIZE,
8131 enum FLOAT_TO_STRING_BUFSIZE, enum Lisp_Bits, enum Lisp_Compiled,
8132 enum maxargs, enum MAX_ALLOCA.
8133 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): Remove.
8134 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Remove;
8135 no longer needed, now that they are done in lisp.h.
8136 5543
81372012-07-30 Dmitry Antipov <dmantipov@yandex.ru> 55442013-08-13 Paul Eggert <eggert@cs.ucla.edu>
8138 5545
8139 Cleanup string bytes checking. 5546 * decompress.c: Minor simplifications.
8140 * alloc.c (GC_STRING_BYTES, CHECK_STRING_BYTES): Remove. Convert 5547 (Fzlib_decompress_region): Don't bother verifying
8141 all users to STRING_BYTES or string_bytes if GC_CHECK_STRING_BYTES. 5548 that avail_out <= UINT_MAX, as that was confusing.
8142 (check_string_bytes): Define to empty if not GC_CHECK_STRING_BYTES. 5549 Mention the restriction in a comment instead.
8143 (check_sblock, compact_small_strings): Simplify. 5550 Prefer 'int' to 'ptrdiff_t' when 'int' is wide enough.
8144 5551
81452012-07-29 Paul Eggert <eggert@cs.ucla.edu> 55522013-08-13 Jan Djärv <jan.h.d@swipnet.se>
8146 5553
8147 * lisp.h (LISP_INT_TAG, LISP_INT1_TAG, LISP_STRING_TAG): Remove. 5554 * nsmenu.m (x_activate_menubar): Check for OSX >= 10.5
8148 These macros are confusing and no longer need to be defined, as 5555 (trackingNotification:): Call ns_check_menu_open only for OSX >= 10.5.
8149 the enum values now suffice. All uses replaced with definiens.
8150 (Lisp_Int1, Lisp_String): Define directly; this is clearer.
8151 5556
81522012-07-29 Juanma Barranquero <lekktu@gmail.com> 55572013-08-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
8153 5558
8154 * makefile.w32-in (LISP_H, $(BLD)/emacs.$(O), $(BLD)/w32inevt.$(O)) 5559 * image.c (imagemagick_filename_hint): Check for errors in the
8155 ($(BLD)/w32console.$(O)): Update dependencies. 5560 alist structure.
8156 5561
81572012-07-29 Dmitry Antipov <dmantipov@yandex.ru> 55622013-08-13 Eli Zaretskii <eliz@gnu.org>
8158 5563
8159 Remove HIDE_LISP_IMPLEMENTATION and cleanup cons free list check. 5564 * window.c (Fwindow_margins): Return nil when there's no marginal
8160 * lisp.h (HIDE_LISP_IMPLEMENTATION): Remove as useless for a long 5565 area, as per the documented API.
8161 time. Adjust users.
8162 (CHECK_CONS_LIST): Remove. Convert all users to check_cons_list.
8163 5566
81642012-07-29 Jan Djärv <jan.h.d@swipnet.se> 5567 * w32term.c (x_scroll_bar_create): Use ALLOCATE_PSEUDOVECTOR, not
5568 Fmake_vector, as scroll bar's struct members are not all Lisp
5569 objects now. This avoids crashes in GC.
8165 5570
8166 * lread.c (init_lread): Remove if-statement in ifdef HAVE_NS before 5571 * w32term.h (struct scroll_bar): Convert fringe_extended_p to a
8167 setting sitelisp (Bug#12010). 5572 bool, so its address could be taken.
8168 5573
81692012-07-29 Eli Zaretskii <eliz@gnu.org> 55742013-08-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
8170 5575
8171 * w32heap.h (OS_9X): Rename from OS_WINDOWS_95. 5576 * image.c (imagemagick_filename_hint): New function to possibly
5577 apply `image-content-type-suffixes'.
5578 (imagemagick_load_image): Use it.
8172 5579
8173 * w32heap.c (cache_system_info): 55802013-08-13 Eli Zaretskii <eliz@gnu.org>
8174 * w32.c (sys_rename):
8175 * w32proc.c (find_child_console, sys_kill): All users changed.
8176 5581
81772012-07-29 Paul Eggert <eggert@cs.ucla.edu> 5582 * decompress.c (Fzlib_decompress_region) [WINDOWSNT]: Return Qnil
5583 if loading zlib failed.
8178 5584
8179 * alloc.c (Fgarbage_collect): Indent as per usual Emacs style. 55852013-08-13 Jan Djärv <jan.h.d@swipnet.se>
8180 5586
81812012-07-29 Eli Zaretskii <eliz@gnu.org> 5587 * nsterm.m (ns_set_vertical_scroll_bar): Fix breakage intruduced by
5588 2013-08-13 checkin below. Change bool to BOOL, rule is:
5589 All Obj-C code uses BOOL, except for interfaces callable from C.
8182 5590
8183 * makefile.w32-in (LISP_H): Add $(NT_INC)/stdalign.h. 5591 * nsterm.h: Fix CGFloat for OSX 10.4 (Bug#15086).
8184 5592
81852012-07-29 Dmitry Antipov <dmantipov@yandex.ru> 55932013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
8186 5594
8187 Cleanup statistics calculation in Fgarbage_collect. 5595 * window.h (WINDOW_FRINGE_EXTENDED_P): New macro.
8188 * alloc.c (Fgarbage_collect): Rename t1 to meaningful start. 5596 * nsterm.m (ns_set_vertical_scroll_bar): Use it. Use convenient
8189 Fix zombies percentage calculation. Simplify elapsed time calculation. 5597 bool instead of BOOL.
8190 5598 * w32term.h (struct scroll_bar): Convert fringe_extended_p
81912012-07-29 Dmitry Antipov <dmantipov@yandex.ru> 5599 from Lisp_Object to bitfield. Adjust comment.
5600 * w32term.c (x_scroll_bar_create): Adjust user.
5601 Use WINDOW_FRINGE_EXTENDED_P and bool for boolean.
5602 * xterm.c (XTset_vertical_scroll_bar): Likewise.
5603 Use bool for boolean.
5604 * xterm.h (struct scroll_bar): Prefer commonly used `unsigned'
5605 to `unsigned int' when defining a bitfield.
8192 5606
8193 Generalize marker debugging code under MARKER_DEBUG and use eassert. 56072013-08-13 Paul Eggert <eggert@cs.ucla.edu>
8194 * insdel.c (CHECK_MARKERS, check_markers_debug_flag): Remove.
8195 (gap_left, gap_right, adjust_markers_for_delete, insert_1_both)
8196 (insert_from_string_1, insert_from_gap, insert_from_buffer_1)
8197 (replace_range, replace_range_2, del_range_2): Change to eassert.
8198 * marker.c (byte_char_debug_check): Adjust style.
8199 5608
82002012-07-29 Paul Eggert <eggert@cs.ucla.edu> 5609 * decompress.c (Fzlib_decompress_region): Try to clarify 'avail_out'.
8201 5610
8202 Don't use the abbreviation "win" to refer to Windows (Bug#10421). 56112013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
8203 * regex.c (MAX_BUF_SIZE): Remove some incorrect and
8204 long-ago-commented-out code that talks about "WIN32".
8205 * w32heap.h (OS_WINDOWS_95): Rename from OS_WIN95.
8206 All uses changed.
8207 5612
82082012-07-28 Paul Eggert <eggert@cs.ucla.edu> 5613 * window.h (struct window): Convert left_margin_cols and
8209 5614 right_margin_cols from Lisp_Objects to integers. Adjust comment.
8210 Use Gnulib stdalign module (Bug#9772, Bug#9960). 5615 (WINDOW_LEFT_MARGIN_COLS, WINDOW_RIGHT_MARGIN_COLS)
8211 * alloc.c (XMALLOC_BASE_ALIGNMENT, GC_POINTER_ALIGNMENT, pure_alloc): 5616 (WINDOW_LEFT_MARGIN_WIDTH, WINDOW_RIGHT_MARGIN_WIDTH):
8212 Simplify by using alignof. 5617 Adjust users.
8213 (pure_alloc) [! USE_LSB_TAG]: Don't over-align EMACS_INT values. 5618 * dispnew.c (margin_glyphs_to_reserve): Convert 3rd arg to int.
8214 * lisp.h: Include <stdalign.h>. 5619 Adjust comment.
8215 (GCALIGNMENT): New macro and constant. 5620 (showing_window_margins_p, update_window_line, update_frame_1):
8216 (DECL_ALIGN): Remove. All uses replaced by alignas (GCALIGNMENT). 5621 * fringe.c (draw_fringe_bitmap_1):
8217 (USE_LSB_TAG): ifdef on alignas, not on DECL_ALIGN. 5622 * xdisp.c (window_box_width): Adjust users.
8218 (stdalign): New macro, if not already defined. 5623 * window.c (wset_left_margin_cols, wset_right_margin_cols): Remove.
8219 5624 (adjust_window_margins, set_window_buffer, Fsplit_window_internal):
82202012-07-28 Eli Zaretskii <eliz@gnu.org> 5625 Use direct assignment.
8221 5626 (Fset_window_configuration, save_window_save, Fwindow_margins):
8222 Fix non-ASCII input in non-GUI frames on MS-Windows. (Bug#12055) 5627 Convert Lisp_Object to integer and back where appropriate.
8223 * w32inevt.c: Include w32inevt.h. 5628 (Fset_window_margins): Adjust user. Return t if any margin
8224 (w32_read_console_input): New inline function, calls either 5629 was actually changed, and mention this in docstring.
8225 ReadConsoleInputA or ReadConsoleInputW, depending on the value of 5630
8226 w32_console_unicode_input. 56312013-08-13 Xue Fuqiao <xfq.free@gmail.com>
8227 (fill_queue): Call w32_read_console_input instead of ReadConsoleInput. 5632
8228 (w32_kbd_patch_key, key_event): Use the codepage returned by 5633 * syntax.c (forward_word):
8229 GetConsoleCP, rather than the ANSI codepage returned by GetLocaleInfo. 5634 * cmds.c (forward_char, backward_char): Mention the optional argument.
8230 (key_event): use uChar.UnicodeChar only if 5635
8231 w32_console_unicode_input is non-zero. 56362013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
8232 5637
8233 * w32console.c: Include w32heap.h. 5638 * window.h (struct window): Convert left_fringe_width
8234 <w32_console_unicode_input>: New global variable. 5639 and right_fringe_width from Lisp_Objects to integers.
8235 (initialize_w32_display): Set w32_console_unicode_input to 1 on NT 5640 Adjust comment.
8236 family of Windows, zero otherwise. 5641 (WINDOW_FRINGE_COLS, WINDOW_LEFT_FRINGE_WIDTH)
8237 5642 (WINDOW_RIGHT_FRINGE_WIDTH): Adjust users.
8238 * w32inevt.h: Declare w32_console_unicode_input. 5643 * window.c (wset_left_fringe_width, wset_right_fringe_width):
8239
8240 * xdisp.c (init_iterator): Don't reference tip_frame in a build
8241 --without-x. (Bug#11742)
8242
82432012-07-27 Paul Eggert <eggert@cs.ucla.edu>
8244
8245 Adjust GDB to reflect pvec_type changes (Bug#12036).
8246 * .gdbinit (xvectype, xpr, xbacktrace): Adjust to reflect the
8247 2012-07-04 changes to pseudovector representation.
8248 Problem reported by Eli Zaretskii in <http://bugs.gnu.org/12036#30>.
8249
82502012-07-27 Michael Albinus <michael.albinus@gmx.de>
8251
8252 * dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Canonicalize session
8253 bus address.
8254 (xd_close_bus, Fdbus_init_bus): Handle reference counter properly.
8255
82562012-07-27 Eli Zaretskii <eliz@gnu.org>
8257
8258 * alloc.c (listn): Fix the order the arguments are consed onto the
8259 list.
8260
8261 * lisp.h (enum constype): Use CONSTYPE_HEAP and CONSTYPE_PURE for
8262 enumeration constants, as PURE and HEAP are too general, and clash
8263 with other headers and sources, such as gmalloc.c and the
8264 MS-Windows system headers. All users changed.
8265
82662012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
8267
8268 Revert last save_excursion_save and save_excursion_restore changes.
8269 * alloc.c, editfns.c, marker.c, lisp.h: Revert.
8270 Lots of crashes reported by Chong Yidong <cyd@gnu.org>.
8271
82722012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
8273
8274 Fix recently-introduced typos in Windows port.
8275 Reported by Martin Rudalics <rudalics@gmx.at>.
8276 * w32.c (init_environment): Replace comma with semicolon.
8277 * w32fns.c (syms_of_w32fns): Add missing parenthesis.
8278
82792012-07-27 Paul Eggert <eggert@cs.ucla.edu>
8280
8281 Improve GDB symbol export (Bug#12036).
8282 * .gdbinit (xgetptr, xgetint, xgettype): Set $bugfix in different
8283 arms of an 'if', not using conditional expressions; otherwise GDB
8284 complains about the types in the unevaluated arm when the argument
8285 is an integer literal.
8286 (xgetint): Simplify expression.
8287 * alloc.c (gdb_make_enums_visible): New constant. This ports to
8288 GCC 3.4.2 the export of symbols to GDB. Problem reported by Eli
8289 Zaretskii in <http://bugs.gnu.org/12036#13>.
8290 * lisp.h (PUBLISH_TO_GDB): Remove. All uses removed. No longer
8291 needed now that we have gdb_make_enums_visible.
8292 (enum CHECK_LISP_OBJECT_TYPE, enum Lisp_Bits, enum More_Lisp_Bits)
8293 (enum enum_USE_LSB_TAG):
8294 New enum types, packaging up enums that need to be exported to GDB.
8295
82962012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
8297
8298 Utility function to make a list from specified amount of objects.
8299 * lisp.h (enum constype): New datatype.
8300 (listn): New prototype.
8301 * alloc.c (listn): New function.
8302 (Fmemory_use_count, syms_of_alloc): Use it.
8303 * buffer.c (syms_of_buffer): Likewise.
8304 * callint.c (syms_of_callint): Likewise.
8305 * charset.c (define_charset_internal): Likewise.
8306 * coding.c (syms_of_coding): Likewise.
8307 * keymap.c (syms_of_keymap): Likewise.
8308 * search.c (syms_of_search): Likewise.
8309 * syntax.c (syms_of_syntax): Likewise.
8310 * w32.c (init_environment): Likewise.
8311 * w32fns.c (Fw32_battery_status, syms_of_w32fns): Likewise.
8312 * xdisp.c (syms_of_xdisp): Likewise.
8313 * xfns.c (syms_of_xfns): Likewise.
8314
83152012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
8316
8317 Fast save_excursion_save and save_excursion_restore.
8318 * lisp.h (struct Lisp_Excursion): New data type.
8319 (PVEC_EXCURSION): New pseudovector type.
8320 (XEXCURSION, XSETEXCURSION, EXCURSIONP): Convenient macros
8321 to deal with it. Adjust comments.
8322 (init_marker, attach_marker): New prototype.
8323 (unchain_marker): Adjust prototype.
8324 * marker.c (attach_marker): Change to global.
8325 (init_marker): New function.
8326 * alloc.c (Fmake_marker, build_marker): Use it.
8327 (build_marker): More easserts.
8328 (mark_object): Handle struct Lisp_Excursion.
8329 * editfns.c (save_excursion_save, save_excursion_restore):
8330 Reimplement to use struct Lisp_Excursion. Add comments.
8331
83322012-07-26 Paul Eggert <eggert@cs.ucla.edu>
8333
8334 Fix export of symbols to GDB (Bug#12036).
8335 * alloc.c (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL)
8336 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Move these here from
8337 emacs.c, as this is a more-suitable home. Had this been done earlier
8338 the fix for 12036 would have avoided some of the problems noted in
8339 <http://bugs.gnu.org/12036#13> by Eli Zaretskii, as the scope problems
8340 would have been more obvious.
8341 * emacs.c: Do not include <verify.h>; no longer needed.
8342 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS)
8343 (gdb_GCTYPEBITS, gdb_USE_LSB_TAG)
8344 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
8345 Remove; now done in lisp.h.
8346 * lisp.h (PUBLISH_TO_GDB): New macro.
8347 (GCTYPEBITS, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE, enum pvec_type)
8348 (DATA_SEG_BITS): Use it.
8349 (GCTYPEBITS, USE_LSB_TAG): Now also an enum, for GDB.
8350 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Now just an enum, for GDB.
8351 * mem-limits.h (EXCEEDS_LISP_PTR): Redo so that DATA_SEG_BITS need
8352 not be usable in #if. This simplifies things.
8353
83542012-07-26 Juanma Barranquero <lekktu@gmail.com>
8355
8356 * makefile.w32-in ($(BLD)/emacs.$(O)): Update dependencies.
8357
83582012-07-26 Paul Eggert <eggert@cs.ucla.edu>
8359
8360 Simplify export of symbols to GDB (Bug#12036).
8361 * .gdbinit (xgetptr, xgetint, xgettype): Don't use "set $bugfix =
8362 $bugfix.i", as this doesn't work (with GDB 7.4.1, anyway).
8363 (xgetptr, xgetint, xgettype, xcoding, xcharset, xprintbytestr):
8364 Adjust to changes in lisp.h and emacs.c, by using
8365 CHECK_LISP_OBJECT_TYPE rather than gdb_use_struct, VALMASK instead
8366 of $valmask, DATA_SEG_BITS instead of gdb_data_seg_bits,
8367 INTTYPEBITS instead of gdb_gctypebits - 1, USE_LSB_TAG instead of
8368 gdb_use_lsb, (1 << GCTYPEBITS) - 1 instead of $tagmask, VALBITS
8369 instead of gdb_valbits.
8370 (xvectype, xvector, xpr, xprintstr, xbacktrace): Similarly, use
8371 PSEUDOVECTOR_FLAG instead of PVEC_FLAG, and ARRAY_MARK_FLAG
8372 instead of gdb_array_mark_flag.
8373 (xboolvector): Get size from $->size, not $->header.size.
8374 Use BOOL_VECTOR_BITS_PER_CHAR rather than mystery constants.
8375 (xreload, hook-run, hookpost-run): Remove.
8376 * emacs.c: Include <verify.h>.
8377 (gdb_use_lsb, gdb_use_struct, gdb_valbits, gdb_gctypebits)
8378 (gdb_data_seg_bits, PVEC_FLAG, gdb_array_mark_flag, gdb_pvec_type):
8379 Remove. 5644 Remove.
8380 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS, gdb_GCTYPEBITS) 5645 (make_window): Initialize new integer fields to -1.
8381 (gdb_USE_LSB_TAG): New enum constants. 5646 (Fsplit_window_internal): Use direct assignment.
8382 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG): 5647 (Fset_window_configuration, save_window_save):
8383 Also define these as enum constants, so they're visible to GDB. 5648 Convert Lisp_Object to integer and back where appropriate.
8384 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): New macros. 5649 (Fset_window_fringes): Adjust user. Return t if any fringe
8385 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Also define these 5650 was actually changed, and mention this in docstring.
8386 as constants, so they're visible to GDB.
8387 * lisp.h (VALBITS, INTTYPEBITS, FIXNUM_BITS, PSEUDOVECTOR_SIZE_BITS)
8388 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK, BOOL_VECTOR_BITS_PER_CHAR):
8389 Now enum constants, not macros, so they're visible to GDB.
8390 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Default to 0, as this is
8391 more convenient now. All uses changed.
8392 (VALMASK) [USE_LSB_TAG]: Also define in this case.
8393 * mem-limits.h (EXCEEDS_LISP_PTR): Adjust to DATA_SEG_BITS change.
8394
83952012-07-26 Dmitry Antipov <dmantipov@yandex.ru>
8396
8397 Explicitly free restriction data that are not needed anymore.
8398 * editfns.c (save_restriction_restore): Free restriction data.
8399
84002012-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
8401
8402 * eval.c (Fautoload_do_load): Rename from do_autoload, export to Lisp,
8403 add argument, tune behavior, and adjust all callers.
8404
84052012-07-25 Paul Eggert <eggert@cs.ucla.edu>
8406
8407 Use typedef for EMACS_INT, EMACS_UINT.
8408 * lisp.h, s/ms-w32.h (EMACS_INT, EMACS_UINT): Use typedefs rather
8409 than macros. This simplifies debugging in the usual case, since
8410 it lets GDB show addresses as 'EMACS_INT *' rather than 'long int *'
8411 and it allows expressions involving EMACS_INT casts.
8412 * .gdbinit (xreload): Simplify by using EMACS_INT cast.
8413
84142012-07-25 Jan Djärv <jan.h.d@swipnet.se>
8415
8416 * nsterm.m (ns_read_socket): Return early if there is a modal
8417 window (Bug#12043).
8418
84192012-07-25 Martin Rudalics <rudalics@gmx.at>
8420
8421 * frame.c (Fredirect_frame_focus): In doc-string don't mention
8422 that FOCUS-FRAME can be omitted.
8423
84242012-07-25 Dmitry Antipov <dmantipov@yandex.ru>
8425
8426 Adjust buffer text indirection counters at the end of Fkill_buffer.
8427 * buffer.c (Fkill_buffer): Adjust indirection counters when the
8428 buffer is definitely dead. This should really fix an issue reported
8429 by Christoph Scholtes again. (Bug#12007).
8430 (init_buffer_once): Initialize indirection counters of
8431 buffer_defaults and buffer_local_symbols (for sanity and safety).
8432 5651
84332012-07-24 Eli Zaretskii <eliz@gnu.org> 56522013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
8434 5653
8435 * xdisp.c (init_iterator): Don't compute dimensions of truncation 5654 * keyboard.c (Fdiscard_input): Do not increment update_mode_lines.
8436 and continuation glyphs on tooltip frames, leave them at zero. 5655 * nsfns.m (x_set_cursor_type):
8437 Avoids continued lines in tooltips. (Bug#11832) 5656 * w32fns.c (x_set_cursor_type):
5657 * xfns.c (x_set_cursor_type): Do not set cursor_type_changed here...
5658 * xdisp.c (set_frame_cursor_types): ...but in common code.
8438 5659
84392012-07-24 Dmitry Antipov <dmantipov@yandex.ru> 56602013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
8440 5661
8441 Simplify copy_overlay. 5662 * font.c (clear_font_cache): New function, stripped from...
8442 * buffer.c (copy_overlay): Simplify. Use build_marker. 5663 (Fclear_font_cache): ...here, which now uses the function
8443 * lisp.h (struct Lisp_Overlay): Restore comment with minor tweaks. 5664 above. Adjust comment.
5665 * font.h (clear_font_cache): Add prototype.
5666 * xfaces.c (clear_face_cache): Use clear_font_cache.
8444 5667
84452012-07-23 Eli Zaretskii <eliz@gnu.org> 56682013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
8446 5669
8447 * print.c (print_object): Don't crash when a frame's name is nil 5670 * window.c (Fset_window_start): Compare `w', not `window' because
8448 or invalid. (Bug#12025) 5671 `w' might not be equal to `window' after call to decode_live_window.
8449 5672
8450 * window.c (decode_any_window): Disable CHECK_LIVE_FRAME test, as 56732013-08-12 Paul Eggert <eggert@cs.ucla.edu>
8451 it signals an error when a tooltip frame is being created.
8452 5674
84532012-07-23 Dmitry Antipov <dmantipov@yandex.ru> 5675 * process.c (deactivate_process): Reset fds to -1 (Bug#15035).
5676 This fixes a problem introduced by the Bug#15035 patch
5677 when using GPG. Reported by Herbert J. Skuhra.
8454 5678
8455 Cleanup miscellaneous objects allocation and initialization. 56792013-08-12 Eli Zaretskii <eliz@gnu.org>
8456 * alloc.c (allocate_misc): Change to static. Add argument to
8457 specify the subtype. Adjust comment and users.
8458 (build_overlay): New function.
8459 * buffer.c (copy_overlays, Fmake_overlay): Use it.
8460 * lisp.h (struct Lisp_Overlay): Remove obsolete comment.
8461 (allocate_misc): Remove prototype.
8462 (build_overlay): Add prototype.
8463 5680
84642012-07-23 Dmitry Antipov <dmantipov@yandex.ru> 5681 * decompress.c <zlib_initialized> [WINDOWSNT]: New static variable.
5682 (Fzlib_decompress_region) [WINDOWSNT]: Call init_zlib_functions if
5683 not yet initialized.
8465 5684
8466 Swap buffer text indirection counters in Fbuffer_swap_text. 56852013-08-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
8467 * buffer.c (Fbuffer_swap_text): Swap indirections too.
8468 This avoids crash reported by Christoph Scholtes at
8469 http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-07/msg00785.html.
8470 5686
84712012-07-22 Jan Djärv <jan.h.d@swipnet.se> 5687 * decompress.c (Fzlib_decompress_region): Support zlib
5688 decompression, too, and rename.
8472 5689
8473 * nsmenu.m (Popdown_data): New struct. 56902013-08-12 Paul Eggert <eggert@cs.ucla.edu>
8474 (pop_down_menu): p->pointer is Popdown_data. Release the pool and
8475 free Popdown_data.
8476 (ns_popup_dialog): Use NSAutoreleasePool and pass it to pop_down_menu.
8477 (initWithContentRect): Make imgView and contentView non-static
8478 and autorelease them. Also autorelease img and matrix (Bug#12005).
8479 (dealloc): Remove (Bug#12005).
8480
84812012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
8482
8483 Adjust consing_since_gc when objects are explicitly freed.
8484 * alloc.c (GC_DEFAULT_THRESHOLD): New macro.
8485 (Fgarbage_collect): Use it. Change minimum to 1/10 of default.
8486 (free_cons, free_misc): Subtract object size from consing_since_gc.
8487 5691
84882012-07-22 Dmitry Antipov <dmantipov@yandex.ru> 5692 Minor zlib configuration tweaks.
5693 * decompress.c (fn_inflateInit2) [!WINDOWSNT]:
5694 Don't assume presence of fn_inflateInit2_ zlib internal function.
8489 5695
8490 Simplify and cleanup markers positioning code. 56962013-08-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
8491 * marker.c (attach_marker): More useful eassert.
8492 (live_buffer, set_marker_internal): New function.
8493 (Fset_marker, set_marker_restricted): Use set_marker_internal.
8494 (set_marker_both, set_marker_restricted_both): Use live_buffer.
8495 5697
84962012-07-22 Paul Eggert <eggert@cs.ucla.edu> 5698 * decompress.c (Fzlib_decompress_gzipped_region): Rename to
5699 include the zlib prefix.
8497 5700
8498 * buffer.h (struct buffer.indirections): Now ptrdiff_t, not int, 57012013-08-12 Eli Zaretskii <eliz@gnu.org>
8499 as it's limited by the amount of memory, not by INT_MAX.
8500 5702
85012012-07-21 Eli Zaretskii <eliz@gnu.org> 5703 * decompress.c [WINDOWSNT]: Include windows.h and w32.h.
8502 5704 (DEF_ZLIB_FN, LOAD_ZLIB_FN) [WINDOWSNT]: New macros. Use them to
8503 * keyboard.c (keys_of_keyboard): Bind language-change to 'ignore' 5705 define static variables that are pointers to zlib functions to be
8504 in special-event-map. See the discussion at 5706 dynamically loaded.
8505 http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00417.html 5707 (init_zlib_functions) [WINDOWSNT]: New function.
8506 for the reasons. 5708 (fn_inflateInit2_, fn_inflate, fn_inflateEnd, fn_inflateInit2):
8507 5709 New macros.
8508 * w32menu.c (add_menu_item): Cast to ULONG_PTR when assigning 5710 (Fdecompress_gzipped_region, unwind_decompress): Use the fn_*
8509 info.dwItemData. Fixes crashes on 64-bit Windows. 5711 macros instead of invoking the zlib functions directly.
8510 Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>. 5712 (syms_of_decompress): DEFSYM Qzlib_dll.
8511 5713 Staticpro Szlib_available_p.
85122012-07-21 Jan Djärv <jan.h.d@swipnet.se> 5714
8513 57152013-08-12 Dmitry Antipov <dmantipov@yandex.ru>
8514 * nsterm.m (accessibilityAttributeValue): New function. (Bug#11134). 5716
8515 (conversationIdentifier): Return value is NSInteger. 5717 Avoid looping over all frame windows to freeze and unfreeze.
8516 * nsterm.m (accessibilityAttributeValue): Surround with NS_IMPL_COCOA. 5718 * window.h (struct window): Drop frozen_window_start_p.
8517 5719 (freeze_window_starts): Drop prototype.
85182012-07-21 Chong Yidong <cyd@gnu.org> 5720 * frame.h (struct frame): New frozen_window_starts flag.
8519 5721 (FRAME_WINDOWS_FROZEN): New macro.
8520 * window.c (decode_any_window): Signal an error if the window is 5722 * window.c (freeze_window_start, freeze_window_starts):
8521 on a dead frame (Bug#11984). 5723 Remove.
8522 5724 (select_window, replace_window): Adjust users.
85232012-07-20 Dmitry Antipov <dmantipov@yandex.ru> 5725 * xdisp.c (resize_mini_window): Use FRAME_WINDOWS_FROZEN.
8524 5726 (window_frozen_p): New function.
8525 Add indirection counting to speed up Fkill_buffer. 5727 (redisplay_window): Use it.
8526 * buffer.h (struct buffer): New member. 5728
8527 * buffer.c (Fget_buffer_create): Set indirection counter to 0. 57292013-08-12 Paul Eggert <eggert@cs.ucla.edu>
8528 (Fmake_indirect_buffer): Set indirection counter to -1, increment 5730
8529 base buffer indirection counter. 5731 Fix some fd issues when running subprocesses (Bug#15035).
8530 (compact_buffer): If ENABLE_CHECKING, verify indirection counters. 5732 Fix bugs that can leak files or file descriptors on errors.
8531 (Fkill_buffer): Adjust indirection counters as needed, don't walk 5733 Don't unlink open temp files, as that's hard for users to diagnose
8532 through buffer list if indirection counter is 0. 5734 when things go awry (e.g., temp disk exhausted).
8533 5735 Don't bother to lock temp files. Check for invalid recursion.
85342012-07-20 Dmitry Antipov <dmantipov@yandex.ru> 5736 * callproc.c (synch_process_fd): Remove. All uses removed.
8535 5737 (synch_process_tempfile): New var or macro.
8536 Extend the value returned by Fgarbage_collect with heap statistics. 5738 (CALLPROC_STDOUT, CALLPROC_STDERR, CALLPROC_PIPEREAD, CALLPROC_FDS):
8537 * alloc.c (Qheap): New symbol. 5739 New constants.
8538 (syms_of_alloc): DEFSYM it. 5740 (record_kill_process): New arg, the temp name. All callers changed.
8539 (Fgarbage_collect): If DOUG_LEA_MALLOC, add mallinfo data. 5741 (delete_temp_file): Now just a simple wrapper around unlink.
8540 (Fmemory_free): Remove. 5742 (call_process_kill): New arg, the call_process_fd array.
8541 (syms_of_alloc): Don't defsubr it. 5743 Close them all. Clear synch_process_pid. Remove the temp file,
8542 * buffer.c (Fcompact_buffer): Remove. 5744 or arrange for it to be removed.
8543 (syms_of_buffer): Don't defsubr it. 5745 (call_process_cleanup) [MSDOS]: Arg no longer contains file name;
8544 5746 that's been moved to synch_process_tempfile. Caller changed.
85452012-07-20 Dmitry Antipov <dmantipov@yandex.ru> 5747 Do not remove the tempfile; that's now call_process_kill's
8546 5748 responsibility.
8547 Make maybe_gc inline. 5749 (call_process_cleanup) [!MSDOS]: Do not record unwind-protect for
8548 Verify that inlining is always possible (GCC 4.7.1, -O3 -Winline). 5750 call_process_kill; the caller now does that.
8549 * lisp.h (consing_since_gc, gc_relative_threshold) 5751 (call_process_cleanup): Do not close the process fd; that's now
8550 (memory_full_cons_threshold): Revert declaration. 5752 call_process_kill's responsibility.
8551 (maybe_gc): Remove prototype, define as inline. 5753 (Fcall_process): Implement via new function call_process, which
8552 * alloc.c: Remove old commented-out code. 5754 has most of the old body of Fcall_process, but with a different API.
8553 (consing_since_gc, gc_relative_threshold) 5755 (call_process): New function that does not open or close filefd if
8554 (memory_full_cons_threshold): Revert to global. 5756 it is nonnegative. Record which fds need to be closed, and let
8555 (maybe_gc): Remove. 5757 call_process_kill close (and remove the tempfile, on MSDOS) on error.
8556 5758 Signal an error if invoked recursively (could be done via a hook).
85572012-07-20 Dmitry Antipov <dmantipov@yandex.ru> 5759 Simplify creation of the tempfile in the MSDOS case.
8558 5760 Don't create the output file until after checking for the executable.
8559 Simple wrapper for make_unibyte_string, adjust font_open_by_name. 5761 Report any failure to open /dev/null.
8560 * lisp.h (build_unibyte_string): New function. 5762 Don't open /dev/null for writing twice; once is enough.
8561 * dosfns.c, fileio.c, fns.c, ftfont.c, process.c: 5763 Don't create pipe if all output is being discarded or sent to file.
8562 * sysdep.c, w32fns.c, xfns.c: Use it. 5764 Don't worry about setting up the coding system or reading from the
8563 * font.c (font_open_by_name): Change 2nd and 3rd args to the only arg 5765 pipe if all output is being discarded.
8564 of type Lisp_Object to avoid redundant calls to make_unibyte_string. 5766 Hoist fd_error local into top level, to lessen block nesting.
8565 Adjust users accordingly. 5767 Don't record deleted pid here; now done by Fcall_process_region.
8566 * font.h (font_open_by_name): Adjust prototype. 5768 (Fcall_process) [MSDOS]: Report mktemp failure immediately,
8567 5769 and note its success in synch_process_tempfile.
85682012-07-20 Dmitry Antipov <dmantipov@yandex.ru> 5770 Do not leak resources when child_setup fails.
8569 5771 (Fcall_process) [!MSDOS && !WINDOWSNT]: Remove duplicate assignment
8570 Cleanup calls to Fgarbage_collect. 5772 to child_errno. Remove unnecessary close of fd0; it's close-on-exec.
8571 * lisp.h (maybe_gc): New prototype. 5773 (create_temp_file): Now returns open fd, with an additional
8572 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold): 5774 Lisp_Object * argument to return the name. All callers changed.
8573 Remove declarations. 5775 Do not close the file; rewind it instead, and leave it open for
8574 * alloc.c (maybe_gc): New function. 5776 the caller. Do not lock the temp file. Unwind-protect the file
8575 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold): 5777 and the file-descriptor.
8576 Make them static. 5778 (Fcall_process_region): If the input is /dev/null, unwind-protect it.
8577 * bytecode.c (MAYBE_GC): Use maybe_gc. 5779 If an asynchrounous process, record it here, not in call_process.
8578 * eval.c (eval_sub, Ffuncall): Likewise. 5780 (syms_of_callproc) [MSDOS]: Initialize synch_process_tempfile.
8579 * keyboard.c (read_char): Likewise. Adjust call to maybe_gc 5781 * eval.c (set_unwind_protect): New function.
8580 to avoid dependency from auto-save feature. 5782 * fileio.c (write_region): New function, generalized from the
8581 5783 old Fwrite_region. Do not lock temp files.
85822012-07-19 Paul Eggert <eggert@cs.ucla.edu> 5784 (Fwrite_region): Use it.
8583 5785 * lisp.h (set_unwind_protect, write_region): New decls.
8584 * buffer.h (FOR_EACH_BUFFER): Rename from 'for_each_buffer'. 5786 * process.c: Include <verify.h>.
8585 (FOR_EACH_PER_BUFFER_OBJECT_AT): Rename from 5787 (make_process): Mark fds as initially closed.
8586 'for_each_per_buffer_object_at'. 5788 (deleted_pid_list): Now a list of pid-filename pairs.
8587 All uses changed. It's better to use upper-case for macros that 5789 All uses changed.
8588 cannot be implemented as functions, to give the reader a clue 5790 (close_process_fd): New function.
8589 that they're special. 5791 (SUBPROCESS_STDIN, WRITE_TO_SUBPROCESS, READ_FROM_SUBPROCESS)
8590 5792 (SUBPROCESS_STDOUT, READ_FROM_EXEC_MONITOR, EXEC_MONITOR_OUTPUT):
85912012-07-19 Stefan Monnier <monnier@iro.umontreal.ca> 5793 New constants. Verify that their number matches PROCESS_OPEN_FDS.
8592 5794 (create_process, create_pty, Fmake_serial_process)
8593 * alloc.c (Fgarbage_collect): Tweak docstring. 5795 (server_accept_connection): Record which fds need to be closed,
8594 5796 and let deactivate_process close them.
85952012-07-19 Dmitry Antipov <dmantipov@yandex.ru> 5797 (Fmake_network_process): Do not discard the unwind-protect
8596 5798 until it's safe to do so.
8597 Tweak the value returned from Fgarbage_collect again. 5799 (deactivate_process): Close the fds opened by create_process etc.
8598 * alloc.c (Fgarbage_collect): New return value, as confirmed in 5800 (Fprocess_send_eof): Adjust to new way of recording open fds.
8599 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00418.html. 5801 Report an error if /dev/null can't be opened, instead of aborting.
8600 Adjust documentation. 5802 * process.h (PROCESS_OPEN_FDS): New constant.
8601 (total_vector_bytes): Rename to total_vector_slots, adjust 5803 (struct Lisp_Process): New member open_fds.
8602 accounting. 5804 (record_kill_process, record_deleted_pid): Adjust signatures.
8603 (total_free_vector_bytes): Rename to total_free_vector_slots, 5805 (record_deleted_pid): Move decl here ...
8604 adjust accounting. 5806 * syswait.h (record_deleted_pid): ... from here.
8605 (Qstring_bytes, Qvector_slots): New symbols. 5807
8606 (syms_of_alloc): DEFSYM them. 58082013-08-11 Paul Eggert <eggert@cs.ucla.edu>
8607 5809
86082012-07-19 Dmitry Antipov <dmantipov@yandex.ru> 5810 * decompress.c: Fix bugs with large buffers and weird inputs.
8609 5811 Tune a bit. Reindent as per usual Emacs style.
8610 Buffer compaction primitive which may be used from Lisp. 5812 (BUFFER_SIZE): Remove.
8611 * buffer.c (compact_buffer, Fcompact_buffer): New function. 5813 (Fdecompress_gzipped_region): Do not mishandle input buffers with
8612 (syms_of_buffer): Register Fcompact_buffer. 5814 more than UINT_MAX bytes. Decompress into the gap instead of into
8613 * alloc.c (Fgarbage_collect): Use compact_buffer. 5815 an auto buffer, as this should avoid copying. Return nil if
8614 * buffer.h (compact_buffer): New prototype. 5816 'inflate' returns Z_NEED_DICT, as we have no dictionary. Do not
8615 (struct buffer_text): New member. 5817 set immediate_quit; we shouldn't trust zlib code that much.
8616 5818
86172012-07-19 Dmitry Antipov <dmantipov@yandex.ru> 58192013-08-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
8618 5820
8619 New macro to iterate over all buffers, miscellaneous cleanups. 5821 * decompress.c (Fdecompress_gzipped_region): Respect all zlib
8620 * lisp.h (all_buffers): Remove declaration. 5822 errors, and really move the gap to where we want it.
8621 * buffer.h (all_buffers): Add declaration, with comment. 5823
8622 (for_each_buffer): New macro. 5824 * lisp.h: Include decompress.c support.
8623 * alloc.c (Fgarbage_collect, mark_object): Use it. 5825
8624 * buffer.c (Fkill_buffer, Fbuffer_swap_text, Fset_buffer_multibyte) 5826 * emacs.c (main): Include decompress.c support.
8625 (init_buffer): Likewise. 5827
8626 * data.c (Fset_default): Likewise. 5828 * Makefile.in: Include -lz if present.
8627 * coding.c (code_conversion_restore): Remove redundant check 5829
8628 for dead buffer. 58302013-08-11 Jan Djärv <jan.h.d@swipnet.se>
8629 * buffer.c (Fkill_buffer): Likewise. Remove obsolete comment. 5831
8630 5832 * nsmenu.m (ns_update_menubar): Call fillWithWidgetValue:frame:
86312012-07-18 Andreas Schwab <schwab@linux-m68k.org> 5833 (initWithTitle:): Initialize frame to 0.
8632 5834 (fillWithWidgetValue:): Call fillWithWidgetValue:frame.
8633 Fix bug that created negative-length intervals. 5835 (fillWithWidgetValue:frame:): Rename from
8634 * intervals.c (merge_interval_right, merge_interval_left): 5836 fillWithWidgetValue:setDelegate, call initWithTile:frame: if f.
8635 Do not zero out this interval if it is absorbed by its children, 5837
8636 as this interval's total length doesn't change in that case. See 5838 * nsterm.h (EmacsMenu): fillWithWidgetValue:setDelegate renamed to
8637 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00403.html>. 5839 fillWithWidgetValue:frame:
8638 5840
86392012-07-18 Paul Eggert <eggert@cs.ucla.edu> 5841 * nsfns.m (Fns_convert_utf8_nfd_to_nfc): Allocate and release pool to
8640 5842 remove memory leak warnings.
8641 * alloc.c (Fmake_bool_vector): Fix off-by-8 bug 5843
8642 when invoking (make-bool-vector N t) and N is a positive 5844 * nsterm.m (menu_pending_title, ns_get_pending_menu_title): Remove.
8643 multiple of 8 -- the last 8 bits were mistakenly cleared. 5845 (ns_check_menu_open): Handle menu == nil. Remove assignment to
8644 5846 menu_pending_title.
8645 Remove some struct layout assumptions in bool vectors. 5847
8646 * alloc.c (bool_header_size): New constant. 5848 * nsmenu.m (ns_update_menubar): Call fillWithWidgetValue:setDelegate.
8647 (header_size, word_size): Move earlier, as they're now used earlier. 5849 (x_activate_menubar): Update the whole menu.
8648 Use 'word_size' in a few more places, where it's appropriate. 5850 (trackingNotification:): Call ns_check_menu_open if tracking ends.
8649 (Fmake_bool_vector, sweep_vectors): Don't assume that there is no 5851 (menuWillOpen:): Increment trackingMenu. For OSX <= 10.6, exit if
8650 padding before the data member of a bool vector. 5852 current event is not NSSystemDefined (Bug#15001).
8651 (sweep_vectors): Use PSEUDOVECTOR_TYPEP, in an eassert, rather 5853 Call ns_check_menu_open only if trackingMenu is 2.
8652 than doing the check by hand with an abort (). 5854 (menuDidClose:): New method, decrease trackingMenu.
8653 5855 (fillWithWidgetValue:setDelegate:): New method.
86542012-07-18 Stefan Monnier <monnier@iro.umontreal.ca> 5856 (fillWithWidgetValue:): Call the above.
8655 5857
8656 * eval.c (Fdefvar): Don't check constants since we only set the var if 5858 * nsterm.h (EmacsMenu): Add fillWithWidgetValue:setDelegate:
8657 it's not yet defined anyway (bug#11904). 5859
8658 58602013-08-11 Paul Eggert <eggert@cs.ucla.edu>
8659 * lisp.h (last_undo_boundary): Declare new var. 5861
8660 * keyboard.c (command_loop_1): Set it. 5862 Omit some unnecessary casts.
8661 * cmds.c (Fself_insert_command): Use it to only remove boundaries that 5863 Many of these go back to the old pre-C89 days, when they may have
8662 were auto-added by the command loop (bug#11774). 5864 been needed, but we've been assuming C89 or later for a while now.
8663 5865 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
86642012-07-18 Andreas Schwab <schwab@linux-m68k.org> 5866 (live_float_p, live_misc_p, live_vector_p):
8665 5867 * buffer.c (compare_overlays, cmp_for_strings, mmap_find)
8666 * w32font.c (Qsymbol): Remove local definition. 5868 (mmap_alloc, alloc_buffer_text, enlarge_buffer_text)
8667 (syms_of_w32font): Don't DEFSYM it. 5869 (defvar_per_buffer):
8668 5870 * callint.c (Fcall_interactively):
86692012-07-18 Dmitry Antipov <dmantipov@yandex.ru> 5871 * doc.c (Fsubstitute_command_keys):
8670 5872 * filelock.c (get_boot_time):
8671 Fix sweep_vectors to handle large bool vectors correctly. 5873 * frame.c (xrdb_get_resource):
8672 * alloc.c (sweep_vectors): Account total_vector_bytes for 5874 * gtkutil.c (hierarchy_ch_cb, qttip_cb, style_changed_cb)
8673 bool vectors larger than VBLOCK_BYTES_MAX. 5875 (delete_cb, xg_dialog_response_cb, xg_maybe_add_timer)
8674 5876 (xg_get_file_name_from_selector, menuitem_destroy_callback)
86752012-07-18 Chong Yidong <cyd@gnu.org> 5877 (menuitem_highlight_callback, menu_destroy_callback)
8676 5878 (xg_update_menu_item, xg_modify_menubar_widgets, menubar_map_cb)
8677 * frame.c (x_set_frame_parameters): Revert bogus change introduced 5879 (xg_tool_bar_callback, xg_get_tool_bar_widgets)
8678 in 2012-05-25 commit by Paul Eggert (Bug#11738). 5880 (xg_tool_bar_detach_callback, xg_tool_bar_attach_callback)
8679 5881 (xg_tool_bar_help_callback, tb_size_cb):
86802012-07-18 Dmitry Antipov <dmantipov@yandex.ru> 5882 * image.c (xpm_alloc_color, png_read_from_memory)
8681 5883 (png_read_from_file, png_load_body, our_memory_skip_input_data)
8682 Return more descriptive data from Fgarbage_collect. 5884 (jpeg_memory_src, jpeg_file_src, imagemagick_load_image)
8683 Suggested by Stefan Monnier in 5885 (syms_of_image):
8684 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00369.html. 5886 * keymap.c (describe_map):
8685 * alloc.c (bounded_number): New function. 5887 * nsfns.m (Fns_display_monitor_attributes_list):
8686 (total_buffers, total_vectors): New variable. 5888 * nsmenu.m (process_dialog:):
8687 (total_string_size): Rename to total_string_bytes, adjust users. 5889 * nsterm.m (hold_event):
8688 (total_vector_size): Rename to total_vector_bytes, adjust users. 5890 * process.c (wait_reading_process_output):
8689 (sweep_vectors): Account total_vectors and total_vector_bytes. 5891 * regex.c (REGEX_REALLOCATE, re_set_registers, re_exec, regexec):
8690 (Fgarbage_collect): New return value. Adjust documentation. 5892 * scroll.c (do_direct_scrolling, scrolling_1):
8691 (gc_sweep): Account total_buffers. 5893 * termcap.c (tgetent):
8692 (Fmemory_free, Fmemory_use_counts): Use bounded_number. 5894 * window.c (check_window_containing, add_window_to_list)
8693 (VECTOR_SIZE): Remove. 5895 (freeze_window_starts):
8694 * data.c (Qfloat, Qvector, Qsymbol, Qstring, Qcons): Make global. 5896 * xdisp.c (compare_overlay_entries, vmessage):
8695 (Qinterval, Qmisc): New symbols. 5897 * xfns.c (x_window, x_get_monitor_attributes_xinerama)
8696 (syms_of_data): Initialize them. 5898 (x_get_monitor_attributes_xrandr)
8697 * lisp.h (Qinterval, Qsymbol, Qstring, Qmisc, Qvector, Qfloat) 5899 (Fx_display_monitor_attributes_list, x_display_info_for_name)
8698 (Qcons, Qbuffer): New declarations. 5900 (Fx_open_connection, file_dialog_cb, file_dialog_unmap_cb):
8699 5901 * xfont.c (xfont_match, xfont_open):
87002012-07-17 Paul Eggert <eggert@cs.ucla.edu> 5902 * xmenu.c (x_menu_wait_for_event, menu_highlight_callback)
8701 5903 (menubar_selection_callback, menu_position_func)
8702 * alloc.c (Fmemory_free): Account for memory-free's own storage. 5904 (popup_selection_callback, create_and_show_popup_menu)
8703 Round up, not down. Improve doc. 5905 (dialog_selection_callback, create_and_show_dialog):
8704 5906 * xrdb.c (x_get_string_resource):
87052012-07-17 Dmitry Antipov <dmantipov@yandex.ru> 5907 (main) [TESTRM]:
8706 5908 * xsmfns.c (x_session_check_input):
8707 Restore old code in allocate_string_data to avoid Faset breakage. 5909 * xterm.c (x_draw_glyphless_glyph_string_foreground)
8708 Reported by Julien Danjou <julien@danjou.info> in 5910 (xm_scroll_callback, xg_scroll_callback, xg_end_scroll_callback)
8709 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00371.html. 5911 (xaw_jump_callback, xaw_scroll_callback):
8710 * alloc.c (allocate_string_data): Restore old code with minor 5912 Omit unnecessary casts.
8711 adjustments, fix comment to explain this subtle issue. 5913
8712 59142013-08-10 Paul Eggert <eggert@cs.ucla.edu>
87132012-07-17 Eli Zaretskii <eliz@gnu.org> 5915
8714 5916 Minor string-length refactoring.
8715 Remove FILE_SYSTEM_CASE. 5917 * alloc.c (xstrdup): Use memcpy, not strcpy, since the length's known.
8716 * s/msdos.h (FILE_SYSTEM_CASE): Don't define. 5918 * frame.c (make_monitor_attribute_list):
8717 5919 Prefer build_string to strlen + make_string.
8718 * fileio.c (FILE_SYSTEM_CASE): Don't define. 5920
8719 (Ffile_name_directory, Fexpand_file_name): Don't use FILE_SYSTEM_CASE. 59212013-08-10 Jan Djärv <jan.h.d@swipnet.se>
8720 Fixes problems on MS-DOS with Vtemp_file_name_pattern when 5922
8721 call-process-region passes it through expand-file-name. 5923 * xterm.c (x_error_handler): Also ignore BadWindow for X_SetInputFocus,
8722 5924 don't check minor_code (Bug#14417).
8723 * dired.c (file_name_completion): Don't use FILE_SYSTEM_CASE. 5925
8724 59262013-08-09 Eli Zaretskii <eliz@gnu.org>
87252012-07-17 Andreas Schwab <schwab@linux-m68k.org> 5927
8726 5928 * xdisp.c (draw_glyphs): Don't compare row pointers, compare row
8727 Fix crash when creating indirect buffer (Bug#11917) 5929 vertical positions instead. This avoids calling MATRIX_ROW with
8728 * buffer.c (buffer_lisp_local_variables): Add argument CLONE. 5930 row numbers that are possibly beyond valid limits. (Bug#15064)
8729 Don't handle unbound variables specially if non-zero. 5931
8730 (Fbuffer_local_variables): Pass zero. 59322013-08-09 Dmitry Antipov <dmantipov@yandex.ru>
8731 (clone_per_buffer_values): Pass non-zero. 5933
8732 5934 Use xstrdup and build_unibyte_string where applicable.
87332012-07-17 Andreas Schwab <schwab@linux-m68k.org> 5935 * alloc.c (xstrdup): Tiny cleanup. Add eassert.
8734 5936 * xfns.c (x_window):
8735 * gnutls.c (emacs_gnutls_handshake): Revert last change. Add QUIT 5937 * xrdb.c (x_get_customization_string):
8736 to make the loop interruptible. 5938 * xterm.c (xim_initialize):
8737 5939 * w32fns.c (w32_window): Use xstrdup.
87382012-07-17 Andreas Schwab <schwab@linux-m68k.org> 5940 (w32_display_monitor_attributes_list):
8739 5941 * emacs.c (init_cmdargs):
8740 * gnutls.c (emacs_gnutls_handshake): Only retry if 5942 * keyboard.c (PUSH_C_STR):
8741 GNUTLS_E_INTERRUPTED. 5943 * nsfont.m (nsfont_open):
8742 5944 * sysdep.c (system_process_attributes):
87432012-07-17 Dmitry Antipov <dmantipov@yandex.ru> 5945 * w32.c (system_process_attributes):
8744 5946 * xdisp.c (message1, message1_nolog): Use build_unibyte_string.
8745 Cleanup and convert miscellaneous checks to eassert.
8746 * alloc.c (mark_interval): Fix comment, partially rephrase
8747 old comment from intervals.h (see below).
8748 * intervals.c (find_interval, adjust_intervals_for_insertion)
8749 (delete_interval, adjust_intervals_for_deletion)
8750 (graft_intervals_into_buffer, temp_set_point_both, copy_intervals):
8751 Convert to eassert.
8752 (adjust_intervals_for_insertion, make_new_interval):
8753 Remove obsolete and unused code.
8754 * intervals.h (struct interval): Remove obsolete comment.
8755 * textprotp.c (erase_properties): Remove unused code.
8756 (Fadd_text_properties, set_text_properties_1, Fremove_text_properties)
8757 (Fremove_list_of_text_properties): Convert to eassert.
8758
87592012-07-17 Chong Yidong <cyd@gnu.org>
8760 5947
8761 * editfns.c (Finsert_char): Doc fix. 59482013-08-09 Eli Zaretskii <eliz@gnu.org>
8762 5949
87632012-07-17 Dmitry Antipov <dmantipov@yandex.ru> 5950 * w32.c (PEXCEPTION_POINTERS, PEXCEPTION_RECORD, PCONTEXT): Define
8764 5951 variables of these types so that GDB would know about them, as aid
8765 Fix previous change to make Fmemory_free always accurate. 5952 for debugging fatal exceptions. (Bug#15024) See also
8766 * alloc.c (make_interval): Update total_free_intervals. 5953 http://sourceware.org/ml/gdb/2013-08/msg00010.html for related
8767 (make_float): Likewise for total_free_floats. 5954 discussions.
8768 (free_cons, Fcons): Likewise for total_free_conses.
8769 (SETUP_ON_FREE_LIST, allocate_vector_from_block):
8770 Likewise for total_free_vector_bytes.
8771 (Fmake_symbol): Likewise for total_free_symbols.
8772 (bytes_free): Remove.
8773 5955
87742012-07-17 Dmitry Antipov <dmantipov@yandex.ru> 59562013-08-08 Jan Drv <jan.h.d@swipnet.se>
8775 5957
8776 Simple free memory accounting feature. 5958 * nsterm.m (ns_update_begin): Don't change clip path if it would be
8777 * alloc.c (bytes_free, total_free_vector_bytes): New variable. 5959 larger than the NSWindow (Bug#14934).
8778 (sweep_vectors): Accumulate size of free vectors.
8779 (Fgarbage_collect): Setup bytes_free.
8780 (Fmemory_free): New function.
8781 (syms_of_alloc): Register it.
8782
87832012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
8784 5960
8785 Cleanup overlays checking. 59612013-08-08 Dmitry Antipov <dmantipov@yandex.ru>
8786 * buffer.h (OVERLAY_VALID): Remove as useless synonym of OVERLAYP.
8787 * buffer.c (overlay_touches_p, recenter_overlay_lists): Change to
8788 eassert and OVERLAYP.
8789 (sort_overlays): Change to use OVERLAYP.
8790 5962
87912012-07-16 René Kyllingstad <Rene@Kyllingstad.com> (tiny change) 5963 Redesign redisplay interface to drop global variable updated_window.
5964 Always pass currently updated window as a parameter to update routines.
5965 * dispextern.h (updated_window): Remove declaration.
5966 (struct redisplay_interface): Pass window parameter to
5967 write_glyphs, insert_glyphs, clear_end_of_line, cursor_to
5968 and after_update_window_hook.
5969 (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line, x_cursor_to):
5970 Adjust prototypes.
5971 * dispnew.c (updated_window): Remove.
5972 (redraw_overlapped_rows, update_marginal_area, update_text_area)
5973 (update_window_line): Adjust to match redisplay interface changes.
5974 * nsterm.m (ns_update_window_begin, ns_update_window_end)
5975 (ns_scroll_run, ns_after_update_window_line):
5976 * w32term.c (x_update_window_begin, x_update_window_end)
5977 (x_after_update_window_line, x_scroll_run):
5978 * xterm.c (x_update_window_begin, x_update_window_end)
5979 (x_after_update_window_line, x_scroll_run):
5980 * xdisp.c (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
5981 Likewise. Adjust comments where appropriate.
5982 (x_cursor_to): Simplify because this is always called during window
5983 update (but install debugging check anyway).
5984 (expose_window): Check must_be_updated_p flag to see whether this
5985 function is called during window update.
5986
59872013-08-08 Dmitry Antipov <dmantipov@yandex.ru>
5988
5989 Do not reset window modification event counters excessively.
5990 These leftovers and poor man's tricky methods to catch extra
5991 redisplay's attention are no longer needed.
5992 * frame.c (set_menu_bar_lines_1):
5993 * minibuf.c (read_minibuf_unwind):
5994 * window.c (Fset_window_start, set_window_buffer, window_resize_apply)
5995 (grow_mini_window, shrink_mini_window, window_scroll_pixel_based)
5996 (window_scroll_line_based, Fset_window_configuration):
5997 * xdisp.c (redisplay_window): Do not reset last_modified and
5998 last_overlay_modified counters.
5999
60002013-08-07 Jan Djärv <jan.h.d@swipnet.se>
6001
6002 * xselect.c (x_send_client_event): Set send_event and serial, memset
6003 data.l as it might be bigger than data.b. Use 24 bit mask to
6004 XSendEvent (Bug#15034).
6005
60062013-08-07 Eli Zaretskii <eliz@gnu.org>
6007
6008 * xdisp.c (prepare_menu_bars): Don't call x_consider_frame_title
6009 for TTY frames that are not the top frame on their console.
6010 (Bug#14616)
6011
60122013-08-07 Martin Rudalics <rudalics@gmx.at>
6013
6014 * w32term.c (w32fullscreen_hook): Really maximize frame when
6015 asked for (Bug#14841).
6016
60172013-08-07 Dmitry Antipov <dmantipov@yandex.ru>
6018
6019 Prefer selected_window to Fselected_window, likewise for frames.
6020 * buffer.c (Fbuffer_swap_text):
6021 * data.c (Fvariable_binding_locus):
6022 * window.c (run_window_configuration_change_hook): Adjust users.
6023 * w16select.c (Fw16_set_clipboard_data, Fw16_get_clipboard_data):
6024 Use decode_live_frame.
6025
60262013-08-07 Dmitry Antipov <dmantipov@yandex.ru>
6027
6028 Be more careful if selected window shows the buffer other than current,
6029 use window_outdated only if this is not so. This change should also
6030 address some weird issues discussed in Bug#13012.
6031 * window.h (window_outdated): New prototype.
6032 * window.c (window_outdated): Now here. Convert from static and
6033 always assume window's buffer.
6034 (Fwindow_end, Fwindow_line_height): Use it.
6035 * xdisp.c (reconsider_clip_changes): Remove prototype, drop 2nd arg
6036 and always assume window's buffer.
6037 (redisplay_window): Adjust user.
6038 (redisplay_internal): Call to reconsider_clip_changes once and
6039 check whether mode line should be updated only if selected window
6040 shows current buffer.
6041 (run_window_scroll_functions): Use eassert for debugging check.
6042 (Fmove_point_visually, note_mouse_highlight): Use window_outdated.
6043
60442013-08-06 Dmitry Antipov <dmantipov@yandex.ru>
6045
6046 * window.c (window_scroll, window_scroll_pixel_based)
6047 (window_scroll_line_based): Use bool for booleans.
6048
60492013-08-06 Paul Eggert <eggert@cs.ucla.edu>
6050
6051 * process.c: Fix minor off-by-one issues in descriptor counts.
6052 This shouldn't fix any real bugs, but it cleans up the code a bit.
6053 (max_process_desc, max_input_desc): -1, not 0, means none.
6054 All uses changed.
6055 (delete_input_desc): New function.
6056 (delete_write_fd, delete_keyboard_wait_descriptor): Use it.
6057 (deactivate_process): Scan backwards when recomuting max_process_desc;
6058 that should be faster.
6059 (init_process_emacs): Initialize max_input_desc.
6060
60612013-08-06 Dmitry Antipov <dmantipov@yandex.ru>
6062
6063 Use region cache to speedup bidi_find_paragraph_start.
6064 * buffer.h (struct buffer): New member bidi_paragraph_cache.
6065 Rename cache_long_line_scans to cache_long_scans.
6066 * buffer.c (bset_cache_long_line_scans): Rename to
6067 bset_cache_long_scans.
6068 (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer)
6069 (Fbuffer_swap_text, init_buffer_once): Take bidi_paragraph_cache
6070 into account.
6071 (syms_of_buffer): Rename cache-long-line-scans to
6072 cache-long-scans. Adjust docstring.
6073 * search.c (newline_cache_on_off):
6074 * indent.c (width_run_cache_on_off): Adjust users.
6075 * bidi.c (bidi_paragraph_cache_on_off): New function.
6076 (bidi_find_paragraph_start): Use bidi_paragraph_cache if needed.
6077 * insdel.c (prepare_to_modify_buffer):
6078 Invalidate bidi_paragraph_cache if enabled.
6079
60802013-08-06 Dmitry Antipov <dmantipov@yandex.ru>
6081
6082 Invalidate region caches only if buffer text is going to be changed.
6083 * lisp.h (modify_region_1): Remove 3rd arg and rename to...
6084 (modify_text): ...new prototype.
6085 (prepare_to_modify_buffer_1): New prototype.
6086 * textprop.c (modify_region): Rename to...
6087 (modify_text_properties): ...new function.
6088 (add_text_properties_1, set_text_properties, Fremove_text_properties)
6089 (Fremove_list_of_text_properties): Adjust users.
6090 * insdel.c (modify_region_1): Remove 3rd arg and reimplement as...
6091 (modify_text): ...new function.
6092 (prepare_to_modify_buffer): Reimplement mostly as a wrapper for...
6093 (prepare_to_modify_buffer_1): ...new function.
6094 * casefiddle.c (casify_region):
6095 * editfns.c (Fsubst_char_in_region, Ftranslate_region_internal)
6096 (Ftranspose_regions): Use modify_text.
6097
60982013-08-05 Stefan Monnier <monnier@iro.umontreal.ca>
6099
6100 * lisp.mk (lisp): Add nadvice.elc.
6101
61022013-08-05 Dmitry Antipov <dmantipov@yandex.ru>
6103
6104 New macro to iterate over live buffers similar to frames.
6105 * buffer.h (FOR_EACH_LIVE_BUFFER): New macro.
6106 (Vbuffer_alist, Qpriority, Qbefore_string, Qafter_string):
6107 Declare buffer-related variables here to offload lisp.h.
6108 * buffer.c (Vbuffer_alist): Adjust comment.
6109 (Fget_file_buffer, get_truename_buffer, Fother_buffer)
6110 (other_buffer_safely):
6111 * data.c (store_symval_forwarding):
6112 * dispnew.c (Fframe_or_buffer_changed_p):
6113 * fileio.c (Fdo_auto_save):
6114 * filelock.c (unlock_all_files):
6115 * minibuf.c (read_minibuf): Use FOR_EACH_LIVE_BUFFER.
8792 6116
8793 * editfns.c (Finsert_char): Make it interactive, and make the 61172013-08-04 Paul Eggert <eggert@cs.ucla.edu>
8794 second arg optional. Copy interactive spec and docstring from
8795 ucs-insert.
8796 6118
87972012-07-17 Paul Eggert <eggert@cs.ucla.edu> 6119 Fix some minor races in hosts lacking mkostemp (Bug#15015).
6120 * callproc.c (create_temp_file):
6121 * filelock.c (create_lock_file):
6122 Assume mkostemp, since it's now provided by Gnulib.
8798 6123
8799 * floatfns.c (Fabs): Do not wrap fabs inside IN_FLOAT (Bug#11913). 61242013-08-04 Eli Zaretskii <eliz@gnu.org>
8800 Unlike the other wrapped functions, fabs has an unspecified
8801 effect on errno.
8802 6125
88032012-07-16 Jan Djärv <jan.h.d@swipnet.se> 6126 * w32.c (mkostemp): New function.
6127 (mktemp): Remove, no longer used. Most of the code reused in
6128 mkostemp. (Bug#15015)
6129 (mktemp): Don't undef.
8804 6130
8805 * nsterm.m (keyDown): Interpret flags without left/right bits 61312013-08-04 Dmitry Antipov <dmantipov@yandex.ru>
8806 as the left key (Bug#11670).
8807 6132
88082012-07-16 Dmitry Antipov <dmantipov@yandex.ru> 6133 * dispnew.c (glyph_matrix_count, glyph_pool_count):
6134 Move under GLYPH_DEBUG and ENABLE_CHECKING.
6135 (new_glyph_matrix, free_glyph_matrix, new_glyph_pool)
6136 (free_glyph_pool, check_glyph_memory): Likewise for
6137 all users. Adjust comments where appropriate.
8809 6138
8810 Remove empty and useless init functions. 61392013-08-03 Paul Eggert <eggert@cs.ucla.edu>
8811 * lisp.h (init_character_once, init_fns, init_image)
8812 (init_filelock, init_sound): Remove prototype.
8813 * character.c (init_character_once): Remove.
8814 * filelock.c (init_filelock): Likewise.
8815 * fns.c (init_fns): Likewise.
8816 * image.c (init_image): Likewise.
8817 * sound.c (init_sound): Likewise.
8818 * emacs.c (main): Adjust accordingly.
8819 6140
88202012-07-16 Dmitry Antipov <dmantipov@yandex.ru> 6141 * composite.h: Minor fixups.
6142 (composition_registered_p): Rename from COMPOSITION_REGISTERD_P
6143 to fix a misspelling, and change it to an inline function while
6144 we're at it (it need not be a macro). All uses changed.
6145 (composition_method, composition_valid_p):
6146 Rewrite to avoid assignments in if-conditions.
8821 6147
8822 * gtkutil.h: Tiny cleanups. 61482013-08-03 Dmitry Antipov <dmantipov@yandex.ru>
8823 (use_old_gtk_file_dialog): Remove useless declaration.
8824 (xg_uses_old_file_dialog): Add suggested const attribute.
8825 6149
88262012-07-15 Eli Zaretskii <eliz@gnu.org> 6150 Do not use global Lisp_Object in composition macros.
8827 6151 * composite.h (composition_temp): Remove declaration.
8828 * bidi.c (MAX_STRONG_CHAR_SEARCH): New macro. 6152 (COMPOSITION_METHOD, COMPOSITION_VALID_P): Replace with...
8829 (bidi_paragraph_init): Use it to limit search forward for a strong 6153 (composition_method, composition_valid_p): ...inline functions.
8830 directional character in abnormally large paragraphs full of 6154 (compose_region): Remove the leftover.
8831 neutral or weak characters. (Bug#11943) 6155 * composite.c (composition_temp): Remove.
8832 6156 (run_composition_function, update_compositions)
88332012-07-15 Stefano Facchini <stefano.facchini@gmail.com> (tiny change) 6157 (composition_compute_stop_pos, composition_adjust_point)
8834 6158 (Ffind_composition_internal):
8835 * gtkutil.c (xg_create_tool_bar): Apply "primary-toolbar" style to 6159 * coding.c (handle_composition_annotation):
8836 the toolbar (Bug#9451). 6160 * xdisp.c (handle_composition_prop, check_point_in_composition):
8837 (xg_make_tool_item): Give the widget event box a transparent 6161 Related users changed.
8838 background. 6162
8839 61632013-08-03 Dmitry Antipov <dmantipov@yandex.ru>
88402012-07-15 Dmitry Antipov <dmantipov@yandex.ru> 6164
8841 6165 Drop FRAME_PTR typedef.
8842 Cleanup basic allocation variables and functions. 6166 * composite.c, font.c, font.h, fontset.c, fontset.h, frame.c, frame.h:
8843 * alloc.c (ignore_warnings, init_intervals, init_float) 6167 * ftfont.c, ftxfont.c, gtkutil.c, gtkutil.h, image.c, keyboard.c:
8844 (init_cons, init_symbol, init_marker): Remove. 6168 * menu.c, menu.h, msdos.c, nsfns.m, nsfont.m, nsmenu.m, nsterm.h:
8845 (interval_block_index): Initialize to INTERVAL_BLOCK_SIZE. 6169 * nsterm.m, scroll.c, term.c, w32fns.c, w32font.c, w32font.h:
8846 (float_block_index): Initialize to FLOAT_BLOCK_SIZE. 6170 * w32inevt.c, w32inevt.h, w32menu.c, w32notify.c, w32term.c, w32term.h:
8847 (cons_block_index): Initialize to CONS_BLOCK_SIZE. 6171 * w32uniscribe.c, w32xfns.c, widget.c, window.c, xdisp.c, xfaces.c:
8848 (symbol_block_size): Initialize to SYMBOL_BLOCK_SIZE. 6172 * xfns.c, xfont.c, xftfont.c, xmenu.c, xselect.c, xterm.c:
8849 (marker_block_index): Initialize to MARKER_BLOCK_SIZE. 6173 All related users changed.
8850 (staticidx, init_alloc_once, init_strings, free_ablock): 6174
8851 Remove redundant initialization. 61752013-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
8852 * fns.c (init_weak_hash_tables): Remove. 6176
8853 * lisp.h (init_weak_hash_tables): Remove prototype. 6177 * eval.c (default_toplevel_binding): New function.
8854 6178 (Fdefvar): Use it.
88552012-07-15 Dmitry Antipov <dmantipov@yandex.ru> 6179 (unbind_to, backtrace_eval_unrewind): Do a bit of CSE simplification.
8856 6180 (Fdefault_toplevel_value, Fset_default_toplevel_value): New subrs.
8857 Use zero_vector where appropriate. 6181 (syms_of_eval): Export them.
8858 * alloc.c (zero_vector): Define as Lisp_Object. Adjust users 6182 * data.c (Fdefault_value): Micro cleanup.
8859 accordingly. 6183 * term.c (init_tty): Use "false".
8860 * lisp.h (zero_vector): New declaration. 6184
8861 * font.c (null_vector): Remove. 61852013-08-02 Dmitry Antipov <dmantipov@yandex.ru>
8862 (syms_of_font): Remove initialization and staticpro. 6186
8863 (font_list_entities, font_find_for_lface): Change to use zero_vector. 6187 Fix X GC leak in GTK and raw (no toolkit) X ports.
8864 * keymap.c (Faccessible_keymaps): Likewise. 6188 * xterm.c (x_free_frame_resources): If white and black relief
8865 6189 GCs are allocated, always free them here.
88662012-07-15 Leo Liu <sdl.web@gmail.com> 6190 * xfns.c (x_make_gc): Omit redundant initialization.
8867 6191 * widget.c (create_frame_gcs): Remove the leftover.
8868 * fringe.c: Fix typo in comments. 6192 (EmacsFrameDestroy): Do nothing because all GCs are now freed
8869 6193 in x_free_frame_resources.
88702012-07-14 Leo Liu <sdl.web@gmail.com> 6194
8871 61952013-08-02 Jan Djärv <jan.h.d@swipnet.se>
8872 * fringe.c: Add a new bitmap exclamation-mark. 6196
8873 6197 * nsterm.m (windowWillResize:toSize:): Only change title if
88742012-07-14 Eli Zaretskii <eliz@gnu.org> 6198 ! maximizing_resize && FULLSCREEN_NONE (Bug#15005). strdup title before
8875 6199 modifying it.
8876 * gmalloc.c (GMALLOC_INHIBIT_VALLOC): Don't reference. 6200 (viewDidEndLiveResize): New method.
8877 6201
8878 * s/msdos.h (BSD_SYSTEM, DATA_START, GC_SETJMP_WORKS, HAVE_MOUSE) 6202 * nsterm.h (EmacsView): Add maximizing_resize, put it and old_title
8879 (HAVE_MENUS): Don't define, defined by editing config.in with 6203 inside NS_IMPL_COCOA.
8880 msdos/sed2v2.inp. 6204
8881 (GMALLOC_INHIBIT_VALLOC): Don't define. 62052013-08-02 Dmitry Antipov <dmantipov@yandex.ru>
8882 (MODE_LINE_BINARY_TEXT): Remove, not used anymore. 6206
8883 6207 * insdel.c (adjust_after_replace, replace_range, del_range_2):
88842012-07-14 Juanma Barranquero <lekktu@gmail.com> 6208 Do not check whether undo is enabled because record_insert and
8885 6209 record_delete does that themselves.
8886 * s/ms-w32.h (GC_SETJMP_WORKS, GC_MARK_STACK): Set in nt/config.nt. 6210
8887 62112013-08-02 Dmitry Antipov <dmantipov@yandex.ru>
88882012-07-14 Glenn Morris <rgm@gnu.org> 6212
8889 6213 * xterm.h (struct x_output) [HAVE_X_I18N]: Remove xic_base_fontname
8890 * s/aix4-2.h, s/freebsd.h, s/gnu-linux.h, s/hpux10-20.h: 6214 member which is not really used any more.
8891 * s/irix6-5.h, s/netbsd.h, s/sol2-6.h, s/unixware.h: 6215 (FRAME_XIC_BASE_FONTNAME): Remove.
8892 Let configure set GC_SETJMP_WORKS, GC_MARK_STACK. 6216 * xfns.c (xic_free_fontset): Adjust user.
8893 6217 * xmenu.c (mouse_position_for_popup, x_activate_menubar)
88942012-07-13 Glenn Morris <rgm@gnu.org> 6218 (update_frame_menubar, set_frame_menubar, free_frame_menubar)
8895 6219 (create_and_show_popup_menu, xmenu_show, create_and_show_dialog)
8896 * s/gnu-linux.h (GC_MARK_SECONDARY_STACK): Let configure set it. 6220 (xdialog_show): Use eassert for debugging check.
8897 6221 * w32term.c (x_unfocus_frame): Remove unused dummy function.
8898 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Let configure set it. 6222
8899 * s/irix6-5.h (SETUP_SLAVE_PTY): No more need to unset it. 62232013-08-01 Paul Eggert <eggert@cs.ucla.edu>
8900 6224
89012012-07-13 Jan Djärv <jan.h.d@swipnet.se> 6225 * fileio.c, fns.c (merge): Move extern decl from here ...
8902 6226 * lisp.h (merge): ... to here.
8903 * nsterm.m (uRect): Only define if NS_IMPL_GNUSTEP. 6227
8904 (x_free_frame_resources): Pass x_free_frame_resources to NSTRACE. 62282013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
8905 (ns_lisp_to_color, ns_string_to_lispmod, ns_term_init) 6229
8906 (ns_term_shutdown, requestService, initFrameFromEmacs): Use SSDATA 6230 Fix last font-related change.
8907 where appropriate. 6231 * w32font.h (w32font_list_internal, w32font_match_internal):
8908 (ns_exec_path, ns_load_path, changeFont): Put () around assignment used 6232 Fix prototype.
8909 as boolean expression. 6233 * w32uniscribe.c (uniscribe_list, uniscribe_match):
8910 (x_set_window_size): Remove unused variable toolbar. 6234 (uniscribe_list_family): Adjust to match font API change.
8911 (ns_get_color_default, ns_mod_to_lisp): Remove. 6235 MS-Windows breakage reported by Juanma Barranquero <lekktu@gmail.com>
8912 (ns_mouse_position): Remove unused variables xchar and ychar. 6236 at http://lists.gnu.org/archive/html/emacs-devel/2013-08/msg00006.html.
8913 (ns_compute_glyph_string_overhangs): Remove unused variable face. 6237
8914 (ns_set_vertical_scroll_bar): Remove unused variable count. 62382013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
8915 (ns_delete_terminal): Remove unused variable i. 6239
8916 (ns_term_init): Remove unused variables r, g and b. 6240 * frame.h (FRAME_MOUSE_UPDATE):
8917 (mouseDown): Remove unused variable window. 6241 * nsterm.m (ns_frame_up_to_date): Omit redundant check
8918 (windowDidResize): Move definition of theWindow inside NS_IMPL_GNUSTEP. 6242 whether hlinfo->mouse_face_mouse_frame is non-NULL.
8919 (initFrameFromEmacs): Remove unused variable vbextra. 6243
8920 (mouseEntered): Remove unused variables p and dpyinfo. 62442013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
8921 (mouseExited): Remove unused variables p and r. 6245
8922 (ns_define_frame_cursor, ns_clear_frame_area) 6246 Avoid redundant Lisp_Object <-> struct frame conversions in font API.
8923 (ns_draw_window_cursor, ns_initialize_display_info): Make static. 6247 * font.h (struct font_driver): Change list, match, and list_family
8924 (menuDown): Assign [sender tag] to variable and cast the variable. 6248 functions to accept struct frame * as first arg.
8925 6249 * font.c (font_score, font_compare, font_sort_entities):
8926 * nsterm.h (menuDown): Add id as type to argument sender. 6250 Remove prototypes.
8927 (ns_display_info_for_name): Add Lisp_Object argument. 6251 (font_sort_entities, font_list_entities, font_select_entity):
8928 (ns_term_init): Add Lisp_Object argument. 6252 (font_find_for_lface, Flist_fonts, Ffont_family_list): Adjust to
8929 (ns_map_event_to_object): Add void argument. 6253 match font API change.
8930 (ns_string_from_pasteboard, ns_string_to_pasteboard): Add correct 6254 * xfont.c (xfont_list, xfont_match, xfont_list_family):
8931 prototype with arguments and only declare if __OBJC__. 6255 * ftfont.c (ftfont_list, ftfont_match, ftfont_list_family):
8932 (nxatoms_of_nsselect): Add void argument. 6256 * ftxfont.c (ftxfont_list, ftxfont_match):
8933 (ns_lisp_to_cursor_type): Add Lisp_Object argument. 6257 * xftfont.c (xftfont_list, xftfont_match):
8934 (ns_alloc_autorelease_pool): Add void argument. 6258 * nsfont.m (nsfont_list, nsfont_match, nsfont_list_family):
8935 (ns_release_autorelease_pool): Add void* argument. 6259 * w32font.c (w32font_list, w32font_match, w32font_list):
8936 (ns_get_defaults_value): Add const char* argument. 6260 (w32font_list_internal, w32_font_match_internal): Likewise.
8937 6261 * xfaces.c (Fx_family_fonts): Adjust user.
8938 * nsmenu.m (ns_update_menubar, ns_menu_show, process_dialog) 6262
8939 (initFromContents): Use SSDATA where appropriate. 62632013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
8940 (ns_update_menubar): Add braces to ambigous if-else. 6264
8941 (initWithTitle): Put () around assignment in if statement. 6265 Do not use pure Xism x_wm_set_icon_position in non-X ports.
8942 (ns_menu_show): Remove unused variables window and keymap. 6266 * frame.c (x_set_frame_parameters): Call to x_wm_set_icon_position
8943 (update_frame_tool_bar): Remove unused variable selected_p. 6267 only if HAVE_X_WINDOWS is in use.
8944 (initWithContentRect): Remove unused variable this_cmd_name. 6268 * frame.h (x_set_frame_parameters): Move under HAVE_X_WINDOWS.
8945 6269 * nsterm.m (x_wm_set_icon_position): Remove no-op.
8946 * nsimage.m (ns_load_image, allocInitFromFile): Use SSDATA where 6270 * w32term.c (x_wm_set_icon_position): Likewise.
6271 * w32fns.c (x_icon): Adjust user.
6272
62732013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
6274
6275 * xterm.c (last_mouse_press_frame): Remove the
6276 leftover which is not really used any more.
6277 (handle_one_xevent, syms_of_xterm): Adjust users.
6278 (x_flush): Call XFlush once per each X display, not frame.
6279 This is better because this code always unconditionally skips
6280 non-X frames in Vframe_list and issues the only XFlush if we
6281 have more than one X frame on the same X display.
6282 (any_help_event_p, x_draw_glyph_string_background, x_display_ok):
6283 Use bool for booleans.
6284 (x_draw_glyph_string_background, cvt_string_to_pixel):
6285 (cvt_pixel_dtor): Drop unnecessary prototypes.
6286 * xterm.h (x_display_ok): Adjust prototype.
6287
62882013-07-31 Dmitry Antipov <dmantipov@yandex.ru>
6289
6290 Drop unnecessary functions that deals with frame pixel size.
6291 * frame.h, msdos.h, w32term.h, xterm.h (x_pixel_width)
6292 (x_pixel_height): Drop prototypes.
6293 * msdos.c, nsfns.m, w32fns.c, xfns.c (x_pixel_width)
6294 (x_pixel_height): Drop implementations.
6295 * frame.c (Fframe_pixel_height): Use FRAME_PIXEL_HEIGHT
6296 which should be always valid for window frame.
6297 (Frame_pixel_width): Likewise with FRAME_PIXEL_WIDTH.
6298 * w32menu.c (Fx_popup_dialog):
6299 * xmenu.c (Fx_popup_dialog): Likewise for both.
6300
63012013-07-31 Dmitry Antipov <dmantipov@yandex.ru>
6302
6303 * frame.c (Fmake_terminal_frame): Use store_in_alist to setup
6304 frame parameters and call to Fmodify_frame_parameters just once.
6305 (Fset_frame_height, Fset_frame_width): Mention nil frame in docstring.
6306 (Fset_frame_size, Fset_frame_position): Use decode_live_frame
6307 and mention nil frame in docstring.
6308
63092013-07-31 Dmitry Antipov <dmantipov@yandex.ru>
6310
6311 * frame.c (make_frame, x_set_frame_parameters): Use bool for boolean.
6312 (x_figure_window_size): Likewise. Adjust to return long.
6313 (syms_of_frame): Do not DEFSYM Qterminal_live_p.
6314 (toplevel): Move Qterminal_live_p to...
6315 * terminal.c (toplevel): ...here, make it static, and...
6316 (syms_of_terminal): ...DEFSYM here.
6317 * frame.h (Qterminal_live_p): Remove declaration.
6318 (make_frame, x_figure_window_size): Adjust prototype.
6319 * nsfns.m (Fx_create_frame): Use long for window flags.
6320
63212013-07-30 Paul Eggert <eggert@cs.ucla.edu>
6322
6323 Fix tempfile bug on platforms lacking mkostemp and mkstemp (Bug#14986).
6324 * callproc.c (create_temp_file) [! (HAVE_MKOSTEMP || HAVE_MKSTEMP)]:
6325 Do not assume that emacs_close (INT_MAX) is a no-op.
6326
63272013-07-30 Dmitry Antipov <dmantipov@yandex.ru>
6328
6329 * xfaces.c (make_face_cache): For struct face_cache, prefer
6330 xmalloc to xzalloc and so avoid redundant call to memset.
6331 (Finternal_set_lisp_face_attribute): Fix comment typo and style.
6332
63332013-07-30 Dmitry Antipov <dmantipov@yandex.ru>
6334
6335 * fringe.c (draw_window_fringes, update_window_fringes)
6336 (compute_fringe_widths):
6337 * w32term.c (x_draw_glyph_string):
6338 * window.c (candidate_window_p, Frecenter):
6339 * xfaces.c (realize_basic_faces, realize_default_face)
6340 (Fbitmap_space_p, Finternal_set_lisp_face_attribute)
6341 (x_update_menu_appearance, face_attr_equal_p, lface_equal_p):
6342 * xfns.c (x_set_cursor_color, xic_free_xfontset):
6343 * xmenu.c (Fx_menu_bar_open_internal):
6344 * xselect.c (x_reply_selection_request, Fx_get_atom_name):
6345 * xsettings.c (xft_settings_event):
6346 * xterm.c (x_draw_glyph_string, x_had_errors_p):
6347 Use bool for booleans. Adjust style and comments where
8947 appropriate. 6348 appropriate.
8948 (setXBMColor): Remove unused variable len. 6349 * dispextern.h (draw_window_fringes, update_window_fringes)
8949 (setPixmapData): Put () around assignment in loop statement. 6350 (compute_fringe_widths):
8950 6351 * xterm.h (x_had_errors_p): Adjust prototype.
8951 * nsfont.m (ns_get_family, ns_lang_to_script, ns_otf_to_script)
8952 (ns_registry_to_script, ns_get_req_script, nsfont_open): Use SSDATA
8953 where appropriate.
8954 (ns_get_covering_families, ns_findfonts, nsfont_list_family): Put ()
8955 around assignment in loop statement.
8956 (nsfont_open): Remove unused variable i.
8957 (nsfont_open): Remove unused variable len.
8958 (nsfont_draw): Remove unused variable cs.
8959
8960 * nsfns.m (x_set_icon_name, ns_set_name_internal)
8961 (ns_set_name_as_filename, ns_implicitly_set_icon_type)
8962 (x_set_icon_type, ns_lisp_to_cursor_type, Fns_read_file_name)
8963 (Fns_get_resource, Fns_set_resource, Fx_open_connection)
8964 (Fns_font_name, Fns_perform_service)
8965 (Fns_convert_utf8_nfd_to_nfc, ns_do_applescript)
8966 (Fns_do_applescript, Fx_show_tip): Use SSDATA where appropriate.
8967 (ns_set_name): Remove unused variable view.
8968 (x_set_menu_bar_lines): Remove unused variable olines.
8969 (x_set_tool_bar_lines): Remove unused variable root_window.
8970 (Fns_list_colors): Put () around assignment in while statement.
8971 (Fns_perform_service): Remove unused variable len.
8972 (Fns_display_usable_bounds): Remove unused variable top.
8973 (syms_of_nsfns): Remove unused variable i.
8974
8975 * nsmenu.m (ns_update_menubar): Exchange place of argument 2 and 3 to
8976 memcpy (Bug#11907).
8977
89782012-07-13 Kalle Kankare <kalle.kankare@iki.fi> (tiny change)
8979
8980 * image.c (Fimagemagick_types): Initialize ex with GetExceptionInfo
8981 and free it with DestroyExceptionInfo (Bug#11558).
8982
89832012-07-13 Juanma Barranquero <lekktu@gmail.com>
8984
8985 * s/ms-w32.h (FIRST_PTY_LETTER, HAVE_SOCKETS): Move to nt/config.nt.
8986 (HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE___BUILTIN_UNWIND_INIT):
8987 Set here, not in nt/config.nt.
8988
89892012-07-13 Eli Zaretskii <eliz@gnu.org>
8990
8991 * xdisp.c (move_it_in_display_line_to): On GUI terminals, allow
8992 cursor overflow into the last glyph on display line when the right
8993 fringe is off. (Bug#11832)
8994 6352
89952012-07-13 Paul Eggert <eggert@cs.ucla.edu> 63532013-07-30 Dmitry Antipov <dmantipov@yandex.ru>
8996 6354
8997 * xdisp.c (produce_special_glyphs): Now static. 6355 * frame.c (Fmodify_frame_parameters): Always check 2nd arg with
8998 * dispextern.h (produce_special_glyphs): Remove decl. 6356 CHECK_LIST. Rewrite the loop to avoid useless local variable.
8999 6357
90002012-07-13 Glenn Morris <rgm@gnu.org> 63582013-07-29 Dmitry Antipov <dmantipov@yandex.ru>
9001 6359
9002 * s/bsd-common.h, s/cygwin.h: Remove empty files. 6360 * fns.c (toplevel): Remove comment before Fsafe_length because
9003 * s/freebsd.h, s/netbsd.h: Do not include bsd-common.h. 6361 it checks for QUIT.
9004 6362
9005 * s/usg5-4-common.h (USG, USG5): 63632013-07-28 Paul Eggert <eggert@cs.ucla.edu>
9006 * s/template.h (USG5, USG, HPUX, BSD4_2, BSD_SYSTEM):
9007 * s/sol2-6.h (SOLARIS2):
9008 * s/irix6-5.h (IRIX6_5):
9009 * s/hpux10-20.h (USG, USG5, HPUX):
9010 * s/gnu-linux.h (USG, GNU_LINUX):
9011 * s/freebsd.h (BSD_SYSTEM):
9012 * s/darwin.h (BSD4_2, BSD_SYSTEM, DARWIN_OS):
9013 * s/cygwin.h (CYGWIN):
9014 * s/bsd-common.h (BSD_SYSTEM, BSD4_2):
9015 * s/aix4-2.h (USG, USG5, _AIX): Move "system type" macros to configure.
9016 6364
90172012-07-13 BT Templeton <bpt@hcoop.net> (tiny change) 6365 * frame.c (delete_frame): Avoid unnecessary 'this_f' test (Bug#14970).
9018 6366
9019 * nsfont.m (ns_charset_covers): Don't abort if no bitmap (Bug#11853). 63672013-07-28 Eli Zaretskii <eliz@gnu.org>
9020 6368
90212012-07-13 Glenn Morris <rgm@gnu.org> 6369 * w32fns.c (w32_wnd_proc) <WM_IME_STARTCOMPOSITION>: Make sure the
6370 frame which got the message is still alive, before dereferencing
6371 its pointer. (Bug#14970)
9022 6372
9023 * s/usg5-4-common.h (NSIG_MINIMUM): Let configure set it. 6373 * frame.c (delete_frame): Test "this" frame's minibuffer window to
6374 be a live window, before using it as such. (Bug#14970)
9024 6375
9025 * s/gnu-linux.h, s/irix6-5.h: Let configure set ULIMIT_BREAK_VALUE. 63762013-07-27 Eli Zaretskii <eliz@gnu.org>
9026 6377
9027 * process.c (init_process_emacs): Replace MIN_PTY_KERNEL_VERSION. 6378 * w32term.c (w32_read_socket) <WM_KILLFOCUS>: Call
9028 * s/darwin.h (MIN_PTY_KERNEL_VERSION): Remove single-use macro. 6379 w32_detect_focus_change instead of doing part of its job by hand.
6380 This fixes the problem whereby FOCUS_OUT events were not sent to
6381 the event queue.
9029 6382
90302012-07-12 Glenn Morris <rgm@gnu.org> 63832013-07-26 Eli Zaretskii <eliz@gnu.org>
9031 6384
9032 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Move to configure. 6385 * process.c (Fprocess_list): Doc fix.
9033 6386
9034 * process.c (init_process_emacs): Rename from init_process. 6387 * w32term.c (w32_read_socket) <WM_EMACS_PAINT>: Warn about frame
9035 The old name is also the name of a Mach system call. 6388 being re-exposed only if it didn't ask to become visible.
9036 * lisp.h, emacs.c: Update for this name change. 6389 <WM_SIZE>: Under SIZE_RESTORED, only set the frame visible if it
9037 * nsgui.h, sysselect.h, s/darwin.h: Remove workaround that is no 6390 was previously iconified. (Bug#14841)
9038 longer needed. 6391 (x_iconify_frame): Mark the frame iconified.
9039 6392
90402012-07-12 Eli Zaretskii <eliz@gnu.org> 63932013-07-26 Paul Eggert <eggert@cs.ucla.edu>
9041 6394
9042 * xdisp.c (insert_left_trunc_glyphs): Fix incorrect size in 6395 Fix minor problems found by static checking.
9043 memmove call that removes glyphs covered by the left truncation 6396 * eval.c (get_backtrace_frame, backtrace_eval_unrewind): Now static.
9044 glyph. Improve commentary. 6397 (backtrace_eval_unrewind): ';' -> '{}' to pacify GCC.
9045 (display_line): Fix display of continuation glyphs on GUI frames
9046 when the right fringe is turned off and variable-size fonts are
9047 used in the window. Move the code that appends a stretch glyph to
9048 produce_special_glyphs, so that it could be used for truncation
9049 and continuation glyphs alike.
9050 (produce_special_glyphs) [HAVE_WINDOW_SYSTEM]: Produce a stretch
9051 glyph of a suitably computed width, to align the special glyphs at
9052 the window margin. Code moved from display_line. (Bug#11832)
9053
90542012-07-12 Glenn Morris <rgm@gnu.org>
9055
9056 * s/aix4-2.h, s/hpux10-20.h: Let configure set NO_EDITRES.
9057
9058 * s/gnu-linux.h, s/hpux10-20.h:
9059 Do not unconditionally define HAVE_XRMSETDATABASE.
9060
9061 * s/gnu-linux.h (UNIX98_PTYS): Let configure set it.
9062
90632012-07-12 Paul Eggert <eggert@cs.ucla.edu>
9064
9065 Fix typos that broke OS X build.
9066 Reported by Randal L. Schwartz in
9067 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00225.html>.
9068 * nsterm.m (ns_timeout): Add missing local decl.
9069 (ns_get_color): snprintf -> sprintf, to fix typo.
9070
90712012-07-12 Glenn Morris <rgm@gnu.org>
9072
9073 * src/s/aix4-2.h, src/s/cygwin.h, src/s/darwin.h:
9074 * src/s/gnu-linux.h, src/s/hpux10-20.h, src/s/irix6-5.h:
9075 * src/s/sol2-6.h, src/s/unixware.h, src/s/usg5-4-common.h:
9076 Move PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF to configure.
9077
9078 * s/cygwin.h, s/darwin.h, s/gnu-linux.h, s/irix6-5.h:
9079 Move PTY_OPEN to configure.
9080
9081 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
9082 * s/gnu-linux.h, s/hpux10-20.h, s/irix6-5.h, s/template.h:
9083 * s/usg5-4-common.h: Move FIRST_PTY_LETTER, PTY_ITERATION to configure.
9084
90852012-07-12 Dmitry Antipov <dmantipov@yandex.ru>
9086
9087 Use empty_unibyte_string where applicable.
9088 * keyboard.c (parse_tool_bar_item): Use empty_unibyte_string.
9089 * lread.c (read1): Likewise.
9090 * xsettings.c (syms_of_xsettings): Likewise.
9091
90922012-07-12 Glenn Morris <rgm@gnu.org>
9093
9094 * s/cygwin.h (G_SLICE_ALWAYS_MALLOC):
9095 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN):
9096 * s/irix6-5.h (SETPGRP_RELEASES_CTTY, PREFER_VSUSP):
9097 * s/hpux10-20.h (RUN_TIME_REMAP):
9098 * s/bsd-common.h (TABDLY): Move to configure.
9099
9100 * s/hpux10-20.h, s/sol2-6.h: Move XOS_NEEDS_TIME_H to configure.
9101
9102 * s/bsd-common.h, s/darwin.h: Move TAB3 to configure.
9103
9104 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
9105 (BROKEN_SIGPOLL, BROKEN_GET_CURRENT_DIR_NAME): Let configure set them.
9106
9107 * s/darwin.h (NO_ABORT, NO_MATHERR): Let configure set them.
9108
9109 * s/bsd-common.h, s/cygwin.h, s/gnu-linux.h, s/irix6-5.h:
9110 * s/template.h: Move NARROWPROTO to configure.
9111
91122012-07-11 Glenn Morris <rgm@gnu.org>
9113 6398
9114 * s/gnu-linux.h, s/sol2-6.h: No longer define POSIX, 63992013-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
9115 unused since 2011-01-17 change to systty.h.
9116 6400
9117 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h, s/gnu-linux.h: 6401 * eval.c (set_specpdl_old_value): New function.
9118 * s/hpux10-20.h, s/template.h, s/usg5-4-common.h: 6402 (unbind_to): Minor simplification.
9119 Move HAVE_PTYS and HAVE_SOCKETS to configure. 6403 (get_backtrace_frame): New function.
6404 (Fbacktrace_frame): Use it. Add `base' argument.
6405 (backtrace_eval_unrewind, Fbacktrace_eval): New functions.
6406 (syms_of_eval): Export backtrace-eval.
6407 * xterm.c (x_focus_changed): Simplify.
9120 6408
91212012-07-11 Paul Eggert <eggert@cs.ucla.edu> 64092013-07-25 Paul Eggert <eggert@cs.ucla.edu>
9122 6410
9123 * s/sol2-6.h (HAVE_LIBKSTAT): Remove. (Bug#11914) 6411 * fileio.c (Finsert_file_contents): Avoid double-close (Bug#14936).
9124 6412
91252012-07-11 Glenn Morris <rgm@gnu.org> 64132013-07-24 Eli Zaretskii <eliz@gnu.org>
9126 6414
9127 * s/darwin.h, s/gnu-linux.h, s/template.h: 6415 * xdisp.c (redisplay_window): Instead of moving point out of
9128 Move INTERRUPT_INPUT to configure. 6416 scroll margin, reject the force_start method, and try scrolling
6417 instead. (Bug#14780)
9129 6418
91302012-07-11 Dmitry Antipov <dmantipov@yandex.ru> 64192013-07-24 Ken Brown <kbrown@cornell.edu>
9131 6420
9132 Minor adjustments to interning code. 6421 * alloc.c (make_save_ptr): Define if HAVE_NTGUI is defined
9133 * lisp.h (intern, intern_c_string): Redefine as static inline 6422 (Bug#14944).
9134 wrappers for intern_1 and intern_c_string_1, respectively.
9135 (intern_1, intern_c_string_1): Rename prototypes.
9136 * lread.c (intern_1, intern_c_string_1, oblookup):
9137 Simplify Vobarray checking.
9138 * font.c (font_intern_prop): Likewise. Adjust comment.
9139 * w32font.c (intern_font_name): Likewise.
9140 6423
91412012-07-11 Andreas Schwab <schwab@linux-m68k.org> 64242013-07-24 Paul Eggert <eggert@cs.ucla.edu>
9142 6425
9143 * gnutls.c (Fgnutls_boot): Properly parse :keylist argument. 6426 * eval.c (Fprogn): Do not check that BODY is a proper list.
6427 This undoes the previous change. The check slows down the
6428 interpreter, and is not needed to prevent a crash. See
6429 <http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00693.html>.
9144 6430
9145 * coding.c (Fdefine_coding_system_internal): Use XCAR/XCDR instead 64312013-07-23 Glenn Morris <rgm@gnu.org>
9146 of Fcar/Fcdr if possible.
9147 * font.c (check_otf_features): Likewise.
9148 * fontset.c (Fnew_fontset): Likewise.
9149 * gnutls.c (Fgnutls_boot): Likewise.
9150 * minibuf.c (read_minibuf): Likewise.
9151 * msdos.c (IT_set_frame_parameters): Likewise.
9152 * xmenu.c (Fx_popup_dialog): Likewise.
9153 * w32menu.c (Fx_popup_dialog): Likewise.
9154 6432
91552012-07-11 Glenn Morris <rgm@gnu.org> 6433 * Makefile.in ($(etc)/DOC, temacs$(EXEEXT)): Ensure etc/ exists.
9156 6434
9157 * s/bsd-common.h, s/cygwin.h: No need to undefine INTERRUPT_INPUT, 64352013-07-23 Paul Eggert <eggert@cs.ucla.edu>
9158 since nothing has defined it on these platforms.
9159 6436
9160 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/gnu-linux.h: 6437 Port to GNU/Linux systems with tinfo but not ncurses.
9161 * s/irix6-5.h: Move SIGNALS_VIA_CHARACTERS to configure. 6438 * dispnew.c (init_display): Depend on USE_NCURSES, not GNU_LINUX,
6439 to decide whether ncurses is being used. Without this change,
6440 GCC complains about tgetent not being declared, on a system
6441 that has tinfo installed but ncurses not installed.
9162 6442
9163 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h: 6443 * eval.c (Fprogn): Check that BODY is a proper list.
9164 * s/gnu-linux.h, s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
9165 Move CLASH_DETECTION to configure.
9166 6444
9167 * s/gnu.h: Remove file, which is now empty. 6445 Tune UNEVALLED functions by using XCAR instead of Fcar, etc.
6446 * data.c (Fsetq_default):
6447 * eval.c (Fif, Fcond, Fprog1, Fsetq, Fquote, Ffunction, Fdefvar)
6448 (Fdefconst, FletX, Flet, Fwhile, Fcatch, Funwind_protect)
6449 (Fcondition_case):
6450 Tune by taking advantage of the fact that ARGS is always a list
6451 when a function is declared to have UNEVALLED args.
9168 6452
9169 * s/gnu.h, s/gnu-linux.h: 6453 * emacsgtkfixed.c: Port to GCC 4.6.
9170 Move GNU_LIBRARY_PENDING_OUTPUT_COUNT to configure. 6454 GCC 4.6 complains about -Wunused-local-typedefs, introduced in 4.7.
9171 6455
91722012-07-11 John Wiegley <johnw@newartisans.com> 64562013-07-23 Juanma Barranquero <lekktu@gmail.com>
9173 6457
9174 * alloc.c (mark_memory): Guard the "no_address_safety_analysis" 6458 * callproc.c (child_setup)[!WINDOWSNT]: Move exec_errno and pid
9175 function attribute, so we only use it if it exists in the 6459 here to silence compiler warnings.
9176 compiler.
9177 6460
91782012-07-11 Dmitry Antipov <dmantipov@yandex.ru> 64612013-07-22 Paul Eggert <eggert@cs.ucla.edu>
9179 6462
9180 Avoid call to strlen in fast_c_string_match_ignore_case. 6463 * sysdep.c (frame) [__FreeBSD__]: #define to freebsd_frame
9181 * search.c (fast_c_string_match_ignore_case): Change to use 6464 when including <sys/user.h>, to prevent Sparc/ARM machine/frame.h
9182 length argument. Adjust users accordingly. 6465 from messing up Emacs's 'struct frame' (Bug#14923).
9183 * lisp.h (fast_c_string_match_ignore_case): Adjust prototype.
9184 6466
91852012-07-11 Paul Eggert <eggert@cs.ucla.edu> 64672013-07-21 Paul Eggert <eggert@cs.ucla.edu>
9186 6468
9187 Assume mkdir, rmdir. 6469 * alloc.c (make_save_ptr_ptr): Define this function.
9188 * sysdep.c (mkdir) [!HAVE_MKDIR]: Remove. 6470 It was inadvertently omitted. It's needed only if
9189 * sysdep.c (rmdir) [!HAVE_RMDIR]: Remove. 6471 HAVE_MENUS && ! (USE_X_TOOLKIT || USE_GTK).
9190 6472
9191 Assume rename. 64732013-07-21 Jan Djärv <jan.h.d@swipnet.se>
9192 * sysdep.c (rename) [!HAVE_RENAME]: Remove.
9193 6474
9194 Assume perror. 6475 * nsterm.m (sendEvent:): Skip mouse moved if no dialog and no Emacs
9195 * s/hpux10-20.h (HAVE_PERROR): Remove. 6476 frame have focus (Bug#14895).
9196 * sysdep.c (perror) [HPUX && !HAVE_PERROR]:
9197 Remove dummy definition, as this problem was obsolete long ago.
9198 6477
9199 Assume strerror. 64782013-07-21 Paul Eggert <eggert@cs.ucla.edu>
9200 * sysdep.c (strerror) [!HAVE_STRERROR && !WINDOWSNT]: Remove.
9201 6479
92022012-07-11 Dmitry Antipov <dmantipov@yandex.ru> 6480 Avoid vfork-related deadlock more cleanly.
6481 * callproc.c (child_setup): When the child's exec fails, output
6482 the program name, as that's more useful. Use O_NONBLOCK to avoid
6483 deadlock.
6484 * process.c (create_process_1): Remove; no longer needed.
6485 (create_process): Remove timer hack; no longer needed, now that
6486 the child avoids deadlock.
9203 6487
9204 Avoid calls to strlen in font processing functions. 64882013-07-20 Glenn Morris <rgm@gnu.org>
9205 * font.c (font_parse_name, font_parse_xlfd, font_parse_fcname)
9206 (font_open_by_name): Change to use length argument.
9207 Adjust users accordingly.
9208 * font.h (font_open_by_name, font_parse_xlfd, font_unparse_xlfd):
9209 Adjust prototypes.
9210 * xfont.c (xfont_decode_coding_xlfd, font_unparse_xlfd):
9211 Change to return ptrdiff_t.
9212 (xfont_list_pattern, xfont_match): Use length returned by
9213 xfont_decode_coding_xlfd.
9214 * xfns.c (x_default_font_parameter): Omit useless xstrdup.
9215
92162012-07-11 Glenn Morris <rgm@gnu.org>
9217
9218 * s/darwin.h, s/freebsd.h, s/netbsd.h:
9219 Move DONT_REOPEN_PTY to configure.
9220
9221 * sound.c (DEFAULT_SOUND_DEVICE) [!WINDOWSNT]:
9222 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Let configure set it.
9223
92242012-07-10 Paul Eggert <eggert@cs.ucla.edu>
9225
9226 Remove "#define unix" that is no longer needed (Bug#11905).
9227 * s/aix4-2.h (unix): Remove; no longer needed.
9228
9229 EMACS_TIME simplification (Bug#11875).
9230 This replaces macros (which typically do not work in GDB)
9231 with functions, typedefs and enums, making the code easier to debug.
9232 The functional style also makes code easier to read and maintain.
9233 * systime.h: Include <sys/time.h> on all hosts, not just if
9234 WINDOWSNT, since 'struct timeval' is needed in general.
9235 (EMACS_TIME): Now a typedef, not a macro.
9236 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): Now constants,
9237 not macros.
9238 (EMACS_SECS, EMACS_NSECS, EMACS_TIME_SIGN, EMACS_TIME_VALID_P)
9239 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE, EMACS_TIME_EQ)
9240 (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT)
9241 (EMACS_TIME_LE): Now functions, not macros.
9242 (EMACS_SET_SECS, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS)
9243 (EMACS_SET_USECS, EMACS_SET_SECS_USECS): Remove these macros,
9244 which are not functions. All uses rewritten to use:
9245 (make_emacs_time): New function.
9246 (EMACS_SECS_ADDR, EMACS_SET_INVALID_TIME, EMACS_GET_TIME)
9247 (EMACS_ADD_TIME, EMACS_SUB_TIME): Remove these macros, which are
9248 not functions. All uses rewritten to use the following, respectively:
9249 (emacs_secs_addr, invalid_emacs_time, get_emacs_time)
9250 (add_emacs_time, sub_emacs_time): New functions.
9251 * atimer.c: Don't include <sys/time.h>, as "systime.h" does this.
9252 * fileio.c (Fcopy_file):
9253 * xterm.c (XTflash): Get the current time closer to when it's used.
9254 * makefile.w32-in ($(BLD)/atimer.$(O)): Update dependencies.
9255 6489
9256 * bytecode.c (targets): Suppress -Woverride-init warnings. 6490 * image.c (Fimage_flush): Fix doc typo.
9257 6491
9258 Simplify by avoiding confusing use of strncpy etc. 64922013-07-20 Paul Eggert <eggert@cs.ucla.edu>
9259 * doc.c (Fsnarf_documentation):
9260 * fileio.c (Ffile_name_directory, Fsubstitute_in_file_name):
9261 * frame.c (Fmake_terminal_frame):
9262 * gtkutil.c (get_utf8_string):
9263 * lread.c (openp):
9264 * nsmenu.m (ns_update_menubar):
9265 * regex.c (regerror):
9266 Prefer memcpy to strncpy and strncat when either will do.
9267 * fileio.c (Fsubstitute_in_file_name):
9268 * keyboard.c (MULTI_LETTER_MOD, parse_modifiers_uncached)
9269 (menu_separator_name_p):
9270 * nsmenu.m (ns_update_menubar):
9271 Prefer memcmp to strncmp when either will do.
9272 * nsterm.m: Include <ftoastr.h>.
9273 (ns_get_color):
9274 * s/gnu-linux.h, s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF):
9275 Prefer snprintf to strncpy.
9276 * nsterm.m (ns_term_init):
9277 * widget.c (set_frame_size) [0]: Prefer xstrdup to xmalloc + strncpy.
9278 * nsterm.m (ns_term_init):
9279 Avoid the need for strncpy, by using build_string or
9280 make_unibyte_string directly. Use dtoastr, not snprintf.
9281 * process.c (Fmake_network_process): Diagnose service names that
9282 are too long, rather than silently truncating them or creating
9283 non-null-terminated names.
9284 (Fnetwork_interface_info): Likewise, for interface names.
9285 * sysdep.c (system_process_attributes) [GNU_LINUX]:
9286 Prefer sprintf to strncat.
9287 * xdisp.c (debug_method_add) [GLYPH_DEBUG]:
9288 Prefer vsnprintf to vsprintf + strncpy.
9289
92902012-07-10 Glenn Morris <rgm@gnu.org>
9291
9292 * dispnew.c (PENDING_OUTPUT_COUNT) [!__GNU_LIBRARY__]:
9293 Clarify fallback case.
9294
92952012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
9296
9297 Use XCAR and XCDR instead of Fcar and Fcdr where possible.
9298 * callint.c, coding.c, doc.c, editfns.c, eval.c, font.c, fontset.c,
9299 * frame.c, gnutls.c, minibuf.c, msdos.c, textprop.c, w32fns.c,
9300 * w32menu.c, window.c, xmenu.c: Change to use XCAR and XCDR
9301 where argument type is known to be a Lisp_Cons.
9302
93032012-07-10 Tom Tromey <tromey@redhat.com>
9304
9305 * bytecode.c (BYTE_CODE_THREADED): New macro.
9306 (BYTE_CODES): New macro. Replaces all old byte-code defines.
9307 (enum byte_code_op): New type.
9308 (CASE, NEXT, FIRST, CASE_DEFAULT, CASE_ABORT): New macros.
9309 (exec_byte_code): Use them. Use token threading when applicable.
9310
93112012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
9312
9313 Optimize pure C strings initialization.
9314 * lisp.h (make_pure_string): Fix prototype.
9315 (build_pure_c_string): New function, defined as static inline. This
9316 provides a better opportunity to optimize away calls to strlen when
9317 the function is called with compile-time constant argument.
9318 * alloc.c (make_pure_c_string): Fix comment. Change to add nchars
9319 argument, adjust users accordingly. Use build_pure_c_string where
9320 appropriate.
9321 * buffer.c, coding.c, data.c, dbusbind.c, fileio.c, fontset.c, frame.c,
9322 * keyboard.c, keymap.c, lread.c, search.c, syntax.c, w32fns.c, xdisp.c,
9323 * xfaces.c, xfns.c, xterm.c: Use build_pure_c_string where appropriate.
9324
93252012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
9326
9327 Avoid calls to strlen in miscellaneous functions.
9328 * buffer.c (init_buffer): Use precalculated len, adjust if needed.
9329 * font.c (Ffont_xlfd_name): Likewise. Change to call make_string.
9330 * lread.c (openp): Likewise.
9331
93322012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
9333
9334 Avoid calls to strlen in path processing functions.
9335 * fileio.c (file_name_as_directory): Add comment. Change to add
9336 srclen argument and return the length of result. Adjust users
9337 accordingly.
9338 (directory_file_name): Fix comment. Change to add srclen argument,
9339 swap 1st and 2nd arguments to obey the common convention.
9340 Adjust users accordingly.
9341 * filelock.c (fill_in_lock_file_name): Avoid calls to strlen.
9342
93432012-07-10 Glenn Morris <rgm@gnu.org>
9344
9345 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/netbsd.h, s/unixware.h:
9346 Move PENDING_OUTPUT_COUNT definition to configure.
9347
9348 * s/irix6-5.h (DATA_START, DATA_SEG_BITS):
9349 * s/hpux10-20.h (DATA_SEG_BITS, DATA_START):
9350 * s/gnu.h (DATA_START): Move definitions to configure.
9351
9352 * s/irix6-5.h (SETUP_SLAVE_PTY, PTY_NAME_SPRINTF): Drop ifdef guards.
9353 We include usg5-4-common.h, which defines them both.
9354
9355 * s/gnu.h: Don't include fcntl.h (every file in Emacs that uses
9356 O_RDONLY already includes it).
9357
9358 Stop ns builds setting the EMACSLOADPATH environment variable.
9359 * nsterm.m (ns_load_path): Rename from ns_init_paths.
9360 Now it does not set EMACSLOADPATH, just returns the load-path string.
9361 * nsterm.h: Update accordingly.
9362 * lread.c [HAVE_NS]: Include nsterm.h.
9363 (init_lread) [HAVE_NS]: Use ns_load_path.
9364 * emacs.c (main) [HAVE_NS]: No longer call ns_init_paths.
9365
93662012-07-09 Glenn Morris <rgm@gnu.org>
9367
9368 * s/gnu.h (SIGNALS_VIA_CHARACTERS): No need to define it here,
9369 since the included bsd-common.h does so.
9370 6493
9371 Stop ns builds setting the EMACSPATH environment variable. 6494 Fix array bounds violation when pty allocation fails.
9372 * nsterm.m (ns_exec_path): New function, split from ns_init_paths. 6495 * process.c (PTY_NAME_SIZE): New constant.
9373 (ns_init_paths): Do not set EMACSPATH. 6496 (pty_name): Remove static variable; it's now auto.
9374 * nsterm.h (ns_exec_path): Add it. 6497 (allocate_pty): Define even if !HAVE_PTYS; that's simpler.
9375 * callproc.c (init_callproc_1, init_callproc) [HAVE_NS]: 6498 Take pty_name as an arg rather than using a static variable.
9376 Use ns_exec_path.
9377
9378 * nsterm.m, nsterm.h (ns_etc_directory): Fix type, empty return.
9379
93802012-07-09 Paul Eggert <eggert@cs.ucla.edu>
9381
9382 * process.c (wait_reading_process_output): 'waitchannels' was unset
9383 when read_kbd || !NILP (wait_for_cell); fix this.
9384
9385 Add GCC-style 'const' attribute to functions that can use it.
9386 * character.h (char_resolve_modifier_mask):
9387 * keyboard.h (make_ctrl_char):
9388 * lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe)
9389 (init_character_once, next_almost_prime, init_fns, init_image)
9390 (flush_pending_output, init_sound):
9391 * mem-limits.h (start_of_data):
9392 * menu.h (finish_menu_items):
9393 Add ATTRIBUTE_CONST.
9394 * emacs.c (DEFINE_DUMMY_FUNCTION):
9395 Declare the dummy function with ATTRIBUTE_CONST.
9396 * lisp.h (Fbyteorder, Fmax_char, Fidentity):
9397 Add decls with ATTRIBUTE_CONST.
9398
9399 Minor improvements to make_formatted_string.
9400 * alloc.c (make_formatted_string): Prefer int to ptrdiff_t
9401 where int is good enough, as vsprintf returns an int.
9402 * lisp.h (make_formatted_string): Add ATTRIBUTE_FORMAT_PRINTF.
9403
94042012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
9405
9406 Use make_formatted_string to avoid double length calculation.
9407 * lisp.h (make_formatted_string): New prototype.
9408 * alloc.c (make_formatted_string): New function.
9409 * buffer.c (Fgenerate_new_buffer_name): Use it.
9410 * dbusbind.c (syms_of_dbusbind): Likewise.
9411 * editfns.c (Fcurrent_time_zone): Likewise.
9412 * filelock.c (get_boot_time): Likewise.
9413 * frame.c (make_terminal_frame, set_term_frame_name)
9414 (x_report_frame_params): Likewise.
9415 * image.c (gs_load): Likewise.
9416 * minibuf.c (get_minibuffer): Likewise.
9417 * msdos.c (dos_set_window_size): Likewise.
9418 * process.c (make_process): Likewise.
9419 * xdisp.c (ensure_echo_area_buffers): Likewise.
9420 * xsettings.c (apply_xft_settings): Likewise.
9421
94222012-07-09 Glenn Morris <rgm@gnu.org>
9423
9424 Stop ns builds polluting the environment with EMACSDATA, EMACSDOC.
9425 * nsterm.m (ns_etc_directory): New function, split from ns_init_paths.
9426 (ns_init_paths): Do not set EMACSDATA, EMACSDOC.
9427 * nsterm.h (ns_etc_directory): Add it.
9428 * callproc.c [HAVE_NS]: Include nsterm.h.
9429 (init_callproc_1, init_callproc) [HAVE_NS]: Use ns_etc_directory.
9430
94312012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
9432
9433 Move marker debugging code under MARKER_DEBUG.
9434 * marker.c (MARKER_DEBUG): Move marker debugging code under
9435 #ifdef MARKER_DEBUG because byte_char_debug_check is too slow
9436 for bootstrap with --enable-checking (~3x slowdown reported
9437 by Juanma Barranquero <lekktu@gmail.com>).
9438 (verify_bytepos): Move under #ifdef MARKER_DEBUG.
9439
94402012-07-08 Paul Eggert <eggert@cs.ucla.edu>
9441
9442 * systime.h (EMACS_SUB_TIME): Clarify behavior with unsigned time_t.
9443 See <http://bugs.gnu.org/11825#29>.
9444
94452012-07-08 Eli Zaretskii <eliz@gnu.org>
9446
9447 * xdisp.c (fill_glyphless_glyph_string): If the face of the glyph
9448 has no font, use the frame's font. (Bug#11813)
9449 (display_line): Add commentary about displaying truncation glyphs
9450 on GUI frames.
9451 (produce_special_glyphs): Move here from term.c.
9452
9453 * term.c (produce_special_glyphs): Move to xdisp.c.
9454
9455 * dispextern.h (produce_special_glyphs): Move prototype to xdisp.c
9456 section.
9457
94582012-07-07 Andreas Schwab <schwab@linux-m68k.org>
9459
9460 * xdisp.c (display_line): Avoid warning about implicit declaration
9461 of FRAME_FONT.
9462
9463 * frame.c (get_frame_param): Define only if HAVE_WINDOW_SYSTEM.
9464
9465 * lisp.h: Remove empty conditional.
9466
94672012-07-07 Paul Eggert <eggert@cs.ucla.edu>
9468
9469 * lread.c (load_path_check): Now static.
9470
9471 Fix some minor --with-ns problems found by static checking.
9472 * frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]:
9473 (x_set_font) [!HAVE_X_WINDOWS]:
9474 * image.c (xpm_load_image) [HAVE_NS]:
9475 (x_to_xcolors) [!HAVE_X_WINDOWS && !HAVE_NTGUI]:
9476 (x_disable_image) [!HAVE_NS && !HAVE_NTGUI]:
9477 Remove unused local.
9478 (Fx_parse_geometry) [HAVE_NS]: Don't return garbage.
9479 (xpm_load_image) [HAVE_NS && !HAVE_XPM]: Remove unused label.
9480 * image.c (x_create_bitmap_from_file) [HAVE_NS]:
9481 (xpm_load_image, xpm_load) [HAVE_NS && !HAVE_XPM]:
9482 * nsselect.m (symbol_to_nsstring, ns_string_to_pasteboard_internal):
9483 * xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]:
9484 Fix pointer signedness problem.
9485 * xfaces.c (FRAME_X_FONT_TABLE):
9486 * xterm.h (FRAME_X_FONT_TABLE): Remove unused, incompatible macros.
9487
94882012-07-07 Glenn Morris <rgm@gnu.org>
9489
9490 * lread.c (load_path_check): New function, split from init_lread.
9491 (init_lread): Reorganize. Motivation:
9492 If EMACSLOADPATH is set, check/warn about that rather than the
9493 defaults, which we are not going to use. Hence we can remove
9494 the turn_off_warning and WINDOWSNT || HAVE_NS tests.
9495 Don't warn if site-lisp directories are missing.
9496 If not installed, start from a blank load-path, since
9497 PATH_LOADSEARCH refers to the eventual installation directories.
9498
94992012-07-07 Eli Zaretskii <eliz@gnu.org>
9500
9501 Support truncation and continuation glyphs on GUI frames, when
9502 fringes are disabled. (Bug#11832)
9503 * xdisp.c (init_iterator): Get dimensions of truncation and
9504 continuation glyphs even if on GUI frames.
9505 Adjust it->last_visible_x on GUI frames when the left or right fringes,
9506 or both, are absent.
9507 (start_display, move_it_in_display_line_to): Handle the case of a
9508 GUI frame without a fringe to display continuation or truncation
9509 glyphs.
9510 (insert_left_trunc_glyphs): Support GUI frames: make sure
9511 truncation glyphs overwrite enough glyphs from the current line to
9512 have sufficient space in pixels.
9513 (display_line): Support truncation and continuation glyphs on GUI
9514 frames. If some spare pixels are left on the line after inserting
9515 the truncation glyphs, fill that space with a stretch glyph of a
9516 suitably computed width.
9517
9518 * term.c (produce_special_glyphs): Call PRODUCE_GLYPHS, not
9519 produce_glyphs, to support GUI sessions.
9520
95212012-07-07 Paul Eggert <eggert@cs.ucla.edu>
9522
9523 * sysdep.c (ULLONG_MAX): Define if not already defined (Bug#11781).
9524
9525 * sysdep.c (list_system_processes): Port to NetBSD-current (Bug#11797).
9526
9527 Do not require float-time's arg to fit in time_t (Bug#11825).
9528 This works better on hosts where time_t is unsigned, and where
9529 float-time is applied to the (negative) difference between two times.
9530 * editfns.c (decode_time_components): Last arg is now double *,
9531 not int *, and means to store all the result as a double, without
9532 worrying about whether the seconds part fits in time_t.
9533 All callers changed.
9534 (lisp_time_argument): Remove last int * arg, as it's no longer needed.
9535 All callers changed. 6499 All callers changed.
9536 (Ffloat_time): Do not fail merely because the specified time falls 6500 (create_process): Recover pty_flag from process, not from volatile local.
9537 outside of time_t range. 6501 (create_pty): Stay inside array even when pty allocation fails.
9538 6502 (Fmake_serial_process): Omit unnecessary initializaiton of pty_flag.
95392012-07-07 Glenn Morris <rgm@gnu.org> 6503
9540 6504 * lread.c (Fload): Avoid initialization only when lint checking.
9541 * s/darwin.h (HAVE_RES_INIT, HAVE_LIBRESOLV): 6505 Mention that it's needed only for older GCCs.
9542 * s/hpux10-20.h (HAVE_RINT, HAVE_RANDOM): 6506
9543 * s/unixware.h (HAVE_GETWD): Move undefs to configure (effectively). 65072013-07-20 Kenichi Handa <handa@gnu.org>
9544 6508
95452012-07-07 Juanma Barranquero <lekktu@gmail.com> 6509 * coding.c (CODING_ISO_FLAG_LEVEL_4): New macro.
9546 6510 (decode_coding_iso_2022): Check the single-shift area. (Bug#8522)
9547 * makefile.w32-in (DISPEXTERN_H, $(BLD)/regex.$(O)): 6511
9548 Update dependencies. 65122013-07-20 Andreas Schwab <schwab@linux-m68k.org>
9549 6513
9550 * s/ms-w32.h [_MSC_VER]: Remove strcasecmp, strncasecmp. 6514 * lread.c (Fload): Avoid uninitialized warning.
9551 6515
95522012-07-06 Paul Eggert <eggert@cs.ucla.edu> 65162013-07-19 Paul Eggert <eggert@cs.ucla.edu>
9553 6517
9554 Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786). 6518 Fix some minor file descriptor leaks and related glitches.
9555 * dispextern.h, nsfns.m, nsterm.m: Include <c-strcase.h>. 6519 * filelock.c (create_lock_file) [!O_CLOEXEC]: Use fcntl with FD_CLOEXEC.
9556 * dispextern.h (xstrcasecmp): Rewrite using c_strcasecmp. 6520 (create_lock_file): Use write, not emacs_write.
9557 * nsfns.m (x_get_string_resource): Use c_strncasecmp, not strncasecmp. 6521 * image.c (slurp_file, png_load_body):
9558 * nsterm.m (ns_default): Use c_strcasecmp, not strcasecmp. 6522 * process.c (Fnetwork_interface_list, Fnetwork_interface_info)
9559 * xfaces.c (xstrcasecmp) [!HAVE_STRCASECMP]: Remove. 6523 (server_accept_connection):
9560 6524 Don't leak an fd on memory allocation failure.
9561 * xfont.c (compare_font_names): Redo to omit the need for casts. 6525 * image.c (slurp_file): Add a cheap heuristic for growing files.
9562 6526 * xfaces.c (Fx_load_color_file): Block input around the fopen too,
95632012-07-06 Andreas Schwab <schwab@linux-m68k.org> 6527 as that's what the other routines do. Maybe input need not be
9564 6528 blocked at all, but it's better to be consistent.
9565 * xfns.c (Fx_change_window_property): Doc fix. 6529 Avoid undefined behavior when strlen is zero.
9566 * w32fns.c (Fx_change_window_property): Doc fix. 6530
9567 6531 * alloc.c (staticpro): Avoid buffer overrun on repeated calls.
9568 * w32fns.c (Fx_window_property): Accept the same arguments as the 6532 (NSTATICS): Now a constant; doesn't need to be a macro.
9569 X Windows version. Doc fix. 6533
9570 * xfns.c (Fx_window_property): Doc fix. (Bug#11870) 65342013-07-19 Richard Stallman <rms@gnu.org>
9571 6535
95722012-07-06 Juanma Barranquero <lekktu@gmail.com> 6536 * coding.c (decode_coding_utf_8): Add simple loop for fast
9573 Eli Zaretskii <eliz@gnu.org> 6537 processing of ASCII characters.
9574 6538
9575 * s/ms-w32.h: Settings not specific to Windows moved to nt/config.nt. 65392013-07-19 Paul Eggert <eggert@cs.ucla.edu>
9576 Windows-specific code from nt/config.nt moved here. 6540
9577 Obsolete settings removed. 6541 * conf_post.h (RE_TRANSLATE_P) [emacs]: Remove obsolete optimization.
9578 6542
95792012-07-06 Paul Eggert <eggert@cs.ucla.edu> 65432013-07-19 Eli Zaretskii <eliz@gnu.org>
9580 6544
9581 * process.c: Avoid unnecessary calls to gettime. 6545 * keyboard.c (kbd_buffer_get_event): Use Display_Info instead of
9582 (wait_reading_process_output): Don't get the time of day 6546 unportable 'struct x_display_info'.
9583 when gobbling data immediately and not waiting, as there's no need 6547 (DISPLAY_LIST_INFO): Delete macro: not needed, since Display_Info
9584 for it in that case. This removes a FIXME. 6548 is a portable type.
9585 6549
95862012-07-06 Jan Djärv <jan.h.d@swipnet.se> 65502013-07-19 Paul Eggert <eggert@cs.ucla.edu>
9587 6551
9588 * gtkutil.c (xg_event_is_for_scrollbar): Assign gwin when HAVE_GTK3 6552 * sysdep.c [GNU_LINUX]: Fix fd and memory leaks and similar issues.
9589 is defined (Bug#11768). 6553 (procfs_ttyname): Don't use uninitialized storage if emacs_fopen
9590 6554 or fscanf fails.
95912012-07-06 Dmitry Antipov <dmantipov@yandex.ru> 6555 (system_process_attributes): Prefer plain char to unsigned char
9592 6556 when either will do. Clean up properly if interrupted or if
9593 Fix marker debugging code. 6557 memory allocations fail. Don't assume sscanf succeeds.
9594 * marker.c (byte_char_debug_check): Do not perform the check 6558 Remove no-longer-needed workaround to stop GCC from whining.
9595 if buffer is not multibyte. 6559 Read command-line once, instead of multiple times. Check read status a
9596 (buf_charpos_to_bytepos, buf_bytepos_to_charpos): 6560 bit more carefully.
9597 Call byte_char_debug_check with correct arguments. 6561
9598 6562 Fix obscure porting bug with varargs functions.
95992012-07-06 Dmitry Antipov <dmantipov@yandex.ru> 6563 The code assumed that int is treated like ptrdiff_t in a vararg
9600 6564 function, which is not a portable assumption. There was a similar
9601 Compile marker debugging code only if ENABLE_CHECKING is defined. 6565 -- though these days less likely -- porting problem with various
9602 * marker.c (byte_char_debug_check, count_markers): 6566 assumptions that pointers of different types all smell the same as
9603 Use only if ENABLE_CHECKING is defined. 6567 far as vararg functions is conserved. To make this problem less
9604 (byte_debug_flag): Remove. 6568 likely in the future, redo the API to use varargs functions.
9605 (CONSIDER, buf_charpos_to_bytepos, buf_bytepos_to_charpos): 6569 * alloc.c (make_save_value): Remove this vararg function.
9606 Always call byte_char_debug_check if ENABLE_CHECKING is defined. 6570 All uses changed to ...
9607 6571 (make_save_int_int_int, make_save_obj_obj_obj_obj)
96082012-07-06 Dmitry Antipov <dmantipov@yandex.ru> 6572 (make_save_ptr_int, make_save_funcptr_ptr_obj, make_save_memory):
9609 6573 New functions.
9610 Avoid code repetition in marker-related functions. 6574 (make_save_ptr): Rename from make_save_pointer, for consistency with
9611 * marker.c (attach_marker): New function. 6575 the above. Define only on platforms that need it. All uses changed.
9612 (Fset_marker, set_marker_restricted, set_marker_both)
9613 (set_marker_restricted_both): Use it.
9614 (Fset_marker, set_marker_restricted, Fbuffer_has_markers_at):
9615 Consistently rename charno to charpos.
9616 (marker_position): Add eassert.
9617 (marker_byte_position): Convert to eassert.
9618
96192012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
9620
9621 Simplify list operations in unchain_overlay and unchain_marker.
9622 * buffer.c (unchain_overlay): Simplify. Add comment.
9623 * marker.c (unchain_marker): Simplify. Fix comments.
9624
96252012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
9626
9627 Introduce fast path for the widely used marker operation.
9628 * alloc.c (build_marker): New function.
9629 * lisp.h (build_marker): New prototype.
9630 * buffer.c (clone_per_buffer_values, Fmake_indirect_buffer): Use it.
9631 * composite.c (autocmp_chars): Likewise.
9632 * editfns.c (buildmark): Remove.
9633 (Fpoint_marker, Fpoint_min_marker, Fpoint_max_marker)
9634 (save_restriction_save): Use build_marker.
9635 * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise.
9636 * window.c (save_window_save): Likewise.
9637
96382012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
9639
9640 Do not use Fdelete_overlay in delete_all_overlays
9641 to avoid redundant calls to unchain_overlay.
9642 * buffer.c (drop_overlay): New function.
9643 (delete_all_overlays, Fdelete_overlay): Use it.
9644 * minibuf.c (get_minibuffer): Fix comment.
9645
96462012-07-06 Paul Eggert <eggert@cs.ucla.edu>
9647
9648 Port to OpenBSD 5.1 amd64.
9649 * sysdep.c [BSD_SYSTEM]: Include <sys/param.h> before <sys/sysctl.h>.
9650 This is needed for OpenBSD, and should be harmless on all BSD systems.
9651 Also, include <sys/sysctl.h>, as it should be available on all
9652 BSD_SYSTEM hosts given that we're already calling sysctl in that case.
9653 (list_system_processes) [__OpenBSD__]: Use DARWIN_OS style mib, but
9654 use p_pid member, not kp_proc.pid.
9655
96562012-07-06 Glenn Morris <rgm@gnu.org>
9657
9658 * Makefile.in (emacs$(EXEEXT)): Don't check for load-path shadows.
9659
96602012-07-05 Paul Eggert <eggert@cs.ucla.edu>
9661
9662 More xmalloc and related cleanup.
9663 * alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c:
9664 * callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c:
9665 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c:
9666 * font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c:
9667 * gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c:
9668 * nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c:
9669 * regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c:
9670 * sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c:
9671 * xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c:
9672 * xterm.c:
9673 Omit needless casts involving void * pointers and allocation.
9674 Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))",
9675 as the former is more robust if P's type is changed.
9676 Prefer xzalloc to xmalloc + memset 0.
9677 Simplify malloc-or-realloc to realloc.
9678 Don't worry about xmalloc returning a null pointer.
9679 Prefer xstrdup to xmalloc + strcpy.
9680 * editfns.c (Fmessage_box): Grow message_text by at least 80 when
9681 growing it.
9682 * keyboard.c (apply_modifiers_uncached): Prefer local array to
9683 alloca of a constant.
9684
96852012-07-05 Eli Zaretskii <eliz@gnu.org>
9686
9687 * xdisp.c (display_line): Fix horizontal pixel coordinates when
9688 hscroll is larger than the line width. Fixes long and futile
9689 looping inside extend_face_to_end_of_line (on a TTY) producing
9690 glyphs that are not needed and thrown away.
9691
96922012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
9693
9694 * marker.c (set_marker_restricted_both): Simplify by using
9695 clip_to_bounds.
9696
96972012-07-05 Paul Eggert <eggert@cs.ucla.edu>
9698
9699 * editfns.c (region_limit): Simplify by using clip_to_bounds.
9700
97012012-07-05 Jan Djärv <jan.h.d@swipnet.se>
9702
9703 * gtkutil.c (gtk_scrollbar_new, gtk_box_new): Define when HAVE_GTK3 is
9704 not defined (Bug#11768).
9705 (xg_create_frame_widgets): Use gtk_plug_new_for_display (Bug#11768).
9706 (xg_create_frame_widgets, create_dialog, xg_get_file_with_chooser)
9707 (make_widget_for_menu_item, xg_make_tool_item): Use gtk_box_new
9708 followed by gtk_box_set_homogeneous (Bug#11768).
9709 (xg_update_menu_item): Use GTK_IS_BOX (Bug#11768).
9710 (update_theme_scrollbar_width, xg_create_scroll_bar):
9711 Use gtk_scrollbar_new (Bug#11768).
9712 (xg_event_is_for_scrollbar): Use Gdk Device functions for HAVE_GTK3.
9713 (is_box_type): New function (Bug#11768).
9714 (xg_tool_item_stale_p): Call is_box_type.
9715 (xg_initialize): Get settings by calling gtk_settings_get_for_screen
9716 with default display (Bug#11768).
9717
97182012-07-05 Eli Zaretskii <eliz@gnu.org>
9719
9720 * xdisp.c (window_hscroll_limited): New function.
9721 (pos_visible_p, init_iterator): Use it to avoid overflow of pixel
9722 coordinates when window's hscroll is set to insanely large
9723 values. (Bug#11857)
9724
97252012-07-05 Juanma Barranquero <lekktu@gmail.com>
9726
9727 * makefile.w32-in ($(BLD)/dired.$(O), $(BLD)/fileio.$(O)): Fix typo.
9728 ($(BLD)/terminal.$(O), $(BLD)/syntax.$(O)): Update dependencies.
9729
97302012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
9731
9732 Cleanup xmalloc.
9733 * lisp.h (xzalloc): New prototype. Omit needless casts.
9734 * alloc.c (xzalloc): New function. Omit needless casts.
9735 * charset.c: Omit needless casts. Convert all calls to
9736 xmalloc with following memset to xzalloc.
9737 * dispnew.c: Likewise.
9738 * fringe.c: Likewise.
9739 * image.c: Likewise.
9740 * sound.c: Likewise.
9741 * term.c: Likewise.
9742 * w32fns.c: Likewise.
9743 * w32font.c: Likewise.
9744 * w32term.c: Likewise.
9745 * xfaces.c: Likewise.
9746 * xfns.c: Likewise.
9747 * xterm.c: Likewise.
9748 * atimer.c: Omit needless casts.
9749 * buffer.c: Likewise.
9750 * callproc.c: Likewise.
9751 * ccl.c: Likewise.
9752 * coding.c: Likewise.
9753 * composite.c: Likewise.
9754 * doc.c: Likewise.
9755 * doprnt.c: Likewise.
9756 * editfns.c: Likewise.
9757 * emacs.c: Likewise.
9758 * eval.c: Likewise.
9759 * filelock.c: Likewise.
9760 * fns.c: Likewise.
9761 * gtkutil.c: Likewise.
9762 * keyboard.c: Likewise.
9763 * lisp.h: Likewise.
9764 * lread.c: Likewise.
9765 * minibuf.c: Likewise.
9766 * msdos.c: Likewise.
9767 * print.c: Likewise.
9768 * process.c: Likewise.
9769 * region-cache.c: Likewise.
9770 * search.c: Likewise.
9771 * sysdep.c: Likewise.
9772 * termcap.c: Likewise.
9773 * terminal.c: Likewise.
9774 * tparam.c: Likewise.
9775 * w16select.c: Likewise.
9776 * w32.c: Likewise.
9777 * w32reg.c: Likewise.
9778 * w32select.c: Likewise.
9779 * w32uniscribe.c: Likewise.
9780 * widget.c: Likewise.
9781 * xdisp.c: Likewise.
9782 * xmenu.c: Likewise.
9783 * xrdb.c: Likewise.
9784 * xselect.c: Likewise.
9785
97862012-07-05 Paul Eggert <eggert@cs.ucla.edu>
9787
9788 * fileio.c (time_error_value): Check the right error number.
9789 Problem reported by Troels Nielsen in
9790 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00095.html>.
9791
97922012-07-04 Paul Eggert <eggert@cs.ucla.edu>
9793
9794 * window.c (set_window_hscroll): Revert the 100000 hscroll limit.
9795 This should be fixed in a better way; see Eli Zaretskii in
9796 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00088.html>.
9797 (HSCROLL_MAX): Remove; this is now internal to set_window_hscroll.
9798
9799 * fileio.c (time_error_value): Rename from special_mtime.
9800 The old name's problems were noted by Eli Zaretskii in
9801 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00087.html>.
9802
9803 * emacs.c (gdb_pvec_type): Change it back to enum pvec_type.
9804 This variable's comment says Emacs needs at least one GDB-visible
9805 symbol of type enum pvec_type, to work around GDB problems.
9806 The symbol's value doesn't matter.
9807
9808 * alloc.c (PSEUDOVECTOR_NBYTES): Remove stray ';'
9809 that causes compilation to fail on pre-C99 compilers.
9810
98112012-07-04 Juanma Barranquero <lekktu@gmail.com>
9812
9813 * s/ms-w32.h (LISP_FLOAT_TYPE, HAVE_MEMCMP, HAVE_MEMCPY)
9814 (HAVE_MEMMOVE, HAVE_MEMSET): Don't set, obsolete.
9815
98162012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
9817
9818 * buffer.c (init_buffer_once): Fix initialization of
9819 headers for buffer_defaults and buffer_local_symbols.
9820 Reported by Juanma Barranquero <lekktu@gmail.com>.
9821
98222012-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
9823
9824 Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
9825 * lisp.h (enum pvec_type): Use fewer bits.
9826 (PSEUDOVECTOR_SIZE_BITS): New constant.
9827 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it.
9828 (XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to
9829 change in pvec_type.
9830 (PSEUDOVECTOR_TYPEP): New macro.
9831 (TYPED_PSEUDOVECTORP): Use it.
9832 * fns.c (internal_equal): Adapt code to extract pvectype.
9833 * emacs.c (gdb_pvec_type): Update type.
9834 * alloc.c (PSEUDOVECTOR_NBYTES): New macro.
9835 (VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK).
9836 (VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE).
9837 (SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE.
9838 (sweep_vectors): Use it. Use local var `total_bytes' instead of
9839 abusing vector->header.next.nbytes.
9840 (live_vector_p): Use PVEC_TYPE.
9841 (mark_object): Adapt code to extract pvectype. Use switch.
9842
98432012-07-04 Paul Eggert <eggert@cs.ucla.edu>
9844
9845 * doprnt.c (doprnt): Don't assume string length fits in 'int'.
9846 Tighten new eassert a bit.
9847
98482012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
9849
9850 Fix compilation with --enable-gcc-warnings and -O1
9851 optimization level.
9852 * doprnt.c (doprnt): Change type of tem to int, initialize
9853 to avoid compiler warning. Add eassert.
9854 * search.c (simple_search): Initialize match_byte to avoid
9855 compiler warning. Add eassert.
9856
98572012-07-04 Paul Eggert <eggert@cs.ucla.edu>
9858
9859 Avoid weird behavior with large horizontal scrolls.
9860 Without this change, for example, large hscroll values would
9861 mess up Emacs's display on Fedora 15 x86, presumably due to
9862 overflows in int calculations in the display code.
9863 Also, if buffers had long lines, Emacs would freeze.
9864 * window.c (HSCROLL_MAX): Reduce to 100000, and make it visible to GDB.
9865 (set_window_hscroll): New function, containing the old guts of
9866 Fset_window_hscroll. Return the clipped value.
9867 (Fset_window_hscroll, Fscroll_left, Fscroll_right): Use it.
9868 This avoids the need to check against PTRDIFF_MAX.
9869
9870 * buffer.c (Fgenerate_new_buffer_name): Fix sprintf format mismatch.
9871
98722012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
9873
9874 * buffer.c (Fgenerate_new_buffer_name): Fix type mismatch.
9875
98762012-07-04 Paul Eggert <eggert@cs.ucla.edu>
9877
9878 * regex.c: Suppress GCC warning on RHEL 6. (Bug#11207)
9879 Conditionalize the pragmas on GCC 4.5 or later, not GCC 4.3 or later,
9880 since GCC 4.4.6 issues a bogus warning for them.
9881
9882 Fix bugs in file timestamp newness comparisons.
9883 * fileio.c (Ffile_newer_than_file_p):
9884 * lread.c (Fload): Use full timestamp resolution of files,
9885 not just the 1-second resolution, so that files that are only
9886 slightly newer still count as newer.
9887 * fileio.c (Ffile_newer_than_file_p): Don't assume file
9888 timestamps fit in 'int'; this fixes a Y2038 bug on most hosts.
9889
98902012-07-03 Paul Eggert <eggert@cs.ucla.edu>
9891
9892 * fileio.c: Improve handling of file time marker. (Bug#11852)
9893 (special_mtime): New function.
9894 (Finsert_file_contents, Fverify_visited_file_modtime):
9895 Use it to set special mtime values consistently.
9896
98972012-07-03 Andreas Schwab <schwab@linux-m68k.org>
9898
9899 * fileio.c (Finsert_file_contents): Properly handle st_mtime
9900 marker for non-existing file. (Bug#11852)
9901
99022012-07-03 Glenn Morris <rgm@gnu.org>
9903
9904 * lisp.h (Fread_file_name): Restore EXFUN (it's not a normal DEFUN
9905 and did not make it into globals.h).
9906
99072012-07-03 Tom Tromey <tromey@redhat.com>
9908
9909 * window.c (Fset_window_margins, Fset_window_fringes)
9910 (Fset_window_scroll_bars, Fset_window_vscroll): No longer static.
9911 * textprop.c (Fprevious_property_change): No longer static.
9912 * syntax.c (Fsyntax_table_p): No longer static.
9913 * process.c (Fget_process, Fprocess_datagram_address): No longer
9914 static.
9915 * keymap.c (Flookup_key, Fcopy_keymap): No longer static.
9916 * keyboard.c (Fcommand_execute): No longer static.
9917 Remove EXFUN.
9918 * insdel.c (Fcombine_after_change_execute): No longer static.
9919 * image.c (Finit_image_library): No longer static.
9920 * fileio.c (Fmake_symbolic_link): No longer static.
9921 * eval.c (Ffetch_bytecode): No longer static.
9922 * editfns.c (Fuser_full_name): No longer static.
9923 * doc.c (Fdocumentation_property, Fsnarf_documentation):
9924 No longer static.
9925 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer
9926 static.
9927 * dired.c (Ffile_attributes): No longer static.
9928 * composite.c (Fcomposition_get_gstring): No longer static.
9929 * callproc.c (Fgetenv_internal): No longer static.
9930
9931 * ccl.h: Remove EXFUNs.
9932 * buffer.h: Remove EXFUNs.
9933 * dispextern.h: Remove EXFUNs.
9934 * intervals.h: Remove EXFUNs.
9935 * fontset.h: Remove EXFUN.
9936 * font.h: Remove EXFUNs.
9937 * dosfns.c (system_process_attributes): Remove EXFUN.
9938 * keymap.h: Remove EXFUNs.
9939 * lisp.h: Remove EXFUNs.
9940 * w32term.h: Remove EXFUNs.
9941 * window.h: Remove EXFUNs.
9942 * xsettings.h: Remove EXFUN.
9943 * xterm.h: Remove EXFUN.
9944
99452012-07-03 Glenn Morris <rgm@gnu.org>
9946
9947 * lisp.h (Frandom): Make it visible to C.
9948 * buffer.c (Fgenerate_new_buffer_name): Speed up finding a new
9949 buffer for invisible buffers. (Bug#1229)
9950
99512012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
9952
9953 Fix block vector allocation code to allow VECTOR_BLOCK_SIZE
9954 values which aren't power of 2.
9955 * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro.
9956 Verify its value and the value of VECTOR_BLOCK_SIZE. Adjust users
9957 accordingly.
9958
99592012-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
9960
9961 * lisp.h (Lisp_Misc, Lisp_Fwd): Move around to group better.
9962
9963 * alloc.c (mark_object): Revert part of last patch to use `switch'.
9964
99652012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
9966
9967 * alloc.c (allocate_vector_block): Remove redundant
9968 calls to mallopt if DOUG_LEA_MALLOC is defined.
9969 (allocate_vectorlike): If DOUG_LEA_MALLOC is defined,
9970 avoid calls to mallopt if zero_vector is returned.
9971
99722012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
9973
9974 * alloc.c (check_string_bytes): If GC_CHECK_STRING_BYTES
9975 is enabled, avoid dereferencing NULL current_sblock if
9976 running undumped.
9977
99782012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
9979
9980 Cleanup basic buffer management.
9981 * buffer.h (struct buffer): Change layout to use generic vector
9982 marking code. Fix some comments. Change type of 'clip_changed'
9983 to bitfield. Remove unused #ifndef old.
9984 (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): Remove.
9985 (GET_OVERLAYS_AT): Fix indentation.
9986 (for_each_per_buffer_object_at): New macro.
9987 * buffer.c (clone_per_buffer_values, reset_buffer_local_variables)
9988 (Fbuffer_local_variables): Use it.
9989 (init_buffer_once, syms_of_buffer): Remove unused #ifndef old.
9990 * alloc.c (allocate_buffer): Adjust to match new layout of
9991 struct buffer. Fix comment.
9992 (mark_overlay): New function.
9993 (mark_buffer): Use it. Use mark_vectorlike to mark normal
9994 Lisp area of struct buffer.
9995 (mark_object): Use it. Adjust marking of misc objects
9996 and related comments.
9997
99982012-07-02 Paul Eggert <eggert@cs.ucla.edu>
9999
10000 * alloc.c (mark_object): Remove "#ifdef GC_CHECK_MARKED_OBJECTS"
10001 wrapper that is not needed because the wrapped code is a no-op (zero
10002 machine instructions) when GC_CHECK_MARKED_OBJECTS is not defined.
10003 This avoids a -Wunused-macros diagnostic with GCC 4.7.1 x86-64.
10004
100052012-07-02 Dmitry Antipov <dmantipov@yandex.ru>
10006
10007 * alloc.c (mark_buffer): Simplify. Remove prototype.
10008 (mark_object): Add comment. Reorganize marking of vector-like
10009 objects. Use CHECK_LIVE for all vector-like objects except buffers
10010 and subroutines when GC_CHECK_MARKED_OBJECTS is defined.
10011 Avoid redundant calls to mark_vectorlike for bool vectors.
10012
100132012-06-30 Glenn Morris <rgm@gnu.org>
10014
10015 * nsterm.m (ns_init_paths): Ignore site-lisp if --no-site-lisp.
10016
10017 * epaths.in (PATH_SITELOADSEARCH): New.
10018 * lread.c (init_lread): Use PATH_SITELOADSEARCH.
10019 This is rather than relying on --enable-locallisppath elements
10020 having "site-lisp" in their names. (Bug#10208#25, 11658)
10021
100222012-06-30 Eli Zaretskii <eliz@gnu.org>
10023
10024 * w32proc.c (sys_select): Accept and ignore one more argument.
10025
10026 * w32.c (emacs_gnutls_pull): Call select with one more argument.
10027
10028 * sysselect.h [DOS_NT]: Don't include sys/select.h.
10029 (pselect) [!MS_DOS]: Redirect to sys_select.
10030
10031 * sysdep.c: Don't include dos.h and dosfns.h.
10032
10033 * process.c (sys_select):
10034 * msdos.c (sys_select): Accept one more argument and ignore it.
10035
10036 * msdos.c (event_timestamp, sys_select): Use gnulib's gettime;
10037 adapt data types and code to that.
10038
10039 * dosfns.c:
10040 * msdos.c (gettime, settime): Define away the prototypes in dos.h,
10041 which clashes with the gnulib function of the same name.
10042
100432012-06-30 Andreas Schwab <schwab@linux-m68k.org>
10044
10045 * font.c (font_style_to_value, font_style_symbolic)
10046 (font_prop_validate_style): Add type checks for values in
10047 font_style_table.
10048
10049 * lisp.h (CHECK_RANGED_INTEGER): Make value to check the first
10050 argument.
10051 * character.c, charset.c, menu.c, process.c, window.c: Adjust all
10052 uses.
10053
100542012-06-29 Eli Zaretskii <eliz@gnu.org>
10055
10056 * xdisp.c (try_window_id): Undo last change.
10057
10058 * w32.c (getwd): Adjust commentary about startup_dir.
10059 (init_environment): Always call sys_access, even in non-MSVC
10060 builds. Don't chdir to the directory of the Emacs executable.
10061 This undoes code from 1997 which was justified by the need to
10062 "avoid conflicts when removing and renaming directories". But its
10063 downside was that every relative file name was being interpreted
10064 relative to the directory of the Emacs executable, which can never
10065 be TRT. In particular, it broke sys_access when called with
10066 relative file names.
10067 (sys_access): Map GetLastError to errno.
10068
100692012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
10070
10071 * window.h (struct window): Change type of 'fringes_outside_margins'
10072 to bitfield. Fix comment. Adjust users accordingly.
10073 (struct window): Change type of 'window_end_bytepos' to ptrdiff_t.
10074 Adjust comment.
10075 * xdisp.c (try_window_id): Change type of 'first_vpos' and 'vpos'
10076 to ptrdiff_t.
10077
100782012-06-29 Andreas Schwab <schwab@linux-m68k.org>
10079
10080 * gnutls.c (emacs_gnutls_handshake):
10081 Add QUIT to make the loop interruptible.
10082
100832012-06-29 Glenn Morris <rgm@gnu.org>
10084
10085 * charset.c (init_charset): Make lack of etc/charsets fatal.
10086
100872012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
10088
10089 * editfns.c (region_limit): Fix type mismatch.
10090
100912012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
10092
10093 * nsfns.m: Fix GLYPH_DEBUG usage assuming that it may be
10094 undefined. Convert from xassert to eassert.
10095 * nsmenu.m: Convert from xassert to eassert.
10096 * nsterm.m: Likewise.
10097
100982012-06-28 Stefan Monnier <monnier@iro.umontreal.ca>
10099
10100 * editfns.c (region_limit): Clip to narrowing (bug#11770).
10101
101022012-06-28 Paul Eggert <eggert@cs.ucla.edu>
10103
10104 Avoid integer overflow on scroll-left and scroll-right.
10105 * window.c (HSCROLL_MAX): New macro.
10106 (Fscroll_left, Fscroll_right): Avoid undefined behavior on integer
10107 overflow when requested scroll falls outside ptrdiff_t range.
10108
101092012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
10110
10111 * window.h (struct window): Change type of 'hscroll',
10112 'min_hscroll' and 'last_point' from Lisp_Object to ptrdiff_t,
10113 'last_modified' and 'last_overlay_modified' to EMACS_INT.
10114 Adjust users accordingly.
10115 * xdisp.c (try_cursor_movement): Replace type check with eassert.
10116 * window.c (Fscroll_left, Fscroll_right): Change type of 'hscroll'
10117 from EMACS_INT to ptrdiff_t.
10118 (make_window): Omit redundant initialization.
10119
101202012-06-28 Juanma Barranquero <lekktu@gmail.com>
10121
10122 * makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies.
10123
101242012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
10125
10126 * window.h (struct window): Change type of 'use_time' and
10127 'sequence_number' from Lisp_Object to int.
10128 * frame.c (make_frame): Adjust users accordingly.
10129 * print.c (print_object): Likewise.
10130 * window.c (select_window, Fwindow_use_time, make_parent_window)
10131 (make_window): Likewise.
10132
101332012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
10134
10135 * dispextern.h (GLYPH_DEBUG): Now defined in config.h if
10136 enabled with --enable-checking=[all,glyphs] configure option.
10137 Fix GLYPH_DEBUG usage assuming that it may be undefined,
10138 adjust comments accordingly.
10139 * dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be
10140 undefined, adjust comments accordingly.
10141 * image.c: Likewise.
10142 * scroll.c: Likewise.
10143 * w32fns.c: Likewise.
10144 * w32term.c: Likewise.
10145 * xdisp.c: Likewise.
10146 * xfaces.c: Likewise.
10147 * xfns.c: Likewise.
10148 * xterm.c: Likewise.
10149
101502012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
10151
10152 Generalize run-time debugging checks.
10153 * dispextern.h (XASSERTS): Remove.
10154 * fontset.c (xassert): Remove.
10155 Convert from xassert to eassert.
10156 * alloc.c: Convert from xassert to eassert.
10157 * bidi.c: Likewise.
10158 * dispnew.c: Likewise.
10159 * fns.c: Likewise.
10160 * fringe.c: Likewise.
10161 * ftfont.c: Likewise.
10162 * gtkutil.c: Likewise.
10163 * image.c: Likewise.
10164 * keyboard.c: Likewise.
10165 * menu.c: Likewise.
10166 * process.c: Likewise.
10167 * scroll.c: Likewise.
10168 * sound.c: Likewise.
10169 * term.c: Likewise.
10170 * w32console.c: Likewise.
10171 * w32fns.c: Likewise.
10172 * w32term.c: Likewise.
10173 * window.c: Likewise.
10174 * xdisp.c: Likewise.
10175 * xfaces.c: Likewise.
10176 * xfns.c: Likewise.
10177 * xselect.c: Likewise.
10178 * xterm.c: Likewise.
10179
101802012-06-27 Stefan Monnier <monnier@iro.umontreal.ca>
10181
10182 * fns.c (maybe_resize_hash_table): Output message when growing the
10183 purify-hashtable.
10184
101852012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
10186
10187 * alloc.c (allocate_string_data): Remove dead code.
10188 * xsettings.c (XSETTINGS_FONT_NAME): Move under HAVE_XFT to
10189 avoid GCC warning about unused macro.
10190
101912012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
10192
10193 * alloc.c (allocate_string): Omit intervals initialization.
10194 * alloc.c (make_uninit_multibyte_string): Initialize intervals
10195 as in make_pure_string and make_pure_c_string.
10196
101972012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
10198
10199 * alloc.c (allocate_string): Fix last change.
10200
102012012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
10202
10203 * alloc.c (allocate_string): Remove two redundant calls
10204 to memset, add explicit initialization where appropriate.
10205
102062012-06-27 Glenn Morris <rgm@gnu.org>
10207
10208 * lisp.mk (lisp): Remove paths.elc.
10209
102102012-06-27 Chong Yidong <cyd@gnu.org>
10211
10212 * doc.c (Fsubstitute_command_keys): Fix punctuation.
10213
102142012-06-26 John Wiegley <johnw@newartisans.com>
10215
10216 * unexmacosx.c (copy_data_segment): Add two section names used
10217 on Mac OS X Lion: __mod_init_func and __mod_term_func.
10218
10219 * alloc.c (mark_memory): Do not check with -faddress-sanitizer
10220 when building with Clang.
10221
102222012-06-26 Stefan Monnier <monnier@iro.umontreal.ca>
10223
10224 * eval.c (Fapply): Allow calling it with a single argument.
10225
102262012-06-26 Eli Zaretskii <eliz@gnu.org>
10227
10228 * s/ms-w32.h (strcasecmp, strncasecmp) [_MSC_VER]: Redirect to
10229 _stricmp and _strnicmp.
10230 (HAVE_STRCASECMP, HAVE_STRNCASECMP): Define to 1.
10231
102322012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
10233
10234 * alloc.c (allocate_window): Zero out non-Lisp part of newly
10235 allocated window.
10236 (allocate_process): Likewise for new process.
10237 (allocate_terminal): Change to use offsetof.
10238 (allocate_frame): Likewise.
10239 * frame.c (make_frame): Omit redundant initialization.
10240 * window.c (make_parent_window): Use memset.
10241 (make_window): Omit redundant initialization.
10242 * process.c (make_process): Omit redundant initialization.
10243 * terminal.c (create_terminal): Likewise.
10244
102452012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
10246
10247 * term.c (delete_tty): Remove redundant call to memset.
10248
102492012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
10250
10251 * alloc.c: Remove build_string.
10252 * lisp.h: Define build_string as static inline. This provides
10253 a better opportunity to optimize away calls to strlen when the
10254 function is called with compile-time constant argument.
10255 * image.c (imagemagick_error): Convert to build_string.
10256 * w32proc.c (sys_spawnve): Likewise.
10257 * xterm.c (x_term_init): Likewise.
10258
102592012-06-26 Paul Eggert <eggert@cs.ucla.edu>
10260
10261 Use sprintf return value instead of invoking strlen on result.
10262 In the old days this wasn't portable, since some sprintf
10263 implementations returned char *. But they died out years ago and
10264 Emacs already assumes sprintf returns int.
10265 Similarly for float_to_string.
10266 This patch speeds up (number-to-string 1000) by 3% on Fedora 15 x86-64.
10267 * ccl.c (ccl_driver):
10268 * character.c (string_escape_byte8):
10269 * data.c (Fnumber_to_string):
10270 * doprnt.c (doprnt):
10271 * print.c (print_object):
10272 * xdisp.c (message_dolog):
10273 * xfns.c (syms_of_xfns):
10274 Use sprintf or float_to_string result to avoid need to call strlen.
10275 * data.c (Fnumber_to_string):
10276 Use make_unibyte_string, since the string must be ASCII.
10277 * lisp.h, print.c (float_to_string): Now returns int length.
10278 * term.c (produce_glyphless_glyph):
10279 Use sprintf result rather than recomputing it.
10280
10281 Clean out last vestiges of the old HAVE_CONFIG_H stuff.
10282 * Makefile.in (ALL_CFLAGS):
10283 * makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H.
10284 * gmalloc.c, regex.c: Include <config.h> unconditionally.
10285
102862012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
10287
10288 * dispextern.h (xstrcasecmp): Define to library function
10289 strcasecmp if available.
10290 * xfaces.c: Do not use xstrcasecmp if strcasecmp is available.
10291
102922012-06-25 Andreas Schwab <schwab@linux-m68k.org>
10293
10294 * keyboard.c (menu_bar_items, menu_bar_item, read_key_sequence):
10295 Avoid comma operator.
10296 * menu.c (push_submenu_start, push_submenu_end)
10297 (push_left_right_boundary, push_menu_pane): Likewise.
10298 * msdos.c (dos_rawgetc): Likewise.
10299
103002012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
10301
10302 * xfns.c (xic_create_fontsetname): Remove redundant calls
10303 to memset.
10304
103052012-06-25 Paul Eggert <eggert@cs.ucla.edu>
10306
10307 * gtkutil.c (get_utf8_string): Remove redundant assignment.
10308 sprintf already null-terminates its output.
10309
10310 * xfns.c (x_window): Remove redundant cast.
10311
103122012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
10313
10314 * xmenu.c (xmenu_show, xdialog_show): Explicit cast from
10315 `const char *' to `char *' to avoid compiler warning.
10316
103172012-06-24 Paul Eggert <eggert@cs.ucla.edu>
10318
10319 * xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string
10320 instead of truncating it to 63 (admittedly a generous limit).
10321
10322 * process.c: Fix spelling and caps in comments.
10323
103242012-06-24 Dan Nicolaescu <dann@ics.uci.edu>
10325
10326 * emacs.c (setpgrp): Remove definition, unused.
10327 * sysdep.c (setpgrp): Remove definition, not used in this file.
10328
103292012-06-24 Juanma Barranquero <lekktu@gmail.com>
10330
10331 * makefile.w32-in: Update dependencies.
10332
103332012-06-24 Eli Zaretskii <eliz@gnu.org>
10334
10335 * makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h.
10336 (SYSTIME_H): Add nt/inc/sys/time.h.
10337
10338 * systime.h [WINDOWSNT]: Include sys/time.h.
10339
10340 * s/ms-w32.h (struct timespec): Definition moved from
10341 nt/inc/sys/time.h. Suggested by Paul Eggert <eggert@cs.ucla.edu>.
10342 6576
103432012-06-24 Paul Eggert <eggert@cs.ucla.edu> 65772013-07-18 Paul Eggert <eggert@cs.ucla.edu>
10344 6578
10345 Switch from NO_RETURN to C11's _Noreturn (Bug#11750). 6579 * keyboard.c: Try to fix typos in previous change.
10346 * buffer.h (buffer_slot_type_mismatch): 6580 (DISPLAY_LIST_INFO): New macro.
10347 * data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]: 6581 (kbd_buffer_get_event): Do not access members that are not present
10348 * eval.c (unwind_to_catch): 6582 in X11. Revert inadvertent change of "!=" to "=".
10349 * image.c (my_png_error, my_error_exit):
10350 * keyboard.c (quit_throw_to_read_char, user_error)
10351 (Fexit_recursive_edit, Fabort_recursive_edit):
10352 * lisp.h (die, args_out_of_range, args_out_of_range_3)
10353 (wrong_type_argument, buffer_overflow, __executable_start)
10354 (memory_full, buffer_memory_full, string_overflow, Fthrow)
10355 (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error)
10356 (error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs)
10357 (fatal):
10358 (child_setup) [!DOS_NT]:
10359 * lread.c (end_of_file_error, invalid_syntax):
10360 * process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
10361 * puresize.h (pure_write_error):
10362 * search.c (matcher_overflow):
10363 * sound.c (sound_perror, alsa_sound_perror):
10364 * sysdep.c, syssignal.h (croak):
10365 * term.c (maybe_fatal, vfatal):
10366 * textprop.c (text_read_only):
10367 * undo.c (user_error):
10368 * unexmacosx.c (unexec_error):
10369 * xterm.c (x_ins_del_lines, x_delete_glyphs):
10370 Use _Noreturn rather than NO_RETURN.
10371 No need for separate decl merely because of _Noreturn.
10372 * sound.c (sound_warning, parse_sound):
10373 Remove unnecessary forward decls.
10374 6583
103752012-06-24 Paul Eggert <eggert@cs.ucla.edu> 65842013-07-18 Juanma Barranquero <lekktu@gmail.com>
10376 6585
10377 Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000).
10378 * lisp.h (WAIT_READING_MAX): New macro.
10379 * dispnew.c (Fsleep_for, sit_for):
10380 * keyboard.c (kbd_buffer_get_event): 6586 * keyboard.c (kbd_buffer_get_event):
10381 * process.c (Faccept_process_output): 6587 * w32term.c (x_focus_changed): Port FOCUS_(IN|OUT)_EVENT changes to W32.
10382 Use it to avoid bogus compiler warnings with obsolescent GCC versions. 6588 Followup to 2013-07-16T11:41:06Z!jan.h.d@swipnet.se.
10383 This improves on the previous patch, which introduced a bug
10384 when time_t is unsigned and as wide as intmax_t.
10385 See <http://bugs.gnu.org/9000#51>.
10386
103872012-06-23 Eli Zaretskii <eliz@gnu.org>
10388
10389 * dispnew.c (sit_for, Fsleep_for):
10390 * keyboard.c (kbd_buffer_get_event):
10391 * process.c (Faccept_process_output): Avoid compiler warnings when
10392 comparing a 32-bit time_t with a 64-bit INTMAX_MAX.
10393
103942012-06-23 Juanma Barranquero <lekktu@gmail.com>
10395
10396 * makefile.w32-in: Update dependencies.
10397
10398 * w32.c (ltime): Add return type and declare static.
10399 (w32_get_internal_run_time): Remove usused variable `time_100ns'.
10400
104012012-06-23 Paul Eggert <eggert@cs.ucla.edu>
10402
10403 * sysdep.c [__FreeBSD__]: Fix more recently-introduced typos.
10404 Privately reported by Herbert J. Skuhra.
10405 (make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST.
10406 All uses changed.
10407 (system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time,
10408 not make_lisp_timeval, when the argument is of type EMACS_TIME.
10409
104102012-06-23 Eli Zaretskii <eliz@gnu.org>
10411
10412 * w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in
10413 last argument of make_unibyte_string.
10414
10415 * keyboard.c (kbd_buffer_get_event): Include the codepage and the
10416 language ID in the event parameters.
10417
10418 * w32term.c (w32_read_socket): Put the new keyboard codepage into
10419 event.code, not the obscure "character set ID".
10420
104212012-06-23 Chong Yidong <cyd@gnu.org>
10422
10423 * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select.
10424
104252012-06-23 Eli Zaretskii <eliz@gnu.org>
10426
10427 Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu.
10428 * w32.c (fdutimens): New function.
10429
10430 * w32proc.c (sys_select): Adapt to change in the EMACS_TIME type.
10431
10432 * s/ms-w32.h (pselect): Redirect to sys_select.
10433
10434 * sysselect.h [WINDOWSNT]: Don't include sys/select.h.
10435
10436 * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko
10437 in the logic of incrementing and decrementing the value of
10438 use_relocatable_buffers.
10439
104402012-06-23 Paul Eggert <eggert@cs.ucla.edu>
10441
10442 * sysdep.c [__FreeBSD__]: Fix recently-introduced typos.
10443 Privately reported by Herbert J. Skuhra.
10444 [__FreeBSD__]: Remove "*/" typo after "#include".
10445 (timeval_to_EMACS_TIME) [__FreeBSD__]: New static function.
10446 (TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro.
10447 (TIMEVAL, system_process_attributes) [__FreeBSD__]:
10448 Don't assume EMACS_TIME and struct timeval are the same type.
10449
104502012-06-22 Paul Eggert <eggert@cs.ucla.edu>
10451
10452 Support higher-resolution time stamps (Bug#9000).
10453 The time stamps are only nanosecond-resolution at the C level,
10454 since that's the best that any real-world system supports now.
10455 But they are picosecond-resolution at the Lisp level, as that's
10456 easy, and leaves room for future OS improvements.
10457
10458 * Makefile.in (LIB_CLOCK_GETTIME): New macro.
10459 (LIBES): Use it.
10460
10461 * alloc.c (Fgarbage_collect): Port to higher-res time stamps.
10462 Don't get current time unless it's needed.
10463
10464 * atimer.c: Include <sys/time.h> unconditionally, since gnulib
10465 now provides it if it's absent.
10466 (start_atimer): Port to higher-res time stamps.
10467 Check for time stamp overflow. Don't get current time more
10468 often than is needed.
10469
10470 * buffer.h (struct buffer): Buffer modtime now has high resolution.
10471 Include systime.h, not time.h.
10472 (NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros.
10473
10474 * dired.c: Include stat-time.h.
10475 (Ffile-attributes): File times now have higher resolution.
10476
10477 * dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h.
10478 (struct image): Timestamp now has higher resolution.
10479
10480 * dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always
10481 has at least microseconds now. All uses removed.
10482 (update_frame, update_single_window, update_window, update_frame_1)
10483 (Fsleep_for, sit_for): Port to higher-resolution time stamps.
10484 (duration_to_sec_usec): Remove; no longer needed.
10485
10486 * editfns.c (time_overflow): Now extern.
10487 (Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument)
10488 (float-time, Fformat_time_string, Fcurrent_time_string)
10489 (Fcurrent_time_zone): Accept and generate higher-resolution
10490 time stamps.
10491 (make_time_tail, make_lisp_time, dissassemble_lisp_time)
10492 (decode_time_components, lisp_seconds_argument): New functions.
10493 (make_time): Now static.
10494 (lisp_time_argument): Now returns EMACS_TIME. New arg ppsec.
10495 Report an error if the time is invalid, rather than having the caller
10496 do that.
10497
10498 * fileio.c: Include <stat-time.h>
10499 (Fcopy_file): Copy higher-resolution time stamps.
10500 Prefer to set the time stamp via a file descriptor if that works.
10501 (Fset_file_times, Finsert_file_contents, Fwrite_region)
10502 (Fverify_visited_file_modtime, Fclear_visited_file_modtime)
10503 (Fvisited_file_modtime, Fset_visited_file_modtime):
10504 Support higher-resolution time stamps.
10505
10506 * fns.c (Frandom): Use nanoseconds, not microseconds, for seed.
10507
10508 * gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps.
10509
10510 * image.c (prepare_image_for_display, clear_image_cache)
10511 (lookup_image): Port to higer-resolution time stamps.
10512
10513 * keyboard.c (start_polling, bind_polling_period):
10514 Check for time stamp overflow.
10515 (read_char, kbd_buffer_get_event, timer_start_idle)
10516 (timer_stop_idle, timer_resume_idle, timer_check_2, timer_check)
10517 (Fcurrent_idle_time, init_keyboard, set_waiting_for_input):
10518 Port to higher-resolution time stamps. Do not assume time_t is signed.
10519 (decode_timer): New function. Timers are now vectors of length 9,
10520 not 8, to accommodate the picosecond component.
10521 (timer_check_2): Use it.
10522
10523 * nsterm.m (select_timeout, timeval_subtract): Remove.
10524 (ns_timeout): Use Emacs's facilities for time stamp arithmetic,
10525 as they're a bit more accurate and handle overflow better.
10526 (ns_select): Change prototype to be compatible with pselect.
10527 (ns_select, ns_term_shutdown): Port to ns-resolution time stamps.
10528 * nsterm.h (ns_select): Adjust prototype.
10529
10530 * msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes
10531 us-resolution time stamps.
10532 (sys_select): Use the new EMACS_TIME_SIGN macro instead.
10533
10534 * lread.c (read_filtered_event): Port to ns-resolution time stamps.
10535
10536 * lisp.h (time_overflow): New decl.
10537 (wait_reading_process_output): First arg is now intmax_t, not int,
10538 to accommodate larger waits.
10539
10540 * process.h (struct Lisp_Process.read_output_delay):
10541 Now counts nanoseconds, not microseconds.
10542 * process.c (ADAPTIVE_READ_BUFFERING): Don't worry about
10543 EMACS_HAS_USECS.
10544 (READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output)
10545 (wait_reading_process_output):
10546 Port to ns-resolution time stamps.
10547 (Faccept_process_output, wait_reading_process_output):
10548 Check for time stamp overflow. Do not assume time_t is signed.
10549 (select_wrapper): Remove; we now use pselect.
10550 (Fprocess_attributes): Now generates ns-resolution time stamps.
10551
10552 * sysdep.c: Include utimens.h. Don't include utime.h
10553 or worry about struct utimbuf; gnulib does that for us now.
10554 (gettimeofday): Remove; gnulib provides a substitute.
10555 (make_timeval): New function.
10556 (set_file_times): Now sets ns-resolution time stamps.
10557 New arg FD; all uses changed.
10558 (time_from_jiffies, ltime_from_jiffies, get_up_time)
10559 (system_process_attributes):
10560 Now returns ns-resolution time stamp. All uses changed.
10561 Check for time stamp overflow.
10562
10563 * sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib
10564 provides a substitute now.
10565
10566 * systime.h: Include timespec.h rather than sys/time.h and time.h,
10567 since it guarantees struct timespec.
10568 (EMACS_TIME): Now struct timespec, so that we can support
10569 ns-resolution time stamps.
10570 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros.
10571 (EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now.
10572 (EMACS_USECS): Remove.
10573 (EMACS_SET_USECS): The underlying time stamp now has ns resolution,
10574 so multiply the arg by 1000 before storing it.
10575 (EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS):
10576 New macros.
10577 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME):
10578 Port to ns-resolution time stamps.
10579 (EMACS_TIME_NEG_P): Remove; replaced by....
10580 (EMACS_TIME_SIGN): New macro.
10581 (EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P)
10582 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros.
10583 (set_file_times, make_time, lisp_time_argument): Adjust signature.
10584 (make_timeval, make_lisp_time, decode_time_components): New decls.
10585 (EMACS_TIME_CMP): Remove; no longer used. Plus, it was buggy, in
10586 that it mishandled time_t overflow. You can't compare by subtracting!
10587 (EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE)
10588 (EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp.
10589
10590 * term.c: Include <sys/time.h>.
10591 (timeval_to_Time): New function, for proper overflow wraparound.
10592 (term_mouse_position, term_mouse_click): Use it.
10593 6589
10594 * undo.c (record_first_change): Support higher-resolution time stamps 65902013-07-18 Paul Eggert <eggert@cs.ucla.edu>
10595 in the undo buffer.
10596 (Fprimitive_undo): Use them when restoring time stamps.
10597 6591
10598 * w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull) 6592 * filelock.c: Fix unlikely file descriptor leaks.
10599 (w32_get_internal_run_time): 6593 (get_boot_time_1): Rework to avoid using emacs_open.
10600 Port to higher-resolution Emacs time stamps. 6594 This doesn't actually fix a leak, but is better anyway.
10601 (ltime): Now accepts single 64-bit integer, as that's more convenient 6595 (read_lock_data): Use read, not emacs_read.
10602 for callers.
10603 6596
10604 * xdisp.c (start_hourglass): Port to ns-resolution time stamps. 6597 * doc.c: Fix minor memory and file descriptor leaks.
10605 6598 * doc.c (get_doc_string): Fix memory leak when doc file absent.
10606 * xgselect.c, xgselect.h (xg_select): Add sigmask argument, 6599 (get_doc_string, Fsnarf_documentation):
10607 for compatibility with pselect. Support ns-resolution time stamps. 6600 Fix file descriptor leak on error.
10608 6601
10609 * xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps. 6602 * term.c: Fix minor fdopen-related file descriptor leaks.
10610 6603 * term.c (Fresume_tty) [!MSDOS]: Close fd if fdopen (fd) fails.
10611 * xselect.c (wait_for_property_change, x_get_foreign_selection): 6604 (init_tty) [!DOS_NT]: Likewise. Also close fd if isatty (fd) fails.
10612 Check for time stamp overflow, and support ns-resolution time stamps. 6605
10613 6606 * charset.c: Fix file descriptor leaks and errno issues.
10614 * xterm.c: Don't include sys/time.h; gnulib does that for us now. 6607 Include <errno.h>.
10615 Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set. 6608 (load_charset_map_from_file): Don't leak file descriptor on error.
10616 (timeval_subtract): Remove; no longer needed. 6609 Use plain record_xmalloc since the allocation is larger than
10617 (XTflash, XTring_bell, x_wait_for_event): 6610 MAX_ALLOCA; that's simpler here. Simplify test for exhaustion
10618 Port to ns-resolution time stamps. Don't assume time_t is signed. 6611 of entries.
10619 6612 * eval.c (record_unwind_protect_nothing):
106202012-06-22 Chong Yidong <cyd@gnu.org> 6613 * fileio.c (fclose_unwind):
10621
10622 * xdisp.c (x_consider_frame_title): Revert last change.
10623
106242012-06-22 Eli Zaretskii <eliz@gnu.org>
10625
10626 * alloc.c (NSTATICS): Enlarge to 0x650. Otherwise, Emacs compiled
10627 with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER
10628 aborts in staticpro during startup. (Without -DBYTE_CODE_METER,
10629 staticidx goes up to 1597 out of 1600 = 0x640.)
10630
106312012-06-20 Paul Eggert <eggert@cs.ucla.edu>
10632
10633 * fileio.c (Fdefault_file_modes): Block input while fiddling with umask.
10634 Otherwise, the umask might be mistakenly 0 while handling input signals.
10635
106362012-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
10637
10638 * minibuf.c (Fread_string): Bind minibuffer-completion-table.
10639
106402012-06-19 Dmitry Antipov <dmantipov@yandex.ru>
10641
10642 * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c:
10643 * font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c:
10644 * print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct
10645 access to `contents' member of Lisp_Vector objects with AREF and ASET
10646 where appropriate.
10647
106482012-06-19 Chong Yidong <cyd@gnu.org>
10649
10650 * frame.c (delete_frame): When selecting a frame on a different
10651 text terminal, do not alter the terminal's top-frame.
10652
10653 * xdisp.c (format_mode_line_unwind_data): Record the target
10654 frame's selected window and its terminal's top-frame.
10655 (unwind_format_mode_line): Restore them.
10656 (x_consider_frame_title, display_mode_line, Fformat_mode_line):
10657 Callers changed.
10658 (x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM,
10659 since tty frames can be explicitly named.
10660 (prepare_menu_bars): Likewise.
10661
10662 * term.c (Ftty_top_frame): New function.
10663
106642012-06-18 Paul Eggert <eggert@cs.ucla.edu>
10665
10666 Port byte-code-meter to modern targets.
10667 * bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume
10668 !CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG. Problem with
10669 CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in
10670 <http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00282.html>.
10671 (METER_1, METER_2): Simplify.
10672
106732012-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
10674
10675 * data.c (Fdefalias): Return `symbol' (bug#11686).
10676
106772012-06-18 Martin Rudalics <rudalics@gmx.at>
10678
10679 * buffer.c (Fkill_buffer): Don't throw an error when the buffer
10680 gets killed during executing of this function (Bug#11665).
10681 Try to always return Qt when the buffer has been actually killed.
10682 (Vkill_buffer_query_functions): In doc-string say that functions
10683 run by this hook should not change the current buffer.
10684
106852012-06-18 Paul Eggert <eggert@cs.ucla.edu>
10686
10687 Fix recently-introduced process.c problems found by static checking.
10688 * process.c (write_queue_push, write_queue_pop, send_process):
10689 Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets.
10690 (write_queue_pop): Fix pointer signedness problem.
10691 (send_process): Remove unused local.
10692
106932012-06-17 Chong Yidong <cyd@gnu.org>
10694
10695 * xdisp.c (redisplay_internal): No need to redisplay terminal
10696 frames that are not on top.
10697
106982012-06-17 Troels Nielsen <bn.troels@gmail.com>
10699
10700 * process.c (make_process): Initialize write_queue.
10701 (write_queue_push, write_queue_pop): New functions.
10702 (send_process): Use them to maintain correct ordering of process
10703 writes (Bug#10815).
10704
107052012-06-17 Paul Eggert <eggert@cs.ucla.edu>
10706
10707 * lisp.h (eassert): Assume C89 or later.
10708 This removes the need for CHECK.
10709 (CHECK): Remove. Its comments about always evaluating its
10710 argument were confusing, as 'eassert' typically does not evaluate
10711 its argument.
10712
10713 * coding.c (produce_chars): Use ptrdiff_t, not int.
10714
10715 * xterm.c (x_draw_underwave): Check for integer overflow.
10716 This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64.
10717
107182012-06-17 Jan Djärv <jan.h.d@swipnet.se>
10719
10720 * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't
10721 referenced (Bug#11583).
10722
107232012-06-16 Aurelien Aptel <aurelien.aptel@gmail.com>
10724
10725 Implement wave-style variant of underlining.
10726 * dispextern.h (face_underline_type): New enum.
10727 (face): Add field for underline type.
10728 * nsterm.m (ns_draw_underwave): New function.
10729 (ns_draw_text_decoration): Use it.
10730 * w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave):
10731 New functions. 6614 New functions.
10732 (x_draw_glyph_string): Use them. 6615 * lread.c (load_unwind): Remove. All uses replaced by fclose_unwind.
10733 * xfaces.c (Qline, Qwave): New Lisp objects. 6616 The replacement doesn't block input, but that no longer seems
10734 (check_lface_attrs, merge_face_ref) 6617 necessary.
10735 (Finternal_set_lisp_face_attribute, realize_x_face): 6618
10736 Handle wave-style underline face attributes. 66192013-07-17 Paul Eggert <eggert@cs.ucla.edu>
10737 * xterm.c (x_draw_underwave): New function. 6620
10738 (x_draw_glyph_string): Use it. 6621 * lread.c: Fix file descriptor leaks and errno issues.
10739 6622 (Fload): Close some races that leaked fds or streams when 'load'
107402012-06-16 Juanma Barranquero <lekktu@gmail.com> 6623 was interrupted.
10741 6624 (Fload, openp): Report error number of last nontrivial failure to open.
10742 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O)) 6625 ENOENT counts as trivial.
10743 ($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O)) 6626 * eval.c (do_nothing, clear_unwind_protect, set_unwind_protect_ptr):
10744 ($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O))
10745 ($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O))
10746 ($(BLD)/w32select.$(O)): Update dependencies.
10747
107482012-06-16 Andreas Schwab <schwab@linux-m68k.org>
10749
10750 * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.
10751 (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
10752 * character.c (_fetch_multibyte_char_p): Remove.
10753 * alloc.c: Include "character.h" before "buffer.h".
10754 * bidi.c: Likewise.
10755 * buffer.c: Likewise.
10756 * bytecode.c: Likewise.
10757 * callint.c: Likewise.
10758 * callproc.c: Likewise.
10759 * casefiddle.c: Likewise.
10760 * casetab.c: Likewise.
10761 * category.c: Likewise.
10762 * cmds.c: Likewise.
10763 * coding.c: Likewise.
10764 * composite.c: Likewise.
10765 * dired.c: Likewise.
10766 * dispnew.c: Likewise.
10767 * doc.c: Likewise.
10768 * dosfns.c: Likewise.
10769 * editfns.c: Likewise.
10770 * emacs.c: Likewise.
10771 * fileio.c: Likewise.
10772 * filelock.c: Likewise.
10773 * font.c: Likewise.
10774 * fontset.c: Likewise.
10775 * fringe.c: Likewise.
10776 * indent.c: Likewise.
10777 * insdel.c: Likewise.
10778 * intervals.c: Likewise.
10779 * keyboard.c: Likewise.
10780 * keymap.c: Likewise.
10781 * lread.c: Likewise.
10782 * macros.c: Likewise.
10783 * marker.c: Likewise.
10784 * minibuf.c: Likewise.
10785 * nsfns.m: Likewise.
10786 * nsmenu.m: Likewise.
10787 * print.c: Likewise.
10788 * process.c: Likewise.
10789 * regex.c: Likewise.
10790 * region-cache.c: Likewise.
10791 * search.c: Likewise.
10792 * syntax.c: Likewise.
10793 * term.c: Likewise.
10794 * textprop.c: Likewise.
10795 * undo.c: Likewise.
10796 * unexsol.c: Likewise.
10797 * w16select.c: Likewise.
10798 * w32fns.c: Likewise.
10799 * w32menu.c: Likewise.
10800 * window.c: Likewise.
10801 * xdisp.c: Likewise.
10802 * xfns.c: Likewise.
10803 * xmenu.c: Likewise.
10804 * xml.c: Likewise.
10805 * xselect.c: Likewise.
10806
108072012-06-16 Eli Zaretskii <eliz@gnu.org>
10808
10809 * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end.
10810 If all the glyphs of the glyph row came from strings, and we have no
10811 cursor positioning clues, put the cursor on the first glyph of the
10812 row.
10813 (handle_face_prop): Use chunk-relative overlay string index when
10814 indexing into it->string_overlays array. (Bug#11653)
10815 (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not
10816 the rightmost. (Bug#11720)
10817
108182012-06-16 Andreas Schwab <schwab@linux-m68k.org>
10819
10820 * category.h (CHAR_HAS_CATEGORY): Define as inline.
10821 (CATEGORY_MEMBER): Enforce 1/0 value.
10822 * category.c (_temp_category_set): Remove.
10823
108242012-06-16 Eli Zaretskii <eliz@gnu.org>
10825
10826 * window.c (Fdelete_other_windows_internal)
10827 (Fdelete_window_internal): Don't access frame's mouse highlight
10828 info of the initial frame. (Bug#11677)
10829
108302012-06-14 Paul Eggert <eggert@cs.ucla.edu>
10831
10832 * .gdbinit (xgetint): Fix recently-introduced paren typo.
10833 Assume USE_2_TAGS_FOR_INTS.
10834 (xreload): Adjust $tagmask width to match recent lisp.h change.
10835
10836 Simplify lisp.h in minor ways that should not affect code.
10837 * lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined.
10838 (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P)
10839 (LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number):
10840 Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined.
10841 (INTTYPEBITS): New macro, for clarity.
10842 (INTMASK, MOST_POSITIVE_FIXNUM): Use it.
10843 (LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P):
10844 Simplify now that USE_LSB_TAG is always defined.
10845 (TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast.
10846 (make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler.
10847
108482012-06-13 Juanma Barranquero <lekktu@gmail.com>
10849
10850 * makefile.w32-in ($(BLD)/data.$(O)): Update dependencies.
10851
108522012-06-13 Glenn Morris <rgm@gnu.org>
10853
10854 * s/bsd-common.h (BSD4_3):
10855 * s/usg5-4-common.h (USG5_4): No longer define; unused.
10856
108572012-06-13 Andreas Schwab <schwab@linux-m68k.org>
10858
10859 * lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
10860 instead of union.
10861 (XLI, XIL): Define.
10862 (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG):
10863 Use them.
10864 * emacs.c (gdb_use_struct): Rename from gdb_use_union.
10865 * .gdbinit: Check gdb_use_struct instead of gdb_use_union.
10866 * alloc.c (widen_to_Lisp_Object): Remove.
10867 (mark_memory): Use XIL instead of widen_to_Lisp_Object.
10868 * frame.c (delete_frame): Remove outdated comment.
10869 * w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
10870 USE_LISP_UNION_TYPE.
10871 (Fw32_unregister_hot_key): Likewise.
10872 (Fw32_toggle_lock_key): Likewise.
10873 * w32menu.c (add_menu_item): Likewise.
10874 (w32_menu_display_help): Use XIL instead of checking
10875 USE_LISP_UNION_TYPE.
10876 * w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
10877 (init_heap): Likewise.
10878 * w32term.c (w32_read_socket): Update comment.
10879
108802012-06-13 Glenn Morris <rgm@gnu.org>
10881
10882 * s/usg5-4-common.h, src/s/unixware.h:
10883 Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04).
10884
10885 * s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04).
10886
108872012-06-13 Paul Eggert <eggert@cs.ucla.edu>
10888
10889 USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604)
10890 * alloc.c (make_number) [!defined make_number]:
10891 Remove, as lisp.h always defines this now.
10892 (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
10893 (roundup_size): Verify that it is a power of 2.
10894 * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
10895 * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
10896 * lisp.h (USE_LSB_TAG): Allow the builder to compile with
10897 -DUSE_LSB_TAG=0, to override the automatically-selected default.
10898 USE_LSB_TAG now is always defined to be either 0 or 1.
10899 All uses changed.
10900 (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
10901 code works fine either way, and efficiency is not a concern here,
10902 as the union type is for debugging, not for production.
10903 (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
10904 Use an inline function on all platforms when using the union type,
10905 since this is simpler and 'static inline' can be used portably
10906 within Emacs now.
10907 (LISP_INITIALLY_ZERO): New macro.
10908 (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
10909 (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
10910
109112012-06-12 Glenn Morris <rgm@gnu.org>
10912
10913 * s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files.
10914
10915 * s/gnu-linux.h (HAVE_PROCFS): Move to configure.
10916
10917 * s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h:
10918 Move BROKEN_SIGIO to configure.
10919
10920 * s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h:
10921 Move NO_TERMIO to configure.
10922
109232012-06-12 Chong Yidong <cyd@gnu.org>
10924
10925 * image.c (imagemagick_load_image): Use MagickFlattenImage if
10926 MagickMergeImageLayers is undefined. Use pixel pusher loop if
10927 MagickExportImagePixels is undefined.
10928
109292012-06-12 Paul Eggert <eggert@cs.ucla.edu>
10930
10931 * image.c (imagemagick_load_image): Remove unused label.
10932
109332012-06-11 Glenn Morris <rgm@gnu.org>
10934
10935 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
10936 * s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h:
10937 * s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h:
10938 * s/usg5-4-common.h: Move SYSTEM_TYPE to configure.
10939
109402012-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
10941
10942 * alloc.c (make_byte_code): New function.
10943 (Fmake_byte_code): Use it. Don't purify here.
10944 * lread.c (read1): Use it as well to avoid extra allocation.
10945
109462012-06-11 Chong Yidong <cyd@gnu.org>
10947
10948 * image.c (imagemagick_load_image): Implement transparency.
10949
109502012-06-10 Andreas Schwab <schwab@linux-m68k.org>
10951
10952 * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly
10953 account for preceding backslashes. (Bug#11663)
10954
109552012-06-09 Chong Yidong <cyd@gnu.org>
10956
10957 * term.c: Support italics in capable terminals (Bug#9652).
10958 (no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
10959 (turn_on_face): Output using TS_enter_italic_mode if available.
10960 Don't handle unused blinking and alt-charset cases.
10961 (turn_off_face): Handle italic case; discard unused tty_blinking_p
10962 and tty_alt_charset_p cases.
10963 (tty_capable_p, init_tty): Support italics.
10964
10965 * termchar.h (struct tty_display_info): Add field for italics.
10966 Remove unused blink field.
10967
10968 * xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
10969 Handle slant.
10970
10971 * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
10972 (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
10973 tty_alt_charset_p. Add tty_italic_p.
10974
109752012-06-09 Michael Albinus <michael.albinus@gmx.de>
10976
10977 * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and
10978 dbus_type_is_basic if available.
10979 (xd_extract_signed, xd_extract_unsigned): Rename from
10980 extract_signed and extract_unsigned, respectively. Adapt callers.
10981
109822012-06-09 Chong Yidong <cyd@gnu.org>
10983
10984 * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066).
10985
10986 * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive
10987 case (Bug#9752).
10988
109892012-06-08 Paul Eggert <eggert@cs.ucla.edu>
10990
10991 * xdisp.c (vmessage): Treat frame message as multibyte.
10992 Without this change, (let ((§ 1)) (make-variable-buffer-local '§))
10993 would generate the diagnostic "Making \302\247 buffer-local while
10994 let-bound!".
10995
109962012-06-08 Eli Zaretskii <eliz@gnu.org>
10997
10998 * dispnew.c (showing_window_margins_p): Undo last change, which
10999 was done due to an inadvertent commit.
11000 (adjust_frame_glyphs_for_frame_redisplay): Do call
11001 showing_window_margins_p.
11002
110032012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
11004
11005 * eval.c (Fmake_var_non_special): New primitive.
11006 (syms_of_eval): Defsubr it.
11007 * lread.c (syms_of_lread): Mark `values' as lexically scoped.
11008
110092012-06-08 Juanma Barranquero <lekktu@gmail.com>
11010
11011 * dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused
11012 function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org).
11013
110142012-06-08 Eli Zaretskii <eliz@gnu.org>
11015
11016 * alloc.c (allocate_vectorlike): Fix last change.
11017
110182012-06-08 Dmitry Antipov <dmantipov@yandex.ru>
11019
11020 Block-based vector allocation of small vectors.
11021 * lisp.h (struct vectorlike_header): New field `nbytes',
11022 adjust comment accordingly.
11023 * alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
11024 to denote vector blocks. Adjust users (live_vector_p,
11025 mark_maybe_pointer, valid_lisp_object_p) accordingly.
11026 (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
11027 (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES),
11028 (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX),
11029 (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST),
11030 (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
11031 (roundup_size): New constant.
11032 (struct vector_block): New data type.
11033 (vector_blocks, vector_free_lists, zero_vector): New variables.
11034 (all_vectors): Rename to `large_vectors'.
11035 (allocate_vector_from_block, init_vectors, allocate_vector_from_block)
11036 (sweep_vectors): New functions.
11037 (allocate_vectorlike): Return `zero_vector' as the only vector of
11038 0 items. Allocate new vector from block if vector size is less than
11039 or equal to VBLOCK_BYTES_MAX.
11040 (Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
11041 (init_alloc_once): Add call to init_vectors.
11042
110432012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
11044
11045 * eval.c (Fmacroexpand): Stop if the macro returns the same form.
11046
110472012-06-07 Paul Eggert <eggert@cs.ucla.edu>
11048
11049 * doprnt.c (doprnt): Truncate multibyte char correctly.
11050 Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP)
11051 would mishandle a string argument "Xc" if X was a multibyte
11052 character of length 2: it would truncate after X's first byte
11053 rather than including all of X.
11054
110552012-06-06 Chong Yidong <cyd@gnu.org>
11056
11057 * buffer.c (word_wrap): Doc fix.
11058
110592012-06-04 Paul Eggert <eggert@cs.ucla.edu>
11060
11061 * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall.
11062
110632012-06-03 Glenn Morris <rgm@gnu.org>
11064
11065 * xdisp.c (tool-bar-style): Doc fix.
11066
110672012-06-03 Ulrich Müller <ulm@gentoo.org>
11068
11069 * Makefile.in (PAXCTL): Define.
11070 (temacs$(EXEEXT)): Disable memory randomization for the temacs
11071 binary via PaX flags if the paxctl utility is available.
11072 (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
11073 Restore PaX flags to their default. (Bug#11398)
11074
110752012-06-03 Chong Yidong <cyd@gnu.org>
11076
11077 * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
11078 buffer (Bug#11226).
11079
110802012-06-03 Chong Yidong <cyd@gnu.org>
11081
11082 * xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
11083 (note_mode_line_or_margin_highlight): If there is no help echo,
11084 use mode-line-default-help-echo. Handle the case where the mouse
11085 position is past the end of the mode line string.
11086
11087 * buffer.c (buffer_local_value_1): New function, split from
11088 Fbuffer_local_value; can return Qunbound.
11089 (Fbuffer_local_value): Use it.
11090 (Vmode_line_format): Docstring tweaks.
11091
110922012-06-02 Paul Eggert <eggert@cs.ucla.edu>
11093
11094 * sysdep.c (system_process_attributes): Improve comment.
11095
110962012-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
11097
11098 * keyboard.c: Export real-this-command to Elisp.
11099 (syms_of_keyboard): Rename real_this_command to Vreal_this_command
11100 and DEFVAR it. Update all users.
11101
111022012-06-02 Paul Eggert <eggert@cs.ucla.edu>
11103
11104 * minibuf.c (Fassoc_string): Remove duplicate declaration.
11105
11106 * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
11107 Convert pctcpu and pctmem to Lisp float properly.
11108 Let the compiler fold better, as 100.0/0x8000 is exact.
11109
111102012-06-02 Andreas Schwab <schwab@linux-m68k.org>
11111
11112 * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
11113 cons_block.
11114
111152012-06-01 Paul Eggert <eggert@cs.ucla.edu>
11116
11117 * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change.
11118
111192012-06-01 Dmitry Antipov <dmantipov@yandex.ru>
11120
11121 For a 'struct window', replace some Lisp_Object fields to
11122 bitfields where appropriate, remove unused fields.
11123 * window.h (struct window): Remove unused 'last_mark_x' and
11124 'last_mark_y' fields. Rename 'mini_p' field to 'mini',
11125 change its type from Lisp_Object to bitfield.
11126 Change type of 'force_start', 'optional_new_start',
11127 'last_had_star', 'update_mode_line' and 'start_at_line_beg'
11128 fields from Lisp_Object to bitfield. Adjust users accordingly.
11129
111302012-05-31 Paul Eggert <eggert@cs.ucla.edu>
11131
11132 Pacify gcc -Wdouble-precision when using Xaw.
11133 * xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb)
11134 [HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]:
11135 Use 'float' consistently, rather than 'float' in most places
11136 and 'double' in a couple of places.
11137
111382012-05-31 Eli Zaretskii <eliz@gnu.org>
11139
11140 * xdisp.c (handle_stop): Detect whether we have overlay strings
11141 loaded by testing it->current.overlay_string_index to be
11142 non-negative, instead of checking whether n_overlay_strings is
11143 positive. (Bug#11587)
11144
111452012-05-31 Chong Yidong <cyd@gnu.org>
11146
11147 * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169).
11148
11149 * doc.c (Fsubstitute_command_keys): Doc fix.
11150
111512012-05-31 Eli Zaretskii <eliz@gnu.org>
11152
11153 * search.c (search_buffer): Remove calls to
11154 r_alloc_inhibit_buffer_relocation, as it is now called by
11155 maybe_unify_char, which was the cause of relocation of buffer text
11156 in bug#11519.
11157
111582012-05-31 Eli Zaretskii <eliz@gnu.org>
11159
11160 * charset.c (maybe_unify_char): Inhibit relocation of buffer text
11161 for the duration of call to load_charset, to avoid problems with
11162 callers of maybe_unify_char that access buffer text through C
11163 pointers.
11164
11165 * ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and
11166 decrement the inhibition flag, instead of just setting or
11167 resetting it.
11168
111692012-05-31 Paul Eggert <eggert@cs.ucla.edu>
11170
11171 Remove obsolete '#define static' cruft.
11172 * s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef.
11173 This #undef was "temporary" in 2000; it is no longer needed
11174 now that '#define static' has gone away.
11175 * xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height)
11176 (gray_bitmap_bits): Remove; no longer needed.
11177 All uses replaced with definiens.
11178 * xterm.c: Include "bitmaps/gray.xbm".
11179
111802012-05-30 Paul Eggert <eggert@cs.ucla.edu>
11181
11182 Clean up __executable_start, monstartup when --enable-profiling.
11183 The following changes affect the code only when profiling.
11184 * dispnew.c (__executable_start): Rename from safe_bcopy.
11185 Define only on platforms that need it.
11186 * emacs.c: Include <sys/gmon.h> when profiling.
11187 (_mcleanup): Remove decl, since <sys/gmon.h> does it now.
11188 (__executable_start): Remove decl, since lisp.h does it now.
11189 (safe_bcopy): Remove decl; no longer has that name.
11190 (main): Coalesce #if into single bit of code, for simplicity.
11191 Cast pointers to uintptr_t, since standard libraries want integers
11192 and not pointers.
11193 * lisp.h (__executable_start): New decl.
11194
111952012-05-31 Glenn Morris <rgm@gnu.org>
11196
11197 * image.c (Fimagemagick_types): Doc fix.
11198
111992012-05-30 Jim Meyering <meyering@redhat.com>
11200
11201 * callproc.c (Fcall_process_region): Include directory component
11202 in mkstemp error message (Bug#11586).
11203
112042012-05-30 Paul Eggert <eggert@cs.ucla.edu>
11205
11206 * alloc.c, lisp.h (make_pure_vector): Now static.
11207
112082012-05-30 Stefan Monnier <monnier@iro.umontreal.ca>
11209
11210 * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
11211 Move to byte-run.el.
11212 (Fautoload): Do the hash-doc more carefully.
11213 * data.c (Fdefalias): Purify definition, except for keymaps.
11214 (Qdefun): Move from eval.c.
11215 * lisp.h (Qdefun): Remove.
11216 * lread.c (read1): Tiny simplification.
11217
112182012-05-29 Troels Nielsen <bn.troels@gmail.com>
11219
11220 Do not create empty overlays with the evaporate property (Bug#9642).
11221 * buffer.c (Fmove_overlay): Reinstate the earlier fix for
11222 Bug#9642, but explicitly check that the buffer the overlay would
11223 be moved to is live and rearrange lines to make sure that errors
11224 will not put the overlay in an inconsistent state.
11225 (Fdelete_overlay): Cosmetics.
11226
112272012-05-28 Eli Zaretskii <eliz@gnu.org>
11228
11229 * w32term.c (my_bring_window_to_top): New function.
11230 (x_raise_frame): Use handle returned by DeferWindowPos, which
11231 could be different from the original one.
11232 Call my_bring_window_to_top instead of my_set_foreground_window.
11233 (Bug#11513)
11234
11235 * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
11236 by calling BringWindowToTop.
11237
11238 * w32term.h (WM_EMACS_BRINGTOTOP): New message.
11239 (WM_EMACS_END): Increase by one.
11240
112412012-05-28 Paul Eggert <eggert@cs.ucla.edu>
11242
11243 * bidi.c (bidi_mirror_char): Put eassert before conversion to int.
11244 This avoids undefined behavior that might cause the eassert
11245 to not catch an out-of-range value.
11246
112472012-05-28 Juanma Barranquero <lekktu@gmail.com>
11248
11249 * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)):
11250 Update dependencies.
11251
112522012-05-27 Eli Zaretskii <eliz@gnu.org>
11253
11254 * bidi.c (bidi_mirror_char): Fix last change.
11255
112562012-05-27 Andreas Schwab <schwab@linux-m68k.org>
11257
11258 * unexmacosx.c (copy_data_segment): Truncate after 16 characters
11259 when referring to sectname field in printf format.
11260
112612012-05-27 Paul Eggert <eggert@cs.ucla.edu>
11262
11263 * lisp.h [REL_ALLOC]: Omit duplicate prototypes.
11264 Only r_alloc_inhibit_buffer_relocation needed to be added;
11265 the others were already declared.
11266
11267 * bidi.c (bidi_mirror_char): Don't possibly truncate the integer
11268 before checking whether it's out of range. Put the check inside
11269 eassert. See
11270 <http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00485.html>.
11271
112722012-05-27 Ken Brown <kbrown@cornell.edu>
11273
11274 * callproc.c (Fcall_process): Restore a line that was accidentally
11275 commented out in the 2011-02-13 change (bug#11547).
11276
112772012-05-27 Eli Zaretskii <eliz@gnu.org>
11278
11279 * lisp.h [REL_ALLOC]: Add prototypes for external functions
11280 defined on ralloc.c.
11281
11282 * buffer.c [REL_ALLOC]: Remove prototypes of
11283 r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free,
11284 they are now on lisp.h.
11285
11286 * ralloc.c (r_alloc_inhibit_buffer_relocation): New function.
11287
11288 * search.c (search_buffer): Use it to inhibit relocation of buffer
11289 text while re_search_2 is doing its job, because re_search_2 is
11290 passed C pointers to buffer text. (Bug#11519)
11291
11292 * msdos.c (internal_terminal_init) <Vwindow_system_version>:
11293 Update value to 24.
11294
11295 * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator
11296 state after an additional call to move_it_in_display_line_to, keep
11297 the values of it->max_ascent and it->max_descent found for the
11298 entire line.
11299 (pos_visible_p): Revert the comparison against bottom_y to what it
11300 was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb.
11301 (Bug#11464)
11302
113032012-05-26 Paul Eggert <eggert@cs.ucla.edu>
11304
11305 Fix coding-related core dumps with gcc -ftrapv.
11306 The code was computing A - B, where A and B are pointers, and B is
11307 random garbage. This can lead to core dumps on platforms that
11308 have special pointer registers, and it also leads to core dumps on
11309 x86-64 when compiled with gcc -ftrapv. The fix is to compute
11310 A - B only when B is initialized properly.
11311 * coding.c (coding_set_source, coding_set_destination): Return void.
11312 (coding_change_source, coding_change_destinations): New functions,
11313 with the old behaviors of coding_set_source and coding_set_destination.
11314 All callers that need an offset changed to use these new functions.
11315
113162012-05-26 Glenn Morris <rgm@gnu.org>
11317
11318 * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791)
11319
113202012-05-26 Eli Zaretskii <eliz@gnu.org>
11321
11322 Extend mouse support on W32 text-mode console.
11323 * xdisp.c (draw_row_with_mouse_face):
11324 Call tty_draw_row_with_mouse_face for WINDOWSNT as well.
11325
11326 * w32console.c: Include window.h.
11327 (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face):
11328 New functions. 6627 New functions.
11329 (initialize_w32_display): Initialize mouse-highlight data. 6628 * fileio.c (close_file_unwind): No need to test whether FD is nonnegative,
11330 6629 now that the function is always called with a nonnegative arg.
11331 * w32inevt.c: Include termchar.h and window.h. 6630 * lisp.h (set_unwind_protect_ptr, set_unwind_protect_int): Remove.
11332 (do_mouse_event): Support mouse-autoselect-window. When the mouse 6631 All uses replaced with ...
11333 moves, call note_mouse_highlight. If help_echo changed, call 6632 (clear_unwind_protect, set_unwind_protect_ptr): New decls.
11334 gen_help_event to produce help-echo message in the echo area.
11335 Call clear_mouse_face if mouse_face_hidden is set in the mouse
11336 highlight info.
11337
113382012-05-26 Paul Eggert <eggert@cs.ucla.edu>
11339
11340 * lread.c (read1): Simplify slightly to avoid an overflow warning
11341 with GCC 4.7.0 on x86-64.
11342
113432012-05-26 Eli Zaretskii <eliz@gnu.org>
11344
11345 * bidi.c (bidi_mirror_char): Revert last change: an int is
11346 definitely wide enough here.
11347
113482012-05-25 Paul Eggert <eggert@cs.ucla.edu>
11349
11350 Fix integer width and related bugs (Bug#9874).
11351 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
11352 (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE)
11353 (string_bytes, check_sblock, allocate_string_data):
11354 (compact_small_strings, Fmake_bool_vector, make_string)
11355 (make_unibyte_string, make_multibyte_string)
11356 (make_string_from_bytes, make_specified_string)
11357 (allocate_vectorlike, Fmake_vector, find_string_data_in_pure)
11358 (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy)
11359 (mark_vectorlike):
11360 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11361 (allocate_pseudovector):
11362 Use int, not EMACS_INT, where int is wide enough.
11363 (inhibit_garbage_collection, Fgarbage_collect):
11364 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11365 * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where
11366 int might not be wide enough.
11367 (bidi_cache_search, bidi_cache_find, bidi_init_it)
11368 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
11369 (bidi_at_paragraph_end, bidi_find_paragraph_start)
11370 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
11371 (bidi_level_of_next_char, bidi_move_to_visually_next):
11372 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11373 * buffer.c (copy_overlays, Fgenerate_new_buffer_name)
11374 (Fkill_buffer, Fset_buffer_major_mode)
11375 (advance_to_char_boundary, Fbuffer_swap_text)
11376 (Fset_buffer_multibyte, overlays_at, overlays_in)
11377 (overlay_touches_p, struct sortvec, record_overlay_string)
11378 (overlay_strings, recenter_overlay_lists)
11379 (adjust_overlays_for_insert, adjust_overlays_for_delete)
11380 (fix_start_end_in_overlays, fix_overlays_before, modify_overlay)
11381 (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change)
11382 (Foverlay_recenter, last_overlay_modification_hooks_used)
11383 (report_overlay_modification, evaporate_overlays, enlarge_buffer_text):
11384 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11385 (validate_region): Omit unnecessary test for b <= e,
11386 since that's guaranteed by the previous test.
11387 (adjust_overlays_for_delete): Avoid pos + length overflow.
11388 (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist)
11389 (report_overlay_modification):
11390 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11391 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change):
11392 Omit pointer cast, which isn't needed anyway, and doesn't work
11393 after the EMACS_INT -> ptrdiff_t change.
11394 (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow.
11395 * buffer.h: Adjust decls to match defn changes elsewhere.
11396 (struct buffer_text, struct buffer):
11397 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11398 Use EMACS_INT, not int, where int might not be wide enough.
11399 * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t,
11400 not int, to avoid needless 32-bit limit on 64-bit hosts.
11401 (exec_byte_code): Use tighter memory-full test, one that checks
11402 for alloca overflow. Don't compute the address of the object just
11403 before an array, as that's not portable. Use EMACS_INT, not
11404 ptrdiff_t or int, where ptrdiff_t or int might not be wide enough.
11405 * callint.c (Fcall_interactively):
11406 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11407 * callproc.c (call_process_kill, Fcall_process):
11408 Don't assume pid_t fits into an Emacs fixnum.
11409 (call_process_cleanup, Fcall_process, child_setup):
11410 Don't assume pid_t fits into int.
11411 (call_process_cleanup, Fcall_process, delete_temp_file)
11412 (Fcall_process_region):
11413 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11414 (Fcall_process): Simplify handling of volatile integers.
11415 Use int, not EMACS_INT, where int will do.
11416 * casefiddle.c (casify_object, casify_region, operate_on_word)
11417 (Fupcase_word, Fdowncase_word, Fcapitalize_word):
11418 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11419 (casify_object): Avoid integer overflow when overallocating buffer.
11420 * casetab.c (set_identity, shuffle): Prefer int to unsigned when
11421 either works. Use lint_assume to convince GCC 4.6.1 that it's OK.
11422 * category.c (Fchar_category_set): Don't assume fixnum fits in int.
11423 * category.h (CATEGORYP): Don't assume arg is nonnegative.
11424 * ccl.c (GET_CCL_INT): Remove; no longer needed, since the
11425 integers are now checked earlier. All uses replaced with XINT.
11426 (ccl_driver):
11427 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11428 For CCL_MapSingle, check that content and value are in int range.
11429 (ccl_driver, Fregister_code_conversion_map):
11430 Check that Vcode_version_map_vector is a vector.
11431 (resolve_symbol_ccl_program): Check that vector header is in range.
11432 Always copy the vector, so that we can check its contents reliably
11433 now rather than having to recheck each instruction as it's being
11434 executed. Check that vector words fit in 'int'.
11435 (ccl_get_compiled_code, Fregister_ccl_program)
11436 (Fregister_code_conversion_map): Use ptrdiff_t, not int, for
11437 program indexes, to avoid needless 32-bit limit on 64-bit hosts.
11438 (Fccl_execute, Fccl_execute_on_string): Check that initial reg
11439 contents are in range.
11440 (Fccl_execute_on_string): Check that status is in range.
11441 * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int.
11442 * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers):
11443 Accept and return EMACS_INT, not int, because callers can pass values
11444 out of 'int' range.
11445 (c_string_width, strwidth, lisp_string_width, chars_in_text)
11446 (multibyte_chars_in_text, parse_str_as_multibyte)
11447 (str_as_multibyte, count_size_as_multibyte, str_to_multibyte)
11448 (str_as_unibyte, str_to_unibyte, string_count_byte8)
11449 (string_escape_byte8, Fget_byte):
11450 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11451 (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to
11452 avoid mishandling large integers.
11453 * character.h: Adjust decls to match defn changes elsewhere.
11454 * charset.c (load_charset_map_from_file, find_charsets_in_text)
11455 (Ffind_charset_region):
11456 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11457 (load_charset_map_from_file): Redo idx calculation to avoid overflow.
11458 (load_charset_map_from_vector, Fdefine_charset_internal):
11459 Don't assume fixnum fits in int.
11460 (load_charset_map_from_vector, Fmap_charset_chars):
11461 Remove now-unnecessary CHECK_NATNUMs.
11462 (Fdefine_charset_internal): Check ranges here, more carefully.
11463 Don't rely on undefined behavior with signed left shift overflow.
11464 Don't assume unsigned int fits into fixnum, or that fixnum fits
11465 into unsigned int. Don't require max_code to be a valid fixnum;
11466 that's not true for gb10830 4-byte on a 32-bit host. Allow
11467 invalid_code to be a cons, for the same reason. Require code_offset
11468 to be a character. Avoid int overflow if max_char is close
11469 to INT_MAX.
11470 (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned;
11471 this is intended anyway and avoids some undefined behavior.
11472 (load_charset_map): Pass unsigned, not int, as 2nd arg of
11473 INDEX_TO_CODE_POINT, as that's what it expects.
11474 (Funify_charset, encode_char): Don't stuff unsigned vals into int vars.
11475 * charset.h (DECODE_CHAR): Return int, not unsigned;
11476 this is what was intended anyway, and it avoids undefined behavior.
11477 (CHARSET_OFFSET): Remove unused macro, instead of fixing its
11478 integer-overflow issues.
11479 (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts.
11480 Formerly, it returned EMACS_INT on 64-bit hosts in the common case
11481 where the argument is EMACS_INT, and this behavior is not intended.
11482 * chartab.c (Fmake_char_table, Fset_char_table_range)
11483 (uniprop_get_decoder, uniprop_get_encoder):
11484 Don't assume fixnum fits in int.
11485 * cmds.c (move_point): New function, that does the gist of
11486 Fforward_char and Fbackward_char, but does so while checking
11487 for integer overflow more accurately.
11488 (Fforward_char, Fbackward_char): Use it.
11489 (Fforward_line, Fend_of_line, internal_self_insert)
11490 (internal_self_insert):
11491 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11492 Fix a FIXME, by checking for integer overflow when calculating
11493 target_clm and actual_clm.
11494 * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR)
11495 (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P)
11496 (ASSURE_DESTINATION, coding_alloc_by_realloc)
11497 (coding_alloc_by_making_gap, alloc_destination)
11498 (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16)
11499 (encode_coding_utf_16, detect_coding_emacs_mule)
11500 (decode_coding_emacs_mule, encode_coding_emacs_mule)
11501 (detect_coding_iso_2022, decode_coding_iso_2022)
11502 (encode_invocation_designation, encode_designation_at_bol)
11503 (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
11504 (decode_coding_sjis, decode_coding_big5, encode_coding_sjis)
11505 (encode_coding_big5, detect_coding_ccl, decode_coding_ccl)
11506 (encode_coding_ccl, encode_coding_raw_text)
11507 (detect_coding_charset, decode_coding_charset)
11508 (encode_coding_charset, detect_eol, decode_eol, produce_chars)
11509 (produce_composition, produce_charset, produce_annotation)
11510 (decode_coding, handle_composition_annotation)
11511 (handle_charset_annotation, consume_chars, decode_coding_gap)
11512 (decode_coding_object, encode_coding_object, detect_coding_system)
11513 (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region)
11514 (code_convert_region, code_convert_string)
11515 (Fdefine_coding_system_internal)
11516 (coding_set_source, coding_set_destination):
11517 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11518 (setup_iso_safe_charsets, consume_chars, Funencodable_char_position)
11519 (Fdefine_coding_system_internal):
11520 Don't assume fixnums fit in int.
11521 (decode_coding_gap, decode_coding_object, encode_coding_object)
11522 (Fread_coding_system, Fdetect_coding_region)
11523 (Funencodable_char_position, Fcheck_coding_systems_region)
11524 (get_translation, handle_composition_annotation, consume_chars):
11525 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11526 (consume_chars): Rewrite to not calculate an address outside buffer.
11527 (Ffind_operation_coding_system): NATNUMP can eval its arg twice.
11528 Don't access memory outside of the args array.
11529 (Fdefine_coding_system_internal): Check for charset-id overflow.
11530 (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned
11531 result of ENCODE_CHAR.
11532 * coding.h: Adjust decls to match defn changes elsewhere.
11533 (struct coding_system):
11534 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11535 * composite.c (get_composition_id, find_composition)
11536 (run_composition_function, update_compositions)
11537 (compose_text, composition_gstring_put_cache)
11538 (composition_gstring_p, composition_gstring_width)
11539 (fill_gstring_header, fill_gstring_body, autocmp_chars)
11540 (composition_compute_stop_pos, composition_reseat_it)
11541 (composition_update_it, struct position_record)
11542 (find_automatic_composition, composition_adjust_point)
11543 (Fcomposition_get_gstring, Ffind_composition_internal):
11544 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11545 (update_compositions):
11546 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11547 * composite.h: Adjust decls to match defn changes elsewhere.
11548 (struct composition):
11549 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11550 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
11551 Do not attempt to compute the address of the object just before a
11552 buffer; this is not portable.
11553 (Faref, Faset):
11554 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11555 (Faset): Use int, not EMACS_INT, where int is wide enough.
11556 (Fstring_to_number): Don't assume fixnums fit in int.
11557 (Frem): Don't assume arg is nonnegative.
11558 * dbusbind.c (xd_append_arg): Check for integers out of range.
11559 (Fdbus_call_method): Don't overflow the timeout int.
11560 (extract_signed, extract_unsigned): New functions.
11561 (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned.
11562 (xd_get_connection_references): Return ptrdiff_t, not int.
11563 All uses changed.
11564 (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal)
11565 (xd_read_message_1):
11566 Use int, not unsigned, where the dbus API uses int.
11567 (Fdbus_message_internal): Don't overflow mtype.
11568 (syms_of_dbusbind): Allocate right-sized buffer for integers.
11569 * dired.c (directory_files_internal, file_name_completion, scmp)
11570 (file_name_completion_stat):
11571 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11572 (file_name_completion): Don't overflow matchcount.
11573 (file_name_completion_stat): Use SAFE_ALLOCA, not alloca.
11574 * dispextern.h: Adjust decls to match defn changes elsewhere.
11575 (struct text_pos, struct glyph, struct bidi_saved_info)
11576 (struct bidi_string_data, struct bidi_it, struct composition_it)
11577 (struct it):
11578 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11579 (struct display_pos, struct composition_it, struct it):
11580 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11581 * dispnew.c (increment_matrix_positions)
11582 (increment_row_positions, mode_line_string)
11583 (marginal_area_string):
11584 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11585 (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p):
11586 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11587 (duration_to_sec_usec): New function, to check for overflow better.
11588 (Fsleep_for, sit_for): Use it.
11589 * doc.c (get_doc_string, store_function_docstring):
11590 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11591 (get_doc_string, Fsnarf_documentation):
11592 Use int, not EMACS_INT, where int is wide enough.
11593 (get_doc_string):
11594 Use SAFE_ALLOCA, not alloca.
11595 Check for overflow when converting EMACS_INT to off_t.
11596 * doprnt.c (doprnt):
11597 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11598 * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid):
11599 Don't assume uid_t fits into fixnum.
11600 (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field)
11601 (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
11602 (Ffield_end, Fconstrain_to_field, Fline_beginning_position)
11603 (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before)
11604 (general_insert_function)
11605 (Finsert_char, make_buffer_string, make_buffer_string_both)
11606 (update_buffer_properties, Fbuffer_substring)
11607 (Fbuffer_substring_no_properties, Fcompare_buffer_substrings)
11608 (Fsubst_char_in_region, check_translation)
11609 (Ftranslate_region_internal, save_restriction_restore, Fformat)
11610 (transpose_markers, Ftranspose_regions):
11611 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11612 (clip_to_bounds): Move to lisp.h as an inline function).
11613 (Fconstrain_to_field): Don't assume integers are nonnegative.
11614 (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer):
11615 (Fsubst_char_in_region, Fsave_restriction):
11616 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11617 (Femacs_pid): Don't assume pid_t fits into fixnum.
11618 (lo_time): Use int, not EMACS_INT, when int suffices.
11619 (lisp_time_argument): Check for usec out of range.
11620 (Fencode_time): Don't assume fixnum fits in int.
11621 (Fuser_login_name, Fuser_full_name): Signal an error
11622 if a uid argument is out of range, rather than relying on
11623 undefined behavior.
11624 (Fformat_time_string): Remove now-unnecessary check.
11625 lisp_time_argument checks for out-of-range usec now.
11626 Use ptrdiff_t, not size_t, where ptrdiff_t will do.
11627 * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT.
11628 (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT.
11629 (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT.
11630 (init_cmdargs, Fdump_emacs):
11631 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11632 (Fkill_emacs): Don't assume fixnum fits in int; instead, take just
11633 the bottom (typically) 32 bits of the fixnum.
11634 * eval.c (specpdl_size, call_debugger):
11635 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11636 (when_entered_debugger, Fbacktrace_debug):
11637 Don't assume fixnum can fit in int.
11638 (Fdefvaralias, Fdefvar): Do not attempt to compute the address of
11639 the object just before a buffer; this is not portable.
11640 (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda)
11641 (grow_specpdl, unbind_to):
11642 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11643 (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum.
11644 (grow_specpdl): Simplify allocation by using xpalloc.
11645 (Fprog1, Fprog2): Don't assume list length fits in int. Simplify.
11646 * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file)
11647 (Finsert_file_contents, Fwrite_region, Fdo_auto_save):
11648 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11649 (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents)
11650 (a_write, e_write):
11651 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11652 (Fcopy_file, non_regular_nbytes, read_non_regular)
11653 (Finsert_file_contents):
11654 Use int, not EMACS_INT, where int is wide enough.
11655 (READ_BUF_SIZE): Verify that it fits in int.
11656 (Finsert_file_contents): Check that counts are in proper range,
11657 rather than assuming fixnums fit into ptrdiff_t etc.
11658 Don't assume fixnums fit into int.
11659 * floatfns.c (Fexpt): Avoid undefined signed * signed overflow.
11660 * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat)
11661 (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
11662 (string_char_to_byte, string_byte_to_char)
11663 (string_make_multibyte, string_to_multibyte)
11664 (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte)
11665 (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties)
11666 (substring_both, Fdelete, internal_equal, Ffillarray)
11667 (Fclear_string, mapcar1)
11668 (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
11669 (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
11670 (larger_vector, make_hash_table, maybe_resize_hash_table)
11671 (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table)
11672 (Fmaphash, secure_hash):
11673 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11674 (concat): Check for string index and length overflow.
11675 (Fmapconcat): Don't assume fixnums fit into ptrdiff_t.
11676 (Frequire):
11677 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11678 (larger_vector): New API (vec, incr_min, size_max) replaces old
11679 one (vec, new_size, init). This catches size overflow.
11680 INIT was removed because it was always Qnil.
11681 All callers changed.
11682 (INDEX_SIZE_BOUND): New macro, which calculates more precisely
11683 the upper bound on a hash table index size.
11684 (make_hash_table, maybe_resize_hash_table): Use it.
11685 (secure_hash): Computer start_byte and end_byte only after
11686 they're known to be in ptrdiff_t range.
11687 * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring)
11688 (Ffont_get_glyphs, Ffont_at):
11689 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11690 (font_style_to_value, font_prop_validate_style, font_expand_wildcards)
11691 (Flist_fonts, Fopen_font):
11692 Don't assume fixnum can fit in int.
11693 (check_gstring): Don't assume index can fit in int.
11694 (font_match_p): Check that fixnum is a character, not a nonnegative
11695 fixnum, since the later code needs to stuff it into an int.
11696 (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca.
11697 (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid
11698 conversion overflow issues.
11699 (Fopen_font): Check for integer out of range.
11700 (Ffont_get_glyphs): Don't assume index can fit in int.
11701 * font.h: Adjust decls to match defn changes elsewhere.
11702 * fontset.c (reorder_font_vector): Redo score calculation to avoid
11703 integer overflow.
11704 (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not
11705 printmax_t, where ptrdiff_t is wide enough.
11706 (Finternal_char_font):
11707 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11708 * frame.c (Fset_mouse_position, Fset_mouse_pixel_position)
11709 (Fset_frame_height, Fset_frame_width, Fset_frame_size)
11710 (Fset_frame_position, x_set_frame_parameters)
11711 (x_set_line_spacing, x_set_border_width)
11712 (x_set_internal_border_width, x_set_alpha, x_figure_window_size):
11713 Check that fixnums are in proper range for system types.
11714 (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters):
11715 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11716 (Fmodify_frame_parameters): Don't assume fixnum fits in int.
11717 Use SAFE_ALLOCA_LISP, not alloca.
11718 * frame.h (struct frame): Use intptr_t, not EMACS_INT, where
11719 intptr_t is wide enough.
11720 * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap)
11721 (Fdefine_fringe_bitmap): Don't assume fixnum fits in int.
11722 (Ffringe_bitmaps_at_pos): Don't assume index fits in int.
11723 Check for fixnum out of range.
11724 * ftfont.c (ftfont_list): Don't assume index fits in int.
11725 Check that fixnums are in proper range for system types.
11726 (ftfont_shape_by_flt):
11727 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11728 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
11729 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11730 (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot):
11731 Check that fixnums are in proper range for system types.
11732 * gnutls.h: Adjust decls to match defn changes elsewhere.
11733 * gtkutil.c (xg_dialog_run):
11734 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11735 (update_frame_tool_bar):
11736 Check that fixnums are in proper range for system types.
11737 * image.c (parse_image_spec): Redo count calculation to avoid overflow.
11738 (lookup_image): Check that fixnums are in range for system types.
11739 * indent.c (last_known_column, last_known_column_point):
11740 (current_column_bol_cache):
11741 (skip_invisible, current_column, check_display_width):
11742 (check_display_width, scan_for_column, current_column_1)
11743 (Findent_to, Fcurrent_indentation, position_indentation)
11744 (indented_beyond_p, Fmove_to_column, compute_motion):
11745 (Fcompute_motion, Fvertical_motion):
11746 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11747 (last_known_column_modified): Use EMACS_INT, not int.
11748 (check_display_width):
11749 (Fcompute_motion):
11750 Check that fixnums and floats are in proper range for system types.
11751 (compute_motion): Don't assume index or fixnum fits in int.
11752 (compute_motion, Fcompute_motion):
11753 Use int, not EMACS_INT, when it is wide enough.
11754 (vmotion): Omit local var start_hpos that is always 0; that way
11755 we don't need to worry about overflow in expressions involving it.
11756 * indent.h: Adjust decls to match defn changes elsewhere.
11757 (struct position):
11758 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11759 Use int, not EMACS_INT, where int is wide enough.
11760 Remove unused members ovstring_chars_done and tab_offset;
11761 all uses removed.
11762 * insdel.c (move_gap, move_gap_both, gap_left, gap_right)
11763 (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point)
11764 (adjust_markers_for_replace, make_gap_larger, make_gap_smaller)
11765 (make_gap, copy_text, insert, insert_and_inherit)
11766 (insert_before_markers, insert_before_markers_and_inherit)
11767 (insert_1, count_combining_before, count_combining_after)
11768 (insert_1_both, insert_from_string)
11769 (insert_from_string_before_markers, insert_from_string_1)
11770 (insert_from_gap, insert_from_buffer, insert_from_buffer_1)
11771 (adjust_after_replace, adjust_after_insert, replace_range)
11772 (replace_range_2, del_range, del_range_1, del_range_byte)
11773 (del_range_both, del_range_2, modify_region)
11774 (prepare_to_modify_buffer, signal_before_change)
11775 (signal_after_change, Fcombine_after_change_execute):
11776 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11777 * intervals.c (traverse_intervals, rotate_right, rotate_left)
11778 (balance_an_interval, split_interval_right, split_interval_left)
11779 (find_interval, next_interval, update_interval)
11780 (adjust_intervals_for_insertion, delete_node, delete_interval)
11781 (interval_deletion_adjustment, adjust_intervals_for_deletion)
11782 (static_offset_intervals, offset_intervals)
11783 (merge_interval_right, merge_interval_left, make_new_interval)
11784 (graft_intervals_into_buffer, temp_set_point_both)
11785 (temp_set_point, set_point, adjust_for_invis_intang)
11786 (set_point_both, move_if_not_intangible, get_property_and_range)
11787 (get_local_map, copy_intervals, copy_intervals_to_string)
11788 (compare_string_intervals, set_intervals_multibyte_1):
11789 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11790 * intervals.h: Adjust decls to match defn changes elsewhere.
11791 (struct interval):
11792 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11793 * keyboard.c (this_command_key_count, this_single_command_key_start)
11794 (before_command_key_count, before_command_echo_length, echo_now)
11795 (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse)
11796 (command_loop_1, safe_run_hooks, read_char, timer_check_2)
11797 (menu_item_eval_property, read_key_sequence, Fread_key_sequence)
11798 (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs):
11799 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11800 (last_non_minibuf_size, last_point_position, echo_truncate)
11801 (command_loop_1, adjust_point_for_property, read_char, gen_help_event)
11802 (make_lispy_position, make_lispy_event, parse_modifiers_uncached)
11803 (parse_modifiers, modify_event_symbol, Fexecute_extended_command)
11804 (stuff_buffered_input):
11805 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11806 (last_auto_save, command_loop_1, read_char):
11807 Use EMACS_INT, not int, to avoid integer overflow.
11808 (record_char): Avoid overflow in total_keys computation.
11809 (parse_modifiers_uncached): Redo index calculation to avoid overflow.
11810 * keyboard.h: Adjust decls to match defn changes elsewhere.
11811 * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1)
11812 (Fkey_description, Fdescribe_vector, Flookup_key):
11813 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11814 (click_position): New function, to check that positions are in range.
11815 (Fcurrent_active_maps):
11816 (describe_command):
11817 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11818 (Faccessible_keymaps, Fkey_description):
11819 (preferred_sequence_p):
11820 Don't assume fixnum can fit into int.
11821 (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca.
11822 Check for integer overflow in size calculations.
11823 (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to
11824 avoid mishandling large integers.
11825 * lisp.h: Adjust decls to match defn changes elsewhere.
11826 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String)
11827 (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table)
11828 (struct Lisp_Marker):
11829 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11830 (clip_to_bounds): Now an inline function, moved here from editfns.c.
11831 (GLYPH_CODE_P): Check for overflow in system types, subsuming the
11832 need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves.
11833 All callers changed.
11834 (GLYPH_CODE_CHAR, GLYPH_CODE_FACE):
11835 Assume the arg has valid form, since it always does.
11836 (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide
11837 unsigned integer system type.
11838 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros.
11839 (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA):
11840 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11841 (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum.
11842 (duration_to_sec_usec): New decl.
11843 * lread.c (read_from_string_index, read_from_string_index_byte)
11844 (read_from_string_limit, readchar, unreadchar, openp)
11845 (read_internal_start, read1, oblookup):
11846 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11847 (Fload, readevalloop, Feval_buffer, Feval_region):
11848 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11849 (openp): Check for out-of-range argument to 'access'.
11850 (read1): Use int, not EMACS_INT, where int is wide enough.
11851 Don't assume fixnum fits into int.
11852 Fix off-by-one error that can read outside a buffer.
11853 (read_filtered_event): Use duration_to_sec_usec
11854 to do proper overflow checking on durations.
11855 * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow
11856 in size calculation.
11857 (Fexecute_kbd_macro):
11858 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11859 * marker.c (cached_charpos, cached_bytepos, CONSIDER)
11860 (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos)
11861 (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted)
11862 (set_marker_both, set_marker_restricted_both, marker_position)
11863 (marker_byte_position, Fbuffer_has_markers_at):
11864 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11865 (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int.
11866 * menu.c (ensure_menu_items): Rename from grow_menu_items.
11867 It now merely ensures that the menu is large enough, without
11868 necessarily growing it, as this avoids some integer overflow issues.
11869 All callers changed.
11870 (keymap_panes, parse_single_submenu, Fx_popup_menu):
11871 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11872 (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int.
11873 Use SAFE_ALLOCA_LISP, not alloca.
11874 (find_and_return_menu_selection): Avoid unnecessary casts of pointers
11875 to EMACS_INT. Check that fixnums are in proper range for system types.
11876 * minibuf.c (minibuf_prompt_width, string_to_object)
11877 (Fminibuffer_contents, Fminibuffer_contents_no_properties)
11878 (Fminibuffer_completion_contents, Ftry_completion, Fall_completions):
11879 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11880 (get_minibuffer, read_minibuf_unwind):
11881 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11882 (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil;
11883 this simplifies overflow checking. All callers changed.
11884 (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions)
11885 (Ftest_completion):
11886 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11887 * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long.
11888 (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame):
11889 Check that fixnums are in proper range for system types.
11890 (Fx_create_frame, Fx_show_tip):
11891 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11892 * nsfont.m (ns_findfonts, nsfont_list_family):
11893 Don't assume fixnum fits in long.
11894 * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
11895 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11896 (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is
11897 wide enough.
11898 * nsselect.m (ns_get_local_selection, clean_local_selection_data):
11899 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11900 * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte)
11901 (PRINTDECLARE, PRINTPREPARE):
11902 (strout, print_string):
11903 (print, print_preprocess, print_check_string_charset_prop)
11904 (print_object):
11905 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11906 (PRINTDECLARE):
11907 (temp_output_buffer_setup, Fprin1_to_string, print_object):
11908 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11909 (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough.
11910 (printchar, strout): Use xpalloc to catch size calculation overflow.
11911 (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion.
11912 (print_error_message): Use SAFE_ALLOCA, not alloca.
11913 (print_object): Use int, not EMACS_INT, where int is wide enough.
11914 (print_depth, new_backquote_output, print_number_index):
11915 Use ptrdiff_t, not int, where int might not be wide enough.
11916 * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT.
11917 (Fset_process_window_size, Fformat_network_address)
11918 (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process)
11919 (sigchld_handler):
11920 Check that fixnums are in proper range for system types.
11921 (Fsignal_process): Simplify by avoiding a goto.
11922 Check for process-ids out of pid_t range rather than relying on
11923 undefined behavior.
11924 (process_tick, update_tick): Use EMACS_INT, not int.
11925 (Fformat_network_address, read_process_output, send_process)
11926 (Fprocess_send_region, status_notify):
11927 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11928 (Fformat_network_address, Fmake_serial_process, Fmake_network_process)
11929 (wait_reading_process_output, read_process_output, exec_sentinel):
11930 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11931 (conv_lisp_to_sockaddr): Don't assume fixnums fit into int.
11932 (Faccept_process_output): Use duration_to_sec_usec to do proper
11933 overflow checking on durations.
11934 (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal):
11935 Don't assume pid_t fits in int.
11936 * process.h (struct Lisp_Process): Members tick and update_tick
11937 are now of type EMACS_INT, not int.
11938 * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts
11939 configured --with-wide-int.
11940 * scroll.c (calculate_scrolling, calculate_direct_scrolling)
11941 (line_ins_del): Use int, not EMACS_INT, where int is wide enough.
11942 * search.c (looking_at_1, string_match_1):
11943 (fast_string_match, fast_c_string_match_ignore_case)
11944 (fast_string_match_ignore_case, fast_looking_at, scan_buffer)
11945 (scan_newline, find_before_next_newline, search_command)
11946 (trivial_regexp_p, search_buffer, simple_search, boyer_moore)
11947 (set_search_regs, wordify):
11948 (Freplace_match):
11949 (Fmatch_data):
11950 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11951 (string_match_1, search_buffer, set_search_regs):
11952 (Fmatch_data):
11953 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11954 (wordify): Check for overflow in size calculation.
11955 (Freplace_match): Avoid potential buffer overflow in search_regs.start.
11956 (Fset_match_data): Don't assume fixnum fits in ptrdiff_t.
11957 Check that fixnums are in proper range for system types.
11958 * sound.c (struct sound_device)
11959 (wav_play, au_play, vox_write, alsa_period_size, alsa_write):
11960 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11961 (Fplay_sound_internal):
11962 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11963 * syntax.c (struct lisp_parse_state, find_start_modiff)
11964 (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward):
11965 (Fparse_partial_sexp):
11966 Don't assume fixnums can fit in int.
11967 (struct lisp_parse_state, find_start_pos, find_start_value)
11968 (find_start_value_byte, find_start_begv)
11969 (update_syntax_table, char_quoted, dec_bytepos)
11970 (find_defun_start, prev_char_comend_first, back_comment):
11971 (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment)
11972 (scan_lists, Fbackward_prefix_chars, scan_sexps_forward):
11973 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11974 (Finternal_describe_syntax_value): Check that match_lisp is a
11975 character, not an integer, since the code stuffs it into int.
11976 (scan_words, scan_sexps_forward):
11977 Check that fixnums are in proper range for system types.
11978 (Fforward_word):
11979 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11980 (scan_sexps_forward):
11981 Use CHARACTERP, not INTEGERP, since the value must fit into int.
11982 (Fparse_partial_sexp): Fix doc; element 8 is not ignored.
11983 * syntax.h: Adjust decls to match defn changes elsewhere.
11984 (struct gl_state_s):
11985 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11986 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not
11987 MOST_POSITIVE_FIXNUM.
11988 * sysdep.c (wait_for_termination_1, wait_for_termination)
11989 (interruptible_wait_for_termination, mkdir):
11990 Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit.
11991 (emacs_read, emacs_write):
11992 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11993 (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT,
11994 and double all fit in int.
11995 * term.c (set_tty_color_mode):
11996 Check that fixnums are in proper range for system types.
11997 * termhooks.h (struct input_event):
11998 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11999 * textprop.c (validate_interval_range, interval_of)
12000 (Fadd_text_properties, set_text_properties_1)
12001 (Fremove_text_properties, Fremove_list_of_text_properties)
12002 (Ftext_property_any, Ftext_property_not_all)
12003 (copy_text_properties, text_property_list, extend_property_ranges)
12004 (verify_interval_modification):
12005 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12006 (Fnext_single_char_property_change)
12007 (Fprevious_single_char_property_change):
12008 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12009 (copy_text_properties):
12010 Check for integer overflow in index calculation.
12011 * undo.c (last_boundary_position, record_point, record_insert)
12012 (record_delete, record_marker_adjustment, record_change)
12013 (record_property_change):
12014 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12015 (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int.
12016 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12017 * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
12018 (Fx_hide_tip, Fx_file_dialog):
12019 * w32menu.c (set_frame_menubar):
12020 Use ptrdiff_t, not int, for consistency with rest of code.
12021 * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos)
12022 (select_window, Fdelete_other_windows_internal)
12023 (window_scroll_pixel_based, window_scroll_line_based)
12024 (Frecenter, Fset_window_configuration):
12025 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12026 (Fset_window_hscroll, run_window_configuration_change_hook)
12027 (set_window_buffer, temp_output_buffer_show, scroll_command)
12028 (Fscroll_other_window, Frecenter):
12029 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12030 (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right):
12031 Don't assume fixnum fits in int.
12032 (Fset_window_scroll_bars):
12033 Check that fixnums are in proper range for system types.
12034 * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead)
12035 (string_pos, c_string_pos, number_of_chars, init_iterator)
12036 (in_ellipses_for_invisible_text_p, init_from_display_pos)
12037 (compute_stop_pos, next_overlay_change, compute_display_string_pos)
12038 (compute_display_string_end, handle_face_prop)
12039 (face_before_or_after_it_pos, handle_invisible_prop)
12040 (handle_display_prop, handle_display_spec, handle_single_display_spec)
12041 (display_prop_intangible_p, string_buffer_position_lim)
12042 (string_buffer_position, handle_composition_prop, load_overlay_strings)
12043 (get_overlay_strings_1, get_overlay_strings)
12044 (iterate_out_of_display_property, forward_to_next_line_start)
12045 (back_to_previous_visible_line_start, reseat, reseat_to_string)
12046 (get_next_display_element, set_iterator_to_next)
12047 (get_visually_first_element, compute_stop_pos_backwards)
12048 (handle_stop_backwards, next_element_from_buffer)
12049 (move_it_in_display_line_to, move_it_in_display_line)
12050 (move_it_to, move_it_vertically_backward, move_it_by_lines)
12051 (add_to_log, message_dolog, message_log_check_duplicate)
12052 (message2, message2_nolog, message3, message3_nolog
12053 (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1)
12054 (current_message_1, truncate_echo_area, truncate_message_1)
12055 (set_message, set_message_1, store_mode_line_noprop)
12056 (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos)
12057 (text_outside_line_unchanged_p, check_point_in_composition)
12058 (reconsider_clip_changes)
12059 (redisplay_internal, set_cursor_from_row, try_scrolling)
12060 (try_cursor_movement, set_vertical_scroll_bar, redisplay_window)
12061 (redisplay_window, find_last_unchanged_at_beg_row)
12062 (find_first_unchanged_at_end_row, row_containing_pos, try_window_id)
12063 (trailing_whitespace_p, find_row_edges, display_line)
12064 (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction)
12065 (display_mode_element, store_mode_line_string)
12066 (pint2str, pint2hrstr, decode_mode_spec)
12067 (display_count_lines, display_string, draw_glyphs)
12068 (x_produce_glyphs, x_insert_glyphs)
12069 (rows_from_pos_range, mouse_face_from_buffer_pos)
12070 (fast_find_string_pos, mouse_face_from_string_pos)
12071 (note_mode_line_or_margin_highlight, note_mouse_highlight):
12072 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12073 (safe_call, init_from_display_pos, handle_fontified_prop)
12074 (handle_single_display_spec, load_overlay_strings)
12075 (with_echo_area_buffer, setup_echo_area_for_printing)
12076 (display_echo_area, echo_area_display)
12077 (x_consider_frame_title, prepare_menu_bars, update_menu_bar)
12078 (update_tool_bar, hscroll_window_tree, redisplay_internal)
12079 (redisplay_window, dump_glyph_row, display_mode_line)
12080 (Fformat_mode_line, decode_mode_spec, on_hot_spot_p):
12081 (handle_display_spec, display_prop_string_p):
12082 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12083 (handle_single_display_spec, build_desired_tool_bar_string)
12084 (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix)
12085 (get_specified_cursor_type):
12086 Check that fixnums are in proper range for system types.
12087 (struct overlay_entry, resize_mini_window, Fdump_glyph_row)
12088 (Flookup_image_map):
12089 Don't assume fixnums fit in int.
12090 (compare_overlay_entries):
12091 Avoid mishandling comparisons due to subtraction overflow.
12092 (load_overlay_strings): Use SAFE_NALLOCA, not alloca.
12093 (last_escape_glyph_face_id, last_glyphless_glyph_face_id):
12094 (handle_tool_bar_click):
12095 Use int, not unsigned, since we prefer signed and the signedness
12096 doesn't matter here.
12097 (get_next_display_element, next_element_from_display_vector):
12098 Use int, not EMACS_INT, when int is wide enough.
12099 (start_hourglass): Use duration_to_sec_usec to do proper
12100 overflow checking on durations.
12101 * xfaces.c (Fbitmap_spec_p):
12102 Check that fixnums are in proper range for system types.
12103 (compare_fonts_by_sort_order):
12104 Avoid mishandling comparisons due to subtraction overflow.
12105 (Fx_family_fonts, realize_basic_faces):
12106 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12107 (Fx_family_fonts):
12108 Don't assume fixnum fits in int.
12109 Use SAFE_ALLOCA_LISP, not alloca.
12110 (merge_face_heights): Remove unnecessary cast to EMACS_INT.
12111 (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID.
12112 (face_at_buffer_position, face_for_overlay_string)
12113 (face_at_string_position):
12114 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12115 (merge_faces): Use int, not EMACS_INT, where int is wide enough.
12116 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify)
12117 (Fx_show_tip):
12118 Check that fixnums are in proper range for system types.
12119 (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
12120 (Fx_hide_tip, Fx_file_dialog, Fx_select_font):
12121 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12122 (Fx_change_window_property): Don't assume fixnums fit in int.
12123 * xfont.c (xfont_chars_supported):
12124 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12125 * xmenu.c (Fx_popup_dialog, set_frame_menubar)
12126 (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
12127 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12128 * xml.c (parse_region):
12129 * xrdb.c (magic_file_p):
12130 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12131 * xselect.c (TRACE1): Don't assume pid_t promotes to int.
12132 (x_get_local_selection, x_reply_selection_request)
12133 (x_handle_selection_request, wait_for_property_change):
12134 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12135 (selection_data_to_lisp_data): Use short, not EMACS_INT, where
12136 short is wide enough.
12137 (x_send_client_event): Don't assume fixnum fits in int.
12138 * xterm.c (x_x_to_emacs_modifiers):
12139 Don't assume EMACS_INT overflows nicely into int.
12140 (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values
12141 may come from Lisp.
12142 (handle_one_xevent): NATNUMP can eval its arg twice.
12143 (x_connection_closed):
12144 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12145 * xterm.h: Adjust decls to match defn changes elsewhere.
12146 (struct scroll_bar): Use struct vectorlike_header
12147 rather than rolling our own approximation.
12148 (SCROLL_BAR_VEC_SIZE): Remove; not used.
12149
121502012-05-25 Glenn Morris <rgm@gnu.org>
12151
12152 * lisp.mk (lisp): Update for more files being compiled now.
12153
121542012-05-25 Stefan Monnier <monnier@iro.umontreal.ca>
12155
12156 * lread.c: Remove `read_pure' which makes no difference.
12157 (read_pure): Remove var.
12158 (unreadpure): Remove function.
12159 (readevalloop): Don't call read_list with -1 flag.
12160 (read1, read_vector): Don't test read_pure any more.
12161 (read_list): Simplify.
12162
12163 * fileio.c, character.h: Minor style tweaks.
12164
121652012-05-24 Dmitry Antipov <dmantipov@yandex.ru>
12166
12167 * window.h (clip_changed): Remove useless declaration.
12168
121692012-05-22 Juanma Barranquero <lekktu@gmail.com>
12170
12171 * makefile.w32-in: Follow-up to 2012-05-22T16:20:27Z!eggert@cs.ucla.edu.
12172 (TAGS, TAGS-gmake, CONFIG_H): Remove further references to m/intel386.h.
12173
121742012-05-22 Paul Eggert <eggert@cs.ucla.edu>
12175
12176 Remove src/m/*.
12177 This directory predates autoconf and is no longer needed nowadays.
12178 Move its few remaining bits of functionality to where they're needed.
12179 * m/README, m/alpha.h, m/amdx86-64.h, m/ia64.h, m/ibmrs6000.h:
12180 * m/ibms390x.h, m/intel386.h, m/m68k.h, m/macppc.h, m/sparc.h:
12181 * m/template.h: Remove.
12182 * Makefile.in (M_FILE): Remove. All uses removed.
12183 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS):
12184 * lisp.h (USE_LSB_TAG):
12185 * mem-limits.h (EXCEEDS_LISP_PTR):
12186 Use VAL_MAX, not VALBITS, in #if.
12187 * lisp.h (EMACS_INT_MAX): New macro, useful in #if.
12188 (EMACS_UINT): Define unconditionally now.
12189 (BITS_PER_CHAR, BITS_PER_SHORT, BITS_PER_INT, BITS_PER_LONG)
12190 (BITS_PER_EMACS_INT): New constants, replacing
12191 what used to be in config.h, but not useful in #if.
12192 (GCTYPEBITS, VALBITS): Define unconditionally, since m/* files don't
12193 define them any more.
12194 (VAL_MAX): New macro.
12195 (VALMASK): Use it.
12196 * puresize.h (PURESIZE_RATIO): Use EMACS_INT_MAX, not
12197 BITS_PER_EMACS_INT, in #if.
12198 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
12199 (BROKEN_SIGPOLL): Move here from m/ibmrs6000.h, which was removed.
12200 * s/gnu-linux.h (ULIMIT_BREAK_VALUE) [__i386__]:
12201 * s/ms-w32.h (DATA_START):
12202 Move here from removed file m/intel386.h.
12203 * s/gnu.h (NLIST_STRUCT): Remove undef; 'configure' does this.
12204 * s/irix6-5.h (_LP64): Remove; lisp.h no longer needs this.
12205
122062012-05-21 Paul Eggert <eggert@cs.ucla.edu>
12207
12208 Assume C89 or later.
12209 * alloc.c, buffer.c, lisp.h: Replace POINTER_TYPE with void.
12210 * alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc)
12211 (xrealloc):
12212 * buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts.
12213 * editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL):
12214 * textprop.c, tparam.c (NULL): Remove.
12215 * ralloc.c, vm-limit.c (POINTER): Assume void * works.
12216 * regex.c (SIGN_EXTEND_CHAR): Assume signed char works.
12217 * regex.h (_RE_ARGS): Remove. All uses rewritten to use prototypes.
12218 * unexelf.c (ElfBitsW): Assume c89 preprocessor or better.
12219 * xterm.c (input_signal_count): Assume volatile works.
12220
122212012-05-21 Ken Brown <kbrown@cornell.edu>
12222
12223 * xgselect.c (xg_select): Fix first argument in call to 'select'
12224 (bug#11508).
12225
122262012-05-20 Ken Brown <kbrown@cornell.edu>
12227
12228 * gmalloc.c (_free_internal_nolock, _realloc_internal_nolock)
12229 [CYGWIN]: Cast ptr to (char *) before comparing to _heapbase.
12230
122312012-05-19 Ken Brown <kbrown@cornell.edu>
12232
12233 * xfns.c (x_in_use): Remove `static' qualifier.
12234 * xterm.h (x_in_use): Declare.
12235 * xgselect.c: Include xterm.h.
12236 (xg_select): Test `x_in_use' instead of `inhibit_window_system'
12237 and `display_arg' (bug#9754).
12238
122392012-05-19 Paul Eggert <eggert@cs.ucla.edu>
12240
12241 * s/ms-w32.h (HAVE_GETDOMAINNAME): Remove; not needed.
12242
12243 * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed.
12244 * s/ms-w32.h (HAVE_FTIME): Remove; not needed.
12245
122462012-05-18 Eli Zaretskii <eliz@gnu.org>
12247
12248 Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows.
12249
12250 * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font.
12251 (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c.
12252
12253 * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken
12254 reference to image_cache->refcount.
12255 (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE.
12256
122572012-05-17 Juri Linkov <juri@jurta.org>
12258
12259 * search.c (Fword_search_regexp, Fword_search_backward)
12260 (Fword_search_forward, Fword_search_backward_lax)
12261 (Fword_search_forward_lax): Move functions to isearch.el
12262 (bug#10145, bug#11381).
12263
122642012-05-16 Paul Eggert <eggert@cs.ucla.edu>
12265
12266 * xgselect.c (xg_select): Just invoke 'select' if -nw (Bug#9754).
12267
122682012-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
12269
12270 * lread.c (init_obarray): Declare Qt and Qnil as special.
12271
122722012-05-14 Glenn Morris <rgm@gnu.org>
12273
12274 * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec").
12275 Put "libexec" before "bin", for the sake of init_callproc_1.
12276
122772012-05-14 Paul Eggert <eggert@cs.ucla.edu>
12278
12279 * keyboard.c (kbd_buffer_get_event) [!HAVE_DBUS]: Omit unused local.
12280
12281 * unexaix.c: Port to more-recent AIX compilers.
12282 (report_error, report_error_1, make_hdr, copy_sym)
12283 (mark_x, adjust_lnnoptrs, unrelocate_symbols):
12284 Make arguments const char *, not char *, to avoid violations of C
12285 standard and to fix some AIX warnings reported by Gilles Pion.
12286
122872012-05-14 Eli Zaretskii <eliz@gnu.org>
12288
12289 * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we
12290 already have overlays loaded.
12291 (handle_single_display_spec): Before returning without displaying
12292 fringe bitmap, synchronize the bidi iterator with the main display
12293 iterator, by calling iterate_out_of_display_property.
12294 (iterate_out_of_display_property): Detect buffer iteration by
12295 testing that it->string is a Lisp string.
12296 (get_next_display_element): When the current object is exhausted,
12297 and there's something on it->stack, call set_iterator_to_next to
12298 proceed with what's on the stack, instead of returning zero.
12299 (set_iterator_to_next): If called at the end of a Lisp string,
12300 proceed to consider_string_end without incrementing string
12301 position. Don't increment display vector index past the end of
12302 the display vector. (Bug#11417)
12303 (pos_visible_p): Don't report a position visible when move_it_to
12304 stopped at the last line of window, which happens to be scanned
12305 backwards by the bidi iteration. (Bug#11464)
12306
123072012-05-14 Eli Zaretskii <eliz@gnu.org>
12308
12309 * xdisp.c (handle_single_display_spec): Return 1 for left-margin
12310 and right-margin display specs even if the spec is invalid or we
12311 are on a TTY, and thus unable to display on the fringes.
12312 That's because the text with the property will not be displayed anyway,
12313 so we need to signal to the caller that this is a "replacing"
12314 display spec. This fixes display when the spec is invalid or we
12315 are on a TTY.
12316
123172012-05-14 Paul Eggert <eggert@cs.ucla.edu>
12318
12319 * unexaix.c (make_hdr): Fix typo in prototype.
12320 This bug broke the build on AIX. Problem reported by Gilles Pion.
12321
123222012-05-14 Michael Albinus <michael.albinus@gmx.de>
12323
12324 * keyboard.c (kbd_buffer_get_event): Read special events also in
12325 batch mode. (Bug#11415)
12326
123272012-05-12 Glenn Morris <rgm@gnu.org>
12328
12329 * ns.mk: Update for ns_appbindir no longer having trailing "/".
12330
123312012-05-12 Eli Zaretskii <eliz@gnu.org>
12332
12333 * lisp.mk (lisp): Add newcomment.elc.
12334
123352012-05-12 Glenn Morris <rgm@gnu.org>
12336
12337 * Makefile.in (MKDIR_P): New, set by configure.
12338 * ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P.
12339
123402012-05-11 Paul Eggert <eggert@cs.ucla.edu>
12341
12342 Remove unused function hourglass_started.
12343 * dispextern.h (hourglass_started):
12344 * w32fns.c (hourglass_started):
12345 * xdisp.c (hourglass_started): Remove.
12346
123472012-05-10 Juanma Barranquero <lekktu@gmail.com>
12348
12349 * makefile.w32-in ($(BLD)/gmalloc.$(O), $(BLD)/w32menu.$(O)):
12350 Update dependencies.
12351
123522012-05-10 Paul Eggert <eggert@cs.ucla.edu>
12353
12354 * xgselect.c (xg_select): Put maxfds+1 into a var.
12355 This is slightly clearer, and pacifies Ubuntu 12.04 gcc.
12356
12357 * sound.c (DEFAULT_ALSA_SOUND_DEVICE): Define only if HAVE_ALSA.
12358
123592012-05-10 Dave Abrahams <dave@boostpro.com>
12360
12361 * filelock.c (syms_of_filelock): New boolean create-lockfiles.
12362 (lock_file): If create_lockfiles is 0, do nothing. (Bug#11227)
12363
123642012-05-09 Michael Albinus <michael.albinus@gmx.de>
12365
12366 * dbusbind.c (xd_registered_buses): New internal Lisp object.
12367 Rename all occurrences of Vdbus_registered_buses to xd_registered_buses.
12368 (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
12369 Initialize xd_registered_buses.
12370
123712012-05-09 Paul Eggert <eggert@cs.ucla.edu>
12372
12373 Untag more efficiently if USE_LSB_TAG.
12374 This is based on a proposal by YAMAMOTO Mitsuharu in
12375 <http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg01876.html>.
12376 For an admittedly artificial (nth 8000 longlist) benchmark on
12377 Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks
12378 Emacs's overall text size by 1%.
12379 * lisp.h (XUNTAG): New macro.
12380 (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW)
12381 (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR)
12382 (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it.
12383 * eval.c (Fautoload):
12384 * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT):
12385 * frame.h (XFRAME): Use XUNTAG.
12386
12387 Port recent dbusbind.c changes to 32-bit --with-wide-int.
12388 * dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal):
12389 Remove unportable assumptions about print widths of types like
12390 dbus_uint32_t.
12391 (xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to
12392 intptr_t when converting between pointer and integer, to avoid GCC
12393 warnings about wrong width.
12394
123952012-05-09 Eli Zaretskii <eliz@gnu.org>
12396
12397 * w32proc.c (new_child): Force Windows to reserve only 64KB of
12398 stack for each reader_thread, instead of defaulting to 8MB
12399 determined by the linker. This avoids failures in creating
12400 subprocesses on Windows 7, see the discussion in this thread:
12401 http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html.
12402
124032012-05-07 Jérémy Compostella <jeremy.compostella@gmail.com>
12404
12405 Fix up display of the *Minibuf-0* buffer in the mini window.
12406 * keyboard.c (read_char): Don't clear the echo area if there's no
12407 message to clear.
12408 * xdisp.c (redisplay_internal): Redisplay the mini window (with the
12409 contents of *Minibuf-0*) if there's no message displayed in its stead.
12410
124112012-05-07 Michael Albinus <michael.albinus@gmx.de>
12412
12413 * dbusbind.c (XD_DEBUG_MESSAGE): Don't print message twice in
12414 batch mode.
12415
124162012-05-06 Chong Yidong <cyd@gnu.org>
12417
12418 * lisp.mk (lisp): Update.
12419
124202012-05-05 Jim Meyering <meyering@redhat.com>
12421
12422 * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372).
12423
124242012-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
12425
12426 * data.c (PUT_ERROR): New macro.
12427 (syms_of_data): Use it. Add new error type `user-error'.
12428 * undo.c (user_error): New function.
12429 (Fprimitive_undo): Use it.
12430 * print.c (print_error_message): Adjust print style for `user-error'.
12431 * keyboard.c (user_error): New function.
12432 (Fexit_recursive_edit, Fabort_recursive_edit): Use it.
12433
124342012-05-03 Paul Eggert <eggert@cs.ucla.edu>
12435
12436 Do not limit current-time-string to years 1000..9999.
12437 * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
12438 (Fcurrent_time_string): Support any year that is supported by the
12439 underlying localtime representation. Don't use asctime, as it
12440 has undefined behavior for years outside the range -999..9999.
12441
124422012-05-02 Paul Eggert <eggert@cs.ucla.edu>
12443
12444 Fix race conditions involving setenv, gmtime, localtime, asctime.
12445 Without this fix, interrupts could mess up code that uses these
12446 nonreentrant functions, since setting TZ invalidates existing
12447 tm_zone or tzname values, and since most of these functions return
12448 pointers to static storage.
12449 * editfns.c (format_time_string, Fdecode_time, Fencode_time)
12450 (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
12451 Grow the critical sections to include not just invoking
12452 localtime/gmtime, but also accessing these functions' results
12453 including their tm_zone values if any, and any related TZ setting.
12454 (format_time_string): Last arg is now struct tm *, not struct tm **,
12455 so that the struct tm is saved in the critical section.
12456 All callers changed. Simplify allocation of initial buffer, partly
12457 motivated by the fact that memory allocation needs to be outside
12458 the critical section.
12459
124602012-05-02 Dmitry Antipov <dmantipov@yandex.ru>
12461
12462 * intervals.c (adjust_intervals_for_insertion): Initialize `newi'
12463 with RESET_INTERVAL.
12464 6633
6634 A few more minor file errno-reporting bugs.
6635 * callproc.c (Fcall_process):
6636 * doc.c (Fsnarf_documentation):
6637 * fileio.c (Frename_file, Fadd_name_to_file, Fmake_symbolic_link):
6638 * process.c (set_socket_option):
6639 Don't let a constructor trash errno.
6640 * doc.c: Include <errno.h>.
6641
66422013-07-16 Juanma Barranquero <lekktu@gmail.com>
6643
6644 * w32fns.c (unwind_create_tip_frame): Fix declaration.
6645
66462013-07-16 Paul Eggert <eggert@cs.ucla.edu>
6647
6648 Fix w32 bug with call-process-region (Bug#14885).
6649 * callproc.c (Fcall_process_region): Pass nil, not "/dev/null",
6650 to Fcall_process when the input is empty. This simplifies the
6651 code a bit. It makes no difference on POSIXish platforms but
6652 apparently it fixes a bug on w32.
6653
6654 Fix bug where insert-file-contents closes a file twice (Bug#14839).
6655 * fileio.c (close_file_unwind): Don't close if FD is negative;
6656 this can happen when unwinding a zapped file descriptor.
6657 (Finsert_file_contents): Unwind-protect the fd before the point marker,
6658 in case Emacs runs out of memory between the two unwind-protects.
6659 Don't trash errno when closing FD.
6660 Zap the FD in the specpdl when closing it, instead of deferring
6661 the removal of the unwind-protect; this fixes a bug where a child
6662 function unwinds the stack past us.
6663
6664 New unwind-protect flavors to better type-check C callbacks.
6665 This also lessens the need to write wrappers for callbacks,
6666 and the need for make_save_pointer.
6667 * alloc.c (free_save_value):
6668 * atimer.c (run_all_atimers):
6669 Now extern.
6670 * alloc.c (safe_alloca_unwind):
6671 * atimer.c (unwind_stop_other_atimers):
6672 * keyboard.c (cancel_hourglass_unwind) [HAVE_WINDOW_SYSTEM]:
6673 * menu.c (cleanup_popup_menu) [HAVE_NS]:
6674 * minibuf.c (choose_minibuf_frame_1):
6675 * process.c (make_serial_process_unwind):
6676 * xdisp.c (pop_message_unwind):
6677 * xselect.c (queue_selection_requests_unwind):
6678 Remove no-longer-needed wrapper. All uses replaced by the wrappee.
6679 * alloc.c (record_xmalloc):
6680 Prefer record_unwind_protect_ptr to record_unwind_protect with
6681 make_save_pointer.
6682 * alloc.c (Fgarbage_collect):
6683 Prefer record_unwind_protect_void to passing a dummy.
6684 * buffer.c (restore_buffer):
6685 * window.c (restore_window_configuration):
6686 * xfns.c, w32fns.c (do_unwind_create_frame)
6687 New wrapper. All record-unwind uses of wrappee changed.
6688 * buffer.c (set_buffer_if_live):
6689 * callproc.c (call_process_cleanup, delete_temp_file):
6690 * coding.c (code_conversion_restore):
6691 * dired.c (directory_files_internal_w32_unwind) [WINDOWSNT]:
6692 * editfns.c (save_excursion_restore)
6693 (subst_char_in_region_unwind, subst_char_in_region_unwind_1)
6694 (save_restriction_restore):
6695 * eval.c (restore_stack_limits, un_autoload):
6696 * fns.c (require_unwind):
6697 * keyboard.c (recursive_edit_unwind, tracking_off):
6698 * lread.c (record_load_unwind, load_warn_old_style_backquotes):
6699 * macros.c (pop_kbd_macro, restore_menu_items):
6700 * nsfns.m (unwind_create_frame):
6701 * print.c (print_unwind):
6702 * process.c (start_process_unwind):
6703 * search.c (unwind_set_match_data):
6704 * window.c (select_window_norecord, select_frame_norecord):
6705 * xdisp.c (unwind_with_echo_area_buffer, unwind_format_mode_line)
6706 (fast_set_selected_frame):
6707 * xfns.c, w32fns.c (unwind_create_tip_frame):
6708 Return void, not a dummy Lisp_Object. All uses changed.
6709 * buffer.h (set_buffer_if_live): Move decl here from lisp.h.
6710 * callproc.c (call_process_kill):
6711 * fileio.c (restore_point_unwind, decide_coding_unwind)
6712 (build_annotations_unwind):
6713 * insdel.c (Fcombine_after_change_execute_1):
6714 * keyboard.c (read_char_help_form_unwind):
6715 * menu.c (unuse_menu_items):
6716 * minibuf.c (run_exit_minibuf_hook, read_minibuf_unwind):
6717 * sound.c (sound_cleanup):
6718 * xdisp.c (unwind_redisplay):
6719 * xfns.c (clean_up_dialog):
6720 * xselect.c (x_selection_request_lisp_error, x_catch_errors_unwind):
6721 Accept no args and return void, instead of accepting and returning
6722 a dummy Lisp_Object. All uses changed.
6723 * cygw32.c (fchdir_unwind):
6724 * fileio.c (close_file_unwind):
6725 * keyboard.c (restore_kboard_configuration):
6726 * lread.c (readevalllop_1):
6727 * process.c (wait_reading_process_output_unwind):
6728 Accept int and return void, rather than accepting an Emacs integer
6729 and returning a dummy object. In some cases this fixes an
6730 unlikely bug when the corresponding int is outside Emacs integer
6731 range. All uses changed.
6732 * dired.c (directory_files_internal_unwind):
6733 * fileio.c (do_auto_save_unwind):
6734 * gtkutil.c (pop_down_dialog):
6735 * insdel.c (reset_var_on_error):
6736 * lread.c (load_unwind):
6737 * xfns.c (clean_up_file_dialog):
6738 * xmenu.c, nsmenu.m (pop_down_menu):
6739 * xmenu.c (cleanup_widget_value_tree):
6740 * xselect.c (wait_for_property_change_unwind):
6741 Accept pointer and return void, rather than accepting an Emacs
6742 save value encapsulating the pointer and returning a dummy object.
6743 All uses changed.
6744 * editfns.c (Fformat): Update the saved pointer directly via
6745 set_unwind_protect_ptr rather than indirectly via make_save_pointer.
6746 * eval.c (specpdl_func): Remove. All uses replaced by definiens.
6747 (unwind_body): New function.
6748 (record_unwind_protect): First arg is now a function returning void,
6749 not a dummy Lisp_Object.
6750 (record_unwind_protect_ptr, record_unwind_protect_int)
6751 (record_unwind_protect_void): New functions.
6752 (unbind_to): Support SPECPDL_UNWIND_PTR etc.
6753 * fileio.c (struct auto_save_unwind): New type.
6754 (do_auto_save_unwind): Use it.
6755 (do_auto_save_unwind_1): Remove; subsumed by new do_auto_save_unwind.
6756 * insdel.c (struct rvoe_arg): New type.
6757 (reset_var_on_error): Use it.
6758 * lisp.h (SPECPDL_UNWIND_PTR, SPECPDL_UNWIND_INT, SPECPDL_UNWIND_VOID):
6759 New constants.
6760 (specbinding_func): Remove; there are now several such functions.
6761 (union specbinding): New members unwind_ptr, unwind_int, unwind_void.
6762 (set_unwind_protect_ptr): New function.
6763 * xselect.c: Remove unnecessary forward decls, to simplify maintenance.
6764
6765 Be simpler and more consistent about reporting I/O errors.
6766 * fileio.c (Fcopy_file, Finsert_file_contents, Fwrite_region):
6767 Say "Read error" and "Write error", rather than "I/O error", or
6768 "IO error reading", or "IO error writing", when a read or write
6769 error occurs.
6770 * process.c (Fmake_network_process, wait_reading_process_output)
6771 (send_process, Fprocess_send_eof, wait_reading_process_output):
6772 Capitalize diagnostics consistently. Put "failed foo" at the
6773 start of the diagnostic, so that we don't capitalize the
6774 function name "foo". Consistently say "failed" for such
6775 diagnostics.
6776 * sysdep.c, w32.c (serial_open): Now accepts Lisp string, not C string.
6777 All callers changed. This is so it can use report_file_error.
6778 * sysdep.c (serial_open, serial_configure): Capitalize I/O
6779 diagnostics consistently as above.
6780
6781 * fileio.c (report_file_errno): Fix errno reporting bug.
6782 If the file name is neither null nor a pair, package it up as a
6783 singleton list. All callers changed, both to this function and to
6784 report_file_error. This fixes a bug where the memory allocator
6785 invoked by list1 set errno so that the immediately following
6786 report_file_error reported the wrong errno value.
6787
6788 Fix minor problems found by --enable-gcc-warnings.
6789 * frame.c (Fhandle_focus_in, Fhandle_focus_out): Return a value.
6790 * keyboard.c (kbd_buffer_get_event): Remove unused local.
6791
67922013-07-16 Jan Djärv <jan.h.d@swipnet.se>
6793
6794 * xterm.c (x_focus_changed): Always generate FOCUS_IN_EVENT.
6795 Set event->arg to Qt if switch-event shall be generated.
6796 Generate FOCUS_OUT_EVENT for FocusOut if this is the focused frame.
6797
6798 * termhooks.h (enum event_kind): Add FOCUS_OUT_EVENT.
6799
6800 * nsterm.m (windowDidResignKey): If this is the focused frame, generate
6801 FOCUS_OUT_EVENT.
6802
6803 * keyboard.c (Qfocus_in, Qfocus_out): New static objects.
6804 (make_lispy_focus_in, make_lispy_focus_out): Declare and define.
6805 (kbd_buffer_get_event): For FOCUS_IN, make a focus_in event if no
6806 switch frame event is made. Check ! NILP (event->arg) if X11 (moved
6807 from xterm.c). Make focus_out event for FOCUS_OUT_EVENT if NS or X11
6808 and there is a focused frame.
6809 (head_table): Add focus-in and focus-out.
6810 (keys_of_keyboard): Add focus-in and focus-out to Vspecial_event_map,
6811 bind to handle-focus-in/out.
6812
6813 * frame.c (Fhandle_focus_in, Fhandle_focus_out): New functions.
6814 (Fhandle_switch_frame): Call Fhandle_focus_in.
6815 (syms_of_frame): defsubr handle-focus-in/out.
6816
68172013-07-16 Paul Eggert <eggert@cs.ucla.edu>
6818
6819 Fix porting bug to older POSIXish platforms (Bug#14862).
6820 * sysdep.c (emacs_pipe): New function, that implements
6821 pipe2 (fd, O_CLOEXEC) even on hosts that lack O_CLOEXEC.
6822 This should port better to CentOS 5 and to Mac OS X 10.6.
6823 All calls to pipe2 changed.
6824
6825 Prefer list1 (X) to Fcons (X, Qnil) when building lists.
6826 This makes the code easier to read and the executable a bit smaller.
6827 Do not replace all calls to Fcons that happen to create lists,
6828 just calls that are intended to create lists. For example, when
6829 creating an alist that maps FOO to nil, use list1 (Fcons (FOO, Qnil))
6830 rather than list1 (list1 (FOO)) or Fcons (Fcons (FOO, Qnil), Qnil).
6831 Similarly for list2 through list5.
12465 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): 6832 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
12466 Remove duplicated buffer name initialization. 6833 * bytecode.c (exec_byte_code):
12467 6834 * callint.c (quotify_arg, Fcall_interactively):
124682012-05-02 Jim Meyering <jim@meyering.net> 6835 * callproc.c (Fcall_process, create_temp_file):
12469 6836 * charset.c (load_charset_map_from_file)
12470 * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373). 6837 (Fdefine_charset_internal, init_charset):
12471 6838 * coding.c (get_translation_table, detect_coding_system)
12472 * xfns.c (x_window): Use xstrdup (Bug#11375). 6839 (Fcheck_coding_systems_region)
12473 6840 (Fset_terminal_coding_system_internal)
124742012-05-02 Eli Zaretskii <eliz@gnu.org> 6841 (Fdefine_coding_system_internal, Fdefine_coding_system_alias):
12475 6842 * composite.c (update_compositions, Ffind_composition_internal):
12476 * xdisp.c (pos_visible_p): If already at a newline from the 6843 * dired.c (directory_files_internal, file_name_completion)
12477 display string before the 'while' loop, don't walk back the glyphs 6844 (Fsystem_users):
12478 from it3.glyph_row. Solves assertion violation when the display 6845 * dispnew.c (Fopen_termscript, bitch_at_user, init_display):
12479 string begins with a newline (egg.el). (Bug#11367) 6846 * doc.c (Fsnarf_documentation):
12480 6847 * editfns.c (Fmessage_box):
124812012-05-01 Stefan Monnier <monnier@iro.umontreal.ca> 6848 * emacs.c (main):
12482 6849 * eval.c (do_debug_on_call, signal_error, maybe_call_debugger)
12483 * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings): 6850 (Feval, eval_sub, Ffuncall, apply_lambda):
12484 Move to simple.el. 6851 * fileio.c (make_temp_name, Fcopy_file, Faccess_file)
12485 6852 (Fset_file_selinux_context, Fset_file_acl, Fset_file_modes)
124862012-05-01 Glenn Morris <rgm@gnu.org> 6853 (Fset_file_times, Finsert_file_contents)
12487 6854 (Fchoose_write_coding_system, Fwrite_region):
12488 * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in 6855 * fns.c (Flax_plist_put, Fyes_or_no_p, syms_of_fns):
12489 s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h), 6856 * font.c (font_registry_charsets, font_parse_fcname)
12490 and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10). 6857 (font_prepare_cache, font_update_drivers, Flist_fonts):
12491 All were removed before 23.1. 6858 * fontset.c (Fset_fontset_font, Ffontset_info, syms_of_fontset):
12492 6859 * frame.c (make_frame, Fmake_terminal_frame)
12493 * dispnew.c: Remove HAVE_LIBNCURSES test; 6860 (x_set_frame_parameters, x_report_frame_params)
12494 it is always true on relevant platforms. 6861 (x_default_parameter, Fx_parse_geometry):
12495 6862 * ftfont.c (syms_of_ftfont):
12496 * Makefile.in (LD_SWITCH_X_SITE_RPATH): 6863 * image.c (gif_load):
12497 Rename from LD_SWITCH_X_SITE_AUX_RPATH. 6864 * keyboard.c (command_loop_1):
12498 6865 * keymap.c (Fmake_keymap, Fmake_sparse_keymap, access_keymap_1)
12499 * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used. 6866 (Fcopy_keymap, append_key, Fcurrent_active_maps)
12500 6867 (Fminor_mode_key_binding, accessible_keymaps_1)
125012012-04-30 Andreas Schwab <schwab@linux-m68k.org> 6868 (Faccessible_keymaps, Fwhere_is_internal):
12502 6869 * lread.c (read_emacs_mule_char):
12503 * .gdbinit (xpr): Remove checks for no longer existing misc types. 6870 * menu.c (find_and_return_menu_selection):
12504 (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal): 6871 * minibuf.c (get_minibuffer):
12505 Remove. 6872 * nsfns.m (Fns_perform_service):
12506 6873 * nsfont.m (ns_script_to_charset):
125072012-04-28 Paul Eggert <eggert@cs.ucla.edu> 6874 * nsmenu.m (ns_popup_dialog):
12508 6875 * nsselect.m (ns_get_local_selection, ns_string_from_pasteboard)
12509 Do not avoid creating empty evaporating overlays (Bug#9642). 6876 (Fx_own_selection_internal):
12510 * buffer.c (Fmove_overlay): Revert the change of 2012-04-23. 6877 * nsterm.m (append2):
12511 That is, do not delete an evaporating overlay if it becomes 6878 * print.c (Fredirect_debugging_output)
12512 empty after its bounds are adjusted to fit within its buffer. 6879 (print_prune_string_charset):
12513 This fix caused other problems, and I'm reverting it until we get 6880 * process.c (Fdelete_process, Fprocess_contact)
12514 to the bottom of them. 6881 (Fformat_network_address, set_socket_option)
12515 6882 (read_and_dispose_of_process_output, write_queue_push)
125162012-04-27 Chong Yidong <cyd@gnu.org> 6883 (send_process, exec_sentinel):
12517 6884 * sound.c (Fplay_sound_internal):
12518 * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315). 6885 * textprop.c (validate_plist, add_properties)
12519 6886 (Fput_text_property, Fadd_face_text_property)
125202012-04-27 Eli Zaretskii <eliz@gnu.org> 6887 (copy_text_properties, text_property_list, syms_of_textprop):
12521 6888 * unexaix.c (report_error):
12522 * xdisp.c (pos_visible_p): If the window start position is beyond 6889 * unexcoff.c (report_error):
12523 ZV, start the display from buffer beginning. Prevents assertion 6890 * unexsol.c (unexec):
12524 violation in init_iterator when the minibuffer window is scrolled 6891 * xdisp.c (redisplay_tool_bar, store_mode_line_string)
12525 via the scroll bar. 6892 (Fformat_mode_line, syms_of_xdisp):
12526 6893 * xfaces.c (set_font_frame_param)
12527 * window.c (window_scroll_pixel_based): Likewise. 6894 (Finternal_lisp_face_attribute_values)
12528 6895 (Finternal_merge_in_global_face, syms_of_xfaces):
125292012-04-27 Chong Yidong <cyd@gnu.org> 6896 * xfns.c (x_default_scroll_bar_color_parameter)
12530 6897 (x_default_font_parameter, x_create_tip_frame):
12531 * keymap.c (where_is_internal): Doc fix (Bug#10872). 6898 * xfont.c (xfont_supported_scripts):
12532 6899 * xmenu.c (Fx_popup_dialog, xmenu_show, xdialog_show)
125332012-04-27 Glenn Morris <rgm@gnu.org> 6900 (menu_help_callback, xmenu_show):
12534 6901 * xml.c (make_dom):
12535 * fileio.c (Fcopy_file, Fset_file_selinux_context): 6902 * xterm.c (set_wm_state):
12536 Ignore ENOTSUP failures from setfilecon functions. (Bug#11245) 6903 Prefer list1 (FOO) to Fcons (FOO, Qnil) when creating a list,
12537 6904 and similarly for list2 through list5.
125382012-04-27 Eli Zaretskii <eliz@gnu.org> 6905
12539 69062013-07-15 Paul Eggert <eggert@cs.ucla.edu>
12540 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers): 6907
12541 Don't overrun array limits of glyph row's used[] array. (Bug#11288) 6908 * callproc.c (Fcall_process_region): Fix minor race and tune.
12542 6909 (create_temp_file): New function, with the temp-file-creation part
125432012-04-26 Eli Zaretskii <eliz@gnu.org> 6910 of the old Fcall_process_region. Use Fcopy_sequence to create the
12544 6911 temp file name, rather than alloca + build_string, for simplicity.
12545 * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded 6912 Don't bother to block input around the temp file creation;
12546 display element, check also the underlying string or buffer 6913 shouldn't be needed. Simplify use of mktemp.
12547 character. (Bug#11341) 6914 Use record_unwind_protect immediately after creating the temp file;
12548 6915 this closes an unlikely race where the temp file was not removed.
12549 * w32menu.c: Include w32heap.h. 6916 Use memcpy rather than an open-coded loop.
12550 (add_menu_item): If the call to AppendMenuW (via 6917 (Fcall_process_region): Use the new function. If the input is
12551 unicode_append_menu) fails, disable Unicode menus only if we are 6918 empty, redirect from /dev/null rather than from a newly created
12552 running on Windows 9X/Me. 6919 empty temp file; this avoids unnecessary file system traffic.
12553 6920
125542012-04-24 Andreas Schwab <schwab@linux-m68k.org> 69212013-07-14 Paul Eggert <eggert@cs.ucla.edu>
12555 6922
12556 * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS. 6923 * filelock.c (create_lock_file) [!HAVE_MKOSTEMP && !HAVE_MKSTEMP]:
12557 (xgetint): Add missing shift for LSB tags. 6924 Simplify by making this case like the other two. This is a bit
12558 6925 slower on obsolete hosts, but the extra complexity isn't worth it.
125592012-04-24 Martin Rudalics <rudalics@gmx.at> 6926
12560 6927 * callproc.c (child_setup, relocate_fd) [!DOS_NT]:
12561 * keyboard.c (read_char): Don't wipe echo area for select window 6928 * process.c (create_process) [!DOS_NT]:
12562 events: These might get delayed via `mouse-autoselect-window' 6929 Remove now-unnecessary calls to emacs_close.
12563 (Bug#11304). 6930
12564 69312013-07-13 Eli Zaretskii <eliz@gnu.org>
125652012-04-24 Juanma Barranquero <lekktu@gmail.com> 6932
12566 6933 * w32term.c (x_draw_hollow_cursor): Delete the brush object when
12567 * gnutls.c (init_gnutls_functions): Protect against (unlikely) 6934 returning early. (Bug#14850)
12568 manipulation of :loaded-from data. 6935
12569 6936 * coding.c (syms_of_coding): Set up inhibit-null-byte-detection
125702012-04-23 Juanma Barranquero <lekktu@gmail.com> 6937 and inhibit-iso-escape-detection attributes of 'undecided'.
12571 6938 (Bug#14822)
12572 * gnutls.c (init_gnutls_functions): The value of :loaded-from is 6939
12573 now a cons (bug#11311). 69402013-07-13 Paul Eggert <eggert@cs.ucla.edu>
12574 6941
125752012-04-23 Paul Eggert <eggert@cs.ucla.edu> 6942 * deps.mk (sysdep.o): Remove dependency on ../lib/ignore-value.h.
12576 6943 Reported by Herbert J. Skuhra in
12577 Do not create empty overlays with the evaporate property (Bug#9642). 6944 <http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00455.html>.
12578 * buffer.c (Fmove_overlay): Delete an evaporating overlay 6945
12579 if it becomes empty after its bounds are adjusted to fit within 6946 Don't lose top specpdl entry when memory is exhausted.
12580 its buffer. Without this fix, in a nonempty buffer (let ((o 6947 * eval.c (grow_specpdl): Increment specpdl top by 1 and check for
12581 (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1)) 6948 specpdl overflow here, to simplify callers; all callers changed.
12582 yields an empty overlay that has the evaporate property, which is 6949 Always reserve an unused entry at the stack top; this avoids
12583 not supposed to happen. 6950 losing the top entry's information when memory is exhausted.
12584 6951
12585 Fix minor GTK3 problems found by static checking. 69522013-07-12 Paul Eggert <eggert@cs.ucla.edu>
12586 * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed) 6953
12587 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed) 6954 Clean up errno reporting and fix some errno-reporting bugs.
12588 (struct _EmacsFixedClass, emacs_fixed_get_type): 6955 * callproc.c (Fcall_process):
12589 Move decls here from emacsgtkfixed.h, since they needn't be public. 6956 * fileio.c (Fcopy_file, Finsert_file_contents, Fwrite_region):
12590 (emacs_fixed_get_type): Now static. 6957 * process.c (create_process, Fmake_network_process):
12591 (emacs_fixed_class_init): Omit unused local. 6958 * unexaix.c (report_error):
12592 (emacs_fixed_child_type): Remove; unused. 6959 * unexcoff.c (report_error):
12593 * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed) 6960 Be more careful about reporting the errno of failed operations.
12594 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed) 6961 The code previously reported the wrong errno sometimes.
12595 (struct _EmacsFixedClass): Move to emacsgtkfixed.c. 6962 Also, prefer report_file_errno to setting errno + report_file_error.
12596 (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS) 6963 (Fcall_process): Look at openp return value rather than at path,
12597 (EMACS_FIXED_GET_CLASS): Remove; unused. 6964 as that's a bit faster and clearer when there's a numeric predicate.
12598 * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local. 6965 * fileio.c (report_file_errno): New function, with most of the
12599 6966 old contents of report_file_error.
12600 * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO. 6967 (report_file_error): Use it.
12601 Problem reported by Juanma Barranquero for Windows -Wunused-function. 6968 (Ffile_exists_p, Ffile_accessible_directory_p):
12602 6969 Set errno to 0 when it is junk.
126032012-04-22 Paul Eggert <eggert@cs.ucla.edu> 6970 * fileio.c (Faccess_file):
12604 6971 * image.c (x_create_bitmap_from_file):
12605 Modernize and clean up gmalloc.c to assume C89 (Bug#9119). 6972 Use faccessat rather than opening the file, to avoid the hassle of
12606 * gmalloc.c (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t) 6973 having a file descriptor open.
12607 (__malloc_size_t, __malloc_ptrdiff_t): 6974 * lisp.h (report_file_errno): New decl.
12608 Remove. All uses removed, replaced by the definiens if needed, 6975 * lread.c (Flocate_file_internal): File descriptor 0 is valid, too.
12609 since we can assume C89 or better now. 6976
12610 Include <stdint.h>, for PTRDIFF_MAX, uintptr_t. 6977 Minor EBADF fixes.
12611 (protect_malloc_state, align, get_contiguous_space) 6978 * process.c (create_process, wait_reading_process_output) [AIX]:
12612 (malloc_atfork_handler_prepare, malloc_atfork_handler_parent) 6979 Remove obsolete SIGHUP-related code, as Emacs no longer disables
12613 (malloc_atfork_handler_child, malloc_enable_thread) 6980 SIGHUP, so EBADF is no longer acceptable here (it wouldn't work in
12614 (malloc_initialize_1, __malloc_initialize, morecore_nolock) 6981 a multithreaded environment anyway).
12615 (_malloc_internal_nolock, _malloc_internal, malloc, _malloc) 6982 * sysdep.c (emacs_close): It's not dangerous to invoke emacs_close (-1).
12616 (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree) 6983
12617 (special_realloc, _realloc_internal_nolock, _realloc_internal) 69842013-07-12 Andreas Schwab <schwab@linux-m68k.org>
12618 (realloc, calloc, __default_morecore, memalign, valloc, checkhdr) 6985
12619 (freehook, mallochook, reallochook, mabort, mcheck, mprobe): 6986 * image.c (x_find_image_file): Don't close a remote file handle.
12620 Define using prototypes, not old style. 6987
12621 (align, _malloc_internal_nolock, _free_internal_nolock, memalign): 69882013-07-12 Paul Eggert <eggert@cs.ucla.edu>
12622 Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long. 6989
12623 (align): Don't assume that signed integer overflow wraps around. 6990 Fix races with threads and file descriptors.
12624 Omit unused local var. 6991 * callproc.c (Fcall_process_region):
12625 (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock) 6992 * dired.c (open_directory):
12626 (_free_internal_nolock, memalign, mallochook, reallochook): 6993 * emacs.c (main, Fdaemon_initialized):
12627 Omit no-longer-needed casts. 6994 * image.c (x_find_image_file):
12628 (valloc): Use getpagesize, not __getpagesize. 6995 * inotify.c (Finotify_rm_watch):
12629 (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit. 6996 * lread.c (Flocate_file_internal):
12630 (struct hdr): The 'magic' member is now size_t, not unsigned long. 6997 * process.c (Fnetwork_interface_list, Fnetwork_interface_info):
12631 6998 * term.c (term_mouse_moveto, init_tty):
12632 * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed. 6999 * termcap.c (tgetent):
12633 7000 * unexaix.c, unexcoff.c (report_error, report_error_1, adjust_lnnoptrs)
126342012-04-22 Michael Albinus <michael.albinus@gmx.de> 7001 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c (unexec):
12635 7002 * unexhp9k800.c, unexmacosx.c (unexec):
12636 Move functions from C to Lisp. Make non-blocking method calls 7003 * callproc.c (Fcall_process_region):
12637 the default. Implement further D-Bus standard interfaces. 7004 Use emacs_close, not close.
12638 7005 * sysdep.c (POSIX_CLOSE_RESTART, posix_close) [!POSIX_CLOSE_RESTART]:
12639 * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare. 7006 New macro and function, which emulates the POSIX_CLOSE_RESTART macro
12640 (QCdbus_request_name_allow_replacement) 7007 and posix_close function on current platforms (which all lack them).
12641 (QCdbus_request_name_replace_existing) 7008 (emacs_close): Use it. This should fix the races on GNU/Linux and
12642 (QCdbus_request_name_do_not_queue) 7009 on AIX and on future platforms that support POSIX_CLOSE_RESTART,
12643 (QCdbus_request_name_reply_primary_owner) 7010 and it should avoid closing random victim file descriptors on
12644 (QCdbus_request_name_reply_in_queue) 7011 other platforms.
12645 (QCdbus_request_name_reply_exists) 7012
12646 (QCdbus_request_name_reply_already_owner): Move to dbus.el. 70132013-07-11 Paul Eggert <eggert@cs.ucla.edu>
12647 (QCdbus_registered_serial, QCdbus_registered_method) 7014
12648 (QCdbus_registered_signal): New Lisp objects. 7015 * inotify.c (uninitialized): Remove. All uses replaced by -1.
12649 (XD_DEBUG_MESSAGE): Use sizeof. 7016 (Finotify_add_watch): Simplify, since -1 means uninitialized now.
12650 (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING) 7017 Touch up doc a bit.
12651 (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT) 7018
12652 (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH) 7019 * eval.c (backtrace_function, backtrace_args): Now EXTERNALLY_VISIBLE.
12653 (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros. 7020 This is for .gdbinit xbacktrace.
12654 (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL. 7021
12655 (xd_signature, xd_append_arg): Allow float for integer types. 7022 * sysdep.c, term.c, termcap.c, terminal.c: Integer-related minor fixes.
12656 (xd_get_connection_references): New function. 7023 * sysdep.c (emacs_get_tty): Return void, since nobody uses the value.
12657 (xd_get_connection_address): Rename from xd_initialize. 7024 (emacs_set_tty): Now static.
12658 Return cached address. 7025 * sysdep.c (emacs_set_tty, tabs_safe_p, emacs_close):
12659 (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS. 7026 * term.c (tty_capable_p, tty_default_color_capabilities)
12660 (xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp 7027 (get_tty_terminal, term_mouse_movement)
12661 level. 7028 (handle_one_term_event, init_tty, maybe_fatal):
12662 (Fdbus_init_bus): New optional arg PRIVATE. Cache address. 7029 * termcap.c (tgetst1, struct termcap_buffer, valid_filename_p)
12663 Return number of refcounts. 7030 (tgetent, scan_file, name_match, compare_contin):
12664 (Fdbus_get_unique_name): Make stronger parameter check. 7031 * terminal.c (get_terminal):
12665 (Fdbus_message_internal): New defun. 7032 Use bool for boolean.
12666 (Fdbus_call_method, Fdbus_call_method_asynchronously) 7033 * sysdep.c (init_system_name): Don't overflow stack on huge hostname.
12667 (Fdbus_method_return_internal, Fdbus_method_error_internal) 7034 Prefer char to unsigned char if either will do.
12668 (Fdbus_send_signal, Fdbus_register_service) 7035 * term.c (OUTPUT, turn_on_face): Omit unnecessary casts to int.
12669 (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el. 7036 (tty_write_glyphs): Prefer int to unsigned.
12670 (xd_read_message_1): Obey new structure of Vdbus_registered_objects. 7037 (produce_glyphless_glyph): Remove 2nd (unused) int arg.
12671 (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses. 7038 All callers changed.
12672 (Vdbus_compiled_version, Vdbus_runtime_version) 7039 * termcap.c (tprint, main) [TEST]: Remove non-working test.
12673 (Vdbus_message_type_invalid, Vdbus_message_type_method_call)
12674 (Vdbus_message_type_method_return, Vdbus_message_type_error)
12675 (Vdbus_message_type_signal): New defvars.
12676 (Vdbus_registered_buses, Vdbus_registered_objects_table):
12677 Adapt docstring.
12678
126792012-04-22 Paul Eggert <eggert@cs.ucla.edu>
12680
12681 Fix GC_MALLOC_CHECK debugging output on 64-bit hosts.
12682 * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]:
12683 Do not assume ptrdiff_t is the same width as 'int'.
12684
12685 * alloc.c: Handle unusual debugging option combinations.
12686 (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK,
12687 since the two debugging options are incompatible.
12688 (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS
12689 is defined.
12690 (mem_init, mem_insert, mem_insert_fixup):
12691 Define if GC_MARK_STACK || GC_MALLOC_CHECK.
12692 (NEED_MEM_INSERT): Remove; no longer needed.
12693
126942012-04-22 Leo Liu <sdl.web@gmail.com>
12695
12696 * sysdep.c (list_system_processes): Support Darwin (Bug#5725).
12697
126982012-04-22 Paul Eggert <eggert@cs.ucla.edu>
12699
12700 * sysdep.c [__FreeBSD__]: Minor cleanups.
12701 (list_system_processes, system_process_attributes) [__FreeBSD__]:
12702 Use Emacs indenting style more consistently. Avoid some casts.
12703 Use 'double' consistently rather than mixing 'float' and 'double'.
12704
127052012-04-21 Eduard Wiebe <usenet@pusto.de>
12706
12707 * sysdep.c (list_system_processes, system_process_attributes):
12708 Add implementation for FreeBSD (Bug#5243).
12709
127102012-04-21 Andreas Schwab <schwab@linux-m68k.org>
12711
12712 * lisp.mk (lisp): Update.
12713
127142012-04-20 Paul Eggert <eggert@cs.ucla.edu>
12715
12716 * keyboard.c (process_pending_signals): Define only if SYNC_INPUT.
12717 It is never used otherwise.
12718
127192012-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
12720
12721 * print.c (print_preprocess): Only check print_depth if print-circle
12722 is nil.
12723 (print_object): Check for cycles even when print-circle is nil and
12724 print-gensym is t, but only check print_depth if print-circle is nil.
12725
127262012-04-20 Chong Yidong <cyd@gnu.org>
12727
12728 * process.c (wait_reading_process_output): If EIO occurs on a pty,
12729 set the status to "failed" and ensure that sentinel is run.
12730
127312012-04-20 Glenn Morris <rgm@gnu.org>
12732
12733 * process.c (Fset_process_inherit_coding_system_flag)
12734 (Fset_process_query_on_exit_flag): Doc fix (mention return value).
12735 (Fmake_network_process, Fmake_serial_process): Doc fix.
12736
127372012-04-20 Eli Zaretskii <eliz@gnu.org>
12738
12739 * xdisp.c (string_buffer_position_lim): Limit starting position to
12740 BEGV.
12741 (set_cursor_from_row): If called for a mode-line or header-line
12742 row, return zero immediately.
12743 (try_cursor_movement): If inside continuation line, don't back up
12744 farther than the first row after the header line, if any.
12745 Don't consider the header-line row as "partially visible", even if
12746 MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261)
12747
127482012-04-20 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
12749
12750 * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n"
12751 (bug#11238).
12752
127532012-04-20 Teodor Zlatanov <tzz@lifelogs.com>
127542012-04-18 Paul Eggert <eggert@cs.ucla.edu>
12755
12756 configure: new option --enable-gcc-warnings (Bug#11207)
12757 * Makefile.in (C_WARNINGS_SWITCH): Remove.
12758 (WARN_CFLAGS, WERROR_CFLAGS): New macros.
12759 (ALL_CFLAGS): Use new macros rather than old.
12760 * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904.
12761 * regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore
12762 -Wunused-but-set-variable, -Wunused-function, -Wunused-macros,
12763 -Wunused-result, -Wunused-variable. This should go away once
12764 the Emacs and Gnulib regex code is merged.
12765 (xmalloc, xrealloc): Now static.
12766
127672012-04-17 Paul Eggert <eggert@cs.ucla.edu>
12768
12769 * dired.c (Fsystem_groups): Remove unused local.
12770
127712012-04-17 Glenn Morris <rgm@gnu.org>
12772
12773 * dired.c (Fsystem_users): Doc fix.
12774
127752012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
12776
12777 * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900)
12778 (syms_of_dired): Add them.
12779
127802012-04-16 Paul Eggert <eggert@cs.ucla.edu>
12781
12782 Fix minor alloc.c problems found by static checking.
12783 * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]:
12784 New extern decls, to avoid calling undeclared functions.
12785 (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT)
12786 && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined
12787 GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used.
12788 (NEED_MEM_INSERT): New macro.
12789 (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused.
12790 Remove one incorrect comment and fix another.
12791
12792 Fix minor ralloc.c problems found by static checking.
12793 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
12794 * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
12795 (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
12796 (r_alloc_sbrk): Now static.
12797
12798 Improve ralloc.c interface checking.
12799 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
12800 * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
12801 (r_alloc_free) [REL_ALLOC]: Move decls from here ...
12802 * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
12803 [REL_ALLOC]: ... to here, to check interface.
12804 * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
12805 Remove decls. This fixes an "It stinks!".
12806
12807 * alloc.c (which_symbols): Fix alignment issue / type clash.
12808
128092012-04-15 Andreas Schwab <schwab@linux-m68k.org>
12810 7040
12811 * lisp.h (struct Lisp_Symbol): Remove explicit padding. 70412013-07-10 Paul Eggert <eggert@cs.ucla.edu>
12812 (struct Lisp_Misc_Any): Likewise.
12813 (struct Lisp_Free): Likewise.
12814 * alloc.c (union aligned_Lisp_Symbol): Define.
12815 (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
12816 aligned_Lisp_Symbol instead of struct Lisp_Symbol.
12817 (union aligned_Lisp_Misc): Define.
12818 (MARKER_BLOCK_SIZE, struct marker_block): Use union
12819 aligned_Lisp_Misc instead of union Lisp_Misc.
12820 (Fmake_symbol, allocate_misc, gc_sweep): Adjust.
12821
128222012-04-14 Paul Eggert <eggert@cs.ucla.edu>
12823
12824 Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
12825 * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
12826 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
12827 * s/netbsd.h, s/sol2-6.h:
12828 Remove definition of GC_MARK_STACK, since the default now works.
12829 * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
12830 Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
12831 no longer the default.
12832 * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
12833
128342012-04-14 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
12835 7042
7043 Port to C89.
7044 * bytecode.c (BYTE_CODE_THREADED): Do not define if __STRICT_ANSI__.
7045 (B__dummy__): New dummy symbol, to pacify C89.
7046 * dbusbind.c (XD_DEBUG_MESSAGE): Omit debugging on C89 hosts, since
7047 they can't grok varargs macros.
7048 * dispnew.c (add_window_display_history)
7049 (add_frame_display_history):
7050 * print.c (print_object):
7051 * xdisp.c (debug_method_add):
7052 Use %p printf format only for void pointers.
7053 * emacs.c (usage_message): New constant, replacing ...
7054 (USAGE1, USAGE2, USAGE3): Remove; they were too long for C89.
7055 (main): Adjust to usage reorg.
7056 * fns.c (syms_of_fns):
7057 * profiler.c (syms_of_profiler):
7058 Don't use non-constant struct initializers.
7059 * gnutls.h (gnutls_initstage_t):
7060 * lisp.h (enum Lisp_Fwd_Type):
12836 * lread.c (lisp_file_lexically_bound_p): 7061 * lread.c (lisp_file_lexically_bound_p):
12837 Fix hang at ";-*-\n" (bug#11238). 7062 * xsettings.c (anonymous enum):
12838 7063 Remove trailing comma.
128392012-04-14 Eli Zaretskii <eliz@gnu.org> 7064 * xsettings.c (apply_xft_settings): Use %f, not %lf; %lf is a C99ism.
12840 7065 * lisp.h (ENUM_BF): Use unsigned if pedantic.
12841 * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row 7066 (DEFUN_FUNCTION_INIT): New macro, that falls back on a cast if pre-C99.
12842 "unchanged" if its end.pos is beyond ZV. (Bug#11199) 7067 (DEFUN): Use it.
12843 7068 * regex.c (const_re_char): New type, to pacify strict C89.
128442012-04-14 Jan Djärv <jan.h.d@swipnet.se> 7069 All uses of 'const re_char' replaced to use it.
12845 7070 * regex.h (_Restrict_): Rename from __restrict, to avoid clash
12846 * nsterm.m (constrainFrameRect): Always constrain when there is only 7071 with glibc when strict C89. This change is imported from gnulib.
12847 one screen (Bug#10962). 7072 All uses changed.
12848 7073 (_Restrict_arr_): Rename from __restrict_arr, similarly.
128492012-04-13 Ken Brown <kbrown@cornell.edu> 7074 * sysdep.c (time_from_jiffies) [!HAVE_LONG_LONG_INT]:
12850 7075 Omit GNU_LINUX implementation, since it requires long long.
12851 * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor. 7076 * xterm.c (x_draw_underwave):
12852 7077 Do not assume the traditional order of struct's members.
128532012-04-13 Reuben Thomas <rrt@sc3d.org> 7078 (x_term_init): Rewrite to avoid the need for non-constant structure
12854 7079 initializers.
12855 * indent.c (Fmove_to_column): Change interactive spec (Bug#739). 7080
12856 7081 Syntax cleanup, mostly replacing macros with functions.
128572012-04-11 Daniel Colascione <dancol@dancol.org> 7082 This removes the need for the syntax_temp hack.
12858 7083 * search.c: Include syntax.h after buffer.h, since syntax.h uses BVAR.
12859 * s/cygwin.h: The vfork the #define in cygwin.h was protecting 7084 * syntax.c (SYNTAX_INLINE): New macro.
12860 against is gone. It's better to use vfork now so that when Cygwin 7085 (SYNTAX_FLAGS_COMSTART_FIRST, SYNTAX_FLAGS_COMSTART_SECOND)
12861 gains a new, working vfork, we use it automatically (bug#10398). 7086 (SYNTAX_FLAGS_COMEND_FIRST, SYNTAX_FLAGS_COMEND_SECOND)
12862 7087 (SYNTAX_FLAGS_PREFIX, SYNTAX_FLAGS_COMMENT_STYLEB)
128632012-04-11 Stefan Monnier <monnier@iro.umontreal.ca> 7088 (SYNTAX_FLAGS_COMMENT_STYLEC, SYNTAX_FLAGS_COMMENT_STYLEC2)
12864 7089 (SYNTAX_FLAGS_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_STYLE)
12865 * window.c (save_window_save): Obey window-point-insertion-type. 7090 (SYNTAX_COMEND_FIRST): Now functions, not macros.
12866 7091 (ST_COMMENT_STYLE, ST_STRING_STYLE, INTERVALS_AT_ONCE):
128672012-04-11 Glenn Morris <rgm@gnu.org> 7092 Now constants, not macros.
12868 7093 (syntax_temp) [!__GNUC__]: Remove.
12869 * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM. 7094 (SYNTAX_PREFIX): Remove; all uses replaced by syntax_prefix_flag_p.
12870 7095 (syntax_prefix_flag_p): Move implementation of SYNTAX_PREFIX here.
128712012-04-11 Stefan Monnier <monnier@iro.umontreal.ca> 7096 (SET_RAW_SYNTAX_ENTRY, SET_RAW_SYNTAX_ENTRY_RANGE, SYNTAX_MATCH)
12872 7097 (SETUP_SYNTAX_TABLE, SETUP_SYNTAX_TABLE_FOR_OBJECT):
12873 * alloc.c (lisp_align_malloc): Remove unneeded prototype. 7098 Move here from syntax.h; now functions, not macros. Except for the
12874 7099 last function, these are static since only syntax.c uses them.
128752012-04-10 Jason S. Cornez <jcornez@ravenpack.com> (tiny change) 7100 (syntax_multibyte): Rename from SYNTAX_WITH_MULTIBYTE_CHECK.
12876 7101 All uses changed. Now a function, not a macro; use this fact
12877 * keyboard.c: Override inhibit-quit after the third C-g (bug#6585). 7102 to simplify the code.
12878 (force_quit_count): New var. 7103 (scan_lists, scan_sexps_forward): Remove workarounds for ancient
12879 (handle_interrupt): Use it. 7104 compiler bugs; no longer relevant.
12880 7105 * syntax.h: Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
128812012-04-10 Juanma Barranquero <lekktu@gmail.com> 7106 (SYNTAX_INLINE): New macro.
12882 7107 (struct gl_state_s, gl_state): Move earlier, so that it's in scope
12883 * w32.c (w32_delayed_load): Record the full path of the library 7108 for the new functions. Use bool for boolean member.
12884 being loaded (bug#10424). 7109 (SYNTAX_ENTRY, SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH)
12885 7110 (SYNTAX_TABLE_BYTE_TO_CHAR, UPDATE_SYNTAX_TABLE_FORWARD)
128862012-04-09 Glenn Morris <rgm@gnu.org> 7111 (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE)
12887 7112 (SETUP_BUFFER_SYNTAX_TABLE):
12888 * doc.c (Fsnarf_documentation): Check variables, functions are bound, 7113 Now extern inline functions, not macros.
12889 not just in the obarray, before snarfing them. (Bug#11036) 7114 (CURRENT_SYNTAX_TABLE, SYNTAX_ENTRY_INT):
12890 7115 Remove; all uses replaced by implementation.
12891 * Makefile.in ($(leimdir)/leim-list.el): 7116 (syntax_temp) [!__GNUC__]: Remove decl.
12892 Pass EMACS rather than BUILT_EMACS. 7117 (SETUP_SYNTAX_TABLE_FOR_OBJECT): New decl.
12893 7118
128942012-04-09 Teodor Zlatanov <tzz@lifelogs.com> 71192013-07-10 Jan Djärv <jan.h.d@swipnet.se>
12895 7120
12896 * process.c (make_process): 7121 * emacs.c (main): Fix syntax error.
12897 * process.h: Add integer `gnutls_handshakes_tried' member to 7122
12898 process struct. 71232013-07-10 Paul Eggert <eggert@cs.ucla.edu>
12899 7124
12900 * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit. 7125 Timestamp fixes for undo (Bug#14824).
12901 Add convenience `GNUTLS_LOG2i' macro. 7126 * atimer.c (schedule_atimer):
12902 7127 * fileio.c (Ffile_newer_than_file_p):
12903 * gnutls.c (gnutls_log_function2i): Convenience log function. 7128 Minor cleanup: use EMACS_TIME_LT so that we can remove EMACS_TIME_GT.
12904 (emacs_gnutls_read): Use new log functions, 7129 * buffer.c (buffer-undo-list): Document (t . 0) and (t . -1).
12905 `gnutls_handshakes_tried' process member, and 7130 * fileio.c (Fclear_visited_file_modtime): Move to lisp/files.el.
12906 `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake 7131 (syms_of_fileio): Remove Sclear_visited_file_name.
12907 attempts per process (connection). 7132 (Fvisited_file_modtime): Return -1, not (-1 ...), when the visited
12908 7133 file doesn't exist; this avoids an ambiguity with negative timestamps.
129092012-04-09 Chong Yidong <cyd@gnu.org> 7134 (Fset_visited_file_modtime): Accept -1 and 0 as time-list arg.
12910 7135 * systime.h (make_emacs_time, invalid_emacs_time):
12911 * eval.c (Fuser_variable_p, user_variable_p_eh) 7136 Don't assume struct timespec layout; POSIX doesn't guarantee it.
12912 (lisp_indirect_variable): Functions deleted. 7137 (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE): Remove.
12913 (Fdefvar): Caller changed. 7138 * undo.c (record_first_change): Push (visited-file-modtime) onto
12914 7139 undo list rather than reimplementing it by hand, incorrectly.
12915 * callint.c (Finteractive, Fcall_interactively): 7140
12916 * minibuf.c (Fread_variable): Callers changed. 71412013-07-09 Ken Brown <kbrown@cornell.edu>
12917 7142
129182012-04-09 Eli Zaretskii <eliz@gnu.org> 7143 * sheap.c (STATIC_HEAP_SIZE) [__x86_64__]: Increase to 18MB.
12919 7144
12920 * xdisp.c (set_cursor_from_row): If the display string appears in 71452013-07-09 Juanma Barranquero <lekktu@gmail.com>
12921 the buffer at position that is closer to point than the position 7146
12922 after the display string, display the cursor on the first glyph of 7147 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/sysdep.$(O)): Update.
12923 the display string. Fixes cursor display when a 'display' text 7148
12924 property immediately follows invisible text. (Bug#11094) 71492013-07-09 Paul Eggert <eggert@cs.ucla.edu>
12925 7150
129262012-04-09 Paul Eggert <eggert@cs.ucla.edu> 7151 Handle errno and exit status a bit more carefully.
12927 7152 * callproc.c (child_setup) [!DOS_NT]: Don't try to stuff an error
12928 composite.c: use 'double' consistently 7153 number into an exit status. Instead, use EXIT_CANCELED.
12929 * composite.c (get_composition_id): Use 'double' consistently 7154 (child_setup) [!MSDOS]: Avoid possible deadlock with vfork.
12930 instead of converting 'float' to 'double' and vice versa; this is 7155 * callproc.c (relocate_fd):
12931 easier to understand and avoids a GCC warning. 7156 * emacs.c (close_output_streams, main):
12932 7157 * process.c (create_process):
129332012-04-09 Glenn Morris <rgm@gnu.org> 7158 * sysdep.c (sys_subshell) [!DOS_NT || !WINDOWSNT]:
12934 7159 Use emacs_perror for simplicity.
12935 * Makefile.in: Generate leim-list with bootstrap-emacs, in 7160 * callproc.c (relocate_fd, main):
12936 preparation for dumping it with emacs. (Bug#4789) 7161 * sysdep.c (sys_subshell):
12937 (leimdir): New variable. 7162 Exit with EXIT_CANCELED etc., not 1, when exec setup fails.
12938 ($(leimdir)/leim-list.el): New rule. 7163 (shut_down_emacs): Use emacs_write, not write.
12939 (emacs$(EXEEXT)): Depend on leim-list.el. 7164 * emacs.c, sysdep.c: Don't include <ignore-value.h>.
12940 7165 * fileio.c (Fcopy_file, e_write):
12941 * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821) 7166 * nsterm.m (ns_select):
12942 (Fget_buffer_create): Don't call Qucs_set_table_for_input. 7167 * process.c (send_process):
12943 (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input. 7168 * sound.c (vox_write):
12944 7169 Use emacs_write_sig, not emacs_write.
129452012-04-08 Andreas Schwab <schwab@linux-m68k.org> 7170 * lisp.h (emacs_write_sig, emacs_perror): New decls.
12946 7171 * process.h (EXIT_CANCELED), EXIT_CANNOT_INVOKE, EXIT_ENOENT):
12947 * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure 7172 New constants.
12948 proper alignment. 7173 * sysdep.c (emacs_backtrace): Use emacs_write, not ignore_value
12949 7174 of write.
129502012-04-07 Juanma Barranquero <lekktu@gmail.com> 7175 (emacs_full_write): New function.
12951 7176 (emacs_write): Rewrite to use it.
12952 * xml.c (init_libxml2_functions) [WINDOWSNT]: 7177 (emacswrite_sig, emacs_perror): New functions.
12953 Remove unused local variable. 7178 * xrdb.c (fatal): Don't invoke perror, since errno might be garbage.
12954 7179
129552012-04-07 Paul Eggert <eggert@cs.ucla.edu> 71802013-07-08 Magnus Henoch <magnus.henoch@gmail.com> (tiny change)
12956 7181
12957 Avoid unnecessary pointer scanning in garbage collection (Bug#10780). 7182 * image.c (imagemagick_load_image): Do not use MagickExportImagePixels
12958 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro. 7183 on NS even if it is present. Pixmap on NS is a void*.
12959 (mark_memory): Mark Lisp_Objects only if pointers might hide in 7184
12960 objects, as mark_maybe_pointer will catch them otherwise. 71852013-07-07 Paul Eggert <eggert@cs.ucla.edu>
12961 (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed. 7186
12962 * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise. 7187 Port to Ubuntu 10 (Bug#14803).
12963 7188 Problem reported by T.V. Raman.
129642012-04-07 Paul Eggert <eggert@cs.ucla.edu> 7189 * process.c (close_on_exec, accept4, process_socket):
12965 7190 Define these if !HAVE_ACCEPT4, not if !SOCK_CLOEXEC.
12966 Fix typo that broke non-Windows builds. 7191
12967 * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'. 71922013-07-07 Eli Zaretskii <eliz@gnu.org>
12968 7193
129692012-04-07 Eli Zaretskii <eliz@gnu.org> 7194 * w32.c (sys_dup): Declare prototype.
12970 7195
12971 Support building on MS-Windows with libxml2. 7196 * filelock.c:
12972 7197 * emacs.c:
12973 * makefile.w32-in (OBJ2): Add xml.$(O). 7198 * callproc.c [WINDOWSNT]: Include sys/socket.h.
12974 (GLOBAL_SOURCES): Add xml.c. 7199
12975 ($(BLD)/xml.$(O)): New dependency list. 72002013-07-07 Paul Eggert <eggert@cs.ucla.edu>
12976 7201
12977 * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros. 7202 Make file descriptors close-on-exec when possible (Bug#14803).
12978 (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement) 7203 This simplifies Emacs a bit, since it no longer needs to worry
12979 (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion) 7204 about closing file descriptors by hand in some cases.
12980 [!WINDOWSNT]: New macros. 7205 It also fixes some unlikely races. Not all such races, as
12981 (init_libxml2_functions, libxml2_loaded_p): New functions. 7206 libraries often open files internally without setting
12982 (parse_region): Call fn_xmlCheckVersion instead of using the macro 7207 close-on-exec, but it's an improvement.
12983 LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros. 7208 * alloc.c (valid_pointer_p) [!WINDOWSNT]:
12984 (xml_cleanup_parser): New function, export for fn_xmlCleanupParser. 7209 * callproc.c (Fcall_process) [!MSDOS]:
12985 Calls xmlCleanupParser only if libxml2 was loaded (or statically 7210 * emacs.c (main) [!DOS_NT]:
12986 linked in). 7211 * nsterm.m (ns_term_init):
12987 (Flibxml_parse_html_region, Flibxml_parse_xml_region): 7212 * process.c (create_process):
12988 Call init_libxml2_functions before calling libxml2 functions. 7213 Use 'pipe2' with O_CLOEXEC instead of 'pipe'.
12989 (syms_of_xml) <Qlibxml2_dll>: DEFSYM it. 7214 * emacs.c (Fcall_process_region) [HAVE_MKOSTEMP]:
12990 7215 * filelock.c (create_lock_file) [HAVE_MKOSTEMP]:
12991 * emacs.c: Don't include libxml/parser.h. 7216 Prefer mkostemp with O_CLOEXEC to mkstemp.
12992 (shut_down_emacs): Call xml_cleanup_parser, instead of calling 7217 * callproc.c (relocate_fd) [!WINDOWSNT]:
12993 xmlCleanupParser directly. 7218 * emacs.c (main): Use F_DUPFD_CLOEXEC, not plain F_DUPFD.
12994 7219 No need to use fcntl (..., F_SETFD, FD_CLOEXEC), since we're
12995 * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser. 7220 now using pipe2.
12996 7221 * filelock.c (create_lock_file) [! HAVE_MKOSTEMP]:
129972012-04-07 Eli Zaretskii <eliz@gnu.org> 7222 Make the resulting file descriptor close-on-exec.
12998 7223 * lisp.h, lread.c, process.c (close_load_descs, close_process_descs):
12999 * indent.c (Fvertical_motion): If there is a display string at 7224 * lread.c (load_descriptor_list, load_descriptor_unwind):
13000 point, use it.vpos to compute how many lines to backtrack after 7225 Remove; no longer needed. All uses removed.
13001 move_it_to point. (Bug#11133) 7226 * process.c (SOCK_CLOEXEC): Define to 0 if not supplied by system.
13002 7227 (close_on_exec, accept4, process_socket) [!SOCK_CLOEXEC]:
130032012-04-06 Eli Zaretskii <eliz@gnu.org>
13004
13005 * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR):
13006 * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments
13007 about subtle differences between FETCH_CHAR* and STRING_CHAR*
13008 macros related to unification of CJK characters. For the details,
13009 see the discussion following the message here:
13010 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14.
13011
130122012-04-04 Chong Yidong <cyd@gnu.org>
13013
13014 * keyboard.c (Vdelayed_warnings_list): Doc fix.
13015
130162012-04-01 Eli Zaretskii <eliz@gnu.org>
13017
13018 * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA
13019 instead of alloca. (Bug#11138)
13020
130212012-04-01 Andreas Schwab <schwab@linux-m68k.org>
13022
13023 * w32menu.c (is_simple_dialog): Properly check lisp types.
13024 (Bug#11141)
13025
130262012-03-31 Eli Zaretskii <eliz@gnu.org>
13027
13028 * xdisp.c (move_it_by_lines): When DVPOS is positive, and the
13029 position we get to after a call to move_it_to fails the
13030 IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position
13031 only if we wind up in a string from display property. (Bug#11063)
13032
13033 * window.c (Fdelete_other_windows_internal): Invalidate the row
13034 and column information about mouse highlight, so that redisplay
13035 restores it after reallocating the glyph matrices. (Bug#7464)
13036
13037 * xdisp.c (set_cursor_from_row): If `cursor' property on a display
13038 string comes from a `display' text property, use the buffer
13039 position of that property as if we actually saw that position in
13040 the row's glyphs.
13041 (move_it_by_lines): Remove the assertion that
13042 "it->current_x == 0 && it->hpos == 0" which can be legitimately
13043 violated when there's a before-string at the beginning of a line.
13044 (Bug#11063)
13045
130462012-03-30 Eli Zaretskii <eliz@gnu.org>
13047
13048 * xdisp.c (append_space_for_newline): If the default face was
13049 remapped, use the remapped face for the appended newline.
13050 (extend_face_to_end_of_line): Use the remapped default face for
13051 extending the face to the end of the line.
13052 (display_line): Call extend_face_to_end_of_line when the default
13053 face was remapped. (Bug#11068)
13054
130552012-03-29 Eli Zaretskii <eliz@gnu.org>
13056
13057 * s/ms-w32.h: Discourage from defining HAVE_GETCWD.
13058
130592012-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
13060
13061 * keyboard.c (safe_run_hooks_error): Don't unquote strings.
13062
130632012-03-27 Glenn Morris <rgm@gnu.org>
13064
13065 * search.c (Fword_search_backward_lax, Fword_search_forward_lax):
13066 Doc fixes.
13067
130682012-03-26 Kenichi Handa <handa@m17n.org>
13069
13070 * dispextern.h (struct glyph): Fix previous change. Change the
13071 bit length of glyphless.ch to 25 (Bug#11082).
13072
130732012-03-26 Chong Yidong <cyd@gnu.org>
13074
13075 * keyboard.c (Vselection_inhibit_update_commands): New variable.
13076 (command_loop_1): Use it; inhibit selection update for
13077 handle-select-window too (Bug#8996).
13078
130792012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
13080
13081 * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code.
13082
130832012-03-25 Kenichi Handa <handa@m17n.org>
13084
13085 * dispextern.h (struct glyph): Change the bit length of
13086 glyphless.ch to 22 to make the member glyphless fit in 32 bits.
13087
130882012-03-24 Eli Zaretskii <eliz@gnu.org>
13089
13090 * s/ms-w32.h (tzname): Include time.h before redirecting to
13091 _tzname. Fixes the MSVC build. (Bug#9960)
13092
130932012-03-24 Andreas Schwab <schwab@linux-m68k.org>
13094
13095 * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6
13096 characters.
13097
13098 * xterm.c (XTread_socket): Only modify handling_signal if
13099 !SYNC_INPUT. (Bug#11080)
13100
131012012-03-23 Eli Zaretskii <eliz@gnu.org>
13102
13103 * bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of
13104 FETCH_MULTIBYTE_CHAR followed by CHAR_BYTES. Prevents crashes
13105 when fetching a multibyte character consumes more bytes than
13106 CHAR_BYTES returns, due to unification of CJK characters in
13107 string_char. (Bug#11073)
13108
131092012-03-23 Troels Nielsen <bn.troels@gmail.com> (tiny change)
13110
13111 * process.c (wait_reading_process_output): Handle pty disconnect
13112 by refraining from sending oneself a SIGCHLD (bug#10933).
13113
131142012-03-22 Chong Yidong <cyd@gnu.org>
13115
13116 * dispextern.h (struct it): New member string_from_prefix_prop_p.
13117
13118 * xdisp.c (push_prefix_prop): Rename from push_display_prop.
13119 Mark string as coming from a prefix property.
13120 (handle_face_prop): Use default face for prefix strings (Bug#4281).
13121 (pop_it, reseat_1): Save and restore string_from_prefix_prop_p.
13122
131232012-03-21 Chong Yidong <cyd@gnu.org>
13124
13125 * xfaces.c (Vface_remapping_alist): Doc fix.
13126
131272012-03-20 Eli Zaretskii <eliz@gnu.org>
13128
13129 * w32proc.c (Fw32_set_console_codepage)
13130 (Fw32_set_console_output_codepage, Fw32_get_codepage_charset):
13131 Doc fixes.
13132
131332012-03-20 Chong Yidong <cyd@gnu.org>
13134
13135 * dispnew.c (Fredisplay, Vredisplay_preemption_period): Update doc
13136 to reflect default non-nil value of redisplay-dont-pause.
13137
131382012-03-19 Kenichi Handa <handa@m17n.org>
13139
13140 * ftfont.c (ftfont_drive_otf): Mask bits of character code to make
13141 it fit in a valid range (Bug#11003).
13142
131432012-03-18 Eli Zaretskii <eliz@gnu.org>
13144
13145 * xdisp.c (cursor_row_p): Even if the glyph row ends in a string
13146 that is not from display property, accept the row as a "cursor
13147 row" if one of the string's character has a non-nil `cursor'
13148 property. Fixes cursor positioning when there are newlines in
13149 overlay strings, e.g. in icomplete.el. (Bug#11035)
13150
131512012-03-12 Paul Eggert <eggert@cs.ucla.edu>
13152
13153 * buffer.c (compare_overlays): Don't assume args differ (Bug#6830).
13154
131552012-03-12 Chong Yidong <cyd@gnu.org>
13156
13157 * eval.c (inhibit_lisp_code): Rename from
13158 inhibit_window_configuration_change_hook; move from window.c.
13159
13160 * xfns.c (unwind_create_frame_1, Fx_create_frame):
13161 * window.c (run_window_configuration_change_hook)
13162 (syms_of_window): Callers changed.
13163
131642012-03-11 Chong Yidong <cyd@gnu.org>
13165
13166 * keymap.c (Fkey_description): Doc fix (Bug#9700).
13167
13168 * editfns.c (Fconstrain_to_field): Doc fix (Bug#9452).
13169
131702012-03-10 Chong Yidong <cyd@gnu.org>
13171
13172 * frame.c (other_visible_frames): Don't assume the selected frame
13173 is visible (Bug#10955).
13174
131752012-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
13176
13177 * buffer.c (compare_overlays): Avoid qsort's instability (bug#6830).
13178
131792012-03-08 Jan Djärv <jan.h.d@swipnet.se>
13180
13181 * gtkutil.c (x_wm_set_size_hint): Use one row in call to
13182 FRAME_TEXT_LINES_TO_PIXEL_HEIGHT so base_height is greater than
13183 zero (Bug#10954).
13184
131852012-03-03 Glenn Morris <rgm@gnu.org>
13186
13187 * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes.
13188
131892012-03-02 Eli Zaretskii <eliz@gnu.org>
13190
13191 * xdisp.c (try_window_reusing_current_matrix): Don't move cursor
13192 position past the first glyph_row that ends at ZV. (Bug#10902)
13193 (redisplay_window, next_element_from_string): Fix typos in
13194 comments.
13195 (redisplay_window): Pass to move_it_vertically the margin in
13196 pixels, not in screen lines.
13197
131982012-03-02 Glenn Morris <rgm@gnu.org>
13199
13200 * buffer.c (buffer-list-update-hook): Doc fix.
13201
132022012-02-29 Eli Zaretskii <eliz@gnu.org>
13203
13204 * xdisp.c (get_overlay_strings_1): Under bidi redisplay, call
13205 push_it before setting up the iterator for the first overlay
13206 string, even if we have an empty string loaded.
13207 (next_overlay_string): If there's an empty string on the iterator
13208 stack, pop the stack. (Bug#10903)
13209
132102012-02-25 Paul Eggert <eggert@cs.ucla.edu>
13211
13212 Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780).
13213 Suggested by Stefan Monnier in
13214 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00692.html>.
13215 * alloc.c (widen_to_Lisp_Object): New static function.
13216 (mark_memory): Also mark Lisp_Objects by fetching pointer words
13217 and widening them to Lisp_Objects. This would work even if
13218 USE_LSB_TAG is defined and wide integers are used, which might
13219 happen in a future version of Emacs.
13220
132212012-02-25 Chong Yidong <cyd@gnu.org>
13222
13223 * fileio.c (Ffile_selinux_context, Fset_file_selinux_context):
13224 Doc fix.
13225
13226 * xselect.c (Fx_selection_exists_p): Doc fix.
13227 (x_clipboard_manager_save_all): Print an informative message
13228 before saving to clipboard manager.
13229
132302012-02-24 Chong Yidong <cyd@gnu.org>
13231
13232 * keyboard.c (process_special_events): Handle all X selection
13233 requests in kbd_buffer, not just the next one (Bug#8869).
13234
132352012-02-23 Chong Yidong <cyd@gnu.org>
13236
13237 * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook
13238 call when setting menu-bar-lines and tool-bar-lines parameters.
13239 (unwind_create_frame_1): New helper function.
13240
13241 * window.c (inhibit_window_configuration_change_hook): New var.
13242 (run_window_configuration_change_hook): Obey it.
13243 (syms_of_window): Initialize it.
13244
132452012-02-22 Chong Yidong <cyd@gnu.org>
13246
13247 * xterm.c (x_draw_image_relief): Add missing type check for
13248 Vtool_bar_button_margin (Bug#10743).
13249
132502012-02-21 Chong Yidong <cyd@gnu.org>
13251
13252 * fileio.c (Vfile_name_handler_alist): Doc fix.
13253
13254 * buffer.c (Fget_file_buffer): Protect against invalid file
13255 handler return value.
13256
132572012-02-20 Paul Eggert <eggert@cs.ucla.edu>
13258
13259 * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long'
13260 when computing $valmask.
13261
13262 Fix crash due to non-contiguous EMACS_INT (Bug#10780).
13263 * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it.
13264 (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0.
13265 It's useless in that case, and it can cause problems on hosts
13266 that allocate halves of EMACS_INT values separately.
13267 Reported by Dan Horák. Diagnosed by Andreas Schwab in
13268 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10780#30>.
13269 * mem-limits.h (EXCEEDS_LISP_PTR): Define to 0 on hosts where
13270 UINTPTR_MAX >> VALBITS == 0. This is required by the above change;
13271 it avoids undefined behavior on hosts where shifting right by more
13272 than the word width has undefined behavior.
13273
132742012-02-19 Chong Yidong <cyd@gnu.org>
13275
13276 * fileio.c (Ffile_name_directory, Ffile_name_nondirectory)
13277 (Funhandled_file_name_directory, Ffile_name_as_directory)
13278 (Fdirectory_file_name, Fexpand_file_name)
13279 (Fsubstitute_in_file_name): Protect against invalid file handler
13280 return values (Bug#10845).
13281
132822012-02-18 Eli Zaretskii <eliz@gnu.org>
13283
13284 * .gdbinit (pitx): Fix incorrect references to fields of the
13285 iterator stack.
13286
132872012-02-17 Chong Yidong <cyd@gnu.org>
13288
13289 * syntax.c (Fscan_lists): Doc fix (Bug#10833).
13290
132912012-02-15 Paul Eggert <eggert@cs.ucla.edu>
13292
13293 * image.c (MAX_IMAGE_SIZE): Increase from 6.0 to 10.0; see
13294 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00540.html>.
13295
132962012-02-15 Chong Yidong <cyd@gnu.org>
13297
13298 * eval.c (Fdefvar, Fdefconst): Doc fix; note that the variable is
13299 marked as special. Also, starting docstrings with * is obsolete.
13300
133012012-02-13 Andreas Schwab <schwab@linux-m68k.org>
13302
13303 * gnutls.c (emacs_gnutls_write): Fix last change.
13304
133052012-02-13 Lars Ingebrigtsen <larsi@gnus.org>
13306
13307 * gnutls.c (emacs_gnutls_write): Set errno appropriately for
13308 send_process.
13309
133102012-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
13311
13312 * keymap.c (Fsingle_key_description): Handle char ranges.
13313
133142012-02-12 Chong Yidong <cyd@gnu.org>
13315
13316 * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here,
13317 as that creates a dangerous corner case.
13318
13319 * window.c (Fdelete_window_internal): Invalidate the mouse
13320 highlight (Bug#9904).
13321
133222012-02-12 Glenn Morris <rgm@gnu.org>
13323
13324 * xselect.c (Fx_own_selection_internal)
13325 (Fx_get_selection_internal, Fx_disown_selection_internal)
13326 (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes.
13327 * nsselect.m (Fx_own_selection_internal)
13328 (Fx_disown_selection_internal, Fx_selection_exists_p)
13329 (Fx_selection_owner_p, Fx_get_selection_internal):
13330 Sync docs and argument specs with the xselect.c versions.
13331
133322012-02-11 Lars Ingebrigtsen <larsi@gnus.org>
13333
13334 * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails.
13335
133362012-02-11 Eli Zaretskii <eliz@gnu.org>
13337
13338 * w32select.c (Fx_selection_exists_p): Sync doc string and
13339 argument list with xselect.c. (Bug#10783)
13340
13341 * w16select.c (Fx_selection_exists_p): Sync doc string and
13342 argument list with xselect.c. (Bug#10783)
13343
133442012-02-10 Glenn Morris <rgm@gnu.org>
13345
13346 * fns.c (Fsecure_hash): Doc fix.
13347
133482012-02-09 Kenichi Handa <handa@m17n.org>
13349
13350 * coding.c (produce_chars): Fix updating of src_end (Bug#10701).
13351
133522012-02-07 Chong Yidong <cyd@gnu.org>
13353
13354 * buffer.c (Fbuffer_local_variables)
13355 (buffer_lisp_local_variables): Handle unbound vars correctly;
13356 don't let Qunbound leak into Lisp.
13357
133582012-02-07 Glenn Morris <rgm@gnu.org>
13359
13360 * image.c (Fimagemagick_types): Doc fix.
13361
13362 * image.c (imagemagick-render-type): Change it from a lisp object
13363 to an integer. Move the doc here from the lisp manual.
13364 Treat all values not equal to 0 the same.
13365
133662012-02-06 Chong Yidong <cyd@gnu.org>
13367
13368 * doc.c (store_function_docstring): Avoid applying docstring of
13369 alias to base function (Bug#2603).
13370
133712012-02-04 Andreas Schwab <schwab@linux-m68k.org>
13372
13373 * .gdbinit (pp1, pv1): Remove redundant defines.
13374 (pr): Use pp.
13375
133762012-02-04 Chong Yidong <cyd@gnu.org>
13377
13378 * nsterm.m: Declare a global (Bug#10694).
13379
133802012-02-04 Eli Zaretskii <eliz@gnu.org>
13381
13382 * w32.c (get_emacs_configuration_options):
13383 Include --enable-checking, if specified, in the return value.
13384
133852012-02-04 Martin Rudalics <rudalics@gmx.at>
13386
13387 * dispnew.c (change_frame_size_1): Calculate new_frame_total_cols
13388 after rounding frame sizes. (Bug#9723)
13389
133902012-02-04 Eli Zaretskii <eliz@gnu.org>
13391
13392 * keyboard.c (adjust_point_for_property): Don't position point
13393 before BEGV. (Bug#10696)
13394
133952012-02-03 Paul Eggert <eggert@cs.ucla.edu>
13396
13397 Handle overflow when computing char display width (Bug#9496).
13398 * character.c (char_width): Return EMACS_INT, not int.
13399 (char_width, c_string_width): Check for overflow when
13400 computing the width; this is possible now that individual
13401 characters can have unbounded width. Problem introduced
13402 by merge from Emacs 23 on 2012-01-19.
13403
134042012-02-02 Michael Albinus <michael.albinus@gmx.de>
13405
13406 * dbusbind.c (Fdbus_register_method): Mention the return value
13407 :ignore in the docstring.
13408
134092012-02-02 Glenn Morris <rgm@gnu.org>
13410
13411 * callproc.c (Fcall_process, Fcall_process_region): Doc fix.
13412
13413 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
13414 Unconditionally set to t. (Bug#10673)
13415 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
13416 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
13417 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Doc fix.
13418
134192012-02-02 Kenichi Handa <handa@m17n.org>
13420
13421 (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is
13422 0, do not call append_composite_glyph.
13423
134242012-02-02 Kenichi Handa <handa@m17n.org>
13425
13426 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to
13427 NULL (Bug#6988).
13428 (x_produce_glyphs): If the component of a composition is a null
13429 string, set it->pixel_width to 1 to avoid zero-width glyph.
13430
134312012-02-01 Eli Zaretskii <eliz@gnu.org>
13432
13433 * ralloc.c (resize_bloc, r_alloc_sbrk): Don't call memmove if its
13434 first 2 arguments are identical. This makes inserting large
13435 output from a subprocess an order of magnitude faster on
13436 MS-Windows, where all sbrk'ed memory is always contiguous.
13437
134382012-01-31 Glenn Morris <rgm@gnu.org>
13439
13440 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
13441 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
13442 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
13443
134442012-01-29 Glenn Morris <rgm@gnu.org>
13445
13446 * gnutls.c (syms_of_gnutls): More doc (from etc/NEWS).
13447
134482012-01-28 Samuel Thibault <sthibault@debian.org> (tiny change)
13449
13450 * s/gnu.h: Define POSIX_SIGNALS (Bug#10552).
13451
134522012-01-28 Chong Yidong <cyd@gnu.org>
13453
13454 * minibuf.c (syms_of_minibuf): Doc fix (Bug#10550).
13455
134562012-01-26 Chong Yidong <cyd@gnu.org>
13457
13458 * keyboard.c (Vecho_keystrokes): Document zero value (Bug#10503).
13459
13460 * search.c (Fsearch_forward, Fsearch_backward): Document negative
13461 repeat counts (Bug#10507).
13462
134632012-01-26 Glenn Morris <rgm@gnu.org>
13464
13465 * lread.c (syms_of_lread): Doc fix.
13466
134672012-01-25 HIROSHI OOTA <nil@mad.dog.cx> (tiny change)
13468
13469 * coding.c (encode_designation_at_bol): Change return value to
13470 EMACS_INT.
13471
134722012-01-25 Chong Yidong <cyd@gnu.org>
13473
13474 * eval.c (Fuser_variable_p): Doc fix; mention custom-variable-p.
13475
134762012-01-21 Chong Yidong <cyd@gnu.org>
13477
13478 * floatfns.c (Fcopysign): Make the second argument non-optional,
13479 since nil is not allowed anyway.
13480
134812012-01-21 Andreas Schwab <schwab@linux-m68k.org>
13482
13483 * process.c (read_process_output): Use p instead of XPROCESS (proc).
13484 (send_process): Likewise.
13485
134862012-01-19 Martin Rudalics <rudalics@gmx.at>
13487
13488 * window.c (save_window_save, Fcurrent_window_configuration)
13489 (Vwindow_persistent_parameters): Do not use Qstate.
13490 Rewrite doc-strings.
13491
134922012-01-19 Kenichi Handa <handa@m17n.org>
13493
13494 * character.c (char_width): New function.
13495 (Fchar_width, c_string_width, lisp_string_width):
13496 Use char_width (Bug#9496).
13497
134982012-01-16 Martin Rudalics <rudalics@gmx.at>
13499
13500 * window.c (Vwindow_persistent_parameters): New variable.
13501 (Fset_window_configuration, save_window_save): Handle persistent
13502 window parameters.
13503
135042012-01-14 Eli Zaretskii <eliz@gnu.org>
13505
13506 * w32fns.c (signal_user_input): Don't do a QUIT, to avoid
13507 thrashing the stack of the thread. (Bug#9087)
13508
135092012-01-12 Paul Eggert <eggert@cs.ucla.edu>
13510
13511 * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses.
13512
135132012-01-11 Eli Zaretskii <eliz@gnu.org>
13514
13515 * xdisp.c (rows_from_pos_range): Handle the case where the
13516 highlight ends on a newline. (Bug#10464)
13517 (mouse_face_from_buffer_pos): Fix off-by-one error in calculating
13518 he end column for display of highlight that ends on a newline
13519 before a R2L line.
13520
135212012-01-11 Glenn Morris <rgm@gnu.org>
13522
13523 * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs
13524 from load-path also when installation-directory is nil. (Bug#10208)
13525
135262012-01-10 Glenn Morris <rgm@gnu.org>
13527
13528 * emacs.c (syms_of_emacs) <installation-directory>: Doc fix.
13529
13530 * epaths.in (PATH_LOADSEARCH, PATH_EXEC, PATH_DATA, PATH_DOC):
13531 Update template values to be closer to their typical values these days.
13532
135332012-01-09 Eli Zaretskii <eliz@gnu.org>
13534
13535 * xdisp.c (rows_from_pos_range): Accept additional argument
13536 DISP_STRING, and accept any glyph in a row whose object is that
13537 string as eligible for mouse highlight. Fixes mouse highlight of
13538 display strings from overlays. (Bug#10464)
13539
135402012-01-07 Paul Eggert <eggert@cs.ucla.edu>
13541
13542 emacs: fix an auto-save permissions race condition (Bug#10400)
13543 * fileio.c (auto_saving_dir_umask): New static var.
13544 (Fmake_directory_internal): Use it.
13545 (do_auto_save_make_dir): Set it, instead of invoking chmod after
13546 creating the directory. The old code temporarily assigns
13547 too-generous permissions to the directory.
13548 (do_auto_save_eh): Clear it.
13549 (Fdo_auto_save): Catch all errors, not just file errors, so
13550 that the var is always cleared.
13551
135522012-01-07 Eli Zaretskii <eliz@gnu.org>
13553
13554 * search.c (scan_buffer): Pass character positions to
13555 know_region_cache, not byte positions. (Bug#6540)
13556
135572012-01-07 LynX <_LynX@bk.ru> (tiny change)
13558
13559 * w32.c (sys_rename): Report EXDEV when rename of a directory
13560 fails because the target is on another logical disk. (Bug#10284)
13561
135622012-01-07 David Benjamin <davidben@mit.edu> (tiny change)
13563
13564 * xterm.c (x_embed_request_focus): New function.
13565
13566 * xterm.h: Add prototype.
13567
13568 * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977).
13569
135702012-01-05 Glenn Morris <rgm@gnu.org>
13571
13572 * emacs.c (emacs_copyright): Update short copyright year to 2012.
13573
135742012-01-01 Eli Zaretskii <eliz@gnu.org>
13575
13576 * gnutls.c (init_gnutls_functions): Load gnutls_check_version.
13577 Load gnutls_transport_set_lowat only if GnuTLS version is below
13578 2.11.1.
13579 (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
13580 GnuTLS versions below 2.11.1.
13581
135822011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
13583
13584 * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning
13585 to the doc string advising against its use for altering the way
13586 windows are scrolled.
13587
135882011-12-28 Kenichi Handa <handa@m17n.org>
13589
13590 * coding.c (Fdefine_coding_system_internal): Make an utf-8 base
13591 coding-system ASCII compatible only when it does not produce BOM
13592 on encoding (Bug#10383).
13593
135942011-12-26 Jan Djärv <jan.h.d@swipnet.se>
13595
13596 * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus
13597 can scroll.
13598 (create_and_show_popup_menu): Always use menu_position_func for
13599 Gtk3 (Bug#10361).
13600
136012011-12-24 Andreas Schwab <schwab@linux-m68k.org>
13602
13603 * callint.c (Fcall_interactively): Don't truncate prompt string.
13604
136052011-12-23 Eli Zaretskii <eliz@gnu.org>
13606
13607 * xdisp.c (handle_invisible_prop): Handle correctly an invisible
13608 property that ends at ZV, so that the bidi iteration could be
13609 resumed from there (after widening). (Bug#10360)
13610
136112011-12-22 Jan Djärv <jan.h.d@swipnet.se>
13612
13613 * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc.
13614
136152011-12-21 Jan Djärv <jan.h.d@swipnet.se>
13616
13617 * nsterm.m (x_free_frame_resources):
13618 Release f->output_data.ns->miniimage.
13619 (ns_index_color): Fix indentation. Do not retain
13620 color_table->colors[i].
13621
13622 * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree
13623 before returning.
13624
13625 * nsfns.m (x_set_background_color): Assign return value from
13626 ns_index_color to face-background instead of NSColor*.
13627 (ns_implicitly_set_icon_type): Fix indentation.
13628 Change assignment in for loop to comparison.
13629
13630 * emacs.c (ns_pool): New variable.
13631 (main): Assign ns_pool.
13632 (Fkill_emacs): Call ns_release_autorelease_pool.
13633
13634 * nsfont.m (ns_spec_to_descriptor): Fix indentation,
13635 autorelease fdesc, release fdAttrs and tdict.
13636 (ns_get_covering_families): Release charset.
13637 (ns_findfonts): Release NSFontDescriptor created with new.
13638 (ns_uni_to_glyphs): Fix indentation.
13639 (setString): Release attrStr before assigning new value.
13640
136412011-12-18 Jan Djärv <jan.h.d@swipnet.se>
13642
13643 * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5
13644 and NS_IMPL_COCOA.
13645 (trackingNotification): Surround with ifdef NS_IMPL_COCOA.
13646 (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA.
13647
136482011-12-18 David Reitter <reitter@cmu.edu>
13649
13650 * nsterm.m (ns_term_init): Subscribe for notifications
13651 NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification
13652 to method trackingNotification in EmacsMenu.
13653
13654 * nsmenu.m (trackingMenu): New variable.
13655 (trackingNotification): New method (from Aquamacs).
13656 (menuNeedsUpdate): Expand comment and return if trackingMenu is 0,
13657 from Aquamacs (Bug#7030).
13658
136592011-12-18 Jan Djärv <jan.h.d@swipnet.se>
13660
13661 * nsselect.m (CUT_BUFFER_SUPPORT): Remove define.
13662 (symbol_to_nsstring): Fix indentation.
13663 (ns_symbol_to_pb): New function.
13664 (Fns_get_selection_internal): Rename from Fns_get_cut_buffer_internal.
13665 (Fns_rotate_cut_buffers_internal): Remove.
13666 (Fns_store_selection_internal): Rename from
13667 Fns_store_cut_buffer_internal.
13668 (ns_get_foreign_selection, Fx_own_selection_internal)
13669 (Fx_disown_selection_internal, Fx_selection_exists_p)
13670 (Fns_get_selection_internal, Fns_store_selection_internal):
13671 Use ns_symbol_to_pb and check if return value is nil.
13672 (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr
13673 Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal
13674 renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal
13675 renamed to Sns_store_selection_internal.
13676 (ns_handle_selection_request): Move code to Fx_own_selection_internal
13677 and remove this function.
13678 (ns_handle_selection_clear): Remove, never used.
13679 (Fx_own_selection_internal): Move code from ns_handle_selection_request
13680 here.
13681
136822011-12-17 Ken Brown <kbrown@cornell.edu>
13683
13684 * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or
13685 GID is unknown (Bug#10257).
13686
136872011-12-17 Paul Eggert <eggert@cs.ucla.edu>
13688
13689 * s/gnu-linux.h: Fix mark_memory typo (Bug#10286).
13690 (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory,
13691 which caused a build failure on GNU/Linux IA-64. This problem was
13692 introduced by my 2011-10-07 patch.
13693
136942011-12-15 Juri Linkov <juri@jurta.org>
13695
13696 * image.c (imagemagick_error): New function. (Bug#10112)
13697 (imagemagick_load_image): Comment out `MagickSetResolution' call.
13698 Use `imagemagick_error' where ImageMagick functions return
13699 `MagickFalse'.
13700 (Fimagemagick_types): Add `Fnreverse' to return the list in the
13701 proper order.
13702
137032011-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
13704
13705 * xftfont.c (xftfont_draw): Use the font metrics of s->font to
13706 fill background (Bug#8992).
13707
137082011-12-13 Martin Rudalics <rudalics@gmx.at>
13709
13710 * window.c (Vwindow_combination_resize)
13711 (Vwindow_combination_limit): Use t instead of non-nil in
13712 doc-strings.
13713 (Vrecenter_redisplay): Add first sentence of doc-string on
13714 separate line.
13715 (Frecenter): Fix doc-string typo.
13716
137172011-12-11 Kenichi Handa <handa@m17n.org>
13718
13719 * coding.c (Funencodable_char_position): Pay attention to the
13720 buffer text relocation (Bug#9389).
13721
137222011-12-10 Jan Djärv <jan.h.d@swipnet.se>
13723
13724 * xterm.c (x_term_init): Move call to gdk_window_add_filter before
13725 gtk_init (Bug#10100).
13726
137272011-12-10 Eli Zaretskii <eliz@gnu.org>
13728
13729 * xdisp.c (RECORD_MAX_MIN_POS): Use IT->cmp_it.charpos only if
13730 IT->string is nil. (Bug#10263)
13731
137322011-12-10 Jan Djärv <jan.h.d@swipnet.se>
13733
13734 * nsterm.h (x_free_frame_resources): Declare.
13735
13736 * nsfns.m (ns_get_defaults_value): New function (Bug#10103).
13737 (Fns_get_resource, x_get_string_resource): Call ns_get_defaults_value.
13738
13739 * nsterm.h (ns_get_defaults_value): Declare.
13740
13741 * nsterm.m (ns_default): Call ns_get_defaults_value.
13742
137432011-12-09 Eli Zaretskii <eliz@gnu.org>
13744
13745 * xdisp.c (try_scrolling): Don't set scroll_down_p if dy is zero.
13746 (Bug#10170)
13747
137482011-12-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
13749
13750 * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case
13751 that where the value of an _OBJC_* symbol points to is in the .bss
13752 section (Bug#10240).
13753
137542011-12-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
13755
13756 * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end)
13757 after the loop to call ccl_driver at least once (Bug#8619).
13758
137592011-12-08 Kenichi Handa <handa@m17n.org>
13760
13761 * ftfont.c (get_adstyle_property): Fix previous change
13762 (Bug#10233).
13763
137642011-12-07 Juanma Barranquero <lekktu@gmail.com>
13765
13766 * w32.c (init_environment): If no_site_lisp, remove site-lisp
13767 dirs from the default value of EMACSLOADPATH (bug#10208).
13768
137692011-12-07 Glenn Morris <rgm@gnu.org>
13770
13771 * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in
13772 installation and source directories as well. (Bug#10208)
13773
137742011-12-06 Chong Yidong <cyd@gnu.org>
13775
13776 * minibuf.c (Fread_from_minibuffer): Doc fix (Bug#10228).
13777
137782011-12-06 Glenn Morris <rgm@gnu.org>
13779
13780 * process.c (start_process_unwind): Treat any pid <= 0, except -2,
13781 as an error, not just -1. (Bug#10217)
13782
137832011-12-05 Chong Yidong <cyd@gnu.org>
13784
13785 * keyboard.c (process_special_events): New function.
13786 (swallow_events, Finput_pending_p): Use it (Bug#10195).
13787
137882011-12-05 Paul Eggert <eggert@cs.ucla.edu>
13789
13790 * coding.c (encode_designation_at_bol): Don't use uninitialized
13791 local variable (Bug#9318).
13792
137932011-12-05 Kenichi Handa <handa@m17n.org>
13794
13795 * ftfont.c (get_adstyle_property): If the font is not BDF nor PCF,
13796 return Qnil (Bug#8046, Bug#10193).
13797
137982011-12-05 Kenichi Handa <handa@m17n.org>
13799
13800 * coding.c (encode_designation_at_bol): New args charbuf_end and
13801 dst. Return the number of produced bytes. Callers changed.
13802 (coding_set_source): Return how many bytes coding->source was
13803 relocated.
13804 (coding_set_destination): Return how many bytes
13805 coding->destination was relocated.
13806 (CODING_DECODE_CHAR, CODING_ENCODE_CHAR, CODING_CHAR_CHARSET)
13807 (CODING_CHAR_CHARSET_P): Adjust for the avove changes.
13808
138092011-12-05 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
13810
13811 * coding.c (CODING_CHAR_CHARSET_P): New macro.
13812 (encode_coding_emacs_mule, encode_coding_iso_2022): Use the above
13813 macro (Bug#9318).
13814
138152011-12-05 Andreas Schwab <schwab@linux-m68k.org>
13816
13817 The following changes are to fix Bug#9318.
13818
13819 * coding.c (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET): New macros.
13820 (encode_coding_emacs_mule, ENCODE_ISO_CHARACTER)
13821 (encode_coding_iso_2022, encode_coding_sjis)
13822 (encode_coding_big5, encode_coding_charset): Use the above macros.
13823
138242011-12-05 Juanma Barranquero <lekktu@gmail.com>
13825
13826 * lisp.h (process_quit_flag): Fix external declaration.
13827
138282011-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
13829
13830 Don't macro-inline non-performance-critical code.
13831 * eval.c (process_quit_flag): New function.
13832 * lisp.h (QUIT): Use it.
13833
138342011-12-04 Jan Djärv <jan.h.d@swipnet.se>
13835
13836 * nsfns.m (get_geometry_from_preferences): New function.
13837 (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103).
13838
138392011-12-04 Andreas Schwab <schwab@linux-m68k.org>
13840
13841 * emacs.c (Qkill_emacs): Define.
13842 (syms_of_emacs): Initialize it.
13843 * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set
13844 Qquit_flag to `kill-emacs' instead.
13845 (quit_throw_to_read_char): Add parameter `from_signal'.
13846 All callers changed. Call Fkill_emacs if requested and safe.
13847 * lisp.h (QUIT): Call Fkill_emacs if requested.
13848
138492011-12-03 Jan Djärv <jan.h.d@swipnet.se>
13850
13851 * widget.c (update_wm_hints): Return if wmshell is null.
13852 (widget_update_wm_size_hints): New function.
13853
13854 * widget.h (widget_update_wm_size_hints): Declare.
13855
13856 * xterm.c (x_wm_set_size_hint): If USE_X_TOOLKIT, call
13857 widget_update_wm_size_hints (Bug#10104).
13858
138592011-12-03 Eli Zaretskii <eliz@gnu.org>
13860
13861 * xdisp.c (handle_invisible_prop): If the invisible text ends just
13862 before a newline, prepare the bidi iterator for consuming the
13863 newline, and keep the current paragraph direction. (Bug#10183)
13864 (redisplay_window): Don't let `margin' become negative. (Bug#10192)
13865
138662011-12-02 Juri Linkov <juri@jurta.org>
13867
13868 * search.c (Fword_search_regexp): New Lisp function created from
13869 `wordify'. Change type of arg `lax' from `int' to `Lisp_Object'.
13870 (Fword_search_backward, Fword_search_forward)
13871 (Fword_search_backward_lax, Fword_search_forward_lax):
13872 Use `Fword_search_regexp' instead of `wordify'. Doc fix.
13873 (syms_of_search): Define `Sword_search_regexp'. (Bug#10145)
13874
138752011-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
13876
13877 * fileio.c (Finsert_file_contents): Move after-change-function call
13878 to before the "handled:" label, since all "goto handled" appear in
13879 cases where the *-change-functions have already been properly called
13880 (bug#10117).
13881
138822011-12-01 Andreas Schwab <schwab@linux-m68k.org>
13883
13884 * keyboard.c (interrupt_signal): Don't call kill-emacs when
13885 waiting for input. (Bug#10169)
13886
138872011-11-30 Eli Zaretskii <eliz@gnu.org>
13888
13889 * dispnew.c (adjust_glyph_matrix): Remove the assertion that
13890 verifies glyph row's hash code--we have just reallocated the
13891 glyphs, so their contents can be complete garbage. (Bug#10164)
13892
138932011-11-30 Juanma Barranquero <lekktu@gmail.com>
13894
13895 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Add missing check.
13896
138972011-11-30 Eli Zaretskii <eliz@gnu.org>
13898
13899 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's
13900 attributes are tested _before_ calling verify_row_hash, to protect
13901 against GCC re-ordering of the tests. (Bug#10164)
13902
139032011-11-29 Jan Djärv <jan.h.d@swipnet.se>
13904
13905 * xterm.h (struct x_output): net_wm_state_hidden_seen is new.
13906
13907 * xterm.c (handle_one_xevent): Only set async_visible and friends
13908 if net_wm_state_hidden_seen is non-zero (Bug#10002)
13909 (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
13910 _NET_WM_STATE_HIDDEN is in NET_WM_STATE.
13911
139122011-11-28 Paul Eggert <eggert@cs.ucla.edu>
13913
13914 Remove GCPRO-related macros that exist only to avoid shadowing locals.
13915 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR)
13916 (GCPRO6_VAR, UNGCPRO_VAR): Remove. See
13917 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
13918 All uses changed to use GCPRO1 etc.
13919 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO):
13920 Revert to old implementation (i.e., before 2011-03-11).
13921
139222011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
13923
13924 * dispnew.c (scrolling_window): Truncate overlaps in copy destination
13925 of scroll runs so as to avoid assigning disabled bogus rows and
13926 unnecessary graphics copy operations.
13927
139282011-11-27 Eli Zaretskii <eliz@gnu.org>
13929
13930 * s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define.
13931 (snprintf) [_MSC_VER]: Redirect to _snprintf.
13932 (strtoll) [_MSC_VER]: Redirect to _strtoi64.
13933 (malloc, free, realloc, calloc): Redirect to e_* only when
13934 compiling Emacs.
13935
13936 * lisp.h (GCTYPEBITS): Move before first use.
13937 (ALIGN_GCTYPEBITS) [_MSC_VER]: Define.
13938 (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in
13939 this macro definition.
13940
13941 * s/ms-w32.h (tzname): Redirect to _tzname for all values of
13942 _MSC_VER.
13943
139442011-11-27 Jan Djärv <jan.h.d@swipnet.se>
13945
13946 * gtkutil.c (xg_create_frame_widgets):
13947 Call gtk_window_set_has_resize_grip (FALSE) if that function is
13948 present with Gtk+ 2.0.
13949
139502011-11-26 Paul Eggert <eggert@cs.ucla.edu>
13951
13952 * fileio.c (Finsert_file_contents): Undo previous change; see
13953 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
13954
139552011-11-26 Paul Eggert <eggert@cs.ucla.edu>
13956
13957 Rename locals to avoid shadowing.
13958 * fileio.c (Finsert_file_contents):
13959 Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing.
13960 * process.c (wait_reading_process_output):
13961 Rename inner 'proc' to 'p' to avoid shadowing.
13962 Indent for consistency with usual Emacs style.
13963
139642011-11-25 Eli Zaretskii <eliz@gnu.org>
13965
13966 * xdisp.c (redisplay_window): If cursor row is not fully visible
13967 after recentering, and scroll-conservatively is set to a large
13968 number, scroll window by a few more lines to make the cursor fully
13969 visible and out of scroll-margin. (Bug#10105)
13970 (start_display): Don't move to the next line if the display should
13971 start at a newline that is part of a display vector or an overlay
13972 string. (Bug#10119)
13973
139742011-11-24 Juri Linkov <juri@jurta.org>
13975
13976 * image.c (imagemagick_load_image): Move `MagickSetResolution' down
13977 after the `MagickPingImage' call. (Bug#10112)
13978
139792011-11-23 Chong Yidong <cyd@gnu.org>
13980
13981 * window.c (Fcoordinates_in_window_p): Accept only live windows.
13982
139832011-11-23 Martin Rudalics <rudalics@gmx.at>
13984
13985 * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before
13986 making another buffer current. (Bug#10114)
13987
139882011-11-23 Glenn Morris <rgm@gnu.org>
13989
13990 * font.c (font_find_for_lface) [HAVE_NS]: Ignore case. (Bug#2526)
13991
139922011-11-23 Chong Yidong <cyd@gnu.org>
13993
13994 * xdisp.c (compute_stop_pos): Check validity of end_charpos before
13995 using it (Bug#5984).
13996
139972011-11-22 Eli Zaretskii <eliz@gnu.org>
13998
13999 * dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode-
14000 and header-lines, as they don't have one computed for them.
14001 (Bug#10098)
14002
14003 * .gdbinit (prow): Make displayed values more self-explaining.
14004 Add row's hash code.
14005
140062011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
14007
14008 * process.c (wait_reading_process_output): Fix asynchrounous
14009 GnuTLS socket handling on some versions of the GnuTLS library.
14010 (wait_reading_process_output): Add comment and URL.
14011
140122011-11-21 Jan Djärv <jan.h.d@swipnet.se>
14013
14014 * xterm.c (x_clear_frame): Reinstate the XClearWindow call.
14015
140162011-11-21 Chong Yidong <cyd@gnu.org>
14017
14018 * window.c (Fnext_window, Fprevious_window): Doc fix.
14019
140202011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
14021
14022 * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup.
14023
140242011-11-20 Juanma Barranquero <lekktu@gmail.com>
14025
14026 * nsfont.m (syms_of_nsfont) <ns-reg-to-script>: Fix typo.
14027
140282011-11-20 Martin Rudalics <rudalics@gmx.at>
14029
14030 * window.c (Fset_window_combination_limit): Rename argument
14031 STATUS to LIMIT.
14032 (Vwindow_combination_limit): Remove "status" from doc-string.
14033
140342011-11-20 Andreas Schwab <schwab@linux-m68k.org>
14035
14036 * m/ibms390.h: Remove.
14037 * m/ibms390x.h: Don't include "ibms390.h".
14038
140392011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
14040
14041 * fileio.c (Finsert_file_contents): Add missing gcpro1 variable.
14042 Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
14043
140442011-11-20 Juanma Barranquero <lekktu@gmail.com>
14045
14046 * casetab.c (Fset_case_table):
14047 * charset.c (Fcharset_after): Fix typos.
14048
140492011-11-20 Paul Eggert <eggert@cs.ucla.edu>
14050
14051 Standardize on VIRT_ADDR_VARIES behavior (Bug#10042).
14052 Otherwise, valgrind does not work on some platforms.
14053 Problem reported by Andreas Schwab in
14054 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
14055 * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
14056 is set, removing the need for VIRT_ADDRESS_VARIES.
14057 (PURE_P): Use a more-efficient implementation that needs just one
14058 comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
14059 number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
14060 to 4 (xorl, subq, cmpq, setbe).
14061 * alloc.c (pure): Always extern now, since that's the
14062 VIRT_ADDR_VARIES behavior.
14063 (PURE_POINTER_P): Use a single comparison, not two, for
14064 consistency with the new puresize.h.
14065 * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
14066 * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
14067 Remove VIRT_ADDR_VARIES no longer needed.
14068
140692011-11-19 Eli Zaretskii <eliz@gnu.org>
14070
14071 * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
14072 (erase_phys_cursor, update_window_cursor, show_mouse_face)
14073 (cursor_in_mouse_face_p): If the cursor position is out of bounds,
14074 behave as if the cursor position were at the window margin.
14075
14076 * window.c (get_phys_cursor_glyph): If the window is hscrolled,
14077 and the cursor position is out of bounds, behave as if the cursor
14078 position were at the window margin. (Bug#10075)
14079
140802011-11-18 Chong Yidong <cyd@gnu.org>
14081
14082 * window.c (Fwindow_combination_limit): Make first argument
14083 non-optional, since it is meaningless for live windows like the
14084 selected window.
14085
140862011-11-18 Dmitry Antipov <dmantipov@yandex.ru>
14087
14088 * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs.
14089
140902011-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
14091
14092 * intervals.c: Fix grafting over the whole buffer (bug#10071).
14093 (graft_intervals_into_buffer): Simplify.
14094
140952011-11-18 Eli Zaretskii <eliz@gnu.org>
14096
14097 * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
14098 hash values of the two rows.
14099 (copy_row_except_pointers): Preserve the used[] arrays and the
14100 hash values of the two rows. (Bug#10035)
14101 (add_row_entry): Add xassert to verify that ROW's hash code is valid.
14102
14103 * xdisp.c (row_hash): New function, body extracted from
14104 compute_line_metrics.
14105 (compute_line_metrics): Call row_hash, instead of computing the
14106 hash code inline.
14107
14108 * dispnew.c (verify_row_hash): Call row_hash for computing the
14109 hash code of a row, instead of duplicating code from xdisp.c.
14110
14111 * dispextern.h (row_hash): Add prototype.
14112
141132011-11-18 Tassilo Horn <tassilo@member.fsf.org>
14114
14115 * frame.c (delete_frame): Don't delete the terminal when the last
14116 X frame is closed if emacs is built with GTK toolkit.
14117
141182011-11-17 Juanma Barranquero <lekktu@gmail.com>
14119
14120 * window.c (syms_of_window) <window-combination-resize>: Fix typo.
14121
141222011-11-17 Martin Rudalics <rudalics@gmx.at>
14123
14124 * window.c (Vwindow_splits): Rename to
14125 Vwindow_combination_resize. Suggested by Juri Linkov.
14126 (Fsplit_window_internal): Use Vwindow_combination_resize instead
14127 of Vwindow_splits.
14128
141292011-11-16 Juanma Barranquero <lekktu@gmail.com>
14130
14131 * nsfns.m (Fns_font_name):
14132 * window.c (syms_of_window) <window-combination-limit>: Fix typos.
14133
141342011-11-16 Martin Rudalics <rudalics@gmx.at>
14135
14136 * window.h (window): Rename slot "nest" to "combination_limit".
14137 * window.c (Fwindow_nest): Rename to Fwindow_combination_limit.
14138 (Fset_window_nest): Rename to Fset_window_combination_limit.
14139 (Vwindow_nest): Rename to Vwindow_combination_limit.
14140 (recombine_windows, make_parent_window, make_window)
14141 (Fsplit_window_internal, saved_window)
14142 (Fset_window_configuration, save_window_save): Rename all
14143 occurrences of window_nest to window_combination_limit.
14144
141452011-11-15 Juanma Barranquero <lekktu@gmail.com>
14146
14147 * image.c (imagemagick_load_image): Fix typo.
14148
141492011-11-14 Eli Zaretskii <eliz@gnu.org>
14150
14151 * xdisp.c (display_line): Move the call to
14152 highlight_trailing_whitespace before the call to
14153 compute_line_metrics, since the latter needs to see the final
14154 faces of all the glyphs to compute ROW's hash value.
14155 Fixes assertion violations in row_equal_p. (Bug#10035)
14156
141572011-11-14 Juanma Barranquero <lekktu@gmail.com>
14158
14159 * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0,
14160 just return (bug#10044).
14161
141622011-11-12 Eli Zaretskii <eliz@gnu.org>
14163
14164 * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
14165 with user-defined heap size. Bump the default size of the temacs
14166 heap to 27MB, to avoid memory warning when running temacs.
14167 ($(TEMACS)): Use HEAPSIZE instead of a hardcoded value.
14168
14169 * dispnew.c (scrolling_window): Fix incorrect indices in accessing
14170 current_matrix and desired_matrix. (Bug#9990)
14171 (verify_row_hash) [XASSERTS]: New function.
14172 (adjust_glyph_matrix, row_equal_p): Use it in xassert to verify
14173 that the hash value of glyph rows is correct.
14174
141752011-11-12 Martin Rudalics <rudalics@gmx.at>
14176
14177 * window.h (window): Remove splits slot.
14178 * window.c (Fwindow_splits, Fset_window_splits): Remove.
14179 (Fdelete_other_windows_internal, make_parent_window)
14180 (make_window, Fsplit_window_internal, Fdelete_window_internal)
14181 (Fset_window_configuration, save_window_save): Don't deal with
14182 split status of windows.
14183 (saved_window): Remove splits slot.
14184 (Vwindow_splits): Rewrite doc-string.
14185
141862011-11-11 Jan Djärv <jan.h.d@swipnet.se>
14187
14188 * xfns.c (unwind_create_frame):
14189 * nsfns.m (unwind_create_frame):
14190 * w32fns.c (unwind_create_frame): Use Fmemq to check if frame is in
14191 Vframe_list (Bug#9999).
14192
141932011-11-11 Dmitry Antipov <dmantipov@yandex.ru>
14194
14195 * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext.
14196
141972011-11-11 Kenichi Handa <handa@m17n.org>
14198
14199 * callproc.c (Fcall_process): Set the member dst_multibyte of
14200 process_coding.
14201
142022011-11-11 Johan Bockgård <bojohan@gnu.org>
14203
14204 * xdisp.c (fill_composite_glyph_string): Always set s->face, to
14205 avoid a crash (bug#9496).
14206
142072011-11-09 Chong Yidong <cyd@gnu.org>
14208
14209 * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
14210 (Fwindow_inside_absolute_pixel_edges): Only allow live windows.
14211
142122011-11-08 Paul Eggert <eggert@cs.ucla.edu>
14213
14214 * s/gnu.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS (Bug#9926).
14215
142162011-11-08 Paul Eggert <eggert@cs.ucla.edu>
14217
14218 Avoid some portability problems by eschewing 'extern inline' functions.
14219 The trivial performance wins aren't worth the portability hassles; see
14220 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>
14221 et seq.
14222 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
14223 (window_box_width, window_box_left, window_box_left_offset)
14224 (window_box_right, window_box_right_offset): Undo previous change,
14225 by removing the "extern"s.
14226 * intervals.c (adjust_intervals_for_insertion)
14227 (adjust_intervals_for_deletion): Undo previous change,
14228 making these static again.
14229 (offset_intervals, temp_set_point_both, temp_set_point)
14230 (copy_intervals_to_string): No longer inline.
14231 * xdisp.c (window_text_bottom_y, window_box_width)
14232 (window_box_height, window_box_left_offset)
14233 (window_box_right_offset, window_box_left, window_box_right)
14234 (window_box): No longer inline.
14235
142362011-11-08 Chong Yidong <cyd@gnu.org>
14237
14238 * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix.
14239 (Fwindow_body_height, Fwindow_body_width): Move from Lisp.
14240 Signal an error if not a live window.
14241 (Fwindow_total_width, Fwindow_total_height): Move from Lisp.
14242 (Fwindow_total_size, Fwindow_body_size): Move to Lisp.
14243
142442011-11-07 Juanma Barranquero <lekktu@gmail.com>
14245
14246 * lisp.h (syms_of_abbrev): Remove declaration.
14247 Reported by CHENG Gao <chenggao@royau.me>.
14248
142492011-11-07 Eli Zaretskii <eliz@gnu.org>
14250
14251 * w32.c (check_windows_init_file): Don't look for term/w32-win.el
14252 if Vpurify_flag is non-nil. Fixes a crash when running w32 build
14253 of temacs in GUI mode.
14254
142552011-11-07 Martin Rudalics <rudalics@gmx.at>
14256
14257 * window.h: Declare delete_all_child_windows instead of
14258 delete_all_subwindows.
14259 * window.c (Fwindow_nest, Fset_window_nest)
14260 (Fset_window_new_total, Fset_window_new_normal)
14261 (Fwindow_resize_apply): Don't use term subwindow in doc-strings.
14262 (delete_all_subwindows): Rename to delete_all_child_windows.
14263 (Fdelete_other_windows_internal, Fset_window_configuration):
14264 Call delete_all_child_windows instead of delete_all_subwindows.
14265 * frame.c (delete_frame): Call delete_all_child_windows instead
14266 of delete_all_subwindows.
14267
142682011-11-07 Paul Eggert <eggert@cs.ucla.edu>
14269
14270 * alloc.c (DEADP): New macro, for porting to GNU/Hurd (Bug#9926).
14271 This is also needed for porting to any host where GC_MARK_STACK is
14272 not GC_MAKE_GCPROS_NOOPS.
14273 (which_symbols): Use it.
14274
142752011-11-07 Kenichi Handa <handa@m17n.org>
14276
14277 * coding.c (coding_set_destination): Check coding->src_pos only
14278 when coding->src_object is a buffer (bug#9910).
14279
14280 * process.c (send_process): Set the member src_multibyte of coding
14281 to 0 (bug#9911) when sending a unibyte text.
14282
14283 * callproc.c (Fcall_process): Set the member src_multibyte of
14284 process_coding to 0 (bug#9912).
14285
142862011-11-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14287
14288 * xmenu.c (cleanup_widget_value_tree): New function.
14289 (xmenu_show, xdialog_show): Use it in record_unwind_protect instead of
14290 calling free_menubar_widget_value_tree directly (Bug#9830).
14291
142922011-11-06 Paul Eggert <eggert@cs.ucla.edu>
14293
14294 Fix some portability problems with 'inline'.
14295 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
14296 (window_box_width, window_box_left, window_box_left_offset)
14297 (window_box_right, window_box_right_offset): Declare extern.
14298 Otherwise, these inline functions do not conform to C99 and
14299 are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in
14300 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
14301 * intervals.c (adjust_intervals_for_insertion)
14302 (adjust_intervals_for_deletion): Now extern, because otherwise the
14303 extern inline functions 'offset_intervals' couldn't refer to it.
14304 (static_offset_intervals): Remove.
14305 (offset_intervals): Rewrite using the old contents of
14306 static_offset_intervals. The old version didn't conform to C99
14307 because an extern inline function contained a reference to an
14308 identifier with static linkage.
14309
143102011-11-06 Andreas Schwab <schwab@linux-m68k.org>
14311
14312 * keyboard.c (interrupt_signal): Don't call kill-emacs while in
14313 GC.
14314
143152011-11-06 Eli Zaretskii <eliz@gnu.org>
14316
14317 * xdisp.c (init_iterator, reseat_to_string): Don't set the
14318 iterator's bidi_p flag if Vpurify_flag is non-nil. (Bug#9963)
14319 (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
14320 return Qleft_to_right.
14321
143222011-11-06 Chong Yidong <cyd@gnu.org>
14323
14324 * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window)
14325 (Fminibuffer_window, Fwindow_buffer, Fwindow_splits)
14326 (Fset_window_splits, Fwindow_nest, Fset_window_nest)
14327 (Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size)
14328 (Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line)
14329 (Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars)
14330 (Fwindow_vscroll): Doc fix.
14331 (Fwindow_top_child, Fwindow_left_child): Eliminate a nil default
14332 argument, since it makes no sense to pass a live window and for
14333 consistency with window-child.
14334
143352011-11-05 Christoph Scholtes <cschol2112@googlemail.com>
14336
14337 * makefile.w32-in ($(TEMACS), (gl-stamp)): Use $(THISDIR) to
14338 support MSVC.
14339
143402011-11-05 Jason Rumney <jasonr@gnu.org>
14341
14342 * w32font.c (font_matches_spec): Filter out non-Japanese kana fonts.
14343 (add_font_entity_to_list): Filter out non-Japanese Shift-JIS
14344 fonts (Bug#6029).
14345 (add_font_entity_to_list): Fix logic errors in mixed boolean and
14346 bitwise arithmetic preventing use of unicode-sip and non-truetype
14347 opentype fonts.
14348
143492011-11-05 Eli Zaretskii <eliz@gnu.org>
14350
14351 * s/ms-w32.h (fstat, stat, utime): Move redirections to
14352 "emacs"-only part.
14353
14354 * w32fns.c (x_create_tip_frame, Fx_create_frame): Rearrange
14355 initialization code to keep similarity to xfns.c after changes
14356 from 2011-11-05.
14357
143582011-11-05 Jan Djärv <jan.h.d@swipnet.se>
14359
14360 * nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG.
14361 (unwind_create_frame): New function (Bug#9943).
14362 (Fx_create_frame): Restructure code to be more similar to the one in
14363 xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943).
14364 Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943).
14365 Move terminal->reference_count++ just before making the frame official
14366 (Bug#9943).
14367
14368 * nsterm.m (x_free_frame_resources): New function.
14369 (x_destroy_window): Move code to x_free_frame_resources.
14370
14371 * xfns.c (unwind_create_frame): Fix comment.
14372 (Fx_create_frame, x_create_tip_frame):
14373 Move terminal->reference_count++ just before making the frame
14374 official. Move initialization of image_cache_refcount and
14375 dpyinfo_refcount before calling init_frame_faces (Bug#9943).
14376
143772011-11-05 Eli Zaretskii <eliz@gnu.org>
14378
14379 Support MSVC build with newer versions of Visual Studio.
14380 * makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as
14381 Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on
14382 nt/gmake.defs.
14383
14384 * lisp.h (ENUM_BF): New macro, for enumerated types in bitfields,
14385 which are not supported by MSVC.
14386 (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay)
14387 (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in
14388 bitfields.
14389 (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated
14390 types in bitfields.
14391 (DEFUN) [_MSC_VER]: Define in a different way for MSVC.
14392
14393 * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
14394
143952011-11-05 Fabrice Popineau <fabrice.popineau@supelec.fr> (tiny change)
14396
14397 Support MSVC build with newer versions of Visual Studio.
14398 * w32.c: Don't include w32api.h for MSVC.
14399 (init_environment) [_MSC_VER]: Call sys_access, not _access.
14400
14401 * s/ms-w32.h <sigset_t, ssize_t> [_MSC_VER]: Typedefs for MSVC.
14402 [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h.
14403 (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins.
14404 (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the
14405 e_* cousins.
14406 (alloca) [_MSC_VER]: Define to _alloca.
14407
14408 * lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC.
14409
14410 * regex.c <re_char> [_MSC_VER]: A separate definition for MSVC.
14411
144122011-11-04 Eli Zaretskii <eliz@gnu.org>
14413
14414 * xdisp.c (note_mouse_highlight): If either of
14415 previous/next-single-property-change returns nil, treat that as
14416 the beginning or the end of the buffer. (Bug#9955)
14417
144182011-11-04 Jan Djärv <jan.h.d@swipnet.se>
14419
14420 * gtkutil.c (xg_make_tool_item): Add callbacks if one of wimage or
14421 label is not null (Bug#9951).
14422 (xg_tool_item_stale_p): Handle the fact that wimage and/or wlbl
14423 may be NULL.
14424
144252011-11-04 Eli Zaretskii <eliz@gnu.org>
14426
14427 * window.c (Fwindow_body_size): Mention in the doc string that the
14428 return value is in frame's canonical units. (Bug#9949)
14429
144302011-11-03 Eli Zaretskii <eliz@gnu.org>
14431
14432 * xdisp.c (note_mouse_highlight): Initialize `area'. (Bug#9947)
14433
14434 * w32fns.c (unwind_create_frame): If needed, free the glyph
14435 matrices of the partially constructed frame. (Bug#9943)
14436 * xfns.c (unwind_create_frame): Likewise.
14437
144382011-11-01 Eli Zaretskii <eliz@gnu.org>
14439
14440 * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment.
14441 Don't stop backward scan on the continuation glyph, even though
14442 its CHARPOS is positive.
14443 (mouse_face_from_buffer_pos, note_mouse_highlight):
14444 Rename cover_string to disp_string.
14445
144462011-11-01 Martin Rudalics <rudalics@gmx.at>
14447
14448 * window.c (temp_output_buffer_show): Don't use
14449 Vtemp_buffer_show_specifiers.
14450 (Vtemp_buffer_show_specifiers): Remove unused variable.
14451
144522011-10-30 Eli Zaretskii <eliz@gnu.org>
14453
14454 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented
14455 past the beginning of the current glyph matrix.
14456
144572011-10-30 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
14458
14459 * xterm.c: Include X11/Xproto.h if HAVE_GTK3.
14460 (x_error_handler): Ignore BadMatch for X_SetInputFocus for
14461 HAVE_GTK3 (Bug#9869).
14462
14463 * gtkutil.c (xg_win_to_widget, xg_event_is_for_menubar): Initialize
14464 type to GDK_NOTHING so valgrind does not complain (Bug#9901).
14465
14466 * xterm.h (x_display_info): Add Xatom_net_wm_state_hidden (Bug#9893).
14467
14468 * xterm.c: Declare x_handle_net_wm_state to return int.
14469 (handle_one_xevent): Check if we are iconified but don't have
14470 _NET_WM_STATE_HIDDEN. If do, treat as deiconify (Bug#9893).
14471 (get_current_wm_state): Return non-zero if not hidden,
14472 check for _NET_WM_STATE_HIDDEN (Bug#9893).
14473 (do_ewmh_fullscreen): Ignore return value from get_current_wm_state.
14474 (x_handle_net_wm_state): Return what get_current_wm_state returns.
14475 (x_term_init): Initialize dpyinfo->Xatom_net_wm_state_hidden.
14476
144772011-10-29 Paul Eggert <eggert@cs.ucla.edu>
14478
14479 * alloc.c (which_symbols): Declare EXTERNALLY_VISIBLE,
14480 so that this new function doesn't get optimized away by a
14481 whole-program optimizer. Make the 2nd arg EMACS_INT, not int.
14482
144832011-10-29 Andreas Schwab <schwab@linux-m68k.org>
14484
14485 * frame.h (MOUSE_HL_INFO): Remove excess parens.
14486
144872011-10-29 Eli Zaretskii <eliz@gnu.org>
14488
14489 Fix the `xbytecode' command.
14490 * .gdbinit (xprintbytestr): New command.
14491 (xwhichsymbols): Rename from `which'; all callers changed.
14492 (xbytecode): Print the byte-code string as well.
14493
144942011-10-29 Kim Storm <storm@cua.dk>
14495
14496 * alloc.c (which_symbols): New function.
14497
144982011-10-29 Andreas Schwab <schwab@linux-m68k.org>
14499
14500 * minibuf.c (read_minibuf_noninteractive): Allow reading empty
14501 line. (Bug#9903)
14502
145032011-10-29 Glenn Morris <rgm@gnu.org>
14504
14505 * process.c (wait_reading_process_output): Revert 2009-08-30 change.
14506 Not clear what it was for, and it causes various bugs. (Bug#9839)
14507
145082011-10-28 Eli Zaretskii <eliz@gnu.org>
14509
14510 * xdisp.c (note_mouse_highlight): Initialize `part', to avoid a
14511 possible random value that matches one of those tested as
14512 condition to clear the mouse face.
14513
145142011-10-28 Chong Yidong <cyd@gnu.org>
14515
14516 * xdisp.c (note_mouse_highlight): Fix use of uninitialized var.
14517
145182011-10-28 Dan Nicolaescu <dann@ics.uci.edu>
14519
14520 * window.c (make_window): Initialize phys_cursor_on_p.
14521
145222011-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
14523
14524 * lisp.h (struct Lisp_Symbol): Update comments.
14525
145262011-10-28 Juanma Barranquero <lekktu@gmail.com>
14527
14528 * w32font.c (w32_load_unicows_or_gdi32): Add missing return.
14529
145302011-10-28 Eli Zaretskii <eliz@gnu.org>
14531
14532 Fix Emacs on Windows 9X (bug#8562). Thanks to oslsachem
14533 <oslsachem@gmail.com> for helping to debug this.
14534
14535 * w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w)
14536 (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w)
14537 (g_b_init_get_glyph_outline_w): New static variables.
14538 (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc)
14539 (GetGlyphOutlineW_Proc): New typedefs.
14540 (w32_load_unicows_or_gdi32, get_outline_metrics_w)
14541 (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font):
14542 New functions. 7228 New functions.
14543 (w32font_open_internal, compute_metrics): 7229 (socket) [!SOCK_CLOEXEC]: Supply a substitute.
14544 Call get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w 7230 (Fmake_network_process, Fnetwork_interface_list):
14545 instead of calling the "wide" APIs directly. 7231 (Fnetwork_interface_info, server_accept_connection):
14546 7232 Make newly-created socket close-on-exec.
14547 * emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font. 7233 * sysdep.c (emacs_open, emacs_fopen):
7234 Make new-created descriptor close-on-exec.
7235 * w32.c (fcntl): Support F_DUPFD_CLOEXEC well enough for Emacs.
7236 * w32.c, w32.h (pipe2): Rename from 'pipe', with new flags arg.
14548 7237
14549 * w32.h (syms_of_w32font): Add prototype. 72382013-07-07 Jan Djärv <jan.h.d@swipnet.se>
14550 7239
145512011-10-27 Juanma Barranquero <lekktu@gmail.com> 7240 * nsterm.m (sendEvent:): Propagate keyboard events to modal windows
7241 for NS_IMPL_GNUSTEP.
14552 7242
14553 * window.c (Fframe_root_window, Fframe_first_window, Fwindow_end) 72432013-07-07 Paul Eggert <eggert@cs.ucla.edu>
14554 (Fframe_selected_window, Ftemp_output_buffer_show, Fnext_window)
14555 (Fdelete_window_internal, Fwindow_parameters): Fix typos in docstrings.
14556 (Fmove_to_window_line): Doc fix.
14557 7244
145582011-10-27 Chong Yidong <cyd@gnu.org> 7245 Fix openp errno handling.
7246 * callproc.c (Fcall_process): Preserve openp errno around close.
7247 * lread.c (openp): Set errno when returning -1, as some callers
7248 expect this.
14559 7249
14560 * process.c (make_process): Set gnutls_state to NULL. 72502013-07-06 Jan Djärv <jan.h.d@swipnet.se>
14561 7251
14562 * gnutls.c (emacs_gnutls_deinit): Deinit the gnutls_state if it is 7252 * nsterm.m (sendEvent:): Handle NSAPP_DATA2_RUNFILEDIALOG.
14563 non-NULL, regardless of GNUTLS_INITSTAGE.
14564 (Fgnutls_boot): Cleanups. Call emacs_gnutls_deinit if we signal
14565 an error. Set process slots as soon as we allocate them.
14566 7253
14567 * gnutls.h (GNUTLS_LOG, GNUTLS_LOG2): Fix macros. 7254 * nsterm.h (NSSavePanel): Update comment.
7255 (NSAPP_DATA2_RUNFILEDIALOG): Define.
7256 (ns_run_file_dialog): Declare.
14568 7257
145692011-10-27 Chong Yidong <cyd@gnu.org> 7258 * nsfns.m: Remove panelOK.
7259 (ns_fd_data): New.
7260 (ns_run_file_dialog): New function.
7261 (Fns_read_file_name): Fill in ns_fd_data, post an event and start the
7262 event loop, so file dialog is popped up by ns_run_file_dialog, called
7263 by sendEvent (Bug#14578).
7264 (EmacsSavePanel, EmacsOpenPanel): Remove ok and cancel methods.
14570 7265
14571 * gnutls.c (emacs_gnutls_deinit): New function. 72662013-07-06 Eli Zaretskii <eliz@gnu.org>
14572 Deallocate credentials structures as well as calling gnutls_deinit.
14573 (Fgnutls_deinit, Fgnutls_boot): Use it.
14574 7267
14575 * process.c (make_process): Initialize GnuTLS credentials to NULL. 7268 * xdisp.c (default_line_pixel_height): New function.
14576 (deactivate_process): Call emacs_gnutls_deinit. 7269 (pos_visible_p, move_it_vertically_backward, try_scrolling)
7270 (try_cursor_movement, redisplay_window, try_window)
7271 (try_window_id): Use it instead of FRAME_LINE_HEIGHT. (Bug#14771)
14577 7272
145782011-10-27 Juanma Barranquero <lekktu@gmail.com> 7273 * window.c (window_scroll_pixel_based):
7274 use default_line_pixel_height.
14579 7275
14580 * image.c (x_create_x_image_and_pixmap): 7276 * dispextern.h (default_line_pixel_height): Add prototype.
14581 * w32.c (sys_rename, w32_delayed_load):
14582 * w32font.c (fill_in_logfont):
14583 * w32reg.c (x_get_string_resource): Silence compiler warnings.
14584
145852011-10-26 Juanma Barranquero <lekktu@gmail.com>
14586
14587 * w32fns.c (w32_default_color_map): New function,
14588 extracted from Fw32_default_color_map.
14589 (Fw32_default_color_map, Fx_open_connection): Use it. (Bug#9785)
14590
145912011-10-25 Paul Eggert <eggert@cs.ucla.edu>
14592
14593 * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2).
14594
145952011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
14596
14597 * keyboard.c (test_undefined): New function (bug#9751).
14598 (read_key_sequence): Use it to detect when a key is bound to `undefined'.
14599
146002011-10-25 Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
14601
14602 * sysdep.c (init_sys_modes): Fix the check for the controlling
14603 terminal (Bug#6649).
14604
146052011-10-20 Eli Zaretskii <eliz@gnu.org>
14606
14607 * dispextern.h (struct bidi_it): New member next_en_type.
14608
14609 * bidi.c (bidi_line_init): Initialize the next_en_type member.
14610 (bidi_resolve_explicit_1): When next_en_pos is valid for the
14611 current character, check also for next_en_type being WEAK_EN.
14612 (bidi_resolve_weak): Don't enter the expensive loop if the current
14613 position is before next_en_pos. Record the bidi type of the first
14614 non-ET, non-BN character we find, in addition to its position.
14615 (bidi_level_of_next_char): Invalidate next_en_type when
14616 next_en_pos is over-stepped.
14617
146182011-10-20 Paul Eggert <eggert@cs.ucla.edu>
14619
14620 Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794)
14621 * editfns.c: Rewrite current-time-zone so that it invokes
14622 the equivalent of (format-time-string "%Z") to get the time zone name.
14623 This fixes a bug when the time zone name contains characters that
14624 need converting from the system time locale to Emacs internal format.
14625 This fixes a shortcoming that I introduced in my 1999-10-19 patch:
14626 that patch fixed format-time-string to do the conversion, but
14627 I forgot to fix current-time-zone.
14628 (format_time_string): New function, containing most of
14629 what Fformat_time_string used to contain.
14630 (Fformat_time_string): Rewrite in terms of format_time_string.
14631 This doesn't change this function's behavior.
14632 (current-time-zone): Rewrite to use format_time_string.
14633 This fixes the bug reported by Michael Schierl in
14634 <http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00334.html>.
14635 Jason Rumney's 2007-06-07 change worked around this bug, but
14636 didn't fix it.
14637 * systime.h (tzname, timezone): Remove no-longer-used declarations.
14638
146392011-10-19 Eli Zaretskii <eliz@gnu.org>
14640
14641 * xdisp.c (start_display): If the character at POS is displayed
14642 via a display vector, reset IT->current.dpvec_index to zero.
14643 (try_window_reusing_current_matrix): If a line ends in a display
14644 vector or the next line starts in a display vector, continue
14645 redrawing the window even though the character position of
14646 start_row was reached.
14647 (Bug#9771, part 2)
14648
146492011-10-18 Chong Yidong <cyd@gnu.org>
14650
14651 * xdisp.c (get_next_display_element): Handle U+2010 and U+2011
14652 with nobreak-char-display too.
14653
146542011-10-18 Eli Zaretskii <eliz@gnu.org>
14655
14656 Fix part 3 of bug#9771.
14657 * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1.
14658 (bidi_resolve_neutral): Don't enter the expensive loop looking for
14659 non-neutral characters if the current character is a paragraph
14660 separator (a.k.a. Newline). This avoids running the same
14661 expensive loop twice, once when we consume the preceding newline
14662 and the other time when the line actually needs to be displayed.
14663 Avoid the loop when we see neutrals on the base embedding level
14664 following a character whose directionality is the same as the
14665 paragraph's. This avoids running the expensive loop when a line
14666 ends in a long sequence of neutrals, like control characters.
14667 Add assertion against STRONG_AL type. Slightly rearrange code
14668 that determines the type of a neutral given the first non-neutral
14669 that follows it.
14670 (bidi_level_of_next_char): Set next_en_pos to zero when
14671 invalidating its info.
14672
146732011-10-17 Eli Zaretskii <eliz@gnu.org>
14674
14675 * xdisp.c (push_display_prop): Determine whether to record string
14676 or buffer position by IT->string, not by IT->method. Allow
14677 GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4)
14678 (move_it_vertically_backward): Don't look for character position
14679 immediately after the newline when in a continuation line.
14680 (Bug#9771, part 1)
14681
146822011-10-15 Martin Rudalics <rudalics@gmx.at>
14683
14684 * window.c (coordinates_in_window): Rewrite and delabelize
14685 vertical border check. (Bug#5357) (Bug#9618)
14686
146872011-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
14688
14689 * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained
14690 errors in XSetWindowBorder (bug#9310).
14691
146922011-10-13 Dmitry Antipov <dmantipov@yandex.ru>
14693
14694 * editfns.c (Fset_time_zone_rule): Replace free with xfree to
14695 avoid crash when xmalloc overrun checking is enabled.
14696
146972011-10-13 Eli Zaretskii <eliz@gnu.org>
14698
14699 * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
14700 itb.paragraph_dir to NEUTRAL_DIR. Fixes an occasional incorrect
14701 cursor motion with <left> and <right> arrow keys.
14702
14703 * bidi.c (bidi_init_it): Don't initialize paragraph_dir here, as
14704 some callers set that themselves.
14705
147062011-10-12 Eli Zaretskii <eliz@gnu.org>
14707
14708 * xdisp.c (find_row_edges): Handle the case where ROW comes from a
14709 display string and the previous row comes from the same string and
14710 is empty. (Bug#9739) (Bug#9738)
14711
147122011-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
14713
14714 * doc.c (get_doc_string): Encode file name (bug#9735).
14715
147162011-10-12 Eli Zaretskii <eliz@gnu.org>
14717
14718 * bidi.c (bidi_level_of_next_char):
14719 * xdisp.c (get_visually_first_element): Remove old incorrect
14720 comments regarding the Unicode Line Separator character.
14721
14722 * bidi.c (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR.
14723
147242011-10-12 Dmitry Antipov <dmantipov@yandex.ru>
14725
14726 * alloc.c (Fgc_status): Do not access beyond zombies array
14727 boundary if nzombies > MAX_ZOMBIES.
14728 * alloc.c (dump_zombies): Add missing format specifier.
14729
147302011-10-12 Paul Eggert <eggert@cs.ucla.edu>
14731
14732 * xdisp.c (set_cursor_from_row): Simplify conditionals,
14733 to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow.
14734
14735 * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff.
14736 Some packages use them to denote characters with modifiers.
14737
147382011-10-11 Andreas Schwab <schwab@linux-m68k.org>
14739 7277
14740 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR) 7278 * frame.c (x_set_line_spacing): Accept a float value for
14741 (GCPRO5_VAR, GCPRO6_VAR, UNGCPRO_VAR): Add whitespace to avoid 7279 line-spacing parameter, per the documentation.
14742 matching a pp-number. Rename parameter var to var1.
14743 7280
147442011-10-11 Stefan Monnier <monnier@iro.umontreal.ca> 7281 * data.c (Fmultibyte_string_p): Doc fix.
14745 7282
14746 * minibuf.c (Finternal_complete_buffer): Fix last change (bug#9709). 72832013-07-05 Paul Eggert <eggert@cs.ucla.edu>
14747 7284
147482011-10-08 Glenn Morris <rgm@gnu.org> 7285 Use emacs_open more consistently when opening files.
14749 7286 This handles EINTR more consistently now, and makes it easier
14750 * callint.c (Fcall_interactively): Give a more explicit error for the 7287 to introduce other uniform changes to file descriptor handling.
14751 'c' case with a non-character input. (Bug#8479) 7288 * sysstdio.h: New file.
14752 7289 * buffer.c (mmap_init):
147532011-10-08 Eli Zaretskii <eliz@gnu.org> 7290 * cygw32.c (chdir_to_default_directory):
14754 7291 * dispnew.c (Fopen_termscript):
14755 * xdisp.c (hscroll_window_tree): Support hscroll in right-to-left 7292 * emacs.c (Fdaemon_initialized):
14756 lines. 7293 * fileio.c (Fdo_auto_save):
14757 (set_cursor_from_row): Fix cursor positioning in mixed L2R+R2L 7294 * image.c (slurp_file, png_load_body, jpeg_load_body):
14758 lines that are hscrolled on the left. 7295 * keyboard.c (Fopen_dribble_file):
14759 7296 * lread.c (Fload):
14760 * dispnew.c (buffer_posn_from_coords): Account for a possible 7297 * print.c (Fredirect_debugging_output):
14761 presence of header-line. (Bug#4426) 7298 * sysdep.c (get_up_time, procfs_ttyname, procfs_get_total_memory):
14762 7299 * termcap.c (tgetent):
147632011-10-07 Stefan Monnier <monnier@iro.umontreal.ca> 7300 * unexaix.c, unexcoff.c (unexec, adjust_lnnoptrs):
14764 7301 * unexcw.c, unexelf.c, unexhp9k800.c, unexmacosx.c (unexec):
14765 * buffer.c (syms_of_buffer) <enable-multibyte-characters>: 7302 * w32term.c (w32_initialize) [CYGWIN]:
14766 Don't advertise functionality which we discourage or doesn't work. 7303 * xfaces.c (Fx_load_color_file):
14767 7304 Use emacs_open instead of plain open, and emacs_fopen instead of
147682011-10-07 Paul Eggert <eggert@cs.ucla.edu> 7305 plain fopen.
14769 7306 * dispnew.c, fileio.c, image.c, keyboard.c, lread.c, print.c, sysdep.c:
14770 * alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__ 7307 * xfaces.c: Include sysstdio.h rather than stdio.h, for emacs_fopen.
14771 or sizeof. __alignof__ gives the wrong answer on Fedora x86-64 7308 * callproc.c (default_output_mode): New constant.
14772 with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int; 7309 (Fcall_process): Use it to call emacs_open instead of plain creat.
14773 this makes Emacs dump core during garbage collection on rare 7310 * dispnew.c (Fopen_termscript): Fix minor race in opening termscript.
14774 occasions. sizeof is obviously inferior to offsetof here, so 7311 * sysdep.c (emacs_open): Add commentary and don't call file name "path".
14775 stick with offsetof. 7312 (emacs_fopen): New function.
14776 (GC_POINTER_ALIGNMENT): New macro. 7313 * unexaix.c, unexcoff.c, unexelf.c, unexhp9k800.c, unexmacosx.c:
14777 (mark_memory): Omit 3rd (offset) arg; caller changed. 7314 Include <lisp.h>, for emacs_open.
14778 Don't assume EMACS_INT alignment is the same as pointer alignment. 7315 * unexelf.c (fatal): Remove decl; not needed with <lisp.h> included.
14779 7316
147802011-10-03 Stefan Monnier <monnier@iro.umontreal.ca> 7317 Remove duplicate #include directives.
14781 7318 * alloc.c [GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES]:
14782 * keyboard.c (read_key_sequence_remapped): New var. 7319 * xfaces.c:
14783 (read_key_sequence): Compute remapping in the right buffer. 7320 Don't include stdio.h twice.
14784 (command_loop_1): Use read_key_sequence's remapping directly. 7321 * buffer.c [USE_MMAP_FOR_BUFFERS]:
14785 7322 Don't include sys/types.h or stdio.h twice.
147862011-10-02 Stefan Monnier <monnier@iro.umontreal.ca> 7323 * fileio.c [WINDOWSNT | MSDOS]: Don't include fcntl.h twice.
14787 7324 * lread.c: Don't include coding.h twice.
14788 * dired.c (file_name_completion): Don't expand file name. 7325 * nsfont.m: Don't include frame.h twice.
14789 (Ffile_name_completion, Ffile_name_all_completions): Expand file name 7326 * process.c [HAVE_RES_INIT]: Don't include <netinet/in.h> twice.
14790 before checking file name handler. 7327 * ralloc.c: Don't include <unistd.h> twice.
14791 7328 * xdisp.c: Don't include font.h twice.
14792 * minibuf.c (Finternal_complete_buffer): Only show internal buffers if 7329 * xterm.c: Don't include fontset.h twice.
14793 they've been requested explicitly (bug#9591). 7330 * xterm.h [USE_X_TOOLKIT]: Don't include X11/StringDefs.h twice.
14794 7331
147952011-10-01 Andreas Schwab <schwab@linux-m68k.org> 73322013-07-04 Paul Eggert <eggert@cs.ucla.edu>
14796 7333
14797 * keymap.c (Fsingle_key_description): Use make_specified_string 7334 Scale ImageMagick images more carefully.
14798 instead of build_string to build string from push_key_description. 7335 * image.c (scale_image_size) [HAVE_IMAGEMAGICK]: New function.
14799 (Bug#5193) 7336 (compute_image_size): Use it. Define only if HAVE_IMAGEMAGICK.
14800 7337 Be more careful about avoiding undefined behavior after
148012011-09-30 Paul Eggert <eggert@cs.ucla.edu> 7338 integer overflow and division by zero.
14802 7339
14803 * buffer.h (struct buffer): Use time_t, not int, for a time stamp. 73402013-07-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14804 This fixes a Y2038 bug on 64-bit hosts. 7341
14805 * buffer.c (reset_buffer): 7342 * w32fns.c (Qgeometry, Qworkarea, Qmm_size, Qframes): New variables.
14806 * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved) 7343 (syms_of_w32fns): DEFSYM them.
14807 (Fclear_buffer_auto_save_failure): 7344 (MONITORINFOF_PRIMARY, SM_XVIRTUALSCREEN, SM_YVIRTUALSCREEN)
14808 Use 0, not -1, to represent an unset failure time, since time_t 7345 (CCHDEVICENAME): Define macros if not defined.
14809 might not be signed. 7346 (struct MONITOR_INFO_EX): New struct.
14810 7347 (MonitorEnum_Proc, EnumDisplayMonitors_Proc): New prototypes.
14811 Remove dependency on glibc malloc internals. 7348 (enum_display_monitors_fn): New variable.
14812 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE): 7349 (globals_of_w32fns): Initialize it.
14813 Move back here from lisp.h, but with their new implementations. 7350 (Fx_display_pixel_width, Fx_display_pixel_height)
14814 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT) 7351 (Fx_display_mm_height, Fx_display_mm_width): Mention behavior on
14815 (XMALLOC_OVERRUN_SIZE_SIZE): Move these new lisp.h macros here. 7352 multi-monitor setups in docstrings.
14816 * charset.c (charset_table_init): New static var. 7353 (Fx_display_mm_height, Fx_display_mm_width): Approximate whole
14817 (syms_of_charset): Use it instead of xmalloc. This removes a 7354 screen size by primary monitor's millimeter per pixel.
14818 dependency on glibc malloc internals. See Eli Zaretskii's comment in 7355 (w32_monitor_enum, w32_display_monitor_attributes_list)
14819 <http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00815.html>. 7356 (w32_display_monitor_attributes_list_fallback)
14820 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE): 7357 (Fw32_display_monitor_attributes_list): New functions.
14821 Move back to alloc.c. 7358 (syms_of_w32fns): Defsubr Sw32_display_monitor_attributes_list.
14822 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT) 7359
14823 (XMALLOC_OVERRUN_SIZE_SIZE): Move to alloc.c. 7360 * w32term.c (SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN): Define macros
14824 7361 if not defined.
148252011-09-30 Jan Djärv <jan.h.d@swipnet.se> 7362 (x_display_pixel_height, x_display_pixel_width): Use GetSystemMetrics.
14826 7363
14827 * nsterm.m (windowDidResize): Call x_set_window_size only when 73642013-07-04 Michael Albinus <michael.albinus@gmx.de>
14828 ns_in_resize is true. Otherwise set pixelwidth/height and 7365
14829 call change_frame_size (Bug#9628). 7366 * fileio.c (Qfile_notify_error): New error symbol.
14830 7367
148312011-09-30 Paul Eggert <eggert@cs.ucla.edu> 7368 * gfilenotify.c (Fgfile_add_watch, Fgfile_rm_watch):
14832 7369 * inotify.c (inotify_callback, symbol_to_inotifymask)
14833 Port --enable-checking=all to Fedora 14 x86-64. 7370 (Finotify_add_watch, Finotify_rm_watch): Use it.
14834 * charset.c (syms_of_charset): Also account for glibc malloc's 7371 (inotifyevent_to_event): Exchange order of cookie and file name.
14835 internal overhead when calculating the initial malloc maximum. 7372 (Finotify_add_watch): Adapt docstring.
14836 7373
14837 Port --enable-checking=all to Fedora 14 x86. 7374 * lisp.h (Qfile_notify_error): Declare.
14838 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE): 7375
14839 Move to lisp.h. 73762013-07-04 Paul Eggert <eggert@cs.ucla.edu>
14840 (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc) 7377
14841 (overrun_check_realloc, overrun_check_free): 7378 Try again to fix FreeBSD bug re multithreaded memory alloc (Bug#14569).
14842 Use XMALLOC_OVERRUN_SIZE_SIZE, not sizeof (size_t). 7379 * emacs.c (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
14843 That way, xmalloc returns a properly-aligned pointer even if 7380 Do not clear _malloc_thread_enabled_p, undoing the previous change,
14844 XMALLOC_OVERRUN_CHECK is defined. The old debugging code happened 7381 which did not work (see <http://bugs.gnu.org/14569#307>).
14845 to align OK on typical 64-bit hosts, but not on Fedora 14 x86. 7382 (main): Do not invoke malloc_enable_thread if (! CANNOT_DUMP
14846 * charset.c (syms_of_charset): Take XMALLOC_OVERRUN_CHECK_OVERHEAD 7383 && (!noninteractive || initialized)). This attempts to thread
14847 into account when calculating the initial malloc maximum. 7384 the needle between the Scylla of FreeBSD and the Charybdis of Cygwin.
14848 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE): 7385
14849 Move here from alloc.c, so that charset.c can use it too. 73862013-07-04 Juanma Barranquero <lekktu@gmail.com>
14850 Properly align; the old code wasn't right for common 32-bit hosts 7387
14851 when configured with --enable-checking=all. 7388 * image.c (x_to_xcolors) [HAVE_NTGUI]: Remove unused var `hdc'.
14852 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT) 7389 (x_build_heuristic_mask) [HAVE_NTGUI]: Remove unused var `frame_dc'.
14853 (XMALLOC_OVERRUN_SIZE_SIZE): New macros. 7390
14854 73912013-07-04 Paul Eggert <eggert@cs.ucla.edu>
148552011-09-29 Eli Zaretskii <eliz@gnu.org> 7392
14856 7393 Try to fix FreeBSD bug re multithreaded memory allocation (Bug#14569).
14857 * sysdep.c (snprintf) [!EOVERFLOW]: If EOVERFLOW is not defined, 7394 * emacs.c (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
14858 use EDOM. 7395 Clear _malloc_thread_enabled_p at startup. Reported by Ashish SHUKLA in
14859 7396 <http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00088.html>.
148602011-09-28 Eli Zaretskii <eliz@gnu.org> 7397
73982013-07-02 Paul Eggert <eggert@cs.ucla.edu>
7399
7400 * sysdep.c (sys_siglist) [HAVE_DECL___SYS_SIGLIST]:
7401 Define to __sys_siglist.
7402
74032013-07-02 Eli Zaretskii <eliz@gnu.org>
7404
7405 * xdisp.c (IT_OVERFLOW_NEWLINE_INTO_FRINGE): Don't disallow
7406 word-wrap, so that overflow-newline-into-fringe would work in
7407 visual-line-mode. (Bug#2749)
7408 (move_it_in_display_line_to): When the last scanned display
7409 element fits exactly on the display line, and
7410 overflow-newline-into-fringe is non-nil, but wrap_it is valid,
7411 don't return MOVE_NEWLINE_OR_CR, but instead back up to the last
7412 wrap point and return MOVE_LINE_CONTINUED. Fixes problems with
7413 finding buffer position that corresponds to pixel coordinates,
7414 e.g. in buffer_posn_from_coords.
7415
74162013-07-02 Jan Djärv <jan.h.d@swipnet.se>
7417
7418 * process.c (handle_child_signal): Call catch_child_signal if
7419 NS_IMPL_GNUSTEP.
7420
74212013-07-02 Paul Eggert <eggert@cs.ucla.edu>
7422
7423 Don't convert function pointers to void * and back.
7424 It isn't portable C, and it's easy enough to avoid.
7425 * alloc.c: Verify SAVE_FUNCPOINTER bits, too.
7426 (make_save_value): Add support for SAVE_FUNCPOINTER.
7427 * keymap.c (map_keymap_char_table_item, map_keymap_internal):
7428 * print.c (print_object):
7429 Distinguish function from object pointers.
7430 * lisp.h (SAVE_FUNCPOINTER): New constant.
7431 (SAVE_SLOT_BITS): Adjust to it.
7432 (SAVE_TYPE_FUNCPTR_PTR_OBJ): New constant, replacing
7433 SAVE_TYPE_PTR_PTR_OBJ. Change the only use.
7434 (voidfuncptr): New typedef.
7435 (struct Lisp_Save_Value): New member data[0].funcpointer.
7436 (XSAVE_FUNCPOINTER): New function.
14861 7437
14862 * xdisp.c (compute_display_string_end): If there's no display 7438 Simplify buildobj processing.
14863 string at CHARPOS, return -1. 7439 * Makefile.in (buildobj.h): Make it a sequence of strings each
7440 followed by comma, rather than a single string. Put it into a
7441 .tmp file in case there's an error while generating it.
7442 (gl-stamp): Use .tmp for temp files.
7443 (mostlyclean): Clean .tmp files.
7444 * doc.c (buildobj): Move to just the routine that needs it.
7445 It's now an array of strings, so processing is simpler.
14864 7446
14865 * bidi.c (bidi_fetch_char): When compute_display_string_end 74472013-07-01 Paul Eggert <eggert@cs.ucla.edu>
14866 returns a negative value, treat the character as a normal
14867 character not covered by a display string. (Bug#9624)
14868 7448
148692011-09-28 Juanma Barranquero <lekktu@gmail.com> 7449 Fix bug re noninteractive multithreaded memory allocation (Bug#14569).
7450 * emacs.c (malloc_enable_thread): Hoist extern decl to top level.
7451 (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
7452 Invoke malloc_enable_thread even when not interactive.
7453 Problem reported by Ken Brown in <http://bugs.gnu.org/14569#275>.
7454 * process.c (init_process_emacs) [CYGWIN]: Tickle glib even
7455 in this case, since the underlying bug has now been fixed.
14870 7456
14871 * lread.c (Fread_from_string): Fix typo in docstring. 74572013-07-01 Juanma Barranquero <lekktu@gmail.com>
14872 7458
148732011-09-27 Eli Zaretskii <eliz@gnu.org> 7459 * emacs.c (Fkill_emacs): Expand Vauto_save_list_file_name before
7460 unlinking it (bug#14691).
14874 7461
14875 * xdisp.c (handle_invisible_prop): If invisible text ends on a 74622013-06-30 Michal Nazarewicz <mina86@mina86.com>
14876 newline, reseat the iterator instead of bidi-iterating there one
14877 character at a time. (Bug#9610)
14878 (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past
14879 TO_CHARPOS if the bidi iterator is at base embedding level.
14880 7463
148812011-09-27 Andreas Schwab <schwab@linux-m68k.org> 7464 * buffer.c (FKill_buffer): Run `kill-buffer-query-functions'
7465 before checking whether buffer is modified. This lets
7466 `kill-buffer-query-functions' cancel killing of the buffer or save
7467 its content before `kill-buffer' asks user the "Buffer %s
7468 modified; kill anyway?" question.
14882 7469
14883 * lread.c (readevalloop): Use correct code for NBSP. 74702013-06-30 Jan Djärv <jan.h.d@swipnet.se>
14884 (read1): Likewise. (Bug#9608)
14885 7471
148862011-09-25 Michael Albinus <michael.albinus@gmx.de> 7472 * nsfns.m (handlePanelKeys): Don't process Command+Function keys.
7473 Let the super performKeyEquivalent deal with them (Bug#14747).
14887 7474
14888 * dbusbind.c (Fdbus_register_signal): When service is not 74752013-06-30 Paul Eggert <eggert@cs.ucla.edu>
14889 registered, use nil in Vdbus_registered_objects_table. (Bug#9581)
14890 7476
148912011-09-25 Glenn Morris <rgm@gnu.org> 7477 * widget.c (resize_cb): Remove unused local.
14892 7478
14893 * buffer.c (truncate-lines): Doc fix. 7479 Do not use GTK 3 if it exists but cannot be compiled.
7480 * xmenu.c (x_menu_wait_for_event) [!USE_GTK]:
7481 * xterm.c (x_error_handler) [!USE_GTK]:
7482 Do not use GTK 3.
14894 7483
148952011-09-24 Chong Yidong <cyd@stupidchicken.com> 7484 * intervals.c (get_local_map): Actually clip POSITION (Bug#14753).
14896 7485
14897 * window.c (Fwindow_prev_buffers, Fset_window_prev_buffers) 74862013-06-30 Eli Zaretskii <eliz@gnu.org>
14898 (Fset_window_next_buffers): Doc fix.
14899 7487
149002011-09-24 Glenn Morris <rgm@gnu.org> 7488 * intervals.c (get_local_map): Instead of aborting, clip POSITION
7489 to the valid range of values. (Bug#14753)
14901 7490
14902 * minibuf.c (read_minibuf): Disable line truncation. (Bug#5715) 7491 * xdisp.c (Fmove_point_visually): Invalidate the cursor position
7492 when moving point by using the current glyph matrix. This avoids
7493 the need to force redisplay when this function is called in a
7494 loop.
14903 7495
149042011-09-24 Paul Eggert <eggert@cs.ucla.edu> 74962013-06-29 Paul Eggert <eggert@cs.ucla.edu>
14905 7497
14906 Fix minor problems found by static checking. 7498 Fix minor problems found by static checking.
14907 * xdisp.c (string_from_display_spec): Don't assume vecsize fits in int. 7499 * coding.c (encode_inhibit_flag, inhibit_flag): New functions.
14908 * indent.c (Fvertical_motion): Fix == vs = typo. 7500 Redo the latter's body to sidestep GCC parenthesization warnings.
14909 7501 (setup_coding_system, detect_coding, detect_coding_system): Use them.
149102011-09-24 Eli Zaretskii <eliz@gnu.org> 7502 * coding.c (detect_coding, detect_coding_system):
14911 7503 * coding.h (struct undecided_spec):
14912 * dispnew.c (syms_of_display) <redisplay-dont-pause>: 7504 Use bool for boolean.
14913 Default value is now t. Doc fix. 7505 * image.c (QCmax_width, QCmax_height): Now static.
14914 7506 * xdisp.c (Fmove_point_visually): Remove unused local.
14915 * indent.c (Fvertical_motion): Compute and apply the overshoot 7507
14916 logic when moving up, not only when moving down. Fix the 75082013-06-29 Eli Zaretskii <eliz@gnu.org>
14917 confusing name and values of the it_overshoot_expected variable; 7509
14918 logic changes accordingly. (Bug#9254) (Bug#9549) 7510 * xdisp.c (Fmove_point_visually): New function.
14919 7511
14920 * xdisp.c (pos_visible_p): Produce correct pixel coordinates when 75122013-06-28 Kenichi Handa <handa@gnu.org>
14921 CHARPOS is covered by a display string which includes newlines. 7513
14922 (move_it_vertically_backward): Avoid inflooping when START_CHARPOS 7514 * coding.h (define_coding_undecided_arg_index): New enum.
14923 is covered by a display string with embedded newlines. 7515 (coding_attr_index): New members
14924 7516 coding_attr_undecided_inhibit_null_byte_detection,
149252011-09-24 Michael Albinus <michael.albinus@gmx.de> 7517 coding_attr_undecided_inhibit_iso_escape_detection,
14926 7518 coding_attr_undecided_prefer_utf_8.
14927 * dbusbind.c (Fdbus_register_signal): Add match rule to 7519 (undecided_spec): New struct.
14928 Vdbus_registered_objects_table. (Bug#9581) 7520 (struct coding_system): New member `undecided' of the member
14929 (Fdbus_register_method, Vdbus_registered_objects_table): 7521 `spec'.
14930 Fix docstring. 7522
14931 7523 * coding.c (setup_coding_system): Handle CODING->spec.undecided.
149322011-09-24 Jim Meyering <meyering@redhat.com> 7524 (detect_coding): Likewise.
14933 7525 (detect_coding_system): Likewise.
14934 do not ignore write error for any output size 7526 (Fdefine_coding_system_internal): New coding system properties
14935 The previous change was incomplete. 7527 :inhibit-null-byte-detection, :inhibit-iso-escape-detection, and
14936 While it makes emacs --batch detect the vast majority of stdout 7528 :prefer-utf-8.
14937 write failures, errors were still ignored whenever the output size is 7529 (syms_of_coding): Adjust for coding_arg_undecided_max.
14938 k * (BUFSIZ+1) - 4. E.g., on a system with BUFSIZ of 4096, 7530
14939 $ emacs --batch --eval '(print (format "%4093d" 0))' > /dev/full \ 75312013-06-28 Paul Eggert <eggert@cs.ucla.edu>
14940 && echo FAIL: ignored write error 7532
14941 FAIL: ignored write error 7533 * image.c (x_from_xcolors): Remove unused local.
14942 $ emacs --batch --eval '(print (format "%20481d" 0))' > /dev/full \ 7534
14943 && echo FAIL: ignored write error 75352013-06-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14944 FAIL: ignored write error 7536
14945 * emacs.c (Fkill_emacs): Also test ferror. (Bug#9574) 7537 Defer image data transfer between X client and server until actual
14946 7538 display happens.
149472011-09-23 Andreas Schwab <schwab@linux-m68k.org> 7539
14948 7540 * dispextern.h (struct image) [HAVE_X_WINDOWS]: New members `ximg'
14949 * emacs.c (Fkill_emacs): In noninteractive mode exit 7541 and `mask_img'.
14950 non-successfully if a write error occurred on stdout. (Bug#9574) 7542
14951 7543 * image.c (Destroy_Image): Remove.
149522011-09-21 Eli Zaretskii <eliz@gnu.org> 7544 (x_clear_image_1): New arg `flags' instead of 3 bools `pixmap_p',
14953 7545 `mask_p', and `colors_p'. All uses changed.
14954 * xdisp.c (pop_it): Allow it->object that is a cons cell to pass 7546 (x_clear_image_1) [HAVE_X_WINDOWS]: Destroy `ximg' and `mask_img'.
14955 the xassert test. 7547 (CLEAR_IMAGE_PIXMAP, CLEAR_IMAGE_MASK, CLEAR_IMAGE_COLORS):
14956 7548 New macros for `flags' arg to x_clear_image_1.
14957 * dispextern.h (struct it): Update the comment documenting what 7549 (postprocess_image, xpm_load_image, x_build_heuristic_mask)
14958 can it->OBJECT be. 7550 (png_load_body): Use x_clear_image_1 instead of Free_Pixmap.
14959 7551 (ZPixmap, XGetImage) [HAVE_NS]: Remove.
149602011-09-20 Eli Zaretskii <eliz@gnu.org> 7552 (image_get_x_image_or_dc, image_unget_x_image_or_dc)
14961 7553 (image_get_x_image, image_unget_x_image): New functions or macros.
14962 * xdisp.c (set_cursor_from_row): If the row ends in a newline from 7554 (image_background, image_background_transparent, x_to_xcolors)
14963 a display string, extend search for cursor position to end of row. 7555 (x_build_heuristic_mask): Use image_get_x_image_or_dc instead of
14964 (find_row_edges): If the row ends in a newline from a display 7556 XGetImage or CreateCompatibleDC. Use image_unget_x_image_or_dc
14965 string, increment its MATRIX_ROW_END_CHARPOS by one. (Bug#9549) 7557 instead of Destroy_Image.
14966 Handle the case of a display string with multiple newlines. 7558 (image_create_x_image_and_pixmap, image_put_x_image): New functions.
14967 (Fcurrent_bidi_paragraph_direction): Fix search for previous 7559 (xpm_load_image, x_from_xcolors, x_build_heuristic_mask, pbm_load)
14968 non-empty line. Fixes confusing cursor motion with arrow keys at 7560 (png_load_body, jpeg_load_body, tiff_load, gif_load)
14969 the beginning of a line that starts with whitespace. 7561 (imagemagick_load_image, svg_load_image): Use them instead of
14970 7562 x_create_x_image_and_pixmap, and x_put_x_image followed by
149712011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org> 7563 x_destroy_x_image, respectively.
14972 7564 (xpm_load) [HAVE_XPM && !HAVE_NTGUI]: Use XpmReadFileToImage and
14973 * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is 7565 XpmCreateImageFromBuffer instead of XpmReadFileToPixmap and
14974 (bug#9493). 7566 XpmCreatePixmapFromBuffer. Create pixmaps. Fill background and
14975 7567 background_transparent fields.
149762011-09-18 Chong Yidong <cyd@stupidchicken.com> 7568 (image_sync_to_pixmaps) [HAVE_X_WINDOWS]: New function.
14977 7569 (prepare_image_for_display, x_disable_image) [HAVE_X_WINDOWS]: Use it.
14978 * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as 7570
14979 boolean (Bug#9154). 75712013-06-27 Paul Eggert <eggert@cs.ucla.edu>
14980 7572
149812011-09-18 Eli Zaretskii <eliz@gnu.org> 7573 Do not tickle glib SIGCHLD handling if Cygwin (Bug#14569).
14982 7574 This mostly consists of undoing recent changes.
14983 * xdisp.c (display_line): Record maximum and minimum buffer 7575 * callproc.c (Fcall_process):
14984 positions even if no glyphs were produced (e.g., by a zero-width 7576 * process.c (create_process):
14985 stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record 7577 Do not worry about catching SIGCHLD here, undoing previous change.
14986 buffer positions that will be removed from the glyph row because 7578 * nsterm.m (ns_term_init): Re-catch SIGCHLD, undoing previous change.
14987 they don't fit. 7579 * process.c, process.h (catch_child_signal):
14988 (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the 7580 No longer extern if !NS_IMPL_GNUSTEP, undoing 06-22 change.
14989 column is beyond frame width: don't subtract 1 "pixel" when 7581 * process.c (catch_child_handler): Don't worry about being called
14990 computing width of the stretch. 7582 lazily and do not assume caller has blocked SIGCHLD, undoing
14991 (reseat_at_next_visible_line_start): Undo the change made on 7583 previous change. Move first-time stuff back to
14992 2011-09-17 that saved paragraph information and restored it after 7584 init_process_emacs, undoing 06-22 change. If CYGWIN, do not
14993 the call to `reseat'. (Bug#9545) 7585 tickle glib, as that causes Cygwin bootstrap to fail. Do not
14994 7586 set lib_child_handler if it's already initialized, which may
149952011-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 7587 help avoid problems on GNUstep.
14996 7588
14997 * xdisp.c (expose_window): Save original value of phys_cursor_on_p 75892013-06-23 Paul Eggert <eggert@cs.ucla.edu>
14998 and turn window cursor on if cleared (Bug#9415). 7590
14999 7591 A more-conservative workaround for Cygwin SIGCHLD issues (Bug#14569).
150002011-09-18 Andreas Schwab <schwab@linux-m68k.org> 7592 * callproc.c (Fcall_process):
15001 7593 * process.c (create_process):
15002 * search.c (boyer_moore): Take unibyte characters from pattern 7594 Make sure SIGCHLD is caught before we fork,
15003 literally. (Bug#9458) 7595 since Emacs startup no arranges to catch SIGCHLD.
15004 7596 * process.c (lib_child_handler): Initialize to null, not to
150052011-09-18 Eli Zaretskii <eliz@gnu.org> 7597 dummy_handler.
15006 7598 (catch_child_signal): Allow self to be called lazily.
15007 * xdisp.c (reseat_at_next_visible_line_start): Fix last change. 7599 Do nothing if it's already been called.
15008 7600 Assume caller has blocked SIGCHLD (all callers do now).
150092011-09-18 Paul Eggert <eggert@cs.ucla.edu> 7601 * emacs.c (main): Do not catch SIGCHLD here; defer it until
15010 7602 just before it's really needed.
15011 Fix minor problem found by static checking. 7603 * nsterm.m (ns_term_init): No need to re-catch SIGCHLD here,
15012 * xdisp.c (reseat_at_next_visible_line_start): Mark locals as 7604 since it hasn't been caught yet.
15013 initialized, to pacify gcc -Wuninitialized. 7605
15014 76062013-06-23 Lars Magne Ingebrigtsen <larsi@gnus.org>
15015 * fileio.c: Report proper errno when syscall falls. 7607
15016 (Finsert_file_contents): Save and restore errno, 7608 * image.c (compute_image_size): New function to implement
15017 so that report_file_error outputs the correct diagnostic. 7609 :max-width and :max-height.
15018 (Fwrite_region) [CLASH_DETECTION]: Likewise. 7610 (imagemagick_load_image): Use it.
15019 7611
150202011-09-18 Eli Zaretskii <eliz@gnu.org> 76122013-06-23 Paul Eggert <eggert@cs.ucla.edu>
15021 7613
15022 * .gdbinit (pgx): Fix references to fields of `struct glyph'. 7614 Try to avoid malloc SEGVs on Cygwin (Bug#14569).
15023 7615 * callproc.c, process.h (block_child_signal, unblock_child_signal):
150242011-09-17 Eli Zaretskii <eliz@gnu.org> 7616 Now extern.
15025 7617 * emacs.c (main): Catch SIGCHLD just before initializing gfilenotify.
15026 * xdisp.c (produce_stretch_glyph): Another fix for changes made on 7618 * process.c (catch_child_signal): Block SIGCHLD while futzing with
15027 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530) 7619 the SIGCHLD handler, since the code is not atomic and (due to glib)
15028 7620 signals may be arriving now.
150292011-09-17 Eli Zaretskii <eliz@gnu.org> 7621 * sysdep.c (init_signals): Do not catch child signals here;
15030 7622 'main' now does that later, at a safer time.
15031 * xdisp.c (reseat_at_next_visible_line_start): Keep information 7623
15032 about the current paragraph and restore it after the call to reseat. 76242013-06-22 Paul Eggert <eggert@cs.ucla.edu>
15033 7625
15034 * bidi.c (MAX_PARAGRAPH_SEARCH): New macro. 7626 Clean up SIGCHLD handling a bit (Bug#14569).
15035 (bidi_find_paragraph_start): Search back for paragraph beginning 7627 * process.c, process.h (catch_child_signal):
15036 at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE. 7628 Now always extern, even if !NS_IMPL_GNUSTEP.
15037 (bidi_move_to_visually_next): Only trigger paragraph-related 7629 * process.c (catch_child_signal): Move glib tickler here from
15038 computations when the last character is a newline or at EOB, not 7630 init_process_emacs, so that it's done earlier in Emacs
15039 just any NEUTRAL_B. (Bug#9470) 7631 initialization. Also move the noninteractive && !initialized
15040 7632 check here from init_process_emacs. This is all a bit cleaner for
15041 * xdisp.c (set_cursor_from_row): Don't invoke special treatment of 7633 GNUish platforms, and I hope it works around the Cygwin bug.
15042 truncated lines if point is covered by a display string. (Bug#9524) 7634 * sysdep.c (init_signals): Invoke catch_child_signal here, so
15043 7635 that glib signal handling is tickled before glib creates threads.
150442011-09-16 Paul Eggert <eggert@cs.ucla.edu> 7636
15045 7637 * process.c (wait_reading_process_output): Avoid int overflow
15046 * xselect.c: Relax test for outgoing X longs (Bug#9498). 7638 when reading more than 2 GiB total from a process.
15047 (cons_to_x_long): New function. 7639
15048 (lisp_data_to_selection_data): Use it. Correct the test for 76402013-06-21 Paul Eggert <eggert@cs.ucla.edu>
15049 short-versus-long data; it was negated. Break out of vector 7641
15050 loop, for efficiency, when a long datum is discovered. 7642 * process.c (create_process): Handle a couple more cases,
15051 7643 i.e., work even if new_argv and wait_child_setup[i] are cached.
150522011-09-16 Stefan Monnier <monnier@iro.umontreal.ca> 7644 Use Fcall_process's style for volatile vars.
15053 7645
15054 * eval.c (Fquote): Document its non-consing behavior (bug#9482). 76462013-06-21 Andreas Schwab <schwab@linux-m68k.org>
15055 7647
150562011-09-16 Eli Zaretskii <eliz@gnu.org> 7648 * process.c (create_process): Mark PROCESS volatile.
15057 7649
15058 * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see 76502013-06-21 Paul Eggert <eggert@cs.ucla.edu>
15059 GCC PR/17406) by declaring this function with external scope. 7651
15060 7652 Use C99-style flexible array members if available.
150612011-09-15 Paul Eggert <eggert@cs.ucla.edu> 7653 This avoids some subtle aliasing issues, which typically
15062 7654 aren't a problem with GCC but may be a problem elsewhere.
15063 * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514). 7655 * alloc.c (sdata): New typedef, replacing the old struct sdata.
15064 Don't mishandle (length (format "%%")) and (format "%4000s%%" ""). 7656 It is a struct if GC_CHECK_STRING_BYTES, a union otherwise.
15065 7657 In either case, it uses a flexible array member rather than
150662011-09-15 Andreas Schwab <schwab@linux-m68k.org> 7658 the old struct hack. All uses changed.
15067 7659 (SDATA_NBYTES, sweep_strings) [!GC_CHECK_STRING_BYTES]:
15068 * editfns.c (Fformat): Correctly handle text properties on "%%". 7660 Adjust to sdata reorganization.
15069 7661 * alloc.c (VBLOCK_BYTES_MIN, allocate_vectorlike, Fgarbage_collect):
150702011-09-15 Eli Zaretskii <eliz@gnu.org> 7662 Use offsetof (struct, flex_array_member), not sizeof (struct), as
15071 7663 that ports better to pre-C99 non-GCC.
15072 * xterm.c (x_draw_composite_glyph_string_foreground): 7664 * chartab.c (Fmake_char_table, make_sub_char_table, copy_char_table):
15073 * w32term.c (x_draw_composite_glyph_string_foreground): 7665 Use CHAR_TABLE_STANDARD_SLOTS rather than its definition,
15074 * term.c (encode_terminal_code): 7666 as the latter has changed.
15075 * composite.c (composition_update_it, get_composition_id): 7667 * conf_post.h (FLEXIBLE_ARRAY_MEMBER): Move here from w32.c,
15076 * xdisp.c (get_next_display_element) 7668 and port better to pre-C99 GCC.
15077 (fill_composite_glyph_string): Add comments about special meaning 7669 * image.c (struct xpm_cached_color):
15078 of TAB characters in a composition. 7670 * lisp.h (struct Lisp_Vector, struct Lisp_Bool_Vector)
15079 7671 (struct Lisp_Char_Table, struct Lisp_Sub_Char_Table):
150802011-09-15 Paul Eggert <eggert@cs.ucla.edu> 7672 Use FLEXIBLE_ARRAY_MEMBER.
15081 7673 * lisp.h (string_bytes) [GC_CHECK_STRING_BYTES]:
15082 * editfns.c (Fformat): Fix off-by-1 bug for "%%b" (Bug#9514). 7674 Move decl to top level so it gets checked against implementation.
15083 This occurs when processing a multibyte format. 7675 (CHAR_TABLE_STANDARD_SLOTS): Adjust to struct Lisp_Char_Table change.
15084 Problem reported by Wolfgang Jenker. 7676 * w32.c (FLEXIBLE_ARRAY_MEMBER): Move to conf_post.h.
15085 7677
150862011-09-15 Johan Bockgård <bojohan@gnu.org> 76782013-06-20 Paul Eggert <eggert@cs.ucla.edu>
15087 7679
15088 * xdisp.c (try_cursor_movement): Only check for exact match if 7680 * syntax.c: Integer cleanups.
15089 cursor hpos found by set_cursor_from_row is valid. (Bug#9495) 7681 (SYNTAX_FLAGS_COMMENT_STYLEC): Return a boolean, not 0-or-2.
15090 7682 All uses that need 0-or-2 changed to:
150912011-09-14 Paul Eggert <eggert@cs.ucla.edu> 7683 (SYNTAX_FLAGS_COMMENT_STYLEC2): New macro, with the same semantics
15092 7684 as the old SYNTAX_FLAGS_COMMENT_STYLEC.
15093 Remove unused external symbols. 7685 (struct lisp_parse_state, syntax_prefix_flag_p, update_syntax_table)
15094 * dispextern.h (calc_pixel_width_or_height): Remove decl. 7686 (char_quoted, prev_char_comend_first, back_comment)
15095 * xdisp.c (calc_pixel_width_or_height): Now static. 7687 (Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
15096 * doprnt.c (exprintf) [! (HAVE_X_WINDOWS && USE_X_TOOLKIT)]: Remove. 7688 (in_classes, forw_comment, scan_lists, scan_sexps_forward):
15097 * indent.c (check_display_width): 7689 Use bool for boolean.
15098 * w32term.c: Fix comment to match code. 7690 (update_syntax_table, skip_chars, skip_syntaxes):
15099 * xterm.c, xterm.h (x_catching_errors): Remove. 7691 Prefer int to unsigned when either will do.
15100 7692 (back_comment): Return boolean success flag, like forw_comment,
151012011-09-14 Paul Eggert <eggert@cs.ucla.edu> 7693 instead of positive-or-minus-1 (which might have overflowed int anyway).
15102 7694 Don't stuff ptrdiff_t into int.
15103 * xselect.c: Use signed conversions more consistently (Bug#9498). 7695 (syntax_spec_code, syntax_code_spec): Now const.
15104 (selection_data_to_lisp_data): Assume incoming selection data are 7696 (Fmatching_paren, scan_lists, scan_sexps_forward):
15105 signed integers, not unsigned. This is to be consistent with 7697 Use enum syntaxcode for syntax code.
15106 outgoing selection data, which was modified to use signed integers 7698 (Fmatching_paren): Check that arg is a character, not just an integer.
15107 in as part of the fix to Bug#9196 in response to Jan D.'s comment 7699 (Fstring_to_syntax): Don't assume 0377 fits in enum syntaxcode.
15108 in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9196#32> that X11 7700 (Finternal_describe_syntax_value): Omit no-longer-needed
15109 expects long, not unsigned long. 7701 comparison to 0.
15110 7702 (skip_chars): Use char, not unsigned char, when the distinction
151112011-09-14 Eli Zaretskii <eliz@gnu.org> 7703 doesn't matter.
15112 7704 (forw_comment, scan_lists): Prefer A |= B to A = A || B when B's cheap.
15113 * xdisp.c (try_window_reusing_current_matrix): Fix incorrect 7705 * bytecode.c (exec_byte_code):
15114 computation of loop end. Reported by Johan Bockgård 7706 * syntax.c (syntax_spec_code, Fchar_syntax)
15115 <bojohan@gnu.org>. 7707 (Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
15116 7708 (init_syntax_once):
151172011-09-13 Chong Yidong <cyd@stupidchicken.com> 7709 * syntax.h (SYNTAX_WITH_FLAGS):
15118 7710 Omit unnecessary casts.
15119 * frame.c (Fother_visible_frames_p): Function deleted.
15120
151212011-09-12 Eli Zaretskii <eliz@gnu.org>
15122
15123 * indent.c (compute_motion): Process display vector front to back
15124 rather than the other way around. (Bug#2496)
15125
151262011-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
15127
15128 * fileio.c (Finsert_file_contents): Don't assume beg_offset is 0.
15129
151302011-09-11 Chong Yidong <cyd@stupidchicken.com>
15131
15132 * minibuf.c (Fread_from_minibuffer): Doc fix.
15133
151342011-09-11 Eli Zaretskii <eliz@gnu.org>
15135
15136 * xdisp.c (produce_stretch_glyph): Fix a typo made in changes from
15137 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9475)
15138
151392011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
15140
15141 * fileio.c (Fvisited_file_modtime): Document `(-1 65535)' as a
15142 value for non-existent files.
15143
151442011-09-11 Eli Zaretskii <eliz@gnu.org>
15145
15146 * fileio.c (Finsert_file_contents): If the file cannot be opened,
15147 set its "size" to -1. This will set the modtime_size field of
15148 the corresponding buffer to -1, which is what
15149 verify-visited-file-modtime expects for files that do not exist.
15150 (Bug#9139)
15151
151522011-09-11 Paul Eggert <eggert@cs.ucla.edu>
15153
15154 * keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls
15155 here ...
15156 * lisp.h: ... from here. push_key_description is no longer
15157 defined in keyboard.c, so its declaration should not be in
15158 lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE
15159 logically belongs with push_key_description.
15160
151612011-09-10 Paul Eggert <eggert@cs.ucla.edu>
15162
15163 * buffer.h: Include <sys/types.h> instead of <time.h>.
15164 Otherwise, off_t wasn't defined on FreeBSD 9.0-BETA2 i386.
15165 Problem reported by Herbert J. Skuhra.
15166
151672011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
15168
15169 * xml.c (parse_region): Make the parsing work for
15170 non-comment-starting XML files again (bug#9144).
15171
151722011-09-10 Andreas Schwab <schwab@linux-m68k.org>
15173
15174 * image.c (gif_load): Fix calculation of bottom and right corner.
15175 (Bug#9468)
15176
151772011-09-10 Eli Zaretskii <eliz@gnu.org>
15178
15179 * xdisp.c (MAX_DISP_SCAN): Decrease to 250. Prevents sluggish
15180 redisplay in small windows.
15181
151822011-09-09 Eli Zaretskii <eliz@gnu.org>
15183
15184 * frame.c (x_report_frame_params): Cast to avoid compiler warnings.
15185
151862011-09-08 Martin Rudalics <rudalics@gmx.at>
15187
15188 * window.c (Fset_window_prev_buffers, Fset_window_next_buffers):
15189 Operate on live windows only.
15190
151912011-09-08 Juanma Barranquero <lekktu@gmail.com>
15192
15193 * emacs.c (my_heap_start): #ifdef to avoid warnings when unused.
15194
151952011-09-07 Eli Zaretskii <eliz@gnu.org>
15196
15197 * xdisp.c (move_it_in_display_line_to): Call RESTORE_IT on ppos_it
15198 only under bidi iteration.
15199
152002011-09-07 Jan Djärv <jan.h.d@swipnet.se>
15201
15202 * gtkutil.c (xg_make_tool_item): Insert comment about eventbox.
15203
152042011-09-06 Paul Eggert <eggert@cs.ucla.edu>
15205
15206 isnan: Fix porting problem to Solaris 10 with bundled gcc.
15207 Without this fix, the command to link temacs failed due to an
15208 undefined symbol __builtin_isnan. This is because
15209 /usr/include/iso/math_c99.h #defines isnan(x) to
15210 __builtin_isnan(x), but the bundled gcc, which identifies itself
15211 as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have
15212 a __builtin_isnan.
15213 * floatfns.c (isnan): #undef, and then #define to a clone of
15214 what's in data.c.
15215 (Fisnan): Always define, since it's always available now.
15216 (syms_of_floatfns): Always define isnan at the Lisp level.
15217
152182011-09-06 Paul Eggert <eggert@cs.ucla.edu>
15219
15220 * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169).
15221
152222011-09-06 Paul Eggert <eggert@cs.ucla.edu>
15223
15224 * fileio.c: Fix bugs with large file offsets (Bug#9428).
15225 The previous code assumed that file offsets (off_t values) fit in
15226 EMACS_INT variables, which is not true on typical 32-bit hosts.
15227 The code messed up by falsely reporting buffer overflow in cases
15228 such as (insert-file-contents "big" nil 1 2) into an empty buffer
15229 when "big" contains more than 2**29 bytes, even though this
15230 inserts just one byte and does not overflow the buffer.
15231 (Finsert_file_contents): Store file offsets as off_t
15232 values, not as EMACS_INT values. Check for overflow when
15233 converting between EMACS_INT and off_t. When checking for
15234 buffer overflow or for overlap, take the offsets into account.
15235 Don't use EMACS_INT for small values where int suffices.
15236 When checking for overlap, fix a typo: ZV was used where
15237 ZV_BYTE was intended.
15238 (Fwrite_region): Don't assume off_t fits into 'long'.
15239 * buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT.
15240
152412011-09-05 Michael Albinus <michael.albinus@gmx.de>
15242
15243 * dbusbind.c (xd_signature_cat): Rename from signature_cat.
15244
152452011-09-04 Paul Eggert <eggert@cs.ucla.edu>
15246
15247 sprintf-related integer and memory overflow issues (Bug#9412).
15248
15249 * doprnt.c (doprnt): Support printing ptrdiff_t and intmax_t values.
15250 (esprintf, exprintf, evxprintf): New functions.
15251 * keyboard.c (command_loop_level): Now EMACS_INT, not int.
15252 (cmd_error): Kbd macro iterations count is now EMACS_INT, not int.
15253 (modify_event_symbol): Do not assume that the length of
15254 name_alist_or_stem is safe to alloca and fits in int.
15255 (Fexecute_extended_command): Likewise for function name and binding.
15256 (Frecursion_depth): Wrap around reliably on integer overflow.
15257 * keymap.c (push_key_description): First arg is now EMACS_INT, not int,
15258 since some callers pass EMACS_INT values.
15259 (Fsingle_key_description): Don't crash if symbol name contains more
15260 than MAX_ALLOCA bytes.
15261 * minibuf.c (minibuf_level): Now EMACS_INT, not int.
15262 (get_minibuffer): Arg is now EMACS_INT, not int.
15263 * lisp.h (get_minibuffer, push_key_description): Reflect API changes.
15264 (esprintf, exprintf, evxprintf): New decls.
15265 * window.h (command_loop_level, minibuf_level): Reflect API changes.
15266
15267 * dbusbind.c (signature_cat): New function.
15268 (xd_signature, Fdbus_register_signal):
15269 Do not overrun buffer; instead, report string overflow.
15270
15271 * dispnew.c (add_window_display_history): Don't overrun buffer.
15272 Truncate instead; this is OK since it's just a log.
15273
15274 * editfns.c (Fcurrent_time_zone): Don't overrun buffer
15275 even if the time zone offset is outlandishly large.
15276 Don't mishandle offset == INT_MIN.
15277
15278 * emacs.c (main) [NS_IMPL_COCOA]: Don't overrun buffer
15279 when creating daemon; the previous buffer-overflow check was incorrect.
15280
15281 * eval.c (verror): Simplify by rewriting in terms of evxprintf,
15282 which has the guts of the old verror function.
15283
15284 * filelock.c (lock_file_1, lock_file): Don't blindly alloca long name;
15285 use SAFE_ALLOCA instead. Use esprintf to avoid int-overflow issues.
15286
15287 * font.c: Include <float.h>, for DBL_MAX_10_EXP.
15288 (font_unparse_xlfd): Don't blindly alloca long strings.
15289 Don't assume XINT result fits in int, or that XFLOAT_DATA * 10
15290 fits in int, when using sprintf. Use single snprintf to count
15291 length of string rather than counting it via multiple sprintfs;
15292 that's simpler and more reliable.
15293 (font_unparse_fcname): Use it to avoid sprintf buffer overrun.
15294 (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not
15295 sprintf, in case result does not fit in int.
15296
15297 * fontset.c (num_auto_fontsets): Now printmax_t, not int.
15298 (fontset_from_font): Print it.
15299
15300 * frame.c (tty_frame_count): Now printmax_t, not int.
15301 (make_terminal_frame, set_term_frame_name): Print it.
15302 (x_report_frame_params): In X, window IDs are unsigned long,
15303 not signed long, so print them as unsigned.
15304 (validate_x_resource_name): Check for implausibly long names,
15305 and don't assume name length fits in 'int'.
15306 (x_get_resource_string): Don't blindly alloca invocation name;
15307 use SAFE_ALLOCA. Use esprintf, not sprintf, in case result does
15308 not fit in int.
15309
15310 * gtkutil.c: Include <float.h>, for DBL_MAX_10_EXP.
15311 (xg_check_special_colors, xg_set_geometry):
15312 Make sprintf buffers a bit bigger, to avoid potential buffer overrun.
15313
15314 * lread.c (dir_warning): Don't blindly alloca buffer; use SAFE_ALLOCA.
15315 Use esprintf, not sprintf, in case result does not fit in int.
15316
15317 * macros.c (executing_kbd_macro_iterations): Now EMACS_INT, not int.
15318 (Fend_kbd_macro): Don't mishandle MOST_NEGATIVE_FIXNUM by treating
15319 it as a large positive number.
15320 (Fexecute_kbd_macro): Don't assume repeat count fits in int.
15321 * macros.h (executing_kbd_macro_iterations): Now EMACS_INT, not int.
15322
15323 * nsterm.m ((NSSize)windowWillResize): Use esprintf, not sprintf,
15324 in case result does not fit in int.
15325
15326 * print.c (float_to_string): Detect width overflow more reliably.
15327 (print_object): Make sprintf buffer a bit bigger, to avoid potential
15328 buffer overrun. Don't assume list length fits in 'int'. Treat
15329 print length of 0 as 0, not as infinity; to be consistent with other
15330 uses of print length in this function. Don't overflow print length
15331 index. Don't assume hash table size fits in 'long', or that
15332 vectorlike size fits in 'unsigned long'.
15333
15334 * process.c (make_process): Use printmax_t, not int, to format
15335 process-name gensyms.
15336
15337 * sysdep.c (snprintf) [! HAVE_SNPRINTF]: New function.
15338
15339 * term.c (produce_glyphless_glyph): Make sprintf buffer a bit bigger
15340 to avoid potential buffer overrun.
15341
15342 * xfaces.c (x_update_menu_appearance): Don't overrun buffer
15343 if X resource line is longer than 512 bytes.
15344
15345 * xfns.c (x_window): Make sprintf buffer a bit bigger
15346 to avoid potential buffer overrun.
15347
15348 * xterm.c (x_io_error_quitter): Don't overrun sprintf buffer.
15349
15350 * xterm.h (x_check_errors): Add ATTRIBUTE_FORMAT_PRINTF.
15351
153522011-09-04 Paul Eggert <eggert@cs.ucla.edu>
15353
15354 Integer overflow fixes for scrolling, etc.
15355 Without these, Emacs silently mishandles large integers sometimes.
15356 For example, "C-u 4294967297 M-x recenter" was treated as if
15357 it were "C-u 1 M-x recenter" on a typical 64-bit host.
15358
15359 * xdisp.c (try_window_id): Check Emacs fixnum range before
15360 converting to 'int'.
15361
15362 * window.c (window_scroll_line_based, Frecenter):
15363 Check that an Emacs fixnum is in range before assigning it to 'int'.
15364 (Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for
15365 values converted from Emacs fixnums.
15366 (Frecenter): Don't wrap around a line count if it is out of 'int'
15367 range; instead, treat it as an extreme value.
15368 (Fset_window_configuration, compare_window_configurations):
15369 Use ptrdiff_t, not int, for index that might exceed 2 GiB.
15370
15371 * search.c (Freplace_match): Use ptrdiff_t, not int, for indexes
15372 that can exceed INT_MAX. Check that EMACS_INT value is in range
15373 before assigning it to the (possibly-narrower) index.
15374 (match_limit): Don't assume that a fixnum can fit in 'int'.
15375
15376 * print.c (print_object): Use ptrdiff_t, not int, for index that can
15377 exceed INT_MAX.
15378
15379 * indent.c (position_indentation): Now takes ptrdiff_t, not int.
15380 (Fvertical_motion): Don't wrap around LINES values that don't fit
15381 in 'int'. Instead, treat them as extreme values. This is good
15382 enough for windows, which can't have more than INT_MAX lines anyway.
15383
153842011-09-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
15385
15386 * Require libxml/parser.h to avoid compilation warning.
15387
15388 * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
15389
15390 * xml.c (parse_region): Don't call xmlCleanupParser after parsing,
15391 since this reportedly can destroy thread storage.
15392
153932011-08-30 Chong Yidong <cyd@stupidchicken.com>
15394
15395 * syntax.c (find_defun_start): Update all cache variables if
15396 exiting early (Bug#9401).
15397
153982011-08-30 Eli Zaretskii <eliz@gnu.org>
15399
15400 * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings.
15401
15402 * xdisp.c (produce_stretch_glyph): No longer static, compiled also
15403 when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY
15404 frames. Call tty_append_glyph in the TTY case. (Bug#9402)
15405
15406 * term.c (tty_append_glyph): New function.
15407 (produce_stretch_glyph): Static function and its prototype deleted.
15408
15409 * dispextern.h (produce_stretch_glyph, tty_append_glyph):
15410 Add prototypes.
15411
154122011-08-29 Paul Eggert <eggert@cs.ucla.edu>
15413
15414 * image.c (parse_image_spec): Check for nonnegative, not for positive,
15415 when checking :margin (Bug#9390).
15416 (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR):
15417 Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
15418 so that the name doesn't mislead. All uses changed.
15419
154202011-08-28 Johan Bockgård <bojohan@gnu.org>
15421
15422 * term.c (init_tty) [HAVE_GPM]: Move mouse settings after
15423 set_tty_hooks.
15424
154252011-08-27 Eli Zaretskii <eliz@gnu.org>
15426
15427 * xdisp.c (move_it_to): Don't bail out early when reaching
15428 position beyond to_charpos, if we are scanning backwards.
15429 (move_it_vertically_backward): When DY == 0, make sure we get to
15430 the first character in the line after the newline.
15431
154322011-08-27 Paul Eggert <eggert@cs.ucla.edu>
15433
15434 * ccl.c: Improve and simplify overflow checking (Bug#9196).
15435 (ccl_driver): Do not generate an out-of-range pointer.
15436 (Fccl_execute_on_string): Remove unnecessary check for
15437 integer overflow, noted by Stefan Monnier in
15438 <http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00979.html>.
15439 Remove a FIXME that didn't need fixing.
15440 Simplify the newly-introduced buffer reallocation code.
15441
154422011-08-27 Juanma Barranquero <lekktu@gmail.com>
15443
15444 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h.
15445
154462011-08-26 Paul Eggert <eggert@cs.ucla.edu>
15447
15448 Integer and memory overflow issues (Bug#9196).
15449
15450 * doc.c (get_doc_string): Rework so that
15451 get_doc_string_buffer_size is the actual buffer size, rather than
15452 being 1 less than the actual buffer size; this makes xpalloc more
15453 convenient.
15454
15455 * image.c (x_allocate_bitmap_record, cache_image):
15456 * xselect.c (Fx_register_dnd_atom):
15457 Simplify previous changes by using xpalloc.
15458
15459 * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT,
15460 since either will do and ptrdiff_t is convenient with xpalloc.
15461
15462 * charset.c (charset_table_size)
15463 (struct charset_sort_data.priority): Now ptrdiff_t.
15464 (charset_compare): Don't overflow if priorities differ greatly.
15465 (Fsort_charsets): Don't assume list length fits in int.
15466 Check for size-calculation overflow when allocating sort data.
15467 (syms_of_charset): Allocate an initial charset table that is
15468 just under 64 KiB, to avoid problems with glibc malloc and mmap.
15469
15470 * cmds.c (internal_self_insert): Check for size-calculation overflow.
15471
15472 * composite.h (struct composition.glyph_len): Now int, not unsigned.
15473 The actual value is always <= INT_MAX, and leaving it unsigned made
15474 overflow checking harder.
15475
15476 * dispextern.h (struct glyph_matrix.rows_allocated)
15477 (struct face_cache.size): Now ptrdiff_t, for convenience in use
15478 with xpalloc. The values are still always <= INT_MAX.
15479
15480 * indent.c (compute_motion): Adjust to region_cache_forward sig change.
15481
15482 * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls.
15483 (SAFE_NALLOCA): New macro.
15484
15485 * region-cache.c (struct boundary.pos, find_cache_boundary)
15486 (move_cache_gap, insert_cache_boundary, delete_cache_boundaries)
15487 (set_cache_region, invalidate_region_cache)
15488 (revalidate_region_cache, know_region_cache, region_cache_forward)
15489 (region_cache_backward, pp_cache):
15490 Use ptrdiff_t, not EMACS_INT, since either will do. This is needed
15491 so that ptrdiff_t * can be passed to xpalloc.
15492 (struct region_cache): Similarly, for gap_start, gap_len, cache_len,
15493 beg_unchanged, end_unchanged, buffer_beg, buffer_end members.
15494 (pp_cache): Don't assume cache_len fits in int.
15495 * region-cache.h: Adjust extern decls to match.
15496
15497 * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not
15498 EMACS_INT, since either will do, for xpalloc.
15499
15500 * alloc.c: Include verify.h, and check that int fits in ptrdiff_t.
15501 (xnmalloc, xnrealloc, xpalloc): New functions.
15502
15503 * bidi.c (bidi_shelve_header_size): New constant.
15504 (bidi_cache_ensure_space, bidi_shelve_cache): Use it.
15505 (bidi_cache_ensure_space): Avoid integer overflow when allocating.
15506
15507 * bidi.c (bidi_cache_shrink):
15508 * buffer.c (overlays_at, overlays_in, record_overlay_string)
15509 (overlay_strings):
15510 Don't update size of array until after memory allocation succeeds,
15511 because xmalloc/xrealloc may not return.
15512 (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help
15513 now that we have proper integer overflow checking.
15514 (record_overlay_string, overlay_strings): Catch overflows when
15515 calculating size of overlay_str_buf.
15516
15517 * callproc.c (Fcall_process): Check for size overflow when
15518 calculating size of args2.
15519 (child_setup): Avoid overflow by using size_t rather than ptrdiff_t.
15520 Normally we prefer signed values, but sticking with ptrdiff_t would
15521 require adding more-complicated checks.
15522
15523 * ccl.c (Fccl_execute_on_string): Check for memory overflow.
15524 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
15525 Redo buffer-overflow calculations to avoid integer overflow.
15526 Add a FIXME comment where memory seems to be over-allocated.
15527
15528 * character.c (Fstring): Check for size-calculation overflow.
15529
15530 * coding.c (produce_chars): Redo buffer-overflow calculations to avoid
15531 unnecessary integer overflow. Check for size overflow.
15532 (encode_coding_object): Don't update size until xmalloc succeeds.
15533
15534 * composite.c (get_composition_id): Check for overflow in glyph
15535 length calculations.
15536
15537 Integer and memory overflow fixes for display code.
15538 * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int.
15539 * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool)
15540 (scrolling_window): Check for overflow in size calculations.
15541 (line_draw_cost, realloc_glyph_pool, add_row_entry):
15542 Don't assume glyph table len fits in int.
15543 (struct row_entry.bucket, row_entry_pool_size, row_entry_idx)
15544 (row_table_size): Now ptrdiff_t, not int.
15545 (scrolling_window): Avoid overflow in size calculations.
15546 Don't update size until allocation succeeds.
15547 * fns.c (concat): Check for overflow in size calculations.
15548 (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT.
15549 * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
15550 (NEXT_ALMOST_PRIME_LIMIT): New constant.
15551
15552 * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int.
15553 (get_doc_string): Check for size calculation overflow.
15554 Don't update size until allocation succeeds.
15555 (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not
15556 EMACS_INT, where ptrdiff_t will do.
15557 (Fsubstitute_command_keys): Check for string overflow.
15558
15559 * editfns.c (set_time_zone_rule): Don't assume environment length
15560 fits in int.
15561 (message_length): Now ptrdiff_t, not int.
15562 (Fmessage_box): Don't update size until allocation succeeds.
15563 Don't assume message length fits in int.
15564 (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do.
15565
15566 * emacs.c (main): Do not reallocate argv, since there is a null at
15567 the end that can be overwritten, and this way there's no need to
15568 worry about size-calculation overflow.
15569 (sort_args): Check for size-calculation overflow.
15570
15571 * eval.c (init_eval_once, grow_specpdl): Don't update size until
15572 alloc succeeds.
15573 (call_debugger, grow_specpdl): Redo calculations to avoid overflow.
15574
15575 * frame.c (set_menu_bar_lines, x_set_frame_parameters)
15576 (x_set_scroll_bar_width, x_figure_window_size):
15577 Check for integer overflow.
15578 (x_set_alpha): Do not assume XINT fits in int.
15579
15580 * frame.h (struct frame): Use int, not EMACS_INT, where int works.
15581 This is for the members text_lines, text_cols, total_lines, total_cols,
15582 where the system imposes an 'int' limit.
15583
15584 * fringe.c (Fdefine_fringe_bitmap):
15585 Don't update size until alloc works.
15586
15587 * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring)
15588 (ftfont_shape_by_flt): Check for integer overflow in size calculations.
15589
15590 * gtkutil.c (get_utf8_string, xg_store_widget_in_map):
15591 Check for size-calculation overflow.
15592 (get_utf8_string): Use ptrdiff_t, not size_t, where either will
15593 do, as we prefer signed integers.
15594 (id_to_widget.max_size, id_to_widget.used)
15595 (xg_store_widget_in_map, xg_remove_widget_from_map)
15596 (xg_get_widget_from_map, xg_get_scroll_id_for_window)
15597 (xg_remove_scroll_bar, xg_update_scrollbar_pos):
15598 Use and return ptrdiff_t, not int.
15599 (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int.
15600 * gtkutil.h: Change prototypes to match the above.
15601
15602 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these
15603 are duplicate now that they've been promoted to lisp.h.
15604 (x_allocate_bitmap_record, x_alloc_image_color)
15605 (make_image_cache, cache_image, xpm_load):
15606 Don't update size until alloc is done.
15607 (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors)
15608 (x_detect_edges):
15609 Check for size calculation overflow.
15610 (ct_colors_allocated_max): New constant.
15611 (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid
15612 overflow.
15613
15614 * keyboard.c (read_char, menu_bar_items, tool_bar_items)
15615 (read_char_x_menu_prompt, read_char_minibuf_menu_width)
15616 (read_char_minibuf_menu_prompt, follow_key, read_key_sequence):
15617 Use ptrdiff_t, not int, to count maps.
15618 (read_char_minibuf_menu_prompt): Check for overflow in size
15619 calculations. Don't update size until allocation succeeds.
15620 Redo calculations to avoid overflow.
15621 * keyboard.h: Change prototypes to match the above.
15622
15623 * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int,
15624 to count maps.
15625 (current_minor_maps): Check for size calculation overflow.
15626 * keymap.h: Change prototypes to match the above.
15627
15628 * lread.c (read1, init_obarray): Don't update size until alloc done.
15629
15630 * macros.c (Fstart_kbd_macro): Don't update size until alloc done.
15631 (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
15632
15633 * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):
15634 Now ptrdiff_t, not int.
15635 * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes.
15636 (ns_draw_fringe_bitmap): Rewrite to avoid overflow.
15637
15638 * process.c (Fnetwork_interface_list): Check for overflow
15639 in size calculation.
15640
15641 * region-cache.c (move_cache_gap): Check for size calculation overflow.
15642
15643 * scroll.c (do_line_insertion_deletion_costs): Check for size calc
15644 overflow. Don't bother calling xmalloc when xrealloc will do.
15645
15646 * search.c (Freplace_match): Check for size calculation overflow.
15647 (Fset_match_data): Don't assume list lengths fit in 'int'.
15648
15649 * sysdep.c (system_process_attributes): Use ptrdiff_t, not int,
15650 for command line length. Do not attempt to address one before the
15651 beginning of an array, as that's not portable.
15652
15653 * term.c (max_frame_lines): Remove; unused.
15654 (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t,
15655 not int.
15656 (encode_terminal_code, calculate_costs): Check for size
15657 calculation overflow.
15658 (encode_terminal_code): Use ptrdiff_t, not int, to record glyph
15659 table lengths and related sizes. Don't update size until alloc
15660 done. Redo calculations to avoid overflow.
15661 (calculate_costs): Don't bother calling xmalloc when xrealloc will do.
15662
15663 * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of
15664 subtracting pointers.
15665 (gobble_line): Check for overflow more carefully. Don't update size
15666 until alloc done.
15667
15668 * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes.
15669 Don't update size until alloc done.
15670 Redo size calculations to avoid overflow.
15671 Check for size calculation overflow.
15672 (main) [DEBUG]: Fix typo in invoking tparam1.
15673
15674 * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title):
15675 Use ptrdiff_t, not int, for sizes.
15676 (store_mode_line_noprop_char): Don't update size until alloc done.
15677
15678 * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face):
15679 Use ptrdiff_t, not int, for sizes.
15680 (Finternal_make_lisp_face, cache_face):
15681 Check for size calculation overflow.
15682 (cache_face): Treat size calculation overflows as if they were
15683 memory exhaustion (the usual treatment), rather than aborting.
15684
15685 * xfns.c (x_encode_text, x_set_name_internal)
15686 (Fx_change_window_property): Use ptrdiff_t, not int, to count
15687 sizes, since they can exceed INT_MAX in size. Check for size
15688 calculation overflow.
15689
15690 * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc.
15691 (xg_select): Check for size calculation overflow.
15692 Don't update size until alloc done.
15693
15694 * xrdb.c (get_environ_db): Don't assume path length fits in int,
15695 as sprintf is limited to int lengths.
15696
15697 * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX)
15698 (X_LONG_MIN): New macros.
15699 Use them to make the following changes clearer.
15700 (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer.
15701 This change doesn't affect the value now, but it may help remind
15702 future maintainers not to raise the value too much later.
15703 (SELECTION_QUANTUM): Remove, replacing with ...
15704 (selection_quantum): ... new function, which avoids overflow.
15705 All uses changed.
15706 (struct selection_data.size): Now ptrdiff_t, not int, to avoid
15707 assumption that selection length fits in 'int'.
15708 (x_reply_selection_request, x_handle_selection_request)
15709 (x_get_window_property, receive_incremental_selection)
15710 (x_get_window_property_as_lisp_data, selection_data_to_lisp_data)
15711 (lisp_data_to_selection_data, clean_local_selection_data):
15712 Use ptrdiff_t, not int, to record length of selection.
15713 (x_reply_selection_request, x_get_window_property)
15714 (receive_incremental_selection, x_property_data_to_lisp):
15715 Redo calculations to avoid overflow.
15716 (x_reply_selection_request): When sending hint, ceiling it at
15717 X_LONG_MAX rather than relying on wraparound overflow to send
15718 something.
15719 (x_get_window_property, receive_incremental_selection)
15720 (lisp_data_to_selection_data, x_property_data_to_lisp):
15721 Check for size-calculation overflow.
15722 (x_get_window_property, receive_incremental_selection)
15723 (lisp_data_to_selection_data, Fx_register_dnd_atom):
15724 Don't store size until memory allocation succeeds.
15725 (x_get_window_property): Plug memory leak on memory exhaustion.
15726 Don't double-block input; malloc is safe here. Don't assume 2**34
15727 - 4 fits in unsigned long. Add an xassert to check
15728 XGetWindowProperty overflow. Be more careful about overflow
15729 calculations, and distinguish size from memory overflow better.
15730 (receive_incremental_selection): When tracing, don't assume
15731 unsigned int is less than INT_MAX.
15732 (x_selection_data_to_lisp_data): Remove unnecessary (and in theory
15733 harmful) conversions of unsigned short to int.
15734 (lisp_data_to_selection_data): Don't assume that integers
15735 in the range -65535 through -1 fit in an X unsigned short.
15736 Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into
15737 result parameters unless successful. Rely on cons_to_unsigned
15738 to report problems with elements; the old code wasn't right anyway.
15739 (x_check_property_data): Check for int overflow; we cannot use
15740 a wider type due to X limits.
15741 (x_handle_dnd_message): Use unsigned int, to avoid int overflow.
15742
15743 * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow.
15744
15745 * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent)
15746 (x_term_init): Check for size calculation overflow.
15747 (x_color_cells): Don't store size until memory allocation succeeds.
15748 (handle_one_xevent): Use ptrdiff_t, not int, for byte counts.
15749 Don't assume alloca size is less than MAX_ALLOCA.
15750 (x_term_init): Don't assume length fits in int (sprintf is limited
15751 to int size).
15752
15753 Use ptrdiff_t for composition IDs.
15754 * character.c (lisp_string_width):
15755 * composite.c (composition_table_size, n_compositions)
15756 (get_composition_id, composition_gstring_from_id):
15757 * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id):
15758 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING):
15759 * window.c (Frecenter):
15760 Use ptrdiff_t, not int, for composition IDs.
15761 * composite.c (get_composition_id): Check for integer overflow.
15762 * composite.h: Adjust prototypes to match the above changes.
15763
15764 Use ptrdiff_t for hash table indexes.
15765 * category.c (hash_get_category_set):
15766 * ccl.c (ccl_driver):
15767 * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
15768 * coding.c (coding_system_charset_list, detect_coding_system):
15769 * coding.h (struct coding_system.id):
15770 * composite.c (get_composition_id, gstring_lookup_cache):
15771 * fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
15772 * image.c (xpm_get_color_table_h):
15773 * lisp.h (hash_lookup, hash_put):
15774 * minibuf.c (Ftest_completion):
15775 Use ptrdiff_t for hash table indexes, not int (which is too
15776 narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
15777 32-bit --with-wide-int hosts).
15778
15779 * charset.c (Fdefine_charset_internal): Check for integer overflow.
15780 Add a FIXME comment about memory leaks.
15781 (syms_of_charset): Don't assume xmalloc returns.
15782
15783 Don't assume that stated character widths fit in int.
15784 * character.c (Fchar_width, c_string_width, lisp_string_width):
15785 * character.h (CHAR_WIDTH):
15786 * indent.c (MULTIBYTE_BYTES_WIDTH):
15787 Use sanitize_char_width to avoid undefined and/or bad behavior
15788 with outlandish widths.
15789 * character.h (sanitize_tab_width): Rename from sanitize_width,
15790 now that we have two such functions. All uses changed.
15791 (sanitize_char_width): New inline function.
15792
15793 Don't assume that tab-width fits in int.
15794 * character.h (sanitize_width): New inline function.
15795 (SANE_TAB_WIDTH): New macro.
15796 (ASCII_CHAR_WIDTH): Use it.
15797 * indent.c (sane_tab_width): Remove. All uses replaced by
15798 SANE_TAB_WIDTH (current_buffer).
15799 * xdisp.c (init_iterator): Use SANE_TAB_WIDTH.
15800
15801 * fileio.c: Integer overflow issues with file modes.
15802 (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
15803
15804 * charset.c (read_hex): New arg OVERFLOW. All uses changed.
15805 Remove unreachable code.
15806 (read_hex, load_charset_map_from_file): Check for integer overflow.
15807
15808 * xterm.c: Don't go over XClientMessageEvent limit.
15809 (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed.
15810 (x_send_scroll_bar_event): Likewise. Check that the size does not
15811 exceed limits imposed by XClientMessageEvent, as well as the usual
15812 ptrdiff_t and size_t limits.
15813
15814 * keyboard.c: Overflow, signedness and related fixes.
15815 (make_lispy_movement): Use same integer type in forward decl
15816 that is used in the definition.
15817 (read_key_sequence, keyremap_step):
15818 Change bufsize argument back to int, undoing my 2011-03-30 change.
15819 We prefer signed types, and int is wide enough here.
15820 (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less
15821 than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow
15822 larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string
15823 length, not size_t. Use ptrdiff_t for index, not int.
15824 (keyremap_step, read_key_sequence): Redo bufsize check to avoid
15825 possibility of integer overflow.
15826
15827 Overflow, signedness and related fixes for images.
15828
15829 * dispextern.h (struct it.stack[0].u.image.image_id)
15830 (struct_it.image_id, struct image.id, struct image_cache.size)
15831 (struct image_cache.used, struct image_cache.ref_count):
15832 * gtkutil.c (update_frame_tool_bar):
15833 * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p)
15834 (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image)
15835 (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image):
15836 * nsmenu.m (update_frame_tool_bar):
15837 * xdisp.c (calc_pixel_width_or_height):
15838 * xfns.c (image_cache_refcount):
15839 Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits
15840 on typical 64-bit hosts.
15841
15842 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
15843 (x_bitmap_pixmap, x_create_x_image_and_pixmap):
15844 Omit unnecessary casts to int.
15845 (parse_image_spec): Check that integers fall into 'int' range
15846 when the callers expect that.
15847 (image_ascent): Redo ascent calculation to avoid int overflow.
15848 (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages.
15849 (lookup_image): Remove unnecessary tests.
15850 (xbm_image_p): Locals are now of int, not EMACS_INT,
15851 since parse_image_check makes sure they fit into int.
15852 (png_load, gif_load, svg_load_image):
15853 Prefer int to unsigned where either will do.
15854 (tiff_handler): New function, combining the cores of the
15855 old tiff_error_handler and tiff_warning_handler.
15856 This function is rewritten to use vsnprintf and thereby avoid
15857 stack buffer overflows. It uses only the features of vsnprintf
15858 that are common to both POSIX and native Microsoft.
15859 (tiff_error_handler, tiff_warning_handler): Use it.
15860 (tiff_load, gif_load, imagemagick_load_image):
15861 Don't assume :index value fits in 'int'.
15862 (gif_load): Omit unnecessary cast to double, and avoid double-rounding.
15863 (imagemagick_load_image): Check that crop parameters fit into
15864 the integer types that MagickCropImage accepts. Don't assume
15865 Vimagemagick_render_type has a nonnegative value. Don't assume
15866 size_t fits in 'long'.
15867 (gs_load): Use printmax_t to print the widest integers possible.
15868 Check for integer overflow when computing image height and width.
15869
158702011-08-26 Eli Zaretskii <eliz@gnu.org>
15871
15872 * xdisp.c (redisplay_window): Don't force window start if point
15873 will be invisible in the resulting window. (Bug#9324)
15874
158752011-08-25 Eli Zaretskii <eliz@gnu.org>
15876
15877 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when
15878 the display spec is of the form `(space ...)'.
15879 (handle_display_spec): Return the value returned by
15880 handle_single_display_spec, not just 1 or zero.
15881 (handle_single_display_spec): If the display spec is of the form
15882 `(space ...)', and specifies display in the text area, return 2
15883 rather than 1.
15884 (try_cursor_movement): Check for the need to scroll more
15885 accurately, and prefer exact match for point under bidi.
15886 Don't advance `row' beyond the last row of the window.
15887
15888 * dispextern.h (struct bidi_it): Rename the disp_prop_p member
15889 into disp_prop; all users changed.
15890
15891 * bidi.c (bidi_fetch_char): If compute_display_string_pos returns
15892 DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character
15893 for the text covered by the display property.
15894
158952011-08-25 Chong Yidong <cyd@stupidchicken.com>
15896
15897 * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer.
15898 Change return value to nil.
15899 (Frecord_buffer): Delete unused function.
15900
159012011-08-24 Eli Zaretskii <eliz@gnu.org>
15902
15903 * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte
15904 buffers, return left-to-right.
15905 (set_cursor_from_row): Consider candidate row a win if its glyph
15906 represents a newline and point is on that newline. Fixes cursor
15907 positioning on the newline at EOL of R2L text within L2R
15908 paragraph, and vice versa.
15909 (try_cursor_movement): Check continued rows, in addition to
15910 continuation rows. Fixes unwarranted scroll when point enters a
15911 continued line of R2L text within an L2R paragraph, or vice versa.
15912 (cursor_row_p): Consider the case of point being equal to
15913 MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving
15914 from the end of a short line to the beginning of a continued line
15915 of R2L text within L2R paragraph.
15916 (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for
15917 composed characters.
15918
15919 * bidi.c (bidi_check_type): Use xassert.
15920 (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p
15921 members.
15922
159232011-08-23 Eli Zaretskii <eliz@gnu.org>
15924
15925 * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of
15926 a character.
15927
159282011-08-23 Chong Yidong <cyd@stupidchicken.com>
15929
15930 * nsfont.m (ns_otf_to_script): Fix typo.
15931
159322011-08-22 Kenichi Handa <handa@m17n.org>
15933
15934 * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a
15935 extra slot even if the purpose is char-code-property-table.
15936
159372011-08-23 Eli Zaretskii <eliz@gnu.org>
15938
15939 * xdisp.c (redisplay_window): When computing centering_position,
15940 account for the height of the header line. (Bug#8874)
15941
15942 * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos
15943 instead of CHAR_TO_BYTE. Fixes a crash when a completion
15944 candidate is selected by the mouse, and that candidate has a
15945 composed character under the mouse.
15946
15947 * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel
15948 coordinates reported by pos-visible-in-window-p for a composed
15949 character in column zero.
15950
159512011-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
15952
15953 * cmds.c (Fself_insert_command): Mention post-self-insert-hook.
15954
159552011-08-22 Eli Zaretskii <eliz@gnu.org>
15956
15957 * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition,
15958 consider it a hit if to_charpos is anywhere in the range of the
15959 composed buffer positions.
15960
159612011-08-22 Chong Yidong <cyd@stupidchicken.com>
15962
15963 * image.c (gif_load): Don't assume that each subimage has the same
15964 dimensions as the base image. Handle disposal method that is
15965 "undefined" by the gif spec (Bug#9335).
15966
159672011-08-20 Chong Yidong <cyd@stupidchicken.com>
15968
15969 * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329).
15970 (Fcondition_case): Document `debug' symbol in error handler.
15971
159722011-08-19 Eli Zaretskii <eliz@gnu.org>
15973
15974 * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
15975 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
15976 from an Org mode buffer to a Speedbar frame.
15977
15978 * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
15979 a composition, take its buffer position from IT->cmp_it.charpos.
15980 Fixes cursor positioning at the beginning of a line that begins
15981 with a composed character.
15982
159832011-08-18 Eli Zaretskii <eliz@gnu.org>
15984
15985 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
15986 character bidirectional type, use STRONG_L instead. Fixes crashes
15987 in a buffer produced by `describe-categories'.
15988
15989 * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p
15990 members before the level stack, so they would be saved and
15991 restored when copying iterator state. Fixes incorrect reordering
15992 around TABs covered by display properties.
15993
159942011-08-18 Andreas Schwab <schwab@linux-m68k.org>
15995
15996 * process.c (Fnetwork_interface_list): Correctly determine buffer size.
15997
159982011-08-17 Chong Yidong <cyd@stupidchicken.com>
15999
16000 * eval.c (internal_condition_case, internal_condition_case_1)
16001 (internal_condition_case_2, internal_condition_case_n):
16002 Remove unnecessary aborts (Bug#9081).
16003
160042011-08-17 Eli Zaretskii <eliz@gnu.org>
16005
16006 * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file
16007 has no `load' handler, try opening the file locally. (Bug#9311)
16008
160092011-08-16 Ken Brown <kbrown@cornell.edu>
16010
16011 * gmalloc.c: Expand comment.
16012
160132011-08-16 Eli Zaretskii <eliz@gnu.org>
16014
16015 * xdisp.c (set_cursor_from_row): Don't accept a previous candidate
16016 if it fails the cursor_row_p test. Fixes cursor positioning at ZV.
16017
160182011-08-16 Ken Brown <kbrown@cornell.edu>
16019
16020 Fix memory allocation problems in Cygwin build (Bug#9273).
16021
16022 * unexcw.c ( __malloc_initialized): Declare external variable.
16023 (fixup_executable): Force the dumped emacs to reinitialize malloc.
16024
16025 * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo):
16026 New variables.
16027 (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the
16028 dumped emacs.
16029 (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage
16030 in the static heap.
16031 [CYGWIN] (special_realloc): New function.
16032 (_realloc_internal_nolock) [CYGWIN]: Use the new function on
16033 requests to realloc storage in the static heap.
16034
160352011-08-15 Paul Eggert <eggert@cs.ucla.edu>
16036
16037 * bidi.c (bidi_initialize): Remove unused local.
16038
160392011-08-15 Eli Zaretskii <eliz@gnu.org>
16040
16041 * bidimirror.h:
16042 * biditype.h: Remove file.
16043 * makefile.w32-in ($(BLD)/bidi.$(O)):
16044 * deps.mk (bidi.o): Remove biditype.h and bidimirror.h.
16045
16046 * dispextern.h: Fix a typo in the comment to bidi_type_t.
16047
16048 * chartab.c: Improve commentary for the uniprop_table API.
16049
16050 * bidi.c (bidi_paragraph_init): Support zero value of
16051 bidi_ignore_explicit_marks_for_paragraph_level.
16052 (bidi_initialize): Use uniprop_table instead of including
16053 biditype.h and bidimirror.h.
16054
16055 * xdisp.c (move_it_in_display_line_to): Don't reset pixel
16056 coordinates of the iterator when restoring from ppos_it.
16057 (Bug#9296)
16058
160592011-08-14 Kenichi Handa <handa@m17n.org>
16060
16061 * process.c (create_process): Call setup_process_coding_systems
16062 after the pid of the process is set to -1 (Bug#8162).
16063
160642011-08-14 Eli Zaretskii <eliz@gnu.org>
16065
16066 * xdisp.c (move_it_in_display_line_to): Don't invoke
16067 IT_RESET_X_ASCENT_DESCENT when iterator position was restored from
16068 ppos_it. Fixes vertical cursor motion when line beginning is
16069 covered by an image. (Bug#9296)
16070
160712011-08-14 Jan Djärv <jan.h.d@swipnet.se>
16072
16073 * nsterm.h (ns_run_ascript): Declare.
16074 (NSAPP_DATA2_RUNASSCRIPT): Define.
16075
16076 * nsfns.m (as_script, as_result, as_status): New static variables.
16077 (ns_run_ascript): New function.
16078 (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined
16079 event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start
16080 the event loop. Get status from as_status (Bug#7276).
16081
16082 * nsterm.m (sendEvent): If event is NSApplicationDefined and
16083 data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit
16084 the event loop (Bug#7276).
16085
160862011-08-14 Andreas Schwab <schwab@linux-m68k.org>
16087
16088 * gnutls.c (QCgnutls_bootprop_priority)
16089 (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist)
16090 (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks)
16091 (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname)
16092 (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags)
16093 (QCgnutls_bootprop_verify_hostname_error)
16094 (QCgnutls_bootprop_callbacks_verify): Rename from
16095 Qgnutls_bootprop_..., all uses changed.
16096
16097 * xfaces.c (QCignore_defface): Rename from Qignore_defface, all
16098 uses changed.
16099
161002011-08-14 Paul Eggert <eggert@cs.ucla.edu>
16101
16102 * xfaces.c (Qframe_set_background_mode): Now static.
16103 * dispextern.h (Qframe_set_background_mode): Remove decl.
16104
16105 * process.c (Fnetwork_interface_info): Declare local only if needed.
16106
161072011-08-13 Jan Djärv <jan.h.d@swipnet.se>
16108
16109 * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477).
16110 (Fnetwork_interface_list): Allocate in increments of bytes instead
16111 of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting
16112 bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct
16113 sockaddr.
16114 (struct ifflag_def): notrailers is smart on OSX.
16115 (Fnetwork_interface_info): Handle case when ifr_flags is negative.
16116 Get hardware address with getifaddrs if available.
16117
161182011-08-12 Eli Zaretskii <eliz@gnu.org>
16119
16120 * xdisp.c (iterate_out_of_display_property): xassert that
16121 IT->position is set to within IT->object's boundaries. Break from
16122 the loop as soon as EOB is reached; avoids infloops in redisplay
16123 when IT->position is set up wrongly due to some bug.
16124 Set IT->current to match the bidi iterator unconditionally.
16125 (push_display_prop): Allow GET_FROM_STRING as IT->method on
16126 entry. Force push_it to save on the stack the current
16127 buffer/string position, to be restored by pop_it. Fix flags in
16128 the iterator structure wrt the object coming from a display
16129 property, as `line-prefix' and `wrap-prefix' are not ``replacing''
16130 properties. (Bug#9284)
16131
161322011-08-09 Andreas Schwab <schwab@linux-m68k.org>
16133
16134 * fontset.c (fontset_get_font_group): Add proper type checks.
16135 (Bug#9172)
16136
161372011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
16138
16139 * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS
16140 and LC_VERSION_MIN_MACOSX.
16141 (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function.
16142 (dump_it) [LC_FUNCTION_STARTS]: Use it.
16143
161442011-08-08 Eli Zaretskii <eliz@gnu.org>
16145
16146 * xdisp.c (forward_to_next_line_start): Allow to use the
16147 no-display-properties-and-no-overlays under bidi display.
16148 Set disp_pos in the bidi iterator to avoid searches for display
16149 properties and overlays.
16150
161512011-08-08 Chong Yidong <cyd@stupidchicken.com>
16152
16153 * editfns.c (Fset_time_zone_rule): Document relationship with the
16154 setenv function.
16155
16156 * ftfont.c (ftfont_pattern_entity): Copy the extras argument to
16157 the font entity extracted from the cache (Bug#8109).
16158
161592011-08-07 Chong Yidong <cyd@stupidchicken.com>
16160
16161 * composite.c (autocmp_chars): Don't reset point. That is done by
16162 restore_point_unwind (Bug#5984).
16163
161642011-08-07 Juri Linkov <juri@jurta.org>
16165
16166 * editfns.c (Fformat_time_string): Doc fix, add tag `usage:'
16167 to show the arg `TIME' instead of `TIMEVAL'.
16168
161692011-08-06 Eli Zaretskii <eliz@gnu.org>
16170
16171 * xdisp.c (set_cursor_from_row): Fix cursor positioning when a
16172 display property strides EOL and includes a newline, as in
16173 longlines-mode. (Bug#9254)
16174 (move_it_in_display_line_to): Fix vertical-motion in a buffer with
16175 word-wrap under bidirectional display. (Bug#9224)
16176
16177 * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE
16178 is non-zero, even if the data buffer is NULL. Fixes a crash in
16179 vertical-motion with longlines-mode. (Bug#9254)
16180
161812011-08-05 Eli Zaretskii <eliz@gnu.org>
16182
16183 * bidi.c <bidi_cache_total_alloc>: Now static.
16184 (bidi_initialize): Initialize bidi_cache_total_alloc.
16185
16186 * xdisp.c (display_line): Release buffer allocated for shelved bidi
16187 cache. (Bug#9221)
16188
16189 * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total
16190 amount allocated this far in `bidi_cache_total_alloc'.
16191 (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if
16192 non-zero, only free the data buffer without restoring the cache
16193 contents. All callers changed.
16194
16195 * dispextern.h (bidi_unshelve_cache): Update prototype.
16196
16197 * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to)
16198 (move_it_in_display_line, move_it_to)
16199 (move_it_vertically_backward, move_it_by_lines): Replace the call
16200 to xfree to an equivalent call to bidi_unshelve_cache.
16201 (move_it_in_display_line_to): Fix logic of returning
16202 MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224)
16203
162042011-08-05 Eli Zaretskii <eliz@gnu.org>
16205
16206 * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that
16207 came from a string character with a `cursor' property. (Bug#9229)
16208
162092011-08-04 Jan Djärv <jan.h.d@swipnet.se>
16210
16211 * Makefile.in (LIB_PTHREAD): New variable.
16212 (LIBES): Add LIB_PTHREAD (Bug#9216).
16213
16214 * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h:
16215 Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
16216
162172011-08-04 Andreas Schwab <schwab@linux-m68k.org>
16218
16219 * regex.c (re_iswctype): Remove some redundant boolean conversions.
16220
162212011-08-04 Jan Djärv <jan.h.d@swipnet.se>
16222
16223 * xterm.c (x_find_topmost_parent): New function.
16224 (x_set_frame_alpha): Find topmost parent window with
16225 x_find_topmost_parent and set the property there also (bug#9181).
16226 (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify.
16227
162282011-08-04 Paul Eggert <eggert@cs.ucla.edu>
16229
16230 * callproc.c (Fcall_process): Avoid vfork clobbering
16231 the local vars buffer, coding_systems, current_dir.
16232
162332011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
16234
16235 * keymap.c (Fmake_composed_keymap): Move to subr.el.
16236
162372011-08-03 Paul Eggert <eggert@cs.ucla.edu>
16238
16239 * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE
16240 so that it is not optimized away.
16241
16242 * xdisp.c (compute_display_string_pos): Remove unused local.
16243
162442011-08-02 Eli Zaretskii <eliz@gnu.org>
16245
16246 Fix slow cursor motion and scrolling in large buffers with
16247 selective display, like Org Mode buffers. (Bug#9218)
16248
16249 * dispextern.h (struct bidi_it): New member disp_prop_p.
16250
16251 * xdisp.c: Remove one-slot cache of display string positions.
16252 (compute_display_string_pos): Accept an additional argument
16253 DISP_PROP_P; callers changed. Scan at most 5K characters forward
16254 for a display string or property. If found, set DISP_PROP_P
16255 non-zero.
16256
16257 * bidi.c (bidi_fetch_char): Accept an additional argument
16258 DISP_PROP_P, and pass it to compute_display_string_pos.
16259 Only handle text covered by a display string if DISP_PROP_P is returned
16260 non-zero. All callers of bidi_fetch_char changed.
16261
162622011-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
16263
16264 * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
16265
162662010-12-03 Don March <don@ohspite.net>
16267
16268 * keymap.c (Fdefine_key): Fix non-prefix key error message when
16269 last character M-[char] is translated to ESC [char] (bug#7541).
16270
162712011-08-02 Kenichi Handa <handa@m17n.org>
16272
16273 * lisp.h (uniprop_table): Extern it.
16274
16275 * chartab.c (uniprop_table): Make it non-static.
16276
162772011-08-01 Eli Zaretskii <eliz@gnu.org>
16278
16279 * xdisp.c (forward_to_next_line_start): Accept additional argument
16280 BIDI_IT_PREV, and store into it the state of the bidi iterator had
16281 on the newline.
16282 (reseat_at_next_visible_line_start): Use the bidi iterator state
16283 returned by forward_to_next_line_start to restore the state of
16284 it->bidi_it after backing up to previous newline. (Bug#9212)
16285
162862011-07-30 Andreas Schwab <schwab@linux-m68k.org>
16287
16288 * regex.c (re_comp): Protoize.
16289 (re_exec): Fix return type.
16290 (regexec): Fix type of `ret'. (Bug#9203)
16291
162922011-07-28 Paul Eggert <eggert@cs.ucla.edu>
16293
16294 * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189).
16295 This is needed if max-image-size is a floating-point number.
16296
162972011-07-28 Andreas Schwab <schwab@linux-m68k.org>
16298
16299 * print.c (print_object): Print empty symbol as ##.
16300
16301 * lread.c (read1): Read ## as empty symbol.
16302
163032011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
16304
16305 * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when
16306 setting frame foreground color (Bug#9175).
16307 (x_set_background_color): Likewise.
16308
16309 * nsmenu.m (-setText): Size tooltip dimensions precisely to
16310 contents (Bug#9176).
16311 (EmacsTooltip -init): Remove bezels and add shadows to
16312 tooltip windows.
16313
16314 * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
16315 or scroll bar (Bug#8470).
16316
16317 * nsfont.m (nsfont_open): Remove assignment to voffset and
16318 unnecessary vars hshink, expand, hd, full_height, min_height.
16319 (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913).
16320
16321 * nsterm.h (nsfont_info): Remove voffset field.
16322
163232011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
16324
16325 Implement strike-through and overline on NextStep (Bug#8863).
16326
16327 * nsfont.m (nsfont_open): Use underline position provided by font,
16328 instead of hard-coded value of 2.
16329 (nsfont_draw): Call ns_draw_text_decoration instead.
16330
16331 * nsterm.h: Add declaration for ns_draw_text_decoration.
16332
16333 * nsterm.m (ns_draw_text_decoration): New function for drawing
16334 underline, overline, and strike-through.
16335 (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to
16336 ns_draw_text_decoration. Change treatment of cursor drawing to
16337 accommodate underlining, etc.
16338
163392011-07-28 Eli Zaretskii <eliz@gnu.org>
16340
16341 * buffer.c (init_buffer_once): Set bidi-display-reordering to t by
16342 default.
16343
163442011-07-28 Paul Eggert <eggert@cs.ucla.edu>
16345
16346 * alloc.c (memory_full) [!SYNC_INPUT]: Fix signal-related race.
16347 Without this fix, if a signal arrives just after memory fills up,
16348 'malloc' might be invoked reentrantly.
16349
16350 * image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1.
16351 In other words, assume that every image size is allowed, on non-X
16352 hosts. This assumption is probably wrong, but it lets Emacs compile.
16353
163542011-07-28 Andreas Schwab <schwab@linux-m68k.org>
16355
16356 * regex.c (re_iswctype): Convert return values to boolean.
16357
163582011-07-28 Eli Zaretskii <eliz@fencepost.gnu.org>
16359
16360 * xdisp.c (compute_display_string_pos): Don't use cached display
16361 string position if the buffer had its restriction changed.
16362 (Bug#9184)
16363
163642011-07-28 Paul Eggert <eggert@cs.ucla.edu>
16365
16366 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
16367
163682011-07-28 Paul Eggert <eggert@cs.ucla.edu>
16369
16370 Integer signedness and overflow and related fixes. (Bug#9079)
16371
16372 * bidi.c: Integer size and overflow fixes.
16373 (bidi_cache_size, bidi_cache_idx, bidi_cache_last_idx)
16374 (bidi_cache_start, bidi_cache_fetch_state, bidi_cache_search)
16375 (bidi_cache_find_level_change, bidi_cache_ensure_space)
16376 (bidi_cache_iterator_state, bidi_cache_find, bidi_cache_start_stack)
16377 (bidi_find_other_level_edge):
16378 Use ptrdiff_t instead of EMACS_INT where either will do.
16379 This works better on 32-bit hosts configured --with-wide-int.
16380 (bidi_cache_ensure_space): Check for size-calculation overflow.
16381 Use % rather than repeated addition, for better worst-case speed.
16382 Don't set bidi_cache_size until after xrealloc returns, because it
16383 might not return.
16384 (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow.
16385 (bidi_cache_ensure_space): Also check that the bidi cache size
16386 does not exceed that of the largest Lisp string or buffer. See Eli
16387 Zaretskii in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#29>.
16388
16389 * alloc.c (__malloc_size_t): Remove.
16390 All uses replaced by size_t. See Andreas Schwab's note
16391 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#8>.
16392
16393 * image.c: Improve checking for integer overflow.
16394 (check_image_size): Assume that f is nonnull, since
16395 it is always nonnull in practice. This is one less thing to
16396 worry about when checking for integer overflow later.
16397 (x_check_image_size): New function, which checks for integer
16398 overflow issues inside X.
16399 (x_create_x_image_and_pixmap, xbm_read_bitmap_data): Use it.
16400 This removes the need for a memory_full check.
16401 (xbm_image_p): Rewrite to avoid integer multiplication overflow.
16402 (Create_Pixmap_From_Bitmap_Data, xbm_load): Use x_check_image_size.
16403 (xbm_read_bitmap_data): Change locals back to 'int', since
16404 their values must fit in 'int'.
16405 (xpm_load_image, png_load, tiff_load):
16406 Invoke x_create_x_image_and_pixmap earlier,
16407 to avoid much needless work if the image is too large.
16408 (tiff_load): Treat overly large images as if
16409 x_create_x_image_and_pixmap failed, not as malloc failures.
16410 (gs_load): Use x_check_image_size.
16411
16412 * gtkutil.c: Omit integer casts.
16413 (xg_get_pixbuf_from_pixmap): Remove unnecessary cast.
16414 (xg_set_toolkit_scroll_bar_thumb): Rewrite to avoid need for cast.
16415
16416 * image.c (png_load): Don't assume height * row_bytes fits in 'int'.
16417
16418 * xfaces.c (Fbitmap_spec_p): Fix integer overflow bug.
16419 Without this fix, (bitmap-spec-p '(34359738368 1 "x"))
16420 would wrongly return t on a 64-bit host.
16421
16422 * dispnew.c (init_display): Use *_RANGE_OVERFLOW macros.
16423 The plain *_OVERFLOW macros run afoul of GCC bug 49705
16424 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705>
16425 and therefore cause GCC to emit a bogus diagnostic in some cases.
16426
16427 * image.c: Integer signedness and overflow and related fixes.
16428 This is not an exhaustive set of fixes, but it's time to
16429 record what I've got.
16430 (lookup_pixel_color, check_image_size): Remove redundant decls.
16431 (check_image_size): Don't assume that arbitrary EMACS_INT values
16432 fit in 'int', or that arbitrary 'double' values fit in 'int'.
16433 (x_alloc_image_color, x_create_x_image_and_pixmap, png_load)
16434 (tiff_load, imagemagick_load_image):
16435 Check for overflow in size calculations.
16436 (x_create_x_image_and_pixmap): Remove unnecessary test for
16437 xmalloc returning NULL; that can't happen.
16438 (xbm_read_bitmap_data): Don't assume sizes fit into 'int'.
16439 (xpm_color_bucket): Use better integer hashing function.
16440 (xpm_cache_color): Don't possibly over-allocate memory.
16441 (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory)
16442 (gif_memory_source):
16443 Use ptrdiff_t, not int or size_t, to record sizes.
16444 (png_load): Don't assume values greater than 2**31 fit in 'int'.
16445 (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when
16446 either works, as we prefer signed integers.
16447 (tiff_read_from_memory, tiff_write_from_memory):
16448 Return tsize_t, not size_t, since that's what the TIFF API wants.
16449 (tiff_read_from_memory): Don't fail simply because the read would
16450 go past EOF; instead, return a short read.
16451 (tiff_load): Omit no-longer-needed casts.
16452 (Fimagemagick_types): Don't assume size fits into 'int'.
16453
16454 Improve hashing quality when configured --with-wide-int.
16455 * fns.c (hash_string): New function, taken from sxhash_string.
16456 Do not discard information about ASCII character case; this
16457 discarding is no longer needed.
16458 (sxhash-string): Use it. Change sig to match it. Caller changed.
16459 * lisp.h: Declare it.
16460 * lread.c (hash_string): Remove, since we now use fns.c's version.
16461 The fns.c version returns a wider integer if --with-wide-int is
16462 specified, so this should help the quality of the hashing a bit.
16463
16464 * emacs.c: Integer overflow minor fix.
16465 (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed.
16466 Define only if GNU_LINUX.
16467 (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.
16468
16469 * dispnew.c: Integer signedness and overflow fixes.
16470 Remove unnecessary forward decls, that were a maintenance hassle.
16471 (history_tick): Now uprintmax_t, so it's more likely to avoid overflow.
16472 All uses changed.
16473 (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer)
16474 (scrolling_window): Use ptrdiff_t, not int, for byte count.
16475 (prepare_desired_row, line_draw_cost):
16476 Use int, not unsigned, where either works.
16477 (save_current_matrix, restore_current_matrix):
16478 Use ptrdiff_t, not size_t, where either works.
16479 (init_display): Check for overflow more accurately, and without
16480 relying on undefined behavior.
16481
16482 * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide):
16483 Remove, replacing with the new symbols in lisp.h. All uses changed.
16484 * fileio.c (make_temp_name):
16485 * filelock.c (lock_file_1, lock_file):
16486 * xdisp.c (message_dolog):
16487 Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts.
16488 Use pMd etc. instead.
16489 * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros,
16490 replacing the pWIDE etc. symbols removed from editfns.c.
16491
16492 * keyboard.h (num_input_events): Now uintmax_t.
16493 This is (very slightly) less likely to mess up due to wraparound.
16494 All uses changed.
16495
16496 * buffer.c: Integer signedness fixes.
16497 (alloc_buffer_text, enlarge_buffer_text):
16498 Use ptrdiff_t rather than size_t when either will do, as we prefer
16499 signed integers.
16500
16501 * alloc.c: Integer signedness and overflow fixes.
16502 Do not impose an arbitrary 32-bit limit on malloc sizes when debugging.
16503 (__malloc_size_t): Default to size_t, not to int.
16504 (pure_size, pure_bytes_used_before_overflow, stack_copy_size)
16505 (Fgarbage_collect, mark_object_loop_halt, mark_object):
16506 Prefer ptrdiff_t to size_t when either would do, as we prefer
16507 signed integers.
16508 (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro.
16509 (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer):
16510 Now const. Initialize with values that are in range even if char
16511 is signed.
16512 (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ...
16513 (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed.
16514 These functions do the right thing with sizes > 2**32.
16515 (check_depth): Now ptrdiff_t, not int.
16516 (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
16517 Adjust to new way of storing sizes. Check for size overflow bugs
16518 in rest of code.
16519 (STRING_BYTES_MAX): Adjust to new overheads. The old code was
16520 slightly wrong anyway, as it missed one instance of
16521 XMALLOC_OVERRUN_CHECK_OVERHEAD.
16522 (refill_memory_reserve): Omit needless cast to size_t.
16523 (mark_object_loop_halt): Mark as externally visible.
16524
16525 * xselect.c: Integer signedness and overflow fixes.
16526 (Fx_register_dnd_atom, x_handle_dnd_message):
16527 Use ptrdiff_t, not size_t, since we prefer signed.
16528 (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow.
16529 * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for
16530 x_dnd_atoms_size and x_dnd_atoms_length.
16531
16532 * doprnt.c: Prefer signed to unsigned when either works.
16533 * eval.c (verror):
16534 * doprnt.c (doprnt):
16535 * lisp.h (doprnt):
16536 * xdisp.c (vmessage):
16537 Use ptrdiff_t, not size_t, when using or implementing doprnt,
16538 since the sizes cannot exceed ptrdiff_t bounds anyway, and we
16539 prefer signed arithmetic to avoid comparison confusion.
16540 * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow,
16541 but is a bit tricky.
16542
16543 Assume freestanding C89 headers, string.h, stdlib.h.
16544 * data.c, doprnt.c, floatfns.c, print.c:
16545 Include float.h unconditionally.
16546 * gmalloc.c: Assume C89-at-least behavior for preprocessor,
16547 limits.h, stddef.h, string.h. Use memset instead of 'flood'.
16548 * regex.c: Likewise for stddef.h, string.h.
16549 (ISASCII): Remove; can assume it returns 1 now. All uses removed.
16550 * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef.
16551 * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H)
16552 (STDC_HEADERS): Remove obsolete defines.
16553 * sysdep.c: Include limits.h unconditionally.
16554
16555 Assume support for memcmp, memcpy, memmove, memset.
16556 * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
16557 * regex.c (memcmp, memcpy):
16558 Remove; we assume C89 now.
16559
16560 * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
16561 (__malloc_safe_bcopy): Remove; no longer needed.
16562
16563 * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes.
16564 Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
16565 well either way, and we prefer signed to unsigned.
16566
165672011-07-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
16568
16569 * gnutls.c (emacs_gnutls_read): Don't message anything if the peer
16570 closes the connection while we're reading (bug#9182).
16571
165722011-07-25 Jan Djärv <jan.h.d@swipnet.se>
16573
16574 * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons
16575 are specified (Bug#9168).
16576
165772011-07-25 Paul Eggert <eggert@cs.ucla.edu>
16578
16579 * bidi.c (bidi_dump_cached_states): Fix printf format mismatch.
16580 Found by GCC static checking and --with-wide-int on a 32-bit host.
16581
165822011-07-25 Eli Zaretskii <eliz@gnu.org>
16583
16584 * xdisp.c (compute_display_string_pos): Fix logic of caching
16585 previous display string position. Initialize cached_prev_pos to
16586 -1. Fixes slow-down at the beginning of a buffer.
16587
165882011-07-24 Eli Zaretskii <eliz@gnu.org>
16589
16590 * xfaces.c (check_lface_attrs) [HAVE_WINDOW_SYSTEM]: Allow `nil'
16591 for attrs[LFACE_FONTSET_INDEX].
16592
165932011-07-23 Paul Eggert <eggert@cs.ucla.edu>
16594
16595 * xml.c (parse_region): Remove unused local
16596 that was recently introduced.
16597
165982011-07-23 Eli Zaretskii <eliz@gnu.org>
16599
16600 * xfns.c (unwind_create_frame) [GLYPH_DEBUG]: Adapt to changes in
16601 2008-02-22T17:42:09Z!monnier@iro.umontreal.ca.
16602
16603 * xdisp.c (move_it_in_display_line_to): Record the best matching
16604 position for TO_CHARPOS while scanning the line, and restore it on
16605 exit if none of the characters scanned was an exact match.
16606 Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay
16607 when exact match is impossible due to invisible text, and the
16608 lines are truncated.
16609
166102011-07-23 Jan Djärv <jan.h.d@swipnet.se>
16611
16612 * nsterm.m (initFrameFromEmacs): Set NSTitledWindowMask in styleMask
16613 for OSX >= 10.7.
16614
166152011-07-22 Eli Zaretskii <eliz@gnu.org>
16616
16617 Fix a significant slow-down of cursor motion with C-n, C-p,
16618 C-f/C-b, and C-v/M-v that couldn't keep up with keyboard
16619 auto-repeat under bidi redisplay in fontified buffers.
16620 * xdisp.c (compute_stop_pos_backwards): New function.
16621 (next_element_from_buffer): Call compute_stop_pos_backwards to
16622 find a suitable prev_stop when we find ourselves before
16623 base_level_stop.
16624 (reseat): Don't look for prev_stop, as that could mean a very long
16625 run.
16626 <cached_disp_pos, cached_disp_buffer, cached_disp_modiff>
16627 <cached_disp_overlay_modiff>: Cache for last found display string
16628 position.
16629 (compute_display_string_pos): Return the cached position if asked
16630 about the same buffer in the same area of character positions, and
16631 the buffer wasn't changed since the time the display string
16632 position was cached.
16633
166342011-07-22 Eli Zaretskii <eliz@gnu.org>
16635
16636 * xdisp.c (rows_from_pos_range): Don't ignore glyphs whose object
16637 is an integer, which is important for empty lines. (Bug#9149)
16638
166392011-07-22 Chong Yidong <cyd@stupidchicken.com>
16640
16641 * frame.c (Fmodify_frame_parameters): In tty case, update the
16642 default face if necessary (Bug#4238).
16643
166442011-07-21 Chong Yidong <cyd@stupidchicken.com>
16645
16646 * editfns.c (Fstring_to_char): No need to explain what a character
16647 is in the docstring (Bug#6576).
16648
166492011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
16650
16651 * xml.c (parse_region): Make sure we always return a tree.
16652
166532011-07-20 HAMANO Kiyoto <khiker.mail@gmail.com>
16654
16655 * xml.c (parse_region): If a document contains only comments,
16656 return that, too.
16657
166582011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
16659
16660 * xml.c (make_dom): Return comments, too.
16661
166622011-07-19 Paul Eggert <eggert@cs.ucla.edu>
16663
16664 Port to OpenBSD.
16665 See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html
16666 and the surrounding thread.
16667 * minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar
16668 rather than fgets, and retry after EINTR. Otherwise, 'emacs
16669 --batch -f byte-compile-file' fails on OpenBSD if an inactivity
16670 timer goes off.
16671 * s/openbsd.h (BROKEN_SIGIO): Define.
16672 * unexelf.c (unexec) [__OpenBSD__]:
16673 Don't update the .mdebug section of the Alpha COFF symbol table.
16674
166752011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
16676
16677 * lread.c (syms_of_lread): Clarify when `lexical-binding' is used
16678 (bug#8460).
16679
166802011-07-18 Paul Eggert <eggert@cs.ucla.edu>
16681
16682 * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
16683 This fixes some race conditions on the permissions of any newly
16684 created file.
16685
16686 * alloc.c (valid_pointer_p): Use pipe, not open.
16687 This fixes some permissions issues when debugging.
16688
16689 * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)
16690 If fchown fails to set both uid and gid, try to set just gid,
16691 as that is sometimes allowed. Adjust the file's mode to eliminate
16692 setuid or setgid bits that are inappropriate if fchown fails.
16693
166942011-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
16695
16696 * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ
16697 to compare Lisp_Objects.
16698 * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to
16699 global_gnutls_log_level, don't mistake it for a Lisp_Object.
16700 (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses.
16701
167022011-07-17 Andreas Schwab <schwab@linux-m68k.org>
16703
16704 * lread.c (read_integer): Unread even EOF character.
16705 (read1): Likewise. Properly record start position of symbol.
16706
16707 * lread.c (read1): Read `#:' as empty uninterned symbol if no
16708 symbol character follows.
16709
167102011-07-17 Paul Eggert <eggert@cs.ucla.edu>
16711
16712 * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002)
16713 This works around a problem with the previous change to Fcopy_file.
16714 Recent glibc declares fchown with __attribute__((warn_unused_result)),
16715 and without this change, GCC might complain about discarding
16716 fchown's return value.
16717
167182011-07-16 Juanma Barranquero <lekktu@gmail.com>
16719
16720 * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059).
16721
167222011-07-16 Paul Eggert <eggert@cs.ucla.edu>
16723
16724 * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002)
16725
167262011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
16727 7711
16728 * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since 77122013-06-20 Eli Zaretskii <eliz@gnu.org>
16729 it's used from the C level.
16730 7713
16731 * process.c: Use the same condition for POLL_FOR_INPUT in both 7714 * w32fns.c (w32_wnd_proc): Don't compute the header line and mode
16732 keyboard.c and process.c (bug#1858). 7715 line dimensions here, to avoid race conditions with the main
7716 thread. (Bug#14062, bug#14630, bug#14669)
16733 7717
167342011-07-09 Lawrence Mitchell <wence@gmx.li> 7718 * w32term.c (w32_draw_window_cursor): Compute the header line and
7719 mode line dimensions here.
7720 <w32_system_caret_window, w32_system_caret_hdr_height>:
7721 <w32_system_caret_mode_height>: New variables.
16735 7722
16736 * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable. 7723 * w32term.h: Declare them.
16737 (Fgnutls_boot): Use it.
16738 7724
167392011-07-15 Andreas Schwab <schwab@linux-m68k.org> 77252013-06-20 Paul Eggert <eggert@cs.ucla.edu>
16740 7726
16741 * doc.c (Fsubstitute_command_keys): Revert last change. 7727 * alloc.c (die): Move "assertion failed" string here ...
7728 * lisp.h (eassert): ... from here. Also, suppress evaluation of
7729 COND when SUPPRESS_CHECKING. This shrinks the executable text
7730 size by 0.8% to 2.2% when configured with --enable-checking,
7731 depending on optimization flags (GCC 4.8.1 x86-64).
16742 7732
167432011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org> 7733 * floatfns.c (Flog10): Move to Lisp (marked obsolete there).
16744 7734
16745 * doc.c (Fsubstitute_command_keys): Clarify that \= really only 77352013-06-20 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
16746 quotes the next character, and doesn't affect other longer
16747 sequences (bug#8935).
16748 7736
16749 * lread.c (syms_of_lread): Clarify that is isn't only 7737 * floatfns.c (Flog) [HAVE_LOG2]: Use log2 if available and if the
16750 `eval-buffer' and `eval-defun' that's affected by 7738 base is 2; this is more accurate.
16751 `lexical-binding' (bug#8460).
16752 7739
167532011-07-15 Eli Zaretskii <eliz@gnu.org> 77402013-06-19 Juanma Barranquero <lekktu@gmail.com>
16754 7741
16755 * xdisp.c (move_it_in_display_line_to): Fix vertical motion with 7742 * sound.c (string_default): Move to !WINDOWSNT section.
16756 bidi redisplay when a line includes both an image and is truncated. 7743 (Fplay_sound_internal) [WINDOWSNT]: Remove i_result to avoid warning.
16757 7744
167582011-07-14 Paul Eggert <eggert@cs.ucla.edu> 77452013-06-19 Paul Eggert <eggert@cs.ucla.edu>
16759 7746
16760 Fix minor problems found by static checking. 7747 * sound.c: Integer cleanups.
16761 * bidi.c (bidi_cache_size): Now EMACS_INT, not size_t. 7748 Remove unnecessary forward decls.
16762 (elsz): Now a signed constant, not a size_t var. We prefer signed 7749 (struct sound_device): The 'file' member is now a Lisp_Object, not
16763 types to unsigned, to avoid integer comparison confusion. Without 7750 a char *, so that we needn't invoke alloca on a huge size.
16764 this change, GCC 4.6.1 with -Wunsafe-loop-optimizations complains 7751 (Fplay_sound_internal): Adjust to this.
16765 "cannot optimize loop, the loop counter may overflow", a symptom 7752 (string_default): New function.
16766 of the confusion. 7753 (vox_open, vox_init, alsa_open, alsa_configure, alsa_init):
16767 * indent.c (Fvertical_motion): Mark locals as initialized. 7754 Use it to adjust to the struct sound_device change.
16768 * xdisp.c (reseat_to_string): Fix pointer signedness issue. 7755 (parse_sound, wav_init, au_init, alsa_init): Use bool for booleans.
16769 7756 (be2hs) [0]: Remove.
167702011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org> 7757
16771 7758 * syntax.c (skip_chars): Don't use uninitialized storage
16772 * search.c (Fre_search_backward): Mention `case-fold-search' in 7759 when searching a multibyte buffer for characters that are not in a
16773 all the re_search_* functions (bug#8138). 7760 unibyte string that contains non-ASCII characters.
16774 7761
16775 * keyboard.c (Fopen_dribble_file): Document when the file is 77622013-06-18 Jan Djärv <jan.h.d@swipnet.se>
16776 closed (bug#8056). 7763
16777 7764 * process.c: Include xgselect.h if HAVE_GLIB. Include glib.h
167782011-07-14 Eli Zaretskii <eliz@gnu.org> 7765 if HAVE_GLIB && ! WINDOWSNT (Bug#14654).
16779 7766
16780 * bidi.c (bidi_dump_cached_states): Fix format of displaying 77672013-06-18 Paul Eggert <eggert@cs.ucla.edu>
16781 bidi_cache_idx. 7768
16782 7769 * conf_post.h: Add comments for INLINE, EXTERN_INLINE, etc.
16783 Support bidi reordering of display and overlay strings. 7770
16784 * xdisp.c (compute_display_string_pos) 77712013-06-18 Kenichi Handa <handa@gnu.org>
16785 (compute_display_string_end): Accept additional argument STRING. 7772
16786 (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL. 7773 * font.c (Ffont_spec): Signal an error for an invalid font name
16787 (reseat_to_string): Initialize bidi_it->string.s and 7774 (Bug#14648).
16788 bidi_it->string.schars. 7775
16789 (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to 77762013-06-18 Paul Eggert <eggert@cs.ucla.edu>
16790 NULL (avoids a crash in bidi_paragraph_init). 7777
16791 Initialize itb.string.lstring. 7778 Porting fixes for merged specpdl and backtrace stacks (Bug#14643).
16792 (init_iterator): Call bidi_init_it only of a valid 7779 In particular this ports to 32-bit sparc Sun cc.
16793 buffer position was specified. Initialize paragraph_embedding to 7780 * eval.c (init_eval_once, grow_specpdl): Allocate a specbinding
16794 L2R. 7781 array with a dummy element at specpdl[-1], so that its address can
16795 (reseat_to_string): Initialize the bidi iterator. 7782 be taken portably.
16796 (display_string): If we need to ignore text properties of 7783 (unbind_to): Do not copy the binding; not needed, now that we
16797 LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The 7784 copy old_value in the one place where the copy is needed.
16798 original value of -1 will not work with bidi.) 7785 * fileio.c (Fwrite_region): Use ptrdiff_t, not int, for specpdl count.
16799 (compute_display_string_pos): First arg is now struct 7786 * lisp.h (BITS_PER_PTRDIFF_T): Remove; no longer needed.
16800 `text_pos *'; all callers changed. Support display properties on 7787 (union specbinding): Rename from struct specbinding. Redo layout
16801 Lisp strings. 7788 to avoid the need for 'ptrdiff_t nargs : BITS_PER_PTRDIFF_T - 1;',
16802 (compute_display_string_end): Support display properties on Lisp 7789 which is not portable. With Sun C 5.12 32-bit sparc, the
16803 strings. 7790 declaration causes nargs to be an unsigned bitfield, a behavior
16804 (init_iterator, reseat_1, reseat_to_string): Initialize the 7791 that the C standard allows; but Emacs wants nargs to be signed.
16805 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS 7792 The overall type is now a union of structures rather than a
16806 when iterating on a string not from display properties). 7793 structure of union of structures, and the 'kind' member is now a
16807 (compute_display_string_pos, compute_display_string_end): 7794 bitfield, so that the overall type doesn't grow. All uses changed.
16808 Fix calculation of the object to scan. Fixes an error when using 7795 * process.c (Fmake_serial_process): Remove unnecessary initialization.
16809 arrow keys. 7796
16810 (next_element_from_buffer): Don't abort when IT_CHARPOS is before 77972013-06-17 Paul Eggert <eggert@cs.ucla.edu>
16811 base_level_stop; instead, set base_level_stop to BEGV. 7798
16812 Fixes crashes in vertical-motion. 7799 * frame.c (x_report_frame_params): Cast parent_desc to uintptr_t.
16813 (next_element_from_buffer): Improve commentary for when 7800 Needed if HAVE_NTGUI. Reported by Juanma Barranquero.
16814 the iterator is before prev_stop. 7801
16815 (init_iterator): Initialize bidi_p from the default value of 7802 * nsfont.m (ns_registry_to_script): Parenthesize while expression.
16816 bidi-display-reordering, not from buffer-local value. Use the 7803
16817 buffer-local value only if initializing for buffer iteration. 78042013-06-17 Eli Zaretskii <eliz@gnu.org>
16818 (handle_invisible_prop): Support invisible properties on strings 7805
16819 that are being bidi-reordered. 7806 * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT
16820 (set_iterator_to_next): Support bidi reordering of C strings and 7807 unless we know that the window w's frame is a frame object.
16821 Lisp strings. 7808 Another attempt at solving bug#14062 and bug#14630.
16822 (next_element_from_string): Support bidi reordering of Lisp 7809
16823 strings. 78102013-06-17 Lars Magne Ingebrigtsen <larsi@gnus.org>
16824 (handle_stop_backwards): Support Lisp strings as well. 7811
16825 (display_string): Support display of R2L glyph rows. 7812 * textprop.c (property_set_type): New enum.
16826 Use IT_STRING_CHARPOS when displaying from a Lisp string. 7813 (add_properties): Allow appending/prepending text properties.
16827 (init_iterator): Don't initialize it->bidi_p for strings 7814 (add_text_properties_1): Factored out of Fadd_text_properties.
16828 here. 7815 (Fadd_text_properties): Move all the code into
16829 (reseat_to_string): Initialize it->bidi_p for strings here. 7816 add_text_properties_1.
16830 (next_element_from_string, next_element_from_c_string) 7817 (Fadd_face_text_property): New function that calls
16831 (next_element_from_buffer): Add xassert's for correspondence 7818 add_text_properties_1.
16832 between IT's object being iterated and it->bidi_it.string 7819
16833 structure. 78202013-06-17 Paul Eggert <eggert@cs.ucla.edu>
16834 (face_before_or_after_it_pos): Support bidi iteration. 7821
16835 (next_element_from_c_string): Handle the case of the first string 7822 Move functions from lisp.h to individual modules when possible.
16836 character that is not the first one in the visual order. 7823 From a suggestion by Andreas Schwab in <http://bugs.gnu.org/11935#68>.
16837 (get_visually_first_element): New function, refactored from common 7824 * alloc.c (XFLOAT_INIT, set_symbol_name):
16838 parts of next_element_from_buffer, next_element_from_string, and 7825 * buffer.c (CHECK_OVERLAY):
16839 next_element_from_c_string. 7826 * chartab.c (CHECK_CHAR_TABLE, set_char_table_ascii)
16840 (tool_bar_lines_needed, redisplay_tool_bar) 7827 (set_char_table_parent):
16841 (display_menu_bar): Force left-to-right direction. Add a FIXME 7828 * coding.c (CHECK_NATNUM_CAR, CHECK_NATNUM_CDR):
16842 comment for making that be controlled by a user option. 7829 * data.c (BOOLFWDP, INTFWDP, KBOARD_OBJFWDP, OBJFWDP, XBOOLFWD)
16843 (push_it, pop_it): Save and restore the state of the 7830 (XKBOARD_OBJFWD, XINTFWD, XOBJFWD, CHECK_SUBR, set_blv_found)
16844 bidi iterator. Save and restore the bidi_p flag. 7831 (blv_value, set_blv_value, set_blv_where, set_blv_defcell)
16845 (pop_it): Iterate out of display property for string iteration as 7832 (set_blv_valcell):
16846 well. 7833 * emacs.c (setlocale) [!HAVE_SETLOCALE]:
16847 (iterate_out_of_display_property): Support iteration over strings. 7834 * eval.c (specpdl_symbol, specpdl_old_value, specpdl_where)
16848 (handle_single_display_spec): Set up it->bidi_it for iteration 7835 (specpdl_arg, specpdl_func, backtrace_function, backtrace_nargs)
16849 over a display string, and call bidi_init_it. 7836 (backtrace_args, backtrace_debug_on_exit):
16850 (handle_single_display_spec, next_overlay_string) 7837 * floatfns.c (CHECK_FLOAT):
16851 (get_overlay_strings_1, push_display_prop): Set up the bidi 7838 * fns.c (CHECK_HASH_TABLE, CHECK_LIST_END)
16852 iterator for displaying display or overlay strings. 7839 (set_hash_key_and_value, set_hash_next, set_hash_next_slot)
16853 (forward_to_next_line_start): Don't use the shortcut if 7840 (set_hash_hash, set_hash_hash_slot, set_hash_index)
16854 bidi-iterating. 7841 (set_hash_index_slot):
16855 (back_to_previous_visible_line_start): If handle_display_prop 7842 * keymap.c (CHECK_VECTOR_OR_CHAR_TABLE):
16856 pushed the iterator stack, restore the internal state of the bidi 7843 * marker.c (CHECK_MARKER):
16857 iterator by calling bidi_pop_it same number of times. 7844 * textprop.c (CHECK_STRING_OR_BUFFER):
16858 (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero, 7845 * window.c (CHECK_WINDOW_CONFIGURATION):
16859 and we are bidi-iterating, don't decrement the iterator position; 7846 Move here from lisp.h, and make these functions static rather than
16860 instead, set the first_elt flag in the bidi iterator, to produce 7847 extern inline.
16861 the same effect. 7848 * buffer.c (Qoverlayp):
16862 (reseat_1): Remove redundant setting of string_from_display_prop_p. 7849 * data.c (Qsubrp):
16863 (push_display_prop): xassert that we are iterating a buffer. 7850 * fns.c (Qhash_table_p):
16864 (push_it, pop_it): Save and restore paragraph_embedding member. 7851 * window.c (Qwindow_configuration_p):
7852 Now static.
7853 * lisp.h: Remove the abovementioned defns and decls.
7854
7855 Use functions, not macros, for XINT etc (Bug#11935).
7856 In lisp.h, prefer functions to function-like macros, and
7857 constants to object-like macros, when either will do. This:
7858 . simplifies use, as there's no more need to worry about
7859 arguments' side effects being evaluated multiple times.
7860 . makes the code easier to debug on some platforms.
7861 However, when using gcc -O0, keep using function-like macros
7862 for a few critical operations, for performance reasons.
7863 This sort of thing isn't needed with gcc -Og, but -Og
7864 is a GCC 4.8 feature and isn't widely-enough available yet.
7865 * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]:
7866 Remove enum lsb_bits; no longer needed.
7867 (allocate_misc, free_misc): Don't use XMISCTYPE as an lvalue.
7868 * buffer.c (Qoverlap):
7869 * data.c (Qsubrp):
7870 * fns.c (Qhash_table_p):
7871 Now extern, so lisp.h can use these symbols.
7872 * dispextern.h: Include character.h, for MAX_CHAR etc.
7873 (GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE)
7874 (SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
7875 (SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P)
7876 (GLYPH_CODE_P): Move here from lisp.h.
7877 (GLYPH_CHAR, GLYPH_FACE, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
7878 (GLYPH_CHAR_VALID_P, GLYPH_CODE_P): Now functions, not macros.
7879 (GLYPH_MODE_LINE_FACE): Now enums, not macros.
7880 * eval.c (Fautoload): Cast XUNTAG output to intptr_t, since
7881 XUNTAG now returns void *.
7882 * lisp.h (lisp_h_XLI, lisp_h_XIL, lisp_h_CHECK_LIST_CONS)
7883 (lisp_h_CHECK_NUMBER CHECK_SYMBOL, lisp_h_CHECK_TYPE)
7884 (lisp_h_CONSP, lisp_h_EQ, lisp_h_FLOATP, lisp_h_INTEGERP)
7885 (lisp_h_MARKERP, lisp_h_MISCP, lisp_h_NILP)
7886 (lisp_h_SET_SYMBOL_VAL, lisp_h_SYMBOL_CONSTANT_P)
7887 (lisp_h_SYMBOL_VAL, lisp_h_SYMBOLP, lisp_h_VECTORLIKEP)
7888 (lisp_h_XCAR, lisp_h_XCDR, lisp_h_XCONS, lisp_h_XHASH)
7889 (lisp_h_XPNTR, lisp_h_XSYMBOL):
7890 New macros, renamed from their sans-lisp_h_ counterparts.
7891 (XLI, XIL, CHECK_LIST_CONS, CHECK_NUMBER CHECK_SYMBOL)
7892 (CHECK_TYPE, CONSP, EQ, FLOATP, INTEGERP, MARKERP)
7893 (MISCP, NILP, SET_SYMBOL_VAL, SYMBOL_CONSTANT_P, SYMBOL_VAL, SYMBOLP)
7894 (VECTORLIKEP, XCAR, XCDR, XCONS, XHASH, XPNTR, XSYMBOL):
7895 If compiling via GCC without optimization, define these as macros
7896 in addition to inline functions.
7897 To disable this, compile with -DINLINING=0.
7898 (LISP_MACRO_DEFUN, LISP_MACRO_DEFUN_VOID): New macros.
7899 (check_cons_list) [!GC_CHECK_CONS_LIST]: Likewise.
7900 (make_number, XFASTINT, XINT, XTYPE, XUNTAG): Likewise, but
7901 hand-optimize only in the USE_LSB_TAG case, as GNUish hosts do that.
7902 (INTMASK, VALMASK): Now macros, since static values cannot be
7903 accessed from extern inline functions.
7904 (VALMASK): Also a constant, for benefit of old GDB.
7905 (LISP_INT_TAG_P): Remove; no longer needed as the only caller
7906 is INTEGERP, which can fold it in.
7907 (XLI, XIL, XHASH, XTYPE, XINT, XFASTINT, XUINT)
7908 (make_number, XPNTR, XUNTAG, EQ, XCONS, XVECTOR, XSTRING, XSYMBOL)
7909 (XFLOAT, XPROCESS, XWINDOW, XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE)
7910 (XSUB_CHAR_TABLE, XBOOL_VECTOR, make_lisp_ptr, CHECK_TYPE)
7911 (CHECK_STRING_OR_BUFFER, XCAR, XCDR, XSETCAR, XSETCDR, CAR, CDR)
7912 (CAR_SAFE, CDR_SAFE, STRING_MULTIBYTE, SDATA, SSDATA, SREF, SSET)
7913 (SCHARS, STRING_BYTES, SBYTES, STRING_SET_CHARS, STRING_COPYIN, AREF)
7914 (ASIZE, ASET, CHAR_TABLE_REF_ASCII, CHAR_TABLE_REF)
7915 (CHAR_TABLE_SET, CHAR_TABLE_EXTRA_SLOTS, SYMBOL_VAL, SYMBOL_ALIAS)
7916 (SYMBOL_BLV, SYMBOL_FWD, SET_SYMBOL_VAL, SET_SYMBOL_ALIAS)
7917 (SET_SYMBOL_BLV, SET_SYMBOL_FWD, SYMBOL_NAME, SYMBOL_INTERNED_P)
7918 (SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P, SYMBOL_CONSTANT_P)
7919 (XHASH_TABLE, HASH_TABLE_P, CHECK_HASH_TABLE, HASH_KEY, HASH_VALUE)
7920 (HASH_NEXT, HASH_HASH, HASH_INDEX, HASH_TABLE_SIZE)
7921 (XMISC, XMISCANY, XMARKER, XOVERLAY, XSAVE_VALUE, XFWDTYPE)
7922 (XINTFWD, XBOOLFWD, XOBJFWD, XBUFFER_OBJFWD, XKBOARD_OBJFWD)
7923 (XFLOAT_DATA, XFLOAT_INIT, NILP, NUMBERP, NATNUMP)
7924 (RANGED_INTEGERP, CONSP, FLOATP, MISCP, STRINGP, SYMBOLP)
7925 (INTEGERP, VECTORLIKEP, VECTORP, OVERLAYP)
7926 (MARKERP, SAVE_VALUEP, AUTOLOADP, INTFWDP, BOOLFWDP, OBJFWDP)
7927 (BUFFER_OBJFWDP, KBOARD_OBJFWDP, PSEUDOVECTOR_TYPEP)
7928 (PSEUDOVECTORP, WINDOW_CONFIGURATIONP, PROCESSP, WINDOWP)
7929 (TERMINALP, SUBRP, COMPILEDP, BUFFERP, CHAR_TABLE_P)
7930 (SUB_CHAR_TABLE_P, BOOL_VECTOR_P, FRAMEP, IMAGEP, ARRAYP)
7931 (CHECK_LIST, CHECK_LIST_CONS, CHECK_LIST_END, CHECK_STRING)
7932 (CHECK_STRING_CAR, CHECK_CONS, CHECK_SYMBOL, CHECK_CHAR_TABLE)
7933 (CHECK_VECTOR, CHECK_VECTOR_OR_STRING, CHECK_ARRAY)
7934 (CHECK_VECTOR_OR_CHAR_TABLE, CHECK_BUFFER, CHECK_WINDOW)
7935 (CHECK_WINDOW_CONFIGURATION, CHECK_PROCESS, CHECK_SUBR)
7936 (CHECK_NUMBER, CHECK_NATNUM, CHECK_MARKER, XFLOATINT)
7937 (CHECK_FLOAT, CHECK_NUMBER_OR_FLOAT, CHECK_OVERLAY)
7938 (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR, CHECK_NATNUM_CAR)
7939 (CHECK_NATNUM_CDR, FUNCTIONP, SPECPDL_INDEX, LOADHIST_ATTACH)
7940 Now functions.
7941 (check_cons_list) [!GC_CHECK_CONS_LIST]: New empty function.
7942 (LISP_MAKE_RVALUE, TYPEMASK): Remove; no longer needed.
7943 (VALMASK): Define in one place rather than in two, merging the
7944 USE_LSB_TAG parts; this is simpler.
7945 (aref_addr, gc_aset, MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM)
7946 (max, min, struct Lisp_String, UNSIGNED_CMP, ASCII_CHAR_P):
7947 Move up, to avoid use before definition.
7948 Also include "globals.h" earlier, for the same reason.
7949 (make_natnum): New function.
7950 (XUNTAG): Now returns void *, not intptr_t, as this means fewer casts.
7951 (union Lisp_Fwd, BOOLFWDP, BOOL_VECTOR_P, BUFFER_OBJFWDP, BUFFERP)
7952 (CHAR_TABLE_P, CHAR_TABLE_REF_ASCII, CONSP, FLOATP, INTEGERP, INTFWDP)
7953 (KBOARD_OBJFWDP, MARKERP, MISCP, NILP, OBJFWDP, OVERLAYP, PROCESSP)
7954 (PSEUDOVECTORP, SAVE_VALUEP, STRINGP, SUB_CHAR_TABLE_P, SUBRP, SYMBOLP)
7955 (VECTORLIKEP, WINDOWP, Qoverlayp, char_table_ref, char_table_set)
7956 (char_table_translate, Qarrayp, Qbufferp, Qbuffer_or_string_p)
7957 (Qchar_table_p, Qconsp, Qfloatp, Qintegerp, Qlambda, Qlistp, Qmarkerp)
7958 (Qnil, Qnumberp, Qsubrp, Qstringp, Qsymbolp, Qvectorp)
7959 (Qvector_or_char_table_p, Qwholenump, Ffboundp, wrong_type_argument)
7960 (initialized, Qhash_table_p, extract_float, Qprocessp, Qwindowp)
7961 (Qwindow_configuration_p, Qimage): New forward declarations.
7962 (XSETFASTINT): Simplify by rewriting in terms of make_natnum.
7963 (STRING_COPYIN): Remove; unused.
7964 (XCAR_AS_LVALUE, XCDR_AS_LVALUE): Remove these macros, replacing with ...
7965 (xcar_addr, xcdr_addr): New functions. All uses changed.
7966 (IEEE_FLOATING_POINT): Now a constant, not a macro.
7967 (GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE)
7968 (SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
7969 (SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P)
7970 (GLYPH_CODE_P): Move to dispextern.h, to avoid define-before-use.
7971 (TYPE_RANGED_INTEGERP): Simplify.
7972 (Qsubrp, Qhash_table_p, Qoverlayp): New extern decls.
7973 (setlocale, fixup_locale, synchronize_system_messages_locale)
7974 (synchronize_system_time_locale) [!HAVE_SETLOCALE]:
7975 Now empty functions, not macros.
7976 (functionp): Return bool, not int.
7977 * window.c (Qwindow_configuration_p): Now extern,
7978 so window.h can use it.
7979 * window.h (Qwindowp): Move decl back to lisp.h.
7980
79812013-06-15 Eli Zaretskii <eliz@gnu.org>
7982
7983 * xdisp.c (Fline_pixel_height): New function, required for solving
7984 bug #14567.
7985
79862013-06-15 Paul Eggert <eggert@cs.ucla.edu>
7987
7988 * fns.c (Fcopy_sequence): Simplify XTYPE calculation.
7989
79902013-06-13 Stefan Monnier <monnier@iro.umontreal.ca>
7991
7992 * lread.c (syms_of_lread):
7993 * fns.c (Fprovide): Adjust to new format of after-load-alist.
7994
79952013-06-13 Kelly Dean <kellydeanch@yahoo.com> (tiny change)
7996
7997 * fileio.c (Fdo_auto_save): Trap errors in auto-save-hook. (Bug#14479)
7998
79992013-06-12 Xue Fuqiao <xfq.free@gmail.com>
8000
8001 * fileio.c (expand_file_name): Doc fix.
8002
80032013-06-11 Paul Eggert <eggert@cs.ucla.edu>
8004
8005 Tickle glib by waiting for Emacs itself, not for process 0 (Bug#14569).
8006 * process.c (init_process_emacs) [HAVE_GLIB && !WINDOWSNT]:
8007 Wait for self, not for 0. This can't hurt on GNU or similar
8008 system, and may help with Cygwin.
8009
8010 * keyboard.c: Don't use PROP (...) as an lvalue.
8011 (parse_tool_bar_item) [!USE_GTK && !HAVE_NS]:
8012 Use set_prop (A, B), not PROP (A) = B.
8013
80142013-06-10 Eli Zaretskii <eliz@gnu.org>
8015
8016 * xdisp.c (get_it_property): Use it->window instead of generating
8017 a Lisp object from it->w.
8018
80192013-06-09 Eli Zaretskii <eliz@gnu.org>
8020
8021 * xdisp.c (get_it_property): If it->object is a buffer, pass to
8022 get-char-property the window that is being rendered, instead of
8023 the buffer, to support window-specific overlays. (Bug#14575)
8024 (compute_display_string_pos): When W is NULL, use the current
8025 buffer as the object to pass to get-char-property.
8026 (Fcurrent_bidi_paragraph_direction): Assign NULL to the window
8027 pointer member of the bidi iterator, since no window is pertinent
8028 to this function.
8029
80302013-06-08 Eli Zaretskii <eliz@gnu.org>
8031
8032 * bidi.c (bidi_fetch_char): Accept additional argument, the window
8033 being displayed, and pass it to compute_display_string_pos.
8034 (bidi_level_of_next_char, bidi_resolve_explicit_1)
8035 (bidi_paragraph_init): All callers changed.
8036
8037 * xdisp.c (init_from_display_pos, init_iterator)
16865 (handle_single_display_spec, next_overlay_string) 8038 (handle_single_display_spec, next_overlay_string)
16866 (get_overlay_strings_1, reseat_1, reseat_to_string) 8039 (get_overlay_strings_1, reseat_1, reseat_to_string)
16867 (push_display_prop): Set up the `unibyte' member of bidi_it.string 8040 (push_prefix_prop, Fcurrent_bidi_paragraph_direction):
16868 correctly. Don't assume unibyte strings are not bidi-reordered. 8041 Set bidi_it.w member from it->w.
16869 (compute_display_string_pos) 8042 (compute_display_string_pos): Accept additional argument, the
16870 (compute_display_string_end): Fix handling the case of C string. 8043 window being displayed, and pass it to Fget_char_property.
16871 (push_it, pop_it): Save and restore from_disp_prop_p. 8044 (Bug#14575)
16872 (handle_single_display_spec, push_display_prop): Set the
16873 from_disp_prop_p flag.
16874 (get_overlay_strings_1): Reset the from_disp_prop_p flag.
16875 (pop_it): Call iterate_out_of_display_property only if we are
16876 popping after iteration over a string that came from a display
16877 property. Fix a typo in popping stretch info. Add an assertion
16878 for verifying that the iterator position is in sync with the bidi
16879 iterator.
16880 (handle_single_display_spec, get_overlay_strings_1)
16881 (push_display_prop): Fix initialization of paragraph direction for
16882 string when that of the parent object is not yet determined.
16883 (reseat_1): Call bidi_init_it to resync the bidi
16884 iterator with IT's position. (Bug#7616)
16885 (find_row_edges): If ROW->start.pos gives position
16886 smaller than min_pos, use it as ROW->minpos. (Bug#7616)
16887 (handle_stop, back_to_previous_visible_line_start, reseat_1):
16888 Reset the from_disp_prop_p flag.
16889 (SAVE_IT, RESTORE_IT): New macros.
16890 (pos_visible_p, face_before_or_after_it_pos)
16891 (back_to_previous_visible_line_start)
16892 (move_it_in_display_line_to, move_it_in_display_line)
16893 (move_it_to, move_it_vertically_backward, move_it_by_lines)
16894 (try_scrolling, redisplay_window, display_line): Use them when
16895 saving a temporary copy of the iterator and restoring it back.
16896 (back_to_previous_visible_line_start, reseat_1)
16897 (init_iterator): Empty the bidi cache "stack".
16898 (move_it_in_display_line_to): If iterator ended up at
16899 EOL, but we never saw any buffer positions smaller than
16900 to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor
16901 motion in bidi-reordered lines.
16902 (move_it_in_display_line_to): Record prev_method and prev_pos
16903 immediately before the call to set_iterator_to_next. Fixes cursor
16904 motion in bidi-reordered lines with stretch glyphs and strings
16905 displayed in margins. (Bug#8133) (Bug#8867)
16906 Return MOVE_POS_MATCH_OR_ZV only if iterator position is past
16907 TO_CHARPOS.
16908 (pos_visible_p): Support positions in bidi-reordered lines.
16909 Save and restore bidi cache.
16910
16911 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int.
16912 (bidi_paragraph_info): Delete unused struct.
16913 (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT.
16914 (bidi_cache_start): New variable.
16915 (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not
16916 to zero.
16917 (bidi_cache_fetch_state, bidi_cache_search)
16918 (bidi_cache_find_level_change, bidi_cache_iterator_state)
16919 (bidi_cache_find, bidi_peek_at_next_level)
16920 (bidi_level_of_next_char, bidi_find_other_level_edge)
16921 (bidi_move_to_visually_next): Compare cache index with
16922 bidi_cache_start rather than with zero.
16923 (bidi_fetch_char): Accept new argument STRING; all callers
16924 changed. Support iteration over a string. Support strings with
16925 display properties. Support unibyte strings. Fix the type of
16926 `len' according to what STRING_CHAR_AND_LENGTH expects.
16927 (bidi_paragraph_init, bidi_resolve_explicit_1)
16928 (bidi_resolve_explicit, bidi_resolve_weak)
16929 (bidi_level_of_next_char, bidi_move_to_visually_next):
16930 Support iteration over a string.
16931 (bidi_set_sor_type, bidi_resolve_explicit_1)
16932 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
16933 can now be zero (for strings); special values 0 and -1 were
16934 changed to -1 and -2, respectively.
16935 (bidi_char_at_pos): New function.
16936 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak):
16937 Call it instead of FETCH_MULTIBYTE_CHAR.
16938 (bidi_move_to_visually_next): Abort if charpos or bytepos were not
16939 initialized to valid values.
16940 (bidi_init_it): Don't initialize charpos and bytepos with invalid
16941 values.
16942 (bidi_level_of_next_char): Allow the sentinel "position" to pass
16943 the test for valid cached positions. Fix the logic for looking up
16944 the sentinel state in the cache. GCPRO the Lisp string we are
16945 iterating.
16946 (bidi_push_it, bidi_pop_it): New functions.
16947 (bidi_initialize): Initialize the bidi cache start stack pointer.
16948 (bidi_cache_ensure_space): New function, refactored from part of
16949 bidi_cache_iterator_state. Don't assume the required size is just
16950 one BIDI_CACHE_CHUNK away.
16951 (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE.
16952 (bidi_count_bytes, bidi_char_at_pos): New functions.
16953 (bidi_cache_search): Don't assume bidi_cache_last_idx is
16954 always valid if bidi_cache_idx is valid.
16955 (bidi_cache_find_level_change): xassert that bidi_cache_last_idx
16956 is valid if it's going to be used.
16957 (bidi_shelve_cache, bidi_unshelve_cache): New functions.
16958 (bidi_cache_fetch_state, bidi_cache_search)
16959 (bidi_cache_find_level_change, bidi_cache_ensure_space)
16960 (bidi_cache_iterator_state, bidi_cache_find)
16961 (bidi_find_other_level_edge, bidi_cache_start_stack):
16962 All variables related to cache indices are now EMACS_INT.
16963
16964 * dispextern.h (struct bidi_string_data): New structure.
16965 (struct bidi_it): New member `string'. Make flag members be 1-bit
16966 fields, and put them last in the struct.
16967 (compute_display_string_pos, compute_display_string_end):
16968 Update prototypes.
16969 (bidi_push_it, bidi_pop_it): Add prototypes.
16970 (struct iterator_stack_entry): New members bidi_p,
16971 paragraph_embedding, and from_disp_prop_p.
16972 (struct it): Member bidi_p is now a bit field 1 bit wide.
16973 (bidi_shelve_cache, bidi_unshelve_cache):
16974 Declare prototypes.
16975
16976 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
16977 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
16978 and vector-like objects.
16979
16980 * dispnew.c (buffer_posn_from_coords): Save and restore the bidi
16981 cache around display iteration.
16982
16983 * window.c (Fwindow_end, window_scroll_pixel_based)
16984 (displayed_window_lines, Frecenter): Save and restore the bidi
16985 cache around display iteration.
16986
169872011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
16988
16989 * editfns.c (Fdelete_region): Clarify the use of the named
16990 parameters (bug#6788).
16991
169922011-07-14 Martin Rudalics <rudalics@gmx.at>
16993
16994 * indent.c (Fvertical_motion): Set and restore w->pointm when
16995 saving and restoring the window's buffer (Bug#9006).
16996
169972011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
16998
16999 * editfns.c (Fstring_to_char): Clarify just what is returned
17000 (bug#6576). Text by Eli Zaretskii.
17001
170022011-07-13 Juanma Barranquero <lekktu@gmail.com>
17003
17004 * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059).
17005
170062011-07-13 Eli Zaretskii <eliz@gnu.org>
17007
17008 * buffer.c (mmap_find): Fix a typo.
17009
170102011-07-13 Johan Bockgård <bojohan@gnu.org>
17011
17012 Fix execution of x selection hooks.
17013 * xselect.c (Qx_lost_selection_functions)
17014 (Qx_sent_selection_functions): New vars.
17015 (syms_of_xselect): DEFSYM them.
17016 (x_handle_selection_request): Pass Qx_sent_selection_functions
17017 rather than Vx_sent_selection_functions to Frun_hook_with_args.
17018 (x_handle_selection_clear,x_clear_frame_selections):
17019 Pass Qx_lost_selection_functions rather than
17020 Vx_lost_selection_functions to Frun_hook_with_args.
17021 8045
170222011-07-13 Paul Eggert <eggert@cs.ucla.edu> 8046 * dispextern.h (struct bidi_it): New member w, the window being
8047 displayed.
8048 (compute_display_string_pos): Adjust prototype.
17023 8049
17024 * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking. 80502013-06-08 Jan Djärv <jan.h.d@swipnet.se>
17025 The old code sometimes used this field without initializing it.
17026 8051
17027 * alloc.c (gc_sweep): Don't read past end of array. 8052 * xgselect.c: Remove unneeded include xterm.h.
17028 In theory, the old code could also have corrupted Emacs internals,
17029 though it'd be very unlikely.
17030 8053
170312011-07-12 Andreas Schwab <schwab@linux-m68k.org> 8054 * process.c (wait_reading_process_output): Check for NS before GLIB.
8055 GLIB may be linked in due to rsvg, but ns_select must be called.
17032 8056
17033 * character.c (Fcharacterp): Don't advertise optional ignored 8057 * xgselect.c (xg_select): Remove call to window_system_available
17034 argument. (Bug#4026) 8058 and g_main_context_pending at the top, so Gdk events (i.e. file
8059 notify) are processed when Emacs is started with -nw.
17035 8060
170362011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org> 80612013-06-07 Eli Zaretskii <eliz@gnu.org>
17037 8062
17038 * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier 8063 * Makefile.in (ctagsfiles1, ctagsfiles2): Don't include *.m files.
17039 key" (bug#4257). 8064 (ctagsfiles3): New variable, includes only *.m files.
8065 (TAGS): Use an explicit language name in the regular expressions,
8066 to avoid transformation of '/SOMETHING' by MSYS to
8067 'c:\MSYS\SOMETHING'.
17040 8068
17041 * window.c (Fset_window_start): Doc fix (bug#4199). 80692013-06-07 Richard Copley <rcopley@gmail.com> (tiny change)
17042 (Fset_window_hscroll): Ditto.
17043 8070
170442011-07-12 Paul Eggert <eggert@cs.ucla.edu> 8071 * epaths.in: Fix commentary to PATH_SITELOADSEARCH.
17045 8072
17046 Fix minor new problems caught by GCC 4.6.1. 80732013-06-06 Eli Zaretskii <eliz@gnu.org>
17047 * term.c (init_tty): Remove unused local.
17048 * xsettings.c (store_monospaced_changed): Define this function only
17049 if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's
17050 not used otherwise.
17051 8074
170522011-07-12 Chong Yidong <cyd@stupidchicken.com> 8075 * xdisp.c (note_mouse_highlight): When mouse-highlight is off,
8076 still need to set the mouse pointer shape and activate help-echo.
8077 (Bug#14558)
17053 8078
17054 * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300). 80792013-06-06 Paul Eggert <eggert@cs.ucla.edu>
17055 8080
170562011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org> 8081 A few porting etc. fixes for the new file monitor code.
8082 See the thread containing
8083 <http://lists.gnu.org/archive/html/emacs-devel/2013-06/msg00109.html>.
8084 * gfilenotify.c (dir_monitor_callback, Fgfile_add_watch)
8085 (Fgfile_rm_watch): Don't assume EMACS_INT is the same width as a pointer.
8086 (dir_monitor_callback, Fgfile_rm_watch):
8087 Use assq_no_quit instead of Fassoc, for speed.
8088 (dir_monitor_callback, Fgfile_rm_watch):
8089 eassert that the monitor is a fixnum.
8090 (dir_monitor_callback): No need for CDR_SAFE.
8091 Simplify building of lisp with alternative tails.
8092 (Fgfile_add_watch, Fgfile_rm_watch):
8093 Do not assume glib functions set errno reliably on failure.
8094 (Fgfile_add_watch): Check that the monitor survives the XIL trick,
8095 and signal an error otherwise.
8096 (Fgfile_rm_watch): Prefer CONSP to !NILP.
8097 Use Fdelq instead of Fdelete, for speed.
17057 8098
17058 * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows 80992013-06-05 Eli Zaretskii <eliz@gnu.org>
17059 are the mini-buffer and the echo area (bug#3320).
17060 8100
17061 * term.c (init_tty): Remove support for supdup, c10 and perq 8101 * xdisp.c (handle_tool_bar_click): When mouse-highlight is off,
17062 terminals, which are no longer supported (bug#1482). 8102 don't insist on being invoked on a highlighted tool-bar button.
8103 Avoids losing tool-bar functionality when mouse-highlight is nil.
8104 (note_tool_bar_highlight, note_mode_line_or_margin_highlight):
8105 Don't highlight when mouse-highlight is nil.
8106 (note_mouse_highlight): When mouse-highlight is nil, don't return
8107 right away; instead, run tool-bar and mode-line highlight
8108 subroutine, clear any existing highlight, and revert the mouse
8109 pointer to its default shape. (Bug#14558)
17063 8110
170642011-07-10 Johan Bockgård <bojohan@gnu.org> 81112013-06-05 Stefan Monnier <monnier@iro.umontreal.ca>
17065 8112
17066 * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check. 8113 * lisp.mk (lisp): Add prog-mode.el.
17067 8114
170682011-07-10 Jan Djärv <jan.h.d@swipnet.se> 81152013-06-05 Paul Eggert <eggert@cs.ucla.edu>
17069
17070 * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event
17071 for non-popups (Bug#3642).
17072
170732011-07-10 Andreas Schwab <schwab@linux-m68k.org>
17074
17075 * alloc.c (reset_malloc_hooks): Protoize.
17076 * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge)
17077 (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise.
17078 * cm.c (losecursor): Likewise.
17079 * data.c (fmod): Likewise.
17080 * dispnew.c (swap_glyphs_in_rows): Likewise.
17081 * emacs.c (memory_warning_signal): Likewise.
17082 * floatfns.c (float_error): Likewise.
17083 * font.c (check_gstring, check_otf_features, otf_tag_symbol)
17084 (otf_open, font_otf_capability, generate_otf_features)
17085 (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
17086 Likewise.
17087 * image.c (pbm_read_file): Likewise.
17088 * indent.c (string_display_width): Likewise.
17089 * intervals.c (check_for_interval, search_for_interval)
17090 (inc_interval_count, count_intervals, root_interval)
17091 (adjust_intervals_for_insertion, make_new_interval): Likewise.
17092 * lread.c (defalias): Likewise.
17093 * ralloc.c (r_alloc_check): Likewise.
17094 * regex.c (set_image_of_range_1, set_image_of_range)
17095 (regex_grow_registers): Likewise.
17096 * sysdep.c (strerror): Likewise.
17097 * termcap.c (valid_filename_p, tprint, main): Likewise.
17098 * tparam.c (main): Likewise.
17099 * unexhp9k800.c (run_time_remap, save_data_space)
17100 (update_file_ptrs, read_header, write_header, calculate_checksum)
17101 (copy_file, copy_rest, display_header): Likewise.
17102 * widget.c (mark_shell_size_user_specified, create_frame_gcs):
17103 Likewise.
17104 * xdisp.c (check_it): Likewise.
17105 * xfaces.c (register_color, unregister_color, unregister_colors):
17106 Likewise.
17107 * xfns.c (print_fontset_result): Likewise.
17108 * xrdb.c (member, fatal, main): Likewise.
17109
171102011-07-10 Paul Eggert <eggert@cs.ucla.edu>
17111
17112 Fix minor problems found by static checking (Bug#9031).
17113 * chartab.c (char_table_set_range, map_sub_char_table):
17114 Remove unused locals.
17115 (uniprop_table): Now static.
17116 * composite.c (_work_char): Remove unused static var.
17117
171182011-07-09 Juanma Barranquero <lekktu@gmail.com>
17119
17120 * chartab.c (uniprop_table_uncompress): Remove unused local variable.
17121
171222011-07-09 Jan Djärv <jan.h.d@swipnet.se>
17123
17124 * gtkutil.c (qttip_cb): Remove code without function.
17125
171262011-07-09 Eli Zaretskii <eliz@gnu.org>
17127
17128 * w32.c (pthread_sigmask): New stub.
17129
171302011-07-08 Paul Eggert <eggert@cs.ucla.edu>
17131
17132 Use pthread_sigmask, not sigprocmask (Bug#9010).
17133 sigprocmask is portable only for single-threaded applications, and
17134 Emacs can be multi-threaded when it uses GTK.
17135 * Makefile.in (LIB_PTHREAD_SIGMASK): New macro.
17136 (LIBES): Use it.
17137 * callproc.c (Fcall_process):
17138 * process.c (create_process):
17139 * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask):
17140 Use pthread_sigmask, not sigprocmask.
17141 8116
171422011-07-08 Jan Djärv <jan.h.d@swipnet.se> 8117 Chain glib's SIGCHLD handler from Emacs's (Bug#14474).
8118 * process.c (dummy_handler): New function.
8119 (lib_child_handler): New static var.
8120 (handle_child_signal): Invoke it.
8121 (catch_child_signal): If a library has set up a signal handler,
8122 save it into lib_child_handler.
8123 (init_process_emacs): If using glib and not on Windows, tickle glib's
8124 child-handling code so that it initializes its private SIGCHLD handler.
8125 * syssignal.h (SA_SIGINFO): Default to 0.
8126 * xterm.c (x_term_init): Remove D-bus hack that I installed on May
8127 31; it should no longer be needed now.
17143 8128
17144 * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget. 81292013-06-05 Michael Albinus <michael.albinus@gmx.de>
17145 (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was
17146 wrong (Bug#8591).
17147 8130
171482011-07-08 Jan Djärv <jan.h.d@swipnet.se> 8131 * emacs.c (main) [HAVE_GFILENOTIFY]: Call globals_of_gfilenotify.
17149 8132
17150 * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment. 8133 * gfilenotify.c (globals_of_gfilenotify): New function.
17151 Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591). 8134 (syms_of_gfilenotify): Move global initialization there.
17152 (xg_hide_tooltip): Fix comment.
17153 8135
17154 * nsterm.m (initFrameFromEmacs): Don't use ns_return_types 8136 * lisp.h (globals_of_gfilenotify) [HAVE_GFILENOTIFY]: Add prototype.
17155 in registerServicesMenuSendTypes.
17156 (validRequestorForSendType): Don't check ns_return_types.
17157 8137
17158 * nsfns.m (Fx_open_connection): Put NSStringPboardType into 81382013-06-05 Stefan Monnier <monnier@iro.umontreal.ca>
17159 ns_return_type.
17160 8139
171612011-07-08 Jason Rumney <jasonr@gnu.org> 8140 * keymap.c (Fcurrent_active_maps, Fdescribe_buffer_bindings):
8141 * keyboard.c (menu_bar_items, tool_bar_items):
8142 * doc.c (Fsubstitute_command_keys): Voverriding_terminal_local_map does
8143 not override local keymaps any more.
17162 8144
17163 * w32term.c (x_make_frame_visible): Use SH_SHOWNORMAL rather than 81452013-06-04 Eli Zaretskii <eliz@gnu.org>
17164 SH_SHOW for hidden windows (Bug#5482).
17165 8146
17166 * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using 8147 * window.c (Fpos_visible_in_window_p): Doc fix. (Bug#14540)
17167 frame struct members of non-existent frames (Bug#6284).
17168 8148
171692011-07-08 Jan Djärv <jan.h.d@swipnet.se> 81492013-06-03 Eli Zaretskii <eliz@gnu.org>
17170 8150
17171 * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and 8151 * w32console.c (initialize_w32_display): Return the dimensions of
17172 variable firstTime not needed on OSX >= 10.6. 8152 the console window via 2 additional arguments, not via the current
17173 (setPosition): setFloatValue:knobProportion: is deprecated on OSX 8153 frame. This avoids crashes due to overrunning the bounds of
17174 >= 10.5. Use setKnobProportion, setDoubleValue. 8154 frame's decode_mode_spec_buffer, which is not resized following
8155 the change of the frame dimensions from the initial 10x10.
17175 8156
17176 * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4) 8157 * w32term.h (w32_initialize_display_info): Adjust prototype.
17177 (MAC_OS_X_VERSION_10_5): Define if not defined.
17178 (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6.
17179 (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6.
17180 (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6.
17181 8158
17182 * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods 8159 * term.c (init_tty): Take dimensions of the frame from the values
17183 cString and lossyCString on OSX >= 10.4. 8160 returned by initialize_w32_display.
17184 8161
17185 * nsmenu.m (fillWithWidgetValue): Don't use deprecated method 8162 * Makefile.in (GFILENOTIFY_CFLAGS, GFILENOTIFY_LIBS): New variables.
17186 sizeToFit on OSX >= 10.2. 8163 (ALL_CFLAGS): Add $(GFILENOTIFY_CFLAGS).
8164 (LIBES): Add $(GFILENOTIFY_LIBS).
17187 8165
17188 * nsimage.m (allocInitFromFile): Don't use deprecated method 8166 * w32inevt.c (handle_file_notifications): Add dummy implementation
17189 bestRepresentationForDevice on OSX >= 10.6. 8167 for !HAVE_W32NOTIFY.
17190 8168
17191 * nsfns.m (check_ns_display_info): Cast to long and use %ld in error 8169 * w32term.c: Wrap code with HAVE_W32NOTIFY.
17192 to avoid warning.
17193 8170
17194 * emacs.c: Declare unexec_init_emacs_zone. 81712013-06-03 Jan Drv <jan.h.d@swipnet.se>
17195 8172
17196 * nsgui.h: Fix compiler warning about gnulib redefining verify. 8173 * xgselect.c: Replace #if defined ... with #ifdef HAVE_GLIB.
17197 8174
17198 * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842). 8175 * process.c (wait_reading_process_output): Call xg_select if HAVE_GLIB.
17199 8176
17200 * nsmenu.m (ns_update_menubar): Remove useless setDelegate call 8177 * Makefile.in (XGSELOBJ): New, xgselect.o if GLib is used, or empty.
17201 on svcsMenu (Bug#8842).
17202 8178
17203 * nsfns.m (Fx_open_connection): Remove NSStringPboardType from 81792013-06-03 Paul Eggert <eggert@cs.ucla.edu>
17204 ns_return_types.
17205 (Fns_list_services): Just return Qnil on 10.6, code not working there.
17206 8180
17207 * nsterm.m (QUTF8_STRING): Declare. 8181 Fix minor problems found by static checking.
17208 (initFrameFromEmacs): Call registerServicesMenuSendTypes. 8182 * data.c (pure_write_error):
17209 (validRequestorForSendType): Return type is (id). 8183 Use xsignal2, not Fsignal, as Fsignal might return.
17210 Change indexOfObjectIdenticalTo to indexOfObject. 8184 * eval.c (set_backtrace_debug_on_exit): Now static.
17211 Check if we have local selection before returning self (Bug#8842). 8185 (backtrace_p, backtrace_top, backtrace_next, record_in_backtrace):
17212 (writeSelectionToPasteboard): Put local selection into paste board 8186 No longer inline. EXTERN_INLINE is needed only for functions
17213 if we have a local selection (Bug#8842). 8187 defined in .h files. Reindent function header as per GNU style.
17214 (syms_of_nsterm): DEFSYM QUTF8_STRING. 8188 (backtrace_p, backtrace_top, backtrace_next):
17215 8189 Mark EXTERNALLY_VISIBLE so they don't get optimized away by the
17216 * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m. 8190 compiler or linker. Add extern decls to pacify gcc -Wall.
17217 (ns_get_local_selection): Declare. 8191 * frame.c, frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource):
17218 8192 Now static.
172192011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org> 8193 * frame.c (free_monitors): Define only on platforms that need it.
17220 8194 * nsterm.m (ns_term_init):
17221 * keymap.c (describe_map_tree): Don't insert a double newline at 8195 * process.c (catch_child_signal):
17222 the end of the buffer (bug#1169) and return whether we inserted 8196 Don't worry about whether SIGCHLD is defined, as SIGCHLD is
17223 something. 8197 defined on all porting targets these days.
17224 8198 * process.c, process.h (catch_child_signal):
17225 * callint.c (Fcall_interactively): Change "reading args" to 8199 Make it extern only if NS_IMPL_GNUSTEP is defined.
17226 "providing args" to try to clarify what it does (bug#1010).
17227
172282011-07-07 Kenichi Handa <handa@m17n.org>
17229
17230 * composite.c (composition_compute_stop_pos): Ignore a static
17231 composition starting before CHARPOS (Bug#8915).
17232
17233 * xdisp.c (handle_composition_prop): Likewise.
17234
172352011-07-07 Eli Zaretskii <eliz@gnu.org>
17236
17237 * term.c (produce_glyphs) <xassert>: Allow IT_GLYPHLESS in it->what.
17238 (Bug#9015)
17239
172402011-07-07 Kenichi Handa <handa@m17n.org>
17241
17242 * character.h (unicode_category_t): New enum type.
17243
17244 * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types.
17245 (Qchar_code_property_table): New variable.
17246 (UNIPROP_TABLE_P, UNIPROP_GET_DECODER)
17247 (UNIPROP_COMPRESSED_FORM_P): New macros.
17248 (char_table_ascii): Uncompress the compressed values.
17249 (sub_char_table_ref): New arg is_uniprop. Callers changed.
17250 Uncompress the compressed values.
17251 (sub_char_table_ref_and_range): Likewise.
17252 (char_table_ref_and_range): Uncompress the compressed values.
17253 (sub_char_table_set): New arg is_uniprop. Callers changed.
17254 Uncompress the compressed values.
17255 (sub_char_table_set_range): Args changed. Callers changed.
17256 (char_table_set_range): Adjuted for the above change.
17257 (map_sub_char_table): Delete args default_val and parent. Add arg
17258 top. Give decoded values to a Lisp function.
17259 (map_char_table): Adjust for the above change. Give decoded
17260 values to a Lisp function. Gcpro more variables.
17261 (uniprop_table_uncompress)
17262 (uniprop_decode_value_run_length): New functions.
17263 (uniprop_decoder, uniprop_decoder_count): New variables.
17264 (uniprop_get_decoder, uniprop_encode_value_character)
17265 (uniprop_encode_value_run_length, uniprop_encode_value_numeric):
17266 New functions.
17267 (uniprop_encoder, uniprop_encoder_count): New variables.
17268 (uniprop_get_encoder, uniprop_table)
17269 (Funicode_property_table_internal, Fget_unicode_property_internal)
17270 (Fput_unicode_property_internal): New functions.
17271 (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr
17272 Sunicode_property_table_internal, Sget_unicode_property_internal,
17273 and Sput_unicode_property_internal. Defvar_lisp
17274 char-code-property-alist.
17275
17276 * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of
17277 Vunicode_category_table.
17278
17279 * font.c (font_range): Adjust for the change of
17280 Vunicode_category_table.
17281
172822011-07-07 Dan Nicolaescu <dann@ics.uci.edu>
17283
17284 * m/iris4d.h: Remove file, move contents ...
17285 * s/irix6-5.h: ... here.
17286
172872011-07-06 Paul Eggert <eggert@cs.ucla.edu>
17288
17289 Remove unportable assumption about struct layout (Bug#8884).
17290 * alloc.c (mark_buffer):
17291 * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables)
17292 (clone_per_buffer_values): Don't assume that
17293 sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
17294 This isn't true in general, and it's particularly not true
17295 if Emacs is configured with --with-wide-int.
17296 * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
17297 New macros, used in the buffer.c change.
17298
172992011-07-05 Jan Djärv <jan.h.d@swipnet.se>
17300
17301 * xsettings.c: Use both GConf and GSettings if both are available.
17302 (store_config_changed_event): Add comment.
17303 (dpyinfo_valid, store_font_name_changed, map_tool_bar_style)
17304 (store_tool_bar_style_changed): New functions.
17305 (store_monospaced_changed): Add comment. Call dpyinfo_valid.
17306 (struct xsettings): Move font inside HAVE_XFT.
17307 (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
17308 (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT.
17309 Move inside HAVE_XFT.
17310 (something_changed_gsettingsCB): Rename from something_changedCB.
17311 Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
17312 also.
17313 (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
17314 (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
17315 (something_changed_gconfCB): Rename from something_changedCB.
17316 Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
17317 (parse_settings): Move check for font inside HAVE_XFT.
17318 (read_settings, apply_xft_settings): Add comment.
17319 (read_and_apply_settings): Add comment. Call map_tool_bar_style and
17320 store_tool_bar_style_changed. Move check for font inside HAVE_XFT and
17321 call store_font_name_changed.
17322 (xft_settings_event): Add comment.
17323 (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE
17324 and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT.
17325 (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE
17326 and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT.
17327 (xsettings_initialize): Call init_gsettings last.
17328 (xsettings_get_system_font, xsettings_get_system_normal_font):
17329 Add comment.
17330
173312011-07-05 Paul Eggert <eggert@cs.ucla.edu>
17332
17333 Random fixes. E.g., (random) never returned negative values.
17334 * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the
17335 subseconds part to the entropy, as that's a bit more random.
17336 Prefer signed to unsigned, since the signedness doesn't matter and
17337 in general we prefer signed. When given a limit, use a
17338 denominator equal to INTMASK + 1, not to VALMASK + 1, because the
17339 latter isn't right if USE_2_TAGS_FOR_INTS.
17340 * sysdep.c (get_random): Return a value in the range 0..INTMASK,
17341 not 0..VALMASK. Don't discard "excess" bits that random () returns.
17342
173432011-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
17344
17345 * textprop.c (text_property_stickiness):
17346 Obey Vtext_property_default_nonsticky.
17347 (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky.
17348 * w32fns.c (syms_of_w32fns):
17349 * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default.
17350
173512011-07-04 Paul Eggert <eggert@cs.ucla.edu>
17352
17353 * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR.
17354 This is more efficient than Ffile_directory_p and avoids a minor race.
17355
173562011-07-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
17357
17358 * buffer.c (Foverlay_put): Say what the return value is
17359 (bug#7835).
17360
17361 * fileio.c (barf_or_query_if_file_exists): Check first if the file
17362 is a directory before asking whether to use the file name
17363 (bug#7564).
17364 (barf_or_query_if_file_exists): Make the "File is a directory"
17365 error be more correct.
17366
17367 * fns.c (Frequire): Remove the mention of the .gz files, since
17368 that's installation-specific, but keep the mention of
17369 `get-load-suffixes'.
17370
173712011-07-04 Paul Eggert <eggert@cs.ucla.edu>
17372
17373 * editfns.c (Fformat_time_string): Don't assume strlen fits in int.
17374 Report string overflow if the output is too long.
17375
173762011-07-04 Juanma Barranquero <lekktu@gmail.com>
17377
17378 * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
17379 (syms_of_gnutls): Remove duplicate DEFSYM for
17380 Qgnutls_bootprop_verify_hostname_error, an error for
17381 Qgnutls_bootprop_verify_error (which is no longer used).
17382 8200
17383 * eval.c (find_handler_clause): Remove parameters `sig' and `data', 82012013-06-03 Eli Zaretskii <eliz@gnu.org>
17384 unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed.
17385 Also (re)move comments that are misplaced or no longer relevant.
17386 8202
173872011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org> 8203 * w32.c (gettimeofday): Make the signature identical to prototype
8204 in nt/inc/sys/time.h.
17388 8205
17389 * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813). 82062013-06-03 Stefan Monnier <monnier@iro.umontreal.ca>
17390 8207
173912011-07-03 Chong Yidong <cyd@stupidchicken.com> 8208 * eval.c (backtrace_p, backtrace_top, backtrace_next): Export them to
8209 .gdbinit.
17392 8210
17393 * xfaces.c (Finternal_merge_in_global_face): Modify the foreground 8211 * keyboard.c (safe_run_hooks_error): Improve error message.
17394 and background color parameters if they have been changed.
17395 8212
173962011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org> 8213 * data.c (pure_write_error): Add `object' argument.
8214 * puresize.h (CHECK_IMPURE): Use it.
17397 8215
17398 * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659). 82162013-06-03 Michael Albinus <michael.albinus@gmx.de>
17399 8217
174002011-07-03 Paul Eggert <eggert@cs.ucla.edu> 8218 * Makefile.in (NOTIFY_OBJ): New variable.
8219 (base_obj): Replace inotify.o by $(NOTIFY_OBJ).
17401 8220
17402 * xsettings.c (SYSTEM_FONT): Define only when used. 8221 * emacs.c (main): Use HAVE_W32NOTIFY to wrap respective code.
17403 No need to define when HAVE_GSETTINGS || !HAVE_XFT. 8222 Call syms_of_gfilenotify.
17404 8223
17405 * keymap.c (access_keymap_1): Now static. 8224 * gfilenotify.c: New file.
17406 8225
174072011-07-02 Chong Yidong <cyd@stupidchicken.com> 8226 * keyboard.c (Qfile_notify): New variable. Replaces Qfile_inotify
8227 and Qfile_w32notify.
8228 (top): Wrap respective code by HAVE_GFILENOTIFY, HAVE_INOTIFY,
8229 HAVE_W32NOTIFY and USE_FILE_NOTIFY.
17408 8230
17409 * keyboard.c (command_loop_1): If a down-mouse event is unbound, 8231 * lisp.h: Declare syms_of_gfilenotify.
17410 leave any prefix arg for the up event (Bug#1586).
17411 8232
174122011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org> 8233 * termhooks.h (e): Wrap enum by USE_FILE_NOTIFY.
17413 8234
17414 * lread.c (syms_of_lread): Mention single symbols defined by 82352013-06-03 Stefan Monnier <monnier@iro.umontreal.ca>
17415 `defvar' or `defconst' (bug#7154).
17416 8236
17417 * fns.c (Frequire): Mention .el.gz files (bug#7314). 8237 Merge the specpdl and backtrace stacks. Make the structure of the
17418 (Frequire): Mention get-load-suffixes. 8238 specpdl entries more obvious via a tagged union of structs.
8239 * lisp.h (BITS_PER_PTRDIFF_T): New constant.
8240 (enum specbind_tag): New enum.
8241 (struct specbinding): Make it a tagged union of structs.
8242 Add a case for backtrace records.
8243 (specpdl_symbol, specpdl_old_value, specpdl_where, specpdl_arg)
8244 (specpdl_func, backtrace_function, backtrace_nargs, backtrace_args)
8245 (backtrace_debug_on_exit): New accessors.
8246 (struct backtrace): Remove.
8247 (struct catchtag): Remove backlist field.
8248 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
8249 Move to eval.c.
8250 (Flocal_variable_p): Speed up the common case where the binding is
8251 already loaded.
8252 * eval.c (backtrace_list): Remove.
8253 (set_specpdl_symbol, set_specpdl_old_value): Remove.
8254 (set_backtrace_args, set_backtrace_nargs)
8255 (set_backtrace_debug_on_exit, backtrace_p, backtrace_top)
8256 (backtrace_next): New functions.
8257 (Fdefvaralias, Fdefvar): Adjust to new specpdl format.
8258 (unwind_to_catch, internal_lisp_condition_case)
8259 (internal_condition_case, internal_condition_case_1)
8260 (internal_condition_case_2, internal_condition_case_n): Don't bother
8261 with backtrace_list any more.
8262 (Fsignal): Adjust to new backtrace format.
8263 (grow_specpdl): Move up.
8264 (record_in_backtrace): New function.
8265 (eval_sub, Ffuncall): Use it.
8266 (apply_lambda): Adjust to new backtrace format.
8267 (let_shadows_buffer_binding_p, let_shadows_global_binding_p): Move from
8268 data.c.
8269 (specbind): Adjust to new specpdl format. Simplify.
8270 (record_unwind_protect, unbind_to): Adjust to new specpdl format.
8271 (Fbacktrace_debug, Fbacktrace, Fbacktrace_frame): Adjust to new
8272 backtrace format.
8273 (mark_backtrace): Remove.
8274 (mark_specpdl, get_backtrace, backtrace_top_function): New functions.
8275 * xdisp.c (redisplay_internal): Use record_in_backtrace.
8276 * alloc.c (Fgarbage_collect): Use record_in_backtrace.
8277 Use mark_specpdl.
8278 * profiler.c (record_backtrace): Use get_backtrace.
8279 (handle_profiler_signal): Use backtrace_top_function.
8280 * .gdbinit (xbacktrace, hookpost-backtrace): Use new backtrace
8281 accessor functions.
8282
82832013-06-02 Jan Djärv <jan.h.d@swipnet.se>
8284
8285 * process.h (catch_child_signal): Declare.
8286
8287 * process.c (catch_child_signal): New function.
8288 (init_process_emacs): Call it.
8289
8290 * nsterm.m: Include process.h if NS_IMPL_GNUSTEP.
8291 (ns_menu_bar_is_hidden, menu_will_open_state): Define only if
8292 NS_IMPL_COCOA.
8293 (x_set_cursor_type): Remove declaration.
8294 (ns_update_begin): Only use r and bp if NS_IMPL_COCOA.
8295 (ns_update_end, ns_focus, ns_unfocus): Remove GNUstep specific code.
8296 (x_set_window_size): Remove 3 pixels from toolbar if NS_IMPL_GNUSTEP.
8297 (ns_get_color): Use F suffix on float.
8298 (ns_color_to_lisp, ns_query_color): Use EmacsCGFloat.
8299 (ns_get_rgb_color): Remove.
8300 (x_set_frame_alpha): Move view inside NS_IMPL_COCOA.
8301 (note_mouse_movement): x and y are CGFloat.
8302 (ns_draw_fringe_bitmap): Remove unused rowY.
8303 Change #if to COCOA && >= 10_6.
8304 (ns_draw_window_cursor): Remove unused overspill.
8305 (ns_draw_underwave): width and x are EamcsCGFloat.
8306 (ns_draw_box): thickness is CGFloat.
8307 (ns_dumpglyphs_image): Change #if to COCOA && >= 10_6.
8308 (ns_send_appdefined): When NS_IMPL_GNUSTEP, redirect to main thread
8309 if not in main thread.
8310 (ns_get_pending_menu_title, ns_check_menu_open)
8311 (ns_check_pending_open_menu): Put inside #if COCOA && >= 10_5.
8312 (ns_term_init): Call catch_child_signal if NS_IMPL_GNUSTEP && SIGCHLD.
8313 (sendFromMainThread:): New method.
8314 (changeFont:): size is CGFloat.
8315 (keyDown:): Check for Delete when NS_IMPL_GNUSTEP.
8316 Disable warning about permanent text.
8317 (characterIndexForPoint:): Adjust return type depending on GNUstep
8318 version.
8319 (mouseDown:): delta is CGFloat.
8320 (updateFrameSize): Remove unised variable f.
8321 (initFrameFromEmacs): Move toggleButton inside NS_IMPL_COCOA.
8322 Cast float to EmacsCGFloat.
8323 (windowWillUseStandardFrame:defaultFrame:): Set maximized_height
8324 also to -1 when restoring.
8325 (windowDidExitFullScreen:): Put call to updateCollectionBehaviour
8326 inside NS_IMPL_COCOA.
8327 (toggleFullScreen:): Put call to toggleFullScreen inside
8328 NS_IMPL_COCOA. Cast float to EmacsCGFloat.
8329 (setPosition:portion:whole:): por is CGFloat.
8330 (getMouseMotionPart:window:x:y:): Add F suffix to float.
8331 (mouseDown:): Use CGFloat.
8332 (mouseDragged:): Remove unised variable edge.
8333 (EmacsDocument): Implement for NS_IMPL_GNUSTEP.
8334
8335 * nsterm.h (EmacsCGFloat): Typedef for OSX and GNUstep when the size
8336 of CGFloat differs.
8337 (EmacsApp): New variable nextappdefined. Declare sendFromMainThread
8338 when NS_IMPL_GNUSTEP.
8339 (EmacsDocument): Declare when NS_IMPL_GNUSTEP.
8340 (EmacsView): Remove unlockFocusNeedsFlush, add windowDidMove.
8341 (EmacsToolbar): Add clearAll. Add tag argument to
8342 addDisplayItemWithImage.
8343 (EmacsSavePanel, EmacsOpenPanel): Remove getFilename and getDirectory.
8344
8345 * nsselect.m (ns_get_local_selection): Remove unused variable type.
8346
8347 * nsmenu.m (ns_update_menubar): Make static.
8348 (x_activate_menubar): Surround with ifdef NS_IMPL_COCOA
8349 (fillWithWidgetValue:): Add cast to SEL for setAction.
8350 (addSubmenuWithTitle:forFrame:): Add cast to SEL for action.
8351 (update_frame_tool_bar): Update code for GNUstep.
8352 (clearAll): New method.
8353 (addDisplayItemWithImage:idx:tag:helpText:enabled:): Handle new tag
8354 argument. Call insertItemWithItemIdentifier when NS_IMPL_GNUSTEP.
8355 Move identifierToItem setObject and activeIdentifiers addObject before
8356 call to insertItemWithItemIdentifier.
8357 (validateVisibleItems): Fix indentation.
8358 (toolbarAllowedItemIdentifiers:): Return activeIdentifiers.
8359 (initWithContentRect:styleMask:backing:defer:): Add ClosableWindow and
8360 UtilityWindow to aStyle, remove call to setStyleMask.
8361
8362 * nsimage.m (setXBMColor:, getPixelAtX:Y:): Use EmacsCGFloat.
8363
8364 * nsfont.m (ns_attribute_fvalue, ns_spec_to_descriptor)
8365 (ns_charset_covers, ns_get_covering_families, nsfont_open):
8366 Use F suffix on floats.
8367 (ns_char_width): Returns CGFloat.
8368 (ns_ascii_average_width): w is CGFloat instead of float.
8369 (nsfont_draw): cbuf and c are unsigned. Cast to char* in call to
8370 DPSxshow.
8371 (ns_glyph_metrics): CGFloat instead of float.
8372
8373 * nsfns.m (x_set_foreground_color, x_set_background_color):
8374 Use EmacsCGFloat.
8375 (ns_implicitly_set_icon_type, Fx_create_frame): Make static,
8376 remove unused variables.
8377 (Fns_read_file_name): Keep track if panel is for save.
8378 Use ns_filename_from_panel/ns_directory_from_panel.
8379 (Fns_list_services): delegate only used for COCOA.
8380 (Fns_convert_utf8_nfd_to_nfc): Remove warning for GNUstep.
8381 Just return the input if GNUstep.
8382 (x_screen_planes): Remove.
8383 (Fxw_color_values): Use EmacsCGFloat
8384 (Fns_display_monitor_attributes_list): Only get screen number for
8385 Cocoa.
8386 (getDirectory, getFilename): Remove from EmacsOpenPanel and
8387 EmacsSavePanel.
8388 (EmacsOpenPanel:ok:): Use ns_filename_from_panel and
8389 ns_directory_from_panel.
8390
83912013-06-01 Paul Eggert <eggert@cs.ucla.edu>
8392
8393 * process.c (handle_child_signal): Also use WCONTINUED.
8394 This is so that list-processes doesn't mistakenly list the process
8395 as stopped, when the process has actually been continued and is
8396 now running.
8397
83982013-05-31 Paul Eggert <eggert@cs.ucla.edu>
8399
8400 Don't let D-bus autolaunch mess up SIGCHLD handling (Bug#14474).
8401 * xterm.c (x_term_init): Inhibit D-Bus autolaunch if D-Bus is
8402 not already configured.
8403
8404 * fileio.c (Finsert_file_contents): Remove unused local (Bug#8447).
8405
84062013-05-29 Eli Zaretskii <eliz@gnu.org>
8407
8408 * Makefile.in (mostlyclean): Remove *.res files.
8409
84102013-05-29 Stefan Monnier <monnier@iro.umontreal.ca>
8411
8412 * fileio.c (Finsert_file_contents): Preserve undo info when reverting
8413 a buffer (bug#8447).
8414
84152013-05-27 Eli Zaretskii <eliz@gnu.org>
8416
8417 * xdisp.c (pos_visible_p): When CHARPOS is displayed frrom a
8418 display vector, and we backtrack, handle the case that the
8419 previous character position is also displayed from a display
8420 vector or covered by a display string or image. (Bug#14476)
8421
84222013-05-25 Jan Djärv <jan.h.d@swipnet.se>
8423
8424 * xfns.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove.
8425 (struct MonitorInfo, free_monitors): Remove.
8426 (x_make_monitor_attribute_list): Call make_monitor_attribute_list.
8427 (Fx_display_monitor_attributes_list): Call make_monitor_attribute_list.
8428 (syms_of_xfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size,
8429 Qframes, Qsource.
8430
8431 * nsfns.m (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove.
8432 (struct MonitorInfo, free_monitors): Remove.
8433 (ns_screen_name): Make static.
8434 (ns_make_monitor_attribute_list): Call make_monitor_attribute_list.
8435 (syms_of_nsfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size,
8436 Qframes, Qsource.
8437
8438 * frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare.
8439 (struct MonitorInfo): New struct.
8440 (free_monitors, make_monitor_attribute_list): Declare.
8441
8442 * frame.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource):
8443 New Lisp_Object:s.
8444 (free_monitors, make_monitor_attribute_list): New functions.
8445 (syms_of_frame): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes,
8446 Qsource.
8447
84482013-05-25 Xue Fuqiao <xfq.free@gmail.com>
8449
8450 * callproc.c (call_process): Refine the doc string. (Bug#14045)
8451
84522013-05-23 Stefan Monnier <monnier@iro.umontreal.ca>
8453
8454 * keyboard.c: Apply keyboard decoding only to events that come directly
8455 from the tty, not from unread-command-events (bug#14368).
8456 (read_event_from_main_queue): New function, extracted from read_char.
8457 (read_decoded_char): Remove.
8458 (read_decoded_event_from_main_queue): New function to replace it.
8459 (read_char): Use it.
8460 (read_key_sequence): Use read_char rather than read_decoded_char.
8461
8462 * keyboard.c (read_decoded_char): Don't decode under w32 (bug#14403).
8463
84642013-05-22 Barry O'Reilly <gundaetiapo@gmail.com>
8465
8466 * casetab.c (init_casetab_once): Fix last change (bug#14424).
8467
84682013-05-22 Kenichi Handa <handa@gnu.org>
8469
8470 The following changes are to fix the setting of
8471 buffer-file-coding-system on, for instance, C-x RET c unix RET
8472 _FILE_OF_DOS_EOL_TYPE_ RET.
8473
8474 * coding.h (struct coding_system): New member detected_utf8_chars.
8475
8476 * coding.c (detect_coding_utf_8): Count characters and check EOL
8477 format. Include CATEGORY_MASK_UTF_8_AUTO in detect_info->found if
8478 BOM is there.
8479 (setup_coding_system): Do not initialize coding->head_ascii.
8480 (check_ascii): Do not set coding->eol_seen but update it. Do not
8481 call adjust_coding_eol_type here.
8482 (detect_coding): Fix detection of BOM for utf-8 and utf-16.
8483 If the eol-type of CODING is already specified, adjust the eol type
8484 of the found coding-system.
8485 (decode_coding_gap): Cancel previous change. Utilize the
8486 character numbers counted by detect_coding_utf_8. Fix detection
8487 of BOM for utf-8.
17419 8488
174202011-07-02 Martin Rudalics <rudalics@gmx.at> 84892013-05-21 Barry O'Reilly <gundaetiapo@gmail.com>
17421 8490
17422 * window.h (window): Remove clone_number slot. 8491 * search.c (looking_at_1): Only set last_thing_searched if the match
17423 * window.c (Fwindow_clone_number, Fset_window_clone_number): 8492 changed the match-data (bug#14281).
17424 Remove.
17425 (make_parent_window, make_window, saved_window)
17426 (Fset_window_configuration, save_window_save): Don't deal with
17427 clone numbers.
17428 * buffer.c (Qclone_number): Remove declaration.
17429 (sort_overlays, overlay_strings): Don't deal with clone numbers.
17430
174312011-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
17432
17433 Add multiple inheritance to keymaps.
17434 * keymap.c (Fmake_composed_keymap): New function.
17435 (Fset_keymap_parent): Simplify.
17436 (fix_submap_inheritance): Remove.
17437 (access_keymap_1): New function extracted from access_keymap to handle
17438 embedded parents and handle lists of maps.
17439 (access_keymap): Use it.
17440 (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
17441 (Fcopy_keymap): Handle embedded parents.
17442 (Fcommand_remapping, define_as_prefix): Simplify.
17443 (Fkey_binding): Simplify.
17444 (syms_of_keymap): Move minibuffer-local-completion-map,
17445 minibuffer-local-filename-completion-map,
17446 minibuffer-local-must-match-map, and
17447 minibuffer-local-filename-must-match-map to Elisp.
17448 (syms_of_keymap): Defsubr make-composed-keymap.
17449 * keyboard.c (menu_bar_items): Use map_keymap_canonical.
17450 (parse_menu_item): Trivial simplification.
17451
174522011-07-01 Glenn Morris <rgm@gnu.org>
17453
17454 * Makefile.in (SETTINGS_LIBS): Fix typo.
17455
174562011-07-01 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
17457
17458 * coding.c (Fencode_coding_string): Record the last coding system
17459 used, as the function doc string says (bug#8738).
17460
174612011-07-01 Jan Djärv <jan.h.d@swipnet.se>
17462
17463 * xsettings.c (store_monospaced_changed): Take new font as arg and
17464 check for change against current_mono_font.
17465 (EMACS_TYPE_SETTINGS): Remove this and related defines.
17466 (emacs_settings_constructor, emacs_settings_get_property)
17467 (emacs_settings_set_property, emacs_settings_class_init)
17468 (emacs_settings_init, gsettings_obj): Remove.
17469 (something_changedCB): New function for HAVE_GSETTINGS.
17470 (something_changedCB): HAVE_GCONF: Call store_monospaced_changed
17471 with value as argument.
17472 (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
17473 g_settings_new (Bug#8967). Do not create gsettings_obj.
17474 Remove calls to g_settings_bind. Connect something_changedCB to
17475 "changed".
17476
17477 * xgselect.c: Add defined (HAVE_GSETTINGS).
17478 (xgselect_initialize): Ditto.
17479
17480 * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h
17481 (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
17482 xg_select.
17483
174842011-07-01 Paul Eggert <eggert@cs.ucla.edu>
17485
17486 * eval.c (struct backtrace): Simplify and port the data structure.
17487 Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
17488 signed bit field, as this assumption is not portable and it makes
17489 Emacs crash when compiled with Sun C 5.8 on sparc. Do not use
17490 "char debug_on_exit : 1" as this is not portable either; instead,
17491 use the portable "unsigned int debug_on_exit : 1". Remove unused
17492 member evalargs. Remove obsolete comments about cc bombing out.
17493
174942011-06-30 Jan Djärv <jan.h.d@swipnet.se>
17495
17496 * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS.
17497 Let HAVE_GSETTINGS override HAVE_GCONF.
17498 (store_monospaced_changed): New function.
17499 (EMACS_SETTINGS): A new type derived from GObject to handle
17500 GSettings notifications.
17501 (emacs_settings_constructor, emacs_settings_get_property)
17502 (emacs_settings_set_property, emacs_settings_class_init):
17503 New functions.
17504 (gsettings_client, gsettings_obj): New variables.
17505 (GSETTINGS_SCHEMA): New define.
17506 (something_changedCB): Call store_monospaced_changed.
17507 (init_gsettings): New function.
17508 (xsettings_initialize): Call init_gsettings.
17509 (syms_of_xsettings): Initialize gsettings_client, gsettings_obj
17510 to NULL.
17511 8493
17512 * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from 84942013-05-21 Dmitry Antipov <dmantipov@yandex.ru>
17513 GCONF_CFLAGS/LIBS.
17514 8495
175152011-06-29 Martin Rudalics <rudalics@gmx.at> 8496 * xdisp.c (reseat_at_previous_visible_line_start):
8497 Already declared in dispextern.h, so remove it here.
8498 (move_it_vertically_backward): Likewise.
17516 8499
17517 * window.c (resize_root_window, grow_mini_window) 85002013-05-20 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
17518 (shrink_mini_window): Rename Qresize_root_window to
17519 Qwindow_resize_root_window and Qresize_root_window_vertically to
17520 Qwindow_resize_root_window_vertically.
17521 8501
175222011-06-28 Paul Eggert <eggert@cs.ucla.edu> 8502 * xfns.c (check_x_display_info): Don't use XINT for terminal object.
8503 (Fx_display_pixel_width, Fx_display_pixel_height)
8504 (Fx_display_mm_width, Fx_display_mm_height):
8505 Mention `display-monitor-attributes-list' in docstrings.
17523 8506
17524 * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var. 8507 * nsfns.m (ns_get_screen): Remove function. All uses removed.
8508 (check_ns_display_info): Sync with check_x_display_info in xfns.c.
8509 (Fx_server_max_request_size, Fx_server_vendor, Fx_server_version)
8510 (Fx_display_screens, Fx_display_mm_width, Fx_display_mm_height)
8511 (Fx_display_backing_store, Fx_display_visual_class)
8512 (Fx_display_save_under, Fx_close_connection, Fxw_display_color_p)
8513 (Fx_display_grayscale_p, Fx_display_pixel_width)
8514 (Fx_display_pixel_height, Fx_display_planes)
8515 (Fx_display_color_cells): Sync args and docstrings with xfns.c.
8516 (Fx_display_screens): Don't confuse X11 screens with NS screens.
8517 (Fx_display_mm_width, Fx_display_mm_height)
8518 (Fx_display_pixel_width, Fx_display_pixel_width): Return width or
8519 height for all physical monitors as in X11.
17525 8520
175262011-06-27 Juanma Barranquero <lekktu@gmail.com> 8521 * nsterm.m (x_display_pixel_width, x_display_pixel_height):
8522 Return pixel width or height for all physical monitors as in X11.
8523
85242013-05-18 Paul Eggert <eggert@cs.ucla.edu>
8525
8526 Port --enable-gcc-warnings to clang.
8527 * bytecode.c (exec_byte_code):
8528 * regex.c:
8529 Redo diagnostic pragmas to pacify clang, too.
8530 * dbusbind.c (xd_retrieve_arg): Do not use uninitialized variable.
8531 * editfns.c (Fencode_time):
8532 * fileio.c (file_accessible_directory_p):
8533 * font.c (font_unparse_xlfd):
8534 Use '&"string"[index]' instead of '"string" + (index)'.
8535 * undo.c (user_error): Remove; unused.
8536
85372013-05-16 Eli Zaretskii <eliz@gnu.org>
8538
8539 * insdel.c (insert_1_both): Document the arguments, instead of
8540 referring to insert_1, which no longer exists.
8541
8542 * xdisp.c (message_dolog): If the *Messages* buffer is shown in
8543 some window, increment windows_or_buffers_changed, so that
8544 *Messages* display in that window is updated. (Bug#14408)
8545
8546 * w32.c: Include epaths.h.
8547 (init_environment): Use cmdproxy.exe without leading directories.
8548 Support emacs.exe in src; point SHELL to cmdproxy in ../nt in that
8549 case.
8550 (gettimeofday): Adjust signature and return value to Posix
8551 expectations.
8552
8553 * unexw32.c (open_output_file): Delete the existing emacs.exe
8554 before creating it, to break the hard link to the versioned
8555 executable.
8556
8557 * Makefile.in (EMACS_MANIFEST, CM_OBJ, TEMACS_POST_LINK)
8558 (ADDSECTION, EMACS_HEAPSIZE, MINGW_TEMACS_POST_LINK)
8559 (FIRSTFILE_OBJ): New variables.
8560 (W32_RES): Rename to EMACSRES. All users changed.
8561 (base_obj): Use $(CM_OBJ).
8562 (ALLOBJS): Use $(FIRSTFILE_OBJ).
8563 (emacs$(EXEEXT)): Depend on $(ADDSECTION).
8564 (temacs$(EXEEXT)): Use $(TEMACS_POST_LINK), and move
8565 $(W32_RES_LINK) before $(LIBES).
8566 (emacs.res): Depend on $(EMACS_MANIFEST). Put emacs.rc in nt.
8567
85682013-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
8569
8570 * makefile.w32-in (DOC): Use just "DOC".
8571
8572 * Makefile.in (bootstrap-clean): DOC-* doesn't exist any more.
8573
8574 * process.c: Export default filters and sentinels to Elisp.
8575 (Qinternal_default_process_sentinel, Qinternal_default_process_filter):
8576 New constants.
8577 (pset_filter, pset_sentinel, make_process, Fset_process_filter)
8578 (Fset_process_sentinel, Fformat_network_address):
8579 Default to them instead of nil.
8580 (server_accept_connection): Sentinels can't be nil any more.
8581 (read_and_dispose_of_process_output): New function, extracted from
8582 read_process_output.
8583 (read_process_output): Use it; filters can't be nil.
8584 (Finternal_default_process_filter): New function, extracted from
8585 read_process_output.
8586 (exec_sentinel_unwind): Remove function.
8587 (exec_sentinel): Don't zilch sentinel while running.
8588 (status_notify): Sentinels can't be nil.
8589 (Finternal_default_process_sentinel): New function extracted from
8590 status_notify.
8591 (setup_process_coding_systems): Default filter is not nil any more.
8592 (syms_of_process): Export new Elisp functions and initialize
8593 new constants.
8594 * lisp.h (make_lisp_proc): New function.
8595
85962013-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
17527 8597
17528 * makefile.w32-in: Redesign dependencies so they reflect more 8598 * regex.c (regex_compile) [\=, \>, \<]: Don't forget to set laststart.
17529 clearly which files are directly included by each source file,
17530 and not through other includes.
17531 8599
175322011-06-27 Martin Rudalics <rudalics@gmx.at> 86002013-05-14 Eli Zaretskii <eliz@gnu.org>
17533 8601
17534 * buffer.c (Qclone_number): Declare static and DEFSYM it. 8602 * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT
17535 (sort_overlays, overlay_strings): When an overlay's clone number 8603 unless we know that the window w is a leaf window.
17536 matches the window's clone number process the overlay even if 8604 Another attempt at solving bug#14062.
17537 the overlay's window property doesn't match the current window.
17538 8605
17539 * window.c (Fwindow_vchild): Rename to Fwindow_top_child. 86062013-05-14 Jan Djärv <jan.h.d@swipnet.se>
17540 (Fwindow_hchild): Rename to Fwindow_left_child. 8607
17541 (Fwindow_next): Rename to Fwindow_next_sibling. 8608 * nsfont.m (ns_spec_to_descriptor): Retain and autorelease
17542 (Fwindow_prev): Rename to Fwindow_prev_sibling. 8609 fdesc (Bug#14375).
17543 (resize_window_check): Rename to window_resize_check. 8610
17544 (resize_window_apply): Rename to window_resize_apply. 86112013-05-12 Paul Eggert <eggert@cs.ucla.edu>
17545 (Fresize_window_apply): Rename to Fwindow_resize_apply. 8612
17546 (Fdelete_other_windows_internal, resize_frame_windows) 8613 * image.c (gif_load): Check that subimages fit (Bug#14345).
17547 (Fsplit_window_internal, Fdelete_window_internal) 8614
17548 (grow_mini_window, shrink_mini_window) 86152013-05-09 Stefan Monnier <monnier@iro.umontreal.ca>
17549 (Fresize_mini_window_internal): Fix callers accordingly. 8616
8617 * lread.c (skip_dyn_eof): New function.
8618 (read1): Use it to skip the end of a file in response to #@00.
8619
8620 * doc.c (get_doc_string): Slightly relax the sanity checking.
8621
86222013-05-09 Jan Djärv <jan.h.d@swipnet.se>
8623
8624 * nsfns.m: Include IOGraphicsLib.h if Cocoa.
8625 (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare.
8626 (MonitorInfo): New struct.
8627 (free_monitors, ns_screen_name, ns_make_monitor_attribute_list)
8628 (Fns_display_monitor_attributes_list): New functions.
8629 (display-usable-bounds): Remove.
8630 (syms_of_nsfns): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes and
8631 Qsource.
8632
86332013-05-09 Paul Eggert <eggert@cs.ucla.edu>
8634
8635 * xterm.h (GTK_PREREQ): Remove, replacing with GTK_CHECK_VERSION.
8636 (GTK_CHECK_VERSION): New macro, if not already defined.
8637 All uses of GTK_PREREQ, GTK_MAJOR_VERSION, etc.
8638 replaced by GTK_CHECK_VERSION.
8639
86402013-05-08 Paul Eggert <eggert@cs.ucla.edu>
8641
8642 * xterm.h (GTK_PREREQ): New macro.
8643 All simple uses of GTK_MAJOR_VERSION and GTK_MINOR_VERSION changed
8644 to use this macro instead, for consistency and clarity.
8645
86462013-05-08 Eli Zaretskii <eliz@gnu.org>
8647
8648 * xdisp.c (row_for_charpos_p): New function, with code of
8649 cursor_row_p, but accepts an additional argument CHARPOS instead
8650 of using a hardcoded PT.
8651 (cursor_row_p): Call row_for_charpos_p with 2nd argument PT.
8652 (row_containing_pos): Call row_for_charpos_p instead of partially
8653 doing the same. Fixes cursor positioning under longlines-mode
8654 when longlines-show-effect includes more than one newline, when
8655 moving the cursor vertically up.
8656
86572013-05-08 Juanma Barranquero <lekktu@gmail.com>
8658
8659 * makefile.w32-in (ACL_H): New macro.
8660 ($(BLD)/fileio.$(O)): Update dependencies.
8661
86622013-05-07 Paul Eggert <eggert@cs.ucla.edu>
8663
8664 Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295)
8665 * Makefile.in (LIB_ACL): New macro.
8666 (LIBACL_LIBS): Remove.
8667 (LIBES): Use LIB_ACL, not LIBACL_LIBS.
8668 * fileio.c: Include <acl.h>.
8669 Use HAVE_ACL_SET_FILE rather than HAVE_POSIX_ACL.
8670 (ACL_NOT_WELL_SUPPORTED): Remove. All uses replaced by
8671 !acl_errno_valid.
8672 (Fcopy_file) [!WINDOWSNT]: Use qcopy_acl instead of rolling
8673 it ourselves.
8674
8675 * unexelf.c: Don't assume ElfW (Half) fits in int.
8676 (entry_address, find_section, unexec): Use ptrdiff_t, not int,
8677 when dealing with ElfW (Half) values, since they can exceed 2**31
8678 on 64-bit OpenBSD hosts. Problem reported privately by Han Boetes.
8679 (entry_address): Omit unused NUM arg. All uses changed.
8680
86812013-05-07 Juri Linkov <juri@jurta.org>
8682
8683 * callint.c (Fcall_interactively): Set `visargs[i]' for code 'n'
8684 to the string converted from number with `Fnumber_to_string'.
8685 (Bug#14254)
8686
86872013-05-07 Paul Eggert <eggert@cs.ucla.edu>
8688
8689 * xfns.c (x_get_net_workarea): Define only if !GTK || GTK<3.4.
8690 This fixes a problem introduced by my previous change.
8691
86922013-05-07 Glenn Morris <rgm@gnu.org>
8693
8694 * lread.c (readchar): Don't read from a dead buffer. (Bug#14280)
8695
86962013-05-07 Jan Djärv <jan.h.d@swipnet.se>
8697
8698 * xfns.c: Move misplaced ifndef USE_GTK from previous checkin.
8699
87002013-05-07 Paul Eggert <eggert@cs.ucla.edu>
8701
8702 Static checking by GCC 4.8.0.
8703 * xfns.c (x_get_net_workarea, struct MonitorInfo, free_monitors)
8704 (x_get_monitor_for_frame, x_make_monitor_attribute_list)
8705 (x_get_monitor_attributes_fallback)
8706 (x_get_monitor_attributes_xinerama)
8707 (x_get_monitor_attributes_xrandr, x_get_monitor_attributes):
8708 Define only if USE_GTK.
8709 (free_monitors): Define only if HAVE_XINERAMA || HAVE_XRANDR.
8710 (x_get_monitor_attributes_fallback): Omit unused locals.
8711 (x_get_monitor_attributes_xinerama, Fx_display_monitor_attributes_list):
8712 Use double, not float, to avoid mixed-mode floating point arithmetic.
8713
87142013-05-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
8715 Jan Djärv <jan.h.d@swipnet.se>
8716
8717 * Makefile.in (XRANDR_LIBS, XRANDR_CFLAGS, XINERAMA_LIBS)
8718 (XINERAMA_CFLAGS): New macros.
8719 (ALL_CFLAGS, LIBES): Use them.
8720
8721 * xfns.c: Include <X11/extensions/Xrandr.h> if HAVE_XRANDR, and
8722 include <X11/extensions/Xinerama.h> if HAVE_XINERAMA.
8723 (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): New variables.
8724 (syms_of_xfns): DEFSYM them.
8725 (struct MonitorInfo): New struct.
8726 (x_get_net_workarea, free_monitors, x_get_monitor_for_frame)
8727 (x_make_monitor_attribute_list, x_get_monitor_attributes_fallback)
8728 (x_get_monitor_attributes_xrandr, x_get_monitor_attributes)
8729 (x_get_monitor_attributes_xinerama): New functions.
8730 (Fx_display_monitor_attributes_list): New primitive.
8731 (syms_of_xfns): Defsubr it.
8732
8733 * xterm.h (x_display_info): Add Xatom_net_workarea and
8734 Xatom_net_current_desktop.
8735
8736 * xterm.c (x_term_init): Initialize dpyinfo->Xatom_net_workarea
8737 and dpyinfo->Xatom_net_current_desktop.
8738
87392013-05-06 Eli Zaretskii <eliz@gnu.org>
8740
8741 * xdisp.c (pos_visible_p): Use the special code for finding the
8742 beginning of a display property or overlay for any "replacing"
8743 display property, not just for display strings. This solves
8744 incorrect reporting of position by posn-at-point. (Bug#14241)
8745
87462013-05-06 Paul Eggert <eggert@cs.ucla.edu>
8747
8748 * unexelf.c: Fix some 32-bit integer problems, notably when debugging.
8749 Include <limits.h>, <stdbool.h>, <intprops.h>, <verify.h>.
8750 Verify that ElfW (Half) fits in int.
8751 (fatal): Use same signature as lisp.h.
8752 (UNEXELF_DEBUG): New macro, replacing DEBUG, so that people can
8753 configure and build with -DUNEXELF_DEBUG without worrying about
8754 other modules that use DEBUG.
8755 (DEBUG_LOG) [UNEXELF_DEBUG]: New macro. All debug code that prints
8756 possibly-wide integers now uses it instead of plain fprintf.
8757 (entry_address): New function, which avoids problems with 32-bit
8758 overflow on 64-bit hosts.
8759 (OLD_SECTION_H, NEW_SECTION_H, NEW_PROGRAM_H): Use it.
8760 (round_up): Don't assume the remainder fits in int.
8761 (find_section): Use bool for boolean. Simplify debug code.
8762 (unexec): Don't assume file sizes fit in int or size_t.
8763 Omit unnecessary trailing newline in 'fatal' format.
8764 Use strerror rather than outputting decimal error number.
8765 Remove unused code when emacs is not defined;
8766 this file relies on Emacs now.
8767 Don't assume e_phnum and e_shnum are positive.
8768
8769 * regex.c: Fix problems when DEBUG is defined.
8770 (extract_number, extract_number_and_incr): Define regardless of
8771 whether DEBUG is defined; that's simpler and makes the code less
8772 likely to go stale in the normal case when DEBUG is not defined.
8773 Return int rather than taking an int * arg. All callers changed.
8774 (DEBUG_PRINT1, DEBUG_PRINT2, DEBUG_PRINT3, DEBUG_PRINT4):
8775 Remove, replacing with ...
8776 (DEBUG_PRINT): New macro. All callers changed.
8777 (DEBUG_COMPILES_ARGUMENTS): New macro.
8778 (print_fastmap, print_partial_compiled_pattern) [DEBUG]:
8779 (print_compiled_pattern, print_double_string) [DEBUG]:
8780 Use prototype rather than old-style definition.
8781 (print_partial_compiled_pattern, print_compiled_pattern) [DEBUG]:
8782 (ENSURE_FAIL_STACK, PUSH_FAILURE_REG) [DEBUG]:
8783 (POP_FAILURE_REG_OR_COUNT, PUSH_FAILURE_POINT) [DEBUG]:
8784 (POP_FAILURE_POINT, re_match_2_internal) [DEBUG]:
8785 Don't assume ptrdiff_t, size_t, and long are the same width as int.
8786 (POINTER_TO_OFFSET): Return ptrdiff_t, not regoff_t.
8787 This matters only when DEBUG is defined.
17550 8788
175512011-06-26 Jan Djärv <jan.h.d@swipnet.se> 87892013-05-05 Eli Zaretskii <eliz@gnu.org>
8790
8791 * xdisp.c (set_iterator_to_next): Set the
8792 ignore_overlay_strings_at_pos_p flag only if we are _really_
8793 iterating over an overlay string, as indicated by the
8794 current.overlay_string_index member. (Bug#14306)
8795
87962013-05-05 Jan Djärv <jan.h.d@swipnet.se>
8797
8798 * nsmenu.m (ns_update_menubar): Move initialization of submenuTitle
8799 to where it is used, to avoid autorelease issues (Bug#14050).
8800
88012013-05-05 Paul Eggert <eggert@cs.ucla.edu>
8802
8803 `write-region-inhibit-fsync' defaults to noninteractive (Bug#14273).
8804 * fileio.c (syms_of_fileio): Implement this.
8805 * filelock.c (create_lock_file): If symbolic links don't work, so
8806 we use a regular file as a lock file, do not fsync the lock file;
8807 it's not needed.
8808
88092013-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
8810
8811 * minibuf.c (Fread_minibuffer, Feval_minibuffer): Move to Elisp.
8812 (syms_of_minibuf): Adjust accodingly.
8813 * lread.c (Fread):
8814 * callint.c (Fcall_interactively): Adjust calls accordingly.
8815
88162013-05-04 Eli Zaretskii <eliz@gnu.org>
8817
8818 * dispextern.h (WINDOW_WANTS_HEADER_LINE_P): Verify that
8819 w->contents is a buffer before computing everything else.
8820 Use parentheses to disambiguate last part of the condition.
8821
8822 * w32fns.c (w32_wnd_proc): Remove temporary code used to trap
8823 assertion violations. (Bug#14062)
8824
88252013-05-01 David Reitter <david.reitter@gmail.com>
8826
8827 * nsfns.m (ns_tooltip): Initialize.
17552 8828
17553 * emacsgtkfixed.h: State that this is only used with Gtk+3. 88292013-04-28 Eli Zaretskii <eliz@gnu.org>
17554 (emacs_fixed_set_min_size): Remove.
17555 (emacs_fixed_new): Take frame as argument.
17556 8830
17557 * emacsgtkfixed.c: State that this is only used with Gtk+3. 8831 * coding.c (decode_coding_gap): Don't remove the character before
17558 (_EmacsFixedPrivate): Remove minwidth/height. 8832 a newline unless it's a CR character. (Bug#14287)
17559 Add struct frame *f.
17560 (emacs_fixed_init): Initialize priv->f.
17561 (get_parent_class, emacs_fixed_set_min_size): Remove.
17562 (emacs_fixed_new): Set priv->f to argument.
17563 (emacs_fixed_get_preferred_width)
17564 (emacs_fixed_get_preferred_height): Use min_width/height from
17565 frames size_hint to set minimum and natural (Bug#8919).
17566 (XSetWMSizeHints, XSetWMNormalHints): Override these functions
17567 and use min_width/height from frames size_hint to set
17568 min_width/height (Bug#8919).
17569 8833
17570 * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new. 88342013-04-28 Dan Nicolaescu <dann@gnu.org>
17571 (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size.
17572 Fix indentation.
17573 8835
175742011-06-26 Eli Zaretskii <eliz@gnu.org> 8836 * dispextern.h (struct face): Move enum face_underline_type
8837 earlier so that bitfields can be in the same word.
17575 8838
17576 * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling 88392013-04-28 Jan Djärv <jan.h.d@swipnet.se>
17577 bidi_at_paragraph_end, since fast_looking_at doesn't like to be
17578 called at ZV.
17579 8840
175802011-06-26 Chong Yidong <cyd@stupidchicken.com> 8841 * nsfns.m (handlePanelKeys): New function.
8842 (EmacsOpenPanel:performKeyEquivalent:)
8843 (EmacsSavePanel:performKeyEquivalent:): Call handlePanelKeys to handle
8844 arrows/function/control and copy/paste keys (Bug#14296).
17581 8845
17582 * process.c (wait_reading_process_output): Bypass select if 88462013-04-27 Juri Linkov <juri@jurta.org>
17583 waiting for a cell while ignoring keyboard input, and input is 8847
17584 pending. Suggested by Jan Djärv (Bug#8869). 8848 * callint.c (Fcall_interactively): Call `Qread_number' for
8849 interactive code letter `n' instead of using duplicate code.
8850 (Bug#14254)
8851
88522013-04-27 Paul Eggert <eggert@cs.ucla.edu>
17585 8853
175862011-06-25 Paul Eggert <eggert@cs.ucla.edu> 8854 * systime.h (make_timeval): Declare as 'const'.
17587 8855
17588 Use gnulib's dup2 module instead of rolling our own. 88562013-04-27 Kenichi Handa <handa@gnu.org>
17589 * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this.
17590 8857
175912011-06-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 8858 * font.c (font_open_entity): Always open a font of manageable
8859 size.
17592 8860
17593 * dispnew.c (scrolling_window): Before scrolling, turn off a 88612013-04-26 Paul Eggert <eggert@cs.ucla.edu>
17594 mouse-highlight in the window being scrolled.
17595 8862
175962011-06-24 Juanma Barranquero <lekktu@gmail.com> 8863 Port better to AIX (Bug#14258).
8864 * lisp.h (ENUM_BF) [__IBMC__]: Make it 'unsigned int' here, too,
8865 to pacify AIX xlc.
17597 8866
17598 Move DEFSYM to lisp.h and use everywhere. 88672013-04-24 Kenichi Handa <handa@gnu.org>
17599 8868
17600 * character.h (DEFSYM): Move declaration... 8869 * coding.c (decode_coding_iso_2022): When an invalid escape
17601 * lisp.h (DEFSYM): ...here. 8870 sequence is encountered, reset the invocation and designation
8871 status to the safest one.
17602 8872
17603 * gnutls.c: 88732013-04-22 Paul Eggert <eggert@cs.ucla.edu>
17604 * minibuf.c:
17605 * w32menu.c:
17606 * w32proc.c:
17607 * w32select.c: Don't include character.h.
17608 8874
17609 * alloc.c (syms_of_alloc): 8875 * Makefile.in (bootstrap-clean): Remove stamp-h1 too.
17610 * buffer.c (syms_of_buffer): 8876 Without this fix, "make distclean" leaves stamp-h1 behind.
17611 * bytecode.c (syms_of_bytecode):
17612 * callint.c (syms_of_callint):
17613 * casefiddle.c (syms_of_casefiddle):
17614 * casetab.c (init_casetab_once):
17615 * category.c (init_category_once, syms_of_category):
17616 * ccl.c (syms_of_ccl):
17617 * cmds.c (syms_of_cmds):
17618 * composite.c (syms_of_composite):
17619 * dbusbind.c (syms_of_dbusbind):
17620 * dired.c (syms_of_dired):
17621 * dispnew.c (syms_of_display):
17622 * doc.c (syms_of_doc):
17623 * editfns.c (syms_of_editfns):
17624 * emacs.c (syms_of_emacs):
17625 * eval.c (syms_of_eval):
17626 * fileio.c (syms_of_fileio):
17627 * fns.c (syms_of_fns):
17628 * frame.c (syms_of_frame):
17629 * fringe.c (syms_of_fringe):
17630 * insdel.c (syms_of_insdel):
17631 * keymap.c (syms_of_keymap):
17632 * lread.c (init_obarray, syms_of_lread):
17633 * macros.c (syms_of_macros):
17634 * msdos.c (syms_of_msdos):
17635 * print.c (syms_of_print):
17636 * process.c (syms_of_process):
17637 * search.c (syms_of_search):
17638 * sound.c (syms_of_sound):
17639 * syntax.c (init_syntax_once, syms_of_syntax):
17640 * terminal.c (syms_of_terminal):
17641 * textprop.c (syms_of_textprop):
17642 * undo.c (syms_of_undo):
17643 * w32.c (globals_of_w32):
17644 * window.c (syms_of_window):
17645 * xdisp.c (syms_of_xdisp):
17646 * xfaces.c (syms_of_xfaces):
17647 * xfns.c (syms_of_xfns):
17648 * xmenu.c (syms_of_xmenu):
17649 * xsettings.c (syms_of_xsettings):
17650 * xterm.c (syms_of_xterm): Use DEFSYM.
17651
176522011-06-24 Teodor Zlatanov <tzz@lifelogs.com>
17653
17654 * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h.
17655
176562011-06-23 Paul Eggert <eggert@cs.ucla.edu>
17657
17658 Integer and buffer overflow fixes (Bug#8873).
17659
17660 * print.c (printchar, strout): Check for string overflow.
17661 (PRINTPREPARE, printchar, strout):
17662 Don't set size unless allocation succeeds.
17663
17664 * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int,
17665 for sizes. Check for string overflow more accurately.
17666 Simplify newline removal at end; this suppresses a GCC 4.6.0 warning.
17667
17668 * macros.c: Integer and buffer overflow fixes.
17669 * keyboard.h (struct keyboard.kbd_macro_bufsize):
17670 * macros.c (Fstart_kbd_macro, store_kbd_macro_char):
17671 Use ptrdiff_t, not int, for sizes.
17672 Don't increment bufsize until after realloc succeeds.
17673 Check for size-calculation overflow.
17674 (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result.
17675
17676 * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
17677
17678 * lread.c: Integer overflow fixes.
17679 (read_integer): Radix is now EMACS_INT, not int,
17680 to improve quality of diagnostics for out-of-range radices.
17681 Calculate buffer size correctly for out-of-range radices.
17682 (read1): Check for integer overflow in radices, and in
17683 read-circle numbers.
17684 (read_escape): Avoid int overflow.
17685 (Fload, openp, read_buffer_size, read1)
17686 (substitute_object_recurse, read_vector, read_list, map_obarray):
17687 Use ptrdiff_t, not int, for sizes.
17688 (read1): Use EMACS_INT, not int, for sizes.
17689 Check for size overflow.
17690
17691 * image.c (cache_image): Check for size arithmetic overflow.
17692
17693 * lread.c: Integer overflow issues.
17694 (saved_doc_string_size, saved_doc_string_length)
17695 (prev_saved_doc_string_size, prev_saved_doc_string_length):
17696 Now ptrdiff_t, not int.
17697 (read1): Don't assume doc string length fits in int. Check for
17698 out-of-range doc string lengths.
17699 (read_list): Don't assume file position fits in int.
17700 (read_escape): Check for hex character overflow.
17701
177022011-06-22 Leo Liu <sdl.web@gmail.com>
17703
17704 * minibuf.c (Fcompleting_read_default, Vcompleting_read_function):
17705 Move to minibuffer.el.
17706
177072011-06-22 Paul Eggert <eggert@cs.ucla.edu>
17708
17709 Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
17710 The following patches are for when GLYPH_DEBUG && !XASSERT.
17711 * dispextern.h (trace_redisplay_p, dump_glyph_string):
17712 * dispnew.c (flush_stdout):
17713 * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph):
17714 Mark as externally visible.
17715 * dispnew.c (check_window_matrix_pointers): Now static.
17716 * dispnew.c (window_to_frame_vpos):
17717 * xfns.c (unwind_create_frame):
17718 * xterm.c (x_check_font): Remove unused local.
17719 * scroll.c (CHECK_BOUNDS):
17720 * xfaces.c (cache_fache): Rename local to avoid shadowing.
17721 * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static.
17722 * xdisp.c (check_window_end): Now a no-op if !XASSERTS.
17723 (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos)
17724 (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos):
17725 Now static.
17726 (debug_method_add): Use va_list and vsprintf rather than relying
17727 on undefined behavior with wrong number of arguments.
17728 (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
17729 Don't assume ptrdiff_t and EMACS_INT are the same width as int.
17730 In this code, it's OK to assume C99 behavior for ptrdiff_t formats
17731 since we're not interested in debugging glyphs with old libraries.
17732 * xfaces.c (cache_face): Move debugging code earlier; this pacifies
17733 GCC 4.6.0's static checking.
17734
177352011-06-22 Paul Eggert <eggert@cs.ucla.edu>
17736
17737 Integer overflow and signedness fixes (Bug#8873).
17738 A few related buffer overrun fixes, too.
17739
17740 * font.c (font_score): Use EMACS_INT, not int, to store XINT value.
17741
17742 * dispextern.h (struct face.stipple):
17743 * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
17744 (x_bitmap_mask, x_allocate_bitmap_record)
17745 (x_create_bitmap_from_data, x_create_bitmap_from_file)
17746 (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask)
17747 (x_create_bitmap_from_xpm_data):
17748 * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last):
17749 * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size)
17750 (.bitmaps_last):
17751 * xfaces.c (load_pixmap):
17752 * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap):
17753 * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size)
17754 (.bitmaps_last, struct x_output.icon_bitmap):
17755 Use ptrdiff_t, not int, for bitmap indexes.
17756 (x_allocate_bitmap_record): Check for size overflow.
17757 * dispextern.h, lisp.h: Adjust to API changes elsewhere.
17758
17759 Use ptrdiff_t, not int, for overlay counts.
17760 * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT):
17761 * editfns.c (overlays_around, get_pos_property):
17762 * textprop.c (get_char_property_and_overlay):
17763 * xdisp.c (next_overlay_change, note_mouse_highlight):
17764 * xfaces.c (face_at_buffer_position):
17765 * buffer.c (OVERLAY_COUNT_MAX): New macro.
17766 (overlays_at, overlays_in, sort_overlays, Foverlays_at)
17767 (Fnext_overlay_change, Fprevious_overlay_change)
17768 (mouse_face_overlay_overlaps, Foverlays_in):
17769 Use ptrdiff_t, not int, for sizes.
17770 (overlays_at, overlays_in): Check for size-calculation overflow.
17771
17772 * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int.
17773
17774 * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen.
17775 (x_session_initialize): Do not assume string length fits in int.
17776
17777 * xsettings.c (apply_xft_settings): Fix potential buffer overrun.
17778 This is unlikely, but can occur if DPI is outlandish.
17779
17780 * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
17781 * xselect.c (Fx_get_atom_name): Avoid need for strlen.
17782
17783 * xrdb.c: Don't assume strlen fits in int; avoid some strlens.
17784 * xrdb.c (magic_file_p, search_magic_path):
17785 Omit last arg SUFFIX; it was always 0. All callers changed.
17786 (magic_file_p): Use ptrdiff_t, not int. Check for size overflow.
17787
17788 * xfont.c (xfont_match): Avoid need for strlen.
17789
17790 * xfns.c: Don't assume strlen fits in int.
17791 (xic_create_fontsetname, x_window): Use ptrdiff_t, not int.
17792
17793 * xdisp.c (message_log_check_duplicate): Return intmax_t,
17794 not unsigned long, as we prefer signed integers. All callers changed.
17795 Detect integer overflow in repeat count.
17796 (message_dolog): Don't assume print length fits in 39 bytes.
17797 (display_mode_element): Don't assume strlen fits in int.
17798
17799 * termcap.c: Don't assume sizes fit in int and never overflow.
17800 (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes.
17801 (gobble_line): Check for size-calculation overflow.
17802
17803 * minibuf.c (Fread_buffer):
17804 * lread.c (intern, intern_c_string):
17805 * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]:
17806 Don't assume string length fits in int.
17807
17808 * keyboard.c (parse_tool_bar_item):
17809 * gtkutil.c (style_changed_cb): Avoid need for strlen.
17810
17811 * font.c: Don't assume string length fits in int.
17812 (font_parse_xlfd, font_parse_fcname, font_unparse_fcname):
17813 Use ptrdiff_t, not int.
17814 (font_intern_prop): Don't assume string length fits in int.
17815 Don't assume integer property fits in fixnum.
17816 * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int.
17817
17818 * filelock.c: Fix some buffer overrun and integer overflow issues.
17819 (get_boot_time): Don't assume gzip command string fits in 100 bytes.
17820 Reformulate so as not to need the command string.
17821 Invoke gzip -cd rather than gunzip, as it's more portable.
17822 (lock_info_type, lock_file_1, lock_file):
17823 Don't assume pid_t and time_t fit in unsigned long.
17824 (LOCK_PID_MAX): Remove; we now use more-reliable bounds.
17825 (current_lock_owner): Prefer signed type for sizes.
17826 Use memcpy, not strncpy, where memcpy is what is really wanted.
17827 Don't assume (via atoi) that time_t and pid_t fit in int.
17828 Check for time_t and/or pid_t out of range, e.g., via a network share.
17829 Don't alloca where an auto var works fine.
17830
17831 * fileio.c: Fix some integer overflow issues.
17832 (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name):
17833 Don't assume string length fits in int.
17834 (directory_file_name): Don't assume string length fits in long.
17835 (make_temp_name): Don't assume pid fits in int, or that its print
17836 length is less than 20.
17837
17838 * data.c (Fsubr_name): Rewrite to avoid a strlen call.
17839
17840 * coding.c (make_subsidiaries): Don't assume string length fits in int.
17841
17842 * callproc.c (child_setup): Rewrite to avoid two strlen calls.
17843
17844 * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT.
17845 We prefer signed integers, even for size calculations.
17846
17847 * emacs.c: Don't assume string length fits in 'int'.
17848 (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int.
17849 (main): Don't invoke strlen when not needed.
17850
17851 * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string.
17852 (XD_DEBUG_MESSAGE): Don't waste a byte.
17853
17854 * callproc.c (getenv_internal_1, getenv_internal)
17855 (Fgetenv_internal):
17856 * buffer.c (init_buffer): Don't assume string length fits in 'int'.
17857
17858 * lread.c (invalid_syntax): Omit length argument.
17859 All uses changed. This doesn't fix a bug, but it simplifies the
17860 code away from its former Hollerith-constant appearance, and it's
17861 one less 'int' to worry about when looking at integer-overflow issues.
17862 (string_to_number): Simplify 2011-04-26 change by invoking xsignal1.
17863
17864 * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr).
17865 This didn't break anything, but it didn't help either.
17866 It's confusing to put a bogus integer in a place where the actual
17867 value does not matter.
17868 (LIST_END_P): Remove unused macro and its bogus comment.
17869 (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT.
17870
17871 * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT.
17872 This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE,
17873 implementation.
17874 (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT.
17875 We prefer signed types, and the value cannot exceed the EMACS_INT
17876 range anyway (because otherwise the length would not be representable).
17877 (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t,
17878 not EMACS_UINT and EMACS_INT, when converting pointer to integer.
17879 This avoids a GCC warning when WIDE_EMACS_INT.
17880
17881 * indent.c (sane_tab_width): New function.
17882 (current_column, scan_for_column, Findent_to, position_indentation)
17883 (compute_motion): Use it. This is just for clarity.
17884 (Fcompute_motion): Don't assume hscroll and tab offset fit in int.
17885
17886 * image.c (xbm_image_p): Don't assume stated width, height fit in int.
17887
17888 * lisp.h (lint_assume): New macro.
17889 * composite.c (composition_gstring_put_cache):
17890 * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0.
17891 8877
17892 * editfns.c, insdel.c: 88782013-04-20 Erik Charlebois <erikcharlebois@gmail.com>
17893 Omit unnecessary forward decls, to simplify future changes.
17894 8879
17895 * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths. 8880 * w32fns.c (w32_fullscreen_rect): New function to compute the
8881 window rectangle for the given fullscreen mode.
8882 (w32_wnd_proc): When in a fullscreen mode, WM_WINDOWPOSCHANGING no
8883 longer tunes the window size. This keeps the window's edges flush
8884 with the screen and allows the taskbar to hide itself in fullboth.
17896 8885
17897 * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'. 8886 * w32term.c (w32fullscreen_hook): 'fullboth' now shows without
8887 window decorations and uses the entire screen.
17898 8888
17899 * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'. 8889 * w32term.h (w32_fullscreen_rect) Add prototype.
17900 Use much-faster test for byte-length change. 8890 (struct w32_output): Replace normal_width, normal_height,
17901 Don't assume string byte-length fits in 'int'. 8891 normal_top, and normal_left members with a single normal_placement
17902 Check that character arg fits in 'int'. 8892 struct.
17903 (mapcar1): Declare byte as byte, for clarity. 8893 (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP):
8894 Remove macros.
8895 (FRAME_NORMAL_PLACEMENT): New macro.
17904 8896
17905 * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication. 88972013-04-16 Juanma Barranquero <lekktu@gmail.com>
17906 8898
17907 * fns.c (concat): Catch string overflow earlier. 8899 * minibuf.c (Ftest_completion): Silence compiler warning.
17908 Do not rely on integer wraparound.
17909 8900
17910 * dispextern.h (struct it.overlay_strings_charpos) 89012013-04-15 Eli Zaretskii <eliz@gnu.org>
17911 (struct it.selective): Now EMACS_INT, not int.
17912 * xdisp.c (forward_to_next_line_start)
17913 (back_to_previous_visible_line_start)
17914 (reseat_at_next_visible_line_start, next_element_from_buffer):
17915 Don't arbitrarily truncate the value of 'selective' to int.
17916 8902
17917 * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0. 8903 * w32fns.c (w32_wnd_proc): Add more assertions to investigate
8904 bug#14062.
17918 8905
17919 * composite.c: Don't truncate sizes to 'int'. 8906 * frame.h (WINDOW_FRAME): Protect macro and its argument with
17920 (composition_gstring_p, composition_reseat_it) 8907 parentheses.
17921 (composition_adjust_point): Use EMACS_INT, not int.
17922 (get_composition_id, composition_gstring_put_cache): Use EMACS_INT,
17923 not EMACS_UINT, for indexes.
17924 8908
17925 * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT. 8909 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
8910 (CURRENT_HEADER_LINE_HEIGHT, WINDOW_WANTS_MODELINE_P)
8911 (WINDOW_WANTS_HEADER_LINE_P): Protect macro arguments with
8912 parentheses where appropriate.
17926 8913
17927 * buffer.c: Include <verify.h>. 89142013-04-14 Paul Eggert <eggert@cs.ucla.edu>
17928 (struct sortvec.priority, struct sortstr.priority):
17929 Now EMACS_INT, not int.
17930 (compare_overlays, cmp_for_strings): Avoid subtraction overflow.
17931 (struct sortstr.size, record_overlay_string)
17932 (struct sortstrlist.size, struct sortlist.used):
17933 Don't truncate size to int.
17934 (record_overlay_string): Check for size-calculation overflow.
17935 (init_buffer_once): Check at compile-time, not run-time.
17936 8915
179372011-06-22 Jim Meyering <meyering@redhat.com> 8916 * keyboard.c (timer_start_idle): Remove no-longer-used local.
17938 8917
17939 Don't leak an XBM-image-sized buffer 89182013-04-14 Eli Zaretskii <eliz@gnu.org>
17940 * image.c (xbm_load): Free the image buffer after using it.
17941 8919
179422011-06-21 Paul Eggert <eggert@cs.ucla.edu> 8920 * buffer.c (syms_of_buffer) <left-margin-width, right-margin-width>:
8921 <left-fringe-width, right-fringe-width, fringes-outside-margins>:
8922 Mention in the doc string that setting these variables takes
8923 effect only after a call to set-window-buffer. (Bug#14200)
17943 8924
17944 Port to Sun C. 89252013-04-13 Eli Zaretskii <eliz@gnu.org>
17945 * composite.c (find_automatic_composition): Omit needless 'return 0;'
17946 that Sun C diagnosed.
17947 * fns.c (secure_hash): Fix pointer signedness issue.
17948 * intervals.c (static_offset_intervals): New function.
17949 (offset_intervals): Use it.
17950 8926
179512011-06-21 Leo Liu <sdl.web@gmail.com> 8927 * indent.c (Fvertical_motion): Don't consider display strings on
8928 overlay strings as display strings on the buffer position we
8929 started from. This prevents vertical cursor motion from jumping
8930 more than one line when there's an overlay string with a display
8931 property at end of line.
8932 Reported by Karl Chen <Karl.Chen@quarl.org> in
8933 http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00362.html.
17952 8934
17953 * deps.mk (fns.o): 89352013-04-12 Stefan Monnier <monnier@iro.umontreal.ca>
17954 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and
17955 sha512.h.
17956 8936
17957 * fns.c (secure_hash): Rename from crypto_hash_function and change 8937 * window.c (select_window): `record_buffer' even if window is
17958 the first arg to accept symbols. 8938 already selected (bug#14191).
17959 (Fsecure_hash): New primitive.
17960 (syms_of_fns): New symbols.
17961 8939
179622011-06-20 Deniz Dogan <deniz@dogan.se> 89402013-04-11 Eli Zaretskii <eliz@gnu.org>
17963 8941
17964 * process.c (Fset_process_buffer): Clarify return value in 8942 * window.c (Fwindow_end): Test more flags, including the buffer's
17965 docstring. 8943 last_overlay_modified flag, to determine whether the window's
8944 display is really up-to-date. Prevents the function from
8945 returning a stale value. (Bug#14170)
8946 (Fwindow_line_height): Fix the test for up-to-date-ness of the
8947 current matrix.
17966 8948
179672011-06-18 Chong Yidong <cyd@stupidchicken.com> 89492013-04-10 Eli Zaretskii <eliz@gnu.org>
17968 8950
17969 * dispnew.c (add_window_display_history): Use BVAR. 8951 * frame.c (do_switch_frame): Mark the TTY frame we switch to as
8952 garbaged only if it is not already the top frame on its TTY.
8953 This prevents flickering due to constant redrawing of TTY frames when
8954 there are GUI frames open in the same session. (Bug#13864)
17970 8955
17971 * xdisp.c (debug_method_add): Use BVAR. 89562013-04-10 Stefan Monnier <monnier@iro.umontreal.ca>
17972 (check_window_end, dump_glyph_matrix, dump_glyph)
17973 (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C.
17974 8957
17975 * xfaces.c (check_lface_attrs, check_lface, dump_realized_face): 8958 * keyboard.c (timer_start_idle): Call internal-timer-start-idle instead
17976 Likewise. 8959 of marking the idle timers directly.
17977 8960
17978 * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache 89612013-04-09 Stefan Monnier <monnier@iro.umontreal.ca>
17979 check till after the cache is created in init_frame_faces.
17980
179812011-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
17982
17983 * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup.
17984
179852011-06-16 Paul Eggert <eggert@cs.ucla.edu>
17986
17987 * lisp.h: Include <limits.h>, for INT_MAX, LONG_MAX, LLONG_MAX.
17988 Without this, prin1 mishandles Lisp_Misc_Save_Value printing on
17989 hosts with pre-C99 libraries, because pD is wrongly defined to "t".
17990
17991 Improve buffer-overflow checking (Bug#8873).
17992 * fileio.c (Finsert_file_contents):
17993 * insdel.c (insert_from_buffer_1, replace_range, replace_range_2):
17994 Remove the old (too-loose) buffer overflow checks.
17995 They weren't needed, since make_gap checks for buffer overflow.
17996 * insdel.c (make_gap_larger): Catch buffer overflows that were missed.
17997 The old code merely checked for Emacs fixnum overflow, and relied
17998 on undefined (wraparound) behavior. The new code avoids undefined
17999 behavior, and also checks for ptrdiff_t and/or size_t overflow.
18000
18001 * editfns.c (Finsert_char): Don't dump core with very negative counts.
18002 Tune. Don't use wider integers than needed. Don't use alloca.
18003 Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test.
18004
18005 * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing.
18006
18007 * insdel.c, lisp.h (buffer_overflow): New function.
18008 (insert_from_buffer_1, replace_range, replace_range_2):
18009 * insdel.c (make_gap_larger):
18010 * editfns.c (Finsert_char):
18011 * fileio.c (Finsert_file_contents): Use it, to normalize wording.
18012
18013 * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed.
18014
180152011-06-15 Paul Eggert <eggert@cs.ucla.edu>
18016
18017 Integer overflow and signedness fixes (Bug#8873, Bug#8828).
18018 8962
18019 * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772. 8963 * minibuf.c (Ftest_completion): Ignore non-string/symbol keys in hash
18020 (GET_CCL_RANGE, IN_INT_RANGE): Use it. 8964 tables (bug#14054).
18021 8965
18022 * fileio.c: Don't assume EMACS_INT fits in off_t. 89662013-04-08 Stefan Monnier <monnier@iro.umontreal.ca>
18023 (emacs_lseek): New static function.
18024 (Finsert_file_contents, Fwrite_region): Use it.
18025 Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate.
18026 8967
18027 * fns.c (Fload_average): Don't assume 100 * load average fits in int. 8968 * window.c (select_window): Don't record_buffer while the invariant is
18028 8969 temporarily broken (bug#14161).
18029 * fns.c: Don't overflow int when computing a list length.
18030 * fns.c (QUIT_COUNT_HEURISTIC): New constant.
18031 (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted
18032 truncation on 64-bit hosts. Check for QUIT every
18033 QUIT_COUNT_HEURISTIC entries rather than every other entry; that's
18034 faster and is responsive enough.
18035 (Flength): Report an error instead of overflowing an integer.
18036 (Fsafe_length): Return a float if the value is not representable
18037 as a fixnum. This shouldn't happen except in contrived situations.
18038 (Fnthcdr, Fsort): Don't assume list length fits in int.
18039 (Fcopy_sequence): Don't assume vector length fits in int.
18040 8970
18041 * alloc.c: Check that resized vectors' lengths fit in fixnums. 8971 * fns.c (Fdelq): Don't assume !NILP => CONSP.
18042 (header_size, word_size): New constants.
18043 (allocate_vectorlike): Don't check size overflow here.
18044 (allocate_vector): Check it here instead, since this is the only
18045 caller of allocate_vectorlike that could cause overflow.
18046 Check that the new vector's length is representable as a fixnum.
18047 8972
18048 * fns.c (next_almost_prime): Don't return a multiple of 3 or 5. 89732013-04-07 Eli Zaretskii <eliz@gnu.org>
18049 The previous code was bogus. For example, next_almost_prime (32)
18050 returned 39, which is undesirable as it is a multiple of 3; and
18051 next_almost_prime (24) returned 25, which is a multiple of 5 so
18052 why was the code bothering to check for multiples of 7?
18053
18054 * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length.
18055
18056 * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now.
18057
18058 Variadic C functions now count arguments with ptrdiff_t.
18059 This partly undoes my 2011-03-30 change, which replaced int with size_t.
18060 Back then I didn't know that the Emacs coding style prefers signed int.
18061 Also, in the meantime I found a few more instances where arguments
18062 were being counted with int, which may truncate counts on 64-bit
18063 machines, or EMACS_INT, which may be unnecessarily wide.
18064 * lisp.h (struct Lisp_Subr.function.aMANY)
18065 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
18066 Arg counts are now ptrdiff_t, not size_t.
18067 All variadic functions and their callers changed accordingly.
18068 (struct gcpro.nvars): Now size_t, not size_t. All uses changed.
18069 * bytecode.c (exec_byte_code): Check maxdepth for overflow,
18070 to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
18071 * callint.c (Fcall_interactively): Check arg count for overflow,
18072 to avoid potential buffer overrun. Use signed char, not 'int',
18073 for 'varies' array, so that we needn't bother to check its size
18074 calculation for overflow.
18075 * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
18076 * eval.c (apply_lambda):
18077 * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
18078 (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
18079 (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
18080
18081 * callint.c (Fcall_interactively): Don't use index var as event count.
18082
18083 * vm-limit.c (check_memory_limits): Fix incorrect extern function decls.
18084 * mem-limits.h (SIZE): Remove; no longer used.
18085
18086 * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works.
18087
18088 Remove unnecessary casts.
18089 * xterm.c (x_term_init):
18090 * xfns.c (x_set_border_pixel):
18091 * widget.c (create_frame_gcs): Remove casts to unsigned long etc.
18092 These aren't needed now that we assume ANSI C.
18093
18094 * sound.c (Fplay_sound_internal): Remove cast to unsigned long.
18095 It's more likely to cause problems (due to unsigned overflow)
18096 than to cure them.
18097
18098 * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts.
18099
18100 * unexelf.c (unexec): Don't assume BSS addr fits in unsigned.
18101
18102 * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned.
18103
18104 * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX.
18105
18106 * lisp.h (CHAR_TABLE_SET): Omit now-redundant test.
18107
18108 * lread.c (Fload): Don't compare a possibly-garbage time_t value.
18109
18110 GLYPH_CODE_FACE returns EMACS_INT, not int.
18111 * dispextern.h (merge_faces):
18112 * xfaces.c (merge_faces):
18113 * xdisp.c (get_next_display_element, next_element_from_display_vector):
18114 Don't assume EMACS_INT fits in int.
18115
18116 * character.h (CHAR_VALID_P): Remove unused parameter.
18117 * fontset.c, lisp.h, xdisp.c: All uses changed.
18118
18119 * editfns.c (Ftranslate_region_internal): Omit redundant test.
18120
18121 * fns.c (concat): Minor tuning based on overflow analysis.
18122 This doesn't fix any bugs. Use int to hold character, instead
18123 of constantly refetching from Emacs object. Use XFASTINT, not
18124 XINT, for value known to be a character. Don't bother comparing
18125 a single byte to 0400, as it's always less.
18126
18127 * floatfns.c (Fexpt):
18128 * fileio.c (make_temp_name): Omit unnecessary cast to unsigned.
18129
18130 * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT
18131 for characters.
18132
18133 * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives.
18134
18135 * data.c (Faset): If ARRAY is a string, check that NEWELT is a char.
18136 Without this fix, on a 64-bit host (aset S 0 4294967386) would
18137 incorrectly succeed when S was a string, because 4294967386 was
18138 truncated before it was used.
18139
18140 * chartab.c (Fchar_table_range): Use CHARACTERP to check range.
18141 Otherwise, an out-of-range integer could cause undefined behavior
18142 on a 64-bit host.
18143
18144 * composite.c: Use int, not EMACS_INT, for characters.
18145 (fill_gstring_body, composition_compute_stop_pos): Use int, not
18146 EMACS_INT, for values that are known to be in character range.
18147 This doesn't fix any bugs but is the usual style inside Emacs and
18148 may generate better code on 32-bit machines.
18149
18150 Make sure a 64-bit char is never passed to ENCODE_CHAR.
18151 This is for reasons similar to the recent CHAR_STRING fix.
18152 * charset.c (Fencode_char): Check that character arg is actually
18153 a character. Pass an int to ENCODE_CHAR.
18154 * charset.h (ENCODE_CHAR): Verify that the character argument is no
18155 wider than 'int', as a compile-time check to prevent future regressions
18156 in this area.
18157
18158 * character.c (char_string): Remove unnecessary casts.
18159
18160 Make sure a 64-bit char is never passed to CHAR_STRING.
18161 Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform,
18162 by silently ignoring the top 32 bits, allowing some values
18163 that were far too large to be valid characters.
18164 * character.h: Include <verify.h>.
18165 (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character
18166 arguments are no wider than unsigned, as a compile-time check
18167 to prevent future regressions in this area.
18168 * data.c (Faset):
18169 * editfns.c (Fchar_to_string, general_insert_function, Finsert_char)
18170 (Fsubst_char_in_region):
18171 * fns.c (concat):
18172 * xdisp.c (decode_mode_spec_coding):
18173 Adjust to CHAR_STRING's new requirement.
18174 * editfns.c (Finsert_char, Fsubst_char_in_region):
18175 * fns.c (concat): Check that character args are actually
18176 characters. Without this test, these functions did the wrong
18177 thing with wildly out-of-range values on 64-bit hosts.
18178
18179 Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts.
18180 These casts should not be needed on 32-bit hosts, either.
18181 * keyboard.c (read_char):
18182 * lread.c (Fload): Remove casts to unsigned.
18183
18184 * lisp.h (UNSIGNED_CMP): New macro.
18185 This fixes comparison bugs on 64-bit hosts.
18186 (ASCII_CHAR_P): Use it.
18187 * casefiddle.c (casify_object):
18188 * character.h (ASCII_BYTE_P, CHAR_VALID_P)
18189 (SINGLE_BYTE_CHAR_P, CHAR_STRING):
18190 * composite.h (COMPOSITION_ENCODE_RULE_VALID):
18191 * dispextern.h (FACE_FROM_ID):
18192 * keyboard.c (read_char): Use UNSIGNED_CMP.
18193
18194 * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t,
18195 not to EMACS_INT, to avoid GCC warning.
18196
18197 * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals.
18198
18199 * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast.
18200 The cast incorrectly truncated 64-bit byte offsets to 32 bits, and
18201 isn't needed on 32-bit machines.
18202
18203 * buffer.c (Fgenerate_new_buffer_name):
18204 Use EMACS_INT for count, not int.
18205 (advance_to_char_boundary): Return EMACS_INT, not int.
18206
18207 * data.c (Qcompiled_function): Now static.
18208
18209 * window.c (window_body_lines): Now static.
18210
18211 * image.c (gif_load): Rename local to avoid shadowing.
18212
18213 * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow.
18214 (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member.
18215 * alloc.c (make_save_value): Integer argument is now of type
18216 ptrdiff_t, not int.
18217 (mark_object): Use ptrdiff_t, not int.
18218 * lisp.h (pD): New macro.
18219 * print.c (print_object): Use it.
18220
18221 * alloc.c: Use EMACS_INT, not int, to count objects.
18222 (total_conses, total_markers, total_symbols, total_vector_size)
18223 (total_free_conses, total_free_markers, total_free_symbols)
18224 (total_free_floats, total_floats, total_free_intervals)
18225 (total_intervals, total_strings, total_free_strings):
18226 Now EMACS_INT, not int. All uses changed.
18227 (Fgarbage_collect): Compute overall total using a double, so that
18228 integer overflow is less likely to be a problem. Check for overflow
18229 when converting back to an integer.
18230 (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks)
18231 (n_vectors, n_symbol_blocks, n_marker_blocks): Remove.
18232 These were 'int' variables that could overflow on 64-bit hosts;
18233 they were never used, so remove them instead of repairing them.
18234 (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'.
18235 (inhibit_garbage_collection): Set gc_cons_threshold to max value.
18236 Previously, this ceilinged at INT_MAX, but that doesn't work on
18237 64-bit machines.
18238 (allocate_pseudovector): Don't use EMACS_INT when int would do.
18239
18240 * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int.
18241 (allocate_vectorlike): Check for ptrdiff_t overflow.
18242 (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT
18243 when a (possibly-narrower) signed value would do just as well.
18244 We prefer using signed arithmetic, to avoid comparison confusion.
18245
18246 * alloc.c: Catch some string size overflows that we were missing.
18247 (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0,
18248 for convenience in STRING_BYTES_MAX.
18249 (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h.
18250 The definition here is exact; the one in lisp.h was approximate.
18251 (allocate_string_data): Check for string overflow. This catches
18252 some instances we weren't catching before. Also, it catches
18253 size_t overflow on (unusual) hosts where SIZE_MAX <= min
18254 (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits
18255 and ptrdiff_t and EMACS_INT are both 64 bits.
18256
18257 * character.c, coding.c, doprnt.c, editfns.c, eval.c:
18258 All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND.
18259 * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX.
18260
18261 * character.c (string_escape_byte8): Fix nbytes/nchars typo.
18262
18263 * alloc.c (Fmake_string): Check for out-of-range init.
18264
182652011-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
18266
18267 * eval.c (Fdefvaralias): Also mark the target as variable-special-p.
18268
182692011-06-14 Jan Djärv <jan.h.d@swipnet.se>
18270
18271 * xfns.c (x_set_scroll_bar_default_width): Remove argument to
18272 xg_get_default_scrollbar_width.
18273
18274 * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3.
18275 (int_gtk_range_get_value): Move to the scroll bar part of the file.
18276 (style_changed_cb): Call update_theme_scrollbar_width and call
18277 x_set_scroll_bar_default_width and xg_frame_set_char_size for
18278 all frames (Bug#8505).
18279 (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505).
18280 Call gtk_window_set_resizable if HAVE_GTK3.
18281 (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width
18282 and height if HAVE_GTK3 (Bug#8505).
18283 (scroll_bar_width_for_theme): New variable.
18284 (update_theme_scrollbar_width): New function.
18285 (xg_get_default_scrollbar_width): Move code to
18286 update_theme_scrollbar_width, just return scroll_bar_width_for_theme.
18287 (xg_initialize): Call update_theme_scrollbar_width.
18288
18289 * gtkutil.h (xg_get_default_scrollbar_width): Remove argument.
18290
18291 * emacsgtkfixed.c, emacsgtkfixed.h: New files.
18292
182932011-06-12 Martin Rudalics <rudalics@gmx.at>
18294
18295 * frame.c (make_frame): Call other_buffer_safely instead of
18296 other_buffer.
18297
18298 * window.c (temp_output_buffer_show): Call display_buffer with
18299 second argument Vtemp_buffer_show_specifiers and reset latter
18300 immediately after the call.
18301 (Vtemp_buffer_show_specifiers): New variable.
18302 (auto_window_vscroll_p, next_screen_context_lines)
18303 (Vscroll_preserve_screen_position): Remove leading asterisks from
18304 doc-strings.
18305
183062011-06-12 Paul Eggert <eggert@cs.ucla.edu>
18307
18308 Fix minor problems found by GCC 4.6.0 static checking.
18309 * buffer.c (Qclone_number): Remove for now, as it's unused.
18310 (record_buffer, Funrecord_buffer): Rename local to avoid shadowing.
18311 (record_buffer): Remove unused local.
18312 * frame.c (other_visible_frames, frame_buffer_list): Now static.
18313 (set_frame_buffer_list): Remove; unused.
18314 * frame.h (other_visible_frames): Remove decl.
18315 * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF.
18316 * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls.
18317 (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only
18318 if HAVE_GPM.
18319 * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF.
18320 * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
18321 Define only if HAVE_GPM.
18322 * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static.
18323 (update_hints_inhibit): Remove; never set. All uses removed.
18324 * widgetprv.h (emacsFrameClassRec): Remove decl.
18325 * window.c (delete_deletable_window): Now returns void, since it
18326 wasn't returning anything.
18327 (compare_window_configurations): Remove unused locals.
18328 * xfns.c (x_set_scroll_bar_default_width): Remove unused locals.
18329 * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF.
18330 (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers
18331 the same widths as pointers. This follows up on the 2011-05-06 patch.
18332 * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID.
18333 * xterm.h: Likewise.
18334 (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF.
18335
183362011-06-12 Juanma Barranquero <lekktu@gmail.com>
18337
18338 * makefile.w32-in: Update dependencies.
18339 (LISP_H): Add lib/intprops.h.
18340
183412011-06-11 Chong Yidong <cyd@stupidchicken.com>
18342
18343 * image.c (gif_load): Add animation frame delay to the metadata.
18344 (syms_of_image): Use DEFSYM. New symbol `delay'.
18345
183462011-06-11 Martin Rudalics <rudalics@gmx.at>
18347
18348 * window.c (delete_deletable_window): Re-add.
18349 (Fset_window_configuration): Rewrite to handle dead buffers and
18350 consequently deletable windows.
18351 (window_tree, Fwindow_tree): Remove. Supply functionality in
18352 window.el.
18353 (compare_window_configurations): Simplify code.
18354
183552011-06-11 Andreas Schwab <schwab@linux-m68k.org>
18356
18357 * image.c (imagemagick_load_image): Fix type mismatch.
18358 (Fimagemagick_types): Likewise.
18359
18360 * window.h (replace_buffer_in_windows): Declare.
18361
183622011-06-11 Martin Rudalics <rudalics@gmx.at>
18363
18364 * buffer.c: New Lisp objects Qbuffer_list_update_hook and
18365 Qclone_number. Remove external declaration of Qdelete_window.
18366 (Fbuffer_list): Rewrite doc-string. Minor restructuring of
18367 code.
18368 (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer):
18369 Run Qbuffer_list_update_hook if allowed.
18370 (Fother_buffer): Rewrite doc-string. Major rewrite for new
18371 buffer list implementation.
18372 (other_buffer_safely): New function.
18373 (Fkill_buffer): Replace call to replace_buffer_in_all_windows by
18374 calls to replace_buffer_in_windows and
18375 replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook
18376 if allowed.
18377 (record_buffer): Inhibit quitting and rewrite using quittable
18378 functions. Run Qbuffer_list_update_hook if allowed.
18379 (Frecord_buffer, Funrecord_buffer): New functions.
18380 (switch_to_buffer_1, Fswitch_to_buffer): Remove.
18381 Move switch-to-buffer to window.el.
18382 (bury-buffer): Move to window.el.
18383 (Vbuffer_list_update_hook): New variable.
18384
18385 * lisp.h (other_buffer_safely): Add prototype in buffer.c
18386 section.
18387
18388 * window.h (resize_frame_windows): Move up in code.
18389 (Fwindow_frame): Remove EXFUN.
18390 (replace_buffer_in_all_windows): Remove prototype.
18391 (replace_buffer_in_windows_safely): Add prototype.
18392
18393 * window.c: Declare Qdelete_window static again. Move down
18394 declaration of select_count.
18395 (Fnext_window, Fprevious_window): Rewrite doc-strings.
18396 (Fother_window): Move to window.el.
18397 (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER
18398 cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case.
18399 (Fdelete_windows_on, Freplace_buffer_in_windows): Move to
18400 window.el.
18401 (replace_buffer_in_windows): Implement by calling
18402 Qreplace_buffer_in_windows.
18403 (replace_buffer_in_all_windows): Remove with some functionality
18404 moved into replace_buffer_in_windows_safely.
18405 (replace_buffer_in_windows_safely): New function.
18406 (select_window_norecord, select_frame_norecord): Move in front
18407 of run_window_configuration_change_hook. Remove now obsolete
18408 declarations.
18409 (Fset_window_buffer): Rewrite doc-string.
18410 Call Qrecord_window_buffer.
18411 (keys_of_window): Move binding for other-window to window.el.
18412 8974
184132011-06-11 Chong Yidong <cyd@stupidchicken.com> 8975 * fileio.c (ACL_NOT_WELL_SUPPORTED): Define macro for WINDOWSNT.
18414 8976
18415 * dispextern.h (struct image): Replace data member, whose int_val 89772013-04-07 Romain Francoise <romain@orebokech.com>
18416 and ptr_val fields were not used by anything, with a single
18417 lisp_val object.
18418 8978
18419 * image.c (Fimage_metadata, make_image, mark_image, tiff_load) 8979 Ignore additional platform-specific ACL errors (Bug#13702).
18420 (gif_clear_image, gif_load, imagemagick_load_image) 8980 * fileio.c (ACL_NOT_WELL_SUPPORTED): New macro copied from gnulib.
18421 (gs_clear_image, gs_load): Callers changed. 8981 (Fcopy_file, Fset_file_acl) [HAVE_POSIX_ACL]: Use it.
18422 8982
184232011-06-10 Paul Eggert <eggert@cs.ucla.edu> 89832013-03-31 Jan Djärv <jan.h.d@swipnet.se>
18424 8984
18425 * buffer.h: Include <time.h>, for time_t. 8985 * nsterm.m (ns_mouse_position): Use NS_FRAME_P instead of checking
18426 Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra. 8986 f->output_data.ns.
18427 8987
18428 Fix minor problems found by static checking. 89882013-04-07 Paul Eggert <eggert@cs.ucla.edu>
18429 8989
18430 * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't. 8990 Fix --enable-profiling bug introduced by 2013-02-25 change (Bug#13783).
8991 This bug was introduced by my 2013-02-25 change that simplified
8992 data_start configuration. Without this change, on GNU/Linux
8993 an Emacs configured with --enable-profiling fails immediately
8994 due to a profiler signal.
8995 * Makefile.in: Compile with $(PROFILING_CFLAGS), but do not link
8996 with these flags. On platforms where special flags are needed
8997 when linking temacs, the flags are now in LD_SWITCH_SYSTEM_TEMACS.
8998 (ALL_CFLAGS): Remove $(PROFILING_CFLAGS).
8999 (.c.o, .m.o): Compile with $(PROFILING_CFLAGS).
18431 9000
18432 Make identifiers static if they are not used in other modules. 90012013-04-07 Dmitry Antipov <dmantipov@yandex.ru>
18433 * data.c (Qcompiled_function, Qframe, Qvector):
18434 * image.c (QimageMagick, Qsvg):
18435 * minibuf.c (Qmetadata):
18436 * window.c (resize_window_check, resize_root_window): Now static.
18437 * window.h (resize_window_check, resize_root_window): Remove decls.
18438 9002
18439 * window.c (window_deletion_count, delete_deletable_window): 9003 Get rid of some platform-specific functions examining window
18440 Remove; unused. 9004 system and its capabilities. This is a partial rework of the
18441 (window_body_lines): Now static. 9005 2013-04-05 change.
18442 (Fdelete_other_windows_internal): Mark vars as initialized. 9006 * lisp.h (have_menus_p): Remove prototype. This function is
18443 Make sure 'resize_failed' is initialized. 9007 replaced with platform-independent window_system_available.
18444 (run_window_configuration_change_hook): Rename local to avoid shadowing. 9008 (check_window_system): Move to...
18445 (resize_window_apply): Remove unused local. 9009 * frame.h (decode_window_system_frame, window_system_available):
18446 * window.h (delete_deletable_window): Remove decl. 9010 ...here, add new prototypes.
18447 9011 * frame.c (window_system_available, decode_window_system_frame):
18448 * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing.
18449 (imagemagick_load_image): Fix pointer signedness problem by changing
18450 last arg from unsigned char * to char *. All uses changed.
18451 Also, fix a local for similar reasons.
18452 Remove unused locals. Remove locals to avoid shadowing.
18453 (fn_rsvg_handle_free): Remove; unused.
18454 (svg_load, svg_load_image): Fix pointer signedness problem.
18455 (imagemagick_load_image): Don't use garbage pointer image_wand.
18456
18457 * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals.
18458
184592011-06-10 Chong Yidong <cyd@stupidchicken.com>
18460
18461 * image.c (gif_load): Fix omitted cast error introduced by
18462 2011-06-06 change.
18463
184642011-06-10 Martin Rudalics <rudalics@gmx.at>
18465
18466 * window.h (resize_proportionally, orig_total_lines)
18467 (orig_top_line): Remove from window structure.
18468 (set_window_height, set_window_width, change_window_heights)
18469 (Fdelete_window): Remove prototypes.
18470 (resize_frame_windows): Remove duplicate declaration.
18471
184722011-06-10 Eli Zaretskii <eliz@gnu.org>
18473
18474 * window.h (resize_frame_windows, resize_window_check)
18475 (delete_deletable_window, resize_root_window)
18476 (resize_frame_windows): Declare prototypes.
18477
18478 * window.c (resize_window_apply): Make definition be "static" to
18479 match the prototype.
18480
184812011-06-10 Martin Rudalics <rudalics@gmx.at>
18482
18483 * window.c: Remove declarations of Qwindow_size_fixed,
18484 window_min_size_1, window_min_size_2, window_min_size,
18485 size_window, window_fixed_size_p, enlarge_window, delete_window.
18486 Remove static from declaration of Qdelete_window, it's
18487 temporarily needed by Fbury_buffer.
18488 (replace_window): Don't assign orig_top_line and
18489 orig_total_lines.
18490 (Fdelete_window, delete_window): Remove. Window deletion is
18491 handled by window.el.
18492 (window_loop): Remove DELETE_OTHER_WINDOWS case.
18493 Replace Fdelete_window calls with calls to Qdelete_window.
18494 (Fdelete_other_windows): Remove. Deleting other windows is
18495 handled by window.el.
18496 (window_fixed_size_p): Remove. Fixed-sizeness of windows is
18497 handled in window.el.
18498 (window_min_size_2, window_min_size_1, window_min_size): Remove.
18499 Window minimum sizes are handled in window.el.
18500 (shrink_windows, size_window, set_window_height)
18501 (set_window_width, change_window_heights, window_height)
18502 (window_width, CURBEG, CURSIZE, enlarge_window)
18503 (adjust_window_trailing_edge, Fadjust_window_trailing_edge)
18504 (Fenlarge_window, Fshrink_window): Remove. Window resizing is
18505 handled in window.el.
18506 (make_dummy_parent): Rename to make_parent_window and give it a
18507 second argument horflag.
18508 (make_window): Don't set resize_proportionally any more.
18509 (Fsplit_window): Remove. Windows are split in window.el.
18510 (save_restore_action, save_restore_orig_size)
18511 (shrink_window_lowest_first, save_restore_orig_size): Remove.
18512 Resize mini windows in window.el.
18513 (grow_mini_window, shrink_mini_window): Implement by calling
18514 Qresize_root_window_vertically, resize_window_check and
18515 resize_window_apply.
18516 (saved_window, Fset_window_configuration, save_window_save):
18517 Do not handle orig_top_line, orig_total_lines, and
18518 resize_proportionally.
18519 (window_min_height, window_min_width): Move to window.el.
18520 (keys_of_window): Move bindings for delete-other-windows,
18521 split-window, delete-window and enlarge-window to window.el.
18522
18523 * buffer.c: Temporarily extern Qdelete_window.
18524 (Fbury_buffer): Temporarily call Qdelete_window instead of
18525 Fdelete_window (Fbury_buffer will move to window.el soon).
18526
18527 * frame.c (set_menu_bar_lines_1): Remove code handling
18528 orig_top_line and orig_total_lines.
18529
18530 * dispnew.c (adjust_frame_glyphs_initially): Don't use
18531 set_window_height but set heights directly.
18532 (change_frame_size_1): Use resize_frame_windows.
18533
18534 * xdisp.c (init_xdisp): Don't use set_window_height but set
18535 heights directly.
18536
18537 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
18538 Use resize_frame_windows instead of change_window_heights and run
18539 run_window_configuration_change_hook.
18540
18541 * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows
18542 instead of change_window_heights and run
18543 run_window_configuration_change_hook.
18544
185452011-06-09 Martin Rudalics <rudalics@gmx.at>
18546
18547 * window.c (replace_window): Rename second argument REPLACEMENT to
18548 NEW. New third argument SETFLAG. Rewrite.
18549 (delete_window, make_dummy_parent): Call replace_window with
18550 third argument 1.
18551 (window_list_1): Move down in code.
18552 (run_window_configuration_change_hook): Move set_buffer part
18553 before select_frame_norecord part in order to unwind correctly.
18554 Rename count1 to count.
18555 (recombine_windows, delete_deletable_window, resize_root_window)
18556 (Fdelete_other_windows_internal)
18557 (Frun_window_configuration_change_hook, make_parent_window)
18558 (resize_window_check, resize_window_apply, Fresize_window_apply)
18559 (resize_frame_windows, Fsplit_window_internal)
18560 (Fdelete_window_internal, Fresize_mini_window_internal):
18561 New functions. 9012 New functions.
18562 (syms_of_window): New variables Vwindow_splits and Vwindow_nest. 9013 (check_window_system): Platform-independent now.
18563 9014 * xterm.h (x_in_use): Remove declaration.
185642011-06-08 Martin Rudalics <rudalics@gmx.at> 9015 (check_x_frame):
9016 * w32term.h (check_x_frame):
9017 * nsterm.h (check_x_frame): Remove prototypes. This function
9018 is replaced with platform-independent decode_window_system_frame.
9019 * msdos.c (have_menus_p): Remove.
9020 * nsfns.m (check_window_system, have_menus_p, check_ns_frame):
9021 Remove platform-specific functions. Use check_window_system,
9022 decode_window_system_frame and check_ns_display_info where
9023 appropriate. Minor style and comment tweaks.
9024 * w32fns.c (w32_in_use, check_window_system, have_menus_p)
9025 (check_x_frame): Likewise.
9026 * xfns.c (x_in_use, check_window_system, have_menus_p, check_x_frame):
9027 Likewise.
9028 * fileio.c, fns.c, font.c, fontset.c, image.c, menu.c, nsmenu.m:
9029 * nsselect.m, nsterm.m, w32font.c, w32menu.c, xfaces.c, xgselect.c:
9030 * xmenu.c, xselect.c: All related users changed.
18565 9031
18566 * window.h (window): Add some new members to window structure - 90322013-04-03 Kenichi Handa <handa@gnu.org>
18567 normal_lines, normal_cols, new_total, new_normal, clone_number,
18568 splits, nest, prev_buffers, next_buffers.
18569 (WINDOW_TOTAL_SIZE): Move here from window.c.
18570 (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here.
18571 9033
18572 * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p): 9034 The following changes is to optimize the code for reading UTF-8
18573 Remove. 9035 files.
18574 (make_dummy_parent): Set new members of windows structure.
18575 (make_window): Move down in code. Handle new members of window
18576 structure.
18577 (Fwindow_clone_number, Fwindow_splits, Fset_window_splits)
18578 (Fwindow_nest, Fset_window_nest, Fwindow_new_total)
18579 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers)
18580 (Fset_window_prev_buffers, Fwindow_next_buffers)
18581 (Fset_window_next_buffers, Fset_window_clone_number):
18582 New functions.
18583 (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start)
18584 (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p):
18585 Doc-string fixes.
18586 (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter):
18587 Argument WINDOW can be now internal window too.
18588 (Fwindow_use_time): Move up in code.
18589 (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES.
18590 Rewrite doc-string.
18591 (Fset_window_configuration, saved_window)
18592 (Fcurrent_window_configuration, save_window_save): Handle new
18593 members of window structure.
18594 (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH)
18595 (MIN_SAFE_WINDOW_HEIGHT): Move to window.h.
18596 (syms_of_window): New Lisp objects Qrecord_window_buffer,
18597 Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows,
18598 Qget_mru_window, Qresize_root_window,
18599 Qresize_root_window_vertically, Qsafe, Qabove, Qbelow,
18600 Qauto_buffer_name; staticpro them.
18601
186022011-06-07 Martin Rudalics <rudalics@gmx.at>
18603
18604 * window.c (Fwindow_total_size, Fwindow_left_column)
18605 (Fwindow_top_line, window_body_lines, Fwindow_body_size)
18606 (Fwindow_list_1): New functions.
18607 (window_box_text_cols): Replace with window_body_cols.
18608 (Fwindow_width, Fscroll_left, Fscroll_right):
18609 Use window_body_cols instead of window_box_text_cols.
18610 (delete_window, Fset_window_configuration):
18611 Call delete_all_subwindows with window as argument.
18612 (delete_all_subwindows): Take a window as argument and not a
18613 structure. Rewrite.
18614 (window_loop): Remove handling of GET_LRU_WINDOW and
18615 GET_LARGEST_WINDOW.
18616 (Fget_lru_window, Fget_largest_window): Move to window.el.
18617
18618 * window.h: Extern window_body_cols instead of
18619 window_box_text_cols. delete_all_subwindows now takes a
18620 Lisp_Object as argument.
18621 9036
18622 * indent.c (compute_motion, Fcompute_motion): 9037 * coding.c (check_ascii): Rename from detect_ascii. Return value
18623 Use window_body_cols instead of window_box_text_cols. 9038 changed. Check EOL format. Do not call adjust_coding_eol_type
18624 9039 here.
18625 * frame.c (delete_frame): Call delete_all_subwindows with root 9040 (check_utf_8): New function.
18626 window as argument. 9041 (adjust_coding_eol_type): Do nothing if already adjusted.
18627 9042 (detect_coding): Compare the return value of check_ascii with
186282011-06-07 Daniel Colascione <dan.colascione@gmail.com> 9043 coding->src_bytes. Call adjust_coding_eol_type if necessary.
18629 9044 (decode_coding_gap): Optimize for valid UTF-8.
18630 * fns.c (Fputhash): Document return value. 9045
18631 90462013-03-21 Kenichi Handa <handa@gnu.org>
186322011-06-06 Chong Yidong <cyd@stupidchicken.com> 9047
18633 9048 * coding.c (syms_of_coding): Cancel previous change.
18634 * image.c (gif_load): Implement gif89a spec "no disposal" method. 9049
18635 9050 * insdel.c (insert_from_gap): Fix previous change.
186362011-06-06 Paul Eggert <eggert@cs.ucla.edu> 9051
18637 90522013-04-05 Dmitry Antipov <dmantipov@yandex.ru>
18638 Cons<->int and similar integer overflow fixes (Bug#8794). 9053
18639 9054 Consistently use platform-specific function to detect window system.
18640 Check for overflow when converting integer to cons and back. 9055 * lisp.h (check_window_system): New prototype. This function is
18641 * charset.c (Fdefine_charset_internal, Fdecode_char): 9056 going to replace check_x, check_w32 and check_ns.
18642 Use cons_to_unsigned to catch overflow. 9057 (have_menus_p): Mention msdos.c in comment.
18643 (Fencode_char): Use INTEGER_TO_CONS. 9058 * fontset.c (check_window_system_func): Remove. Adjust all users.
18644 * composite.h (LGLYPH_CODE): Use cons_to_unsigned. 9059 * fontset.h (check_window_system_func): Remove prototype.
18645 (LGLYPH_SET_CODE): Use INTEGER_TO_CONS. 9060 * nsterm.h (check_ns):
18646 * data.c (long_to_cons, cons_to_long): Remove. 9061 * xterm.h (check_x):
18647 (cons_to_unsigned, cons_to_signed): New functions. 9062 * w32term.h (check_w32): Likewise.
18648 These signal an error for invalid or out-of-range values. 9063 * menu.c (Fx_popup_menu): Use check_window_system.
18649 * dired.c (Ffile_attributes): Use INTEGER_TO_CONS. 9064 * msdos.c (check_window_system): Define for MS-DOS.
18650 * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER. 9065 * nsfns.m (check_window_system): Define for NS. Adjust all users.
18651 * font.c (Ffont_variation_glyphs): 9066 * w32fns.c (check_window_system): Likewise for MS-Windows.
18652 * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS. 9067 * xfns.c (check_window_system): Likewise for X.
18653 * lisp.h: Include <intprops.h>. 9068 * font.c, frame.c, nsmenu.m, nsselect.m, nsterm.m, w32menu.c:
18654 (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros. 9069 * xfaces.c, xmenu.c: Use check_window_system where appropriate.
18655 (cons_to_signed, cons_to_unsigned): New decls. 9070
18656 (long_to_cons, cons_to_long): Remove decls. 90712013-04-02 Paul Eggert <eggert@cs.ucla.edu>
18657 * undo.c (record_first_change): Use INTEGER_TO_CONS. 9072
18658 (Fprimitive_undo): Use CONS_TO_INTEGER. 9073 Prefer < to > in range checks such as 0 <= i && i < N.
18659 * xfns.c (Fx_window_property): Likewise. 9074 This makes it easier to visualize quantities on a number line.
18660 * xselect.c: Include <limits.h>. 9075 This patch doesn't apply to all such range checks,
18661 (x_own_selection, selection_data_to_lisp_data): 9076 only to the range checks affected by the 2013-03-24 change.
18662 Use INTEGER_TO_CONS. 9077 This patch reverts most of the 2013-03-24 change.
18663 (x_handle_selection_request, x_handle_selection_clear) 9078 * alloc.c (xpalloc, Fgarbage_collect):
18664 (x_get_foreign_selection, Fx_disown_selection_internal) 9079 * ccl.c (ccl_driver, resolve_symbol_ccl_program):
18665 (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER.
18666 (lisp_data_to_selection_data): Use cons_to_unsigned.
18667 (x_fill_property_data): Use cons_to_signed.
18668 Report values out of range.
18669
18670 Check for buffer and string overflow more precisely.
18671 * buffer.h (BUF_BYTES_MAX): New macro.
18672 * lisp.h (STRING_BYTES_MAX): New macro.
18673 * alloc.c (Fmake_string):
18674 * character.c (string_escape_byte8): 9080 * character.c (string_escape_byte8):
18675 * coding.c (coding_alloc_by_realloc): 9081 * charset.c (read_hex):
9082 * data.c (cons_to_unsigned):
9083 * dispnew.c (update_frame_1):
9084 * doc.c (Fsubstitute_command_keys):
18676 * doprnt.c (doprnt): 9085 * doprnt.c (doprnt):
18677 * editfns.c (Fformat): 9086 * editfns.c (hi_time, decode_time_components):
18678 * eval.c (verror): 9087 * fileio.c (file_offset):
18679 Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM, 9088 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
18680 since they may not be the same number. 9089 * font.c (font_intern_prop):
18681 * editfns.c (Finsert_char): 9090 * frame.c (x_set_alpha):
18682 * fileio.c (Finsert_file_contents): 9091 * gtkutil.c (get_utf8_string):
18683 Likewise for BUF_BYTES_MAX. 9092 * indent.c (check_display_width):
18684 9093 * keymap.c (Fkey_description):
18685 * image.c: Use ptrdiff_t, not int, for sizes. 9094 * lisp.h (FIXNUM_OVERFLOW_P, vcopy):
18686 (slurp_file): Switch from int to ptrdiff_t. 9095 * lread.c (read1):
18687 All uses changed. 9096 * minibuf.c (read_minibuf_noninteractive):
18688 (slurp_file): Check that file size fits in both size_t (for 9097 * process.c (wait_reading_process_output):
18689 malloc) and ptrdiff_t (for sanity and safety). 9098 * search.c (Freplace_match):
18690 9099 * window.c (get_phys_cursor_glyph):
18691 * fileio.c (Fverify_visited_file_modtime): Avoid time overflow 9100 * xdisp.c (redisplay_internal):
18692 if b->modtime has its maximal value. 9101 * xsmfns.c (smc_save_yourself_CB):
18693 9102 Prefer < to > for range checks.
18694 * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits. 9103 * dispnew.c (sit_for): Don't mishandle NaNs.
18695 9104 This fixes a bug introduced in the 2013-03-24 change.
18696 Don't assume time_t can fit into int. 9105 * editfns.c (decode_time_components): Don't hoist comparison.
18697 * buffer.h (struct buffer.modtime): Now time_t, not int. 9106 This fixes another bug introduced in the 2013-03-24 change.
18698 * fileio.c (Fvisited_file_modtime): No need for time_t cast now.
18699 * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value.
18700
18701 Minor fixes for signed vs unsigned integers.
18702 * character.h (MAYBE_UNIFY_CHAR):
18703 * charset.c (maybe_unify_char):
18704 * keyboard.c (read_char, reorder_modifiers):
18705 XINT -> XFASTINT, since the integer must be nonnegative.
18706 * ftfont.c (ftfont_spec_pattern):
18707 * keymap.c (access_keymap, silly_event_symbol_error):
18708 XUINT -> XFASTINT, since the integer must be nonnegative.
18709 (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT,
18710 since it makes no difference and we prefer signed.
18711 * keyboard.c (record_char): Use XUINT when all the neighbors do.
18712 (access_keymap): NATNUMP -> INTEGERP, since the integer must be
18713 nonnegative.
18714
187152011-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
18716
18717 * window.h (Fwindow_frame): Declare.
18718
187192011-06-06 Paul Eggert <eggert@cs.ucla.edu>
18720
18721 * alloc.c: Simplify handling of large-request failures (Bug#8800).
18722 (SPARE_MEMORY): Always define.
18723 (LARGE_REQUEST): Remove.
18724 (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST.
18725
187262011-06-06 Martin Rudalics <rudalics@gmx.at>
18727
18728 * lisp.h: Move EXFUNS for Fframe_root_window,
18729 Fframe_first_window and Fset_frame_selected_window to window.h.
18730
18731 * window.h: Move EXFUNS for Fframe_root_window,
18732 Fframe_first_window and Fset_frame_selected_window here from
18733 lisp.h.
18734
18735 * frame.c (Fwindow_frame, Fframe_first_window)
18736 (Fframe_root_window, Fframe_selected_window)
18737 (Fset_frame_selected_window): Move to window.c.
18738 (Factive_minibuffer_window): Move to minibuf.c.
18739 (Fother_visible_frames_p): New function.
18740
18741 * minibuf.c (Factive_minibuffer_window): Move here from frame.c.
18742
18743 * window.c (decode_window, decode_any_window): Move up in code.
18744 (Fwindowp, Fwindow_live_p): Rewrite doc-strings.
18745 (inhibit_frame_unsplittable): Remove unused variable.
18746 (Fwindow_buffer): Move up and rewrite doc-string.
18747 (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next)
18748 (Fwindow_prev): New functions.
18749 (Fwindow_frame): Move here from frame.c. Accept any window as
18750 argument.
18751 (Fframe_root_window, Fframe_first_window)
18752 (Fframe_selected_window): Move here from frame.c. Accept frame
18753 or arbitrary window as argument. Update doc-strings.
18754 (Fminibuffer_window): Move up in code.
18755 (Fwindow_minibuffer_p): Move up in code and simplify.
18756 (Fset_frame_selected_window): Move here from frame.c.
18757 Marginal rewrite.
18758 (Fselected_window, select_window, Fselect_window): Move up in
18759 code. Minor doc-string fixes.
18760
187612011-06-06 Paul Eggert <eggert@cs.ucla.edu>
18762
18763 * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800).
18764 Do not assume that spare memory exists; that assumption is valid
18765 only if SYSTEM_MALLOC.
18766 (LARGE_REQUEST): New macro, so that the issue of large requests
18767 is separated from the issue of spare memory.
18768
187692011-06-05 Andreas Schwab <schwab@linux-m68k.org>
18770
18771 * editfns.c (Fformat): Correctly handle zero flag with hexadecimal
18772 format. (Bug#8806)
18773
18774 * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning.
18775
18776 * xfns.c (x_set_scroll_bar_default_width): Move declarations
18777 before statements.
18778
187792011-06-05 Jan Djärv <jan.h.d@swipnet.se>
18780
18781 * gtkutil.c (xg_get_default_scrollbar_width): New function.
18782
18783 * gtkutil.h: Declare xg_get_default_scrollbar_width.
18784
18785 * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get
18786 min width by calling x_set_scroll_bar_default_width (Bug#8505).
18787
187882011-06-05 Juanma Barranquero <lekktu@gmail.com>
18789
18790 * xdisp.c (single_display_spec_intangible_p): Remove declaration.
18791
187922011-06-04 Chong Yidong <cyd@stupidchicken.com>
18793
18794 * xselect.c (x_clipboard_manager_save): Remove redundant arg.
18795 (x_clipboard_manager_save): Add return value.
18796 (x_clipboard_manager_error_1, x_clipboard_manager_error_2):
18797 New error handlers.
18798 (x_clipboard_manager_save_frame, x_clipboard_manager_save_all):
18799 Obey Vx_select_enable_clipboard_manager. Catch errors in
18800 x_clipboard_manager_save (Bug#8779).
18801 (Vx_select_enable_clipboard_manager): New variable.
18802 (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790).
18803
188042011-06-04 Dan Nicolaescu <dann@ics.uci.edu>
18805
18806 * emacs.c (main): Warn when starting a GTK emacs in daemon mode.
18807
188082011-06-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
18809
18810 * fringe.c (update_window_fringes): Don't update overlay arrow bitmap
18811 in the current matrix if keep_current_p is non-zero.
18812
188132011-06-04 Eli Zaretskii <eliz@gnu.org>
18814
18815 * bidi.c (bidi_level_of_next_char): Fix last change.
18816
188172011-06-03 Eli Zaretskii <eliz@gnu.org>
18818
18819 Support bidi reordering of text covered by display properties.
18820
18821 * bidi.c (bidi_copy_it): Use offsetof instead of emulating it.
18822 (bidi_fetch_char, bidi_fetch_char_advance): New functions.
18823 (bidi_cache_search, bidi_cache_iterator_state)
18824 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
18825 (bidi_level_of_next_char, bidi_move_to_visually_next):
18826 Support character positions inside a run of characters covered by a
18827 display string.
18828 (bidi_paragraph_init, bidi_resolve_explicit_1)
18829 (bidi_level_of_next_char): Call bidi_fetch_char and
18830 bidi_fetch_char_advance instead of FETCH_CHAR and
18831 FETCH_CHAR_ADVANCE.
18832 (bidi_init_it): Initialize new members.
18833 (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro
18834 definitions.
18835 (bidi_explicit_dir_char): Lookup character type in bidi_type_table,
18836 instead of using explicit *_CHAR codes.
18837 (bidi_resolve_explicit, bidi_resolve_weak):
18838 Use FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of
18839 bidirectional text is supported only in multibyte buffers.
18840 (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
18841 it to initialize the frame_window_p member of struct bidi_it.
18842 (bidi_cache_iterator_state, bidi_resolve_explicit_1)
18843 (bidi_resolve_explicit, bidi_resolve_weak)
18844 (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if
18845 bidi_it->nchars is non-positive.
18846 (bidi_level_of_next_char): Don't try to lookup the cache for the
18847 next/previous character if nothing is cached there yet, or if we
18848 were just reseat()'ed to a new position.
18849
18850 * xdisp.c (set_cursor_from_row): Set start and stop points
18851 according to the row's direction when priming the loop that looks
18852 for the glyph on which to display cursor.
18853 (single_display_spec_intangible_p): Function deleted.
18854 (display_prop_intangible_p): Reimplement to call
18855 handle_display_spec instead of single_display_spec_intangible_p.
18856 Accept 3 additional arguments needed by handle_display_spec.
18857 This fixes incorrect cursor motion across display property with complex
18858 values: lists, `(when COND...)' forms, etc.
18859 (single_display_spec_string_p): Support property values that are
18860 lists with the argument STRING its top-level element.
18861 (display_prop_string_p): Fix the condition for processing a
18862 property that is a list to be consistent with handle_display_spec.
18863 (handle_display_spec): New function, refactored from the
18864 last portion of handle_display_prop.
18865 (compute_display_string_pos): Accept additional argument
18866 FRAME_WINDOW_P. Call handle_display_spec to determine whether the
18867 value of a `display' property is a "replacing spec".
18868 (handle_single_display_spec): Accept 2 additional arguments BUFPOS
18869 and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from
18870 the display property, but just return a value indicating whether
18871 the display property will replace the characters it covers.
18872 (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
18873 frame_window_p members of struct bidi_it.
18874 (compute_display_string_pos, compute_display_string_end):
18875 New functions.
18876 (push_it): Accept second argument POSITION, where pop_it should
18877 jump to continue iteration.
18878 (reseat_1): Initialize bidi_it.disp_pos.
18879
18880 * keyboard.c (adjust_point_for_property): Adjust the call to
18881 display_prop_intangible_p to its new signature.
18882
18883 * dispextern.h (struct bidi_it): New member frame_window_p.
18884 (bidi_init_it): Update prototypes.
18885 (display_prop_intangible_p): Update prototype.
18886 (compute_display_string_pos, compute_display_string_end):
18887 Declare prototypes.
18888 (struct bidi_it): New members nchars and disp_pos. ch_len is now
18889 EMACS_INT.
18890
188912011-06-02 Paul Eggert <eggert@cs.ucla.edu>
18892
18893 Malloc failure behavior now depends on size of allocation.
18894 * alloc.c (buffer_memory_full, memory_full): New arg NBYTES.
18895 * lisp.h: Change signatures accordingly.
18896 * alloc.c, buffer.c, editfns.c, menu.c, minibuf.c, xterm.c:
18897 All callers changed. (Bug#8762)
18898
18899 * gnutls.c: Use Emacs's memory allocators.
18900 Without this change, the gnutls library would invoke malloc etc.
18901 directly, which causes problems on non-SYNC_INPUT hosts, and which
18902 runs afoul of improving memory_full behavior. (Bug#8761)
18903 (fn_gnutls_global_set_mem_functions): New macro or function pointer.
18904 (emacs_gnutls_global_init): Use it to specify xmalloc, xrealloc,
18905 xfree instead of the default malloc, realloc, free.
18906 (Fgnutls_boot): No need to check for memory allocation failure,
18907 since xmalloc does that for us.
18908
18909 Remove arbitrary limit of 2**31 entries in hash tables. (Bug#8771)
18910 * category.c (hash_get_category_set):
18911 * ccl.c (ccl_driver):
18912 * charset.c (Fdefine_charset_internal):
18913 * charset.h (struct charset.hash_index):
18914 * composite.c (get_composition_id, gstring_lookup_cache)
18915 (composition_gstring_put_cache):
18916 * composite.h (struct composition.hash_index):
18917 * dispextern.h (struct image.hash):
18918 * fns.c (next_almost_prime, larger_vector, cmpfn_eql)
18919 (cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
18920 (hashfn_equal, hashfn_user_defined, make_hash_table)
18921 (maybe_resize_hash_table, hash_lookup, hash_put)
18922 (hash_remove_from_table, hash_clear, sweep_weak_table, SXHASH_COMBINE)
18923 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector)
18924 (Fsxhash, Fgethash, Fputhash, Fmaphash):
18925 * image.c (make_image, search_image_cache, lookup_image)
18926 (xpm_put_color_table_h):
18927 * lisp.h (struct Lisp_Hash_Table):
18928 * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
18929 * print.c (print): Use 'EMACS_UINT' and 'EMACS_INT'
18930 for hashes and hash indexes, instead of 'unsigned' and 'int'.
18931 * alloc.c (allocate_vectorlike):
18932 Check for overflow in vector size calculations.
18933 * ccl.c (ccl_driver):
18934 Check for overflow when converting EMACS_INT to int.
18935 * fns.c, image.c: Remove unnecessary static decls that would otherwise
18936 need to be updated by these changes.
18937 * fns.c (make_hash_table, maybe_resize_hash_table):
18938 Check for integer overflow with large hash tables.
18939 (make_hash_table, maybe_resize_hash_table, Fmake_hash_table):
18940 Prefer the faster XFLOAT_DATA to XFLOATINT where either will do.
18941 (SXHASH_REDUCE): New macro.
18942 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector):
18943 Use it instead of discarding useful hash info with large hash values.
18944 (sxhash_float): New function.
18945 (sxhash): Use it. No more need for "& INTMASK" due to above changes.
18946 * lisp.h (FIXNUM_BITS): New macro, useful for SXHASH_REDUCE etc.
18947 (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK):
18948 Rewrite to use FIXNUM_BITS, as this simplifies things.
18949 (next_almost_prime, larger_vector, sxhash, hash_lookup, hash_put):
18950 Adjust signatures to match updated version of code.
18951 (consing_since_gc): Now EMACS_INT, since a single hash table can
18952 use more than INT_MAX bytes.
18953
189542011-06-01 Dan Nicolaescu <dann@ics.uci.edu>
18955
18956 Make it possible to build with GCC-4.6+ -O2 -flto.
18957
18958 * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE.
18959
189602011-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
18961
18962 * minibuf.c (get_minibuffer, read_minibuf_unwind):
18963 Call minibuffer-inactive-mode.
18964
189652011-05-31 Juanma Barranquero <lekktu@gmail.com>
18966
18967 * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)):
18968 Update dependencies.
18969
189702011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
18971
18972 * data.c (init_data): Remove code for UTS, this system is not
18973 supported anymore.
18974
189752011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
18976
18977 Don't force ./temacs to start in terminal mode.
18978
18979 * frame.c (make_initial_frame): Initialize faces in all cases, not
18980 only when CANNOT_DUMP is defined.
18981 * dispnew.c (init_display): Remove CANNOT_DUMP condition.
18982
189832011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
18984
18985 * dispnew.c (add_window_display_history): Use const for the string
18986 pointer. Remove declaration, not needed.
18987
189882011-05-31 Paul Eggert <eggert@cs.ucla.edu>
18989
18990 Use 'inline', not 'INLINE'.
18991 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00914.html>
18992 * alloc.c, fontset.c (INLINE): Remove.
18993 * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
18994 * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
18995 * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
18996 * gmalloc.c (register_heapinfo): Use inline unconditionally.
18997 * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
18998
189992011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
19000
19001 Make it possible to run ./temacs.
19002
19003 * callproc.c (set_initial_environment): Remove CANNOT_DUMP code,
19004 syms_of_callproc does the same thing. Remove test for
19005 "initialized", do it in the caller.
19006 * emacs.c (main): Avoid calling set_initial_environment when dumping.
19007
190082011-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
19009
19010 * minibuf.c (Finternal_complete_buffer): Return `category' metadata.
19011 (read_minibuf): Use get_minibuffer.
19012 (syms_of_minibuf): Use DEFSYM.
19013 (Qmetadata): New var.
19014 * data.c (Qbuffer): Don't make it static.
19015 (syms_of_data): Use DEFSYM.
19016
190172011-05-31 Paul Eggert <eggert@cs.ucla.edu>
19018
19019 * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751)
19020 (CCL_CODE_MIN): New macro.
19021
190222011-05-30 Paul Eggert <eggert@cs.ucla.edu>
19023
19024 * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests.
19025
19026 * eval.c (Qdebug): Now static.
19027 * lisp.h (Qdebug): Remove decl. This reverts a part of the
19028 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of
19029 2011-04-14T06:48:41Z!eggert@cs.ucla.edu.
19030
190312011-05-29 Chong Yidong <cyd@stupidchicken.com>
19032
19033 * image.c: Various fixes to ImageMagick code comments.
19034 (Fimagemagick_types): Doc fix.
19035
190362011-05-29 Paul Eggert <eggert@cs.ucla.edu>
19037
19038 Minor fixes prompted by GCC 4.6.0 warnings.
19039
19040 * xselect.c (converted_selections, conversion_fail_tag): Now static.
19041
19042 * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h".
19043 (x_clipboard_manager_save_all): Move extern decl to ...
19044 * xterm.h: ... here, so that it can be checked for consistency.
19045
190462011-05-29 Chong Yidong <cyd@stupidchicken.com>
19047
19048 * xselect.c (x_clipboard_manager_save_frame)
19049 (x_clipboard_manager_save_all): New functions.
19050 (Fx_clipboard_manager_save): Lisp function deleted.
19051
19052 * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all.
19053 * frame.c (delete_frame): Call x_clipboard_manager_save_frame.
19054
19055 * xterm.h: Update prototype.
19056
190572011-05-28 William Xu <william.xwl@gmail.com>
19058
19059 * nsterm.m (ns_term_shutdown): Synchronize user defaults before
19060 exiting (Bug#8239).
19061
190622011-05-28 Jim Meyering <meyering@redhat.com>
19063
19064 Avoid a sign-extension bug in crypto_hash_function.
19065 * fns.c (to_uchar): Define.
19066 (crypto_hash_function): Use it to convert some newly-signed
19067 variables to unsigned, to avoid sign-extension bugs. For example,
19068 without this change, (md5 "truc") would evaluate to
19069 45723a2aff78ff4fff7fff1114760e62 rather than the expected
19070 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in
19071 https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html.
19072
190732011-05-27 Paul Eggert <eggert@cs.ucla.edu>
19074
19075 Integer overflow fixes.
19076
19077 * dbusbind.c: Serial number integer overflow fixes.
19078 (CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
19079 (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
19080 to hold a serial number that is too large for a fixnum.
19081 (Fdbus_method_return_internal, Fdbus_method_error_internal):
19082 Check for serial numbers out of range. Decode any serial number
19083 that was so large that it became a float. (Bug#8722)
19084
19085 * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
19086 (Fdbus_call_method, Fdbus_call_method_asynchronously):
19087 Use XFASTINT rather than XUINT when numbers are nonnegative.
19088 (xd_append_arg, Fdbus_method_return_internal):
19089 (Fdbus_method_error_internal): Likewise. Also, for unsigned
19090 arguments, check that Lisp number is nonnegative, rather than
19091 silently wrapping negative numbers around. (Bug#8722)
19092 (xd_read_message_1): Don't assume dbus_uint32_t can fit in int.
19093 (Bug#8722)
19094
19095 * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT.
19096
19097 * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'.
19098
19099 ccl: Add integer overflow checks.
19100 * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
19101 (IN_INT_RANGE): New macros.
19102 (ccl_driver): Use them to check for integer overflow when
19103 decoding a CCL program. Many of the new checks are whether XINT (x)
19104 fits in int; it doesn't always, on 64-bit hosts. The new version
19105 doesn't catch all possible integer overflows, but it's an
19106 improvement. (Bug#8719)
19107
19108 * alloc.c (make_event_array): Use XINT, not XUINT.
19109 There's no need for unsigned here.
19110
19111 * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t
19112 This follows up to the 2011-05-06 change that substituted uintptr_t
19113 for EMACS_INT. This case wasn't caught back then.
19114
19115 Rework Fformat to avoid integer overflow issues.
19116 * editfns.c: Include <float.h> unconditionally, as it's everywhere
19117 now (part of C89). Include <verify.h>.
19118 (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed.
19119 (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns.
19120 (Fformat): Avoid the prepass trying to compute sizes; it was only
19121 approximate and thus did not catch overflow reliably. Instead, walk
19122 through the format just once, formatting and computing sizes as we go,
19123 checking for integer overflow at every step, and allocating a larger
19124 buffer as needed. Keep track separately whether the format is
19125 multibyte. Keep only the most-recently calculated precision, rather
19126 than them all. Record whether each argument has been converted to
19127 string. Use EMACS_INT, not int, for byte and char and arg counts.
19128 Support field widths and precisions larger than INT_MAX. Avoid
19129 sprintf's undefined behavior with conversion specifications such as %#d
19130 and %.0c. Fix bug with strchr succeeding on '\0' when looking for
19131 flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when
19132 formatting out-of-range floating point numbers with int
19133 formats. (Bug#8668)
19134
19135 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
19136
19137 * data.c: Avoid integer truncation in expressions involving floats.
19138 * data.c: Include <intprops.h>.
19139 (arith_driver): When there's an integer overflow in an expression
19140 involving floating point, convert the integers to floating point
19141 so that the resulting value does not suffer from catastrophic
19142 integer truncation. For example, on a 64-bit host (* 4
19143 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
19144 Do not rely on undefined behavior after integer overflow.
19145
19146 merge count_size_as_multibyte, parse_str_to_multibyte
19147 * character.c, character.h (count_size_as_multibyte):
19148 Rename from parse_str_to_multibyte; all uses changed.
19149 Check for integer overflow.
19150 * insdel.c, lisp.h (count_size_as_multibyte): Remove,
19151 since it's now a duplicate of the other. This is more of
19152 a character than a buffer op, so better that it's in character.c.
19153 * fns.c, print.c: Adjust to above changes.
19154
191552011-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
19156
19157 * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup.
19158
191592011-05-27 Paul Eggert <eggert@cs.ucla.edu>
19160
19161 * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
19162 (x_handle_selection_request, frame_for_x_selection): Remove unused vars.
19163 (x_clipboard_manager_save): Now static.
19164 (Fx_clipboard_manager_save): Rename local to avoid shadowing.
19165
19166 * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings.
19167 (crypto_hash_function): Now static.
19168 Fix pointer signedness problems. Avoid unnecessary initializations.
19169
191702011-05-27 Chong Yidong <cyd@stupidchicken.com>
19171
19172 * termhooks.h (Vselection_alist): Make it terminal-local.
19173
19174 * terminal.c (create_terminal): Initialize it.
19175
19176 * xselect.c: Support for clipboard managers.
19177 (Vselection_alist): Move to termhooks.h as terminal-local var.
19178 (LOCAL_SELECTION): New macro.
19179 (x_atom_to_symbol): Handle x_display_info_for_display fail case.
19180 (symbol_to_x_atom): Remove gratuitous arg.
19181 (x_handle_selection_request, lisp_data_to_selection_data)
19182 (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
19183 (x_own_selection, x_get_local_selection, x_convert_selection):
19184 New arg, specifying work frame. Use terminal-local Vselection_alist.
19185 (some_frame_on_display): Delete unused function.
19186 (Fx_own_selection_internal, Fx_get_selection_internal)
19187 (Fx_disown_selection_internal, Fx_selection_owner_p)
19188 (Fx_selection_exists_p): New optional frame arg.
19189 (frame_for_x_selection, Fx_clipboard_manager_save): New functions.
19190 (x_handle_selection_clear): Don't treat other terminals with the
19191 same keyboard specially. Use the terminal-local Vselection_alist.
19192 (x_clear_frame_selections): Use Frun_hook_with_args.
19193
19194 * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.
19195
19196 * xterm.h: Add support for those atoms.
19197
191982011-05-26 Chong Yidong <cyd@stupidchicken.com>
19199
19200 * xselect.c: ICCCM-compliant handling of MULTIPLE targets.
19201 (converted_selections, conversion_fail_tag): New global variables.
19202 (x_selection_request_lisp_error): Free the above.
19203 (x_get_local_selection): Remove unnecessary code.
19204 (x_reply_selection_request): Args changed; handle arbitrary array
19205 of converted selections stored in converted_selections.
19206 Separate the XChangeProperty and SelectionNotify steps.
19207 (x_handle_selection_request): Rewrite to handle MULTIPLE target.
19208 (x_convert_selection): New function.
19209 (x_handle_selection_event): Simplify.
19210 (x_get_foreign_selection): Don't ignore incoming requests while
19211 waiting for an answer; this will fail when we implement
19212 SAVE_TARGETS, and seems unnecessary anyway.
19213 (selection_data_to_lisp_data): Recognize ATOM_PAIR type.
19214 (Vx_sent_selection_functions): Doc fix.
19215
192162011-05-26 Leo Liu <sdl.web@gmail.com>
19217
19218 * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699)
19219
192202011-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
19221
19222 * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.
19223
19224 * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
19225 for fringe update if it has periodic bitmap.
19226 (row_equal_p): Also compare left_fringe_offset, right_fringe_offset,
19227 and fringe_bitmap_periodic_p.
19228
19229 * fringe.c (get_fringe_bitmap_data): New function.
19230 (draw_fringe_bitmap_1, update_window_fringes): Use it.
19231 (update_window_fringes): Record periodicity of fringe bitmap in glyph
19232 row. Mark glyph row for fringe update if periodicity changed.
19233
19234 * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
19235 for fringe update unless it has periodic bitmap.
19236
192372011-05-25 Kenichi Handa <handa@m17n.org>
19238
19239 * xdisp.c (get_next_display_element): Set correct it->face_id for
19240 a static composition.
19241
192422011-05-24 Leo Liu <sdl.web@gmail.com>
19243
19244 * deps.mk (fns.o):
19245 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h.
19246
19247 * fns.c (crypto_hash_function, Fsha1): New function.
19248 (Fmd5): Use crypto_hash_function.
19249 (syms_of_fns): Add Ssha1.
19250
192512011-05-22 Paul Eggert <eggert@cs.ucla.edu>
19252
19253 * gnutls.c: Remove unused macros.
19254 (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
19255 (fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
19256 Remove macros that are defined and never used.
19257 Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
19258
192592011-05-22 Chong Yidong <cyd@stupidchicken.com>
19260
19261 * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
19262 (Fx_get_selection_internal): Minor cleanup.
19263 (Fx_own_selection_internal): Rename arguments for consistency with
19264 select.el.
19265
192662011-05-22 Paul Eggert <eggert@cs.ucla.edu>
19267
19268 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure.
19269
192702011-05-22 Chong Yidong <cyd@stupidchicken.com>
19271
19272 * xselect.c (syms_of_xselect): Include character.h; use DEFSYM.
19273
192742011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
19275
19276 * dispnew.c (scrolling_window): Don't exclude the case that the
19277 last enabled row in the desired matrix touches the bottom boundary.
19278
192792011-05-21 Glenn Morris <rgm@gnu.org>
19280
19281 * Makefile.in ($(etc)/DOC): Make second command line even shorter.
19282 (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
19283 and add some more files.
19284
192852011-05-20 Eli Zaretskii <eliz@gnu.org>
19286
19287 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
19288 report_file_error introduced by the change from 2011-05-07.
19289
192902011-05-20 Paul Eggert <eggert@cs.ucla.edu>
19291
19292 * systime.h (Time): Define only if emacs is defined.
19293 This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
19294 where the include path doesn't have X11/X.h by default. See
19295 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
19296
192972011-05-20 Kenichi Handa <handa@m17n.org>
19298
19299 * composite.c (find_automatic_composition): Fix previous change.
19300
193012011-05-20 Glenn Morris <rgm@gnu.org>
19302
19303 * lisp.mk: New file, split from Makefile.in.
19304 * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
19305 (shortlisp): Remove.
19306 ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.
19307
193082011-05-19 Glenn Morris <rgm@gnu.org>
19309
19310 * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
19311 (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
19312 (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
19313 (lisp): Set the order to that of loadup.el.
19314 (shortlisp): Make it a copy of $lisp.
19315 (SOME_MACHINE_LISP): Remove.
19316 ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
19317 Use just $shortlisp, not $SOME_MACHINE_LISP too.
19318
193192011-05-18 Kenichi Handa <handa@m17n.org>
19320
19321 * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
19322 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
19323 (find_automatic_composition): Mostly rewrite for efficiency.
19324
193252011-05-18 Juanma Barranquero <lekktu@gmail.com>
19326
19327 * makefile.w32-in: Update dependencies.
19328
193292011-05-18 Christoph Scholtes <cschol2112@googlemail.com>
19330
19331 * menu.c: Include limits.h (fixes the MS-Windows build broken by
19332 2011-06-18T18:49:19Z!cyd@stupidchicken.com).
19333
193342011-05-18 Paul Eggert <eggert@cs.ucla.edu>
19335
19336 Fix some integer overflow issues, such as string length overflow.
19337
19338 * insdel.c (count_size_as_multibyte): Check for string overflow.
19339
19340 * character.c (lisp_string_width): Check for string overflow.
19341 Use EMACS_INT, not int, for string indexes and lengths; in
19342 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
19343 the resulting string length overflows an EMACS_INT; instead,
19344 report a string overflow if no precision given. When checking for
19345 precision exhaustion, use a check that cannot possibly have
19346 integer overflow. (Bug#8675)
19347 * character.h (lisp_string_width): Adjust to new signature.
19348
19349 * alloc.c (string_overflow): New function.
19350 (Fmake_string): Use it. This doesn't change behavior, but saves
19351 a few bytes and will simplify future changes.
19352 * character.c (string_escape_byte8): Likewise.
19353 * lisp.h (string_overflow): New decl.
19354
19355 Fixups, following up to the user-interface timestamp change.
19356 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
19357 for UI timestamps, instead of unsigned long.
19358 * msdos.c (mouse_get_pos): Likewise.
19359 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
19360 * w32gui.h (Time): Define by including "systime.h" rather than by
19361 declaring it ourselves. (Bug#8664)
19362
19363 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
19364 * image.c (clear_image_cache): Likewise.
19365
19366 * term.c (term_mouse_position): Don't assume time_t wraparound.
19367
19368 Be more systematic about user-interface timestamps.
19369 Before, the code sometimes used 'Time', sometimes 'unsigned long',
19370 and sometimes 'EMACS_UINT', to represent these timestamps.
19371 This change causes it to use 'Time' uniformly, as that's what X uses.
19372 This makes the code easier to follow, and makes it easier to catch
19373 integer overflow bugs such as Bug#8664.
19374 * frame.c (Fmouse_position, Fmouse_pixel_position):
19375 Use Time, not unsigned long, for user-interface timestamps.
19376 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
19377 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
19378 * keyboard.h (last_event_timestamp): Likewise.
19379 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
19380 * menu.h (xmenu_show): Likewise.
19381 * term.c (term_mouse_position): Likewise.
19382 * termhooks.h (struct input_event.timestamp): Likewise.
19383 (struct terminal.mouse_position_hook): Likewise.
19384 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
19385 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
19386 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
19387 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
19388 what it was before.
19389 * menu.h, termhooks.h: Include "systime.h", for Time.
19390
19391 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
19392 Don't assume that the difference between two unsigned long values
19393 can fit into an integer. At this point, we know button_down_time
19394 <= event->timestamp, so the difference must be nonnegative, so
19395 there's no need to cast the result if double-click-time is
19396 nonnegative, as it should be; check that it's nonnegative, just in
19397 case. This bug is triggered when events are more than 2**31 ms
19398 apart (about 25 days). (Bug#8664)
19399
19400 * xselect.c (last_event_timestamp): Remove duplicate decl.
19401 (x_own_selection): Remove needless cast to unsigned long.
19402
19403 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
19404 that always fit in int. Use a sentinel instead of a counter, to
19405 avoid a temp and to allay GCC's concerns about possible int overflow.
19406 * frame.h (struct frame): Use int for menu_bar_items_used
19407 instead of EMACS_INT, since it always fits in int.
19408
19409 * menu.c (grow_menu_items): Check for int overflow.
19410
19411 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
19412
19413 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
19414 Before, the code was not consistent. These values cannot exceed
19415 2**31 - 1 so there's no need to make them unsigned.
19416 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
19417 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
19418 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
19419 as modifiers.
19420 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
19421
19422 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
19423 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
19424 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
19425 presumably because the widths might not match.
19426
19427 * window.c (size_window): Avoid needless test at loop start.
19428
194292011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
19430
19431 * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
19432
194332011-05-12 Drew Adams <drew.adams@oracle.com>
19434
19435 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
19436
194372011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
19438
19439 * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
19440 `width' to `bar_area_x' and `bar_area_width', respectively.
19441 (x_scroll_run): Take account of fringe background extension.
19442
19443 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
19444 Rename local vars `left' and `width' to `bar_area_x' and
19445 `bar_area_width', respectively.
19446 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
19447 background extension.
19448
194492011-05-10 Jim Meyering <meyering@redhat.com>
19450
19451 * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
19452
194532011-05-10 Juanma Barranquero <lekktu@gmail.com>
19454
19455 * image.c (Finit_image_library): Return t for built-in image types,
19456 like pbm and xbm. (Bug#8640)
19457
194582011-05-09 Andreas Schwab <schwab@linux-m68k.org>
19459
19460 * w32menu.c (set_frame_menubar): Fix submenu allocation.
19461
194622011-05-07 Eli Zaretskii <eliz@gnu.org>
19463
19464 * w32console.c (Fset_screen_color): Doc fix.
19465 (Fget_screen_color): New function.
19466 (syms_of_ntterm): Defsubr it.
19467
19468 * callproc.c (call_process_cleanup) [MSDOS]: Don't close and
19469 unlink the temporary file if Fcall_process didn't create it in the
19470 first place.
19471 (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the
19472 child process will be redirected to a file specified with `:file'.
19473 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
19474 cue to call_process_cleanup not to close that handle.
19475
194762011-05-07 Ben Key <bkey76@gmail.com>
19477
19478 * makefile.w32-in: The bootstrap-temacs rule now makes use of
19479 one of two shell specific rules, either bootstrap-temacs-CMD or
19480 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
19481 to the previous implementation of the bootstrap-temacs rule.
19482 The bootstrap-temacs-CMD rule is similar to the previous
19483 implementation of the bootstrap-temacs rule except that it
19484 makes use of the ESC_CFLAGS variable instead of the CFLAGS
19485 variable.
19486
19487 These changes, along with some changes to nt/configure.bat,
19488 nt/gmake.defs, and nt/nmake.defs, are required to extend my
19489 earlier fix to add support for --cflags and --ldflags options
19490 that include quotes so that it works whether make uses cmd or
19491 sh as the shell.
19492
194932011-05-06 Michael Albinus <michael.albinus@gmx.de>
19494
19495 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
19496 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
19497 is a constant.
19498 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
19499 a string. Handle both cases.
19500 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
19501 (Fdbus_register_method): Use Qinvalid_function.
19502
195032011-05-06 Juanma Barranquero <lekktu@gmail.com>
19504
19505 * makefile.w32-in: Update dependencies.
19506 (LISP_H): Add inttypes.h and stdin.h.
19507 (PROCESS_H): Add unistd.h.
19508
195092011-05-06 Eli Zaretskii <eliz@gnu.org>
19510
19511 * lread.c: Include limits.h (fixes the MS-Windows build broken by
19512 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
19513
195142011-05-06 Paul Eggert <eggert@cs.ucla.edu>
19515
19516 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
19517
19518 * term.c (vfatal): Remove stray call to va_end.
19519 It's not needed and the C Standard doesn't allow it here anyway.
19520
19521 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
19522 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
19523
19524 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
19525 bytes.
19526
19527 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
19528
19529 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
19530
19531 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
19532
19533 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
19534
19535 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
19536
19537 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
19538 * charset.c (Fdefine_charset_internal): Don't initialize
19539 charset.code_space[15]. The value was garbage, on hosts with
19540 32-bit int (Bug#8600).
19541
19542 * lread.c (read_integer): Be more consistent with string-to-number.
19543 Use string_to_number to do the actual conversion; this avoids
19544 rounding errors and fixes some other screwups. Without this fix,
19545 for example, #x1fffffffffffffff was misread as -2305843009213693952.
19546 (digit_to_number): Move earlier, for benefit of read_integer.
19547 Return -1 if the digit is out of range for the base, -2 if it is
19548 not a digit in any supported base. (Bug#8602)
19549 9107
19550 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64". 91082013-03-31 Dmitry Antipov <dmantipov@yandex.ru>
19551 9109
19552 * dispnew.c (scrolling_window): Return 1 if we scrolled, 9110 * frame.h (struct frame): Drop scroll_bottom_vpos
19553 to match comment at start of function. This also removes a 9111 member becaue all real users are dead long ago.
19554 GCC warning about overflow in a 32+64-bit port. 9112 (FRAME_SCROLL_BOTTOM_VPOS): Remove.
9113 * xdisp.c (redisplay_internal): Adjust user.
19555 9114
19556 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify. 91152013-03-30 Darren Hoo <darren.hoo@gmail.com> (tiny change)
19557 9116
19558 * dbusbind.c: Do not use XPNTR on a value that may be an integer. 9117 * nsmenu.m (showAtX:Y:for:): setLevel to
19559 Reported by Stefan Monnier in 9118 NSPopUpMenuWindowLevel (Bug#13998).
19560 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
19561 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
19562 Use SYMBOLP-guarded XSYMBOL, not XPNTR.
19563 9119
19564 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t. 91202013-03-30 Jan Djärv <jan.h.d@swipnet.se>
19565 (EMACS_UINTPTR): Likewise, with uintptr_t.
19566 9121
19567 * lisp.h: Prefer 64-bit EMACS_INT if available. 9122 * nsterm.h (ns_get_pending_menu_title, ns_check_menu_open)
19568 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit 9123 (ns_check_pending_open_menu): Declare.
19569 on 32-bit hosts that have 64-bit int, so that they can access
19570 large files.
19571 However, temporarily disable this change unless the temporary
19572 symbol WIDE_EMACS_INT is defined.
19573 9124
19574 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now. 9125 * nsmenu.m (ns_update_menubar): Correct NSTRACE.
9126 (x_activate_menubar): Update the menu with title that matches
9127 ns_get_pending_menu_title, and call
9128 ns_check_pending_openmenu (Bug#12698).
9129 (menuWillOpen:): New method.
9130 (menuNeedsUpdate:): Add check for ! COCOA || OSX < 10.5 (Bug#12698).
19575 9131
19576 Prefer intptr_t/uintptr_t for integers the same widths as pointers. 9132 * nsterm.m (menu_will_open_state, menu_mouse_point)
19577 This removes an assumption that EMACS_INT and long are the same 9133 (menu_pending_title): New varaibles.
19578 width as pointers. The assumption is true for Emacs porting targets 9134 (ns_get_pending_menu_title, ns_check_menu_open)
19579 now, but we want to make other targets possible. 9135 (ns_check_pending_open_menu): New functions.
19580 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
19581 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
19582 In the rest of the code, change types of integers that hold casted
19583 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
19584 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
19585 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
19586 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
19587 No need to cast type when ORing.
19588 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
19589 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
19590 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
19591 assume EMACS_INT is the same width as char *.
19592 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
19593 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
19594 Remove no-longer-needed casts.
19595 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
19596 (xg_tool_bar_help_callback, xg_make_tool_item):
19597 Use EMACS_INTPTR to hold an integer
19598 that will be cast to void *; this can avoid a GCC warning
19599 if EMACS_INT is not the same width as void *.
19600 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
19601 * xdisp.c (display_echo_area_1, resize_mini_window_1):
19602 (current_message_1, set_message_1):
19603 Use a local to convert to proper width without a cast.
19604 * xmenu.c (dialog_selection_callback): Likewise.
19605 9136
19606 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long. 91372013-03-29 Dmitry Antipov <dmantipov@yandex.ru>
19607 Also, don't assume VALBITS / RAND_BITS is less than 5,
19608 and don't rely on undefined behavior when shifting a 1 left into
19609 the sign bit.
19610 * lisp.h (get_random): Change signature to match.
19611 9138
19612 * lread.c (hash_string): Use size_t, not int, for hash computation. 9139 * indent.c (current_column_bol_cache): Remove leftover which is not
19613 Normally we prefer signed values; but hashing is special, because 9140 used in Fmove_to_column any more.
19614 it's better to use unsigned division on hash table sizes so that 9141 (current_column, scan_for_column): Adjust users.
19615 the remainder is nonnegative. Also, size_t is the natural width 9142 * keyboard.c (last_point_position_buffer, last_point_position_window):
19616 for hashing into memory. The previous code used 'int', which doesn't 9143 Remove leftovers which are not used for recording undo any more.
19617 retain enough info to hash well into very large tables. 9144 (command_loop_1, syms_of_keyboard): Adjust users.
19618 (oblookup, oblookup_last_bucket_number, Funintern): Likewise. 9145 * xdisp.c (last_max_ascent): Remove leftover which is not used in
9146 redisplay_window any more.
9147 (move_it_to): Adjust user.
19619 9148
19620 * dbusbind.c: Don't possibly lose pointer info when converting. 91492013-03-29 Juanma Barranquero <lekktu@gmail.com>
19621 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
19622 Use XPNTR rather than XHASH, so that the high-order bits of
19623 the pointer aren't lost when converting through void *.
19624
19625 * eval.c (Fautoload): Don't double-shift a pointer.
19626 9150
19627 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long. 9151 * makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/filelock.$(O)):
19628
196292011-05-06 Juanma Barranquero <lekktu@gmail.com>
19630
19631 * gnutls.c (DEF_GNUTLS_FN):
19632 * image.c (DEF_IMGLIB_FN): Make function pointers static.
19633
196342011-05-05 Andreas Schwab <schwab@linux-m68k.org>
19635
19636 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
19637 marker. (Bug#8610)
19638
196392011-05-05 Eli Zaretskii <eliz@gnu.org>
19640
19641 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
19642 New version that can reserve upto 2GB of heap space.
19643
196442011-05-05 Chong Yidong <cyd@stupidchicken.com>
19645
19646 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
19647
196482011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
19649
19650 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
19651 `gnutls_certificate_set_x509_key_file'.
19652
196532011-05-05 Juanma Barranquero <lekktu@gmail.com>
19654
19655 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
19656 Update dependencies. 9152 Update dependencies.
19657 9153
196582011-05-04 Juanma Barranquero <lekktu@gmail.com> 91542013-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
19659 9155
19660 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read): 9156 * lisp.h (save_type, XSAVE_POINTER, set_save_pointer, XSAVE_INTEGER)
19661 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read): 9157 (set_save_integer, XSAVE_OBJECT, XSAVE_VALUE): Move to avoid
19662 Remove unused parameter `fildes'. 9158 forward references.
19663 * process.c (read_process_output, send_process): Don't pass it. 9159
19664 91602013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
196652011-05-04 Juanma Barranquero <lekktu@gmail.com> 9161
19666 9162 * window.h (struct window): Replace hchild, vchild and buffer slots
19667 Fix previous change: the library cache is defined in w32.c. 9163 with a single slot 'contents'. This is possible because each valid
19668 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop. 9164 window may have either the child window (in vertical or horizontal
19669 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI". 9165 combination) or buffer to display (for the leaf window). Using that,
19670 9166 a lot of operations to traverse and/or change window hierarchies may
196712011-05-04 Juanma Barranquero <lekktu@gmail.com> 9167 be simplified. New member horizontal is used to distinguish between
19672 9168 horizontal and vertical combinations of internal windows.
19673 Implement dynamic loading of GnuTLS on Windows. 9169 (WINDOW_LEAF_P, WINDOW_HORIZONTAL_COMBINATION_P)
19674 9170 (WINDOW_VERTICAL_COMBINATION_P): New macros.
19675 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro. 9171 (WINDOW_VALID_P, WINDOW_LIVE_P): Adjust to match struct window changes.
19676 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern. 9172 * window.c (wset_hchild, wset_vchild): Remove. Adjust all users.
19677 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno): 9173 Use contents slot, not buffer, where appropriate.
19678 Declare. 9174 (wset_combination): New function.
19679 9175 (wset_buffer): Add eassert.
19680 * gnutls.c (Qgnutls_dll): Define. 9176 (Fframe_first_window): Simplify the loop reaching first window.
19681 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros. 9177 (Fwindow_buffer): Use WINDOW_LEAF_P.
19682 (gnutls_*): Declare function pointers. 9178 (Fwindow_top_child): Use WINDOW_VERTICAL_COMBINATION_P.
19683 (init_gnutls_functions): New function to initialize function pointers. 9179 (Fwindow_left_child): Use WINDOW_HORIZONTAL_COMBINATION_P.
19684 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit) 9180 (unshow_buffer): Convert initial debugging check to eassert.
19685 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers. 9181 (replace_window, recombine_windows, Fdelete_other_windows_internal)
19686 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno): 9182 (make_parent_window, window_resize_check, window_resize_apply)
19687 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno. 9183 (resize_frame_windows, Fsplit_window_internal, Fdelete_window_internal)
19688 (emacs_gnutls_write, emacs_gnutls_read) 9184 (Fset_window_configuration, delete_all_child_windows, save_window_save):
19689 (emacs_gnutls_handle_error, Fgnutls_error_fatalp) 9185 Adjust to match struct window changes.
19690 (Fgnutls_available_p): New function. 9186 (window_loop): Check for broken markers in CHECK_ALL_WINDOWS.
19691 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers. 9187 (mark_window_cursors_off, count_windows, get_leaf_windows)
19692 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it. 9188 (foreach_window_1): Simplify the loop.
19693 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it. 9189 * alloc.c (mark_object): Do not check for the leaf window because
19694 9190 internal windows has no glyph matrices anyway.
19695 * image.c: Include w32.h. 9191 * dispnew.c (clear_window_matrices, showing_window_margins_p)
19696 (Vimage_type_cache): Delete. 9192 (allocate_matrices_for_window_redisplay, fake_current_matrices)
19697 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it. 9193 (allocate_matrices_for_frame_redisplay, free_window_matrices)
19698 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead. 9194 (build_frame_matrix_from_window_tree, mirror_make_current)
19699 (w32_delayed_load): Move to w32.c. 9195 (frame_row_to_window, mirror_line_dance, check_window_matrix_pointers)
19700 9196 (update_window_tree, set_window_update_flags): Simplify the loop.
19701 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare. 9197 (sync_window_with_frame_matrix_rows): Enforce live window.
19702 9198 Use contents slot, not buffer, where appropriate.
19703 * w32.c (QCloaded_from, Vlibrary_cache): Define. 9199 * frame.c (set_menu_bar_lines_1): Use WINDOW_VERTICAL_COMBINATION_P
19704 (w32_delayed_load): Move from image.c. When loading a library, record 9200 and WINDOW_HORIZONTAL_COMBINATION_P.
19705 its filename in the :loaded-from property of the library id. 9201 (make_frame_visible_1): Simplify the loop.
19706 (globals_of_w32) <QCloaded_from, Vlibrary_cache>: 9202 Use contents slot, not buffer, where appropriate.
19707 Initialize and staticpro them. 9203 * xdisp.c (hscroll_window_tree, mark_window_display_accurate)
19708 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions. 9204 (redisplay_windows, redisplay_mode_lines, update_cursor_in_window_tree)
19709 9205 (expose_window_tree): Likewise.
19710 * process.c: Include lisp.h before w32.h, not after. 9206 Use contents slot, not buffer, where appropriate.
19711 (wait_reading_process_output): Call emacs_gnutls_record_check_pending 9207 * textprop.c (get_char_property_and_overlay): Add CHECK_LIVE_WINDOW
19712 instead of gnutls_record_check_pending. 9208 to avoid deleted windows. Use contents slot instead of buffer.
19713 9209 * buffer.c, dispextern.h, editfns.c, fileio.c, font.c, fringe.c:
19714 * callproc.c, emacs.c: Include lisp.h before w32.h, not after. 9210 * indent.c, insdel.c, keyboard.c, keymap.c, minibuf.c, msdos.c:
19715 9211 * nsfns.m, nsmenu.m, nsterm.m, print.c, w32fns.c, w32menu.c, xfaces.c:
197162011-05-04 Teodor Zlatanov <tzz@lifelogs.com> 9212 * xfns.c, xmenu.c: Use contents slot, not buffer, where appropriate.
19717 9213
19718 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options 92142013-03-28 Eli Zaretskii <eliz@gnu.org>
19719 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists 9215
19720 as passed in. 9216 * w32fns.c (w32_wnd_proc) [ENABLE_CHECKING]: Add code to help
19721 9217 identify the reasons for assertion violations in bug#14062 and
197222011-05-03 Jan Djärv <jan.h.d@swipnet.se> 9218 similar ones.
19723 9219 (Fx_show_tip): Fix compilation error under
19724 * xterm.c (x_set_frame_alpha): Do not set property on anything 9220 "--enable-check-lisp-object-type". (Bug#14073)
19725 else than FRAME_X_OUTER_WINDOW (Bug#8608). 9221
19726 9222 * image.c (g_error_free) [WINDOWSNT]: Add DEF_IMGLIB_FN.
197272011-05-02 Juanma Barranquero <lekktu@gmail.com> 9223 Reported by <rzl24ozi@gmail.com>.
19728 9224
19729 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596) 92252013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
19730 9226
197312011-05-02 Juanma Barranquero <lekktu@gmail.com> 9227 * xdisp.c (with_echo_area_buffer_unwind_data): Save window
19732 9228 start marker...
19733 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon) 9229 (unwind_with_echo_area_buffer): ...to restore it here.
19734 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again) 9230 This is needed to ensure that...
19735 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake) 9231 (redisplay_window): ...both window markers are valid here,
19736 (gnutls_global_initialized, Qgnutls_bootprop_priority) 9232 which is verified by eassert.
19737 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles) 9233 * editfns.c (save_excursion_save): Do not assume that
19738 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel) 9234 selected_window always displays the buffer.
19739 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags) 9235 * buffer.c (Fbuffer_swap_text): Adjust window start markers.
19740 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error) 9236 Fix comment.
19741 (Qgnutls_bootprop_callbacks_verify): Make static. 9237
19742 92382013-03-27 Stefan Monnier <monnier@iro.umontreal.ca>
197432011-05-01 Andreas Schwab <schwab@linux-m68k.org> 9239
19744 9240 * casetab.c (init_casetab_once): Don't abuse the ascii eqv table for
19745 * callproc.c: Indentation fixup. 9241 the upcase table.
19746 9242
19747 * sysdep.c (wait_for_termination_1): Make static. 92432013-03-27 rzl24ozi <rzl24ozi@gmail.com> (tiny changes)
19748 (wait_for_termination, interruptible_wait_for_termination): 9244
19749 Move after wait_for_termination_1. 9245 * image.c [WINDOWSNT]: Fix calls to DEF_IMGLIB_FN for SVG function.
19750 9246
197512011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org> 92472013-03-27 Eli Zaretskii <eliz@gnu.org>
19752 9248
19753 * sysdep.c (interruptible_wait_for_termination): New function 9249 * w32proc.c (IsValidLocale) [__GNUC__]: Don't declare prototype,
19754 which is like wait_for_termination, but allows keyboard 9250 since MinGW's w32api headers do. This avoids compiler warnings.
19755 interruptions. 9251
19756 9252 * w32.c (FSCTL_GET_REPARSE_POINT) [_MSC_VER || _W64]: Don't define
19757 * callproc.c (Fcall_process): Add (:file "file") as an option for 9253 if already defined.
19758 the STDOUT buffer. 9254
19759 (Fcall_process_region): Ditto. 92552013-03-26 Eli Zaretskii <eliz@gnu.org>
19760 9256
197612011-04-30 Eli Zaretskii <eliz@gnu.org> 9257 * w32.c (_REPARSE_DATA_BUFFER): Condition by _MSVC and _W64.
19762 9258
19763 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)' 92592013-03-26 Jan Djärv <jan.h.d@swipnet.se>
19764 rather than `XVECTOR (FOO)->size'. 9260
19765 9261 * gtkutil.c (style_changed_cb): Check if frame is live and an
19766 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of 9262 X frame (Bug#14038).
19767 inttypes.h, as a gnulib replacement is used if it not available in 9263
19768 system headers. 92642013-03-26 Eli Zaretskii <eliz@gnu.org>
19769 9265
197702011-04-21 Eli Zaretskii <eliz@gnu.org> 9266 * w32.c (_PROCESS_MEMORY_COUNTERS_EX) [_WIN32_WINNT < 0x0500]:
19771 9267 Define only for _WIN32_WINNT less than 0x0500.
19772 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files. 9268 (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT) [!_W64]: Don't define for
19773 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4 9269 MinGW64.
19774 of MOST_POSITIVE_FIXNUM. (Bug#8528) 9270 Move inclusion of time.h before sys/time.h, so that MinGW64 could
19775 9271 see its own definitions of 'struct timeval' and 'struct timezone'.
19776 * coding.c (coding_alloc_by_realloc): Error out if destination 9272
19777 will grow beyond MOST_POSITIVE_FIXNUM. 9273 Fix incompatibilities between MinGW.org and MinGW64 headers.
19778 (decode_coding_emacs_mule): Abort if there isn't enough place in 9274 * w32term.c (WCRANGE, GLYPHSET): Don't define if _W64 is defined.
19779 charbuf for the composition carryover bytes. Reserve an extra 9275
19780 space for up to 2 characters produced in a loop. 9276 * w32.c (REPARSE_DATA_BUFFER): Guard with
19781 (decode_coding_iso_2022): Abort if there isn't enough place in 9277 MAXIMUM_REPARSE_DATA_BUFFER_SIZE being defined.
19782 charbuf for the composition carryover bytes. 9278
19783 92792013-03-25 Jan Djärv <jan.h.d@swipnet.se>
197842011-04-21 Eli Zaretskii <eliz@gnu.org> 9280
19785 9281 * xterm.c: Include X11/XKBlib.h
19786 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of 9282 (XTring_bell): Use XkbBell if HAVE_XKB (Bug#14041).
19787 aborting when %lld or %lll format is passed. 9283
19788 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when 92842013-03-24 Andreas Schwab <schwab@linux-m68k.org>
19789 %llo or %llx format is passed. (Bug#8545) 9285
19790 9286 * alloc.c (xpalloc, Fgarbage_collect): Reorder conditions that are
19791 * window.c (window_scroll_line_based): Use a marker instead of 9287 written backwards.
19792 simple variables to record original value of point. (Bug#7952) 9288 * blockinput.h (input_blocked_p): Likewise.
19793 9289 * bytecode.c (exec_byte_code): Likewise.
19794 * doprnt.c (doprnt): Fix the case where a multibyte sequence 9290 * callproc.c (call_process_kill, call_process_cleanup)
19795 produced by %s or %c overflows available buffer space. (Bug#8545) 9291 (Fcall_process): Likewise.
19796 9292 * ccl.c (ccl_driver, resolve_symbol_ccl_program)
197972011-04-28 Paul Eggert <eggert@cs.ucla.edu> 9293 (Fccl_execute_on_string): Likewise.
19798 9294 * character.c (string_escape_byte8): Likewise.
19799 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545). 9295 * charset.c (read_hex): Likewise.
19800 (SIZE_MAX): Move defn after all includes, as they might #define it. 9296 * cm.c (calccost): Likewise.
19801 9297 * data.c (cons_to_unsigned): Likewise.
198022011-04-28 Juanma Barranquero <lekktu@gmail.com> 9298 * dired.c (directory_files_internal, file_name_completion):
19803
19804 * w32.c (init_environment): Warn about defaulting HOME to C:\.
19805
198062011-04-28 Juanma Barranquero <lekktu@gmail.com>
19807
19808 * keyboard.c (Qdelayed_warnings_hook): Define.
19809 (command_loop_1): Run `delayed-warnings-hook'
19810 if Vdelayed_warnings_list is non-nil.
19811 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
19812 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
19813
198142011-04-28 Eli Zaretskii <eliz@gnu.org>
19815
19816 * doprnt.c (doprnt): Don't return value smaller than the buffer
19817 size if the message was truncated. (Bug#8545).
19818
198192011-04-28 Juanma Barranquero <lekktu@gmail.com>
19820
19821 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
19822 (Fx_window_property): #if-0 the whole functions, not just the bodies.
19823
198242011-04-27 Paul Eggert <eggert@cs.ucla.edu>
19825
19826 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
19827
198282011-04-27 Juanma Barranquero <lekktu@gmail.com>
19829
19830 * makefile.w32-in: Update dependencies.
19831
198322011-04-27 Eli Zaretskii <eliz@gnu.org>
19833
19834 Improve `doprnt' and its usage. (Bug#8545)
19835 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
19836 `format_end'. Remove support for %l as a conversion specifier.
19837 Don't use xrealloc. Improve diagnostics when the %l size modifier
19838 is used. Update the commentary.
19839
19840 * eval.c (verror): Simplify calculation of size_t.
19841
19842 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
19843 messages.
19844
198452011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
19846
19847 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
19848 change.
19849
198502011-04-27 Paul Eggert <eggert@cs.ucla.edu>
19851
19852 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
19853 This makes this file independent of the recent pseudovector change.
19854
198552011-04-26 Paul Eggert <eggert@cs.ucla.edu>
19856
19857 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
19858
19859 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
19860 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
19861 Remove unused local.
19862 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
19863
19864 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
19865 GCC 4.6.0 optimizes based on type-based alias analysis.
19866 For example, if b is of type struct buffer * and v of type struct
19867 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
19868 != &v->size, and therefore "v->size = 1; b->size = 2; return
19869 v->size;" must therefore return 1. This assumption is incorrect
19870 for Emacs, since it type-puns struct Lisp_Vector * with many other
19871 types. To fix this problem, this patch adds a new type struct
19872 vectorlike_header that documents the constraints on layout of vectors
19873 and pseudovectors, and helps optimizing compilers not get fooled
19874 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
19875 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
19876 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
19877 the size member.
19878 (XSETPVECTYPE): Rewrite in terms of new macro.
19879 (XSETPVECTYPESIZE): New macro, specifying both type and size.
19880 This is a bit clearer, and further avoids the possibility of
19881 undesirable aliasing.
19882 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
19883 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
19884 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
19885 since Lisp_Subr is a special case (no "next" field).
19886 (ASIZE): Now uses header.size rather than size.
19887 All previous uses of XVECTOR (foo)->size replaced to use this macro,
19888 to avoid the hassle of writing XVECTOR (foo)->header.size.
19889 (struct vectorlike_header): New type.
19890 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
19891 object, to help avoid aliasing.
19892 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
19893 (SUBRP): Likewise, since Lisp_Subr is a special case.
19894 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
19895 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
19896 (struct Lisp_Hash_Table): Combine first two members into a single
19897 struct vectorlike_header member. All uses of "size" and "next" members
19898 changed to be "header.size" and "header.next".
19899 * buffer.h (struct buffer): Likewise.
19900 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
19901 * frame.h (struct frame): Likewise.
19902 * process.h (struct Lisp_Process): Likewise.
19903 * termhooks.h (struct terminal): Likewise.
19904 * window.c (struct save_window_data, struct saved_window): Likewise.
19905 * window.h (struct window): Likewise.
19906 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
19907 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
19908 * buffer.c (init_buffer_once): Likewise.
19909 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
19910 special case.
19911 * process.c (Fformat_network_address): Use local var for size,
19912 for brevity.
19913
19914 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
19915
19916 Make the Lisp reader and string-to-float more consistent (Bug#8525)
19917 * data.c (atof): Remove decl; no longer used or needed.
19918 (digit_to_number): Move to lread.c.
19919 (Fstring_to_number): Use new string_to_number function, to be
19920 consistent with how the Lisp reader treats infinities and NaNs.
19921 Do not assume that floating-point numbers represent EMACS_INT
19922 without losing information; this is not true on most 64-bit hosts.
19923 Avoid double-rounding errors, by insisting on integers when
19924 parsing non-base-10 numbers, as the documentation specifies.
19925 * lisp.h (string_to_number): New decl, replacing ...
19926 (isfloat_string): Remove.
19927 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
19928 (read1): Do not accept +. and -. as integers; this
19929 appears to have been a coding error. Similarly, do not accept
19930 strings like +-1e0 as floating point numbers. Do not report
19931 overflow for integer overflows unless the base is not 10 which
19932 means we have no simple and reliable way to continue.
19933 Break out the floating-point parsing into a new
19934 function string_to_number, so that Fstring_to_number parses
19935 floating point numbers consistently with the Lisp reader.
19936 (digit_to_number): Move here from data.c. Make it static inline.
19937 (E_CHAR, EXP_INT): Remove, replacing with ...
19938 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
19939 (string_to_number): New function, replacing isfloat_string.
19940 This function checks for valid syntax and produces the resulting
19941 Lisp float number too. Rework it so that string-to-number
19942 no longer mishandles examples like "1.0e+". Use strtoumax,
19943 so that overflow for non-base-10 numbers is reported only when
19944 there's no portable and simple way to convert to floating point.
19945
19946 * textprop.c (set_text_properties_1): Rewrite for clarity,
19947 and to avoid GCC warning about integer overflow.
19948
19949 * intervals.h (struct interval): Use EMACS_INT for members
19950 where EMACS_UINT might cause problems. See
19951 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
19952 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
19953 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
19954 All uses changed.
19955 (offset_intervals): Tell GCC not to worry about length overflow
19956 when negating a negative length.
19957
19958 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
19959 (overrun_check_free): Likewise.
19960
19961 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
19962 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
19963 word size.
19964
19965 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
19966 (gnutls_make_error): Rename local to avoid shadowing.
19967 (gnutls_emacs_global_deinit): ifdef out; not used.
19968 (Fgnutls_boot): Use const for pointer to readonly storage.
19969 Comment out unused local. Fix pointer signedness problems.
19970
19971 * lread.c (openp): Don't stuff size_t into an 'int'.
19972 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
19973 about possible signed overflow.
19974
19975 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
19976 (GDK_KEY_g): Don't define if already defined.
19977 (xg_prepare_tooltip): Avoid pointer signedness problem.
19978 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
19979
19980 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
19981 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
19982
19983 * xfns.c (Fx_window_property): Simplify a bit,
19984 to make a bit faster and to avoid GCC 4.6.0 warning.
19985 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
19986
19987 * fns.c (internal_equal): Don't assume size_t fits in int.
19988
19989 * alloc.c (compact_small_strings): Tighten assertion a little.
19990
19991 Replace pEd with more-general pI, and fix some printf arg casts.
19992 * lisp.h (pI): New macro, generalizing old pEd macro to other
19993 conversion specifiers. For example, use "...%"pI"d..." rather
19994 than "...%"pEd"...".
19995 (pEd): Remove. All uses replaced with similar uses of pI.
19996 * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise.
19997 * alloc.c (check_pure_size): Don't overflow by converting size to int.
19998 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
19999 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
20000 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
20001 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
20002 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
20003 64-bit hosts.
20004 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
20005 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
20006 * print.c (safe_debug_print, print_object): Likewise.
20007 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
20008 to int.
20009 Use pI instead of if-then-else-abort. Use %p to avoid casts,
20010 avoiding the 0 flag, which is not portable.
20011 * process.c (Fmake_network_process): Use pI to avoid cast.
20012 * region-cache.c (pp_cache): Likewise.
20013 * xdisp.c (decode_mode_spec): Likewise.
20014 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
20015 behavior on 64-bit hosts with printf arg.
20016 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
20017 (x_stop_queuing_selection_requests): Likewise.
20018 (x_get_window_property): Don't truncate byte count to an 'int'
20019 when tracing.
20020
20021 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
20022 here, since it parses constructs like leading '-' and spaces,
20023 which are not wanted; and it overflows with large numbers.
20024 Instead, simply match F[0-9]+, which is what is wanted anyway.
20025
20026 * alloc.c: Remove unportable assumptions about struct layout.
20027 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
20028 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
20029 (allocate_vectorlike, make_pure_vector): Use the new macros,
20030 plus offsetof, to remove unportable assumptions about struct layout.
20031 These assumptions hold on all porting targets that I know of, but
20032 they are not guaranteed, they're easy to remove, and removing them
20033 makes further changes easier.
20034
20035 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
20036 This doesn't fix a bug but makes the code clearer.
20037 (string_overrun_cookie): Now const. Use initializers that
20038 don't formally overflow signed char, to avoid warnings.
20039 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
20040 can cause Emacs to crash when string overrun checking is enabled.
20041 (allocate_buffer): Don't assume sizeof (struct buffer) is a
20042 multiple of sizeof (EMACS_INT); it need not be, if
20043 alignof(EMACS_INT) < sizeof (EMACS_INT).
20044 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
20045
200462011-04-26 Juanma Barranquero <lekktu@gmail.com>
20047
20048 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
20049
200502011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
20051
20052 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
20053 supposed to be handshaking. (Bug#8556)
20054 Reported by Paul Eggert <eggert@cs.ucla.edu>.
20055
200562011-04-26 Daniel Colascione <dan.colascione@gmail.com>
20057
20058 * lisp.h (Qdebug): List symbol.
20059 * eval.c (Qdebug): Restore global linkage.
20060 * keyboard.c (debug-on-event): New variable.
20061 (handle_user_signal): Break into debugger when debug-on-event
20062 matches the current signal symbol.
20063
200642011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
20065
20066 * alloc.c (check_sblock, check_string_bytes)
20067 (check_string_free_list): Convert to standard C.
20068
200692011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
20070
20071 * w32.c (emacs_gnutls_push): Fix typo.
20072
200732011-04-25 Eli Zaretskii <eliz@gnu.org>
20074
20075 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
20076 "cast to pointer from integer of different size".
20077
20078 Improve doprnt and its use in verror. (Bug#8545)
20079 * doprnt.c (doprnt): Document the set of format control sequences
20080 supported by the function. Use SAFE_ALLOCA instead of always
20081 using `alloca'.
20082
20083 * eval.c (verror): Don't limit the buffer size at size_max-1, that
20084 is one byte too soon. Don't use xrealloc; instead xfree and
20085 xmalloc anew.
20086
200872011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
20088
20089 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
20090 callbacks stage.
20091
20092 * gnutls.c: Renamed global_initialized to
20093 gnutls_global_initialized. Added internals for the
20094 :verify-hostname-error, :verify-error, and :verify-flags
20095 parameters of `gnutls-boot' and documented those parameters in the
20096 docstring. Start callback support.
20097 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
20098 unless a fatal error occurred. Call gnutls_alert_send_appropriate
20099 on error. Return error code.
20100 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
20101 (emacs_gnutls_read): Likewise.
20102 (Fgnutls_boot): Return handshake error code.
20103 (emacs_gnutls_handle_error): New function.
20104 (wsaerror_to_errno): Likewise.
20105
20106 * w32.h (emacs_gnutls_pull): Add prototype.
20107 (emacs_gnutls_push): Likewise.
20108
20109 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
20110 (emacs_gnutls_push): Likewise.
20111
201122011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
20113
20114 * process.c (wait_reading_process_output): Check if GnuTLS
20115 buffered some data internally if no FDs are set for TLS
20116 connections.
20117
20118 * makefile.w32-in (OBJ2): Add gnutls.$(O).
20119 (LIBS): Link to USER_LIBS.
20120 ($(BLD)/gnutls.$(0)): New target.
20121
201222011-04-24 Eli Zaretskii <eliz@gnu.org>
20123
20124 * xdisp.c (handle_single_display_spec): Rename the
20125 display_replaced_before_p argument into display_replaced_p, to
20126 make it consistent with the commentary. Fix typos in the
20127 commentary.
20128
20129 * textprop.c (syms_of_textprop): Remove dead code.
20130 (copy_text_properties): Delete obsolete commentary about an
20131 interface that was deleted long ago. Fix typos in the description
20132 of arguments.
20133
20134 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
20135 to changes in oldXMenu/XMenu.h from 2011-04-16.
20136 <menu_help_message, prev_menu_help_message>: Constify.
20137 (IT_menu_make_room): menu->help_text is now `const char **';
20138 adjust.
20139
20140 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
20141 to changes in oldXMenu/XMenu.h from 2011-04-16.
20142 (struct XMenu): Declare `help_text' `const char **'.
20143
20144 * xfaces.c <Qunspecified>: Make extern again.
20145
20146 * syntax.c: Include sys/types.h before including regex.h, as
20147 required by POSIX.
20148
20149 * doc.c (get_doc_string): Improve the format passed to `error'.
20150
20151 * doprnt.c (doprnt): Improve commentary.
20152
20153 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
20154
20155 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
20156 them with etags.
20157
20158 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
20159 changes in globals.h immediately force recompilation.
20160 (TAGS): Depend on $(CURDIR)/m/intel386.h and
20161 $(CURDIR)/s/ms-w32.h.
20162 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
20163
20164 * character.c (Fchar_direction): Function deleted.
20165 (syms_of_character): Don't defsubr it.
20166 <char-direction-table>: Deleted.
20167
201682011-04-23 Eli Zaretskii <eliz@gnu.org>
20169
20170 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
20171 * doprnt.c: Include limits.h.
20172 (SIZE_MAX): New macro.
20173 (doprnt): Return a size_t value. 2nd arg is now size_t.
20174 Many local variables are now size_t instead of int or unsigned.
20175 Improve overflow protection. Support `l' modifier for integer
20176 conversions. Support %l conversion. Don't assume an EMACS_INT
20177 argument for integer conversions and for %c.
20178
20179 * lisp.h (doprnt): Restore prototype.
20180
20181 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
20182 $(SRC)/character.h.
20183
20184 * Makefile.in (base_obj): Add back doprnt.o.
20185
20186 * deps.mk (doprnt.o): Add back prerequisites.
20187 (callint.o): Depend on character.h.
20188
20189 * eval.c (internal_lisp_condition_case): Include the handler
20190 representation in the error message.
20191 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
20192 when breaking from the loop.
20193
20194 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
20195
20196 * callint.c (Fcall_interactively): When displaying error message
20197 about invalid control letter, pass the character's codepoint, not
20198 a pointer to its multibyte form. Improve display of the character
20199 in octal and display also its hex code.
20200
20201 * character.c (char_string): Use %x to display the (unsigned)
20202 codepoint of an invalid character, to avoid displaying a bogus
20203 negative value.
20204
20205 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
20206 `error', not SYMBOL_NAME itself.
20207
20208 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
20209 character arguments to `error'.
20210
20211 * charset.c (check_iso_charset_parameter): Fix incorrect argument
20212 to `error' in error message about FINAL_CHAR argument. Make sure
20213 FINAL_CHAR is a character, and use %c when it is passed as
20214 argument to `error'.
20215
202162011-04-23 Eli Zaretskii <eliz@gnu.org>
20217
20218 * s/ms-w32.h (localtime): Redirect to sys_localtime.
20219
20220 * w32.c: Include <time.h>.
20221 (sys_localtime): New function.
20222
202232011-04-23 Chong Yidong <cyd@stupidchicken.com>
20224
20225 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
20226
20227 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
20228
202292011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
20230
20231 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
20232 zombies (Bug#8467).
20233
202342011-04-19 Eli Zaretskii <eliz@gnu.org>
20235
20236 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
20237 gl_state.e_property when gl_state.object is Qt.
20238
20239 * insdel.c (make_gap_larger): Remove limitation of buffer size
20240 to <= INT_MAX.
20241
202422011-04-18 Chong Yidong <cyd@stupidchicken.com>
20243
20244 * xdisp.c (lookup_glyphless_char_display)
20245 (produce_glyphless_glyph): Handle cons cell entry in
20246 glyphless-char-display.
20247 (Vglyphless_char_display): Document it.
20248
20249 * term.c (produce_glyphless_glyph): Handle cons cell entry in
20250 glyphless-char-display.
20251
202522011-04-17 Chong Yidong <cyd@stupidchicken.com>
20253
20254 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
20255
20256 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
20257
20258 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
20259 definition for no-X builds.
20260
202612011-04-16 Paul Eggert <eggert@cs.ucla.edu>
20262
20263 Static checks with GCC 4.6.0 and non-default toolkits.
20264
20265 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
20266
20267 * process.c (keyboard_bit_set): Define only if SIGIO.
20268 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
20269 (send_process): Repair possible setjmp clobbering.
20270
20271 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
20272
20273 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
20274
20275 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
20276
20277 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
20278 Define only if needed.
20279
20280 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
20281 by pacifying GCC about it. Maybe it's time to retire it?
20282 * xfaces.c (USG, __TIMEVAL__): Likewise.
20283
20284 * dispextern.h (struct redisplay_interface): Rename param
20285 to avoid shadowing.
20286 * termhooks.h (struct terminal): Likewise.
20287 * xterm.c (xembed_send_message): Likewise.
20288
20289 * insdel.c (make_gap_smaller): Define only if
20290 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
20291
20292 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
20293 it.
20294
20295 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
20296 so that we aren't warned about unused symbols.
20297
20298 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
20299
20300 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
20301
20302 * xfns.c (x_real_positions): Mark locals as initialized.
20303
20304 * xmenu.c (xmenu_show): Don't use uninitialized vars.
20305
20306 * xterm.c: Fix problems found by static analysis with other toolkits.
20307 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
20308 (x_dispatch_event): Declare static if USE_GTK, and
20309 define if USE_GTK || USE_X_TOOLKIT.
20310 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
20311 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
20312 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
20313 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
20314
20315 * xmenu.c (menu_help_callback): Pointer type fixes.
20316 Use const pointers when pointing at readonly data. Avoid pointer
20317 signedness clashes.
20318 (FALSE): Remove unused macro.
20319 (update_frame_menubar): Remove unused decl.
20320
20321 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
20322
20323 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
20324 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
20325 (single_menu_item): Rename local to avoid shadowing.
20326
20327 * keyboard.c (make_lispy_event): Remove unused local var.
20328
20329 * frame.c, frame.h (x_get_resource_string): Bring this back, but
20330 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
20331
20332 * bitmaps: Change bitmaps from unsigned char back to the X11
20333 compatible char. Avoid the old compiler warnings about
20334 out-of-range initializers by using, for example, '\xab' rather
20335 than 0xab.
20336
20337 * xgselect.c (xgselect_initialize): Check vs interface
20338 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
20339
20340 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
20341
20342 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
20343 to read-only memory.
20344
20345 * fns.c (vector): Remove; this old hack is no longer needed.
20346
20347 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
20348 Remove unused var.
20349 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
20350
20351 * xrdb.c (x_load_resources): Omit unused local.
20352
20353 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
20354 (x_window): Rename locals to avoid shadowing.
20355 (USG): Use the kludged USG macro, to pacify gcc.
20356
20357 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
20358 (x_term_init): Remove local to avoid shadowing.
20359
20360 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
20361
20362 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
20363 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
20364
203652011-04-16 Eli Zaretskii <eliz@gnu.org>
20366
20367 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
20368
20369 Fix regex.c, syntax.c and friends for buffers > 2GB.
20370 * syntax.h (struct gl_state_s): Declare character position members
20371 EMACS_INT.
20372
20373 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
20374
20375 * textprop.c (verify_interval_modification, interval_of):
20376 Declare arguments EMACS_INT.
20377
20378 * intervals.c (adjust_intervals_for_insertion): Declare arguments
20379 EMACS_INT.
20380
20381 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
20382
20383 * indent.c (Fvertical_motion): Local variable it_start is now
20384 EMACS_INT.
20385
20386 * regex.c (re_match, re_match_2, re_match_2_internal)
20387 (bcmp_translate, regcomp, regexec, print_double_string)
20388 (group_in_compile_stack, re_search, re_search_2, regex_compile)
20389 (re_compile_pattern, re_exec): Declare arguments and local
20390 variables `size_t' and `ssize_t' and return values `regoff_t', as
20391 appropriate.
20392 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
20393 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
20394 <compile_stack_type>: `size' and `avail' are now `size_t'.
20395
20396 * regex.h <regoff_t>: Use ssize_t, not int.
20397 (re_search, re_search_2, re_match, re_match_2): Arguments that
20398 specify buffer/string position and length are now ssize_t and
20399 size_t. Return type is regoff_t.
20400
204012011-04-16 Ben Key <bkey76@gmail.com>
20402
20403 * nsfont.m: Fixed bugs in ns_get_family and
20404 ns_descriptor_to_entity that were caused by using free to
20405 deallocate memory blocks that were allocated by xmalloc (via
20406 xstrdup). This caused Emacs to crash when compiled with
20407 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
20408 --enable-checking=xmallocoverrun). xfree is now used to
20409 deallocate these memory blocks.
20410
204112011-04-15 Paul Eggert <eggert@cs.ucla.edu>
20412
20413 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
20414
20415 emacs_write: Accept and return EMACS_INT for sizes.
20416 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
20417 et seq.
20418 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
20419 Accept and return EMACS_INT.
20420 (emacs_gnutls_write): Return the number of bytes written on
20421 partial writes.
20422 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
20423 (emacs_read, emacs_write): Remove check for negative size, as the
20424 Emacs source code has been audited now.
20425 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
20426 (emacs_read, emacs_write): Use it.
20427 * process.c (send_process): Adjust to the new signatures of
20428 emacs_write and emacs_gnutls_write. Do not attempt to store
20429 a byte offset into an 'int'; it might overflow.
20430 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
20431
20432 * sound.c: Don't assume sizes fit in 'int'.
20433 (struct sound_device.period_size, alsa_period_size):
20434 Return EMACS_INT, not int.
20435 (struct sound_device.write, vox_write, alsa_write):
20436 Accept EMACS_INT, not int.
20437 (wav_play, au_play): Use EMACS_INT to store sizes and to
20438 record read return values.
20439
204402011-04-15 Ben Key <bkey76@gmail.com>
20441
20442 * keyboard.c (Qundefined): Don't declare static since it is used
20443 in nsfns.m.
20444 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
20445 static since they are used in nsfont.m.
20446
204472011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
20448
20449 * process.c (Qprocessp): Don't declare static.
20450 * lisp.h (Qprocessp): Declare again.
20451
204522011-04-15 Juanma Barranquero <lekktu@gmail.com>
20453
20454 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
20455
204562011-04-14 Paul Eggert <eggert@cs.ucla.edu>
20457
20458 Improve C-level modularity by making more things 'static'.
20459
20460 Don't publish debugger-only interfaces to other modules.
20461 * lisp.h (safe_debug_print, debug_output_compilation_hack):
20462 (verify_bytepos, count_markers): Move decls to the only modules
20463 that need them.
20464 * region-cache.h (pp_cache): Likewise.
20465 * window.h (check_all_windows): Likewise.
20466 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
20467
20468 * sysdep.c (croak): Now static, if
20469 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
20470 * syssignal.h (croak): Declare only if not static.
20471
20472 * alloc.c (refill_memory_reserve): Now static if
20473 !defined REL_ALLOC || defined SYSTEM_MALLOC.
20474 * lisp.h (refill_memory_reserve): Declare only if not static.
20475
20476 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
20477 Define only if USE_LUCID.
20478
20479 * xrdb.c (x_customization_string, x_rm_string): Now static.
20480
20481 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
20482 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
20483
20484 * xdisp.c (draw_row_with_mouse_face): Now static.
20485 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
20486
20487 * window.h (check_all_windows): Mark externally visible.
20488
20489 * window.c (window_deletion_count): Now static.
20490
20491 * undo.c: Make symbols static if they're not exported.
20492 (last_undo_buffer, last_boundary_position, pending_boundary):
20493 Now static.
20494
20495 * textprop.c (interval_insert_behind_hooks): Now static.
20496 (interval_insert_in_front_hooks): Likewise.
20497
20498 * term.c: Make symbols static if they're not exported.
20499 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
20500 (max_frame_lines, tty_set_terminal_modes):
20501 (tty_reset_terminal_modes, tty_turn_off_highlight):
20502 (get_tty_terminal): Now static.
20503 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
20504 * termhooks.h (term_mouse_moveto): Do not declare if
20505 HAVE_WINDOW_SYSTEM.
20506 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
20507 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
20508
20509 * sysdep.c: Make symbols static if they're not exported.
20510 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
20511 Now static.
20512 (sigprocmask_set, full_mask): Remove; unused.
20513 (wait_debugging): Mark as visible.
20514 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
20515 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
20516
20517 * syntax.c (syntax_temp): Define only if !__GNUC__.
20518
20519 * sound.c (current_sound_device, current_sound): Now static.
20520
20521 * search.c (searchbufs, searchbuf_head): Now static.
20522
20523 * scroll.c (scroll_cost): Remove; unused.
20524 * dispextern.h (scroll_cost): Remove decl.
20525
20526 * region-cache.h (pp_cache): Mark as externally visible.
20527
20528 * process.c: Make symbols static if they're not exported.
20529 (process_tick, update_tick, create_process, chan_process):
20530 (Vprocess_alist, proc_buffered_char, datagram_access):
20531 (fd_callback_data, send_process_frame, process_sent_to): Now static.
20532 (deactivate_process): Mark defn as static, as well as decl.
20533 * lisp.h (create_process): Remove decl.
20534 * process.h (chan_process, Vprocess_alist): Remove decls.
20535
20536 * print.c: Make symbols static if they're not exported.
20537 (print_depth, new_backquote_output, being_printed, print_buffer):
20538 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
20539 (print_interval, print_number_index, initial_stderr_stream):
20540 Now static.
20541 * lisp.h (Fprinc): Remove decl.
20542 (debug_output_compilation_hack): Mark as externally visible.
20543
20544 * sysdep.c (croak): Move decl from here to syssignal.h.
20545 * syssignal.h (croak): Put it here, so the API can be checked when
20546 'croak' is called from dissociate_if_controlling_tty.
20547
20548 * minibuf.c: Make symbols static if they're not exported.
20549 (minibuf_save_list, choose_minibuf_frame): Now static.
20550 * lisp.h (choose_minibuf_frame): Remove decl.
20551
20552 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
20553
20554 * lread.c: Make symbols static if they're not exported.
20555 (read_objects, initial_obarray, oblookup_last_bucket_number):
20556 Now static.
20557 (make_symbol): Remove; unused.
20558 * lisp.h (initial_obarray, make_symbol): Remove decls.
20559
20560 * keyboard.c: Make symbols static if they're not exported.
20561 (single_kboard, recent_keys_index, total_keys, recent_keys):
20562 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
20563 (this_single_command_key_start, echoing, last_auto_save):
20564 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
20565 (command_loop, echo_now, keyboard_init_hook, help_char_p):
20566 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
20567 (Vlispy_mouse_stem, double_click_count):
20568 Now static.
20569 (force_auto_save_soon): Define only if SIGDANGER.
20570 (ignore_mouse_drag_p): Now static if
20571 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
20572 (print_help): Remove; unused.
20573 (stop_character, last_timer_event): Mark as externally visible.
20574 * keyboard.h (ignore_mouse_drag_p): Declare only if
20575 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
20576 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
20577 * lisp.h (echoing): Remove decl.
20578 (force_auto_save_soon): Declare only if SIGDANGER.
20579 * xdisp.c (redisplay_window): Simplify code, to make it more
20580 obvious that ignore_mouse_drag_p is not accessed if !defined
20581 USE_GTK && !defined HAVE_NS.
20582
20583 * intervals.c: Make symbols static if they're not exported.
20584 (merge_properties_sticky, merge_interval_right, delete_interval):
20585 Now static.
20586 * intervals.h (merge_interval_right, delete_interval): Remove decls.
20587
20588 * insdel.c: Make symbols static if they're not exported.
20589 However, leave prepare_to_modify_buffer alone. It's never
20590 called from outside this function, but that appears to be a bug.
20591 (combine_after_change_list, combine_after_change_buffer):
20592 (adjust_after_replace, signal_before_change): Now static.
20593 (adjust_after_replace_noundo): Remove; unused.
20594 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
20595 (signal_before_change): Remove decls.
20596
20597 * indent.c (val_compute_motion, val_vmotion): Now static.
20598
20599 * image.c: Make symbols static if they're not exported.
20600 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
20601 if USE_GTK.
20602 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
20603 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
20604
20605 * fringe.c (standard_bitmaps): Now static.
20606 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
20607
20608 * frame.c: Make symbols static if they're not exported.
20609 (x_report_frame_params, make_terminal_frame): Now static.
20610 (get_frame_param): Now static, unless HAVE_NS.
20611 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
20612 (x_get_resource_string): Remove; not used.
20613 * frame.h (make_terminal_frame, x_report_frame_params):
20614 (x_get_resource_string); Remove decls.
20615 (x_fullscreen_adjust): Declare only if WINDOWSNT.
20616 * lisp.h (get_frame_param): Declare only if HAVE_NS.
20617
20618 * font.c, fontset.c: Make symbols static if they're not exported.
20619 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
20620 (FACE_SUITABLE_FOR_CHAR_P): Use it.
20621 * font.c (font_close_object): Now static.
20622 * font.h (font_close_object): Remove.
20623 * fontset.c (FONTSET_OBJLIST): Remove.
20624 (free_realized_fontset) #if-0 the body, which does nothing.
20625 (face_suitable_for_char_p): #if-0, as it's never called.
20626 * fontset.h (face_suitable_for_char_p): Remove decl.
20627 * xfaces.c (face_at_string_position):
20628 Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
20629 since 0 is always ASCII.
20630
20631 * fns.c (weak_hash_tables): Now static.
20632
20633 * fileio.c: Make symbols static if they're not exported.
20634 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
20635 (Vwrite_region_annotation_buffers): Now static.
20636
20637 * eval.c: Make symbols static if they're not exported.
20638 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
20639 * lisp.h (backtrace_list): Remove decl.
20640
20641 * emacs.c: Make symbols static if they're not exported.
20642 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
20643 (fatal_error_code, fatal_error_signal_hook, standard_args):
20644 Now static.
20645 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
20646 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
20647 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
20648 * lisp.h (fatal_error_signal_hook): Remove decl.
20649 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
20650
20651 * editfns.c: Move a (normally-unused) function to its only use.
20652 * editfns.c, lisp.h (get_operating_system_release): Remove.
20653 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
20654 worth the hassle of breaking this out.
20655
20656 * xterm.c: Make symbols static if they're not exported.
20657 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
20658 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
20659 (x_destroy_window, x_delete_display):
20660 Now static.
20661 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
20662 (x_mouse_leave): Remove; unused.
20663 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
20664 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
20665 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
20666 Remove decls.
20667 (x_mouse_leave): Declare only if WINDOWSNT.
20668 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
20669 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
20670 USE_X_TOOLKIT.
20671
20672 * ftxfont.c: Make symbols static if they're not exported.
20673 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
20674 HAVE_FREETYPE.
20675 * font.h (ftxfont_driver): Likewise.
20676
20677 * xfns.c: Make symbols static if they're not exported.
20678 (x_last_font_name, x_display_info_for_name):
20679 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
20680 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
20681 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
20682 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
20683 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
20684 (last_show_tip_args): Now static.
20685 (xic_defaut_fontset, xic_create_fontsetname): Define only if
20686 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
20687 (x_screen_planes): Remove; unused.
20688 * dispextern.h (x_screen_planes): Remove decl.
20689
20690 * dispnew.c: Make symbols static if they're not exported.
20691 * dispextern.h (redraw_garbaged_frames, scrolling):
20692 (increment_row_positions): Remove.
20693 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
20694 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
20695 Now static.
20696 (redraw_garbaged_frames): Remove; unused.
20697
20698 * xfaces.c: Make symbols static if they're not exported.
20699 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
20700 Remove decls.
20701 * xterm.h (defined_color): Remove decls.
20702 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
20703 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
20704 (menu_face_changed_default, defined_color, free_realized_face):
20705 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
20706 (ascii_face_of_lisp_face): Remove; unused.
20707
20708 * xdisp.c: Make symbols static if they're not exported.
20709 * dispextern.h (scratch_glyph_row, window_box_edges):
20710 (glyph_to_pixel_coords, set_cursor_from_row):
20711 (get_next_display_element, set_iterator_to_next):
20712 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
20713 (show_mouse_face): Remove decls
20714 * frame.h (message_buf_print): Likewise.
20715 * lisp.h (pop_message, set_message, check_point_in_composition):
20716 Likewise. 9299 Likewise.
20717 * xterm.h (set_vertical_scroll_bar): Likewise. 9300 * dispnew.c (scrolling_window, update_frame_1, Fsleep_for)
20718 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed): 9301 (sit_for): Likewise.
20719 (message_buf_print, scratch_glyph_row, displayed_buffer): 9302 * doc.c (Fsubstitute_command_keys): Likewise.
20720 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row): 9303 * doprnt.c (doprnt): Likewise.
20721 (get_next_display_element, show_mouse_face, window_box_edges): 9304 * editfns.c (hi_time, decode_time_components, Fformat): Likewise.
20722 (frame_to_window_pixel_xy, check_point_in_composition): 9305 * emacsgtkfixed.c: Likewise.
20723 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static. 9306 * fileio.c (file_offset, Fwrite_region): Likewise.
20724 (glyph_to_pixel_coords): Remove; unused. 9307 * floatfns.c (Fexpt, fmod_float): Likewise.
20725 9308 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
20726 * dired.c (file_name_completion): Now static.
20727
20728 * dbusbind.c (xd_in_read_queued_messages): Now static.
20729
20730 * lisp.h (circular_list_error, FOREACH): Remove; unused.
20731 * data.c (circular_list_error): Remove.
20732
20733 * commands.h (last_point_position, last_point_position_buffer):
20734 (last_point_position_window): Remove decls.
20735 * keyboard.c: Make these variables static.
20736
20737 * coding.h (coding, code_convert_region, encode_coding_gap):
20738 Remove decls.
20739 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
20740 (iso_code_class, detect_coding, code_convert_region): Now static.
20741 (encode_coding_gap): Remove; unused.
20742
20743 * chartab.c (chartab_chars, chartab_bits): Now static.
20744
20745 * charset.h (charset_iso_8859_1): Remove decl.
20746 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
20747 Now static.
20748
20749 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
20750 * ccl.c (Vccl_program_table): Now static.
20751 (check_ccl_update): Remove; unused.
20752
20753 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
20754 * category.h: ... from here.
20755 * category.c (check_category_table, set_category_set): Now static.
20756
20757 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
20758 * lisp.h: Remove these decls.
20759
20760 * buffer.c (buffer_count): Remove unused var.
20761
20762 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
20763 so that it's not optimized away.
20764 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
20765 * dispextern.h (bidi_dump_cached_states): Remove, since it's
20766 exported only to the debugger.
20767
20768 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
20769 * atimer.h (run_all_atimers): Remove; not exported.
20770
20771 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
20772 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
20773 was inaccessible from Lisp.
20774 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
20775 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
20776
20777 alloc.c: Import and export fewer symbols, and remove unused items.
20778 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
20779 is defined.
20780 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
20781 it's not optimized away by whole-program optimization.
20782 (message_enable_multibyte, free_misc): Remove.
20783 (catchlist, handlerlist, mark_backtrace):
20784 Declare only if BYTE_MARK_STACK.
20785 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
20786 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
20787 (message_enable_multibyte): Remove decl.
20788 (free_misc, interval_free_list, float_block, float_block_index):
20789 (n_float_blocks, float_free_list, cons_block, cons_block_index):
20790 (cons_free_list, last_marked_index):
20791 Now static.
20792 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
20793 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
20794 (mark_backtrace): Define only if BYTE_MARK_STACK.
20795 * xdisp.c (message_enable_multibyte): Now static.
20796
20797 Declare Lisp_Object Q* variables to be 'static' if not exported.
20798 This makes it easier for human readers (and static analyzers)
20799 to see whether these variables are used from other modules.
20800 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
20801 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
20802 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
20803 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
20804 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
20805 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
20806 * xmenu.c, xselect.c:
20807 Declare Q* vars static if they are not used in other modules.
20808 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
20809 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
20810 Remove decls of unexported vars.
20811 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
20812
20813 * lisp.h (DEFINE_FUNC): Make sname 'static'.
20814
20815 Make Emacs functions such as Fatom 'static' by default.
20816 This makes it easier for human readers (and static analyzers)
20817 to see whether these functions can be called from other modules.
20818 DEFUN now defines a static function. To make the function external
20819 so that it can be used in other C modules, use the new macro DEFUE.
20820 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
20821 (Finit_image_library):
20822 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
20823 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
20824 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
20825 Remove decls, since these functions are now static.
20826 (Funintern, Fget_internal_run_time): New decls, since these functions
20827 were already external.
20828
20829 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
20830 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
20831 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
20832 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
20833 * keyboard.c, keymap.c, lread.c:
20834 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
20835 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
20836 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
20837 Mark functions with DEFUE instead of DEFUN,
20838 if they are used in other modules.
20839 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
20840 decls for now-static functions.
20841 * buffer.h (Fdelete_overlay): Remove decl.
20842 * callproc.c (Fgetenv_internal): Mark as internal.
20843 * composite.c (Fremove_list_of_text_properties): Remove decl.
20844 (Fcomposition_get_gstring): New forward static decl.
20845 * composite.h (Fcomposite_get_gstring): Remove decl.
20846 * dired.c (Ffile_attributes): New forward static decl.
20847 * doc.c (Fdocumntation_property): New forward static decl.
20848 * eval.c (Ffetch_bytecode): New forward static decl.
20849 (Funintern): Remove extern decl; now in .h file where it belongs.
20850 * fileio.c (Fmake_symbolic_link): New forward static decl.
20851 * image.c (Finit_image_library): New forward static decl.
20852 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
20853 * intervals.h (Fprevious_property_change):
20854 (Fremove_list_of_text_properties): Remove decls.
20855 * keyboard.c (Fthis_command_keys): Remove decl.
20856 (Fcommand_execute): New forward static decl.
20857 * keymap.c (Flookup_key): New forward static decl.
20858 (Fcopy_keymap): Now static.
20859 * keymap.h (Flookup_key): Remove decl.
20860 * process.c (Fget_process): New forward static decl.
20861 (Fprocess_datagram_address): Mark as internal.
20862 * syntax.c (Fsyntax_table_p): New forward static decl.
20863 (skip_chars): Remove duplicate decl.
20864 * textprop.c (Fprevious_property_change): New forward static decl.
20865 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
20866 Now internal.
20867 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
20868 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
20869
20870 * editfns.c (Fformat): Remove unreachable code.
20871
208722011-04-14 Andreas Schwab <schwab@linux-m68k.org>
20873
20874 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
20875 change. (Bug#8496)
20876
208772011-04-13 Eli Zaretskii <eliz@gnu.org>
20878
20879 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
20880 when at ZV. (Bug#8487)
20881
208822011-04-12 Andreas Schwab <schwab@linux-m68k.org>
20883
20884 * charset.c (Fclear_charset_maps): Use xfree instead of free.
20885 (Bug#8437)
20886 * keyboard.c (parse_tool_bar_item): Likewise.
20887 * sound.c (sound_cleanup, alsa_close): Likewise.
20888 * termcap.c (tgetent): Likewise.
20889 * xfns.c (x_default_font_parameter): Likewise.
20890 * xsettings.c (read_and_apply_settings): Likewise.
20891
20892 * alloc.c (overrun_check_malloc, overrun_check_realloc)
20893 (overrun_check_free): Protoize.
20894
208952011-04-12 Paul Eggert <eggert@cs.ucla.edu>
20896
20897 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
20898 since callers should never pass a negative size.
20899 Change the signature to match that of plain 'read' and 'write'; see
20900 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
20901 * lisp.h: Update prototypes of emacs_write and emacs_read.
20902
209032011-04-11 Eli Zaretskii <eliz@gnu.org>
20904
20905 * xdisp.c (redisplay_window): Don't try to determine the character
20906 position of the scroll margin if the window start point w->startp
20907 is outside the buffer's accessible region. (Bug#8468)
20908
209092011-04-10 Eli Zaretskii <eliz@gnu.org>
20910
20911 Fix write-region and its subroutines for buffers > 2GB.
20912 * fileio.c (a_write, e_write): Modify declaration of arguments and
20913 local variables to support buffers larger than 2GB.
20914 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
20915
20916 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
20917 argument, local variables, and return value.
20918
20919 * lisp.h: Update prototypes of emacs_write and emacs_read.
20920
20921 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
20922
209232011-04-10 Paul Eggert <eggert@cs.ucla.edu>
20924
20925 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
20926
20927 Fix more problems found by GCC 4.6.0's static checks.
20928
20929 * xdisp.c (vmessage): Use a better test for character truncation.
20930
20931 * charset.c (load_charset_map): <, not <=, for optimization,
20932 and to avoid potential problems with integer overflow.
20933 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
20934 * casetab.c (set_identity, shuffle): Likewise.
20935 * editfns.c (Fformat): Likewise.
20936 * syntax.c (skip_chars): Likewise.
20937
20938 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
20939 This also lets GCC 4.6.0 generate slightly better loop code.
20940
20941 * callint.c (Fcall_interactively): <, not <=, for optimization.
20942 (Fcall_interactively): Count the number of arguments produced,
20943 not the number of arguments given. This is simpler and lets GCC
20944 4.6.0 generate slightly better code.
20945
20946 * ftfont.c: Distingish more carefully between FcChar8 and char.
20947 The previous code passed unsigned char * to a functions like
20948 strlen and xstrcasecmp that expect char *, which does not
20949 conform to the C standard.
20950 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
20951 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
20952 char * when the C standard requires it.
20953
20954 * keyboard.c (read_char): Remove unused var.
20955
20956 * eval.c: Port to Windows vsnprintf (Bug#8435).
20957 Include <limits.h>.
20958 (SIZE_MAX): Define if the headers do not.
20959 (verror): Do not give up if vsnprintf returns a negative count.
20960 Instead, grow the buffer. This ports to Windows vsnprintf, which
20961 does not conform to C99. Problem reported by Eli Zaretskii.
20962 Also, simplify the allocation scheme, by avoiding the need for
20963 calling realloc, and removing the ALLOCATED variable.
20964
20965 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
20966
20967 Remove invocations of doprnt, as Emacs now uses vsnprintf.
20968 But keep the doprint source code for now, as we might revamp it
20969 and use it again (Bug#8435).
20970 * lisp.h (doprnt): Remove.
20971 * Makefile.in (base_obj): Remove doprnt.o.
20972 * deps.mk (doprnt.o): Remove.
20973
20974 error: Print 32- and 64-bit integers portably (Bug#8435).
20975 Without this change, on typical 64-bit hosts error ("...%d...", N)
20976 was used to print both 32- and 64-bit integers N, which relied on
20977 undefined behavior.
20978 * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro.
20979 * lisp.h (error, verror): Mark as printf-like functions.
20980 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
20981 Report overflow in size calculations when allocating printf buffer.
20982 Do not truncate output string at its first null byte.
20983 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
20984 Truncate the output at a character boundary, since vsnprintf does not
20985 do that.
20986 * charset.c (check_iso_charset_parameter): Convert internal
20987 character to string before calling 'error', since %c now has the
20988 printf meaning.
20989 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
20990 overflow when computing char to be passed to 'error'. Do not
20991 pass Lisp_Object to 'error'; pass the integer instead.
20992 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
20993 formatted with plain %d.
20994
20995 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
20996
20997 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
20998
20999 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
21000
21001 * xterm.c (x_catch_errors): Remove duplicate declaration.
21002
21003 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
21004
21005 * xdisp.c, lisp.h (message_nolog): Remove; unused.
21006
210072011-04-10 Jim Meyering <meyering@redhat.com>
21008
21009 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
21010 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
21011 return ssize_t not "int", and use size_t as the buffer length.
21012 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
21013 * gnutls.h: Update declarations.
21014 * process.c (read_process_output): Use ssize_t, to match.
21015 (send_process): Likewise.
21016
210172011-04-09 Chong Yidong <cyd@stupidchicken.com>
21018
21019 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
21020
210212011-04-09 Chong Yidong <cyd@stupidchicken.com>
21022
21023 * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
21024 Use unsigned char, to match FcChar8 type definition.
21025
21026 * xterm.c (handle_one_xevent):
21027 * xmenu.c (create_and_show_popup_menu):
21028 * xselect.c (x_decline_selection_request)
21029 (x_reply_selection_request): Avoid type-punned deref of X events.
21030
210312011-04-09 Eli Zaretskii <eliz@gnu.org>
21032
21033 Fix some uses of `int' instead of EMACS_INT.
21034 * search.c (string_match_1, fast_string_match)
21035 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
21036 (scan_buffer, find_next_newline_no_quit)
21037 (find_before_next_newline, search_command, Freplace_match)
21038 (Fmatch_data): Make some `int' variables be EMACS_INT.
21039
21040 * xdisp.c (display_count_lines): 3rd argument and return value now
21041 EMACS_INT. All callers changed.
21042 (pint2hrstr): Last argument is now EMACS_INT.
21043
21044 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
21045 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
21046 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
21047 (decode_coding_utf_16, decode_coding_emacs_mule)
21048 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
21049 (decode_coding_ccl, decode_coding_charset)
21050 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
21051 (decode_coding_iso_2022, decode_coding_emacs_mule)
21052 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
21053 <char_offset, last_offset>: Declare EMACS_INT.
21054 (encode_coding_utf_8, encode_coding_utf_16)
21055 (encode_coding_emacs_mule, encode_invocation_designation)
21056 (encode_designation_at_bol, encode_coding_iso_2022)
21057 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
21058 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
21059 Declare EMACS_INT.
21060 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
21061 (encode_invocation_designation): Last argument P_NCHARS is now
21062 EMACS_INT.
21063 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
21064 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
21065
21066 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
21067 All users changed.
21068
21069 * ccl.c (Fccl_execute_on_string): Declare some variables
21070 EMACS_INT.
21071
210722011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
21073
21074 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
21075
210762011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
21077
21078 * process.c (Fformat_network_address): Doc fix.
21079
210802011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
21081
21082 * xml.c (parse_region): Avoid creating spurious whitespace nodes.
21083
210842011-04-08 Chong Yidong <cyd@stupidchicken.com>
21085
21086 * keyboard.c (read_char): Call Lisp function help-form-show,
21087 instead of using internal_with_output_to_temp_buffer.
21088 (Qhelp_form_show): New var.
21089 (syms_of_keyboard): Use DEFSYM macro.
21090
21091 * print.c (internal_with_output_to_temp_buffer): Function deleted.
21092
21093 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
21094
210952011-04-06 Chong Yidong <cyd@stupidchicken.com>
21096
21097 * process.c (Flist_processes): Remove to Lisp.
21098 (list_processes_1): Delete.
21099
211002011-04-06 Eli Zaretskii <eliz@gnu.org>
21101
21102 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
21103
21104 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
21105
211062011-04-06 Paul Eggert <eggert@cs.ucla.edu>
21107
21108 Fix more problems found by GCC 4.6.0's static checks.
21109
21110 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
21111
21112 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
21113
21114 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
21115
21116 * xdisp.c (vmessage): Mark as a printf-like function.
21117
21118 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
21119
21120 * sound.c (sound_warning): Don't crash if arg contains a printf format.
21121
21122 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
21123 printf-like functions.
21124 (tiff_load): Add casts to remove these marks before passing them
21125 to system-supplied API.
21126
21127 * eval.c (Fsignal): Remove excess argument to 'fatal'.
21128
21129 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
21130 This avoids several warnings with gcc -Wstrict-overflow.
21131 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
21132 directly, rather than having caller test rule sign. This avoids
21133 some unnecessary tests.
21134 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
21135 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
21136 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
21137
21138 * xfont.c (xfont_text_extents): Remove var that was set but not used.
21139 (xfont_open): Avoid unnecessary tests.
21140
21141 * composite.c (composition_gstring_put_cache): Use unsigned integer.
21142
21143 * composite.h, composite.c (composition_gstring_put_cache):
21144 Use EMACS_INT, not int, for length.
21145
21146 * composite.h (COMPOSITION_DECODE_REFS): New macro,
21147 breaking out part of COMPOSITION_DECODE_RULE.
21148 (COMPOSITION_DECODE_RULE): Use it.
21149 * composite.c (get_composition_id): Remove unused local vars,
21150 by using the new macro.
21151
21152 * textprop.c (set_text_properties_1): Change while to do-while,
21153 since the condition is always true at first.
21154
21155 * intervals.c (graft_intervals_into_buffer): Mark var as used.
21156 (interval_deletion_adjustment): Return unsigned value.
21157 All uses changed.
21158
21159 * process.c (list_processes_1, create_pty, read_process_output):
21160 (exec_sentinel): Remove vars that were set but not used.
21161 (create_pty): Remove unnecessary "volatile"s.
21162 (Fnetwork_interface_info): Avoid possibility of int overflow.
21163 (read_process_output): Do adaptive read buffering even if carryover.
21164 (read_process_output): Simplify nbytes computation if buffered.
21165
21166 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
21167
21168 * syntax.c (scan_words): Remove var that was set but not used.
21169 (update_syntax_table): Use unsigned instead of int.
21170
21171 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
21172 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
21173 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
21174
21175 * print.c (print_error_message): Avoid int overflow.
21176
21177 * font.c (font_list_entities): Redo for clarity,
21178 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
21179
21180 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
21181 (font_score): Avoid potential overflow in diff calculation.
21182
21183 * fns.c (substring_both): Remove var that is set but not used.
21184 (sxhash): Redo loop for clarity and to avoid wraparound warning.
21185
21186 * eval.c (funcall_lambda): Rename local to avoid shadowing.
21187
21188 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
21189 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
21190 can always succeed if overflow has undefined behavior.
21191
21192 * search.c (boyer_moore, wordify): Remove vars set but not used.
21193 (wordify): Omit three unnecessary tests.
21194
21195 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
21196 All callers changed. This avoids the need for an unused var.
21197
21198 * casefiddle.c (casify_region): Remove var that is set but not used.
21199
21200 * dired.c (file_name_completion): Remove var that is set but not used.
21201
21202 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
21203
21204 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
21205 (Finsert_file_contents): Remove unnecessary code checking fd.
21206
21207 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
21208 Check for integer overflow on size calculations.
21209
21210 * buffer.c (Fprevious_overlay_change): Remove var that is set
21211 but not used.
21212
21213 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
21214 Remove vars that are set but not used.
21215 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
21216 (timer_check_2): Mark vars as initialized.
21217
21218 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
21219
21220 * image.c (lookup_image): Remove var that is set but not used.
21221 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
21222
21223 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
21224 that are set but not used.
21225
21226 * xfns.c (make_invisible_cursor): Don't return garbage
21227 if XCreateBitmapFromData fails (Bug#8410).
21228
21229 * xselect.c (x_get_local_selection, x_handle_property_notify):
21230 Remove vars that are set but not used.
21231
21232 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
21233 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
21234
21235 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
21236 Remove var that is set but not used.
21237 (scroll_bar_windows_size): Now size_t, not int.
21238 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
21239 Check for overflow.
21240
21241 * xfaces.c (realize_named_face): Remove vars that are set but not used.
21242 (map_tty_color) [!defined MSDOS]: Likewise.
21243
21244 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
21245
21246 * coding.c: Remove vars that are set but not used.
21247 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
21248 All callers changed.
21249 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
21250 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
21251 (decode_coding_charset): Remove vars that are set but not used.
21252
21253 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
21254 that is set but not used.
21255
21256 * print.c (print_object): Remove var that is set but not used.
21257
21258 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
21259 The gnulib version avoids calling malloc in the usual case,
21260 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
21261 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
21262 * filelock.c (current_lock_owner): Likewise.
21263 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
21264 * sysdep.c: Include allocator.h, careadlinkat.h.
21265 (emacs_no_realloc_allocator): New static constant.
21266 (emacs_readlink): New function.
21267 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
21268 ../lib/careadlinkat.h.
21269
212702011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
21271
21272 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
21273 first non-nil return value).
21274
212752011-04-03 Jan Djärv <jan.h.d@swipnet.se>
21276
21277 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
21278 if not defined (Bug#8403).
21279
212802011-04-02 Juanma Barranquero <lekktu@gmail.com>
21281
21282 * xdisp.c (display_count_lines): Remove parameter `start',
21283 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
21284 (get_char_face_and_encoding): Remove parameter `multibyte_p',
21285 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
21286 (fill_stretch_glyph_string): Remove parameters `row' and `area',
21287 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
21288 and thereabouts. All callers changed.
21289 (get_per_char_metric): Remove parameter `f', unused since
21290 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
21291
212922011-04-02 Jim Meyering <meyering@redhat.com>
21293
21294 do not dereference NULL upon failed strdup
21295 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
21296 (ns_get_family): Likewise.
21297
212982011-04-02 Juanma Barranquero <lekktu@gmail.com>
21299
21300 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
21301
213022011-04-02 Jan Djärv <jan.h.d@swipnet.se>
21303
21304 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
21305 later (Bug#8403).
21306
213072011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
21308
21309 Add lexical binding.
21310
21311 * window.c (Ftemp_output_buffer_show): New fun.
21312 (Fsave_window_excursion):
21313 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
21314
21315 * lread.c (lisp_file_lexically_bound_p): New function.
21316 (Fload): Bind Qlexical_binding.
21317 (readevalloop): Remove `evalfun' arg.
21318 Bind Qinternal_interpreter_environment.
21319 (Feval_buffer): Bind Qlexical_binding.
21320 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
21321 Mark as dynamic.
21322 (syms_of_lread): Declare `lexical-binding'.
21323
21324 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
21325
21326 * keyboard.c (eval_dyn): New fun.
21327 (menu_item_eval_property): Use it.
21328
21329 * image.c (parse_image_spec): Use Ffunctionp.
21330
21331 * fns.c (concat, mapcar1): Accept byte-code-functions.
21332
21333 * eval.c (Fsetq): Handle lexical vars.
21334 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
21335 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
21336 (FletX, Flet): Obey lexical binding.
21337 (Fcommandp): Handle closures.
21338 (Feval): New `lexical' arg.
21339 (eval_sub): New function extracted from Feval. Use it almost
21340 everywhere where Feval was used. Look up vars in lexical env.
21341 Handle closures.
21342 (Ffunctionp): Move from subr.el.
21343 (Ffuncall): Handle closures.
21344 (apply_lambda): Remove `eval_flags'.
21345 (funcall_lambda): Handle closures and new byte-code-functions.
21346 (Fspecial_variable_p): New function.
21347 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
21348 but without exporting it to Lisp.
21349
21350 * doc.c (Fdocumentation, store_function_docstring):
21351 * data.c (Finteractive_form): Handle closures.
21352
21353 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
21354 interactive spec.
21355
21356 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
21357 New byte-codes.
21358 (exec_byte_code): New function extracted from Fbyte_code to handle new
21359 calling convention for byte-code-functions. Add new byte-codes.
21360
21361 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
21362
21363 * alloc.c (Fmake_symbol): Init new `declared_special' field.
21364
213652011-03-31 Juanma Barranquero <lekktu@gmail.com>
21366
21367 * xdisp.c (redisplay_internal): Fix prototype.
21368
213692011-03-31 Eli Zaretskii <eliz@gnu.org>
21370
21371 * xdisp.c (SCROLL_LIMIT): New macro.
21372 (try_scrolling): Use it when setting scroll_limit.
21373 Limit scrolling to 100 screen lines.
21374 (redisplay_window): Even when falling back on "recentering",
21375 position point in the window according to scroll-conservatively,
21376 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
21377
21378 (try_scrolling): When point is above the window, allow searching
21379 as far as scroll_max, or one screenful, to compute vertical
21380 distance from PT to the scroll margin position. This prevents
21381 try_scrolling from unnecessarily failing when
21382 scroll-conservatively is set to a value slightly larger than the
21383 window height. Clean up the case of PT below the margin at bottom
21384 of window: scroll_max can no longer be INT_MAX. When aggressive
21385 scrolling is in use, don't let point enter the opposite scroll
21386 margin as result of the scroll.
21387 (syms_of_xdisp) <scroll-conservatively>: Document the
21388 threshold of 100 lines for never-recentering scrolling.
21389
213902011-03-31 Juanma Barranquero <lekktu@gmail.com>
21391
21392 * dispextern.h (move_it_by_lines):
21393 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
21394 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
21395 (message_log_check_duplicate): Remove parameters `prev_bol' and
21396 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
21397 (redisplay_internal): Remove parameter `preserve_echo_area',
21398 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
21399
21400 * indent.c (Fvertical_motion):
21401 * window.c (window_scroll_pixel_based, Frecenter):
21402 Don't pass `need_y_p' to `move_it_by_lines'.
21403
214042011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
21405
21406 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
21407 steal a few bits to be more compact.
21408 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
21409 Remove unneeded casts.
21410
21411 * bytecode.c (Fbyte_code): CAR and CDR can GC.
21412
214132011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
21414
21415 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
21416 binding" message (bug#7967).
21417
214182011-03-30 Paul Eggert <eggert@cs.ucla.edu>
21419
21420 Fix more problems found by GCC 4.6.0's static checks.
21421
21422 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
21423 Remove unused local var.
21424
21425 * editfns.c (Fmessage_box): Remove unused local var.
21426
21427 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
21428 (note_mode_line_or_margin_highlight, note_mouse_highlight):
21429 Omit unused local vars.
21430 * window.c (shrink_windows): Omit unused local var.
21431 * menu.c (digest_single_submenu): Omit unused local var.
21432 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
21433 Omit unused local var.
21434
21435 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
21436 Don't assume string length fits in int.
21437 (keyremap_step, read_key_sequence): Use size_t for sizes.
21438 (read_key_sequence): Don't check last_real_key_start redundantly.
21439
21440 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
21441 instead of alloca (Bug#8344).
21442
21443 * eval.c (Fbacktrace): Don't assume nargs fits in int.
21444 (Fbacktrace_frame): Don't assume nframes fits in int.
21445
21446 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
21447
21448 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
21449 concerns.
21450
21451 * term.c (produce_glyphless_glyph): Remove unnecessary test.
21452
21453 * cm.c (calccost): Turn while-do into do-while, for clarity.
21454
21455 * keyboard.c (syms_of_keyboard): Use the same style as later
21456 in this function when indexing through an array. This also
21457 works around GCC bug 48267.
21458
21459 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
21460
21461 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
21462
21463 * chartab.c (sub_char_table_ref_and_range): Redo for slight
21464 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
21465
21466 * keyboard.c, keyboard.h (num_input_events): Now size_t.
21467 This avoids undefined behavior on integer overflow, and is a bit
21468 more convenient anyway since it is compared to a size_t variable.
21469
21470 Variadic C functions now count arguments with size_t, not int.
21471 This avoids an unnecessary limitation on 64-bit machines, which
21472 caused (substring ...) to crash on large vectors (Bug#8344).
21473 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
21474 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
21475 All variadic functions and their callers changed accordingly.
21476 (struct gcpro.nvars): Now size_t, not int. All uses changed.
21477 * data.c (arith_driver, float_arith_driver): Likewise.
21478 * editfns.c (general_insert_function): Likewise.
21479 * eval.c (struct backtrace.nargs, interactive_p)
21480 (internal_condition_case_n, run_hook_with_args, apply_lambda)
21481 (funcall_lambda, mark_backtrace): Likewise.
21482 * fns.c (concat): Likewise.
21483 * frame.c (x_set_frame_parameters): Likewise.
21484 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
21485 0 if not found, not -1. All callers changed.
21486
21487 * alloc.c (garbage_collect): Don't assume stack size fits in int.
21488 (stack_copy_size): Now size_t, not int.
21489 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
21490
214912011-03-28 Juanma Barranquero <lekktu@gmail.com>
21492
21493 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
21494 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
21495 All callers changed.
21496
21497 * lisp.h (multibyte_char_to_unibyte):
21498 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
21499 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
21500 * character.h (CHAR_TO_BYTE8):
21501 * cmds.c (internal_self_insert):
21502 * editfns.c (general_insert_function):
21503 * keymap.c (push_key_description):
21504 * search.c (Freplace_match):
21505 * xdisp.c (message_dolog, set_message_1): All callers changed.
21506
215072011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
21508
21509 * keyboard.c (safe_run_hook_funcall): New function.
21510 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
21511 don't set the hook to nil, but remove the offending function instead.
21512 (Qcommand_hook_internal): Remove, unused.
21513 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
21514 Vcommand_hook_internal.
21515
21516 * eval.c (enum run_hooks_condition): Remove.
21517 (funcall_nil, funcall_not): New functions.
21518 (run_hook_with_args): Call each function through a `funcall' argument.
21519 Remove `cond' argument, now redundant.
21520 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
21521 (Frun_hook_with_args_until_failure): Adjust accordingly.
21522 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
21523
215242011-03-28 Juanma Barranquero <lekktu@gmail.com>
21525
21526 * dispextern.h (string_buffer_position): Remove declaration.
21527
21528 * print.c (strout): Remove parameter `multibyte', unused since
21529 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
21530
21531 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
21532 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
21533 All callers changed.
21534
21535 * w32.c (_wsa_errlist): Use braces for struct initializers.
21536
21537 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
21538 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
21539 All callers changed.
21540 (string_buffer_position): Likewise. Also, make static (it's never
21541 used outside xdisp.c).
21542 (cursor_row_p): Remove parameter `w', unused since
21543 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
21544 (decode_mode_spec): Remove parameter `precision', introduced during
21545 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
21546 All callers changed.
21547
215482011-03-27 Jan Djärv <jan.h.d@swipnet.se>
21549
21550 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
21551
215522011-03-27 Anders Lindgren <andlind@gmail.com>
21553
21554 * nsterm.m (ns_menu_bar_is_hidden): New variable.
21555 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
21556 (ns_update_auto_hide_menu_bar): New functions.
21557 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
21558 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
21559 ns_constrain_all_frames.
21560 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
21561 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
21562
215632011-03-27 Jan Djärv <jan.h.d@swipnet.se>
21564
21565 * nsmenu.m (runDialogAt): Remove argument to timer_check.
21566
215672011-03-27 Glenn Morris <rgm@gnu.org>
21568
21569 * syssignal.h: Replace RETSIGTYPE with void.
21570 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
21571 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
21572 Replace SIGTYPE with void everywhere.
21573 * s/usg5-4-common.h (SIGTYPE): Remove definition.
21574 * s/template.h (SIGTYPE): Remove commented out definition.
21575
215762011-03-26 Eli Zaretskii <eliz@gnu.org>
21577
21578 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
21579 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
21580
215812011-03-26 Juanma Barranquero <lekktu@gmail.com>
21582
21583 * w32.c (read_unc_volume): Use parameter `henum', instead of
21584 global variable `wget_enum_handle'.
21585
21586 * keymap.c (describe_vector): Remove parameters `indices' and
21587 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
21588 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
21589
21590 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
21591
21592 * keyboard.c (timer_check): Remove parameter `do_it_now',
21593 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
21594 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
21595 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
21596
21597 * keyboard.c (read_char):
21598 * w32menu.c (w32_menu_display_help):
21599 * xmenu.c (show_help_event, menu_help_callback):
21600 Adjust calls to `show_help_echo'.
21601
21602 * gtkutil.c (xg_maybe_add_timer):
21603 * keyboard.c (readable_events):
21604 * process.c (wait_reading_process_output):
21605 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
21606
21607 * insdel.c (adjust_markers_gap_motion):
21608 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
21609 (gap_left, gap_right): Don't call it.
21610
216112011-03-25 Chong Yidong <cyd@stupidchicken.com>
21612
21613 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
21614 incurred during fontification.
21615
216162011-03-25 Juanma Barranquero <lekktu@gmail.com>
21617
21618 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
21619 (DEFVAR_PER_BUFFER): Don't pass it.
21620
21621 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
21622 (scrolling_window): Don't pass it.
21623
216242011-03-25 Juanma Barranquero <lekktu@gmail.com>
21625
21626 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
21627
21628 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
21629 and `suffix'.
21630 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
21631 of variables specific to SELinux and computation of `encoded_absname'.
21632
21633 * image.c (XPutPixel): Remove unused variable `height'.
21634
21635 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
21636
21637 * unexw32.c (get_section_info): Remove unused variable `section'.
21638
21639 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
21640 (system_process_attributes): Remove unused variable `sess'.
21641 (sys_read): Remove unused variable `err'.
21642
21643 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
21644 (w32_wnd_proc): Remove unused variable `isdead'.
21645 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
21646 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
21647 (x_create_tip_frame): Remove unused variable `tem'.
21648
21649 * w32inevt.c (w32_console_read_socket):
21650 Remove unused variable `no_events'.
21651
21652 * w32term.c (x_draw_composite_glyph_string_foreground):
21653 Remove unused variable `width'.
21654
216552011-03-24 Juanma Barranquero <lekktu@gmail.com>
21656
21657 * w32term.c (x_set_glyph_string_clipping):
21658 Don't pass uninitialized region to CombineRgn.
21659
216602011-03-23 Juanma Barranquero <lekktu@gmail.com>
21661
21662 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
21663 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
21664 (Fx_close_connection): Remove unused variable `i'.
21665
21666 * w32font.c (w32font_draw): Return number of glyphs.
21667 (w32font_open_internal): Remove unused variable `i'.
21668 (w32font_driver): Add missing initializer.
21669
21670 * w32menu.c (utf8to16): Remove unused variable `utf16'.
21671 (fill_in_menu): Remove unused variable `items_added'.
21672
21673 * w32term.c (last_mouse_press_frame): Remove static global variable.
21674 (w32_clip_to_row): Remove unused variable `f'.
21675 (x_delete_terminal): Remove unused variable `i'.
21676
21677 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
21678 (NOTHING): Remove unused static global variable.
21679 (uniscribe_check_otf): Remove unused variable `table'.
21680 (uniscribe_font_driver): Add missing initializers.
21681
216822011-03-23 Julien Danjou <julien@danjou.info>
21683
21684 * term.c (Fsuspend_tty, Fresume_tty):
21685 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
21686 * window.c (temp_output_buffer_show):
21687 * insdel.c (signal_before_change):
21688 * frame.c (Fhandle_switch_frame):
21689 * fileio.c (Fdo_auto_save):
21690 * emacs.c (Fkill_emacs):
21691 * editfns.c (save_excursion_restore):
21692 * cmds.c (internal_self_insert):
21693 * callint.c (Fcall_interactively):
21694 * buffer.c (Fkill_all_local_variables):
21695 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
21696 Use Frun_hooks.
21697 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
21698 unconditionally since it does the check itself.
21699
217002011-03-23 Paul Eggert <eggert@cs.ucla.edu>
21701
21702 Fix more problems found by GCC 4.5.2's static checks.
21703
21704 * coding.c (encode_coding_raw_text): Avoid unnecessary test
21705 the first time through the loop, since we know p0 < p1 then.
21706 This also avoids a gcc -Wstrict-overflow warning.
21707
21708 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
21709 leading to a memory leak, possible in functions like
21710 load_charset_map_from_file that can allocate an unbounded number
21711 of objects (Bug#8318).
21712
21713 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
21714 that could (at least in theory) be that large.
21715
21716 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
21717 This is less likely to overflow, and avoids undefined behavior if
21718 overflow does occur. All callers changed. Use strtoul to scan
21719 for the unsigned long integer.
21720 (pint2hrstr): Simplify and tune code slightly.
21721 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
21722
21723 * scroll.c (do_scrolling): Work around GCC bug 48228.
21724 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
21725
21726 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
21727 This also avoids a warning with gcc -Wstrict-overflow.
21728 (validate_x_resource_name): Simplify count usage.
21729 This also avoids a warning with gcc -Wstrict-overflow.
21730
21731 * fileio.c (Fcopy_file): Report error if fchown or fchmod
21732 fail (Bug#8306).
21733
21734 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
21735
21736 * process.c (Fmake_network_process): Use socklen_t, not int,
21737 where POSIX says socklen_t is required in portable programs.
21738 This fixes a porting bug on hosts like 64-bit HP-UX, where
21739 socklen_t is wider than int (Bug#8277).
21740 (Fmake_network_process, server_accept_connection):
21741 (wait_reading_process_output, read_process_output):
21742 Likewise. 9309 Likewise.
9310 * font.c (font_intern_prop): Likewise.
9311 * frame.c (x_set_alpha): Likewise.
9312 * gtkutil.c (get_utf8_string): Likewise.
9313 * indent.c (check_display_width): Likewise.
9314 * intervals.c (create_root_interval, rotate_right, rotate_left)
9315 (split_interval_right, split_interval_left)
9316 (adjust_intervals_for_insertion, delete_node)
9317 (interval_deletion_adjustment, adjust_intervals_for_deletion)
9318 (merge_interval_right, merge_interval_left, copy_intervals)
9319 (set_intervals_multibyte_1): Likewise.
9320 * keyboard.c (gobble_input, append_tool_bar_item): Likewise.
9321 * keymap.c (Fkey_description): Likewise.
9322 * lisp.h (FIXNUM_OVERFLOW_P, vcopy): Likewise.
9323 * lread.c (openp, read_integer, read1, string_to_number):
9324 Likewise.
9325 * menu.c (ensure_menu_items): Likewise.
9326 * minibuf.c (read_minibuf_noninteractive): Likewise.
9327 * print.c (printchar, strout): Likewise.
9328 * process.c (create_process, Faccept_process_output)
9329 (wait_reading_process_output, read_process_output, send_process)
9330 (wait_reading_process_output): Likewise.
9331 * profiler.c (make_log, handle_profiler_signal): Likewise.
9332 * regex.c (re_exec): Likewise.
9333 * regex.h: Likewise.
9334 * search.c (looking_at_1, Freplace_match): Likewise.
9335 * sysdep.c (get_child_status, procfs_ttyname)
9336 (procfs_get_total_memory): Likewise.
9337 * systime.h (EMACS_TIME_VALID_P): Likewise.
9338 * term.c (dissociate_if_controlling_tty): Likewise.
9339 * window.c (get_phys_cursor_glyph): Likewise.
9340 * xdisp.c (init_iterator, redisplay_internal, redisplay_window)
9341 (try_window_reusing_current_matrix, try_window_id, pint2hrstr):
9342 Likewise.
9343 * xfns.c (Fx_window_property): Likewise.
9344 * xmenu.c (set_frame_menubar): Likewise.
9345 * xselect.c (x_get_window_property, x_handle_dnd_message):
9346 Likewise.
9347 * xsmfns.c (smc_save_yourself_CB): Likewise.
9348 * xterm.c (x_scroll_bar_set_handle): Likewise.
9349
93502013-03-24 Dmitry Antipov <dmantipov@yandex.ru>
9351
9352 * xfaces.c (Finternal_face_x_get_resource): Allow 3rd (frame) argument
9353 to be optional or nil. Adjust comment and convert it to docstring.
9354 * xselect.c (Fx_send_client_event): Rename to Fx_send_client_message.
9355 * frame.c (display_x_get_resource, Fx_get_resource): Break long line.
9356
93572013-03-24 Paul Eggert <eggert@cs.ucla.edu>
9358
9359 Static checking by GCC 4.8-20130319.
9360 * image.c (gif_load): Assume pass < 3 to pacify GCC.
9361 * process.c (Fset_process_datagram_address)
9362 (Fmake_network_process): Check get_lisp_to_sockaddr_size return value.
9363 * xdisp.c (get_char_face_and_encoding):
9364 (get_glyph_face_and_encoding): Ensure that *CHAR2B is initialized.
9365 (get_glyph_face_and_encoding): Prepare face before possibly using it.
9366 (get_per_char_metric): Don't use CHAR2B if it might not be initialized.
9367
93682013-03-24 Ken Brown <kbrown@cornell.edu>
9369
9370 * w32fns.c (emacs_abort) [CYGWIN]: Define `_open' as a macro to
9371 fix compilation on 64-bit Cygwin, where underscores are not
9372 automatically prepended.
9373
9374 * w32term.c (w32_initialize): Silence compiler warning.
9375
93762013-03-23 Eli Zaretskii <eliz@gnu.org>
9377
9378 * w32term.c (w32fullscreen_hook): Use FRAME_NORMAL_WIDTH,
9379 FRAME_NORMAL_HEIGHT, and FRAME_PREV_FSMODE, instead of static
9380 variables, to save and restore frame dimensions.
9381 Use FRAME_NORMAL_LEFT and FRAME_NORMAL_TOP to restore frame position
9382 after returning from a 'fullscreen' configuration.
9383 use SendMessage instead of PostMessage to send the SC_RESTORE message,
9384 to avoid races between the main thread and the input thread.
9385
9386 * w32term.h (struct w32_output): New members normal_width,
9387 normal_height, normal_top, normal_left, and prev_fsmode.
9388 (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP)
9389 (FRAME_NORMAL_LEFT, FRAME_PREV_FSMODE): New macros to access these
9390 members of a frame.
9391
9392 * w32term.c (w32fullscreen_hook): Record last value of the frame's
9393 'fullscreen' parameter. Always record previous width and height
9394 of the frame, except when switching out of maximized modes, so
9395 that they could be restored correctly, instead of resetting to the
9396 default frame dimensions. Send SC_RESTORE command to the frame,
9397 unless we are going to send SC_MAXIMIZE, to restore the frame
9398 resize hints in the mouse pointer shown by the window manager.
9399 (Bug#14032)
9400
9401 * frame.c (get_frame_param): Now extern for WINDOWSNT as well.
9402
9403 * lisp.h (get_frame_param): Adjust conditions for prototype
9404 declaration.
9405
94062013-03-22 Ken Brown <kbrown@cornell.edu>
9407
9408 * unexcw.c: Drop unneeded inclusion of w32common.h.
9409 (report_sheap_usage): Declare.
9410 (read_exe_header): Add magic numbers for x86_64.
9411 (fixup_executable): Fix printf format specifier for unsigned long
9412 argument.
21743 9413
21744 * process.c: Rename or move locals to avoid shadowing. 94142013-03-22 Dmitry Antipov <dmantipov@yandex.ru>
21745 (list_processes_1, Fmake_network_process): 9415
21746 (read_process_output_error_handler, exec_sentinel_error_handler): 9416 * frame.h (struct frame): Put menu_bar_window under #ifdef
21747 Rename or move locals. 9417 because this member is not needed when X toolkit is in use.
21748 (Fmake_network_process): Define label "retry_connect" only if needed. 9418 (fset_menu_bar_window):
21749 (Fnetwork_interface_info): Fix pointer signedness. 9419 * dispnew.c (clear_current_matrices, clear_desired_matrices)
21750 (process_send_signal): Add cast to avoid pointer signedness problem. 9420 (free_glyphs, update_frame):
21751 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros. 9421 * xdisp.c (expose_frame): Likewise.
21752 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298). 9422 (display_menu_bar): Likewise. Remove redundant eassert.
21753 9423 * window.h (WINDOW_MENU_BAR_P): Always define to 0 if X
21754 Make tparam.h and terminfo.c consistent. 9424 toolkit is in use.
21755 * cm.c (tputs, tgoto, BC, UP): Remove extern decls. 9425
21756 Include tparam.h instead, since it declares them. 94262013-03-21 Paul Eggert <eggert@cs.ucla.edu>
21757 * cm.h (PC): Remove extern decl; tparam.h now does this. 9427
21758 * deps.mk (cm.o, terminfo.o): Depend on tparam.h. 9428 Use functions and constants to manipulate Lisp_Save_Value objects.
21759 * terminfo.c: Include tparam.h, to check interfaces. 9429 This replaces code that used macros and strings and token-pasting.
21760 (tparm): Make 1st arg a const pointer in decl. Put it at top level. 9430 The change makes the C source a bit easier to follow,
21761 (tparam): Adjust signature to match interface in tparam.h; 9431 and shrinks the Emacs executable a bit.
21762 this removes some undefined behavior. Check that outstring and len 9432 * alloc.c: Verify some properties of Lisp_Save_Value's representation.
21763 are zero, which they always are with Emacs. 9433 (make_save_value): Change 1st arg from string to enum. All callers
21764 * tparam.h (PC, BC, UP): New extern decls. 9434 changed.
21765 9435 (INTX): Remove.
21766 * xftfont.c (xftfont_shape): Now static, and defined only if needed. 9436 (mark_object): Use if, not #if, for GC_MARK_STACK.
21767 (xftfont_open): Rename locals to avoid shadowing. 9437 * lisp.h (SAVE_VALUEP, XSAVE_VALUE, XSAVE_POINTER, XSAVE_INTEGER)
21768 9438 (XSAVE_OBJECT): Now functions, not macros.
21769 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness. 9439 (STRING_BYTES_BOUND): Now just a macro, not a constant too;
21770 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed. 9440 the constant was never used.
21771 (OTF_TAG_SYM): Omit macro if not needed. 9441 (SAVE_SLOT_BITS, SAVE_VALUE_SLOTS, SAVE_TYPE_BITS, SAVE_TYPE_INT_INT)
21772 (ftfont_list): Remove unused local. 9442 (SAVE_TYPE_INT_INT_INT, SAVE_TYPE_OBJ_OBJ, SAVE_TYPE_OBJ_OBJ_OBJ)
21773 (get_adstyle_property, ftfont_pattern_entity): 9443 (SAVE_TYPE_OBJ_OBJ_OBJ_OBJ, SAVE_TYPE_PTR_INT, SAVE_TYPE_PTR_OBJ)
21774 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point): 9444 (SAVE_TYPE_PTR_PTR, SAVE_TYPE_PTR_PTR_OBJ, SAVE_TYPE_MEMORY):
21775 Rename locals to avoid shadowing. 9445 New constants.
21776 9446 (struct Lisp_Save_Value): Replace members area, type0, type1, type2,
21777 * xfont.c (xfont_list_family): Mark var as initialized. 9447 type3 with a single member save_type. All uses changed.
21778 9448 (save_type, set_save_pointer, set_save_integer): New functions.
21779 * xml.c (make_dom): Now static. 9449 * print.c (PRINTX): Remove.
21780 9450
21781 * composite.c (composition_compute_stop_pos): Rename local to 9451 * alloc.c: Remove redundant static declarations.
21782 avoid shadowing. 9452
21783 (composition_reseat_it): Remove unused locals. 94532013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
21784 (find_automatic_composition, composition_adjust_point): Likewise. 9454
21785 (composition_update_it): Mark var as initialized. 9455 * window.h (struct window): Convert left_col, top_line, total_lines
21786 (find_automatic_composition): Mark vars as initialized, 9456 and total_cols from Lisp_Objects to integers. Adjust comments.
21787 with a FIXME (Bug#8290). 9457 (wset_left_col, wset_top_line, wset_total_cols, wset_total_lines):
21788 9458 Remove.
21789 character.h: Rename locals to avoid shadowing. 9459 (WINDOW_TOTAL_COLS, WINDOW_TOTAL_LINES, WINDOW_LEFT_EDGE_COL)
21790 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE): 9460 (WINDOW_TOP_EDGE_LINE): Drop Lisp_Object to integer conversion.
21791 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE): 9461 * dispnew.c, frame.c, w32fns.c, window.c, xdisp.c, xfns.c:
21792 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS): 9462 Adjust users where appropriate.
21793 (BUF_DEC_POS): Be more systematic about renaming local temporaries 9463
21794 to avoid shadowing. 94642013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
21795 9465
21796 * textprop.c (property_change_between_p): Remove; unused. 9466 * frame.h (struct frame): Drop resx and resy because the same data is
21797 9467 available from window system-specific output context. Adjust users.
21798 * intervals.c (interval_start_pos): Now static. 9468 (default_pixels_per_inch_x, default_pixels_per_inch_y):
21799 9469 New functions to provide defaults when no window system available.
21800 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else". 9470 (FRAME_RES_X, FRAME_RES_Y): New macros.
21801 9471 (NUMVAL): Move from xdisp.c.
21802 * atimer.c (start_atimer, append_atimer_lists, set_alarm): 9472 * font.c (font_pixel_size, font_find_for_lface, font_open_for_lface)
21803 Rename locals to avoid shadowing. 9473 (Ffont_face_attributes, Fopen_font):
21804 9474 * image.c (gs_load):
21805 * sound.c (wav_play, au_play, Fplay_sound_internal): 9475 * w32font.c (fill_in_logfont):
21806 Fix pointer signedness. 9476 * xdisp.c (calc_pixel_width_or_height):
21807 (alsa_choose_format): Remove unused local var. 9477 * xfaces.c (Fx_family_fonts, set_lface_from_font): Use them.
21808 (wav_play): Initialize a variable to 0, to prevent undefined 9478 * xsettings.c (apply_xft_settings): Drop frame loop and adjust comment.
21809 behavior (Bug#8278).
21810
21811 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
21812
21813 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
21814
21815 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
21816 clobbering (Bug#8298).
21817 * sysdep.c (sys_subshell): Likewise.
21818 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
21819
21820 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
21821 This should get cleaned up, so that child_setup has the
21822 same signature on all platforms.
21823
21824 * callproc.c (call_process_cleanup): Now static.
21825 (relocate_fd): Rename locals to avoid shadowing.
21826
218272011-03-22 Chong Yidong <cyd@stupidchicken.com>
21828
21829 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
21830 not to be necessary, and produces flickering.
21831
218322011-03-20 Glenn Morris <rgm@gnu.org>
21833
21834 * config.in: Remove file.
21835
218362011-03-20 Juanma Barranquero <lekktu@gmail.com>
21837
21838 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
21839 are now in src/globals.h.
21840 (syms_of_minibuf): Remove spurious & from previous change.
21841
218422011-03-20 Leo Liu <sdl.web@gmail.com>
21843
21844 * minibuf.c (completing-read-function): New variable.
21845 (completing-read-default): Rename from completing-read.
21846 (completing-read): Call completing-read-function.
21847
218482011-03-19 Juanma Barranquero <lekktu@gmail.com>
21849
21850 * xfaces.c (Fx_load_color_file):
21851 Read color file from absolute filename (bug#8250).
21852
218532011-03-19 Juanma Barranquero <lekktu@gmail.com>
21854
21855 * makefile.w32-in: Update dependencies.
21856
218572011-03-17 Eli Zaretskii <eliz@gnu.org>
21858
21859 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
21860
218612011-03-17 Paul Eggert <eggert@cs.ucla.edu>
21862
21863 Fix more problems found by GCC 4.5.2's static checks.
21864
21865 * process.c (make_serial_process_unwind, send_process_trap):
21866 (sigchld_handler): Now static.
21867
21868 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
21869 That way, the code declares only the vars that it needs.
21870 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
21871 * s/cygwin.h (PTY_ITERATION): Likewise.
21872 * s/darwin.h (PTY_ITERATION): Likewise.
21873 * s/gnu-linux.h (PTY_ITERATION): Likewise.
21874
21875 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
21876 * process.c (allocate_pty): Don't declare stb unless it's needed.
21877
21878 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
21879 (CONSTANTLIM): Remove; unused.
21880 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
21881 Define only if needed.
21882
21883 * unexelf.c (unexec): Name an expression,
21884 to avoid gcc -Wbad-function-cast warning.
21885 Use a different way to cause a compilation error if anyone uses
21886 n rather than nn, a way that does not involve shadowing.
21887 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
21888
21889 * deps.mk (unexalpha.o): Remove; unused.
21890
21891 New file unexec.h, the (simple) interface for unexec (Bug#8267).
21892 * unexec.h: New file.
21893 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
21894 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
21895 Depend on unexec.h.
21896 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
21897 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
21898 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
21899 Change as necessary to match prototype in unexec.h.
21900
21901 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
21902 shadowing.
21903 (back_comment, skip_chars): Mark vars as initialized.
21904
21905 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
21906 Rename locals to avoid shadowing.
21907
21908 * lread.c (read1): Rewrite so as not to use empty "else".
21909 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
21910
21911 * print.c (Fredirect_debugging_output): Fix pointer signedess.
21912
21913 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
21914 warning when compiling print.c.
21915
21916 * font.c (font_unparse_fcname): Abort in an "impossible" situation
21917 instead of using an uninitialized var.
21918 (font_sort_entities): Mark var as initialized.
21919
21920 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
21921
21922 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
21923 pointers to constants.
21924 (font_parse_fcname): Remove unused vars.
21925 (font_delete_unmatched): Now static.
21926 (font_get_spec): Remove; unused.
21927 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
21928 (font_update_drivers, Ffont_get_glyphs, font_add_log):
21929 Rename or move locals to avoid shadowing.
21930
21931 * fns.c (require_nesting_list, require_unwind): Now static.
21932 (Ffillarray): Rename locals to avoid shadowing.
21933
21934 * floatfns.c (domain_error2): Define only if needed.
21935 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
21936
21937 * alloc.c (mark_backtrace): Move decl from here ...
21938 * lisp.h: ... to here, so that it can be checked.
21939
21940 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
21941 (Fdefvar): Rewrite so as not to use empty "else".
21942 (lisp_indirect_variable): Name an expression,
21943 to avoid gcc -Wbad-function-cast warning.
21944 (Fdefvar): Rename locals to avoid shadowing.
21945
21946 * callint.c (quotify_arg, quotify_args): Now static.
21947 (Fcall_interactively): Rename locals to avoid shadowing.
21948 Use const pointer when appropriate.
21949
21950 * lisp.h (get_system_name, get_operating_system_release):
21951 Move decls here, to check interfaces.
21952 * process.c (get_operating_system_release): Move decl to lisp.h.
21953 * xrdb.c (get_system_name): Likewise.
21954 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
21955 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
21956 some of which prompt warnings from gcc -Wbad-function-cast.
21957 (Fformat_time_string, Fencode_time, Finsert_char):
21958 (Ftranslate_region_internal, Fformat):
21959 Rename or remove local vars to avoid shadowing.
21960 (Ftranslate_region_internal): Mark var as initialized.
21961
21962 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
21963 avoid shadowing.
21964
21965 * lisp.h (eassert): Check that the argument compiles, even if
21966 ENABLE_CHECKING is not defined.
21967
21968 * data.c (Findirect_variable): Name an expression, to avoid
21969 gcc -Wbad-function-cast warning.
21970 (default_value, arithcompare, arith_driver, arith_error): Now static.
21971 (store_symval_forwarding): Rename local to avoid shadowing.
21972 (Fmake_variable_buffer_local, Fmake_local_variable):
21973 Mark variables as initialized.
21974 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
21975
21976 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
21977 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
21978 Rename locals to avoid shadowing.
21979 (mark_stack): Move local variables into the #ifdef region where
21980 they're used.
21981 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
21982 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
21983 needed otherwise.
21984 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
21985 (GC_STRING_CHARS): Remove; not used.
21986 (Fmemory_limit): Cast sbrk's returned value to char *.
21987
21988 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
21989 avoids undefined behavior in theory.
21990
21991 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
21992
21993 Use functions, not macros, for up- and down-casing (Bug#8254).
21994 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
21995 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
21996 to use the following functions instead of these macros.
21997 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
21998 EMACS_INT, since callers assume the returned value fits in int.
21999 (upcase1): Likewise, for UPCASE_TABLE.
22000 (uppercasep, lowercasep, upcase): New static inline functions.
22001 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
22002 the race-condition problem in the old DOWNCASE.
22003
22004 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
22005 Rename locals to avoid shadowing.
22006 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
22007 (regex_compile, re_search_2, re_match_2_internal):
22008 Remove unused local vars.
22009 (FREE_VAR): Rewrite so as not to use empty "else",
22010 which gcc can warn about.
22011 (regex_compile, re_match_2_internal): Mark locals as initialized.
22012 (RETALLOC_IF): Define only if needed.
22013 (WORDCHAR_P): Likewise. This one is never needed, but is used
22014 only in a comment talking about a compiler bug, so put inside
22015 the #if 0 of that comment.
22016 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
22017 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
22018 Remove; unused.
22019
22020 * search.c (boyer_moore): Rename locals to avoid shadowing.
22021 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
22022 (PREV_CHAR_BOUNDARY): Likewise.
22023
22024 * search.c (simple_search): Remove unused var.
22025
22026 * dired.c (compile_pattern): Move decl from here ...
22027 * lisp.h: ... to here, so that it can be checked.
22028 (struct re_registers): New forward decl.
22029 9479
22030 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing. 94802013-03-20 Kenichi Handa <handa@gnu.org>
22031 9481
22032 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width. 9482 * coding.c (syms_of_coding): Initialize disable_ascii_optimization
22033 All uses changed. 9483 to 1 (temporary workaround until a bug related to ASCII
22034 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion): 9484 optimization is fixed).
22035 Rename locals to avoid shadowing.
22036 (Fvertical_motion): Mark locals as initialized.
22037
22038 * casefiddle.c (casify_object, casify_region): Now static.
22039 (casify_region): Mark local as initialized.
22040
22041 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
22042
22043 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
22044 New macros, so that the caller can use some names other than
22045 gcpro1, gcpro2, etc.
22046 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
22047 of the new macros.
22048 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
22049 argument, for consistency with GCPRO2_VAR, etc: it is now the
22050 prefix of the variable, not the variable itself. All uses
22051 changed.
22052 * dired.c (directory_files_internal, file_name_completion):
22053 Rename locals to avoid shadowing.
22054
22055 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
22056 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
22057 dired.c's scmp function, had undefined behavior.
22058 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
22059 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
22060 * buffer.h: ... to here, because these macros use current_buffer,
22061 and the new implementation with inline functions needs to have
22062 current_buffer in scope now, rather than later when the macros
22063 are used.
22064 (downcase, upcase1): New static inline functions.
22065 (DOWNCASE, UPCASE1): Reimplement using these functions.
22066 This avoids undefined behavior in expressions like
22067 DOWNCASE (x) == DOWNCASE (y), which previously suffered
22068 from race conditions in accessing the global variables
22069 case_temp1 and case_temp2.
22070 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
22071 * lisp.h (case_temp1, case_temp2): Remove their decls.
22072 * character.h (ASCII_CHAR_P): Move from here ...
22073 * lisp.h: ... to here, so that the inline functions mentioned
22074 above can use them.
22075
22076 * dired.c (directory_files_internal_unwind): Now static.
22077
22078 * fileio.c (file_name_as_directory, directory_file_name):
22079 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
22080 Now static.
22081 (file_name_as_directory): Use const pointers when appropriate.
22082 (Fexpand_file_name): Likewise. In particular, newdir might
22083 point at constant storage, so make it a const pointer.
22084 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
22085 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
22086 signedness issues.
22087 (Fset_file_times, Finsert_file_contents, auto_save_error):
22088 Rename locals to avoid shadowing.
22089
22090 * minibuf.c (choose_minibuf_frame_1): Now static.
22091 (Ftry_completion, Fall_completions): Rename or remove locals
22092 to avoid shadowing.
22093
22094 * marker.c (bytepos_to_charpos): Remove; unused.
22095
22096 * lisp.h (verify_bytepos, count_markers): New decls,
22097 so that gcc does not warn that these functions aren't declared.
22098
22099 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
22100 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
22101 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
22102 (copy_text): Remove unused local var.
22103
22104 * filelock.c (within_one_second): Now static.
22105 (lock_file_1): Rename local to avoid shadowing.
22106
22107 * buffer.c (fix_overlays_before): Mark locals as initialized.
22108 (fix_start_end_in_overlays): Likewise. This function should be
22109 simplified by using pointers-to-pointers, but that's a different
22110 matter.
22111 (switch_to_buffer_1): Now static.
22112 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
22113 (report_overlay_modification): Rename locals to avoid shadowing.
22114
22115 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
22116 Fix pointer signedness issue.
22117 (sys_subshell): Mark local as volatile if checking for lint,
22118 to suppress a gcc -Wclobbered warning that does not seem to be right.
22119 (MAXPATHLEN): Define only if needed.
22120
22121 * process.c (serial_open, serial_configure): Move decls from here ...
22122 * systty.h: ... to here, so that they can be checked.
22123
22124 * fns.c (get_random, seed_random): Move extern decls from here ...
22125 * lisp.h: ... to here, so that they can be checked.
22126
22127 * sysdep.c (reset_io): Now static.
22128 (wait_for_termination_signal): Remove; unused.
22129
22130 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
22131 (copy_keymap_item, append_key, push_text_char_description):
22132 Now static.
22133 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
22134 (DENSE_TABLE_SIZE): Remove; unused.
22135 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
22136 (describe_map_tree):
22137 Rename locals to avoid shadowing.
22138
22139 * keyboard.c: Declare functions static if they are not used elsewhere.
22140 (echo_char, echo_dash, cmd_error, top_level_2):
22141 (poll_for_input, handle_async_input): Now static.
22142 (read_char, kbd_buffer_get_event, make_lispy_position):
22143 (make_lispy_event, make_lispy_movement, apply_modifiers):
22144 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
22145 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
22146 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
22147 (read_key_sequence, read_char): Mark locals as initialized.
22148 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
22149
22150 * keyboard.h (make_ctrl_char): New decl.
22151 (mark_kboards): Move decl here ...
22152 * alloc.c (mark_kboards): ... from here.
22153
22154 * lisp.h (force_auto_save_soon): New decl.
22155
22156 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
22157 (DEFINE_DUMMY_FUNCTION): New macro.
22158 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
22159 Use it.
22160 (main): Add casts to avoid warnings
22161 if GCC considers string literals to be constants.
22162 9485
22163 * lisp.h (fatal_error_signal): Add decl, since it's exported. 94862013-03-19 Dmitry Antipov <dmantipov@yandex.ru>
22164 9487
22165 * dbusbind.c: Pointer signedness fixes. 9488 * window.c (Fwindow_combination_limit, Fset_window_combination_limit):
22166 (xd_signature, xd_append_arg, xd_initialize): 9489 Signal error if window is not internal. Adjust docstring.
22167 (Fdbus_call_method, Fdbus_call_method_asynchronously): 9490 (delete_all_child_windows): Use combination_limit to save the buffer.
22168 (Fdbus_method_return_internal, Fdbus_method_error_internal): 9491 (Fset_window_configuration): Adjust accordingly.
22169 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service): 9492 * print.c (syms_of_print): Initialize debugging output not here...
22170 (Fdbus_register_signal): Use SSDATA when the context wants char *. 9493 (init_print_once): ...but in a new function here.
9494 * lisp.h (init_print_once): Add prototype.
9495 * emacs.c (main): Add call to init_print_once. Adjust comments.
22171 9496
22172 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning 94972013-03-18 Dmitry Antipov <dmantipov@yandex.ru>
22173 if GCC considers string literals to be constants.
22174 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
22175 9498
221762011-03-16 Stefan Monnier <monnier@iro.umontreal.ca> 9499 * window.c (window_resize_check, window_resize_apply)
9500 (window_from_coordinates, recombine_windows, set_window_buffer)
9501 (make_parent_window, Fwindow_resize_apply, resize_frame_windows)
9502 (Fsplit_window_internal, Fdelete_window_internal)
9503 (freeze_window_starts): Use bool for booleans.
9504 * window.h (window_frame_coordinates, resize_frame_windows)
9505 (freeze_window_starts, set_window_buffer): Adjust prototypes.
22177 9506
22178 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro. 95072013-03-17 Stefan Monnier <monnier@iro.umontreal.ca>
22179 (print_preprocess, print_object): New macro to fix last change.
22180 9508
22181 * print.c (print_preprocess): Don't forget font objects. 9509 * dispnew.c (bitch_at_user): Use `user-error'.
22182 9510
221832011-03-16 Juanma Barranquero <lekktu@gmail.com> 95112013-03-17 Ken Brown <kbrown@cornell.edu>
22184 9512
22185 * emacs.c (USAGE3): Doc fixes. 9513 * dispextern.h (RGB_PIXEL_COLOR): Move here from image.c. Use it
9514 as return type of image_background. (Bug#13981)
9515 * image.c (RGB_PIXEL_COLOR): Move to dispextern.h.
22186 9516
221872011-03-15 Andreas Schwab <schwab@linux-m68k.org> 95172013-03-16 Jan Djärv <jan.h.d@swipnet.se>
22188 9518
22189 * coding.c (detect_coding_iso_2022): Reorganize code to clarify 9519 * nsterm.m (updateFrameSize:): Change resize increments if needed.
22190 structure. 9520 (ns_select): Don't return with result uninitialized.
22191 9521
221922011-03-14 Juanma Barranquero <lekktu@gmail.com> 9522 * nsterm.h (EmacsSavePanel, EmacsOpenPanel): Add getFilename
9523 and getDirectory.
22193 9524
22194 * lisp.h (VWindow_system, Qfile_name_history): 9525 * nsfns.m (ns_filename_from_panel, ns_directory_from_panel):
22195 * keyboard.h (lispy_function_keys) [WINDOWSNT]: 9526 New functions.
22196 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height) 9527 (Fns_read_file_name): ret is BOOL. If ! dir_only_p, don't choose
22197 (w32_system_caret_x, w32_system_caret_y): Declare extern. 9528 directories. If filename is nil, get directory name (Bug#13932).
9529 Use getFilename and getDirectory.
9530 (getFilename, getDirectory): New methods for EmacsSavePanel and
9531 EmacsOpenPanel.
9532 (ok:): In EmacsOpenPanel, if we can't choose directories, just return.
9533
95342013-03-15 Paul Eggert <eggert@cs.ucla.edu>
9535
9536 * coding.c (decode_coding_gap): Fix typo caught by static checking.
9537
95382013-03-15 Kenichi Handa <handa@gnu.org>
9539
9540 * insdel.c (insert_from_gap): New arg text_at_gap_tail.
9541 (adjust_after_replace): Make it back to static. Delete the third
9542 arg text_at_gap_tail. Cancel the code for handling it.
9543
9544 * coding.h (struct coding_system): New member eol_seen.
9545
9546 * coding.c (detect_ascii): New function.
9547 (detect_coding): Set coding->head_ascii and coding->eol_seen only
9548 when the source bytes are actually scanned. On detecting for
9549 coding_category_utf_8_auto, call detect_ascii instead of scanning
9550 source bytes directly.
9551 (produce_chars): Call insert_from_gap with the new arg 0.
9552 (encode_coding): Likewise.
9553 (decode_coding_gap): Control ASCII optimization by the variable
9554 disable_ascii_optimization instead of #ifndef .. #endif.
9555 Deccode EOL format according to coding->eol_seen.
9556 (syms_of_coding): Declare disable-ascii-optimization as a Lisp
9557 variable.
22198 9558
22199 * w32select.c: Don't #include "keyboard.h". 9559 * lisp.h (adjust_after_replace): Cancel externing it.
22200 (run_protected): Add extern declaration for waiting_for_input. 9560 (insert_from_gap): Adjust prototype.
22201 9561
22202 * w32.c (Qlocal, noninteractive1, inhibit_window_system): 95622013-03-15 Eli Zaretskii <eliz@gnu.org>
22203 * w32console.c (detect_input_pending, read_input_pending)
22204 (encode_terminal_code):
22205 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
22206 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
22207 (w32_system_caret_y, Qfile_name_history):
22208 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
22209 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
22210 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
22211 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
22212 * w32proc.c (Qlocal, report_file_error):
22213 * w32term.c (Vwindow_system, updating_frame):
22214 * w32uniscribe.c (initialized, uniscribe_font_driver):
22215 Remove unneeded extern declarations.
22216 9563
222172011-03-14 Chong Yidong <cyd@stupidchicken.com> 9564 * w32term.c (w32fullscreen_hook): Swap FULLSCREEN_BOTH and
9565 FULLSCREEN_MAXIMIZED. (Bug#13935)
22218 9566
22219 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions. 95672013-03-15 Dmitry Antipov <dmantipov@yandex.ru>
22220 9568
222212011-03-13 Chong Yidong <cyd@stupidchicken.com> 9569 * region-cache.c (find_cache_boundary, move_cache_gap)
9570 (insert_cache_boundary, delete_cache_boundaries, set_cache_region):
9571 Simplify debugging check and convert to eassert. Adjust comment.
9572 (pp_cache): Put under ENABLE_CHECKING.
22222 9573
22223 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT) 95742013-03-14 Eli Zaretskii <eliz@gnu.org>
22224 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
22225 These macros can no longer be used for assignment.
22226 9575
22227 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): 9576 * w32term.c (w32_read_socket) <WM_WINDOWPOSCHANGED>: Remove old
22228 Assign struct members directly, instead of using BUF_BEGV etc. 9577 and incorrect code. Treat WM_WINDOWPOSCHANGED like WM_ACTIVATE
22229 (record_buffer_markers, fetch_buffer_markers): New functions for 9578 and WM_ACTIVATEAPP.
22230 recording and fetching special buffer markers. 9579 (w32fullscreen_hook): If the frame is visible, reset
22231 (set_buffer_internal_1, set_buffer_temp): Use them. 9580 f->want_fullscreen flag after changing the frame size. If the
22232 9581 frame is not visible, set f->want_fullscreen to FULLSCREEN_WAIT.
22233 * lread.c (unreadchar): Use SET_BUF_PT_BOTH. 9582 (Bug#13953)
22234
22235 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
22236
22237 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
22238 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
22239
22240 * xdisp.c (hscroll_window_tree):
22241 (reconsider_clip_changes): Use PT instead of BUF_PT.
22242 9583
222432011-03-13 Eli Zaretskii <eliz@gnu.org> 95842013-03-13 Daniel Colascione <dancol@dancol.org>
22244 9585
22245 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on 9586 * emacs.c (main): Call syms_of_cygw32 on CYGWIN non-NTGUI builds
22246 $(EMACS_ROOT)/lib/intprops.h. 9587 too so that these builds can use Cygwin's file conversion
9588 functions. (We've been building and linking cygw32.o all along
9589 and just not using it.)
22247 9590
222482011-03-13 Paul Eggert <eggert@cs.ucla.edu> 95912013-03-13 Paul Eggert <eggert@cs.ucla.edu>
22249 9592
22250 Fix more problems found by GCC 4.5.2's static checks. 9593 File synchronization fixes (Bug#13944).
9594 * Makefile.in (LIB_FDATASYNC): New macro.
9595 (LIBES): Use it.
9596 * conf_post.h (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed.
9597 * fileio.c (Fwrite_region, write_region_inhibit_fsync):
9598 Don't worry about HAVE_FSYNC, since a substitute fsync is
9599 available if the system lacks one.
9600 (Fwrite_regin): Retry fsync if interrupted.
22251 9601
22252 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char * 96022013-03-13 Eli Zaretskii <eliz@gnu.org>
22253 to unsigned char * to avoid compiler diagnostic.
22254 (xg_free_frame_widgets): Make it clear that a local variable is
22255 needed only if USE_GTK_TOOLTIP.
22256 (gdk_window_get_screen): Make it clear that this macro is needed
22257 only if USE_GTK_TOOLTIP.
22258 (int_gtk_range_get_value): New function, which avoids a diagnostic
22259 from gcc -Wbad-function-cast.
22260 (xg_set_toolkit_scroll_bar_thumb): Use it.
22261 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
22262 diagnostic from gcc -Wbad-function-cast.
22263 (get_utf8_string, xg_get_file_with_chooser):
22264 Rename locals to avoid shadowing.
22265 (create_dialog): Move locals to avoid shadowing.
22266 9603
22267 * xgselect.c (xg_select): Remove unused var. 9604 * w32term.c (w32_read_socket): If the Emacs frame is being
9605 activated, call w32fullscreen_hook, to make sure the new frame
9606 dimensions are in effect. (Bug#13937)
22268 9607
22269 * image.c (four_corners_best): Mark locals as initialized. 96082013-03-13 Dmitry Antipov <dmantipov@yandex.ru>
22270 (gif_load): Initialize transparent_p to zero (Bug#8238).
22271 Mark another local as initialized.
22272 (my_png_error, my_error_exit): Mark with NO_RETURN.
22273 9609
22274 * image.c (clear_image_cache): Now static. 9610 * xdisp.c (init_iterator): Simplify because both character and byte
22275 (DIM, HAVE_STDLIB_H_1): Remove unused macros. 9611 positions are either specified or -1. Add eassert. Adjust comment.
22276 (xpm_load): Redo to avoid "discards qualifiers" gcc warning. 9612 * window.c (Fscroll_other_window): Use SET_PT_BOTH because both
22277 (x_edge_detection): Remove unnecessary cast that 9613 character and byte positions can be obtained from marker.
22278 gcc -Wbad-function-cast diagnoses.
22279 (gif_load): Fix pointer signedness.
22280 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
22281 (jpeg_load, gif_load): Rename locals to avoid shadowing.
22282 9614
222832011-03-12 Paul Eggert <eggert@cs.ucla.edu> 96152013-03-13 Paul Eggert <eggert@cs.ucla.edu>
22284 9616
22285 Improve quality of tests for time stamp overflow. 9617 Static checking by Sun C 5.12.
22286 For example, without this patch (encode-time 0 0 0 1 1 9618 * alloc.c (buffer_memory_full) [REL_ALLOC]:
22287 1152921504606846976) returns the obviously-bogus value (-948597 9619 * bytecode.c (exec_byte_code):
22288 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly 9620 * dispnew.c (init_display):
22289 reports time overflow. See 9621 * eval.c (error):
22290 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>. 9622 * fileio.c (Fsubstitute_in_file_name):
22291 * deps.mk (editfns.o): Depend on ../lib/intprops.h. 9623 * keyboard.c (Fevent_convert_list):
22292 * editfns.c: Include limits.h and intprops.h. 9624 * keymap.c (Fsingle_key_description):
22293 (TIME_T_MIN, TIME_T_MAX): New macros. 9625 * term.c (maybe_fatal, fatal):
22294 (time_overflow): Move earlier, to before first use. 9626 * xfns.c (Fx_display_backing_store, Fx_display_visual_class):
22295 (hi_time, lo_time): New functions, for an accurate test for 9627 * xsmfns.c (Fhandle_save_session):
22296 out-of-range times. 9628 Omit unreachable code.
22297 (Fcurrent_time, Fget_internal_run_time, make_time): Use them. 9629 * keymap.c (map_keymap_char_table_item): Cast void * to
22298 (Fget_internal_run_time): Don't assume time_t fits in int. 9630 a function pointer type; the C Standard requires this.
22299 (make_time): Use list2 instead of Fcons twice. 9631
22300 (Fdecode_time): More accurate test for out-of-range times. 9632 * sysdep.c: Remove a use of BSD_SYSTEM, which I'm trying to phase out.
22301 (check_tm_member): New function. 9633 Include <sys/param.h> unconditionally, as that works elsewhere and
22302 (Fencode_time): Use it, to test for out-of-range times. 9634 is simpler here. Include <sys/sysctl.h> if DARWIN_OS ||
22303 (lisp_time_argument): Don't rely on undefined left-shift and 9635 __FreeBSD__, not if BSD_SYSTEM, since it's needed only for Darwin
22304 right-shift behavior when checking for time stamp overflow. 9636 and FreeBSD now.
22305 9637
22306 * editfns.c (time_overflow): New function, refactoring common code. 9638See ChangeLog.12 for earlier changes.
22307 (Fformat_time_string, Fdecode_time, Fencode_time):
22308 (Fcurrent_time_string): Use it.
22309
22310 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
22311 * dired.c (make_time): Move to ...
22312 * editfns.c (make_time): ... here.
22313 * systime.h: Note the move.
22314
223152011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
22316
22317 * fringe.c (update_window_fringes): Remove unused variables.
22318
22319 * unexmacosx.c (copy_data_segment): Also copy __got section.
22320 (Bug#8223)
22321
223222011-03-12 Eli Zaretskii <eliz@gnu.org>
22323
22324 * termcap.c [MSDOS]: Include "msdos.h".
22325 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
22326 Constify `char *' arguments and their references according to
22327 prototypes in tparam.h.
22328
22329 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
22330
22331 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
22332 Adapt all references accordingly.
22333
22334 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
22335
223362011-03-11 Tom Tromey <tromey@redhat.com>
22337
22338 * buffer.c (syms_of_buffer): Remove obsolete comment.
22339
223402011-03-11 Eli Zaretskii <eliz@gnu.org>
22341
22342 * termhooks.h (encode_terminal_code): Declare prototype.
22343
22344 * msdos.c (encode_terminal_code): Don't declare prototype.
22345
22346 * term.c (encode_terminal_code): Now external again, used by
22347 w32console.c and msdos.c.
22348
22349 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
22350 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
22351
223522011-03-11 Paul Eggert <eggert@cs.ucla.edu>
22353
22354 Fix some minor problems found by GCC 4.5.2's static checks.
22355
22356 * fringe.c (update_window_fringes): Mark locals as initialized
22357 (Bug#8227).
22358 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
22359
22360 * alloc.c (mark_fringe_data): Move decl from here ...
22361 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
22362 to check its interface.
22363 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
22364
22365 * fontset.c (free_realized_fontset): Now static.
22366 (Fset_fontset_font): Rename local to avoid shadowing.
22367 (fontset_font): Mark local as initialized.
22368 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
22369
22370 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
22371
22372 * xselect.c (x_disown_buffer_selections): Remove; not used.
22373 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
22374 (x_own_selection, Fx_disown_selection_internal): Rename locals
22375 to avoid shadowing.
22376 (x_handle_dnd_message): Remove local to avoid shadowing.
22377
22378 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
22379 so that the caller can use some name other than gcpro1.
22380 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
22381 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
22382 (Fx_backspace_delete_keys_p):
22383 Use them to avoid shadowing, and rename vars to avoid shadowing.
22384 (x_decode_color, x_set_name, x_window): Now static.
22385 (Fx_create_frame): Add braces to silence GCC warning.
22386 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
22387 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
22388 Remove unused locals.
22389 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
22390 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
22391 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
22392 macros.
22393
22394 * xterm.h (x_mouse_leave): New decl.
22395
22396 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
22397 Remove unused functions.
22398 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
22399 (x_calc_absolute_position): Now static.
22400 (XTread_socket): Don't define label "out" unless it's used.
22401 Don't declare local "event" unless it's used.
22402 (x_iconify_frame, x_free_frame_resources): Don't declare locals
22403 unless they are used.
22404 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
22405 (x_fatal_error_signal): Remove; not used.
22406 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
22407 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
22408 (x_error_catcher, x_connection_closed, x_error_handler):
22409 (x_error_quitter, xembed_send_message, x_iconify_frame):
22410 (my_log_handler): Rename locals to avoid shadowing.
22411 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
22412 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
22413
22414 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
22415 Rename or move locals to avoid shadowing.
22416 (tty_defined_color, merge_face_heights): Now static.
22417 (free_realized_faces_for_fontset): Remove; not used.
22418 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
22419 does not deduce is never used uninitialized.
22420 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
22421 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
22422
22423 * terminal.c (store_terminal_param): Now static.
22424
22425 * xmenu.c (menu_highlight_callback): Now static.
22426 (set_frame_menubar): Remove unused local.
22427 (xmenu_show): Rename parameter to avoid shadowing.
22428 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
22429 since they might point to immutable storage.
22430 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
22431 since it's unused otherwise.
22432
22433 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
22434 Add a FIXME, since the code still doesn't look right. (Bug#8215)
22435 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
22436 avoids a gcc -Wuninitialized diagnostic.
22437 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
22438 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
22439 does not deduce are never used uninitialized.
22440
22441 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
22442
22443 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
22444 * window.c (window_loop, size_window):
22445 (run_window_configuration_change_hook, enlarge_window): Likewise.
22446
22447 * window.c (display_buffer): Now static.
22448 (size_window): Mark variables that gcc -Wuninitialized
22449 does not deduce are never used uninitialized.
22450 * window.h (check_all_windows): New decl, to forestall
22451 gcc -Wmissing-prototypes diagnostic.
22452 * dispextern.h (bidi_dump_cached_states): Likewise.
22453
22454 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
22455 shadowing.
22456 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
22457 Include <limits.h>.
22458 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
22459 and to avoid gcc -Wuninitialized warning.
22460 (load_charset_map): Mark variables that gcc -Wuninitialized
22461 does not deduce are never used uninitialized.
22462 (load_charset): Abort instead of using uninitialized var (Bug#8229).
22463
22464 * coding.c (coding_set_source, coding_set_destination):
22465 Use "else { /* comment */ }" rather than "else /* comment */;"
22466 for clarity, and to avoid gcc -Wempty-body warning.
22467 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
22468 a block, when the outer 'i' will do.
22469 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
22470 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
22471 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
22472 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
22473 (Fdecode_sjis_char, Fdefine_coding_system_internal):
22474 Rename locals to avoid shadowing.
22475 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
22476 * coding.c (emacs_mule_char, encode_invocation_designation):
22477 Now static, since they're not used elsewhere.
22478 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
22479 (decode_coding_object, encode_coding_object, detect_coding_system):
22480 (decode_coding_emacs_mule): Mark variables that gcc
22481 -Wuninitialized does not deduce are never used uninitialized.
22482 (detect_coding_iso_2022): Initialize a local variable that might
22483 be used uninitialized. Leave a FIXME because it's not clear that
22484 this initialization is needed. (Bug#8211)
22485 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
22486 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
22487 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
22488 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
22489 Remove unused macros.
22490
22491 * category.c (hash_get_category_set): Remove unused local var.
22492 (copy_category_table): Now static, since it's not used elsewhere.
22493 * character.c (string_count_byte8): Likewise.
22494
22495 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
22496 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
22497
22498 * chartab.c (copy_sub_char_table): Now static, since it's not used
22499 elsewhere.
22500 (sub_char_table_ref_and_range, char_table_ref_and_range):
22501 Rename locals to avoid shadowing.
22502 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
22503
22504 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
22505 (BIDI_BOB): Remove unused macro.
22506
22507 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
22508 deduce are never used uninitialized.
22509 * term.c (encode_terminal_code): Likewise.
22510
22511 * term.c (encode_terminal_code): Now static. Remove unused local.
22512
22513 * tparam.h: New file.
22514 * term.c, tparam.h: Include it.
22515 * deps.mk (term.o, tparam.o): Depend on tparam.h.
22516 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
22517 Move these decls to tparam.h, and make them agree with what
22518 is actually in tparam.c. The previous trick of using incompatible
22519 decls in different modules does not conform to the C standard.
22520 All callers of tparam changed to use tparam's actual API.
22521 * tparam.c (tparam1, tparam, tgoto):
22522 Use const pointers where appropriate.
22523
22524 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
22525 * cm.h (struct cm): Likewise.
22526 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
22527 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
22528 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
22529 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
22530 (turn_on_face, init_tty): Likewise.
22531 * termchar.h (struct tty_display_info): Likewise.
22532
22533 * term.c (term_mouse_position): Rename local to avoid shadowing.
22534
22535 * alloc.c (mark_ttys): Move decl from here ...
22536 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
22537
225382011-03-11 Andreas Schwab <schwab@linux-m68k.org>
22539
22540 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
22541
225422011-03-09 Juanma Barranquero <lekktu@gmail.com>
22543
22544 * search.c (compile_pattern_1): Remove argument regp, unused since
22545 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
22546 (compile_pattern): Don't pass it.
22547
225482011-03-08 Jan Djärv <jan.h.d@swipnet.se>
22549
22550 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
22551 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
22552 for ! HAVE_GTK3.
22553 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
22554
22555 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
22556
22557 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
22558 gdk_window_get_screen, gdk_window_get_geometry,
22559 gdk_x11_window_lookup_for_display and GDK_KEY_g.
22560 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
22561 (xg_get_pixbuf_from_pixmap): New function.
22562 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
22563 to Pixmap, take frame as parameter, remove GdkColormap parameter.
22564 Call xg_get_pixbuf_from_pixmap instead of
22565 gdk_pixbuf_get_from_drawable.
22566 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
22567 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
22568 (xg_check_special_colors): Use GtkStyleContext and its functions
22569 for HAVE_GTK3.
22570 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
22571 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
22572 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
22573 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
22574 Call gtk_widget_get_preferred_size.
22575 (xg_frame_resized): gdk_window_get_geometry only takes 5
22576 parameters.
22577 (xg_win_to_widget, xg_event_is_for_menubar):
22578 Call gdk_x11_window_lookup_for_display.
22579 (xg_set_widget_bg): New function.
22580 (delete_cb): New function.
22581 (xg_create_frame_widgets): Connect delete-event to delete_cb.
22582 Call xg_set_widget_bg. Only set background pixmap for ! HAVE_GTK3
22583 (xg_set_background_color): Call xg_set_widget_bg.
22584 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
22585 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
22586 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
22587 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
22588 if ! HAVE_GTK3.
22589 (update_frame_tool_bar): Call gtk_widget_hide.
22590 (xg_initialize): Use GDK_KEY_g.
22591
22592 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
22593 if ! HAVE_GTK3
22594 (x_session_initialize): Call gdk_x11_set_sm_client_id.
22595
22596 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
22597 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
22598 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
22599
226002011-03-08 Juanma Barranquero <lekktu@gmail.com>
22601
22602 * w32xfns.c (select_palette): Check success of RealizePalette against
22603 GDI_ERROR, not zero.
22604
22605See ChangeLog.11 for earlier changes.
22606 9639
22607;; Local Variables: 9640;; Local Variables:
22608;; coding: utf-8 9641;; coding: utf-8
22609;; End: 9642;; End:
22610 9643
22611 Copyright (C) 2011-2013 Free Software Foundation, Inc. 9644 Copyright (C) 2011-2014 Free Software Foundation, Inc.
22612 9645
22613 This file is part of GNU Emacs. 9646 This file is part of GNU Emacs.
22614 9647