]> code.delx.au - gnu-emacs/blob - src/ChangeLog
Merge from emacs-24; up to 2012-12-22T02:59:08Z!cyd@gnu.org
[gnu-emacs] / src / ChangeLog
1 2013-02-22 Claudio Bley <claudio.bley@gmail.com>
2
3 * w32.c (emacs_gnutls_pull): Don't call 'select', and don't loop.
4 This avoids warning messages reported as part of Bug#13546.
5
6 2013-02-21 Ken Brown <kbrown@cornell.edu>
7
8 * sheap.c (report_sheap_usage): Fix arguments of message1_no_log.
9
10 2013-02-20 Stefan Monnier <monnier@iro.umontreal.ca>
11
12 * sheap.c (report_sheap_usage): Prefer message1_nolog.
13
14 * keyboard.c (Qcommand_execute): New var.
15 (command_loop_1, read_char): Use it.
16 (Fcommand_execute): Remove, replace by an Elisp implementation.
17 (syms_of_keyboard): Adjust accordingly.
18
19 2013-02-19 Daniel Colascione <dancol@dancol.org>
20
21 * sheap.c (report_sheap_usage): Use message, not message1, so
22 that we don't try to create a buffer while we're in the middle
23 of dumping Emacs. Explain why.
24
25 2013-02-20 Dmitry Antipov <dmantipov@yandex.ru>
26 * search.c (find_newline): Return byte position in bytepos.
27 Adjust comment.
28 (find_next_newline_no_quit, find_before_next_newline):
29 Add bytepos argument.
30 * lisp.h (find_newline, find_next_newline_no_quit)
31 (find_before_next_newline): Adjust prototypes.
32 * bidi.c (bidi_find_paragraph_start):
33 * editfns.c (Fconstrain_to_field, Fline_end_position):
34 * indent.c (compute_motion, vmotion):
35 * xdisp.c (back_to_previous_line_start, forward_to_next_line_start):
36 (get_visually_first_element, move_it_vertically_backward):
37 Adjust users and avoid calls to CHAR_TO_BYTE where appropriate.
38
39 2013-02-19 Eli Zaretskii <eliz@gnu.org>
40
41 * w32proc.c (new_child): Avoid leaking handles if the subprocess
42 resources were not orderly released.
43
44 2013-02-17 Eli Zaretskii <eliz@gnu.org>
45
46 * xdisp.c (x_draw_vertical_border): For a window that is neither
47 the leftmost nor the rightmost, redraw both the left and the right
48 vertical borders. (Bug#13723)
49
50 2013-02-17 Stefan Monnier <monnier@iro.umontreal.ca>
51
52 * xml.c (init_libxml2_functions):
53 * sound.c (sound_warning):
54 * sheap.c (report_sheap_usage):
55 * process.c (wait_reading_process_output):
56 * msdos.c (XMenuActivate):
57 * macros.c (Fstart_kbd_macro, Fend_kbd_macro):
58 * keyboard.c (top_level_1):
59 * editfns.c (Fmessage, Fmessage_box):
60 * callint.c (Fcall_interactively):
61 * fns.c (Fyes_or_no_p): Prefer `message1' over `message'.
62
63 2013-02-17 Jan Djärv <jan.h.d@swipnet.se>
64
65 * xterm.c (syms_of_xterm): Move scroll-bar-adjust-thumb-portion ...
66 * frame.c (syms_of_frame): ... to here.
67
68 2013-02-16 Eli Zaretskii <eliz@gnu.org>
69
70 * w32.c (sys_chown): Remove unused function.
71
72 * w32term.c <input_signal_count>: Declare 'volatile'
73 unconditionally. (Bug#9066)
74
75 * w32.c (set_errno): Reset h_errno and don't set it to any other
76 value. Set errno instead.
77 (check_errno): Reset h_errno.
78 (sys_socket, socket_to_fd, sys_bind, sys_connect)
79 (sys_gethostname, sys_getservbyname, sys_getpeername)
80 (sys_shutdown, sys_setsockopt, sys_listen, sys_getsockname)
81 (sys_accept, sys_recvfrom, sys_sendto, fcntl, sys_read): Don't set
82 h_errno.
83 (sys_gethostbyname): Set h_errno only errors detected.
84
85 2013-02-15 Paul Eggert <eggert@cs.ucla.edu>
86
87 * process.c (h_errno) [!HAVE_H_ERRNO]: Remove unused decl.
88
89 2013-02-15 Eli Zaretskii <eliz@gnu.org>
90
91 * keyboard.c (read_char): Fix calculation of auto-save time out
92 when auto-save-timeout is less than 4. (Bug#13720)
93
94 * w32proc.c (new_child): Free up to 2 slots of dead processes at a
95 time. Improve diagnostics in DebPrint. (Bug#13546)
96
97 * w32.c (sys_socket, sys_bind, sys_connect, sys_gethostname)
98 (sys_gethostbyname, sys_getservbyname, sys_getpeername)
99 (sys_shutdown, sys_setsockopt, sys_listen, sys_getsockname)
100 (sys_accept, sys_recvfrom, sys_sendto, fcntl): In case of failure,
101 make sure errno is set to an appropriate value. (Bug#13546)
102 (socket_to_fd): Add assertion against indexing fd_info[] with a
103 value that is out of bounds.
104 (sys_accept): If fd is negative, do not set up the child_process
105 structure for reading.
106
107 2013-02-15 Dmitry Antipov <dmantipov@yandex.ru>
108
109 * composite.c (fill_gstring_header): Remove useless prototype.
110 Break long line.
111 * lisp.h (message_dolog, compile_pattern): Adjust prototype.
112 * print.c (PRINTDECLARE, print_object):
113 * search.c (compile_pattern, fast_looking_at, search_buffer):
114 (simple_search, boyer_moore, Freplace_match):
115 * xdisp.c (c_string_pos, number_of_chars, message_dolog):
116 (get_overlay_arrow_glyph_row, display_mode_element):
117 (decode_mode_spec_coding, message3):
118 * xfaces.c (face_at_string_position): Use bool for booleans.
119 Adjust comments.
120
121 2013-02-15 Paul Eggert <eggert@cs.ucla.edu>
122
123 Fix AIX port (Bug#13650).
124 * lisp.h (XPNTR) [!USE_LSB_TAG && DATA_SEG_BITS]:
125 Fix bug introduced in 2012-07-27 change. DATA_SEG_BITS, if set,
126 was #undeffed earlier, so it cannot be used as a macro here.
127 Use the constant and not the macro.
128
129 2013-02-15 Eli Zaretskii <eliz@gnu.org>
130
131 * w32proc.c (new_child): If no vacant slots are found in
132 child_procs[], make another pass looking for slots whose process
133 has exited or died. (Bug#13546)
134
135 * w32.c (sys_pipe): When failing due to file descriptors above
136 MAXDESC, set errno to EMFILE.
137 (_sys_read_ahead): Update cp->status when failing to read serial
138 communications input, so that the status doesn't stay at
139 STATUS_READ_IN_PROGRESS. (Bug#13546)
140
141 2013-02-14 Jan Djärv <jan.h.d@swipnet.se>
142
143 * gtkutil.c (tb_size_cb): New function.
144 (xg_create_tool_bar): Connect size-allocate to tb_size_cb (Bug#13512).
145
146 2013-02-14 Stefan Monnier <monnier@iro.umontreal.ca>
147
148 * keyboard.c (active_maps): Fcurrent_active_maps expects a position, not
149 an event.
150
151 2013-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
152
153 * keyboard.c (syms_of_keyboard): Further tweaks of docstring.
154
155 2013-02-13 Dmitry Antipov <dmantipov@yandex.ru>
156
157 * font.c (font_range): Add pos_byte argument. Adjust comment
158 and break long line.
159 * font.h (font_range): Adjust prototype.
160 * composite.c (autocmp_chars): Pass byte position to font_range.
161 Break long line. Remove useless prototype and format comment.
162
163 2013-02-13 Glenn Morris <rgm@gnu.org>
164
165 * keyboard.c (input-decode-map, key-translation-map): Doc fixes.
166
167 2013-02-13 Paul Eggert <eggert@cs.ucla.edu>
168
169 Improve AIX port some more (Bug#13650).
170 With this, it should be as good as it was in 23.3, though it's
171 still pretty bad: the dumped emacs does not run. See Mark Fleishman in
172 http://lists.gnu.org/archive/html/help-gnu-emacs/2011-04/msg00287.html
173 * unexaix.c (start_of_text): Remove.
174 (_data, _text): Declare as char[], not int, as AIX manual suggests.
175 (bias, lnnoptr, text_scnptr, data_scnptr, load_scnptr)
176 (orig_load_scnptr, orig_data_scnptr):
177 Now off_t, not long, since they are file offsets.
178 (make_hdr): Use _data, not start_of_data ().
179 This is the key part of the fix.
180 (make_hdr, unrelocate_symbols): Use off_t for file offsets.
181 (unrelocate_symbols): Cast pointers to intptr_t, not to ulong.
182
183 * pre-crt0.c (data_start): Initialize to 1.
184 This ports to compilers that optimize the external declaration
185 'int x = 0;' as if it were 'int x;' to shrink the executable.
186
187 Improve AIX port (Bug#13650).
188 This doesn't fix the bug, but it makes progress: Emacs builds now.
189 * unexaix.c: Include inttypes.h, stdarg.h.
190 (report_error, report_error_1): Mark as _Noreturn.
191 (report_error): Don't report the wrong errno.
192 (report_error_1): Now varargs. All callers changed.
193 (make_hdr): Use uintptr_t, not unsigned, when converting pointers
194 to unsigned. Don't use ADDR_CORRECT, as it no longer exists.
195 (write_ptr): Use %p to print address rather than %lx and a cast
196 to unsigned long. Grow buffer a bit, to be safer.
197
198 2013-02-13 Eli Zaretskii <eliz@gnu.org>
199
200 * bidi.c (bidi_resolve_neutral): After finding the next
201 non-neutral character, accept NEUTRAL_ON type as well, because
202 directional control characters, such as LRE and RLE, have their
203 type converted to that by bidi_resolve_weak. This avoids aborts
204 when LRE/RLE follows a run of neutrals.
205 (bidi_move_to_visually_next): Assert that return value of
206 bidi_peek_at_next_level is non-negative. Negative values will
207 cause an infloop.
208
209 2013-02-13 Paul Eggert <eggert@cs.ucla.edu>
210
211 Minor getenv-related fixes.
212 * callproc.c (Fcall_process_region) [!DOS_NT]:
213 Avoid unnecessary duplicate call to getenv.
214 * callproc.c (init_callproc):
215 * dispnew.c (init_display):
216 * sysdep.c (sys_subshell):
217 Omit unnecessary cast of getenv or egetenv.
218
219 2013-02-13 Juanma Barranquero <lekktu@gmail.com>
220
221 * makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/sysdep.$(O)):
222 Update dependencies.
223
224 2013-02-12 Eli Zaretskii <eliz@gnu.org>
225
226 * xdisp.c (redisplay_internal): Don't set w->region_showing to the
227 marker's position.
228 (display_line): Set w->region_showing to the value of
229 it->region_beg_charpos, not to -1. This fixes redisplay
230 optimization when cursor is moved up after M->. (Bug#13623)
231 (Bug#13626)
232 (try_scrolling): Scroll text up more if point is too close to ZV
233 and inside the scroll margin. This makes sure point is moved
234 outside the scroll margin in these cases.
235
236 * window.h (struct window): region_showing can no longer be
237 negative.
238
239 2013-02-11 Paul Eggert <eggert@cs.ucla.edu>
240
241 Tune by using memchr and memrchr.
242 * doc.c (Fsnarf_documentation):
243 * fileio.c (Fsubstitute_in_file_name):
244 * search.c (find_newline, scan_newline):
245 * xdisp.c (pos_visible_p, display_count_lines):
246 Use memchr and memrchr rather than scanning byte-by-byte.
247 * search.c (find_newline): Rename from scan_buffer.
248 Omit first arg TARGET, as it's always '\n'. All callers changed.
249
250 Clean up read_key_sequence a tiny bit more.
251 * keyboard.c (read_char_x_menu_prompt) [HAVE_MENUS]:
252 (read_key_sequence): Remove unused locals.
253
254 2013-02-11 Stefan Monnier <monnier@iro.umontreal.ca>
255
256 Clean up read_key_sequence a bit; reread active keymaps after first event.
257 * keyboard.c (read_char, read_char_x_menu_prompt)
258 (read_char_minibuf_menu_prompt):
259 Replace nmaps+maps with a single `map' arg.
260 (follow_key): Operate on a single map.
261 (active_maps): New function.
262 (test_undefined): Also return true for nil bindings.
263 (read_key_sequence): Use active_maps to replace the arrays of keymaps with
264 a single (composed) keymap. Remember `first_event' to choose the right
265 set of active keymaps. Recompute the set of keymaps after receiving
266 the first event. Remove GOBBLE_FIRST_EVENT.
267 (syms_of_keyboard): Remove inhibit_local_menu_bar_menus.
268 * keyboard.h (read_char): Update declaration.
269 * lread.c (read_filtered_event): Adjust call to read_char.
270
271 2013-02-11 Eli Zaretskii <eliz@gnu.org>
272
273 * xdisp.c (move_it_vertically_backward, move_it_by_lines):
274 Don't use the limitation on backwards movement when lines are truncated
275 in the window. (Bug#13675)
276
277 2013-02-11 Dmitry Antipov <dmantipov@yandex.ru>
278
279 * marker.c (set_marker_internal): If desired position is passed
280 as a marker, avoid call to buf_charpos_to_bytepos.
281 * window.c (Fset_window_point): Omit redundant type checking.
282 (Fset_window_start): Likewise. Format comment.
283 (window_scroll_pixel_based): Use set_marker_restricted_both
284 with character and byte positions obtained from an iterator.
285 (Fset_window_configuration): Use set_marker_restricted_both.
286 * xdisp.c (message_dolog): Likewise.
287
288 2013-02-10 Eli Zaretskii <eliz@gnu.org>
289
290 * xdisp.c (move_it_vertically_backward, move_it_by_lines):
291 When text lines are longer than window's screen lines, don't move back
292 too far. This speeds up some redisplay operations. (Bug#13675)
293
294 2013-02-10 Dmitry Antipov <dmantipov@yandex.ru>
295
296 * syntax.c (scan_sexps_forward): Fix byte position calculation
297 Bug#13664 (a.k.a Bug#13667) introduced with 2013-02-08 change.
298
299 2013-02-10 Paul Eggert <eggert@cs.ucla.edu>
300
301 * fileio.c (Fexpand_file_name): Omit confusing pointer comparison
302 that was not needed.
303
304 2013-02-09 Paul Eggert <eggert@cs.ucla.edu>
305
306 Minor hashing refactoring.
307 * fns.c (SXHASH_REDUCE): Move to lisp.h.
308 (sxhash_float): Return EMACS_UINT, for consistency with the other
309 hash functions.
310 * lisp.h (INTMASK): Now a macro, since SXHASH_REDUCE is now a
311 non-static inline function and therefore can't use static vars.
312 (SXHASH_REDUCE): Move here from fns.c, and make it inline.
313 * profiler.c (hashfn_profiler): Use SXHASH_REDUCE, to be consistent
314 with the other hash functions.
315
316 2013-02-09 Eli Zaretskii <eliz@gnu.org>
317
318 * callproc.c (Fcall_process_region) [WINDOWSNT]: Make sure the
319 XXXXXX part of the temporary file pattern is not downcased even
320 when w32-downcase-file-names is non-nil. (Bug#13661)
321
322 * xdisp.c (decode_mode_spec): Remove handling of %t.
323
324 * msdos.c (careadlinkatcwd): Remove.
325
326 2013-02-08 Stefan Monnier <monnier@iro.umontreal.ca>
327
328 * lread.c (skip_dyn_bytes): New function (bug#12598).
329 (read1): Use it. Use getc instead of READCHAR to read bytes.
330 (load_each_byte): Remove. Update users.
331
332 2013-02-08 Dmitry Antipov <dmantipov@yandex.ru>
333
334 * search.c (scan_buffer): Calculate end byte position just once.
335 (scan_newline): Do not recalculate start_byte.
336 (search_command): Use eassert.
337 * syntax.c (struct lisp_parse_state): New member location_byte.
338 (scan_sexps_forward): Record from_byte and avoid redundant
339 character to byte position calculation ...
340 (Fparse_partial_sexp): ... here. Break too long line.
341
342 2013-02-08 Dmitry Antipov <dmantipov@yandex.ru>
343
344 * lisp.h (make_uninit_vector): New function.
345 * alloc.c (Fvector, Fmake_byte_code):
346 * ccl.c (Fregister_ccl_program):
347 * charset.c (Fdefine_charset_internal, define_charset_internal):
348 * coding.c (make_subsidiaries, Fdefine_coding_system_internal):
349 * composite.c (syms_of_composite):
350 * font.c (Fquery_font, Ffont_info, syms_of_font):
351 * fontset.c (FONT_DEF_NEW, Fset_fontset_font):
352 * ftfont.c (ftfont_shape_by_flt):
353 * indent.c (recompute_width_table):
354 * nsselect.m (clean_local_selection_data):
355 * syntax.c (init_syntax_once):
356 * w32unsubscribe.c (uniscribe_shape):
357 * window.c (Fcurrent_window_configuration):
358 * xfaces.c (Fx_family_fonts):
359 * xselect.c (selection_data_to_lisp_data): Use it.
360
361 2013-02-07 Dmitry Antipov <dmantipov@yandex.ru>
362
363 * coding.c (Fdefine_coding_system_internal): Use AREF where
364 argument is known to be a vector.
365 * fns.c (Flocale_info): Likewise for ASET.
366 * xselect.c (selection_data_to_lisp_data): Likewise for ASET.
367 * w32fns.c (w32_parse_hot_key): Likewise for ASIZE and AREF.
368
369 2013-02-05 Jan Djärv <jan.h.d@swipnet.se>
370
371 * nsmenu.m (update_frame_tool_bar): Check for negative tool bar
372 height.
373
374 * nsterm.h (HAVE_NATIVE_FS): Define if OSX => 10.7.
375 (EmacsView): Add fs_is_native, fsIsNative, isFullscreen and
376 updateCollectionBehaviour.
377
378 * nsterm.m (NEW_STYLE_FS): Remove.
379 (ns_last_use_native_fullscreen): New variable.
380 (x_make_frame_visible): Replace NEW_STYLE_FS with isFullscreen.
381 (x_set_window_size): Do not take title bar and tool bar into account
382 if isFullscreen returns YES.
383 (ns_fullscreen_hook): Replace NEW_STYLE_FS with isFullscreen.
384 (check_native_fs): New function.
385 (ns_select, ns_read_socket): Call check_native_fs if HAVE_NATIVE_FS.
386 (ns_term_init): Remove NEW_STYLE_FS.
387 (updateFrameSize:, windowWillResize:toSize:): Only adjust for title bar
388 and tool bar if isFullscreen returns NO.
389 (windowDidResize:): Replace NEW_STYLE_FS with fsIsNative.
390 (initFrameFromEmacs:): Initialize fs_is_native. Replace NEW_STYLE_FS
391 with HAVE_NATIVE_FS.
392 (window:willUseFullScreenPresentationOptions:): New method.
393 (windowDidEnterFullScreen:): Replace NEW_STYLE_FS with fsIsNative.
394 Hide toolbar if not enabled (Bug#13444).
395 (windowDidExitFullScreen:): Call updateCollectionBehaviour.
396 Restore tool bar if enabled, hide it otherwise (Bug#13444).
397 (fsIsNative, isFullscreen, updateCollectionBehaviour): New methods.
398 (toggleFullScreen:): If fs_is_native, call toggleFullScreen on
399 window. Do no set FRAME_EXTERNAL_TOOL_BAR (f) to 0.
400 Check FRAME_EXTERNAL_TOOL_BAR (f) before restoring
401 FRAME_TOOLBAR_HEIGHT (f). Call updateFrameSize when going non-fs.
402 (syms_of_nsterm): Add ns-use-native-fullscreen.
403
404 2013-02-04 Paul Eggert <eggert@cs.ucla.edu>
405
406 * fileio.c (Qchoose_write_coding_system): Now static.
407
408 2013-02-04 Eli Zaretskii <eliz@gnu.org>
409
410 * xdisp.c (window_buffer_changed): region_showing can be negative,
411 which still means region is being displayed.
412 (redisplay_internal): Resurrect code that forced redisplay of the
413 whole window when showing region and the mark has changed.
414 Record the new mark position to allow redisplay optimizations.
415 (display_line): If it->region_beg_charpos is non-zero, set the
416 window's region_showing member to -1. (Bug#13623) (Bug#13626)
417
418 * window.h (struct window) <region_showing>: Declare ptrdiff_t,
419 not bitfield of 1 bit.
420
421 2013-02-03 Daniel Colascione <dancol@dancol.org>
422
423 * emacs.c: Use execvp, not execv, when DAEMON_MUST_EXEC, so that
424 daemon mode works on cygw32 when Emacs is installed and not just
425 during development.
426
427 2013-02-02 Paul Eggert <eggert@cs.ucla.edu>
428
429 Avoid file time stamp bug on MS-Windows (Bug#13149).
430 * fileio.c (Fwrite_region): Don't use the heuristic on empty files,
431 as FAT32 doesn't update time stamps when truncating them.
432 Also, check that a file time stamp is not a multiple of 100 ns;
433 this should catch all instances of the problem on MS-Windows,
434 as its native file system resolution is 100 ns or worse, and
435 checking for a non-multiple of 100 ns should impose only a small
436 overhead on systems with ns resolution.
437
438 2013-02-02 Eli Zaretskii <eliz@gnu.org>
439
440 Avoid encoding file names on MS-Windows when they need to be run
441 through dostounix_filename.
442 * w32.c (normalize_filename): Accept an additional argument
443 MULTIBYTE; if non-zero, traverse the file name by bytes and don't
444 downcase it even if w32-downcase-file-names is non-nil.
445 (dostounix_filename): Accept an additional argument MULTIBYTE and
446 pass it to normalize_filename.
447 (emacs_root_dir): Adjust.
448
449 * msdos.h (dostounix_filename): Adjust prototype.
450
451 * w32.h (dostounix_filename): Adjust prototype.
452
453 * msdos.c (dostounix_filename): Accept an additional argument and
454 ignore it.
455 (init_environment): Adjust callers of dostounix_filename.
456
457 * fileio.c (Ffile_name_directory, file_name_as_directory)
458 (directory_file_name, Fexpand_file_name)
459 (Fsubstitute_in_file_name): [DOS_NT] Adjust call to
460 dostounix_filename.
461 [WINDOWSNT]: Downcase file names if w32-downcase-file-names is
462 non-nil.
463 (Fsubstitute_in_file_name): [DOS_NT] Don't downcase environment
464 variables, as egetenv is case-insensitive for DOS_NT.
465
466 * dired.c (file_name_completion): Don't call Fdirectory_file_name
467 with an encoded file name.
468
469 * w32proc.c (Fw32_short_file_name, Fw32_long_file_name):
470 Adjust calls to dostounix_filename.
471
472 * w32fns.c (Fx_file_dialog): Adjust call to dostounix_filename.
473
474 * unexw32.c (unexec): Adjust call to dostounix_filename.
475
476 * termcap.c (tgetent) [MSDOS]: Adjust call to dostounix_filename.
477
478 * emacs.c (decode_env_path) [DOS_NT]: Adjust call to
479 dostounix_filename.
480
481 * callproc.c (Fcall_process) [MSDOS]: Adjust call to
482 dostounix_filename.
483
484 * callproc.c (Fcall_process): Make sure program name in PATH and
485 new_argv[0] is encoded, if needed. Otherwise, un-encoded string
486 is passed to exec/spawnve, which fails unless the file-name
487 encoding is UTF-8.
488
489 * w32proc.c (sys_spawnve): Make sure escape_char is initialized,
490 even if w32-quote-process-args is nil.
491
492 2013-02-01 Paul Eggert <eggert@cs.ucla.edu>
493
494 Fix timestamp bug when write-region appends nothing (Bug#13149).
495 * fileio.c (Fwrite_region): When neither O_EXCL nor O_TRUNC is used,
496 the file's time stamp doesn't change if Emacs happens to write nothing
497 to the file, and on a buggy file system this could cause Emacs to
498 incorrectly infer that the file system doesn't have the bug.
499 Avoid this problem by inhibiting the inference in this case.
500
501 2013-02-01 Dmitry Antipov <dmantipov@yandex.ru>
502
503 * window.h (struct window): Convert base_line_number, base_line_pos
504 and column_number_displayed members from Lisp_Object to ptrdiff_t.
505 Convert region_showing member from Lisp_Object to bitfield.
506 Remove sequence_number member. Adjust comments.
507 * window.c (sequence_number): Remove.
508 (make_window): Initialize column_number_displayed.
509 * print.c (print_object): Follow the printed representation of
510 frames and print window pointer to distinguish between windows.
511 (adjust_window_count): Invalidate base_line_pos. Adjust comment.
512 * xdisp.c (wset_base_line_number, wset_base_line_pos)
513 (wset_column_number_displayed, wset_region_showing): Remove.
514 (window_buffer_changed, mode_line_update_needed, redisplay_internal)
515 (try_scrolling, try_cursor_movement, redisplay_window)
516 (try_window_reusing_current_matrix, try_window_id, display_line)
517 (display_mode_lines, decode_mode_spec): Adjust users.
518 * .gdbinit (pwinx): Do not print sequence_number.
519
520 2013-02-01 Paul Eggert <eggert@cs.ucla.edu>
521
522 Use fdopendir, fstatat and readlinkat, for efficiency (Bug#13539).
523 * conf_post.h (GNULIB_SUPPORT_ONLY_AT_FDCWD): Remove.
524 * dired.c: Include <fcntl.h>.
525 (open_directory): New function, which uses open and fdopendir
526 rather than opendir. DOS_NT platforms still use opendir, though.
527 (directory_files_internal, file_name_completion): Use it.
528 (file_attributes): New function, with most of the old Ffile_attributes.
529 (directory_files_internal, Ffile_attributes): Use it.
530 (file_attributes, file_name_completion_stat): First arg is now fd,
531 not dir name. All uses changed. Use fstatat rather than lstat +
532 stat.
533 (file_attributes): Use emacs_readlinkat rather than Ffile_symlink_p.
534 * fileio.c: Include <allocator.h>, <careadlinkat.h>.
535 (emacs_readlinkat): New function, with much of the old
536 Ffile_symlink_p, but with an fd argument for speed.
537 It uses readlinkat rather than careadlinkatcwd, so that it
538 need not assume the working directory.
539 (Ffile_symlink_p): Use it.
540 * filelock.c (current_lock_owner): Use emacs_readlinkat
541 rather than emacs_readlink.
542 * lisp.h (emacs_readlinkat): New decl.
543 (READLINK_BUFSIZE, emacs_readlink): Remove.
544 * sysdep.c: Do not include <allocator.h>, <careadlinkat.h>.
545 (emacs_norealloc_allocator, emacs_readlink): Remove.
546 This stuff is moved to fileio.c.
547 * w32.c (fstatat, readlinkat): New functions.
548 (careadlinkat): Don't check that fd == AT_FDCWD.
549 (careadlinkatcwd): Remove; no longer needed.
550
551 2013-01-31 Glenn Morris <rgm@gnu.org>
552
553 * fileio.c (choose_write_coding_system): Make it callable from Lisp.
554 (Fwrite_region): Update for new choose_write_coding_system args.
555 Move the last piece of choose_write_coding_system here. (Bug#13522)
556 (syms_of_fileio): Add choose-write-coding-system.
557
558 2013-01-30 Eli Zaretskii <eliz@gnu.org>
559
560 * w32.c (sys_open): Zero out the flags for the new file descriptor.
561 (sys_close): Zero out the flags for the file descriptor before
562 closing it. (Bug#13546)
563
564 * w32.c (parse_root, get_volume_info, readdir, read_unc_volume)
565 (logon_network_drive, stat_worker, symlink, chase_symlinks):
566 Use CharNextExA and CharPrevExA to iterate over file names encoded in
567 DBCS. (Bug#13553)
568
569 * w32.c (w32_get_long_filename, init_environment, readlink):
570 Support file names encoded in DBCS codepages.
571 (readlink): Use the current file-name-coding-system, not the ANSI
572 codepage, to decode and handle targets of symlinks.
573
574 2013-01-28 Eli Zaretskii <eliz@gnu.org>
575
576 * w32.c (opendir): Now accepts a 'const char *'.
577
578 2013-01-28 Dmitry Antipov <dmantipov@yandex.ru>
579
580 Remove obsolete redisplay code. See the discussion at
581 http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00576.html.
582 * dispnew.c (preemption_period, preemption_next_check): Remove.
583 (Vredisplay_preemption_period): Likewise.
584 (update_frame, update_single_window, update_window, update_frame_1):
585 Adjust users. Always assume that PERIODIC_PREEMPTION_CHECKING is not
586 used, following the 2012-06-22 change.
587
588 2013-01-25 Eli Zaretskii <eliz@gnu.org>
589
590 * w32notify.c (Fw32notify_add_watch): Doc fix. (Bug#13540)
591
592 2013-01-25 Dmitry Antipov <dmantipov@yandex.ru>
593
594 * font.c (num_fonts): Remove the leftover from old
595 debugging code. Adjust comment style here and there.
596 * insdel.c (insert_1): Remove.
597 * lisp.h (insert_1): Remove prototype.
598 * xdisp.c (message_dolog): Adjust users to call insert_1_both.
599
600 2013-01-25 Eli Zaretskii <eliz@gnu.org>
601
602 * w32.c (max_filename_mbslen): New function.
603 (normalize_filename, readdir): Use it to detect locales where ANSI
604 encoding of file names uses a double-byte character set (DBCS).
605 If a DBCS encoding is used, advance by characters using
606 CharNextExA, instead of incrementing a 'char *' pointer.
607 Use _mbslwr instead of _strlwr. (Bug#13515)
608
609 * w32heap.c (allocate_heap) [!_WIN64]: Decrease the initial
610 request of memory reservation to 1.7GB. (Bug#13065)
611
612 2013-01-25 Andreas Schwab <schwab@linux-m68k.org>
613
614 * coding.c (detect_coding_iso_2022): Move back mis-reordered code
615 at check_extra_latin label. (Bug#13505)
616
617 2013-01-24 Dmitry Antipov <dmantipov@yandex.ru>
618
619 * nsfont.m (ns_escape_name, ns_unescape_name, ns_registry_to_script):
620 Avoid redundant calls to strlen.
621
622 2013-01-24 Dmitry Antipov <dmantipov@yandex.ru>
623
624 Drop async_visible and async_iconified fields of struct frame.
625 This is possible because async input is gone; for details, see
626 http://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00734.html.
627 * frame.h (struct frame): Remove async_visible and async_iconified
628 members, convert garbaged to unsigned bitfield. Adjust comments.
629 (FRAME_SAMPLE_VISIBILITY): Remove. Adjust all users.
630 (SET_FRAME_VISIBLE, SET_FRAME_ICONIFIED): New macros.
631 * frame.c, gtkutil.c, term.c, w32fns.c, window.c, xdisp.c:
632 Consistently use SET_FRAME_VISIBLE, SET_FRAME_ICONIFIED,
633 FRAME_VISIBLE_P and FRAME_ICONIFIED_P macros where appropriate.
634 * w32term.c: Ditto.
635 (w32_read_socket): Save iconified state to generate DEICONIFY_EVENT
636 properly. Likewise for obscured.
637 * xterm.c: Ditto.
638 (handle_one_xevent): Save visible state to generate ICONIFY_EVENT
639 properly.
640 * nsterm.m: Ditto.
641 (windowDidDeminiaturize): Generate DEICONIFY_EVENT.
642
643 2013-01-24 Dmitry Antipov <dmantipov@yandex.ru>
644
645 * insdel.c (prepare_to_modify_buffer): Revert last change as suggested
646 in http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00555.html.
647
648 2013-01-23 Stefan Monnier <monnier@iro.umontreal.ca>
649
650 * xdisp.c (message2, message2_nolog): Remove functions.
651 (message3, message3_nolog): Extract nbytes and multibyteness directly
652 from the string. Change all callers.
653 (message3_nolog): Don't set message_enable_multibyte since set_message
654 will reset it anyway.
655 (message1, message1_nolog): Use message3.
656 (vmessage): Use a stack allocated buffer rather than f->message_buf.
657 (with_echo_area_buffer): Remove last two arguments. Update all callers.
658 (set_message): Drop all but the second arg, which has to be a string.
659 (set_message_1): Simplify now that we know that a1 is NULL and the
660 second arg is a string.
661 * frame.h (struct frame): Remove `message_buf' field.
662 Use glyphs_initialized_p instead.
663 (FRAME_MESSAGE_BUF): Remove macro.
664 * w16select.c (Fw16_set_clipboard_data): Prefer message3 to message2.
665 * lisp.h (message2, message2_nolog): Remove declarations.
666 (message3, message3_nolog): Update declarations.
667 * keyboard.c (read_char_minibuf_menu_text)
668 (read_char_minibuf_menu_width): Remove vars.
669 (read_char_minibuf_menu_prompt): Rewrite the menu's construction so as
670 to correctly handle multibyte strings.
671 * frame.c (delete_frame): Don't free message_buf any more.
672 * editfns.c (message_text, message_length): Remove vars.
673 (Fmessage_box): Don't copy the Lisp string's bytes any longer.
674 * fileio.c (auto_save_error): Use message3 instead of message2.
675 * dispnew.c (adjust_frame_message_buffer): Remove function.
676
677 2013-01-23 Eli Zaretskii <eliz@gnu.org>
678
679 * w32term.c (w32fullscreen_hook): Account correctly for the screen
680 real estate used for the tool bar and the menu bar.
681
682 2013-01-23 Dmitry Antipov <dmantipov@yandex.ru>
683
684 * insdel.c (prepare_to_modify_buffer): Force redisplay if
685 hidden buffer is prepared to modification (Bug#13164).
686
687 2013-01-22 Dmitry Antipov <dmantipov@yandex.ru>
688
689 * window.h (struct window): Change window_end_valid member from
690 Lisp_Object to a bitfield. Adjust comments.
691 (wset_window_end_valid): Remove.
692 * window.c (adjust_window_count): Clear window_end_valid.
693 (Fwindow_end): Adjust user. Remove ancient #if 0 code.
694 (Fwindow_line_height, set_window_buffer, Frecenter)
695 (Fsplit_window_internal, Fdelete_other_windows_internal)
696 (Fset_window_fringes, Fset_window_scroll_bars): Adjust users.
697 * dispnew.c (adjust_glyph_matrix, clear_window_matrices): Likewise.
698 * xdisp.c (check_window_end, reconsider_clip_changes)
699 (redisplay_internal, mark_window_display_accurate_1, redisplay_window)
700 (try_window, try_window_reusing_current_matrix, note_mouse_highlight)
701 (find_first_unchanged_at_end_row, try_window_id): Likewise.
702
703 2013-01-22 Dmitry Antipov <dmantipov@yandex.ru>
704
705 * xdisp.c (mark_window_display_accurate): Simplify the loop
706 assuming that the only one of vchild, hchild or buffer window
707 slots is non-nil. Call mark_window_display_accurate_1 for
708 the leaf windows only.
709 (mark_window_display_accurate_1): Always assume leaf window.
710 Adjust comment.
711
712 2013-01-22 Paul Eggert <eggert@cs.ucla.edu>
713
714 * emacs.c (Qkill_emacs_hook): Now static.
715
716 * fileio.c (Finsert_file_contents): Simplify.
717 Remove unnecessary assignments and tests.
718
719 2013-01-21 Eli Zaretskii <eliz@gnu.org>
720
721 * w32.c (acl_set_file): Don't test for errors unless
722 set_file_security returns FALSE. Avoids spurious errors when
723 saving files.
724
725 2013-01-21 Dmitry Antipov <dmantipov@yandex.ru>
726
727 * fileio.c (Finsert_file_contents): Revert code introduced at
728 2013-01-18 in favor of the simpler and generally better fix.
729 Save stack space by removing 'buffer' and reusing 'read_buf'
730 where appropriate.
731
732 2013-01-19 Paul Eggert <eggert@cs.ucla.edu>
733
734 * lisp.h (eabs): Define unconditionally (Bug#13419).
735 The old "#if !defined (eabs)" was an unnecessary revenant of back
736 when this macro was called "abs". Document 'eabs' better.
737
738 2013-01-19 Glenn Morris <rgm@gnu.org>
739
740 * fns.c (Frandom): Doc fix.
741
742 2013-01-19 Eli Zaretskii <eliz@gnu.org>
743
744 * editfns.c (get_pos_property): Use SAFE_ALLOCA_LISP, to avoid
745 segfault when there are lots of overlays.
746
747 * buffer.c (sort_overlays): Use SAFE_NALLOCA, to avoid segfault
748 when there are lots of overlays.
749 See http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00421.html
750 for the details and a way to reproduce.
751
752 2013-01-19 Paul Eggert <eggert@cs.ucla.edu>
753
754 * fileio.c: Use O_APPEND to append.
755 This corresponds better to the natural interpretation of "append",
756 and avoids the need to open the output file twice, or to invoke
757 lseek when APPEND is neither nil nor a number.
758 This relies on POSIX 1003.1-1988 or later, which is OK nowadays.
759 (Fwrite_region): Simplify. Use O_APPEND instead of opening the
760 file possibly twice, and lseeking to its end; this avoids the
761 need to lseek on non-regular files. Do not use O_EXCL and O_TRUNC
762 at the same time: the combination is never needed and apparently
763 it doesn't work with DOS_NT.
764
765 Fix size bug on DOS_NT introduced by CIFS workaround (Bug#13149).
766 * fileio.c (Fwrite_region): Use O_BINARY in checking code, too.
767
768 Allow floating-point file offsets.
769 Problem reported by Vitalie Spinu in
770 <http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00411.html>.
771 * fileio.c (emacs_lseek): Remove.
772 (file_offset): New function.
773 (Finsert_file_contents, Fwrite_region): Use it.
774
775 2013-01-19 Chong Yidong <cyd@gnu.org>
776
777 * emacs.c (Fkill_emacs): Set waiting_for_input to 0 to avoid
778 aborting on Fsignal (Bug#13289).
779
780 2013-01-19 Eli Zaretskii <eliz@gnu.org>
781
782 * w32.c (acl_set_file): Treat ERROR_ACCESS_DENIED from
783 set_file_security as failure due to insufficient privileges.
784 Reported by Fabrice Popineau <fabrice.popineau@supelec.fr>.
785 (fstat): Return owner and group like 'stat' and 'lstat' do.
786
787 2013-01-19 Paul Eggert <eggert@cs.ucla.edu>
788
789 Work around bug in CIFS and vboxsf file systems (Bug#13149).
790 The bug was observed on Ubuntu operating inside a virtual machine,
791 editing files mounted via CIFS or vboxsf from the MS Windows 7 host.
792 The workaround introduces a race condition on non-buggy hosts,
793 but it's an unlikely race and anyway there's a nearly identical
794 nearby race that can't be fixed.
795 * fileio.c (valid_timestamp_file_system, timestamp_file_system):
796 New static vars.
797 (Fwrite_region): Test for file system time stamp bug.
798 (init_fileio): New function.
799 * lisp.h (init_fileio): Declare it.
800 * emacs.c (main): Call it.
801
802 * fileio.c (Finsert_file_contents): Simplify new diagnostic
803 and make it more consistent with other stat-failure diagnostics.
804
805 2013-01-18 Dmitry Antipov <dmantipov@yandex.ru>
806
807 Fix crash when inserting data from non-regular files.
808 See http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00406.html
809 for the error description produced by valgrind.
810 * fileio.c (read_non_regular): Rename to read_contents.
811 Free Lisp_Save_Value object used to pass parameters.
812 (read_non_regular_quit): Rename to read_contents_quit.
813 (Finsert_file_contents): Redesign internal file reading loop to adjust
814 gap and end positions after each read and so help make_gap to work
815 properly. Do not signal an I/O error too early and so do not leave
816 not yet decoded characters in a buffer, which was the reason of
817 redisplay crash. Use list2 to build return value. Adjust comments.
818
819 2013-01-17 Paul Eggert <eggert@cs.ucla.edu>
820
821 Close a race when statting and reading files (Bug#13149).
822 * fileio.c (Finsert_file_contents): Use open+fstat, not stat+open.
823 This avoids a race if the file is renamed between stat and open.
824 This race is not the problem originally noted in Bug#13149;
825 see <http://bugs.gnu.org/13149#73> and later messages in the thread.
826
827 2013-01-17 Dmitry Antipov <dmantipov@yandex.ru>
828
829 * lisp.h (toplevel): Add comment about using Lisp_Save_Value
830 objects, related functions and macros.
831 (make_save_value): Adjust prototype.
832 (make_save_pointer): New prototype.
833 (SAFE_NALLOCA): Fix indentation. Use make_save_pointer.
834 (SAFE_ALLOCA_LISP): Adjust make_save_value usage.
835 * alloc.c (format_save_value): Rename to make_save_value.
836 (make_save_pointer): New function.
837 (record_xmalloc): Use make_save_pointer.
838 * dired.c, editfns.c, fileio.c, font.c, gtkutil.c, lread.c:
839 * nsmenu.m, nsterm.m, xfns.c, xmenu.c, xselect.c, keymap.c:
840 Change users of make_save_value to make_save_pointer.
841 Likewise for format_save_value and make_save_value.
842
843 2013-01-17 Dmitry Antipov <dmantipov@yandex.ru>
844
845 * buffer.h (NARROWED, BUF_NARROWED): Drop unused macros.
846 (DECODE_POSITION, BUFFER_CHECK_INDIRECTION): Fix indentation.
847 * buffer.c (toplevel, syms_of_buffer): Drop old commented-out
848 debugging stubs.
849
850 2013-01-15 Paul Eggert <eggert@cs.ucla.edu>
851
852 * alloc.c (free_save_value): Now static.
853
854 2013-01-15 Dmitry Antipov <dmantipov@yandex.ru>
855
856 * keymap.c (map_keymap_internal): Use format_save_value.
857 (map_keymap_char_table_item): Adjust accordingly.
858 * fileio.c (non_regular_fd, non_regular_inserted)
859 (non_regular_nbytes): Remove.
860 (Finsert_file_contents): Convert trytry to ptrdiff_t.
861 Use format_save_value to pass parameters to read_non_regular.
862 (read_non_regular): Use XSAVE_ macros to extract parameters.
863 Adjust comment.
864 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT && !USE_GTK]: Use
865 format_save_value.
866 (pop_down_menu) [!USE_X_TOOLKIT && !USE_GTK]: Adjust user.
867
868 2013-01-15 Dmitry Antipov <dmantipov@yandex.ru>
869
870 * lisp.h (XSAVE_POINTER, XSAVE_INTEGER): Change to allow
871 extraction from any Lisp_Save_Value slot. Add type checking.
872 * alloc.c, dired.c, editfns.c, fileio.c, ftfont.c, gtkutil.c:
873 * keymap.c, lread.c, nsterm.h, nsmenu.c, xfns.c, xmenu.c:
874 * xselect.c: All users changed.
875
876 2013-01-15 Dmitry Antipov <dmantipov@yandex.ru>
877
878 Some convenient bits to deal with Lisp_Save_Values.
879 * lisp.h (XSAVE_OBJECT): New macro to extract saved objects.
880 (allocate_misc): Remove prototype.
881 (format_save_value): New prototype.
882 * alloc.c (allocate_misc): Revert back to static.
883 (format_save_value): New function to build Lisp_Save_Value
884 object with the specified internal structure.
885 (make_save_value): Reimplement using format_save_value.
886 * editfns.c (save_excursion_save): Use format_save_value.
887 (save_excursion_restore): Use XSAVE_OBJECT.
888
889 2013-01-14 Paul Eggert <eggert@cs.ucla.edu>
890
891 Avoid needless casts with XSAVE_POINTER.
892 * alloc.c (mark_object) [GC_MARK_STACK]:
893 * dired.c (directory_files_internal_unwind):
894 * fileio.c (do_auto_save_unwind):
895 * gtkutil.c (pop_down_dialog):
896 * keymap.c (map_keymap_char_table_item):
897 * lread.c (load_unwind):
898 * nsmenu.m (pop_down_menu):
899 * print.c (print_object) [GC_MARK_STACK]:
900 * xfns.c (clean_up_file_dialog):
901 * xmenu.c (cleanup_widget_value_tree):
902 Omit casts between XSAVE_POINTER and a pointer type.
903
904 2013-01-14 Dmitry Antipov <dmantipov@yandex.ru>
905
906 Fix compilation with GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE.
907 * eval.c (eval_sub): Protect `form' from being GCed before its
908 car and cdr becomes protected with the backtrace entry.
909
910 2013-01-14 Dmitry Antipov <dmantipov@yandex.ru>
911
912 Make Lisp_Save_Value more versatile storage for up to four objects.
913 * lisp.h (toplevel): Enumeration to describe types of saved objects.
914 (struct Lisp_Save_Value): New layout. Adjust comments.
915 (XSAVE_POINTER): New macro.
916 (XSAVE_INTEGER): Likewise.
917 (allocate_misc): Add prototype.
918 (free_misc): Likewise.
919 * alloc.c (allocate_misc): Now global.
920 (free_misc): Likewise. Adjust comment.
921 (make_save_value): Use new Lisp_Save_Value layout. Adjust comment.
922 (free_save_value): Likewise.
923 (mark_object): Likewise.
924 * editfns.c (save_excursion_save): Pack everything within
925 Lisp_Save_Value and so avoid xmalloc.
926 (save_excursion_restore): Adjust to match new layout. Use free_misc
927 because we do not allocate extra memory any more. Add eassert.
928 * print.c (print_object): New code to print Lisp_Save_Value. Do not
929 rely on valid_lisp_object_p if !GC_MARK_STACK. Adjust comments.
930 * dired.c, fileio.c, font.c, ftfont.c, gtkutil.c, keymap.c,
931 * lread.c, nsmenu.m, nsterm.h, xfns.c, xmenu.c, xselect.c:
932 Use XSAVE_POINTER and XSAVE_INTEGER where appropriate.
933
934 2013-01-13 Jan Djärv <jan.h.d@swipnet.se>
935
936 * nsfont.m (LCD_SMOOTHING_MARGIN): New define.
937 (nsfont_draw): Remove disabling of LCD smoothing.
938 (ns_glyph_metrics): Add LCD_SMOOTHING_MARGIN to bearings to fix
939 Bug#11484 with LCD smoothing on.
940
941 2013-01-13 Paul Eggert <eggert@cs.ucla.edu>
942
943 Fix SIGDANGER handlers, for AIX (Bug#13408).
944 * sysdep.c.c (handle_danger_signal, deliver_danger_signal) [SIGDANGER]:
945 Move handlers here from emacs.c; they were out of place.
946
947 2013-01-11 Jan Djärv <jan.h.d@swipnet.se>
948
949 * xterm.c (syms_of_xterm): Adjust documentation for
950 scroll-bar-adjust-thumb-portion.
951
952 2012-12-31 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
953
954 * xterm.c (scroll-bar-adjust-thumb-portion): New variable to
955 determine whether scroll bar thumb size should be adjusted or
956 not. Use variable for MOTIF.
957
958 * gtkutil.c (scroll-bar-adjust-thumb-portion): Use variable for
959 GTK.
960
961 2013-01-13 Jan Djärv <jan.h.d@swipnet.se>
962
963 * nsterm.m (keyDown:): Set processingCompose to NO if an emacs key
964 event is generated.
965 (doCommandBySelector:): Set processingCompose to NO.
966
967 * nsfont.m (ns_findfonts): Add block/unblock_input calls.
968 Remove check for fkeys count > zero, block/unblock fixes the real bug.
969 (nsfont_list_family): Add block/unblock_input calls.
970 (nsfont_open): Move block_input earlier. Add unblock_input before early
971 return.
972 (nsfont_draw): Add block/unblock_input calls.
973
974 2013-01-12 Dmitry Antipov <dmantipov@yandex.ru>
975
976 * indent.c (Fvertical_motion): Remove now-incorrect GCPROs
977 for old_charpos and old_bytepos.
978
979 2013-01-12 Paul Eggert <eggert@cs.ucla.edu>
980
981 Fix bug with set-time-zone-rule and LOCALTIME_CACHE (Bug#13415).
982 * editfns.c (set_time_zone_rule) [LOCALTIME_CACHE]:
983 Clear tzvalbuf_in_environ if this workaround is in effect.
984 Problem and fix reported by Kazuhiro Ito.
985
986 2013-01-11 Aaron S. Hawley <Aaron.Hawley@vtinfo.com>
987
988 * insdel.c (Fcombine_after_change_execute, syms_of_insdel):
989 Fix ambiguous doc string cross-reference(s).
990
991 * keyboard.c (Fcommand_execute, syms_of_keyboard): Fix ambiguous
992 doc string cross-reference(s).
993
994 * window.c (Fwindow_point, syms_of_window): Fix ambiguous doc
995 string cross-reference(s).
996
997 2013-01-11 Dmitry Antipov <dmantipov@yandex.ru>
998
999 Avoid unnecessary byte position calculation for the gap movement.
1000 Since all users of move_gap do CHAR_TO_BYTE for other purposes
1001 anyway, all of them should use move_gap_both instead.
1002 * lisp.h (move_gap): Remove prototype.
1003 * insdel.c (move_gap): Remove.
1004 (move_gap_both): Add eassert.
1005 * editfns.c (Ftranspose_regions): Tweak to use move_gap_both.
1006 * xml.c (parse_region): Likewise.
1007
1008 2013-01-11 Paul Eggert <eggert@cs.ucla.edu>
1009
1010 emacsclient -t should not suspend Emacs server (Bug#13387)
1011 * lisp.h, sysdep.c (block_tty_out_signal, unblock_tty_out_signal):
1012 New functions.
1013 * term.c (init_tty): Use them instead of rolling our own code.
1014 * sysdep.c (tcsetpgrp_without_stopping): Likewise. Here, this
1015 switches from 'signal' to 'pthread_sigmask', which is safer in
1016 multithreaded applications.
1017 * term.c (Fresume_tty): Don't bother dissociating if O_IGNORE_CTTY,
1018 which has already arranged for that.
1019 (dissociate_if_controlling_tty): If setsid fails, fall back on TIOCNOTTY.
1020 This is the main part of the bug fix.
1021
1022 2013-01-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> (tiny change)
1023
1024 * gtkutil.c (xg_initialize): Add ifdef HAVE_FREETYPE around
1025 x_last_font_name (Bug#13403).
1026
1027 2013-01-10 Dmitry Antipov <dmantipov@yandex.ru>
1028
1029 Omit buffer_slot_type_mismatch and use generic predicates to enforce
1030 the type of per-buffer values where appropriate.
1031 * lisp.h (struct Lisp_Buffer_Objfwd): Rename slottype member to
1032 predicate, which is how it's really used now. Adjust comment.
1033 * buffer.h (buffer_slot_type_mismatch): Remove prototype.
1034 * buffer.c (buffer_slot_type_mismatch): Remove.
1035 (DEFVAR_PER_BUFFER, defvar_per_buffer): Rename type argument to
1036 predicate. Adjust comment.
1037 (syms_of_buffer): Use Qsymbolp for major-mode. Use Qintegerp for
1038 fill-column, left-margin, tab-width, buffer-saved-size,
1039 left-margin-width, right-margin-width, left-fringe-width,
1040 right-fringe-width, scroll-bar-width and buffer-display-count.
1041 Use Qstringp for default-directory, buffer-file-name,
1042 buffer-file-truename and buffer-auto-save-file-name. Use Qfloatp for
1043 scroll-up-aggressively and scroll-down-aggressively. Use Qnumberp for
1044 line-spacing.
1045 * data.c (store_symval_forwarding): Adjust to call the predicate.
1046
1047 2013-01-09 Juanma Barranquero <lekktu@gmail.com>
1048
1049 * w32.c (get_name_and_id, acl_set_file):
1050 * w32term.c (w32fullscreen_hook): Remove unused local variables.
1051
1052 2013-01-09 Dmitry Antipov <dmantipov@yandex.ru>
1053
1054 * lisp.h (make_gap_1): New prototype.
1055 * buffer.h (GAP_BYTES_DFL, GAP_BYTES_MIN): New macros for the special
1056 gap size values.
1057 * editfns.c (Fbuffer_size): Rename from Fbufsize to fit the common
1058 naming convention.
1059 (syms_of_editfns): Adjust defsubr. Drop commented-out obsolete code.
1060 * insdel.c (make_gap_larger): Use GAP_BYTES_DFL. Adjust comment.
1061 (make_gap_smaller): Use GAP_BYTES_MIN. Adjust comment.
1062 (make_gap_1): New function to adjust the gap of any buffer.
1063 * coding.c (coding_alloc_by_making_gap): Use it.
1064 * buffer.c (compact_buffer): Likewise. Use BUF_Z_BYTE, BUF_GAP_SIZE,
1065 GAP_BYTES_DFL and GAP_BYTES_MIN. Adjust comment.
1066
1067 2013-01-08 Juri Linkov <juri@jurta.org>
1068
1069 * xfaces.c (tty_supports_face_attributes_p): Return 0 for the case
1070 of (supports :underline (:style wave)). (Bug#13000)
1071
1072 2013-01-08 Aaron S. Hawley <aaron.s.hawley@gmail.com>
1073
1074 * undo.c (Fprimitive_undo): Move to simple.el.
1075 (syms_of_undo): Remove declarations for Sprimitive_undo.
1076
1077 2013-01-08 Stefan Monnier <monnier@iro.umontreal.ca>
1078
1079 * keyboard.c (echo_add_key): Rename from echo_add_char.
1080
1081 2013-01-06 Chong Yidong <cyd@gnu.org>
1082
1083 * keyboard.c (echo_add_char): New function, factored out from
1084 echo_char. Don't add a space if the previous echo string was
1085 empty (Bug#13255).
1086 (echo_char): Use it.
1087 (read_key_sequence): When echoing mock input, ensure that the
1088 trailing dash is properly added.
1089
1090 2013-01-05 Eli Zaretskii <eliz@gnu.org>
1091
1092 * xdisp.c (dump_glyph): Align glyph data better. Use "pD" instead
1093 of a non-portable "t" to print ptrdiff_t values. Allow up to 9
1094 digits for buffer positions, before misalignment starts.
1095 Display "0" for integer "object" field.
1096 (dump_glyph_row): Adapt the header line to changes in dump_glyph.
1097 Display the newline glyph more unambiguously.
1098
1099 2013-01-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
1100
1101 * nsterm.m (ns_draw_underwave):
1102 * w32term.c (w32_draw_underwave):
1103 * xterm.c (x_draw_underwave): Make underwave look more triangular
1104 and also degrade gracefully for small fonts. (Bug#13000)
1105
1106 * nsterm.m (ns_draw_text_decoration):
1107 * w32term.c (x_draw_glyph_string):
1108 * xterm.c (x_draw_glyph_string): Don't use previous underline
1109 thickness and position if previous underline type is underwave.
1110
1111 2013-01-04 Stefan Monnier <monnier@iro.umontreal.ca>
1112
1113 * fileio.c (Ffile_acl): Undocument return format.
1114
1115 2013-01-02 Glenn Morris <rgm@gnu.org>
1116
1117 * keymap.c (Fkey_description): Doc fix. (Bug#13323)
1118
1119 2013-01-02 Paul Eggert <eggert@cs.ucla.edu>
1120
1121 Simplify via eabs.
1122 * dired.c (file_name_completion):
1123 * doc.c (get_doc_string):
1124 * floatfns.c (round2):
1125 * font.c (font_score, font_delete_unmatched):
1126 * fringe.c (compute_fringe_widths):
1127 * lread.c (read_list):
1128 * minibuf.c (Ftry_completion):
1129 * term.c (tty_ins_del_lines):
1130 * xterm.c (x_draw_image_foreground, x_draw_image_foreground_1):
1131 Use eabs (x) rather than open-coding it as (x < 0 ? -x : x).
1132
1133 2012-12-31 Eli Zaretskii <eliz@gnu.org>
1134
1135 * w32.c (unsetenv): Set up the string passed to _putenv
1136 correctly.
1137 See http://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00863.html
1138 for the bug this caused.
1139
1140 2012-12-30 Paul Eggert <eggert@cs.ucla.edu>
1141
1142 * coding.c (Qmac): Now static.
1143
1144 2012-12-30 Jan Djärv <jan.h.d@swipnet.se>
1145
1146 * gtkutil.c (TOOLBAR_TOP_WIDGET): New macro.
1147 (xg_pack_tool_bar): Use TOOLBAR_TOP_WIDGET, condition out use of
1148 handlebox_widget. Set toolbar_in_hbox to false/true, set
1149 toolbar_is_packed to true.
1150 (xg_update_tool_bar_sizes): Use widget returned by TOOLBAR_TOP_WIDGET.
1151 (update_frame_tool_bar): Check toolbar_is_packed for packing.
1152 Show all on TOOLBAR_TOP_WIDGET.
1153 (free_frame_tool_bar): Check toolbar_is_packed. Use widget returned
1154 by TOOLBAR_TOP_WIDGET.
1155 (xg_change_toolbar_position): Use widget returned by TOOLBAR_TOP_WIDGET.
1156 Check toolbar_is_packed.
1157 (xg_have_tear_offs, tearoff_remove, tearoff_activate): Condition on
1158 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
1159 (xg_have_tear_offs): When ! HAVE_GTK_TEAROFF_MENU_ITEM_NEW, return
1160 false.
1161 (create_menus): Create tearoff only if HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
1162 (xg_update_menubar): Update title only if
1163 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
1164 (xg_update_submenu): Skip tearoff only if
1165 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
1166 (xg_initialize): Initialize xg_detached_menus only if
1167 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
1168
1169 * xterm.h (struct x_output): Surround handlebox_widget with
1170 #ifdef HAVE_GTK_HANDLE_BOX_NEW. toolbar_is_packed is new,
1171 toolbar_in_hbox is bool.
1172
1173 2012-12-30 Andreas Schwab <schwab@linux-m68k.org>
1174
1175 * src/Makefile.in (TEMACS_LDFLAGS2): Remove.
1176 (LIBS_GNUSTEP): Define.
1177 (LIBES): Add $(LIBS_GNUSTEP).
1178 (temacs$(EXEEXT)): Use $(LDFLAGS) instead of $(TEMACS_LDFLAGS2).
1179
1180 2012-12-30 Eli Zaretskii <eliz@gnu.org>
1181
1182 * xdisp.c (set_cursor_from_row): Don't confuse a truncation or
1183 continuation glyph on a TTY with an indication of an empty line.
1184 (Bug#13277)
1185
1186 2012-12-29 Eli Zaretskii <eliz@gnu.org>
1187
1188 * fileio.c (Fset_file_selinux_context, Fset_file_acl): Return t if
1189 file's SELinux context or ACLs successfully set, nil otherwise.
1190 (Bug#13298)
1191 (Fcopy_file) [WINDOWSNT]: Improve diagnostics when CopyFile fails.
1192
1193 * w32proc.c (reader_thread): Avoid passing NULL handles to
1194 SetEvent and WaitForSingleObject.
1195
1196 2012-12-28 Paul Eggert <eggert@cs.ucla.edu>
1197
1198 Port EXTERNALLY_VISIBLE to Clang 3.2.
1199 * conf_post.h (__has_attribute): New macro.
1200 (EXTERNALLY_VISIBLE): Use it. This ports to Clang 3.2.
1201
1202 2012-12-27 Glenn Morris <rgm@gnu.org>
1203
1204 * cygw32.c (Fcygwin_convert_file_name_to_windows)
1205 (Fcygwin_convert_file_name_from_windows): Doc fixes.
1206
1207 2012-12-27 Eli Zaretskii <eliz@gnu.org>
1208
1209 * fileio.c (file_name_as_directory, directory_file_name):
1210 Accept an additional argument MULTIBYTE to indicate whether the input C
1211 came from a multibyte or a unibyte Lisp string; all callers
1212 adjusted. Don't assume the input string is always multibyte.
1213 (Bug#13262)
1214 (Ffile_name_directory) [DOS_NT]: Handle unibyte strings correctly:
1215 don't ENCODE_FILE them, and return a unibyte string if the input
1216 was unibyte.
1217 (Fexpand_file_name): Don't mix unibyte with multibyte strings, and
1218 don't assume the input strings will always be multibyte. If the
1219 input strings are multibyte, decode strings obtained from C
1220 library functions.
1221
1222 2012-12-26 Dmitry Antipov <dmantipov@yandex.ru>
1223
1224 * lisp.h (toplevel): Add two notices to the comment about
1225 defining a new Lisp data type.
1226 * print.c (print_object): If Lisp_Save_Value object's pointer
1227 is the address of a memory area containing Lisp_Objects, try
1228 to print them.
1229 * alloc.c (valid_lisp_object_p): Adjust comment.
1230
1231 2012-12-26 Dmitry Antipov <dmantipov@yandex.ru>
1232
1233 * keyboard.c (record_asynch_buffer_change): Initialize an event
1234 only if it's really needed.
1235 * frame.h (enum output_method): Remove output_mac member since
1236 it's a leftover from the deleted code.
1237 * frame.c (Fframep): Adjust user here ...
1238 * terminal.c (Fterminal_live_p): ... and here.
1239 * coding.c (Qmac): Now here because it's only used to denote
1240 end-of-line encoding type.
1241 (syms_of_coding): DEFSYM it.
1242 * frame.h (Qmac): Remove duplicated declaration.
1243
1244 2012-12-26 Paul Eggert <eggert@cs.ucla.edu>
1245
1246 * window.c (select_window_1): Now static, since it's used only here.
1247
1248 2012-12-25 Eli Zaretskii <eliz@gnu.org>
1249
1250 * window.c (window_body_cols): Subtract display margins from the
1251 window body width on TTYs as well. See
1252 http://lists.gnu.org/archive/html/help-gnu-emacs/2012-12/msg00317.html
1253 for the original report.
1254
1255 2012-12-25 Dmitry Antipov <dmantipov@yandex.ru>
1256
1257 * xdisp.c (redisplay_window): Remove inner local variable
1258 because the outer shadowed one has the same meaning.
1259 * xterm.h (struct x_output): Remove toolbar_detached member since it's
1260 set but never used.
1261 * gtkutil.c (xg_tool_bar_detach_callback, xg_tool_bar_attach_callback)
1262 (xg_create_tool_bar): Adjust users.
1263
1264 2012-12-24 Dmitry Antipov <dmantipov@yandex.ru>
1265
1266 * buffer.h (BUF_COMPACT): New macro to follow the common style.
1267 * buffer.c (Fget_buffer_create): Use it to set compact field of
1268 struct buffer_text to avoid accessing an uninitialized value
1269 when compact_buffer is called for the first time.
1270 (compact_buffer): Use convenient BUF_COMPACT and BUF_MODIFF.
1271 (Fset_buffer_modified_p): Use buffer_window_count to check
1272 whether the buffer is displayed in some window.
1273 * xdisp.c (message_dolog): Likewise.
1274
1275 2012-12-23 Eli Zaretskii <eliz@gnu.org>
1276
1277 * w32.c (acl_set_file): If setting the file security descriptor
1278 fails, and the new DACL is identical to the existing one, silently
1279 return success. This fixes problems for users backing up their
1280 own files without having the necessary privileges for setting
1281 security descriptors.
1282
1283 * w32proc.c (reader_thread): Do not index fd_info[] with negative
1284 values.
1285 (reader_thread): Exit when cp->status becomes STATUS_READ_ERROR
1286 after WaitForSingleObject returns normally. This expedites reader
1287 thread shutdown when delete_child triggers it.
1288 (reap_subprocess): More accurate commentary for why we call
1289 delete_child only when cp->fd is negative.
1290
1291 * w32.c (sys_close): Do not call delete_child on a subprocess
1292 whose handle is not yet closed. Instead, set its file descriptor
1293 to a negative value, so that reap_subprocess will call
1294 delete_child on that subprocess when its SIGCHLD arrives.
1295 This avoids closing handles used for communications between sys_select
1296 and reader_thread, which doesn't give sys_select a chance to
1297 notice that the process exited and invoke the SIGCHLD handler for
1298 it.
1299
1300 2012-12-23 Jan Djärv <jan.h.d@swipnet.se>
1301
1302 * nsfns.m (Fns_do_applescript): Run event loop until script has
1303 been executed (Bug#12969).
1304 (ns_run_ascript): Chech as_script for nil, set to nil after
1305 executing script.
1306
1307 2012-12-22 Martin Rudalics <rudalics@gmx.at>
1308
1309 * window.c (Fselect_window): Reword doc-string (Bug#13248).
1310
1311 2012-12-22 Eli Zaretskii <eliz@gnu.org>
1312
1313 * w32term.c (w32fullscreen_hook): New function.
1314 (w32_create_terminal): Plug it into the terminal's fullscreen_hook.
1315
1316 2012-12-21 Eli Zaretskii <eliz@gnu.org>
1317
1318 * fileio.c (Finsert_file_contents): Doc fix.
1319
1320 * w32proc.c (new_child, delete_child, find_child_pid): For a
1321 subprocess, consider its slot being in use as long as its process
1322 handle (procinfo.hProcess) is not NULL. This avoids reusing the
1323 slot when a new process is started immediately after killing
1324 another one, without waiting enough time for the first process to
1325 be reaped and resources allocated for it be orderly freed.
1326 (Bug#13086)
1327 Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
1328
1329 2012-12-21 Chong Yidong <cyd@gnu.org>
1330
1331 * buffer.c (Fset_buffer_major_mode): Doc fix (Bug#13231).
1332
1333 * fns.c (Fcompare_strings): Doc fix (Bug#13081).
1334
1335 2012-12-21 Eli Zaretskii <eliz@gnu.org>
1336
1337 * w32.c (get_name_and_id): Always pass NULL as the first argument
1338 of lookup_account_sid. Avoids crashes with UNC file names that
1339 refer to DFS domains, not to specific machine names. (Bug#12621)
1340 Remove now unused argument FNAME; all callers changed.
1341 (get_file_owner_and_group): Remove now unused argument FNAME; all
1342 callers changed.
1343
1344 2012-12-21 Chong Yidong <cyd@gnu.org>
1345
1346 * editfns.c (Finsert_char): Since read-char-by-name now signals an
1347 error for invalid chars, don't check for a nil return value.
1348
1349 2012-12-20 Dmitry Antipov <dmantipov@yandex.ru>
1350
1351 Avoid calls to CHAR_TO_BYTE if byte position is known.
1352 * editfns.c (make_buffer_string_both): Use move_gap_both.
1353 (Fbuffer_string): Use make_buffer_string_both.
1354 * marker.c (buf_charpos_to_bytepos): Convert to eassert.
1355 Adjust comment.
1356 (buf_bytepos_to_charpos): Likewise.
1357 (charpos_to_bytepos): Remove.
1358 * fileio.c (Finsert_file_contents): Use move_gap_both.
1359 * search.c (Freplace_match): Likewise.
1360 * process.c (process_send_region): Likewise. Use convenient
1361 names for byte positions.
1362 * lisp.h (charpos_to_bytepos): Remove prototype.
1363 * indent.c (scan_for_column): Use CHAR_TO_BYTE.
1364 * insdel.c (move_gap): Likewise.
1365
1366 2012-12-20 Paul Eggert <eggert@cs.ucla.edu>
1367
1368 * xdisp.c (redisplay_internal): Remove now-unused local.
1369
1370 2012-12-20 Stefan Monnier <monnier@iro.umontreal.ca>
1371
1372 * xdisp.c (select_frame_for_redisplay, ensure_selected_frame): Remove.
1373 (redisplay_internal): Don't bother selecting the frame to get the
1374 proper value of frame-local variables (bug#13225).
1375
1376 2012-12-20 Dmitry Antipov <dmantipov@yandex.ru>
1377
1378 * textprop.c (set_text_properties_1): Do not allow NULL interval.
1379 Rename 4th argument since it may be buffer or string. Adjust comment.
1380 * intervals.c (graft_intervals_info_buffer): Find an interval here.
1381
1382 2012-12-19 Dmitry Antipov <dmantipov@yandex.ru>
1383
1384 * coding.c (Fdetect_coding_region): Do not check start and end with
1385 CHECK_NUMBER_COERCE_MARKER since validate_region does that itself.
1386 (code_convert_region): Likewise.
1387
1388 2012-12-18 Eli Zaretskii <eliz@gnu.org>
1389
1390 * w32.c (acl_get_file, acl_set_file): Run the file name through
1391 map_w32_filename, and resolve any symlinks in the file name, like
1392 Posix platforms do.
1393 (acl_set_file): Call revert_to_self, if any privileges were
1394 enabled.
1395
1396 2012-12-17 Juanma Barranquero <lekktu@gmail.com>
1397
1398 * makefile.w32-in ($(BLD)/editfns.$(O), $(BLD)/fileio.$(O))
1399 ($(BLD)/w32.$(O)): Update dependencies.
1400
1401 2012-12-17 Stefan Monnier <monnier@iro.umontreal.ca>
1402
1403 * xdisp.c (select_frame_for_redisplay): Use select_window_1 to
1404 propagate redisplay's scrolling (if any) to the right window.
1405 (redisplay_internal): Use ensure_selected_frame.
1406 (display_mode_lines): Complete last fix.
1407 * window.c (select_window_1): New func, extracted from select_window.
1408 (select_window): Use it.
1409 * window.h (select_window_1): Declare.
1410
1411 2012-12-17 Eli Zaretskii <eliz@gnu.org>
1412
1413 Emulate Posix ACL APIs on MS-Windows.
1414 * w32.c: Include sddl.h and sys/acl.h.
1415 (SDDL_REVISION_1): Define if not already defined.
1416 (g_b_init_get_security_descriptor_dacl)
1417 (g_b_init_convert_sd_to_sddl, g_b_init_convert_sddl_to_sd)
1418 (g_b_init_is_valid_security_descriptor)
1419 (g_b_init_set_file_security): New static flags.
1420 (globals_of_w32): Initialize them to zero.
1421 (SetFileSecurity_Name): New string constant.
1422 (SetFileSecurity_Proc, GetSecurityDescriptorDacl_Proc)
1423 (ConvertStringSecurityDescriptorToSecurityDescriptor_Proc)
1424 (ConvertSecurityDescriptorToStringSecurityDescriptor_Proc)
1425 (IsValidSecurityDescriptor_Proc): New typedefs.
1426 (get_file_security, get_security_descriptor_owner)
1427 (get_security_descriptor_group): Set errno to ENOTSUP.
1428 (set_file_security, get_security_descriptor_dacl)
1429 (is_valid_security_descriptor, convert_sd_to_sddl)
1430 (convert_sddl_to_sd, acl_valid, acl_to_text, acl_from_text)
1431 (acl_free, acl_get_file, acl_set_file): New functions.
1432
1433 * fileio.c (Fcopy_file) [WINDOWSNT]: Support copying ACLs.
1434
1435 2012-12-17 Paul Eggert <eggert@cs.ucla.edu>
1436
1437 Don't reraise SIGCHLD, as that can now lose (Bug#13192).
1438 With the 2012-12-03 fix for Bug#12980 in place, an old workaround
1439 for some of that bug's symptoms can now cause Emacs to abort.
1440 Remove the workaround.
1441 * process.c (wait_reading_process_output): Don't reraise SIGCHLD.
1442 The bug that caused SIGCHLD to get lost has been fixed, and the
1443 workaround for it can now cause Emacs to abort.
1444
1445 2012-12-16 Paul Eggert <eggert@cs.ucla.edu>
1446
1447 * sysdep.c (emacs_abort): Bump backtrace size to 40.
1448 Companion to the 2012-09-30 patch. Suggested by Eli Zaretskii in
1449 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00796.html>.
1450
1451 2012-12-16 Romain Francoise <romain@orebokech.com>
1452
1453 * fileio.c (Ffile_acl, Fset_file_acl): New functions.
1454 (Fcopy_file): Change last arg to `preserve_extended_attributes'
1455 and copy ACL entries of file in addition to SELinux context if set.
1456 (syms_of_fileio): Add `file-acl' and `set-file-acl'.
1457
1458 * Makefile.in (LIBACL_LIBS): New macro.
1459 (LIBES): Use it.
1460
1461 2012-12-15 Paul Eggert <eggert@cs.ucla.edu>
1462
1463 * fileio.c (internal_delete_file): Use bool for boolean.
1464
1465 2012-12-15 Eli Zaretskii <eliz@gnu.org>
1466
1467 Fix bug #13079 on MS-Windows with temp files not being deleted.
1468 * w32.h (_child_process): New members input_file and
1469 pending_deletion.
1470 (register_child): First argument is now pid_t.
1471 (record_infile, record_pending_deletion): New prototypes.
1472
1473 * w32proc.c (new_child): Initialize input_file and
1474 pending_deletion members of the child.
1475 (delete_child): Delete the child's temporary input file, if any,
1476 that is pending deletion.
1477 (register_child): First argument is now pid_t.
1478 (record_infile, record_pending_deletion): New functions.
1479 (reap_subprocess): Fix a typo in DebPrint string.
1480 (sys_spawnve, sys_kill): Use pid_t for PID arguments.
1481
1482 * fileio.c (internal_delete_file): Return an int again: non-zero
1483 if delete-file succeeds, zero otherwise.
1484
1485 * lisp.h (internal_delete_file): Adjust prototype.
1486
1487 * callproc.c (Fcall_process): Don't overwrite infile with result
1488 of DECODE_FILE.
1489 [WINDOWSNT] If BUFFER is an integer, i.e. we are launching an
1490 asynchronous subprocess, record the name of the input file name,
1491 if any.
1492 (delete_temp_file) [WINDOWSNT]: If internal_delete_file fails to
1493 delete the file, record it as pending deletion when the subprocess
1494 exits.
1495
1496 2012-12-14 Eli Zaretskii <eliz@gnu.org>
1497
1498 * editfns.c [HAVE_PWD_H]: Include grp.h.
1499
1500 * makefile.w32-in ($(BLD)/editfns.$(O)): Add $(NT_INC)/grp.h.
1501
1502 2012-12-14 Paul Eggert <eggert@cs.ucla.edu>
1503
1504 Fix permissions bugs with setgid directories etc. (Bug#13125)
1505 * dired.c (Ffile_attributes): Return t as the 9th attribute,
1506 to mark it as a placeholder. The old value was often wrong.
1507 The only user of this attribute has been changed to use
1508 file-ownership-preserved-p instead, with its new group arg.
1509 * editfns.c (Fgroup_gid, Fgroup_real_gid): New functions.
1510
1511 2012-12-14 Stefan Monnier <monnier@iro.umontreal.ca>
1512
1513 * xdisp.c (select_frame_for_redisplay, display_mode_lines):
1514 Keep selected_window and selected_frame in sync.
1515
1516 2012-12-14 Eli Zaretskii <eliz@gnu.org>
1517
1518 * w32.c (stat_worker): If w32_stat_get_owner_group is zero, do not
1519 try to get accurate owner and group information from NT file
1520 security APIs. This is to make most callers of 'stat' and
1521 'lstat', which don't need that information, much faster.
1522
1523 * dired.c (Ffile_attributes) [WINDOWSNT]:
1524 Set w32_stat_get_owner_group to a non-zero value, to request accurate
1525 owner and group information from 'lstat'.
1526
1527 2012-12-13 Paul Eggert <eggert@cs.ucla.edu>
1528
1529 * fileio.c (Finsert_file_contents): Don't put tail into head area,
1530 as that confuses set-auto-coding, so insist on the head-read
1531 returning the full 1024 bytes. Let lseek compute the tail offset;
1532 less work for us. Do not ignore I/O errors when reading the tail.
1533
1534 * xdisp.c: Minor style fixes.
1535 (init_iterator): Hoist assignment out of if-expression.
1536 (markpos_of_region): Callers now test for sign, not for -1.
1537
1538 2012-12-13 Dmitry Antipov <dmantipov@yandex.ru>
1539
1540 Minor redisplay optimization when the region length is zero.
1541 * xdisp.c (markpos_of_region): New function.
1542 (init_iterator): Do not highlight the region of zero length.
1543 (redisplay_window): Check whether the region is of non-zero length.
1544 (try_cursor_movement): Allow if the region length is zero.
1545 (try_window_reusing_current_matrix, try_window_id): Likewise.
1546
1547 2012-12-13 Eli Zaretskii <eliz@gnu.org>
1548
1549 * search.c (search_buffer): Check the inverse translations of each
1550 character in pattern when the buffer being searched is unibyte.
1551 (Bug#13084)
1552
1553 2012-12-13 Paul Eggert <eggert@cs.ucla.edu>
1554
1555 * fileio.c (Fvisited_file_modtime): Return (-1 ...) for nonexistent
1556 files, fixing a regression from 24.2.
1557 (Fverify_visited_file_modtime): Don't read uninitialized st.st_size.
1558
1559 2012-12-13 Paul Eggert <eggert@cs.ucla.edu>
1560
1561 * fileio.c (Fcopy_file): Make fstat failure as serious as open failure.
1562 fstat shouldn't fail, and if it does fail copy-file should not proceed.
1563 Remove unnecessary S_ISLNK test, as (contra the comments) this
1564 function can't copy symlinks. Improve quality of error message
1565 when attempting to copy files that are neither regular files nor
1566 directories.
1567
1568 2012-12-12 Dmitry Antipov <dmantipov@yandex.ru>
1569
1570 * dispnew.c (set_window_cursor_after_update): Use clip_to_bounds.
1571 * gtkutil.c (xg_set_toolkit_scroll_bar_thumb):
1572 * window.c (Frecenter):
1573 * xdisp.c (resize_mini_window, hscroll_window_tree, draw_glyphs):
1574 * xterm.c (x_set_toolkit_scroll_bar_thumb): Likewise.
1575
1576 2012-12-12 Daniel Colascione <dancol@dancol.org>
1577
1578 * unexcw.c (fixup_executable): Use posix_fallocate to ensure that
1579 the dumped Emacs is not a sparse file, greatly improving Cygwin
1580 "make bootstrap" performance.
1581
1582 2012-12-11 Michael Albinus <michael.albinus@gmx.de>
1583
1584 * inotify.c (inotify_callback): Generate an Emacs event for every
1585 incoming inotify event.
1586
1587 2012-12-11 Eli Zaretskii <eliz@gnu.org>
1588
1589 * xdisp.c (handle_face_prop): Fix logic of computing
1590 it->start_of_box_run_p.
1591 (append_space_for_newline): If the glyph row is R2L, reset the
1592 iterator's end_of_box_run_p flag before prepending the space glyph.
1593 (extend_face_to_end_of_line): If the glyph row is R2L, reset the
1594 iterator's start_of_box_run_p flag before prepending the stretch.
1595 (append_glyph, produce_image_glyph, append_composite_glyph)
1596 (append_stretch_glyph, append_glyphless_glyph): Reverse the
1597 left_box_line_p and right_box_line_p flags of the glyph for R2L
1598 glyph rows. (Bug#13011)
1599
1600 2012-12-11 Dmitry Antipov <dmantipov@yandex.ru>
1601
1602 * buffer.c (Fset_buffer_multibyte): Do not force redisplay
1603 if changed buffer is not shown in a window.
1604 * insdel.c (prepare_to_modify_buffer): Likewise.
1605 * window.c (replace_buffer_in_windows_safely): Do nothing
1606 if buffer is not shown in a window.
1607 (Fforce_window_update): Likewise if string or buffer argument
1608 is passed.
1609
1610 2012-12-11 Eli Zaretskii <eliz@gnu.org>
1611
1612 * inotify.c (Finotify_add_watch): Rename decoded_file_name to
1613 encoded_file_name, which is what it is.
1614
1615 2012-12-11 Dmitry Antipov <dmantipov@yandex.ru>
1616
1617 Consistently use marker_position and marker_byte_position.
1618 * fringe.c (Ffringe_bitmaps_at_pos):
1619 * indent.c (Fvertical_motion):
1620 * insdel.c (prepare_to_modify_buffer):
1621 * keyboard.c (make_lispy_position):
1622 * window.c (Fwindow_end, Fpos_visible_in_window_p, unshow_buffer)
1623 (window_scroll_pixel_based, displayed_window_lines)
1624 (Fset_window_configuration):
1625 * xdisp.c (message_dolog, with_echo_area_buffer_unwind_data)
1626 (mark_window_display_accurate_1, redisplay_window, decode_mode_spec):
1627 Replace direct access to marker fields with calls
1628 to marker_position and/or marker_byte_position.
1629
1630 2012-12-11 Juanma Barranquero <lekktu@gmail.com>
1631
1632 * makefile.w32-in (SIG2STR_H): New macro.
1633 (SYSWAIT_H, $(BLD)/emacs.$(O), $(BLD)/process.$(O))
1634 ($(BLD)/w32notify.$(O)): Update dependencies.
1635
1636 2012-12-10 Daniel Colascione <dancol@dancol.org>
1637
1638 * w32term.c, keyboard.c: Fix build break in cygw32 by omitting
1639 Windows file notification functionality unless WINDOWSNT.
1640
1641 * w32gui.h (hprevinst, lpCmdLine, nCmdShow): Remove unused
1642 declarations.
1643
1644 * w32fns.c (cache_system_info): Initialize the global hinst
1645 variable here so various initialization calls DTRT.
1646
1647 * unexw32.c (hprevinst, lpCmdLine, nCmdShow): Remove unused variables.
1648 (hinst): Remove unneeded extern declaration.
1649 (_start): Remove initialization of above variables; remove
1650 initialization of hinst, as cache_system_info now does that.
1651
1652 * emacs.c (main): Call cache_system_info early in startup; we
1653 previously weren't calling it in Cygwin builds.
1654
1655 * Makefile.in (ntsource, WINDRES, W32_RES, W#@_RES_LINK):
1656 Teach the autoconf build system how to compile a Windows resource file
1657 and link it to Emacs.
1658
1659 2012-12-10 Dmitry Antipov <dmantipov@yandex.ru>
1660
1661 Per-buffer window counters.
1662 * buffer.h (struct buffer): New member window_count.
1663 (buffer_window_count): New function.
1664 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
1665 Initialize window_count.
1666 (Fkill_buffer): Verify window_count for the buffer being killed.
1667 (modify_overlay): Do not force redisplay if buffer is not shown
1668 in any window.
1669 (init_buffer_once): Initialize window_count for buffer_defaults
1670 and buffer_local_symbols.
1671 * window.h (buffer_shared): Remove declaration.
1672 (wset_buffer): Convert from inline ...
1673 * window.c (wset_buffer): ... to an ordinary function.
1674 (adjust_window_count): New function.
1675 (make_parent_window): Use it.
1676 * xdisp.c (buffer_shared): Remove.
1677 (redisplay_internal, redisplay_window): Adjust users.
1678 (buffer_shared_and_changed): Use per-buffer window counter.
1679
1680 2012-12-10 Eli Zaretskii <eliz@gnu.org>
1681
1682 Support for filesystem notifications on MS-Windows.
1683 * w32proc.c (sys_select): If drain_message_queue returns non-zero,
1684 and this is a TTY frame, signal the caller that keyboard input is
1685 available.
1686
1687 * w32xfns.c (drain_message_queue): Now returns an int: an
1688 indication whether any WM_EMACS_FILENOTIFY messages were found in
1689 the queue.
1690
1691 * w32inevt.c (handle_file_notifications): New function.
1692 (w32_console_read_socket): Call it to process file notifications.
1693
1694 * w32console.c (initialize_w32_display): Record the main thread ID
1695 in dwMainThreadId.
1696
1697 * deps.mk (inotify.o): New dependency list.
1698
1699 * Makefile.in (SOME_MACHINE_OBJECTS): Add w32notify.o.
1700
1701 * w32term.h (WM_EMACS_FILENOTIFY): New custom message.
1702 (WM_EMACS_END): Bump value by 1.
1703 (notification_buffer_in_use, file_notifications)
1704 (notifications_size, notifications_desc): Declare.
1705 (w32_get_watch_object, lispy_file_action, globals_of_w32notify):
1706 Add prototypes.
1707
1708 * w32term.c (lispy_file_action, queue_notifications): New functions.
1709 (syms_of_w32term) <Qadded, Qremoved, Qmodified, Qrenamed_from>
1710 <Qrenamed_to>: New symbols.
1711 (w32_read_socket): Handle the WM_EMACS_FILENOTIFY message.
1712
1713 * w32notify.c: New file, implements file event notifications for
1714 MS-Windows.
1715
1716 * w32fns.c (w32_wnd_proc): Handle the WM_EMACS_FILENOTIFY message
1717 by posting it to the w32_read_socket queue.
1718
1719 * termhooks.h (enum event_kind) [HAVE_NTGUI]: Support FILE_NOTIFY_EVENT.
1720
1721 * makefile.w32-in (OBJ2): Add $(BLD)/w32notify.$(O).
1722 (GLOBAL_SOURCES): Add w32notify.c
1723 ($(BLD)/w32notify.$(O)): New set of dependencies.
1724
1725 * lisp.h (syms_of_w32notify) [WINDOWSNT]: Add prototype.
1726
1727 * keyboard.c (kbd_buffer_get_event) [WINDOWSNT]:
1728 Handle FILE_NOTIFY_EVENT.
1729 (syms_of_keyboard) [HAVE_NTGUI] <Qfile_notify>: New symbol.
1730 (keys_of_keyboard) [WINDOWSNT]: Bind file-notify to
1731 w32notify-handle-event by default.
1732
1733 * emacs.c (main) [WINDOWSNT]: Call globals_of_w32notify and
1734 syms_of_w32notify.
1735
1736 2012-12-10 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
1737
1738 Support for filesystem notifications on GNU/Linux via inotify.
1739 * termhooks.h (enum event_kind) [HAVE_INOTIFY]: Add FILE_NOTIFY_EVENT.
1740
1741 * lisp.h (syms_of_inotify) [HAVE_INOTIFY]: Add prototype.
1742
1743 * keyboard.c (Qfile_inotify) [HAVE_INOTIFY]: New variable.
1744 (syms_of_keyboard): DEFSYM it.
1745 (kbd_buffer_get_event) [HAVE_INOTIFY]: Generate FILE_NOTIFY_EVENT.
1746 (make_lispy_event): Support FILE_NOTIFY_EVENT by generating
1747 Qfile_inotify events.
1748 (keys_of_keyboard) [HAVE_INOTIFY]: Bind file-inotify events in
1749 special-event-map to inotify-handle-event.
1750
1751 * emacs.c (main) [HAVE_INOTIFY]: Call syms_of_inotify.
1752
1753 * Makefile.in (base_obj): Add inotify.o.
1754
1755 * inotify.c: New file.
1756
1757 2012-12-10 Jan Djärv <jan.h.d@swipnet.se>
1758
1759 * nsterm.m (fd_handler:): FD_ZERO fds (Bug#13103).
1760
1761 2012-12-10 Fabrice Popineau <fabrice.popineau@gmail.com>
1762
1763 * w32fns.c (cache_system_info): Cast sysinfo_cache.dwPageSize to
1764 DWORD_PTR, for compatibility with 64-bit builds.
1765
1766 * w32.c (_PROCESS_MEMORY_COUNTERS_EX):
1767 (GetProcessWorkingSetSize_Proc, get_process_working_set_size)
1768 (system_process_attributes): Use SIZE_T rather than DWORD, for
1769 compatibility with 64-bit builds.
1770
1771 2012-12-10 Christopher Schmidt <christopher@ch.ristopher.com>
1772
1773 * lread.c (Vload_source_file_function): Doc fix (Bug#11647).
1774
1775 2012-12-10 Eli Zaretskii <eliz@gnu.org>
1776
1777 * indent.c (Fvertical_motion): If a display string will be
1778 displayed on the left or the right margin, don't consider it as a
1779 factor in cursor positioning. (Bug#13108)
1780
1781 2012-12-10 Martin Rudalics <rudalics@gmx.at>
1782
1783 * editfns.c (Fcompare_buffer_substrings): Reword doc-string.
1784
1785 2012-12-10 Paul Eggert <eggert@cs.ucla.edu>
1786
1787 * fileio.c (Fsubstitute_in_file_name): Use ptrdiff_t, not int,
1788 for string length.
1789
1790 2012-12-08 Eli Zaretskii <eliz@gnu.org>
1791
1792 * w32.c (unsetenv): Return 0 if the input string is too long.
1793
1794 2012-12-08 Paul Eggert <eggert@cs.ucla.edu>
1795
1796 Use putenv+unsetenv instead of modifying environ directly (Bug#13070).
1797 * alloc.c (xputenv): New function.
1798 * dbusbind.c (Fdbus_init_bus):
1799 * emacs.c (main):
1800 * xterm.c (x_term_init):
1801 Use xputenv instead of setenv or putenv, to detect memory exhaustion.
1802 * editfns.c (initial_tz): Move static var decl up.
1803 (tzvalbuf_in_environ): New static var.
1804 (init_editfns): Initialize these two static vars.
1805 (Fencode_time): Don't assume arbitrary limit on EMACS_INT width.
1806 Save old TZ value on stack, if it's small.
1807 (Fencode_time, set_time_zone_rule): Don't modify 'environ' directly;
1808 instead, use xputenv+unsetenv to set and restore TZ.
1809 (environbuf): Remove static var. All uses removed.
1810 (Fset_time_zone_rule): Do not save TZ and environ;
1811 no longer needed here.
1812 (set_time_zone_rule_tz1, set_time_zone_rule_tz2) [LOCALTIME_CACHE]:
1813 Move to inside set_time_zone_rule; they don't need file scope any more.
1814 (set_time_zone_rule): Maintain the TZ=value string separately.
1815 (syms_of_editfns): Don't initialize initial_tz;
1816 init_editfns now does it.
1817 * emacs.c (dump_tz) [HAVE_TZSET]: Now const.
1818 * lisp.h (xputenv): New decl.
1819
1820 2012-12-08 Fabrice Popineau <fabrice.popineau@gmail.com>
1821
1822 * w32fns.c (emacs_abort): Don't do arithmetics on void pointers.
1823
1824 2012-12-08 Eli Zaretskii <eliz@gnu.org>
1825
1826 * w32.c (unsetenv, sys_putenv): New functions.
1827
1828 2012-12-08 Chong Yidong <cyd@gnu.org>
1829
1830 * editfns.c (Finsert_char): Make the error message more
1831 informative (Bug#12992).
1832
1833 2012-12-08 Paul Eggert <eggert@cs.ucla.edu>
1834
1835 Simplify get_lim_data.
1836 * vm-limit.c (get_lim_data): Combine RLIMIT_AS and RLIMIT_DATA methods.
1837 Remove USG and vlimit methods; no longer used these days.
1838 Add #error catchall just in case.
1839
1840 Assume POSIX 1003.1-1988 or later for signal.h (Bug#13026).
1841 Exceptions: do not assume SIGCONT, SIGSTOP, SIGTSTP, SIGTTIN,
1842 SIGTTOU, SIGUSR1, SIGUSR2, as Microsoft platforms lack these.
1843 * process.c [subprocesses]: Include <c-ctype.h>, <sig2str.h>.
1844 (deleted_pid_list, Fdelete_process, create_process)
1845 (record_child_status_change, handle_child_signal, deliver_child_signal)
1846 (init_process_emacs, syms_of_process):
1847 Assume SIGCHLD is defined.
1848 (parse_signal): Remove. All uses removed.
1849 (abbr_to_signal): New static function.
1850 (Fsignal_process): Use it to convert signal names to ints.
1851 * sysdep.c (sys_suspend) [!DOS_NT]: Use kill (0, ...) rather than
1852 kill (getpgrp (), ...).
1853 (emacs_sigaction_init): Assume SIGCHLD is defined.
1854 (init_signals): Assume SIGALRM, SIGCHLD, SIGHUP, SIGKILL,
1855 SIGPIPE, and SIGQUIT are defined. Do not worry about SIGCLD any more.
1856 * syssignal.h (EMACS_KILLPG): Remove.
1857 All uses replaced by 'kill' with a negative pid.
1858 (SIGCHLD): Remove definition, as we now assume SIGCHLD.
1859 * w32proc.c (sys_kill): Support negative pids compatibly with POSIX.
1860
1861 2012-12-07 Paul Eggert <eggert@cs.ucla.edu>
1862
1863 * sysdep.c (get_child_status): Abort on internal error (Bug#13086).
1864 This will cause a production Emacs to dump core instead of
1865 infinite-looping.
1866
1867 2012-12-07 Dmitry Antipov <dmantipov@yandex.ru>
1868
1869 * frame.c (make_frame): Do not set window's buffer to t.
1870 * window.c (Fsplit_window_internal): Likewise. Previously it was
1871 used to indicate that the window is being set up. Now we use
1872 set_window_buffer for all new windows, so the condition in ...
1873 (Fset_window_buffer): ... is always true and can be removed.
1874
1875 2012-12-07 Dmitry Antipov <dmantipov@yandex.ru>
1876
1877 Convenient macro to check whether the buffer is hidden.
1878 * buffer.h (BUFFER_HIDDEN_P): New macro.
1879 * frame.c (make_frame): Use it. Adjust comment.
1880 * buffer.c (candidate_buffer): New function.
1881 (Fother_buffer, other_buffer_safely): Use it.
1882
1883 2012-12-06 Eli Zaretskii <eliz@gnu.org>
1884
1885 * w32proc.c (waitpid): Avoid busy-waiting when called with WNOHANG
1886 if the child process is still running. Instead, exit the wait
1887 loop and return zero. (Bug#13086)
1888
1889 2012-12-06 Dmitry Antipov <dmantipov@yandex.ru>
1890
1891 * frame.h (x_char_width, x_char_height): Remove prototypes.
1892 * w32term.h (x_char_width, x_char_height): Likewise.
1893 * xfns.c (x_char_width, x_char_height): Remove.
1894 * w32fns.c (x_char_width, x_char_height): Likewise.
1895 * nsfns.c (x_char_width, x_char_height): Likewise.
1896 * frame.c (Fframe_char_width): Use FRAME_COLUMN_WIDTH for
1897 all window frames.
1898 (Fframe_char_height): Likewise with FRAME_LINE_HEIGHT.
1899 * keyboard.c (command_loop_1): Remove prototype.
1900 (command_loop_2, top_level_1): Add static to match prototype.
1901
1902 2012-12-06 Paul Eggert <eggert@cs.ucla.edu>
1903
1904 Fix a recently-introduced delete-process race condition.
1905 * callproc.c, process.h (record_kill_process):
1906 New function, containing part of the old call_process_kill.
1907 (call_process_kill): Use it.
1908 This does not change call_process_kill's behavior.
1909 * process.c (Fdelete_process): Use record_kill_process to fix a
1910 race condition that could cause Emacs to lose track of a child.
1911
1912 2012-12-06 Dmitry Antipov <dmantipov@yandex.ru>
1913
1914 Avoid code duplication between prev_frame and next_frame.
1915 * frame.c (candidate_frame): New function. Add comment.
1916 (prev_frame, next_frame): Use it. Adjust comment.
1917
1918 2012-12-06 Eli Zaretskii <eliz@gnu.org>
1919
1920 * callproc.c (Fcall_process_region) [!HAVE_MKSTEMP]: If mktemp
1921 fails, signal an error instead of continuing with an empty
1922 string. (Bug#13079)
1923 Encode expanded temp file pattern before passing it to mkstemp or
1924 mktemp.
1925
1926 * fileio.c (file_name_as_directory, directory_file_name) [DOS_NT]:
1927 Encode the file name before passing it to dostounix_filename, in
1928 case it will downcase it (under w32-downcase-file-names).
1929 (Bug#12933)
1930
1931 2012-12-05 Paul Eggert <eggert@cs.ucla.edu>
1932
1933 Minor call-process cleanups.
1934 * callproc.c (Fcall_process): Do record-unwind-protect on MSDOS
1935 at the same time as other platforms, to simplify analysis.
1936 No need for fd0_volatile since we have synch_process_fd.
1937 Avoid needless emacs_close; arg is always negative.
1938
1939 2012-12-04 Andreas Schwab <schwab@linux-m68k.org>
1940
1941 * callproc.c (Fcall_process): Fix specpdl nesting for asynchronous
1942 processes.
1943
1944 2012-12-04 Dmitry Antipov <dmantipov@yandex.ru>
1945
1946 * lisp.h (Mouse_HLInfo): Remove set-but-unused mouse_face_image_state
1947 member. Adjust users. Convert mouse_face_past_end, mouse_face_defer
1948 and mouse_face_hidden members to a bitfields.
1949 * frame.h (struct frame): Remove set-but-not-used space_width member.
1950 (FRAME_SPACE_WIDTH): Remove.
1951 * nsterm.m, w32term.c, xterm.c: Adjust users.
1952 * termchar.h (struct tty_display_info): Remove set-but-unused se_is_so
1953 member. Adjust users. Convert term_initted, delete_in_insert_mode,
1954 costs_set, insert_mode, standout_mode, cursor_hidden and flow_control
1955 members to a bitfields.
1956
1957 2012-12-03 Paul Eggert <eggert@cs.ucla.edu>
1958
1959 Don't let call-process be a zombie factory (Bug#12980).
1960 Fixing this bug required some cleanup of the signal-handling code.
1961 As a side effect, this change also fixes a longstanding rare race
1962 condition whereby Emacs could mistakenly kill unrelated processes,
1963 and it fixes a bug where a second C-g does not kill a recalcitrant
1964 synchronous process in GNU/Linux and similar platforms.
1965 The patch should also fix the last vestiges of Bug#9488,
1966 a bug which has mostly been fixed on the trunk by other changes.
1967 * callproc.c, process.h (synch_process_alive, synch_process_death)
1968 (synch_process_termsig, sync_process_retcode):
1969 Remove. All uses removed, to simplify analysis and so that
1970 less consing is done inside critical sections.
1971 * callproc.c (call_process_exited): Remove. All uses replaced
1972 with !synch_process_pid.
1973 * callproc.c (synch_process_pid, synch_process_fd): New static vars.
1974 These take the role of what used to be in unwind-protect arg.
1975 All uses changed.
1976 (block_child_signal, unblock_child_signal):
1977 New functions, to avoid races that could kill innocent-victim processes.
1978 (call_process_kill, call_process_cleanup, Fcall_process): Use them.
1979 (call_process_kill): Record killed processes as deleted, so that
1980 zombies do not clutter up the system. Do this inside a critical
1981 section, to avoid a race that would allow the clutter.
1982 (call_process_cleanup): Fix code so that the second C-g works again
1983 on common platforms such as GNU/Linux.
1984 (Fcall_process): Create the child process in a critical section,
1985 to fix a race condition. If creating an asynchronous process,
1986 record it as deleted so that zombies do not clutter up the system.
1987 Do unwind-protect for WINDOWSNT too, as that's simpler in the
1988 light of these changes. Omit unnecessary call to emacs_close
1989 before failure, as the unwind-protect code does that.
1990 * callproc.c (call_process_cleanup):
1991 * w32proc.c (waitpid): Simplify now that synch_process_alive is gone.
1992 * process.c (record_deleted_pid): New function, containing
1993 code refactored out of Fdelete_process.
1994 (Fdelete_process): Use it.
1995 (process_status_retrieved): Remove. All callers changed to use
1996 child_status_change.
1997 (record_child_status_change): Remove, folding its contents into ...
1998 (handle_child_signal): ... this signal handler. Now, this
1999 function is purely a handler for SIGCHLD, and is not called after
2000 a synchronous waitpid returns; the synchronous code is moved to
2001 wait_for_termination. There is no need to worry about reaping
2002 more than one child now.
2003 * sysdep.c (get_child_status, child_status_changed): New functions.
2004 (wait_for_termination): Now takes int * status and bool
2005 interruptible arguments, too. Do not record child status change;
2006 that's now the caller's responsibility. All callers changed.
2007 Reimplement in terms of get_child_status.
2008 (wait_for_termination_1, interruptible_wait_for_termination):
2009 Remove. All callers changed to use wait_for_termination.
2010 * syswait.h: Include <stdbool.h>, for bool.
2011 (record_child_status_change, interruptible_wait_for_termination):
2012 Remove decls.
2013 (record_deleted_pid, child_status_changed): New decls.
2014 (wait_for_termination): Adjust to API changes noted above.
2015
2016 * bytecode.c, lisp.h (Qbytecode): Remove.
2017 No longer needed after 2012-11-20 interactive-p changes.
2018
2019 2012-12-03 Eli Zaretskii <eliz@gnu.org>
2020
2021 * xdisp.c (redisplay_window): If the cursor is visible, but inside
2022 the scroll margin, move point outside the margin. (Bug#13055)
2023
2024 2012-12-03 Jan Djärv <jan.h.d@swipnet.se>
2025
2026 * gtkutil.c (my_log_handler): New function.
2027 (xg_set_geometry): Set log handler to my_log_handler (Bug#11177).
2028
2029 2012-12-03 Dmitry Antipov <dmantipov@yandex.ru>
2030
2031 * lisp.h (modify_region): Rename to...
2032 (modify_region_1): ...new prototype.
2033 * textprop.c (modify_region): Now static. Adjust users.
2034 * insdel.c (modify_region): Rename to...
2035 (modify_region_1): ...new function to work with current buffer.
2036 Adjust comment and users. Use true and false for booleans.
2037
2038 2012-12-03 Dmitry Antipov <dmantipov@yandex.ru>
2039
2040 * alloc.c (free_save_value): New function.
2041 (safe_alloca_unwind): Use it.
2042 * lisp.h (free_save_value): New prototype.
2043 * editfns.c (save_excursion_save): Use Lisp_Misc_Save_Value.
2044 Add comment.
2045 (save_excursion_restore): Adjust to match saved data structure.
2046 Use free_save_value to offload some work from GC. Drop obsolete
2047 #if 0 code.
2048
2049 2012-12-03 Chong Yidong <cyd@gnu.org>
2050
2051 * fileio.c (Vauto_save_list_file_name): Doc fix.
2052
2053 2012-12-03 Fabrice Popineau <fabrice.popineau@gmail.com>
2054
2055 * w32fns.c: Remove prototype of atof.
2056 (syspage_mask): Make it DWORD_PTR, for compatibility with 64-bit
2057 builds.
2058 (file_dialog_callback): Make it UINT_PTR.
2059
2060 * w32common.h (syspage_mask): Declare DWORD_PTR, for compatibility
2061 with 64-bit builds.
2062
2063 * w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED)
2064 (FILE_ANY_ACCESS, CTL_CODE) [_MSC_VER]: Define only if not already
2065 defined.
2066
2067 2012-12-03 Glenn Morris <rgm@gnu.org>
2068
2069 * data.c (Fboundp, Fsymbol_value): Doc fix re lexical-binding.
2070
2071 2012-12-02 Paul Eggert <eggert@cs.ucla.edu>
2072
2073 Fix xpalloc confusion after memory is exhausted.
2074 * alloc.c (xpalloc): Comment fix.
2075 * charset.c (Fdefine_charset_internal): If xpalloc exhausts memory
2076 and signals an error, do not clear charset_table_size, as
2077 charset_table is still valid.
2078 * doprnt.c (evxprintf): Clear *BUF after freeing it.
2079
2080 Use execve to avoid need to munge environ (Bug#13054).
2081 * callproc.c (Fcall_process):
2082 * process.c (create_process):
2083 Don't save and restore environ; no longer needed.
2084 * callproc.c (child_setup):
2085 Use execve, not execvp, to preserve environ.
2086
2087 2012-12-01 Paul Eggert <eggert@cs.ucla.edu>
2088
2089 * xterm.c (x_draw_image_relief): Remove unused locals (Bug#10500).
2090
2091 2012-12-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2092
2093 * xterm.c (x_draw_relief_rect, x_draw_image_relief): Fix relief
2094 display for sliced images (Bug#10500).
2095
2096 * w32term.c (w32_draw_relief_rect, x_draw_image_relief): Likewise.
2097
2098 2012-11-30 Juanma Barranquero <lekktu@gmail.com>
2099
2100 * doc.c (Fdocumentation): Re-add handling of function-documentation,
2101 accidentally removed in 2012-11-09T04:10:16Z!monnier@iro.umontreal.ca (bug#13034).
2102
2103 2012-11-29 Dmitry Antipov <dmantipov@yandex.ru>
2104
2105 * xdisp.c (window_outdated): Remove eassert since it hits
2106 some suspicious corner cases (see Bug#13007 and Bug#13012).
2107 (mode_line_update_needed): New function.
2108 (redisplay_internal, redisplay_window): Use it.
2109 (ensure_selected_frame): New function.
2110 (redisplay_internal, unwind_redisplay): Use it.
2111 (redisplay_internal): Move comment about buffer_shared...
2112 (buffer_shared_and_changed): ...near to its real use.
2113
2114 2012-11-29 Paul Eggert <eggert@cs.ucla.edu>
2115
2116 * callproc.c (Fcall_process): Don't misreport vfork failure.
2117
2118 2012-11-28 Paul Eggert <eggert@cs.ucla.edu>
2119
2120 * callproc.c (Fcall_process): Fix vfork portability problems.
2121 Do not assume that fd[0], count, filefd, and save_environ survive
2122 vfork. Fix bug whereby wrong errno value could be reported for
2123 pipe failure. Some minor cleanups, too, as follows. Move buf and
2124 bufsize to the context where they're needed. Change new_argv to
2125 be of type char **, as this is more convenient and avoids casts.
2126 (CALLPROC_BUFFER_SIZE_MIN, CALLPROC_BUFFER_SIZE_MAX):
2127 Now local constants, not macros.
2128
2129 2012-11-18 Kenichi Handa <handa@gnu.org>
2130
2131 * font.c (font_unparse_xlfd): Fix previous change. Keep "const"
2132 for the variable "f".
2133
2134 2012-11-13 Kenichi Handa <handa@gnu.org>
2135
2136 * font.c (font_unparse_xlfd): Exclude special characters from the
2137 generating XLFD name.
2138
2139 2012-11-27 Paul Eggert <eggert@cs.ucla.edu>
2140
2141 Assume POSIX 1003.1-1988 or later for grp.h, pwd.h.
2142 * dired.c (stat_uname, stat_gname):
2143 * fileio.c (Fexpand_file_name): Remove no-longer-needed casts.
2144
2145 Assume POSIX 1003.1-1988 or later for errno.h (Bug#12968).
2146 * dired.c (directory_files_internal, file_name_completion):
2147 Assume EAGAIN and EINTR are defined.
2148
2149 * fileio.c (Fcopy_file): Assume EISDIR is defined.
2150 * gmalloc.c (ENOMEM, EINVAL): Assume they're defined.
2151 * gnutls.c (emacs_gnutls_write): Assume EAGAIN is defined.
2152 * lread.c (readbyte_from_file): Assume EINTR is defined.
2153 * process.c (wait_reading_process_output, send_process) [subprocesses]:
2154 Assume EIO and EAGAIN are defined.
2155 * unexcoff.c (write_segment): Assume EFAULT is defined.
2156
2157 2012-11-27 Eli Zaretskii <eliz@gnu.org>
2158
2159 * fontset.c (Finternal_char_font): Return nil on non-GUI frames.
2160 (Bug#11964)
2161
2162 * xdisp.c (draw_glyphs): Don't draw in mouse face if mouse
2163 highlighting on the frame was cleared. Prevents assertion
2164 violations when repeatedly clicking on the "Top" link of the
2165 "bread-crumbs" in Info buffers.
2166
2167 2012-11-25 Paul Eggert <eggert@cs.ucla.edu>
2168
2169 * sysdep.c (sys_subshell): Don't assume pid_t fits in int.
2170
2171 2012-11-24 Ken Brown <kbrown@cornell.edu>
2172
2173 * keyboard.c (HAVE_MOUSE):
2174 * frame.c (HAVE_MOUSE): Remove, and rewrite code as if HAVE_MOUSE
2175 were always defined.
2176
2177 2012-11-24 Eli Zaretskii <eliz@gnu.org>
2178
2179 * xdisp.c (set_cursor_from_row): Skip step 2 only if point is not
2180 between bpos_covered and bpos_max. This fixes cursor display when
2181 several display strings follow each other.
2182
2183 * .gdbinit (pgx): If the glyph's object is a string, display the
2184 pointer to string data, rather than the value of the string object
2185 itself (which barfs under CHECK_LISP_OBJECT_TYPE).
2186
2187 * indent.c (Fvertical_motion): If the starting position is covered
2188 by a display string, return to one position before that, to avoid
2189 overshooting it inside move_it_to. (Bug#12930)
2190
2191 2012-11-23 Dmitry Antipov <dmantipov@yandex.ru>
2192
2193 * frame.h (struct frame): Remove display_preempted member
2194 since all users are dead long ago.
2195 * nsterm.h (struct x_output): Use the only dummy member.
2196 * w32menu.c (pending_menu_activation): Remove since not
2197 really used.
2198 (set_frame_menubar): Adjust user.
2199 * w32term.h (struct x_output): Drop outdated #if 0 code.
2200 (struct w32_output): Use bitfields for explicit_parent,
2201 asked_for_visible and menubar_active members.
2202 Drop unused pending_menu_activation member.
2203 * xterm.h (struct x_output): Drop outdated #if 0 code.
2204 Use bitfields for explicit_parent, asked_for_visible,
2205 has_been_visible and net_wm_state_hidden_seen members.
2206
2207 2012-11-23 Eli Zaretskii <eliz@gnu.org>
2208
2209 * makefile.w32-in (globals.h, gl-stamp): Use $(SWITCHCHAR) instead
2210 of a literal "/". (Bug#12955)
2211 (gl-stamp): Invoke fc.exe directly, not through cmd.
2212
2213 2012-11-23 Paul Eggert <eggert@cs.ucla.edu>
2214
2215 Assume POSIX 1003.1-1988 or later for dirent.h (Bug#12958).
2216 * dired.c: Assume HAVE_DIRENT_H.
2217 (NAMLEN): Remove, replacing with ...
2218 (dirent_namelen): New function. All uses changed. Use the GNU macro
2219 _D_EXACT_NAMELEN if available, as it's faster than strlen.
2220 (DIRENTRY): Remove, replacing all uses with 'struct dirent'.
2221 (DIRENTRY_NONEMPTY): Remove. All callers now assume it's nonzero.
2222 * makefile.w32-in (DIR_H): Remove. All uses replaced with
2223 $(NT_INC)/dirent.h.
2224 ($(BLD)/w32.$(O)): Do not depend on $(SRC)/ndir.h.
2225 * ndir.h: Rename to ../nt/inc/dirent.h.
2226 * sysdep.h (closedir) [!HAVE_CLOSEDIR]: Remove.
2227 Do not include <dirent.h>; no longer needed.
2228 * w32.c: Include <dirent.h> rather than "ndir.h".
2229
2230 2012-11-23 Chong Yidong <cyd@gnu.org>
2231
2232 * xftfont.c (xftfont_open): Remove duplicate assignment.
2233
2234 2012-11-22 Dmitry Antipov <dmantipov@yandex.ru>
2235
2236 * alloc.c (Fgarbage_collect): Unblock input after clearing
2237 gc_in_progress to avoid note_mouse_highlight glitch with GC.
2238 * frame.h (FRAME_MOUSE_UPDATE): New macro.
2239 * msdos.c (IT_frame_up_to_date): Use it here...
2240 * w32term.c (w32_frame_up_to_date): ...here...
2241 * xterm.c (XTframe_up_to_date): ...and here...
2242 * nsterm.m (ns_frame_up_to_date): ...but not here.
2243 * lisp.h (Mouse_HLInfo): Remove mouse_face_deferred_gc member.
2244 Adjust users.
2245 * xdisp.c (message2_nolog, message3_nolog, note_mouse_highlight):
2246 Do not check whether GC is in progress.
2247
2248 2012-11-22 Dmitry Antipov <dmantipov@yandex.ru>
2249
2250 * xdisp.c (window_buffer_changed): New function.
2251 (update_menu_bar, update_tool_bar): Use it to
2252 simplify large 'if' statements.
2253 (redisplay_internal): Generalize commonly used
2254 'tail' and 'frame' local variables.
2255
2256 2012-11-22 Eli Zaretskii <eliz@gnu.org>
2257
2258 * w32.c (getcwd): Fix the 2nd argument type, to prevent conflicts
2259 with Windows system header.
2260
2261 2012-11-21 Paul Eggert <eggert@cs.ucla.edu>
2262
2263 Assume POSIX 1003.1-1988 or later for unistd.h (Bug#12945).
2264 * alloc.c: Assume unistd.h exists.
2265 * fileio.c (Fexpand_file_name) [DOS_NT]: Use getcwd, not getwd.
2266 * sysdep.c (get_current_dir_name): Assume getcwd exists.
2267 (getwd) [USG]: Remove; no longer needed.
2268 (sys_subshell) [DOS_NT]: Use getcwd, not getwd.
2269 * w32.c (getcwd): Rename from getwd, and switch to getcwd's API.
2270 * w32.h (getcwd): Remove decl.
2271
2272 2012-11-21 Stefan Monnier <monnier@iro.umontreal.ca>
2273
2274 * xdisp.c (fast_set_selected_frame): Rename from update_tool_bar_unwind.
2275 Make it set selected_window as well.
2276 (update_tool_bar): Use it.
2277
2278 2012-11-21 Ken Brown <kbrown@cornell.edu>
2279
2280 * emacs.c (main): Set the G_SLICE environment variable for all
2281 Cygwin builds, not just GTK builds. See
2282 https://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00368.html.
2283
2284 2012-11-21 Eli Zaretskii <eliz@gnu.org>
2285
2286 * w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED)
2287 (FILE_ANY_ACCESS, CTL_CODE, FSCTL_GET_REPARSE_POINT) [_MSC_VER]:
2288 Define for the MSVC compiler.
2289
2290 * w32term.h (EnumSystemLocalesW) [_MSC_VER]: Add a missing semi-colon.
2291
2292 * fileio.c (Fsubstitute_in_file_name, Ffile_name_directory)
2293 (Fexpand_file_name) [DOS_NT]: Pass encoded file name to
2294 dostounix_filename. Prevents crashes down the road, because
2295 dostounix_filename assumes it gets a unibyte string.
2296 Reported by Michel de Ruiter <michel@sentient.nl>, see
2297 http://lists.gnu.org/archive/html/help-emacs-windows/2012-11/msg00017.html
2298
2299 2012-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
2300
2301 Conflate Qnil and Qunbound for `symbol-function'.
2302 * alloc.c (Fmake_symbol): Initialize `function' to Qnil.
2303 * lread.c (init_obarray): Set `function' fields to Qnil.
2304 * eval.c (Fcommandp): Ignore Qunbound.
2305 (Fautoload, eval_sub, Fapply, Ffuncall, Fmacroexpand):
2306 * data.c (Ffset, Ffboundp, indirect_function, Findirect_function):
2307 Test NILP rather than Qunbound.
2308 (Ffmakunbound): Set to Qnil.
2309 (Fsymbol_function): Never signal an error.
2310 (Finteractive_form): Ignore Qunbound.
2311
2312 2012-11-20 Paul Eggert <eggert@cs.ucla.edu>
2313
2314 * eval.c (interactive_p): Remove no-longer-used decl.
2315
2316 2012-11-20 Dmitry Antipov <dmantipov@yandex.ru>
2317
2318 * xdisp.c (buffer_shared): Adjust comment.
2319 (buffer_shared_and_changed): New function.
2320 (prepare_menu_bars, redisplay_internal): Use it to
2321 decide whether all windows or frames should be updated.
2322 (window_outdated): New function.
2323 (text_outside_line_unchanged_p, redisplay_window): Use it.
2324 (redisplay_internal): Likewise. Fix indentation.
2325
2326 2012-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
2327
2328 * eval.c (Finteractive_p, Fcalled_interactively_p, interactive_p): Remove.
2329 (syms_of_eval): Remove corresponding defsubr.
2330 * bytecode.c (exec_byte_code): `interactive-p' is now a Lisp function.
2331
2332 2012-11-19 Daniel Colascione <dancol@dancol.org>
2333
2334 * w32fns.c (Fx_file_dialog):
2335 (Fx_file_dialog): Accomodate rename of cygwin_convert_path* to
2336 cygwin_convert_file_name*.
2337
2338 * cygw32.c (Fcygwin_convert_path_to_windows, syms_of_cygw32):
2339 Rename cygwin_convert_path* to cygwin_convert_file_name*.
2340
2341 2012-11-18 Paul Eggert <eggert@cs.ucla.edu>
2342
2343 * nsterm.m (ns_select): Send SIGIO only to self, not to process group.
2344
2345 2012-11-18 Eli Zaretskii <eliz@gnu.org>
2346
2347 * w32select.c: Include w32common.h before w32term.h, so that
2348 windows.h gets included before w32term.h uses some of its
2349 features, see below.
2350
2351 * w32term.h (LOCALE_ENUMPROCA, LOCALE_ENUMPROCW) [_MSC_VER]:
2352 New typedefs.
2353 (EnumSystemLocalesA, EnumSystemLocalesW) [_MSC_VER]:
2354 New prototypes.
2355 (EnumSystemLocales) [_MSC_VER]: Define if undefined. (Bug#12878)
2356
2357 2012-11-18 Jan Djärv <jan.h.d@swipnet.se>
2358
2359 * nsterm.m (hold_event): Set send_appdefined to YES (Bug#12834).
2360 (ns_select): Return at once if events are held (Bug#12834).
2361
2362 2012-11-18 enami tsugutomo <tsugutomo.enami@jp.sony.com>
2363
2364 * unexelf.c (ELFSIZE) [__NetBSD__ && _LP64]: Set to 64.
2365 Needed following 2012-10-20 change. (Bug#12902)
2366
2367 2012-11-18 Juanma Barranquero <lekktu@gmail.com>
2368
2369 * w32proc.c (waitpid): Remove unused label get_result.
2370
2371 2012-11-17 Juanma Barranquero <lekktu@gmail.com>
2372
2373 * makefile.w32-in (SYSWAIT_H): New macro.
2374 ($(BLD)/callproc.$(O), $(BLD)/w32proc.$(O), $(BLD)/process.$(O))
2375 ($(BLD)/sysdep.$(O)): Update dependencies.
2376
2377 2012-11-17 Paul Eggert <eggert@cs.ucla.edu>
2378
2379 Assume POSIX 1003.1-1988 or later for fcntl.h (Bug#12881).
2380 * callproc.c (relocate_fd): Assume F_DUPFD.
2381 * emacs.c, term.c (O_RDWR): Remove.
2382 * keyboard.c (tty_read_avail_input): Use O_NONBLOCK rather than
2383 O_NDELAY, since O_NONBLOCK is the standard name for this flag.
2384 * nsterm.m: Assume <fcntl.h> exists.
2385 * process.c (NON_BLOCKING_CONNECT, allocate_pty, create_process)
2386 (create_pty, Fmake_network_process, server_accept_connection)
2387 (wait_reading_process_output, init_process_emacs):
2388 Assume O_NONBLOCK.
2389 (wait_reading_process_output): Put in a special case for WINDOWSNT
2390 to mimick the older behavior where it had O_NDELAY but not O_NONBLOCK.
2391 It's not clear this is needed, but it's a more-conservative change.
2392 (create_process): Assume FD_CLOEXEC.
2393 (create_process, create_pty): Assume O_NOCTTY.
2394 * sysdep.c (init_sys_modes, reset_sys_modes): Assume F_SETFL.
2395 (reset_sys_modes): Use O_NONBLOCK rather than O_NDELAY.
2396 Omit if not DOS_NT, since F_GETFL is not defined there.
2397 (serial_open): Assume O_NONBLOCK and O_NOCTTY.
2398 * term.c: Include <fcntl.h>, for flags like O_NOCTTY.
2399 (O_NOCTTY): Remove.
2400 (init_tty): Assume O_IGNORE_CTTY is defined to 0 on platforms that
2401 lack it, since gnulib guarantees this.
2402 * w32.c (fcntl): Test for O_NONBLOCK rather than O_NDELAY.
2403
2404 2012-11-17 Eli Zaretskii <eliz@gnu.org>
2405
2406 * w32.c (faccessat): Pretend that directories have the execute bit
2407 set. Emacs expects that, e.g., in files.el:cd-absolute.
2408
2409 * w32proc.c (create_child): Don't clip the PID of the child
2410 process to fit into an Emacs integer, as this is no longer a
2411 restriction.
2412 (waitpid): Rename from sys_wait. Emulate a Posix 'waitpid' by
2413 reaping only the process specified by PID argument, if that is
2414 positive. Use PID instead of dead_child to know which process to
2415 reap. Wait for the child to die only if WNOHANG is not in
2416 OPTIONS.
2417 (sys_select): Don't set dead_child.
2418
2419 * sysdep.c (wait_for_termination_1): Remove the WINDOWSNT portion,
2420 as it is no longer needed.
2421
2422 * process.c (waitpid, WUNTRACED) [!WNOHANG]: Remove definitions,
2423 no longer needed.
2424 (record_child_status_change): Remove the setting of
2425 record_at_most_one_child for the !WNOHANG case.
2426
2427 2012-11-17 Paul Eggert <eggert@cs.ucla.edu>
2428
2429 Fix problems in ns port found by static checking.
2430 * nsterm.m: Include <pthread.h>, for pthread_mutex_lock etc.
2431 (hold_event, setPosition:portion:whole:): Send SIGIO only to self,
2432 not to process group.
2433 (ns_select): Use emacs_write, not write, as that's more robust
2434 in the presence of signals.
2435 (fd_handler:): Check for read errors.
2436
2437 2012-11-16 Glenn Morris <rgm@gnu.org>
2438
2439 * editfns.c (Fmessage): Mention message-log-max. (Bug#12849)
2440
2441 2012-11-16 Stefan Monnier <monnier@iro.umontreal.ca>
2442
2443 * eval.c (Finteractive_p): Revert lexbind-merge mishap.
2444
2445 2012-11-16 Eli Zaretskii <eliz@gnu.org>
2446
2447 * w32proc.c (timer_loop): Make sure SuspendThread and ResumeThread
2448 use the same value of thread handle.
2449 (start_timer_thread): If the timer thread exited (due to error),
2450 clean up by closing the two handles it used. Duplicate the caller
2451 thread's handle here, so it gets duplicated only once, when
2452 launching the timer thread. Set priority of the timer thread, not
2453 the caller thread.
2454 (getitimer): Don't duplicate the caller thread's handle here.
2455 (Bug#12832)
2456
2457 2012-11-16 Jan Djärv <jan.h.d@swipnet.se>
2458
2459 * nsterm.m (hold_event): Send SIGIO to make sure ns_read_socket is
2460 called (Bug#12834).
2461
2462 2012-11-16 Paul Eggert <eggert@cs.ucla.edu>
2463
2464 Remove no-longer-used pty_max_bytes variable.
2465 * process.c (pty_max_bytes): Remove; unused.
2466 (send_process): Do not set it.
2467
2468 2012-11-15 Juanma Barranquero <lekktu@gmail.com>
2469
2470 * makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/emacs.$(O)):
2471 Update dependencies.
2472
2473 2012-11-15 Paul Eggert <eggert@cs.ucla.edu>
2474
2475 * eval.c (mark_backtrace) [BYTE_MARK_STACK]: Remove stray '*'.
2476 This follows up on the 2012-09-29 patch that removed indirection
2477 for the 'function' field. Reported by Sergey Vinokurov in
2478 <http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00263.html>.
2479
2480 2012-11-14 Eli Zaretskii <eliz@gnu.org>
2481
2482 * w32.c (faccessat): Rename from sys_faccessat. (No need to use a
2483 different name, as the MS runtime does not have such a function,
2484 and probably never will.) All callers changed. Ignore DIRFD
2485 value if PATH is an absolute file name, to match Posix spec
2486 better. If AT_SYMLINK_NOFOLLOW is set in FLAGS, don't resolve
2487 symlinks.
2488
2489 2012-11-14 Dmitry Antipov <dmantipov@yandex.ru>
2490
2491 * xdisp.c (echo_area_display, redisplay_internal):
2492 Omit redundant check whether frame_garbaged is set.
2493
2494 2012-11-14 Paul Eggert <eggert@cs.ucla.edu>
2495
2496 Use faccessat, not access, when checking file permissions (Bug#12632).
2497 This fixes a bug that has been present in Emacs since its creation.
2498 It was reported by Chris Torek in 1983 even before GNU Emacs existed,
2499 which must set some sort of record. (Torek's bug report was against
2500 a predecessor of GNU Emacs, but GNU Emacs happened to have the
2501 same common flaw.) See Torek's Usenet posting
2502 "setuid/setgid programs & Emacs" Article-I.D.: sri-arpa.858
2503 Posted: Fri Apr 8 14:18:56 1983.
2504 * Makefile.in (LIB_EACCESS): New macro.
2505 (LIBES): Use it.
2506 * callproc.c (init_callproc):
2507 * charset.c (init_charset):
2508 * fileio.c (check_existing, check_executable, check_writable)
2509 (Ffile_readable_p):
2510 * lread.c (openp, load_path_check):
2511 * process.c (allocate_pty):
2512 * xrdb.c (file_p):
2513 Use effective UID when checking permissions, not real UID.
2514 * callproc.c (init_callproc):
2515 * charset.c (init_charset):
2516 * lread.c (load_path_check, init_lread):
2517 Test whether directories are accessible, not merely whether they exist.
2518 * conf_post.h (GNULIB_SUPPORT_ONLY_AT_FDCWD): New macro.
2519 * fileio.c (check_existing, check_executable, check_writable)
2520 (Ffile_readable_p):
2521 Use symbolic names instead of integers for the flags, as they're
2522 portable now.
2523 (check_writable): New arg AMODE. All uses changed.
2524 Set errno on failure.
2525 (Ffile_readable_p): Use faccessat, not stat + open + close.
2526 (Ffile_writable_p): No need to call check_existing + check_writable.
2527 Just call check_writable and then look at errno. This saves a syscall.
2528 dir should never be nil; replace an unnecessary runtime check
2529 with an eassert. When checking the parent directory of a nonexistent
2530 file, check that the directory is searchable as well as writable, as
2531 we can't create files in unsearchable directories.
2532 (file_directory_p): New function, which uses 'stat' on most platforms
2533 but faccessat with D_OK (for efficiency) if WINDOWSNT.
2534 (Ffile_directory_p, Fset_file_times): Use it.
2535 (file_accessible_directory_p): New function, which uses a single
2536 syscall for efficiency.
2537 (Ffile_accessible_directory_p): Use it.
2538 * xrdb.c (file_p): Use file_directory_p.
2539 * lisp.h (file_directory_p, file_accessible_directory_p): New decls.
2540 * lread.c (openp): When opening a file, use fstat rather than
2541 stat, as that avoids a permissions race. When not opening a file,
2542 use file_directory_p rather than stat.
2543 (dir_warning): First arg is now a usage string, not a format.
2544 Use errno. All uses changed.
2545 * nsterm.m (ns_term_init): Remove unnecessary call to file-readable
2546 that merely introduced a race.
2547 * process.c, sysdep.c, term.c: All uses of '#ifdef O_NONBLOCK'
2548 changed to '#if O_NONBLOCK', to accommodate gnulib O_* style,
2549 and similarly for the other O_* flags.
2550 * w32.c (sys_faccessat): Rename from sys_access and switch to
2551 faccessat's API. All uses changed.
2552 * xrdb.c: Do not include <sys/stat.h>; no longer needed.
2553 (magic_db): Rename from magic_file_p.
2554 (magic_db, search_magic_path): Return an XrmDatabase rather than a
2555 char *, so that we don't have to test for file existence
2556 separately from opening the file for reading. This removes a race
2557 fixes a permission-checking problem, and simplifies the code.
2558 All uses changed.
2559 (file_p): Remove; no longer needed.
2560
2561 2012-11-13 Dmitry Antipov <dmantipov@yandex.ru>
2562
2563 Omit glyphs initialization at startup.
2564 * dispnew.c (glyphs_initialized_initially_p): Remove.
2565 (adjust_frame_glyphs_initially): Likewise. Adjust users.
2566 (Fredraw_frame): Move actual code from here...
2567 (redraw_frame): ...to here. Add eassert. Adjust comment.
2568 (Fredraw_display): Use redraw_frame.
2569 * xdisp.c (clear_garbaged_frames): Likewise.
2570
2571 2012-11-13 Eli Zaretskii <eliz@gnu.org>
2572
2573 * xdisp.c (decode_mode_spec): Limit the value of WIDTH argument
2574 passed to pint2str and pint2hrstr to be at most the size of the
2575 frame's decode_mode_spec_buffer. This avoids crashes with very
2576 large values of FIELD_WIDTH argument to decode_mode_spec.
2577 (Bug#12867)
2578
2579 2012-11-13 Paul Eggert <eggert@cs.ucla.edu>
2580
2581 Fix a race with verify-visited-file-modtime (Bug#12863).
2582 Since at least 1991 Emacs has ignored an mtime difference of no
2583 more than one second, but my guess is that this was to work around
2584 file system bugs that were fixed long ago. Since the race is
2585 causing problems now, let's remove that code.
2586 * fileio.c (Fverify_visited_file_modtime): Do not accept a file
2587 whose time stamp is off by no more than a second. Insist that the
2588 file time stamps match exactly.
2589
2590 2012-11-12 Dmitry Antipov <dmantipov@yandex.ru>
2591
2592 * frame.h (struct frame): Convert external_tool_bar member to
2593 1-bit unsigned bitfield.
2594 * termhooks.h (struct terminal): Remove mouse_moved member since
2595 all users are long dead. Adjust comment on mouse_position_hook.
2596
2597 2012-11-12 Dmitry Antipov <dmantipov@yandex.ru>
2598
2599 Simplify by using FOR_EACH_FRAME here and there.
2600 * frame.c (next_frame, prev_frame, other_visible_frames)
2601 (delete_frame, visible-frame-list): Use FOR_EACH_FRAME.
2602 * w32term.c (x_window_to_scroll_bar): Likewise.
2603 * window.c (window_list): Likewise.
2604 * xdisp.c (x_consider_frame_title): Likewise.
2605 * xfaces.c ( Fdisplay_supports_face_attributes_p): Likewise.
2606 * xfns.c (x_window_to_frame, x_any_window_to_frame)
2607 (x_menubar_window_to_frame, x_top_window_to_frame): Likewise.
2608 * xmenu.c (menubar_id_to_frame): Likewise.
2609 * xselect.c (frame_for_x_selection): Likewise.
2610 * xterm.c (x_frame_of_widget, x_window_to_scroll_bar)
2611 (x_window_to_menu_bar): Likewise.
2612 * w32fns.c (x_window_to_frame): Likewise. Adjust comment.
2613
2614 2012-11-12 Paul Eggert <eggert@cs.ucla.edu>
2615
2616 * data.c (Qdefalias_fset_function): Now static.
2617
2618 Another tweak to vectorlike_header change.
2619 * alloc.c (struct Lisp_Vectorlike_Free, NEXT_IN_FREE_LIST):
2620 Remove, and replace all uses with ...
2621 (next_in_free_list, set_next_in_free_list):
2622 New functions, which respect C's aliasing rules better.
2623
2624 2012-11-11 Paul Eggert <eggert@cs.ucla.edu>
2625
2626 * window.c (list4i): Rename from 'quad'. All uses changed.
2627 Needed because <sys/types.h> defines 'quad' on Solaris 10.
2628
2629 2012-11-11 Juanma Barranquero <lekktu@gmail.com>
2630
2631 * xdisp.c (start_hourglass) [HAVE_NTGUI]: Add block to silence
2632 warning about mixing declarations and code in ISO C90.
2633
2634 2012-11-10 Martin Rudalics <rudalics@gmx.at>
2635
2636 * window.c (Fsplit_window_internal): Set combination limit of
2637 new parent window to t iff Vwindow_combination_limit is t;
2638 fixing a regression introduced with the change from 2012-09-22.
2639 (Fset_window_combination_limit): Fix doc-string.
2640
2641 2012-11-10 Eli Zaretskii <eliz@gnu.org>
2642
2643 * xdisp.c (try_scrolling): Fix correction of aggressive-scroll
2644 amount when the scroll margins are too large. When scrolling
2645 backwards in the buffer, give up if cannot reach point or the
2646 scroll margin within a reasonable number of screen lines.
2647 Fixes point position in window under scroll-up/down-aggressively when
2648 point is positioned many lines beyond the window top/bottom.
2649 (Bug#12811)
2650
2651 * ralloc.c (relinquish): If real_morecore fails to return memory
2652 to the system, don't crash; instead, leave the last heap
2653 unchanged and return. (Bug#12774)
2654
2655 2012-11-09 Stefan Monnier <monnier@iro.umontreal.ca>
2656
2657 * lisp.h (AUTOLOADP): New macro.
2658 * eval.c (Fautoload): Don't attach to loadhist, call Fdefalias instead.
2659 * data.c (Ffset): Remove special ad-advice-info handling.
2660 (Fdefalias): Handle autoload definitions and new Qdefalias_fset_function.
2661 (Fsubr_arity): CSE.
2662 (Finteractive_form): Simplify.
2663 (Fquo): Don't insist on having at least 2 arguments.
2664 (Qdefalias_fset_function): New var.
2665
2666 2012-11-09 Jan Djärv <jan.h.d@swipnet.se>
2667
2668 * image.c (xpm_make_color_table_h): Change to hashtest_equal.
2669
2670 * nsfont.m (Qcondensed, Qexpanded): New variables.
2671 (ns_descriptor_to_entity): Restore Qcondensed, Qexpanded setting.
2672 (syms_of_nsfont): Defsym Qcondensed, Qexpanded.
2673
2674 2012-11-09 Dmitry Antipov <dmantipov@yandex.ru>
2675
2676 Fix recently introduced crash on MS-Windows (Bug#12839).
2677 * w32term.h (struct scroll_bar): Use convenient header.
2678 (SCROLL_BAR_VEC_SIZE): Remove.
2679 * w32term.c (x_scroll_bar_create): Use VECSIZE.
2680
2681 2012-11-09 Dmitry Antipov <dmantipov@yandex.ru>
2682
2683 Tweak last vectorlike_header change.
2684 * alloc.c (struct Lisp_Vectorlike_Free): Special type to represent
2685 vectorlike object on the free list. This is introduced to avoid
2686 some (but not all) pointer casting and aliasing problems, see
2687 http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00105.html.
2688 * .gdbinit (pvectype, pvecsize): New commands to examine vectorlike
2689 objects.
2690 (xvectype, xvecsize): Use them to examine Lisp_Object values.
2691
2692 2012-11-09 Jan Djärv <jan.h.d@swipnet.se>
2693
2694 * nsfont.m (ns_descriptor_to_entity): Qcondensed and Qexpanded has
2695 been removed, so remove them here also.
2696
2697 2012-11-09 Stefan Monnier <monnier@iro.umontreal.ca>
2698
2699 * doc.c (Fdocumentation): Handle new property
2700 dynamic-docstring-function to replace the old ad-advice-info.
2701
2702 2012-11-09 Paul Eggert <eggert@cs.ucla.edu>
2703
2704 * fns.c (Qeql, hashtest_eq): Now static.
2705
2706 2012-11-08 Stefan Monnier <monnier@iro.umontreal.ca>
2707
2708 * lisp.h (XHASH): Redefine to be imperfect and fit in a Lisp int.
2709 * fns.c (hashfn_eq, hashfn_eql, sxhash):
2710 * profiler.c (hashfn_profiler): Don't use XUINT on non-integers.
2711 * buffer.c (compare_overlays): Use XLI rather than XHASH.
2712
2713 2012-11-08 Paul Eggert <eggert@cs.ucla.edu>
2714
2715 Use same hash function for hashfn_profiler as for hash_string etc.
2716 * fns.c (SXHASH_COMBINE): Remove. All uses replaced by sxhash_combine.
2717 * lisp.h (sxhash_combine): New inline function, with the contents
2718 of the old SXHASH_COMBINE.
2719 * profiler.c (hashfn_profiler): Use it, instead of having a
2720 special hash function containing a comparison that always yields 1.
2721
2722 2012-11-08 Stefan Monnier <monnier@iro.umontreal.ca>
2723
2724 * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic)
2725 (Qultra_condensed, Qextra_condensed, Qcondensed, Qsemi_condensed)
2726 (Qsemi_expanded, Qextra_expanded, Qexpanded, Qultra_expanded):
2727 Remove unused vars.
2728
2729 2012-11-08 Jan Djärv <jan.h.d@swipnet.se>
2730
2731 * image.c (xpm_make_color_table_h): Fix compiler error because
2732 make_hash_table changed.
2733
2734 2012-11-08 Thomas Kappler <tkappler@gmail.com> (tiny change)
2735
2736 * nsfont.m (ns_findfonts): Handle empty matchingDescs (Bug#11541).
2737
2738 2012-11-08 Stefan Monnier <monnier@iro.umontreal.ca>
2739
2740 Use ad-hoc comparison function for the profiler's hash-tables.
2741 * profiler.c (Qprofiler_backtrace_equal, hashtest_profiler): New vars.
2742 (make_log): Use them.
2743 (handle_profiler_signal): Don't inhibit quit any longer since we don't
2744 call Fequal any more.
2745 (Ffunction_equal): New function.
2746 (cmpfn_profiler, hashfn_profiler): New functions.
2747 (syms_of_profiler): Initialize them.
2748 * lisp.h (struct hash_table_test): New struct.
2749 (struct Lisp_Hash_Table): Use it.
2750 * alloc.c (mark_object): Mark hash_table_test fields of hash tables.
2751 * fns.c (make_hash_table): Take a struct to describe the test.
2752 (cmpfn_eql, cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
2753 (hashfn_equal, hashfn_user_defined): Adjust to new calling convention.
2754 (hash_lookup, hash_remove_from_table): Move assertion checking of
2755 hashfn result here. Check hash-equality before calling cmpfn.
2756 (Fmake_hash_table): Adjust call to make_hash_table.
2757 (hashtest_eq, hashtest_eql, hashtest_equal): New structs.
2758 (syms_of_fns): Initialize them.
2759 * emacs.c (main): Move syms_of_fns earlier.
2760 * xterm.c (syms_of_xterm):
2761 * category.c (hash_get_category_set): Adjust call to make_hash_table.
2762 * print.c (print_object): Adjust to new hash-table struct.
2763 * composite.c (composition_gstring_put_cache): Adjust to new hashfn.
2764
2765 2012-11-08 Eli Zaretskii <eliz@gnu.org>
2766
2767 * w32fns.c (modifier_set): Fix handling of Scroll Lock when the
2768 value of w32-scroll-lock-modifier is neither nil nor one of the
2769 known key modifiers. (Bug#12806)
2770
2771 2012-11-08 Dmitry Antipov <dmantipov@yandex.ru>
2772
2773 Shrink struct vectorlike_header to the only size field.
2774 * lisp.h (enum pvec_type): Avoid explicit enum member values.
2775 Adjust comment.
2776 (enum More_Lisp_Bits): Change PSEUDOVECTOR_SIZE_BITS and
2777 PVEC_TYPE_MASK to arrange new bitfield in the vector header.
2778 (PSEUDOVECTOR_REST_BITS, PSEUDOVECTOR_REST_MASK): New members.
2779 (PSEUDOVECTOR_AREA_BITS): New member used to extract subtype
2780 information from the vector header. Adjust comment.
2781 (XSETPVECTYPE, XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR)
2782 (PSEUDOVECTOR_TYPEP, DEFUN): Adjust to match new vector header
2783 layout.
2784 (XSETSUBR, SUBRP): Adjust to match new Lisp_Subr layout.
2785 (struct vectorlike_header): Remove next member. Adjust comment.
2786 (struct Lisp_Subr): Add convenient header. Adjust comment.
2787 (allocate_pseudovector): Adjust prototype.
2788 * alloc.c (mark_glyph_matrix, mark_face_cache, allocate_string)
2789 (sweep_string, lisp_malloc): Remove useless prototypes.
2790 (enum mem_type): Adjust comment.
2791 (NEXT_IN_FREE_LIST): New macro.
2792 (SETUP_ON_FREE_LIST): Adjust XSETPVECTYPESIZE usage.
2793 (Fmake_bool_vector): Likewise.
2794 (struct large_vector): New type to represent allocation unit for
2795 the vectors with the memory footprint more than VBLOOCK_BYTES_MAX.
2796 (large_vectors): Change type to struct large_vector.
2797 (allocate_vector_from_block): Simplify.
2798 (PSEUDOVECTOR_NBYTES): Replace with...
2799 (vector_nbytes): ...new function. Adjust users.
2800 (sweep_vectors): Adjust processing of large vectors.
2801 (allocate_vectorlike): Likewise.
2802 (allocate_pseudovector): Change type of 3rd arg to enum pvec_type.
2803 Add easserts. Adjust XSETPVECTYPESIZE usage.
2804 (allocate_buffer): Use BUFFER_PVEC_INIT.
2805 (live_vector_p): Adjust to match large vector.
2806 * buffer.c (init_buffer_once): Use BUFFER_PVEC_INIT.
2807 * buffer.h (struct buffer): Add next member.
2808 (BUFFER_LISP_SIZE, BUFFER_REST_SIZE, BUFFER_PVEC_INIT):
2809 New macros.
2810 (FOR_EACH_BUFFER): Adjust to match struct buffer change.
2811 * fns.c (internal_equal): Adjust to match enum pvec_type change.
2812 (copy_hash_table): Adjust to match vector header change.
2813 * lread.c (defsubr): Use XSETPVECTYPE.
2814 * .gdbinit (xpr, xbacktrace): Adjust to match vector header change.
2815 (xvectype): Likewise. Print PVEC_NORMAL_VECTOR for regular vectors.
2816 (xvecsize): New command.
2817
2818 2012-11-08 Dmitry Antipov <dmantipov@yandex.ru>
2819
2820 * keyboard.c (event_to_kboard): Do not dereference
2821 frame_or_window field of SELECTION_REQUEST_EVENT
2822 and SELECTION_CLEAR_EVENT events (Bug#12814).
2823 * xterm.h (struct selection_input_event): Adjust comment.
2824
2825 2012-11-07 Eli Zaretskii <eliz@gnu.org>
2826
2827 * w32fns.c (modifier_set): Don't report modifiers from toggle key,
2828 such as Scroll Lock, if the respective keys are treated as
2829 function keys, not as modifiers. This avoids destroying non-ASCII
2830 keyboard input when Scroll Lock is toggled ON. (Bug#12806)
2831
2832 2012-11-07 Dmitry Antipov <dmantipov@yandex.ru>
2833
2834 * xfns.c (Fx_wm_set_size_hint): Use check_x_frame. Adjust docstring.
2835
2836 2012-11-06 Paul Eggert <eggert@cs.ucla.edu>
2837
2838 Restore some duplicate definitions (Bug#12814).
2839 This undoes part of the 2012-11-03 changes. Some people build
2840 with plain -g rather than with -g3, and they need the duplicate
2841 definitions for .gdbinit to work; see <http://bugs.gnu.org/12814#26>.
2842 * lisp.h (GCTYPEBITS, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK):
2843 Define as macros, as well as as enums or as constants.
2844
2845 2012-11-06 Jan Djärv <jan.h.d@swipnet.se>
2846
2847 * nsterm.m (convert_ns_to_X_keysym, keyDown:): Add NSNumericPadKeyMask
2848 to keypad keys (Bug#12816).
2849
2850 2012-11-06 Paul Eggert <eggert@cs.ucla.edu>
2851
2852 Minor adjustments of recently-changed frame functions.
2853 * buffer.c (Fbuffer_list): Omit CHECK_FRAME, since arg is already
2854 known to be a frame (we're in the FRAMEP branch).
2855 * lisp.h (Qframep): Remove decl. frame.h declares this.
2856 * window.c (quad): Args are of type EMACS_INT, not ptrdiff_t,
2857 since they're meant for Lisp fixnum values.
2858
2859 2012-11-06 Dmitry Antipov <dmantipov@yandex.ru>
2860
2861 * window.c (Fwindow_combination_limit): Revert to the only
2862 required argument and adjust docstring as suggested in
2863 http://lists.gnu.org/archive/html/emacs-diffs/2012-11/msg01082.html
2864 by Martin Rudalics <rudalics@gmx.at>.
2865
2866 2012-11-06 Dmitry Antipov <dmantipov@yandex.ru>
2867
2868 Widely used frame validity and checking functions.
2869 * frame.h (decode_live_frame, decode_any_frame): Add prototypes.
2870 * frame.c (decode_live_frame, decode_any_frame): New functions.
2871 (delete_frame, Fredirect_frame_focus, Fframe_parameters)
2872 (Fframe_parameter, Fframe_char_height, Fframe_char_width)
2873 (Fframe_pixel_height, Fframe_pixel_width, Ftool_bar_pixel_width)
2874 (Fframe_pointer_visible_p): Use decode_any_frame.
2875 (Fmake_frame_visible, Fmake_frame_invisible, Ficonify_frame)
2876 (Fraise_frame, Flower_frame, Fmodify_frame_parameters)
2877 (Fset_frame_height, Fset_frame_width): Use decode_live_frame.
2878 (Fframe_focus): Likewise. Allow zero number of arguments.
2879 Adjust docstring.
2880 (frame_buffer_list, frame_buffer_predicate): Remove.
2881 * lisp.h (frame_buffer_predicate): Remove prototype.
2882 * buffer.c (Fother_buffer): Use decode_any_frame.
2883 * xdisp.c (Ftool_bar_lines_needed): Likewise.
2884 * xfaces.c (Fcolor_gray_p, Fcolor_supported_p): Likewise.
2885 * font.c (Ffont_face_attributes, Ffont_family_list, Fopen_font)
2886 (Fclose_font, Ffont_info): Use decode_live_frame.
2887 * fontset.c (check_fontset_name): Likewise.
2888 * terminal.c (Fframe_terminal): Likewise.
2889 * w32fns.c (check_x_frame): Likewise.
2890 * window.c (Fminibuffer_window, Fwindow_at)
2891 (Fcurrent_window_configuration): Likewise.
2892 (Frun_window_configuration_change_hook, Fwindow_resize_apply):
2893 Likewise. Allow zero number of arguments. Adjust docstring.
2894 * dispnew.c (Fredraw_frame): Likewise.
2895 * xfaces.c (frame_or_selected_frame): Remove.
2896 (Fx_list_fonts, Finternal_get_lisp_face_attribute, Fface_font)
2897 (Finternal_lisp_face_equal_p, Finternal_lisp_face_empty_p)
2898 (Fframe_face_alist): Use decode_live_frame.
2899 * xfns.c (check_x_frame): Likewise.
2900
2901 2012-11-06 Dmitry Antipov <dmantipov@yandex.ru>
2902
2903 * window.c (quad): New function.
2904 (Fwindow_edges, Fwindow_pixel_edges, Fwindow_inside_edges)
2905 (Fwindow_absolute_pixel_edges, Fwindow_inside_absolute_pixel_edges)
2906 (Fwindow_inside_pixel_edges, Fpos_visible_in_window_p)
2907 (Fwindow_line_height): Use it.
2908 (Fwindow_fringes): Use list3.
2909 (Fwindow_scroll_bars): Use list4.
2910 (Fwindow_frame, Fwindow_top_child, Fwindow_left_child)
2911 (Fwindow_combination_limit): Allow zero number of arguments.
2912
2913 2012-11-05 Eli Zaretskii <eliz@gnu.org>
2914
2915 * makefile.w32-in ($(BLD)/w32fns.$(O)): Depend on $(NT_INC)/unistd.h.
2916
2917 * w32fns.c: Include unistd.h, to avoid compiler warnings on Cygwin.
2918 (emacs_abort) [CYGWIN]: Don't call _open_osfhandle; instead, use
2919 file descriptor 2 for standard error. (Bug#12805)
2920
2921 2012-11-05 Chong Yidong <cyd@gnu.org>
2922
2923 * process.c (wait_reading_process_output): Revert previous change.
2924
2925 2012-11-05 Paul Eggert <eggert@cs.ucla.edu>
2926
2927 Assume at least POSIX.1-1988 for getpgrp, setpgid, setsid (Bug#12800).
2928 This removes code that has been obsolete since around 1990.
2929 * callproc.c (Fcall_process):
2930 * emacs.c (main):
2931 * process.c (create_process):
2932 * term.c (dissociate_if_controlling_tty):
2933 Assume setsid exists.
2934 * callproc.c (child_setup): Assume setpgid exists and behaves as
2935 per POSIX.1-1988 or later.
2936 * conf_post.h (setpgid) [!HAVE_SETPGID]: Remove.
2937 * emacs.c (shut_down_emacs):
2938 * sysdep.c (sys_suspend, init_foreground_group):
2939 Assume getpgrp behaves as per POSIX.1-1998 or later.
2940 * msdos.c (setpgrp): Remove.
2941 (tcgetpgrp, setpgid, setsid): New functions.
2942 * systty.h (EMACS_GETPGRP): Remove. All callers now use getpgrp.
2943 * term.c (no_controlling_tty): Remove; unused.
2944 * w32proc.c (setpgrp): Remove.
2945 (setsid, tcgetpgrp): New functions.
2946
2947 Simplify by assuming __fpending.
2948 * dispnew.c: Include <fpending.h>, not <stdio_ext.h>.
2949 (update_frame_1): Use __fpending, not PENDING_OUTPUT_COUNT.
2950 Do not assume that __fpending's result fits in int.
2951
2952 2012-11-04 Paul Eggert <eggert@cs.ucla.edu>
2953
2954 Remove EMACS_OUTQSIZE+sleep hack.
2955 * dispnew.c (update_frame_1): Remove hack for terminals slower
2956 than 2400 bps, which throttled Emacs by having it sleep.
2957 This code hasn't worked since at least 2007, when the multi-tty stuff
2958 was added, and anyway those old terminals are long dead.
2959 * systty.h (EMACS_OUTQSIZE): Remove; unused. The macro isn't used even
2960 without the dispnew.c change, as dispnew.c doesn't include systty.h.
2961
2962 Fix data-loss with --version (Bug#9574).
2963 * emacs.c (close_output_streams): Use strerror, not emacs_strerror,
2964 as we can't assume that emacs_strerror is initialized, and strerror
2965 is good enough here.
2966 (main): Invoke atexit earlier, to catch earlier instances of
2967 sending data to stdout and exiting, e.g., "emacs --version >/dev/full".
2968
2969 2012-11-04 Michael Marchionna <tralfaz@pacbell.net>
2970
2971 * nsterm.m: Add NSClearLineFunctionKey and keypad keys (Bug#8680).
2972 (keyDown): Remap keypad keys to X11 virtual key codes.
2973
2974 2012-11-03 Paul Eggert <eggert@cs.ucla.edu>
2975
2976 Fix data-loss with --batch (Bug#9574).
2977 * emacs.c: Include <close-stream.h>.
2978 (close_output_streams): New function.
2979 (main): Pass it to atexit, so that Emacs closes stdout and stderr
2980 and handles errors appropriately.
2981 (Fkill_emacs): Don't worry about flushing, as close_output_stream
2982 does that now.
2983
2984 Fix a race condition that causes Emacs to mess up glib (Bug#8855).
2985 The symptom is a diagnostic "GLib-WARNING **: In call to
2986 g_spawn_sync(), exit status of a child process was requested but
2987 SIGCHLD action was set to SIG_IGN and ECHILD was received by
2988 waitpid(), so exit status can't be returned." The diagnostic
2989 is partly wrong, as the SIGCHLD action is not set to SIG_IGN.
2990 The real bug is a race condition between Emacs and glib: Emacs
2991 does a waitpid (-1, ...) and reaps glib's subprocess by mistake,
2992 so that glib can't find it. Work around the bug by invoking
2993 waitpid only on subprocesses that Emacs itself creates.
2994 * process.c (create_process, record_child_status_change):
2995 Don't use special value -1 in pid field, as the caller now must
2996 know the pid rather than having the callee infer it.
2997 The inference was sometimes incorrect anyway, due to another race.
2998 (create_process): Set new 'alive' member if child is created.
2999 (process_status_retrieved): New function.
3000 (record_child_status_change): Use it.
3001 Accept negative 1st argument, which means to wait for the
3002 processes that Emacs already knows about. Move special-case code
3003 for DOS_NT (which lacks WNOHANG) here, from caller. Keep track of
3004 processes that have already been waited for, by testing and
3005 clearing new 'alive' member.
3006 (CAN_HANDLE_MULTIPLE_CHILDREN): Remove, as record_child_status_change
3007 now does this internally.
3008 (handle_child_signal): Let record_child_status_change do all
3009 the work, since we do not want to reap all exited child processes,
3010 only the child processes that Emacs itself created.
3011 * process.h (Lisp_Process): New boolean member 'alive'.
3012
3013 Omit duplicate definitions no longer needed with gcc -g3.
3014 * lisp.h (GCTYPEBITS, GCALIGNMENT, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG)
3015 (VALMASK, MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM):
3016 Define only as macros. There's no longer any need to also define
3017 these symbols as enums or as constants, since we now assume
3018 gcc -g3 when debugging.
3019
3020 2012-11-03 Eli Zaretskii <eliz@gnu.org>
3021
3022 * lisp.mk: Adjust comments to the fact that term/internal is now
3023 loaded from loadup.el.
3024
3025 * msdos.c (msdos_abort): Rename from emacs_abort, and make static.
3026 (msdos_fatal_signal): New function.
3027 (XMenuActivate): Adjust the call to kbd_buffer_events_waiting to
3028 its argument list.
3029
3030 * conf_post.h (_GL_EXECINFO_INLINE) [MSDOS]: Define to "inline"
3031 for GCC versions before 4.
3032 (emacs_raise): Define to call msdos_fatal_signal.
3033
3034 * xdisp.c (init_from_display_pos): Fix initialization of the bidi
3035 iterator when starting in the middle of a display or overlay
3036 string. (Bug#12745)
3037
3038 2012-11-03 Chong Yidong <cyd@gnu.org>
3039
3040 * process.c (wait_reading_process_output): Clean up the last
3041 change.
3042
3043 2012-11-03 Jim Paris <jim@jtan.com> (tiny change)
3044
3045 * process.c (wait_reading_process_output): Avoid a race condition
3046 with SIGIO delivery (Bug#11536).
3047
3048 2012-11-03 Chong Yidong <cyd@gnu.org>
3049
3050 * buffer.c (cursor_type): Untabify docstring.
3051
3052 2012-11-03 Dmitry Antipov <dmantipov@yandex.ru>
3053
3054 * frame.h (struct frame): Drop can_have_scroll_bars member
3055 which is meaningless for a long time. Adjust comments.
3056 (FRAME_CAN_HAVE_SCROLL_BARS): Remove.
3057 * frame.c, nsfns.m, term.c, w32fns.c, xfns.c: Adjust users.
3058
3059 2012-11-03 Dmitry Antipov <dmantipov@yandex.ru>
3060
3061 * window.c (decode_next_window_args): Update window arg after
3062 calling decode_live_window and so fix crash reported at
3063 http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00035.html
3064 by Juanma Barranquero <lekktu@gmail.com>.
3065 (Fwindow_body_width, Fwindow_body_height): Simplify a bit.
3066 * font.c (Ffont_at): Likewise.
3067
3068 2012-11-01 Jan Djärv <jan.h.d@swipnet.se>
3069
3070 * widget.c (resize_cb): New function.
3071 (EmacsFrameRealize): Add resize_cb as event handler (Bug#12733).
3072 (EmacsFrameResize): Check if all is up to date before changing frame
3073 size.
3074
3075 2012-11-02 Eli Zaretskii <eliz@gnu.org>
3076
3077 Implement backtrace output for fatal errors on MS-Windows.
3078 * w32fns.c (CaptureStackBackTrace_proc): New typedef.
3079 (BACKTRACE_LIMIT_MAX): New macro.
3080 (w32_backtrace): New function.
3081 (emacs_abort): Use w32_backtrace when the user chooses not to
3082 attach a debugger. Update the text of the abort dialog.
3083
3084 2012-11-02 Dmitry Antipov <dmantipov@yandex.ru>
3085
3086 Window-related stuff cleanup here and there.
3087 * dispnew.c (Finternal_show_cursor, Finternal_show_cursor_p):
3088 Use decode_any_window.
3089 * fringe.c (Ffringe_bitmaps_at_pos): Likewise.
3090 * xdisp.c (Fformat_mode_line): Likewise.
3091 * font.c (Ffont_at): Use decode_live_window.
3092 * indent.c (Fcompute_motion, Fvertical_motion): Likewise.
3093 * window.c (decode_next_window_args): Likewise.
3094 (decode_any_window): Remove static.
3095 * window.h (decode_any_window): Add prototype.
3096 * lisp.h (CHECK_VALID_WINDOW, CHECK_LIVE_WINDOW): Move from here...
3097 * window.h: ...to here, redefine via WINDOW_VALID_P and WINDOW_LIVE_P,
3098 respectively.
3099
3100 2012-11-02 Dmitry Antipov <dmantipov@yandex.ru>
3101
3102 Remove pad from struct input_event.
3103 * termhooks.h (struct input_event): Remove padding field.
3104 Adjust comment.
3105 * keyboard.c (event_to_kboard): Simplify because frame_or_window
3106 member is never cons for a long time. Adjust comment.
3107 (mark_kboards): Adjust because SELECTION_REQUEST_EVENT and
3108 SELECTION_CLEAR_EVENT has no Lisp_Objects to mark. Add comment.
3109 * xterm.c (handle_one_xevent): Do not initialize frame_or_window
3110 field of SELECTION_REQUEST_EVENT and SELECTION_CLEAR_EVENT.
3111
3112 2012-11-01 Eli Zaretskii <eliz@gnu.org>
3113
3114 * w32proc.c (getpgrp, setpgid): New functions. (Bug#12776)
3115
3116 2012-10-31 Paul Eggert <eggert@cs.ucla.edu>
3117
3118 Fix crash when using Emacs as commit editor for git (Bug#12697).
3119 * callproc.c (setpgrp): Remove macro, as we now use setpgid
3120 and it is configured in conf_post.h.
3121 (Fcall_process): Don't invoke both setsid and setpgid; the former
3122 is enough, if it exists.
3123 * callproc.c (Fcall_process, child_setup):
3124 * process.c (create_process): Use setpgid.
3125 * conf_post.h (setpgid) [!HAVE_SETPGID]: New macro, which substitutes
3126 for the real thing.
3127 * dispnew.c (init_display): Initialize the foreground group
3128 if we are running a tty display.
3129 * emacs.c (main): Do not worry about setpgrp; init_display does it now.
3130 * lisp.h (init_foreground_group): New decl.
3131 * sysdep.c (inherited_pgroup): New static var.
3132 (init_foreground_group, tcsetpgrp_without_stopping)
3133 (narrow_foreground_group, widen_foreground_group): New functions.
3134 (init_sys_modes): Narrow foreground group.
3135 (reset_sys_modes): Widen foreground group.
3136
3137 2012-10-31 Michael Albinus <michael.albinus@gmx.de>
3138
3139 * dbusbind.c: Fix cut'n'waste error. Use HAVE_DBUS_VALIDATE_INTERFACE.
3140
3141 2012-10-31 Martin Rudalics <rudalics@gmx.at>
3142
3143 * minibuf.c (read_minibuf): Restore current buffer since
3144 choose_minibuf_frame calling Fset_frame_selected_window may
3145 change it (Bug#12766).
3146
3147 2012-10-30 Jan Djärv <jan.h.d@swipnet.se>
3148
3149 * frame.c (Fframe_pixel_height): Fix documentation (Bug#12733).
3150
3151 2012-10-30 Kenichi Handa <handa@gnu.org>
3152
3153 * font.c (Ffont_at): If WINDOW is specified and it is not
3154 displaying the current buffer, signal an error.
3155
3156 2012-10-29 Daniel Colascione <dancol@dancol.org>
3157
3158 * cygw32.h, cygw32.c (Qutf_16le, from_unicode, to_unicode):
3159 In preparation for fixing bug#12739, move these functions from
3160 here...
3161
3162 * coding.h, coding.c: ... to here, and compile them only when
3163 WINDOWSNT or CYGWIN. Moving these functions out of cygw32 proper
3164 lets us write cygw32-agnostic code for the HAVE_NTGUI case.
3165
3166 2012-10-28 Eli Zaretskii <eliz@gnu.org>
3167
3168 * w32proc.c (TIMER_TICKS_PER_SEC): New macro.
3169 (timer_loop, getitimer, setitimer): Use it instead of
3170 CLOCKS_PER_SEC, which is no longer pertinent, since we don't use
3171 'clock'.
3172 (w32_get_timer_time): Use 10*TIMER_TICKS_PER_SEC instead of a
3173 literal 10000.
3174
3175 2012-10-28 Jan Djärv <jan.h.d@swipnet.se>
3176
3177 * nsterm.m (NO_APPDEFINED_DATA): New define.
3178 (last_appdefined_event_data): New variable
3179 (last_appdefined_event): Remove.
3180 (ns_select): Initialize t from last_appdefined_event_data instead
3181 of [last_appdefined_event data1].
3182 (sendEvent:): Save [theEvent data1] to last_appdefined_event_data,
3183 remove last_appdefined_event (Bug#12698).
3184
3185 2012-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
3186
3187 * frame.c (x_set_font): Catch internal error.
3188
3189 2012-10-27 Eli Zaretskii <eliz@gnu.org>
3190
3191 Avoid overflow in w32 implementation of interval timers.
3192 When possible, for ITIMER_PROF count only times the main thread
3193 actually executes.
3194 * w32proc.c <struct itimer_data>: 'expire' and 'reload' are now
3195 'volatile ULONGLONG' types. All the other data which was
3196 previously clock_t is now ULONGLONG. 'terminate' is 'volatile int'.
3197 (GetThreadTimes_Proc): New typedef.
3198 (w32_get_timer_time): New function, returns a suitable time value
3199 for the timer.
3200 (timer_loop): Enter critical section when accessing ULONGLONG
3201 values of the itimer_data struct, as these accesses are no longer
3202 atomic. Call 'w32_get_timer_time' instead of 'clock'.
3203 Remove unused variable.
3204 (init_timers): Initialize s_pfn_Get_Thread_Times.
3205 (start_timer_thread): Don't assign itimer->caller_thread here.
3206 (getitimer): Assign itimer->caller_thread here.
3207 (setitimer): Always call getitimer to get the value of ticks_now.
3208 (sys_spawnve): Avoid compiler warning about format mismatch.
3209
3210 2012-10-26 Eli Zaretskii <eliz@gnu.org>
3211
3212 * w32fns.c (w32_wnd_proc) <WM_MOUSEMOVE>: Don't enable tracking of
3213 mouse movement events if the menu bar is active. This avoids
3214 producing a busy "hour-glass" cursor by Windows if the mouse
3215 pointer is positioned over a tooltip shown for some menu item.
3216
3217 2012-10-25 Paul Eggert <eggert@cs.ucla.edu>
3218
3219 Don't assume process IDs fit in int.
3220 * emacs.c (shut_down_emacs) [!DOS_NT]:
3221 * sysdep.c (sys_suspend) [SIGTSTP && !MSDOS]:
3222 * term.c (dissociate_if_controlling_tty) [!DOS_NT]:
3223 Use pid_t, not int, to store process IDs, as 'int'
3224 is not wide enough on a few platforms (e.g., AIX and IRIX).
3225
3226 2012-10-23 Kenichi Handa <handa@gnu.org>
3227
3228 The following change is to make face-font-rescale-alist work
3229 correctly for non-ASCII fonts.
3230
3231 * font.c (font_open_entity): Don't handle Vface_font_rescale_alist.
3232 (font_open_for_lface): Handle Vface_font_rescale_alist.
3233
3234 2012-10-23 Chong Yidong <cyd@gnu.org>
3235
3236 * xfaces.c (Vfont_list_limit): Move unused variable to faces.el.
3237
3238 2012-10-21 Jan Djärv <jan.h.d@swipnet.se>
3239
3240 * nsfont.m (nsfont_open, ns_glyph_metrics): Force integer advancement
3241 for screen font.
3242 (nsfont_draw): Turn off LCD-smoothing (Bug#11484).
3243
3244 * xterm.c (x_focus_changed): Check if daemonp when sending focus in
3245 event (Bug#12681).
3246
3247 2012-10-21 Glenn Morris <rgm@gnu.org>
3248
3249 * lisp.mk (lisp): Add cp51932.el and eucjp-ms.el.
3250
3251 2012-10-20 Paul Eggert <eggert@cs.ucla.edu>
3252
3253 Port to OpenBSD 5.1.
3254 * frame.c (Fmouse_position, Fmouse_pixel_position):
3255 * xdisp.c (produce_stretch_glyph):
3256 Declare local vars only when they're needed.
3257 This is clearer and avoids a warning on OpenBSD about unused vars.
3258 * frame.h (FRAME_WINDOW_P): Always evaluate its argument.
3259 This is safer, and avoids OpenBSD warnings about unused vars.
3260 * keyboard.c (record_menu_key): Remove unnecessary decl.
3261 (poll_timer): Define only if POLL_FOR_INPUT is defined.
3262 * unexelf.c (ELFSIZE) [!ElfW]: Do not define if already defined,
3263 as our definition clashes with OpenBSD's.
3264 * xfaces.c (load_face_colors, check_lface_attrs)
3265 (get_lface_attributes_no_remap, get_lface_attributes)
3266 (lface_fully_specified_p, x_supports_face_attributes_p)
3267 (tty_supports_face_attributes_p, face_fontset, realize_face)
3268 (realize_x_face, realize_tty_face):
3269 Declare parameters to be Lisp_Object[LFACE_VECTOR_SIZE], not
3270 merely Lisp_Object *. This is more informative and avoids
3271 a warning on OpenBSD about accessing beyond an object's size.
3272
3273 2012-10-20 Chong Yidong <cyd@gnu.org>
3274
3275 * lread.c (Fload): Doc fix (Bug#12592).
3276
3277 2012-10-19 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
3278
3279 * font.c (Ffont_at): Fix previous change.
3280
3281 2012-10-19 Eli Zaretskii <eliz@gnu.org>
3282
3283 * puresize.h (BASE_PURESIZE): Bump the base value to 1700000.
3284 See http://lists.gnu.org/archive/html/emacs-devel/2012-10/msg00593.html
3285 for the reasons.
3286
3287 * alloc.c (NSTATICS): Decrease to 0x800.
3288
3289 2012-10-19 Stefan Monnier <monnier@iro.umontreal.ca>
3290
3291 * fns.c (Fnreverse): Include the problem element when signaling an
3292 error (bug#12677).
3293
3294 2012-10-18 Jan Djärv <jan.h.d@swipnet.se>
3295
3296 * nsterm.m (ns_select): Check writefds before call to
3297 FD_ISSET (Bug#12668).
3298
3299 2012-10-18 Daniel Colascione <dancol@dancol.org>
3300
3301 * alloc.c (NSTATICS): Increase from 0x650 to 0x1000
3302 (staticpro): If we run out of staticpro slots, die with an
3303 informative error instead of just calling emacs_abort.
3304
3305 2012-10-18 Martin Rudalics <rudalics@gmx.at>
3306
3307 Fix two flaws reported by Dmitry Antipov.
3308 * window.c (Ftemp_output_buffer_show): Remove.
3309 (Fwindow_vscroll, Fset_window_vscroll): Use decode_live_window.
3310 (syms_of_window): Remove defsubr for Stemp_output_buffer_show.
3311
3312 2012-10-17 Eli Zaretskii <eliz@gnu.org>
3313
3314 * makefile.w32-in ($(BLD)/w32.$(O)):
3315 ($(BLD)/vm-limit.$(O)):
3316 ($(BLD)/term.$(O)):
3317 ($(BLD)/unexw32.$(O)):
3318 ($(BLD)/fileio.$(O)):
3319 ($(BLD)/dispnew.$(O)): Update dependencies.
3320
3321 * w32term.h (w32_initialize_display_info, initialize_w32_display):
3322 Add prototypes.
3323
3324 * w32proc.c: Include ctype.h.
3325
3326 * w32.h (init_environment, check_windows_init_file)
3327 (syms_of_ntproc, syms_of_ntterm, dostounix_filename)
3328 (unixtodos_filename, init_winsock, srandom, random, sys_pipe)
3329 (set_process_dir, sys_spawnve, register_child, sys_sleep, getwd)
3330 (sys_link): Add prototypes.
3331
3332 * w32.c: Include w32select.h.
3333 (sys_access, e_malloc, sys_select): Add prototypes.
3334 (emacs_gnutls_pull): 'timeout' is now EMACS_TIME, not struct timeval.
3335
3336 * vm-limit.c [WINDOWSNT]: Include w32heap.h.
3337
3338 * unexw32.c: Include lisp.h and w32.h.
3339
3340 * term.c [WINDOWSNT]: Include w32term.h.
3341
3342 * process.c [WINDOWSNT]: Add prototype of sys_select.
3343
3344 * fileio.c [WINDOWSNT]: Include w32.h.
3345
3346 * dispnew.c [WINDOWSNT]: Include w32.h.
3347
3348 * cygw32.c (Fcygwin_convert_path_to_windows)
3349 (Fcygwin_convert_path_from_windows): Use EQ to compare 2
3350 Lisp_Object values. (Bug#12661)
3351
3352 * w32fns.c (w32_msg_pump): Use XIL instead of casting an integer
3353 to Lisp_Object. (Bug#12661)
3354
3355 2012-10-17 Kenichi Handa <handa@gnu.org>
3356
3357 * xdisp.c (reseat_1): Make the information stored in it->cmp_it
3358 invalidate.
3359
3360 2012-10-17 Dmitry Antipov <dmantipov@yandex.ru>
3361
3362 * buffer.c (Fkill_buffer): When unchaining the marker,
3363 reset its buffer pointer to NULL (Bug#12652).
3364
3365 2012-10-17 Dmitry Antipov <dmantipov@yandex.ru>
3366
3367 Do not verify indirection counters of killed buffers (Bug#12579).
3368 * buffer.h (BUFFER_CHECK_INDIRECTION): New macro.
3369 * buffer.c (compact_buffer, set_buffer_internal_1): Use it.
3370
3371 2012-10-16 Dmitry Antipov <dmantipov@yandex.ru>
3372
3373 * alloc.c (Fmake_byte_code): Fix typo in comment.
3374 * print.c (print_interval): Define as static to match prototype.
3375 * indent.c (disptab_matches_widthtab, recompute_width_table):
3376 Convert to eassert.
3377
3378 2012-10-16 Dmitry Antipov <dmantipov@yandex.ru>
3379
3380 * editfns.c (get_system_name): Remove.
3381 * lisp.h (get_system_name): Remove prototype.
3382 * xrdb.c (getenv, getpwuid, getpwnam): Remove prototypes.
3383 (get_environ_db): Use Vsystem_name. Avoid call to strlen.
3384
3385 2012-10-15 Daniel Colascione <dancol@dancol.org>
3386
3387 * dbusbind.c: Add comment explaining reason for previous change.
3388
3389 2012-10-15 Martin Rudalics <rudalics@gmx.at>
3390
3391 * window.c (Fwindow_end): Rewrite check whether cached position
3392 can be used (Bug#12600).
3393 (resize_frame_windows, grow_mini_window, shrink_mini_window):
3394 Set windows_or_buffers_changed.
3395
3396 2012-10-15 Daniel Colascione <dancol@dancol.org>
3397
3398 * dbusbind.c: Fix cygw32 build break when compiling with dbus
3399 enabled by undefining the symbol "interface", which the platform
3400 headers define to something incompatible.
3401
3402 2012-10-14 Daniel Colascione <dancol@dancol.org>
3403
3404 * image.c (init_tiff_functions, init_imagemagick_functions)
3405 (init_svg_functions): Fix cygw32 build break by using these
3406 functions only when WINDOWSNT _and_ HAVE_NTGUI.
3407
3408 2012-10-14 Jan Djärv <jan.h.d@swipnet.se>
3409
3410 * nsterm.m (ns_select): Count fd:s in writefs also (Bug#12422).
3411
3412 2012-10-13 Jan Djärv <jan.h.d@swipnet.se>
3413
3414 * gtkutil.c (xg_set_widget_bg): Divide by 65535 (Bug#12612).
3415
3416 2012-10-13 HANATAKA, Shinya <bogytech@gmail.com> (tiny change)
3417
3418 * coding.c (detect_coding): Set coding->id before calling
3419 this->detector.
3420
3421 2012-10-13 Andreas Schwab <schwab@linux-m68k.org>
3422
3423 * fileio.c: Formatting fixes.
3424
3425 2012-10-13 Paul Eggert <eggert@cs.ucla.edu>
3426
3427 Fix some stat-related races.
3428 * fileio.c (Fwrite_region): Avoid race condition if a file is
3429 removed or renamed by some other process immediately after Emacs
3430 writes it but before Emacs stats it. Do not assume that stat (or
3431 fstat) succeeds.
3432 * image.c (slurp_file): Resolve the file name with fopen + fstat
3433 rather than stat + fopen.
3434 (pbm_read_file) [0]: Remove unused code with stat race.
3435 * process.c (allocate_pty) [HAVE_PTYS && !PTY_ITERATION && !PTY_OPEN]:
3436 Remove ineffective code with stat race.
3437
3438 2012-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
3439
3440 * doc.c (get_doc_string): Don't signal an error if the file is missing.
3441
3442 2012-10-12 Jan Djärv <jan.h.d@swipnet.se>
3443
3444 * nsterm.m (hold_event_q): New static variable.
3445 (EV_TRAILER, sendScrollEventAtLoc:fromEvent:): Call hold_event if
3446 ! q_event_ptr.
3447 (hold_event): New function.
3448 (ns_read_socket): If hold_event_q have events, store them and
3449 return (Bug#12384).
3450 (setPosition:portion:whole:): Send SIGIO to ourselves if apploopnr
3451 is zero (Bug#12384).
3452
3453 2012-10-12 Juanma Barranquero <lekktu@gmail.com>
3454
3455 * makefile.w32-in ($(BLD)/w32select.$(O)): Update dependencies.
3456
3457 2012-10-12 Eli Zaretskii <eliz@gnu.org>
3458
3459 * makefile.w32-in ($(BLD)/fileio.$(O)): Add sys/file.h.
3460
3461 * fileio.c (check_existing): New function.
3462 (make_temp_name, Ffile_exists_p, Ffile_writable_p): Call it
3463 instead of calling 'stat', when what's needed is to check whether
3464 a file exists. This avoids expensive system calls on MS-Windows.
3465 (Bug#12587)
3466
3467 * w32.c (init_environment): Call 'check_existing' instead of 'stat'.
3468
3469 * lread.c (openp) [WINDOWSNT]: Call 'access' instead of 'stat' to
3470 determine whether a file exists and is not a directory.
3471
3472 * lisp.h (check_existing): Add prototype.
3473
3474 2012-10-12 Jan Djärv <jan.h.d@swipnet.se>
3475
3476 * nsfont.m (nsfont_open): Remove font cache, it is not GC correct.
3477
3478 2012-10-12 Glenn Morris <rgm@gnu.org>
3479
3480 * buffer.c (Fset_buffer): Doc fix. (Bug#12624)
3481
3482 2012-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
3483
3484 * buffer.c (Fkill_buffer): Null out the overlay list(s) as well.
3485
3486 * eval.c (Fautoload): Remember previous autoload status in load-history.
3487
3488 2012-10-11 Paul Eggert <eggert@cs.ucla.edu>
3489
3490 lread.c, macros.c, marker.c, menu.c, minibuf.c: Use bool for booleans.
3491 * lread.c (load_each_byte, new_backquote_flag, readchar)
3492 (read_filtered_event, lisp_file_lexically_bound_p)
3493 (safe_to_load_version, Fload, complete_filename_p, openp)
3494 (build_load_history, readevalloop, read_escape, read1)
3495 (string_to_number, read_vector, read_list):
3496 * macros.c (Fstart_kbd_macro):
3497 * marker.c (CONSIDER):
3498 * menu.c (parse_single_submenu, digest_single_submenu)
3499 (find_and_return_menu_selection, Fx_popup_menu):
3500 * minibuf.c (read_minibuf_noninteractive, read_minibuf)
3501 (Ftry_completion):
3502 * nsmenu.m (ns_update_menubar, runMenuAt:forFrame:keymaps:):
3503 (ns_menu_show):
3504 * xmenu.c (set_frame_menubar, create_and_show_popup_menu)
3505 (xmenu_show, xdialog_show):
3506 Use bool for booleans.
3507 * lread.c (safe_to_load_version): Rename from safe_to_load_p,
3508 as it's not a predicate. All uses changed. Omit unnecessary
3509 buffer termination.
3510
3511 2012-10-11 Dmitry Antipov <dmantipov@yandex.ru>
3512
3513 * editfns.c (save_excursion_save): Use nil if mark points to nowhere.
3514 (save_excursion_restore): Do not restore mark if it was not saved.
3515
3516 2012-10-11 Paul Eggert <eggert@cs.ucla.edu>
3517
3518 * marker.c (cached_modiff): EMACS_INT, not int.
3519
3520 * w32select.c (waiting_for_input): Declare by including "keyboard.h"
3521 instead of having a wrong decl.
3522 * nsmenu.m (waiting_for_input): Remove wrong decl.
3523
3524 2012-10-10 Paul Eggert <eggert@cs.ucla.edu>
3525
3526 keyboard.c, keymap.c: Use bool for booleans.
3527 * dispnew.c (sit_for): Distinguish between 3-way display_option
3528 and boolean do_display.
3529 * keyboard.c (single_kboard, this_command_key_count_reset)
3530 (waiting_for_input, echoing, immediate_quit, input_pending)
3531 (interrupt_input, interrupts_deferred, pop_kboard)
3532 (temporarily_switch_to_single_kboard, ignore_mouse_drag_p)
3533 (command_loop_1, adjust_point_for_property)
3534 (safe_run_hooks_error, input_polling_used, read_char):
3535 (help_char_p, readable_events, kbd_buffer_events_waiting)
3536 (kbd_buffer_get_event, timer_check_2, make_lispy_event)
3537 (lucid_event_type_list_p, get_input_pending):
3538 (gobble_input, menu_separator_name_p, menu_bar_item)
3539 (parse_menu_item, parse_tool_bar_item, read_char_x_menu_prompt)
3540 (read_char_minibuf_menu_prompt, access_keymap_keyremap)
3541 (keyremap_step, test_undefined, read_key_sequence)
3542 (detect_input_pending, detect_input_pending_ignore_squeezables)
3543 (detect_input_pending_run_timers, requeued_events_pending_p)
3544 (quit_throw_to_read_char, Fset_input_interrupt_mode):
3545 * keymap.c (get_keymap, keymap_parent, keymap_memberp)
3546 (access_keymap_1, access_keymap, map_keymap, get_keyelt)
3547 (Fdefine_key, Flookup_key, struct accessible_keymaps_data)
3548 (accessible_keymaps_1, Fkey_description, push_key_description):
3549 (shadow_lookup, struct where_is_internal_data)
3550 (where_is_internal, Fwhere_is_internal, where_is_internal_1)
3551 (Fdescribe_buffer_bindings, describe_map_tree, struct describe_map_elt)
3552 (describe_map, describe_vector):
3553 * menu.c (single_menu_item):
3554 * nsmenu.m (ns_update_menubar):
3555 * process.c (wait_reading_process_output):
3556 * search.c (scan_buffer, scan_newline):
3557 Use bool for boolean.
3558 * keyboard.c (timers_run, swallow_events)
3559 (detect_input_pending_run_timers):
3560 * process.c (wait_reading_process_output):
3561 Use unsigned for counter where wraparound-on-overflow is desired,
3562 since unsigned is guaranteed to have that behavior and signed is not.
3563 (read_char): Use ptrdiff_t for string length.
3564 (get_input_pending): Remove first argument, since it was always
3565 the same pointer-to-int (now pointer-to-boolean) &input_pending,
3566 and behave as if it had that value. Return new value of
3567 input_pending. All callers changed.
3568 * keyboard.h (struct kboard): Use unsigned : 1 for boolean member
3569 immediate_echo. Use ptrdiff_t for echo_after_prompt, since it's
3570 a string length.
3571 * keymap.c (push_key_description): Omit last arg, which was always 1.
3572 All callers changed.
3573
3574 * regex.c (immediate_quit) [emacs]: Remove duplicate decl.
3575
3576 2012-10-10 Juanma Barranquero <lekktu@gmail.com>
3577
3578 * makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/indent.$(O))
3579 ($(BLD)/term.$(O)): Update dependencies.
3580
3581 2012-10-10 Dmitry Antipov <dmantipov@yandex.ru>
3582
3583 * alloc.c (mark_object): Use meaningful PVEC_NORMAL_VECTOR.
3584 * lisp.h (enum pvec_type): Adjust comments and omit explicit
3585 initializer for PVEC_NORMAL_VECTOR.
3586
3587 2012-10-10 Paul Eggert <eggert@cs.ucla.edu>
3588
3589 Clean out old termopts cruft.
3590 * termopts.h (flow_control, meta_key): Remove unused decls.
3591 * dispnew.c, indent.c, nsterm.m, term.c, xsettings.c, xsmfns.c:
3592 Don't include termopts.h.
3593
3594 2012-10-10 Dmitry Antipov <dmantipov@yandex.ru>
3595
3596 * alloc.c (gc_sweep): Use pointer-to-a-pointer loop for buffers.
3597
3598 2012-10-10 Paul Eggert <eggert@cs.ucla.edu>
3599
3600 * commands.h (immediate_quit): Remove duplicate decl.
3601
3602 2012-10-09 Jan Djärv <jan.h.d@swipnet.se>
3603
3604 * nsfont.m (Vfonts_in_cache): Remove, not needed as font.c handles
3605 caching.
3606 (nsfont_open): Remove setting of Vfonts_in_cache.
3607 (syms_of_nsfont): Remove initialization of Vfonts_in_cache.
3608
3609 2012-10-09 Eli Zaretskii <eliz@gnu.org>
3610
3611 * w32fns.c (w32_last_error): Change the return value to DWORD, to
3612 match what GetLastError returns. Explain why the function is
3613 needed.
3614
3615 * frame.c (delete_frame): Rename local variable 'tooltip_frame' to
3616 'is_tooltip_frame', to avoid confusion with its global namesake.
3617
3618 2012-10-08 Daniel Colascione <dancol@dancol.org>
3619
3620 * xdisp.c (start_hourglass): Call w32_note_current_window when
3621 HAVE_NTGUI, not just WINDOWSNT, resolving a problem in the cygw32
3622 build that caused Emacs to display the hourglass cursor forever.
3623
3624 * w32fns.c (Fx_display_color_cells): Instead of using NCOLORS,
3625 which is broken under remote desktop, calculate the number of
3626 colors available for a display based on the display's number of
3627 planes and number of bits per pixel per plane. (bug#10397).
3628
3629 2012-10-08 Jan Djärv <jan.h.d@swipnet.se>
3630
3631 * nsfont.m (Vfonts_in_cache): New variable.
3632 (nsfont_open): Use unsignedLongLongValue for cache in case wide ints
3633 are used. Add cached fonts to Vfonts_in_cache.
3634 (syms_of_nsfont): Initialize and staticpro Vfonts_in_cache.
3635
3636 2012-10-08 Juanma Barranquero <lekktu@gmail.com>
3637
3638 * makefile.w32-in (LOCAL_FLAGS): Don't define HAVE_NTGUI, it's now
3639 in nt/config.nt.
3640 (FONT_H): Define after FRAME_H.
3641 ($(BLD)/emacs.$(O), $(BLD)/process.$(O), $(BLD)/w32heap.$(O)):
3642 Update dependencies.
3643
3644 * w32term.c: Remove leftover declaration of keyboard_codepage.
3645
3646 2012-10-08 Eli Zaretskii <eliz@gnu.org>
3647
3648 * makefile.w32-in (FONT_H): Add $(FRAME_H).
3649 (W32TERM_H): Add $(ATIMER_H) and $(FRAME_H).
3650 ($(BLD)/emacs.$(O), $(BLD)/w32console.$(O)): Update dependencies.
3651 (GLOBAL_SOURCES): Add cygw32.c.
3652 ($(BLD)/unexw32.$(O)):
3653 ($(BLD)/w32.$(O)):
3654 ($(BLD)/w32console.$(O)):
3655 ($(BLD)/w32fns.$(O)):
3656 ($(BLD)/w32heap.$(O)):
3657 ($(BLD)/w32menu.$(O)):
3658 ($(BLD)/w32proc.$(O)): Add w32common.h.
3659
3660 * w32fns.c (w32_color_map_lookup, x_to_w32_color): Argument is now
3661 'const char *'.
3662 (x_to_w32_color): Don't modify the argument, modify a copy instead.
3663
3664 2012-10-08 Daniel Colascione <dancol@dancol.org>
3665
3666 * w32term.h (WM_EMACS_BRINGTOTOP, WM_EMACS_INPUT_READY)
3667 (WM_EMACS_END): Change WM_EMACS_BRINGTOTOP from 22 to 21 to close
3668 accidental message numbering hole. Change other messages to
3669 match.
3670
3671 * w32select.h (HAVE_W32SELECT): Remove.
3672
3673 * w32select.c, w32proc.c, w32menu.c, w32console.c, w32.c: Include
3674 w32common.h instead of w32heap.h.
3675
3676 * w32heap.h (ROUND_UP, ROUND_DOWN, get_page_size)
3677 (get_allocation_unit, get_processor_type, get_w32_major_version)
3678 (get_w32_minor_version, sysinfo_cache, osinfo_cache)
3679 (w32_major_version, w32_minor_version, w32_build_number, OS_9X)
3680 (OS_NT, os_subtype, cache_system_info): Move declarations to
3681 w32common.
3682
3683 * w32heap.c: Include w32common.h.
3684 (sysinfo_cache, syspage_mask, osinfo_cache, w32_major_version)
3685 (w32_minor_version, w32_build_number, w32_subtype):
3686 Remove duplicate definitions.
3687
3688 * w32fns.c: Include w32common.h; include w32heap.h only in
3689 WINDOWSNT.
3690
3691 (Fx_file_dialog): Clarify comment on GetOpenFileName structure.
3692 Use `report_file_error' instead of `error' in order to better
3693 inform users of what went wrong. Increase NTGUI_UNICODE file
3694 dialog box file name length to 32k, the maximum allowed by the NT
3695 kernel.
3696
3697 * w32common.h: New file.
3698 (ROUND_UP, ROUND_DOWN, get_page_size)
3699 (get_allocation_unit, get_processor_type, get_w32_major_version)
3700 (get_w32_minor_version, sysinfo_cache, osinfo_cache)
3701 (w32_major_version, w32_minor_version, w32_build_number, OS_9X)
3702 (OS_NT, os_subtype, cache_system_info): Move here.
3703
3704 * unexw32.c, unexcw.c: Include w32common.h.
3705
3706 * emacs.c (main): Use (defined (WINDOWSNT) || defined
3707 HAVE_NTGUI) instead of removed HAVE_W32SELECT to decide whether
3708 to call syms_of_w32select.
3709
3710 * cygw32.h: Remove obsolete EXFUN declarations.
3711
3712 * cygw32.c (Qutf_16_le): Rename to Qutf_16le.
3713
3714 * Makefile.in (SOME_MACHINE_OBJECTS): Reverse accidental removal
3715 of w32inevt.o from SOME_MACHINE_OBJECTS.
3716
3717 2012-10-08 Daniel Colascione <dancol@dancol.org>
3718
3719 * image.c: Permanent fix for JPEG compilation issue --- limit
3720 jpeglib `boolean' redefinition to Cygwin builds.
3721
3722 2012-10-08 Eli Zaretskii <eliz@gnu.org>
3723
3724 * image.c (CHECK_LIB_AVAILABLE): Remove, no longer used.
3725
3726 * emacs.c (DAEMON_MUST_EXEC) [HAVE_NTGUI]: Define this only on
3727 Cygwin.
3728
3729 2012-10-08 Daniel Colascione <dancol@dancol.org>
3730
3731 * xfaces.c, xdisp.c, window.c, w32xfns.c, w32term.h, w32term.c,
3732 w32select.h w32select.c, w32proc.c, w32menu.c, w32inevt.c,
3733 w32help.c, w32font.c, w32font.c, w32fns.c, w32console.c, w32.h,
3734 w32.c, unexw32.c, termhooks.h, process.c, menu.c, keyboard.h,
3735 keyboard.c, image.c, frame.h, frame.c, fontset.c, font.h, font.c,
3736 emacs.c, dispextern.h, cygw32.h, cygw32.c, conf_post.h,
3737 Makefile.in: use HAVE_NTGUI for W32 GUI and WINDOWSNT for the
3738 operating system. defined(HAVE_NTGUI) && !defined(WINDOWSNT) is
3739 now a supported configuration.
3740
3741 * Makefile.in: consolidate image variables into LIBIMAGE; add
3742 W32_OBJ and W32_LIBS. Compile new files.
3743
3744 * conf_post.h:
3745 (_DebPrint) declare tracing facility for W32 debugging. We need
3746 to unify tracing later.
3747
3748 (NTGUI_UNICODE) Define when compiling for Cygwin to allow the
3749 unconditional use of W32 Unicode functions. Cygwin runs only on
3750 100% Unicode operating systems.
3751
3752 * cygw32.c: New file. Define Cygwin-specific facilities.
3753 (Fcygwin_convert_path_to_windows)
3754 (Fcygwin_convert_path_from_windows): New user functions for
3755 accessing Cygwin path-munging routines.
3756
3757 * cygw32.h: New file.
3758 (WCSDATA, to_unicode, from_unicode): Define facilities for storing
3759 UTF-16LE strings temporarily inside non-Lisp-visible string
3760 objects.
3761
3762 (w32_strerror): Just what it says on the tin.
3763
3764 * emacs.c: Make the NS fork-then-exec code for daemon-launching
3765 also run for Cygwin; both systems have the same problem with using
3766 GUI facilities in a forked child. Also call syms_of_cygw32,
3767 syms_of_w32select in correct places.
3768
3769 (DAEMON_MUST_EXEC): new macro defined to signal that a platform
3770 needs fork-then-exec for daemon launching.
3771
3772 * font.h: Include frame.h.
3773
3774 * image.c: Use the image library cache machinery only when we're
3775 compiling for native WINDOWSNT; Cygwin can use shared libraries
3776 like any other Unixlike system.
3777
3778 * keyboard.c: Clarify a comment regarding the input loop.
3779
3780 * menu.c: When NTGUI_UNICODE is defined, use Unicode menu
3781 functions directly instead of trying to detect at runtime that our
3782 host operating system supports them. We make this change for two
3783 reasons: Cygwin lacks support for the multibyte character
3784 conversion functions used by the legacy menu code, and Cygwin
3785 never needs to rely on non-Unicode APIs.
3786
3787 * unexw32.c (hinst): Declare extern.
3788
3789 * w32.c: Change header order;
3790 (w32_strerror): Move to w32fns.c because we need it for
3791 non-WINDOWSNT builds.
3792
3793 * w32.h: Add #error macro to make sure we don't include w32.h for
3794 Cygwin builds. Remove w32select declarations.
3795
3796 * w32console.c (w32_sys_ring_bell, Fset_message_beep): Move to
3797 w32fns.c. w32console.c is WINDOWSNT-only.
3798
3799 * w32fns.c: Include cygw32.h or w32.h depending on CYGWIN; more
3800 NTGUI_UNICODE tweaks. (See above.) Change _snprintf to the more
3801 POSIXy alternative.
3802 (faked_key, sysinfo_cache, osinfo_cahce, syspage_mask)
3803 (w32_major_version, w32_minor_version, w32_build_number)
3804 (os_subtype, sound_type): Define here
3805 (w32_defined_color): Make color parameter const for consistency
3806 with other _defined_color functions.
3807 (w32_createwindow): Unconditionally call w32_init_class instead of
3808 doing so only when hprevinst is non-NULL. Plumbing hprevinst
3809 through the code is complex and unnecessary because class
3810 registration is practically free.
3811 (w32_name_of_message): New EMACSDEBUG-only function.
3812 (Fset_message_beep): Move here
3813 (Fx_open_connection): Require that the display name for Windows be
3814 "w32" for consistency, emacsclient disambiguation, and maybe, one
3815 day, multi-window-system support.
3816 (file_dialog_callback): NTGUI_UNICODE changes; encode and decode
3817 Cygwin files for W32 GUI facilities, since these clearly don't
3818 expect Cygwin names.
3819 (_DebPrint): Define.
3820 (w32_strerror, w32_console_toggle_lock_key, w32_kbd_mods_to_emacs)
3821 (w32_kbd_patch_key, w32_sys_ring_bell): Move here.
3822 (Ssystem_move_file_to_trash): Define only for native WINDOWSNT.
3823 (w32_last_error): Remove.
3824
3825 * w32font.c: Define _strlwr to strlwr for non-WINDOWSNT builds.
3826
3827 * w32heap.c (syspage_mask): Declare here.
3828 (cache_system_info): Remove.
3829
3830 * w32inevt.c (faked_key): Define globally, not statically.
3831 (w32_kbd_mods_to_emacs, w32_kbd_patch_key, faked_key)
3832 (w32_console_toggle_lock_key): Move to w32fns.c.
3833
3834 * w32menu.c: Include setjmp.h. NTGUI_UNICODE changes throughout.
3835
3836 * w32proc.c (_DebPrint): Move to w32fns.c.
3837 * w32select.c: Include string.h, stdio.h for Cygwin.
3838 * w32select.h: New File.
3839
3840 * w32term.c: Include io.h for non-CYGWIN builds; needed for
3841 get_osfhandle.
3842 (w32_message_fd): New variable. Under Cygwin, holds the file
3843 descriptor the system used to tell us about pending thread
3844 messages.
3845
3846 (w32_init_term): Remove incorrect calls to fcntl and init_sigio
3847 that prevented compilation under non-WINDOWSNT systems.
3848
3849 (w32_initialize): Open /dev/windows and assign it to
3850 w32_message_fd. Provide w32 feature.
3851
3852 * w32term.h: Include frame.h, atimer.h. Declare various frame functions.
3853 (WM_EMACS_INPUT_READY): add.
3854 (prepend_msg, w32_message_fd): Declare globally.
3855
3856 * w32xfns.c:
3857 (keyboard_handle): Use only when WINDOWSNT.
3858 (notify_msg_ready): New function. Posts a message to the main
3859 thread's message queue under CYGWIN, which wakes up the main
3860 thread from select(2) by making the /dev/windows file descriptor
3861 ready. Under WINDOWSNT, it sets an event the same way the old
3862 code did.
3863
3864 (post, prepend_msg): Actually call notify_msg_ready instead of
3865 setting the input event directly.
3866
3867 2012-10-07 Eli Zaretskii <eliz@gnu.org>
3868
3869 * ralloc.c (relinquish): If a heap is ready to be relinquished,
3870 but it still has blocs in it, don't return it to the system,
3871 instead of aborting. (Bug#12402)
3872
3873 2012-10-07 Jan Djärv <jan.h.d@swipnet.se>
3874
3875 * nsterm.m (ns_dumpglyphs_image): Only draw slice of image (Bug#12506).
3876
3877 * nsterm.m (ns_update_auto_hide_menu_bar): Remove defintion of
3878 MAC_OS_X_VERSION_10_6.
3879 (syms_of_nsterm): Remove comment about Panther and above for
3880 ns-antialias-text.
3881 * nsterm.h (MAC_OS_X_VERSION_10_3, onTiger): Remove.
3882 (EmacsApp): Remove check for >= MAC_OS_X_VERSION_10_4.
3883 (struct nsfont_info): Remove check for >= MAC_OS_X_VERSION_10_3.
3884
3885 * nsselect.m (ns_string_from_pasteboard): Remove check for >=
3886 MAC_OS_X_VERSION_10_4.
3887
3888 * nsmenu.m (fillWithWidgetValue:): Remove code for <
3889 MAC_OS_X_VERSION_10_2.
3890
3891 * nsimage.m (setPixmapData, getPixelAtX, setAlphaAtX): Remove onTiger.
3892
3893 * nsfns.m (Fns_list_services): Remove comment and check for OSX < 10.4.
3894 (ns_do_applescript): Remove check for >= MAC_OS_X_VERSION_10_4.
3895
3896 * nsterm.m (ns_in_resize): Remove (Bug#12479).
3897 (ns_resize_handle_rect, mouseDown, mouseUp, mouseDragged): Remove.
3898 (ns_clear_frame, sendEvent, windowDidResize, drawRect:):
3899 Remove ns_in_resize check.
3900 (ns_clear_frame_area): Remove resize handle code.
3901
3902 * nsfns.m (ns_in_resize): Remove.
3903 (x_set_icon_name, ns_set_name, ns_set_name_as_filename):
3904 Remove ns_in_resize check.
3905
3906 2012-10-07 Paul Eggert <eggert@cs.ucla.edu>
3907
3908 Improve sys_siglist detection.
3909 * sysdep.c (sys_siglist, init_signals): Use _sys_siglist if it's
3910 defined as a macro, as is done in Solaris.
3911 (sys_siglist_entries): New macro.
3912 (save_strsignal): Use it.
3913 * syssignal.h (safe_strsignal): Now ATTRIBUTE_CONST, to pacify
3914 GCC 4.7.2 on Fedora 17 with the fixed sys_siglist detection.
3915
3916 2012-10-06 Jan Djärv <jan.h.d@swipnet.se>
3917
3918 * nsfns.m (Fx_create_frame): Call x_default_parameter with
3919 fullscreen/Fullscreen.
3920
3921 * nsterm.h (EmacsView): Rename tbar_height to tibar_height.
3922 tobar_height is new.
3923
3924 * nsterm.m (x_make_frame_visible): Check for fullscreen.
3925 (ns_fullscreen_hook): Activate old style fullscreen with a timer.
3926 (ns_term_init): Set activateIgnoringOtherApps if old style fullscreen.
3927 (windowDidResize:): Check for correct window if old style fullscreen.
3928 Capitalize word in comment. Remove incorrect comment.
3929 (initFrameFromEmacs:): tbar_height renamed tibar_height.
3930 (windowDidEnterFullScreen:): Toggle toolbar for fullscreen to fix
3931 error in drawing background.
3932 (toggleFullScreen:): Remove comment. Rearrange calls.
3933 Set toolbar values to zero, save old height in tobar_height.
3934 Restore tool bar height when leaving fullscreen.
3935 (canBecomeMainWindow): New function.
3936
3937 2012-10-06 Paul Eggert <eggert@cs.ucla.edu>
3938
3939 * keyboard.c (read_char): Remove unnecessary 'volatile's and label.
3940
3941 2012-10-05 Eli Zaretskii <eliz@gnu.org>
3942
3943 * w32proc.c (stop_timer_thread): Fix declaration of 'err'.
3944
3945 * w32.c (utime): Open the file with FILE_FLAG_BACKUP_SEMANTICS, so
3946 that time stamps of directories could also be changed.
3947 Don't request the too broad GENERIC_WRITE, only the more restrictive
3948 FILE_WRITE_ATTRIBUTES access rights.
3949
3950 * fileio.c (Fset_file_times): Special-case ignoring errors for
3951 directories only on MSDOS, not on MS-Windows.
3952
3953 2012-10-05 Ikumi Keita <ikumi@ikumi.que.jp> (tiny change)
3954
3955 * minibuf.c (Fcompleting_read): Doc fix. (Bug#12555)
3956
3957 2012-10-04 Eli Zaretskii <eliz@gnu.org>
3958
3959 * w32.c (utime): Test for INVALID_HANDLE_VALUE, not for NULL, to
3960 see whether CreateFile failed.
3961
3962 2012-10-04 Paul Eggert <eggert@cs.ucla.edu>
3963
3964 * profiler.c (handle_profiler_signal): Inhibit pending signals too,
3965 to avoid similar races.
3966 * keyboard.c (pending_signals): Now bool, not int.
3967
3968 Port timers to OpenBSD, plus check for timer failures.
3969 OpenBSD problem reported by Han Boetes.
3970 * profiler.c (setup_cpu_timer): Check for failure of timer_settime
3971 and/or setitimer.
3972 (Fprofiler_cpu_stop): Don't assume HAVE_SETITIMER.
3973 * syssignal.h (HAVE_ITIMERSPEC): New macro. This is for platforms
3974 like OpenBSD, which has timer_settime but does not declare it.
3975 OpenBSD does not define SIGEV_SIGNAL, so use that when deciding
3976 whether to use itimerspec-related primitives. All uses of
3977 HAVE_TIMER_SETTIME replaced with HAVE_ITIMERSPEC.
3978
3979 2012-10-02 Paul Eggert <eggert@cs.ucla.edu>
3980
3981 * profiler.c (handle_profiler_signal): Fix a malloc race
3982 that caused Emacs to hang on Fedora 17 when profiling Lisp.
3983
3984 2012-10-02 Jan Djärv <jan.h.d@swipnet.se>
3985
3986 * nsterm.m (windowDidEnterFullScreen): Remove fprintf.
3987
3988 2012-10-02 Eli Zaretskii <eliz@gnu.org>
3989
3990 * w32proc.c (sys_wait): Declare 'signame' 'const char *', to be
3991 consistent with the change in return value of 'safe_strsignal'.
3992
3993 2012-10-02 Paul Eggert <eggert@cs.ucla.edu>
3994
3995 Prefer plain 'static' to 'static inline' (Bug#12541).
3996 * bidi.c (bidi_get_type, bidi_check_type, bidi_get_category)
3997 (bidi_set_sor_type, bidi_push_embedding_level)
3998 (bidi_pop_embedding_level, bidi_remember_char, bidi_copy_it)
3999 (bidi_cache_reset, bidi_cache_shrink, bidi_cache_fetch_state)
4000 (bidi_cache_search, bidi_cache_ensure_space)
4001 (bidi_cache_iterator_state, bidi_cache_find)
4002 (bidi_peek_at_next_level, bidi_set_paragraph_end)
4003 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
4004 (bidi_explicit_dir_char, bidi_resolve_neutral_1):
4005 Now 'static', not 'static inline'.
4006
4007 Count overruns when profiling; change units to ns.
4008 * profiler.c (handle_profiler_signal): Count sampling intervals, not ms.
4009 Give extra weight to samples after overruns, to attempt to count
4010 the time more accurately.
4011 (setup_cpu_timer): Change sampling interval units from ms to ns, since
4012 the underlying primitives nominally do ns.
4013 (Fprofiler_cpu_start): Document the change. Mention that
4014 the sampling intervals are only approximate.
4015
4016 2012-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
4017
4018 * frame.c (Fmake_terminal_frame): Prefer safer CONSP over !NILP.
4019
4020 * coding.h (ENCODE_FILE, DECODE_FILE, DECODE_SYSTEM): Remove special
4021 case for the special 0 coding-system.
4022
4023 * buffer.c (Fset_buffer_multibyte): Signal an error instead of widening.
4024 (Fmake_overlay): Remove redundant tests.
4025 (fix_start_end_in_overlays): Remove redundant recentering.
4026
4027 2012-10-02 Juanma Barranquero <lekktu@gmail.com>
4028
4029 * makefile.w32-in ($(BLD)/alloc.$(O), $(BLD)/gmalloc.$(O)):
4030 Update dependencies.
4031
4032 2012-10-01 Paul Eggert <eggert@cs.ucla.edu>
4033
4034 Fix a malloc race condition involving strsignal.
4035 A signal can arrive in the middle of a malloc, and Emacs's signal
4036 handler can invoke strsignal, which can invoke malloc, which is
4037 not portable. This race condition bug makes Emacs hang on GNU/Linux.
4038 Fix it by altering the signal handler so that it does not invoke
4039 strsignal.
4040 * emacs.c (shut_down_emacs): Use safe_strsignal, not strsignal.
4041 * process.c (status_message): Use const pointer, in case strsignal
4042 is #defined to safe_strsignal.
4043 * sysdep.c (sys_siglist, init_signals): Always define and
4044 initialize a substitute sys_siglist if the system does not define
4045 one, even if HAVE_STRSIGNAL.
4046 (safe_strsignal): Rename from strsignal. Always define,
4047 using sys_siglist. Return a const pointer.
4048 * syssignal.h (safe_strsignal): New decl.
4049 (strsignal) [!HAVE_STRSIGNAL]: Define in terms of safe_strsignal.
4050
4051 2012-10-01 Eli Zaretskii <eliz@gnu.org>
4052
4053 * w32proc.c (timer_loop): Fix code that waits for timer
4054 expiration, to avoid high CPU usage.
4055
4056 2012-10-01 Stefan Monnier <monnier@iro.umontreal.ca>
4057
4058 * fns.c (check_hash_table, get_key_arg, maybe_resize_hash_table)
4059 (sweep_weak_table): Remove redundant prototypes.
4060
4061 2012-10-01 Fabrice Popineau <fabrice.popineau@gmail.com>
4062
4063 * emacs.c: Move the inclusion of TERM_HEADER after including
4064 windows.h on WINDOWSNT. This avoids compilation problems with
4065 MSVC.
4066
4067 2012-10-01 Eli Zaretskii <eliz@gnu.org>
4068
4069 * unexw32.c (OFFSET_TO_RVA, RVA_TO_OFFSET)
4070 (RVA_TO_SECTION_OFFSET): Encode all macro arguments in parentheses.
4071 (RVA_TO_PTR): Cast the result of RVA_TO_OFFSET to 'unsigned char *',
4072 as the previous version used 'void *'.
4073
4074 * ralloc.c (ROUNDUP): Fix last change.
4075 (MEM_ROUNDUP): Don't cast MEM_ALIGN, it is already of type
4076 'size_t'.
4077
4078 * w32proc.c <disable_itimers>: New static flag.
4079 (init_timers): Initialize it to zero, after creating the critical
4080 sections used by the timer threads.
4081 (term_timers): Set to 1 before deleting the critical sections.
4082 (getitimer, setitimer): If disable_itimers is non-zero, return an
4083 error indication without doing anything. Reported by Fabrice
4084 Popineau <fabrice.popineau@supelec.fr> as part of bug#12544.
4085 (alarm) [HAVE_SETITIMER]: Be more conformant to the expected
4086 return results.
4087 [!HAVE_SETITIMER]: Behave as the previous version that didn't
4088 support timers.
4089
4090 * emacs.c (shut_down_emacs) [WINDOWSNT]: Move the call to
4091 term_ntproc after all the other bookkeeping, to get timers working
4092 as long as possible.
4093
4094 2012-10-01 Paul Eggert <eggert@cs.ucla.edu>
4095
4096 * xdisp.c (syms_of_xdisp): Default message-log-max to 1000, not 100.
4097 Suggested by Juri Linkov in
4098 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00821.html>.
4099
4100 Prefer plain 'static' to 'static inline' (Bug#12541).
4101 With static functions, modern compilers inline pretty well by
4102 themselves; advice from programmers often hurts as much as it helps.
4103 On my host (x86-64, Fedora 17, GCC 4.7.2, default 'configure'),
4104 this change shrinks the text size of the Emacs executable by 1.1%
4105 without affecting CPU significantly in my benchmark.
4106 * alloc.c (mem_find, live_string_p, live_cons_p, live_symbol_p)
4107 (live_float_p, live_misc_p, live_vector_p, live_buffer_p)
4108 (mark_maybe_object, mark_maybe_pointer, bounded_number):
4109 * buffer.c (bset_abbrev_mode, bset_abbrev_table)
4110 (bset_auto_fill_function, bset_auto_save_file_format)
4111 (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
4112 (bset_bidi_display_reordering, bset_buffer_file_coding_system)
4113 (bset_cache_long_line_scans, bset_case_fold_search)
4114 (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
4115 (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
4116 (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
4117 (bset_fringe_indicator_alist, bset_fringes_outside_margins)
4118 (bset_header_line_format, bset_indicate_buffer_boundaries)
4119 (bset_indicate_empty_lines, bset_invisibility_spec)
4120 (bset_left_fringe_width, bset_major_mode, bset_mark)
4121 (bset_minor_modes, bset_mode_line_format, bset_mode_name)
4122 (bset_name, bset_overwrite_mode, bset_pt_marker)
4123 (bset_right_fringe_width, bset_save_length)
4124 (bset_scroll_bar_width, bset_scroll_down_aggressively)
4125 (bset_scroll_up_aggressively, bset_selective_display)
4126 (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
4127 (bset_word_wrap, bset_zv_marker, set_buffer_overlays_before)
4128 (set_buffer_overlays_after):
4129 * category.c (bset_category_table):
4130 * charset.c (read_hex):
4131 * coding.c (produce_composition, produce_charset)
4132 (handle_composition_annotation, handle_charset_annotation)
4133 (char_encodable_p):
4134 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers)
4135 (assign_row, set_frame_matrix_frame, make_current)
4136 (add_row_entry):
4137 * eval.c (set_specpdl_symbol, set_specpdl_old_value):
4138 * fns.c (maybe_resize_hash_table):
4139 * frame.c (fset_buffer_predicate, fset_minibuffer_window):
4140 * gmalloc.c (register_heapinfo):
4141 * image.c (lookup_image_type):
4142 * intervals.c (set_interval_object, set_interval_left)
4143 (set_interval_right, copy_interval_parent, rotate_right)
4144 (rotate_left, balance_possible_root_interval):
4145 * keyboard.c (kset_echo_string, kset_kbd_queue)
4146 (kset_keyboard_translate_table, kset_last_prefix_arg)
4147 (kset_last_repeatable_command, kset_local_function_key_map)
4148 (kset_overriding_terminal_local_map, kset_real_last_command)
4149 (kset_system_key_syms, clear_event, set_prop):
4150 * lread.c (digit_to_number):
4151 * marker.c (attach_marker, live_buffer, set_marker_internal):
4152 * nsterm.m (ns_compute_glyph_string_overhangs):
4153 * process.c (pset_buffer, pset_command)
4154 (pset_decode_coding_system, pset_decoding_buf)
4155 (pset_encode_coding_system, pset_encoding_buf, pset_filter)
4156 (pset_log, pset_mark, pset_name, pset_plist, pset_sentinel)
4157 (pset_status, pset_tty_name, pset_type, pset_write_queue):
4158 * syntax.c (bset_syntax_table, dec_bytepos):
4159 * terminal.c (tset_param_alist):
4160 * textprop.c (interval_has_some_properties)
4161 (interval_has_some_properties_list):
4162 * window.c (wset_combination_limit, wset_dedicated)
4163 (wset_display_table, wset_hchild, wset_left_fringe_width)
4164 (wset_left_margin_cols, wset_new_normal, wset_new_total)
4165 (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
4166 (wset_right_fringe_width, wset_right_margin_cols)
4167 (wset_scroll_bar_width, wset_start, wset_temslot, wset_vchild)
4168 (wset_vertical_scroll_bar_type, wset_window_parameters):
4169 * xdisp.c (wset_base_line_number, wset_base_line_pos)
4170 (wset_column_number_displayed, wset_region_showing)
4171 (window_box_edges, run_window_scroll_functions)
4172 (append_glyph_string_lists, prepend_glyph_string_lists)
4173 (append_glyph_string, set_glyph_string_background_width)
4174 (append_glyph, append_composite_glyph)
4175 (take_vertical_position_into_account):
4176 * xfaces.c (x_create_gc, x_free_gc, merge_face_vectors)
4177 (face_attr_equal_p, lface_equal_p, hash_string_case_insensitive)
4178 (lface_hash, lface_same_font_attributes_p, lookup_face):
4179 * xml.c (libxml2_loaded_p):
4180 * xterm.c (x_set_mode_line_face_gc, x_set_glyph_string_gc)
4181 (x_set_glyph_string_clipping, x_clear_glyph_string_rect):
4182 Now 'static', not 'static inline'.
4183
4184 * bidi.c: Tune.
4185 (bidi_copy_it): Do the whole copy with a single memcpy.
4186 (bidi_char_at_pos): Merge the two STRING_CHAR calls into one.
4187
4188 Revert the FOLLOW-SYMLINKS change for file-attributes.
4189 Doing it right would require several changes to Tramp, and there's
4190 not enough time to get that tested before the freeze today.
4191 * dired.c (directory_files_internal, Ffile_attributes):
4192 Undo last change.
4193
4194 * frame.c (x_report_frame_params): Port better to wider ints.
4195 Do not assume that EMACS_UINT is the same width as uprintmax_t,
4196 or that pointers can be printed in 15 decimal digits.
4197 Avoid GCC warnings if EMACS_UINT is wider than a pointer.
4198
4199 2012-09-30 Fabrice Popineau <fabrice.popineau@supelec.fr>
4200
4201 Support x64 build on MS-Windows.
4202 * w32term.h (SCROLL_BAR_PACK, SCROLL_BAR_UNPACK): Define for x64.
4203 (SET_SCROLL_BAR_W32_WINDOW): Cast ID to intptr_t, for
4204 compatibility with x64.
4205 (x_get_focus_frame): Add prototype.
4206
4207 * w32term.c (w32_draw_underwave): Don't use GCC extensions for
4208 defining an XRectangle structure.
4209
4210 * w32proc.c (RVA_TO_PTR, w32_executable_type): Fix pointer
4211 arithmetics for compatibility with x64.
4212
4213 * w32menu.c (add_menu_item): Use UINT_PTR instead of UINT, for
4214 compatibility with x64.
4215
4216 * w32heap.h: Adjust prototypes and declarations.
4217
4218 * w32heap.c (RVA_TO_PTR, allocate_heap, sbrk, init_heap)
4219 (round_heap): Use DWORD_PTR, ptrdiff_t and size_t instead of
4220 DWORD, long, and unsigned long, for compatibility with x64.
4221 (allocate_heap) [_WIN64]: Reserve 32GB of memory.
4222 (sbrk): Argument is now of type ptrdiff_t.
4223
4224 * w32fns.c (HMONITOR): Condition declaration on _WIN32_WINNT being
4225 less than 0x0500.
4226 (w32_msg_pump): Use WPARAM type for 'result'.
4227
4228 * w32.c (init_environment, get_emacs_configuration): Support AMD64
4229 architecture.
4230 (init_ntproc): Cast arguments of _open_osfhandle to intptr_t, for
4231 compatibility with x64.
4232
4233 * vm-limit.c (lim_data): Now size_t.
4234 (check_memory_limits): Adjust prototypes of real_morecore and
4235 __morecore to receive argument of type ptrdiff_t. Use size_t for
4236 five_percent and data_size.
4237
4238 * unexw32.c: Use DWORD_PTR instead of DWORD for file-scope
4239 variables, for compatibility with x64.
4240 (rva_to_section, offset_to_section, relocate_offset)
4241 (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET)
4242 (PTR_TO_RVA, RVA_TO_PTR, OFFSET_TO_PTR, get_section_info)
4243 (copy_executable_and_dump_data): Use DWORD_PTR instead of DWORD
4244 for compatibility with x64.
4245
4246 * sysdep.c (STDERR_FILENO): Define if not already defined.
4247
4248 * ralloc.c (real_morecore): Argument type is now ptrdiff_t.
4249 (__morecore): Argument type is now ptrdiff_t.
4250 (ROUNDUP, MEM_ROUNDUP): Use size_t instead of 'unsigned long'.
4251 (relinquish): Use ptrdiff_t type for 'excess'.
4252 (r_alloc_sbrk): Argument type is now ptrdiff_t.
4253
4254 * makefile.w32-in (HEAPSIZE): Get value from EMACS_HEAPSIZE.
4255 (bootstrap-temacs-CMD, bootstrap-temacs-SH): Use $(EMACS_PURESIZE)
4256 instead of a literal number.
4257
4258 * gmalloc.c [WINDOWSNT]: Include w32heap.h.
4259 (min): Define only if not already defined.
4260
4261 * frame.c (x_report_frame_params): Use EMACS_UINT for the return
4262 value of FRAME_X_WINDOW, to fit a 64-bit pointer on 64-bit Windows
4263 hosts.
4264
4265 * image.c (x_bitmap_pixmap): Return ptrdiff_t, not int, since
4266 'bitmaps' is a pointer.
4267
4268 * dispextern.h (x_bitmap_pixmap): Adjust prototype.
4269
4270 * alloc.c (gdb_make_enums_visible): Now conditional on __GNUC__.
4271
4272 2012-09-30 Paul Eggert <eggert@cs.ucla.edu>
4273
4274 file-attributes has a new optional arg FOLLOW-SYMLINKS.
4275 * dired.c (directory_files_internal, Ffile_attributes):
4276 New arg follow_symlinks. All uses changed.
4277
4278 2012-09-30 Stefan Monnier <monnier@iro.umontreal.ca>
4279
4280 * .gdbinit (xbacktrace): Adjust to recent "struct backtrace" change.
4281
4282 2012-09-30 Eli Zaretskii <eliz@gnu.org>
4283
4284 Support atimers and CPU profiler via profile.c on MS-Windows.
4285 * w32proc.c (sig_mask, crit_sig): New static variables.
4286 (sys_signal): Support SIGALRM and SIGPROF.
4287 (sigemptyset, sigaddset, sigfillset, sigprocmask)
4288 (pthread_sigmask, setpgrp): Move here from w32.c. sigaddset,
4289 sigfillset, and sigprocmask are no longer no-ops.
4290 (sigismember): New function.
4291 (struct itimer_data): New definition.
4292 (ticks_now, real_itimer, prof_itimer, clocks_min, crit_real)
4293 (crit_prof): New static variables.
4294 (MAX_SINGLE_SLEEP): New definition.
4295 (timer_loop, stop_timer_thread, term_timers, init_timers)
4296 (start_timer_thread, getitimer, setitimer): New functions.
4297 (alarm): No longer a no-op, calls setitimer.
4298
4299 * w32.c (term_ntproc): Call term_timers.
4300 (init_ntproc): Make sure all signals are unblocked at startup, to
4301 erase any traces of dumping. Call init_timers.
4302
4303 * w32fns.c (hourglass_timer, HOURGLASS_ID): Remove.
4304 Windows-specific code to display the hourglass mouse pointer is no
4305 longer used.
4306 (w32_wnd_proc): Remove code that handled the WM_TIMER message due
4307 to hourglass timer expiration.
4308 (start_hourglass, cancel_hourglass, DEFAULT_HOURGLASS_DELAY):
4309 Remove, no longer used.
4310 (w32_note_current_window, show_hourglass, hide_hourglass):
4311 New functions, in support of hourglass cursor display similar to other
4312 window systems.
4313 (syms_of_w32fns): Don't initialize hourglass_timer.
4314
4315 * xdisp.c (start_hourglass, cancel_hourglass): Now used on
4316 WINDOWSNT as well.
4317 (start_hourglass) [WINDOWSNT]: Call w32_note_current_window.
4318
4319 * w32.h (init_timers, term_timers): Add prototypes.
4320
4321 2012-09-30 Kenichi Handa <handa@gnu.org>
4322
4323 * coding.c (decode_coding_ccl, encode_coding_ccl): Pay attention
4324 to the buffer relocation which may be caused by ccl_driver.
4325
4326 2012-09-30 Jan Djärv <jan.h.d@swipnet.se>
4327
4328 * xfns.c (Fx_file_dialog): Update comment.
4329
4330 * w32fns.c (Fx_file_dialog): Update comment.
4331
4332 * nsfns.m (Fns_read_file_name): Add argument DIR_ONLY_P.
4333 Initialize panel name field if OSX >= 10.6.
4334
4335 * fileio.c (Fnext_read_file_uses_dialog_p): Add HAVE_NS.
4336
4337 * nsfns.m (ns_frame_parm_handlers): Add x_set_fullscreen.
4338
4339 * nsterm.m (NEW_STYLE_FS): New define.
4340 (ns_fullscreen_hook, windowWillEnterFullScreen)
4341 (windowDidEnterFullScreen, windowWillExitFullScreen)
4342 (windowDidExitFullScreen, toggleFullScreen, handleFS)
4343 (setFSValue): New functions.
4344 (EmacsFSWindow): New implementation.
4345 (canBecomeKeyWindow): New function for EmacsFSWindow.
4346 (ns_create_terminal): Set fullscreen_hook to ns_fullscreen_hook.
4347 (dealloc): Release nonfs_window if in fullscreen.
4348 (updateFrameSize:): Call windowDidMove to update top/left.
4349 (windowWillResize:toSize:): Check if frame is still maximized.
4350 (initFrameFromEmacs:): Initialize fs_state, fs_before_fs,
4351 next_maximized, maximized_width, maximized_height and nonfs_window.
4352 Call setCollectionBehavior if NEW_STYLE_FS. Initialize bwidth and
4353 tbar_height.
4354 (windowWillUseStandardFrame:defaultFrame:): Update frame parameter
4355 fullscreen. Set maximized_width/height. Act on next_maximized.
4356
4357 * nsterm.h (MAC_OS_X_VERSION_10_7, MAC_OS_X_VERSION_10_8): New.
4358 (EmacsView): Add variables for fullscreen.
4359 (handleFS, setFSValue, toggleFullScreen): New in EmacsView.
4360 (EmacsFSWindow): New interface for fullscreen.
4361
4362 2012-09-30 Juanma Barranquero <lekktu@gmail.com>
4363
4364 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
4365
4366 2012-09-30 Chong Yidong <cyd@gnu.org>
4367
4368 * fns.c (Frandom): Doc fix.
4369
4370 2012-09-30 Martin Rudalics <rudalics@gmx.at>
4371
4372 * window.c (Vwindow_combination_limit): New default value.
4373 (Qwindow_size): New symbol replacing Qtemp_buffer_resize.
4374
4375 2012-09-30 Paul Eggert <eggert@cs.ucla.edu>
4376
4377 * syssignal.h (PROFILER_CPU_SUPPORT): Don't define if PROFILING.
4378 Suggested by Eli Zaretskii in
4379 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00811.html>.
4380
4381 2012-09-30 Eli Zaretskii <eliz@gnu.org>
4382
4383 * profiler.c (Fprofiler_cpu_stop): Use timer_settime only if
4384 HAVE_TIMER_SETTIME is defined.
4385
4386 2012-09-30 Paul Eggert <eggert@cs.ucla.edu>
4387
4388 Profiler improvements: more-accurate timers, overflow checks.
4389 * profiler.c: Don't include stdio.h, limits.h, sys/time.h,
4390 signal.h, setjmp.h. Include systime.h instead.
4391 (saturated_add): New function.
4392 (record_backtrace, current_sample_interval): Use EMACS_INT, not size_t.
4393 (record_backtrace, handle_profiler_signal): Saturate on fixnum overflow.
4394 (profiler_timer, profiler_timer_ok) [HAVE_TIMER_SETTIME]:
4395 New static vars.
4396 (enum profiler_cpu_running): New enum.
4397 (profiler_cpu_running): Now of that enum type, not bool.
4398 All uses changed to store the new value.
4399 (handle_profiler_signal): Rename from sigprof_handler_1,
4400 for consistency with other handlers. Do not check whether
4401 cpu_log is a hash-table if garbage collecting, since it
4402 doesn't matter in that case.
4403 (deliver_profiler_signal): Rename from sigprof_handler,
4404 for consistency with other handlers.
4405 (setup_cpu_timer): New function, with much of what used to be in
4406 Fprofiler_cpu_start. Check for out-of-range argument.
4407 Prefer timer_settime if available, and prefer
4408 thread cputime clocks, then process cputime clocks, then
4409 monotonic clocks, to the old realtime clock. Use make_timeval
4410 to round more-correctly when falling back to setitimer.
4411 (Fprofiler_cpu_start): Use it.
4412 (Fprofiler_cpu_stop): Prefer timer_settime if available.
4413 Don't assume that passing NULL as the 2nd argument of setitimer
4414 is the same as passing a pointer to all-zero storage.
4415 Ignore SIGPROF afterwards.
4416 (malloc_probe): Saturate at MOST_POSITIVE_FIXNUM.
4417 * sysdep.c (emacs_sigaction_init): Also mask out SIGPROF in
4418 non-fatal signal handlers. Ignore SIGPROF on startup.
4419 * syssignal.h (PROFILER_CPU_SUPPORT): Define this macro here, not
4420 in profiler.c, since sysdep.c now uses it.
4421
4422 * sysdep.c (handle_fatal_signal): Bump backtrace size to 40.
4423 Suggested by Eli Zaretskii in
4424 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00796.html>.
4425
4426 2012-09-29 Juanma Barranquero <lekktu@gmail.com>
4427
4428 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
4429
4430 2012-09-29 Stefan Monnier <monnier@iro.umontreal.ca>
4431
4432 * lisp.h (struct backtrace): Remove indirection for `function' field.
4433 * xdisp.c (redisplay_internal):
4434 * profiler.c (record_backtrace, sigprof_handler_1):
4435 * alloc.c (Fgarbage_collect):
4436 * eval.c (interactive_p, Fsignal, eval_sub, Ffuncall, Fbacktrace)
4437 (Fbacktrace_frame): Adjust accordingly.
4438
4439 2012-09-28 Glenn Morris <rgm@gnu.org>
4440
4441 * eval.c (Frun_hook_with_args, Frun_hook_with_args_until_success)
4442 (Frun_hook_with_args_until_failure): Doc fixes.
4443
4444 2012-09-28 Eli Zaretskii <eliz@gnu.org>
4445
4446 * xdisp.c (syms_of_xdisp) <Qredisplay_internal>: Rename from
4447 Qautomatic_redisplay and change the symbol name. All users changed.
4448
4449 2012-09-28 Tomohiro Matsuyama <tomo@cx4a.org>
4450
4451 * profiler.c (sigprof_handler): Fix race condition.
4452
4453 2012-09-28 Glenn Morris <rgm@gnu.org>
4454
4455 * lread.c (lisp_file_lexically_bound_p): Handle #! lines. (Bug#12528)
4456
4457 2012-09-27 Paul Eggert <eggert@cs.ucla.edu>
4458
4459 Check more robustly for timer_settime.
4460 * Makefile.in (LIB_TIMER_TIME): New macro.
4461 (LIBES): Add it.
4462 * atimer.c (alarm_timer, alarm_timer_ok, set_alarm, init_atimer):
4463 Use HAVE_TIMER_SETTIME, not SIGEV_SIGNAL, to decide whether to
4464 call timer_settime.
4465
4466 2012-09-26 Tomohiro Matsuyama <tomo@cx4a.org>
4467
4468 * profiler.c (Fprofiler_cpu_start): Remove unnecessary flag SA_SIGINFO.
4469
4470 2012-09-26 Juanma Barranquero <lekktu@gmail.com>
4471
4472 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
4473
4474 2012-09-26 Paul Eggert <eggert@cs.ucla.edu>
4475
4476 * character.h (MAYBE_UNIFY_CHAR): Remove.
4477 * charset.c, charset.h (maybe_unify_char): Now static.
4478 * charset.c (decode_char): Use maybe_unify_char, not MAYBE_UNIFY_CHAR.
4479 Since this stuff is now private to charset.c, there's no need for
4480 a public macro and no need to inline by hand.
4481
4482 2012-09-26 Tomohiro Matsuyama <tomo@cx4a.org>
4483 Stefan Monnier <monnier@iro.umontreal.ca>
4484 Juanma Barranquero <lekktu@gmail.com>
4485
4486 * profiler.c: New file.
4487 * Makefile.in (base_obj): Add profiler.o.
4488 * makefile.w32-in (OBJ2, GLOBAL_SOURCES): Add profiler.c.
4489 ($(BLD)/profiler.$(O)): New target.
4490 * emacs.c (main): Call syms_of_profiler.
4491 * alloc.c (Qautomatic_gc): New constant.
4492 (MALLOC_PROBE): New macro.
4493 (xmalloc, xzalloc, xrealloc, lisp_malloc, lisp_align_malloc): Use it.
4494 (total_bytes_of_live_objects): New function.
4495 (Fgarbage_collect): Use it. Record itself in backtrace_list.
4496 Call malloc_probe for the memory profiler.
4497 (syms_of_alloc): Define Qautomatic_gc.
4498 * eval.c (eval_sub, Ffuncall): Reorder assignments to avoid
4499 race condition.
4500 (struct backtrace): Move definition...
4501 * lisp.h (struct backtrace): ..here.
4502 (Qautomatic_gc, profiler_memory_running): Declare vars.
4503 (malloc_probe, syms_of_profiler): Declare functions.
4504 * xdisp.c (Qautomatic_redisplay): New constant.
4505 (redisplay_internal): Record itself in backtrace_list.
4506 (syms_of_xdisp): Define Qautomatic_redisplay.
4507
4508 2012-09-25 Eli Zaretskii <eliz@gnu.org>
4509 2012-09-25 Juanma Barranquero <lekktu@gmail.com>
4510
4511 * makefile.w32-in ($(BLD)/callproc.$(O)): Update dependencies.
4512
4513 2012-09-25 Paul Eggert <eggert@cs.ucla.edu>
4514
4515 Prefer POSIX timers if available.
4516 They avoid a race if the timer is too close to the current time.
4517 * atimer.c (alarm_timer, alarm_timer_ok) [SIGEV_SIGNAL]: New static vars.
4518 (set_alarm) [SIGEV_SIGNAL]: Use POSIX timers if available.
4519 (init_atimer) [SIGEV_SIGNAL]: Initialize them.
4520
4521 2012-09-25 Eli Zaretskii <eliz@gnu.org>
4522
4523 * coding.c (CHAR_STRING_ADVANCE_NO_UNIFY): Make it an alias of
4524 CHAR_STRING_ADVANCE.
4525 (STRING_CHAR_ADVANCE_NO_UNIFY): Make it an alias of
4526 STRING_CHAR_ADVANCE.
4527
4528 2012-09-25 Juanma Barranquero <lekktu@gmail.com>
4529
4530 Move Vlibrary_cache to emacs.c and reset before dumping.
4531
4532 * lisp.h (reset_image_types): Declare.
4533 [WINDOWSNT] (Vlibrary_cache): Declare.
4534
4535 * image.c (reset_image_types): New function.
4536
4537 * emacs.c [WINDOWSNT] (Vlibrary_cache): Move from w32.c.
4538 (syms_of_emacs) [WINDOWSNT] <Vlibrary_cache>: Initialize and staticpro.
4539 (Fdump_emacs): Reset Vlibrary_cache and image_types.
4540
4541 * w32.c (Vlibrary_cache): Do not define; moved to emacs.c
4542 (globals_of_w32) <Vlibrary_cache>: Do not initialize.
4543
4544 * w32.h (Vlibrary_cache): Do not declare.
4545
4546 2012-09-25 Eli Zaretskii <eliz@gnu.org>
4547
4548 * w32proc.c (sys_signal): Handle all signals defined by the
4549 MS-Windows runtime, not just SIGCHLD. Actually install the signal
4550 handlers for signals supported by Windows. Don't override
4551 term_ntproc as the handler for SIGABRT.
4552 (sigaction): Rewrite to call sys_signal instead of duplicating its
4553 code.
4554 (sys_kill): Improve commentary.
4555
4556 * w32.c (term_ntproc): Accept (and ignore) one argument, for
4557 consistency with a signature of a signal handler. All callers
4558 changed.
4559 (init_ntproc): Accept an argument DUMPING. If dumping, don't
4560 install term_ntproc as a signal handler for SIGABRT, as that
4561 should be done by the dumped Emacs.
4562
4563 * w32.h (init_ntproc, term_ntproc): Adjust prototypes.
4564
4565 * w32select.c (term_w32select): Protect against repeated
4566 invocation by setting clipboard_owner to NULL after calling
4567 DestroyWindow.
4568
4569 * emacs.c (shut_down_emacs, main): Adapt the calls to init_ntproc
4570 and term_ntproc to their modified signatures.
4571
4572 * character.c (char_string, string_char): Remove calls to
4573 MAYBE_UNIFY_CHAR. See the discussion starting at
4574 http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00433.html
4575 for the details.
4576
4577 2012-09-25 Chong Yidong <cyd@gnu.org>
4578
4579 * xdisp.c (mode_line_inverse_video): Delete obsolete variable.
4580
4581 2012-09-24 Stefan Monnier <monnier@iro.umontreal.ca>
4582
4583 * bytecode.c (exec_byte_code): Signal an error instead of aborting,
4584 when encountering an unknown bytecode.
4585
4586 2012-09-24 Paul Eggert <eggert@cs.ucla.edu>
4587
4588 image.c, indent.c: Use bool for booleans.
4589 * dispextern.h (struct image_type): Members valid_p, load, init
4590 now return bool, not int. All uses changed.
4591 * image.c: Omit unnecessary static decls.
4592 (x_create_bitmap_mask, x_build_heuristic_mask):
4593 Return void, not int, since callers don't care about the return value.
4594 (x_create_bitmap_mask, define_image_type, valid_image_p)
4595 (struct image_keyword, parse_image_spec, image_spec_value)
4596 (check_image_size, image_background)
4597 (image_background_transparent, x_clear_image_1)
4598 (postprocess_image, lookup_image, x_check_image_size)
4599 (x_create_x_image_and_pixmap, xbm_image_p)
4600 (Create_Pixmap_From_Bitmap_Data, xbm_read_bitmap_data)
4601 (xbm_load_image, xbm_file_p, xbm_load, xpm_lookup_color)
4602 (init_xpm_functions, xpm_valid_color_symbols_p, xpm_image_p)
4603 (xpm_load, xpm_load_image, lookup_rgb_color, lookup_pixel_color)
4604 (x_to_xcolors, x_build_heuristic_mask, pbm_image_p, pbm_load)
4605 (png_image_p, init_png_functions, png_load_body, png_load)
4606 (jpeg_image_p, init_jpeg_functions, jpeg_load_body, jpeg_load)
4607 (tiff_image_p, init_tiff_functions, tiff_load, gif_image_p)
4608 (init_gif_functions, gif_load, imagemagick_image_p)
4609 (imagemagick_load_image, imagemagick_load, svg_image_p)
4610 (init_svg_functions, svg_load, svg_load_image, gs_image_p)
4611 (gs_load):
4612 * nsimage.m (ns_load_image):
4613 * nsterm.m (ns_defined_color):
4614 * xfaces.c (tty_lookup_color, tty_defined_color, defined_color):
4615 * xfns.c (x_defined_color):
4616 * xterm.c (x_alloc_lighter_color_for_widget)
4617 (x_alloc_nearest_color_1, x_alloc_nearest_color)
4618 (x_alloc_lighter_color):
4619 * indent.c (disptab_matches_widthtab, current_column)
4620 (scan_for_column, string_display_width, indented_beyond_p)
4621 (compute_motion, vmotion, Fvertical_motion):
4622 Use bool for booleans.
4623
4624 2012-09-24 Chong Yidong <cyd@gnu.org>
4625
4626 * chartab.c (Fset_char_table_default): Obsolete function removed.
4627
4628 2012-09-23 Paul Eggert <eggert@cs.ucla.edu>
4629
4630 Move pid_t related decls out of lisp.h.
4631 * lisp.h, syswait.h (record_child_status_change, wait_for_termination)
4632 (interruptible_wait_for_termination):
4633 Move these decls from lisp.h to syswait.h, since they use pid_t.
4634 Needed on FreeBSD; see Herbert J. Skuhra in
4635 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00571.html>.
4636 * callproc.c: Include syswait.h.
4637
4638 gnutls.c, gtkutil.c: Use bool for boolean.
4639 * gnutls.c (gnutls_global_initialized, init_gnutls_functions)
4640 (emacs_gnutls_handle_error):
4641 * gtkutil.c (xg_check_special_colors, xg_prepare_tooltip)
4642 (xg_hide_tooltip, xg_create_frame_widgets)
4643 (create_dialog, xg_uses_old_file_dialog)
4644 (xg_get_file_with_chooser, xg_get_file_with_selection)
4645 (xg_get_file_name, xg_have_tear_offs, create_menus, xg_create_widget)
4646 (xg_item_label_same_p, xg_update_menubar)
4647 (xg_modify_menubar_widgets, xg_event_is_for_menubar)
4648 (xg_ignore_gtk_scrollbar, xg_set_toolkit_scroll_bar_thumb)
4649 (xg_event_is_for_scrollbar, xg_pack_tool_bar, xg_make_tool_item)
4650 (is_box_type, xg_tool_item_stale_p, xg_update_tool_bar_sizes)
4651 (update_frame_tool_bar, free_frame_tool_bar):
4652 * gtkutil.c, w32term.c, xterm.c (x_wm_set_size_hint):
4653 * nsmenu.m (ns_update_menubar):
4654 * nsmenu.m, w32menu.c, xmenu.c (set_frame_menubar):
4655 * xfns.c (Fx_show_tip) [USE_GTK]:
4656 Use bool for boolean.
4657 * gtkutil.c (xg_update_frame_menubar):
4658 * xmenu.c (update_frame_menubar):
4659 Return void, not int, since caller ignores return value.
4660 * gtkutil.c (xg_change_toolbar_position):
4661 Return void, not 1.
4662
4663 2012-09-23 Juanma Barranquero <lekktu@gmail.com>
4664
4665 * makefile.w32-in (BLOCKINPUT_H): Remove.
4666 (SYSSIGNAL_H): New macro.
4667 ($(BLD)/alloc.$(O), $(BLD)/atimer.$(O), $(BLD)/buffer.$(O))
4668 ($(BLD)/callproc.$(O), $(BLD)/data.$(O), $(BLD)/dired.$(O))
4669 ($(BLD)/dispnew.$(O), $(BLD)/editfns.$(O), $(BLD)/emacs.$(O))
4670 ($(BLD)/eval.$(O), $(BLD)/fileio.$(O), $(BLD)/floatfns.$(O))
4671 ($(BLD)/fns.$(O), $(BLD)/fontset.$(O), $(BLD)/frame.$(O))
4672 ($(BLD)/fringe.$(O), $(BLD)/image.$(O), $(BLD)/insdel.$(O))
4673 ($(BLD)/keyboard.$(O), $(BLD)/keymap.$(O), $(BLD)/lread.$(O))
4674 ($(BLD)/menu.$(O), $(BLD)/w32inevt.$(O), $(BLD)/w32proc.$(O))
4675 ($(BLD)/print.$(O), $(BLD)/process.$(O), $(BLD)/ralloc.$(O))
4676 ($(BLD)/search.$(O), $(BLD)/sound.$(O), $(BLD)/sysdep.$(O))
4677 ($(BLD)/term.$(O), $(BLD)/window.$(O), $(BLD)/xdisp.$(O))
4678 ($(BLD)/xfaces.$(O), $(BLD)/w32fns.$(O), $(BLD)/w32menu.$(O))
4679 ($(BLD)/w32term.$(O), $(BLD)/w32select.$(O), $(BLD)/w32reg.$(O))
4680 ($(BLD)/w32xfns.$(O)): Update dependencies.
4681
4682 2012-09-23 Eli Zaretskii <eliz@gnu.org>
4683
4684 * .gdbinit: Set breakpoint on terminate_due_to_signal, not on
4685 fatal_error_backtrace.
4686
4687 * w32proc.c (sys_kill): Undo last change: don't do anything when
4688 invoked to deliver SIGABRT to our own process. This is now
4689 handled by emacs_raise.
4690
4691 2012-09-23 Juanma Barranquero <lekktu@gmail.com>
4692
4693 * w32term.c (w32_read_socket): Remove leftover reference to
4694 interrupt_input_pending.
4695
4696 2012-09-23 Paul Eggert <eggert@cs.ucla.edu>
4697
4698 Do not use SA_NODEFER.
4699 Problem reported by Dani Moncayo in
4700 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00557.html>.
4701 * alloc.c (die):
4702 * sysdep.c (emacs_abort): Do not reset signal handler.
4703 * emacs.c (terminate_due_to_signal): Reset signal handler here.
4704 * sysdep.c (init_signals): Do not use SA_NODEFER. It wasn't
4705 wanted even on POSIXish hosts, and it doesn't work on Windows.
4706
4707 2012-09-23 Jan Djärv <jan.h.d@swipnet.se>
4708
4709 * xterm.c (x_term_init): Call fixup_locale before and after calling
4710 gtk_init (Bug#12392).
4711
4712 2012-09-23 Chong Yidong <cyd@gnu.org>
4713
4714 * w32.c (w32_delayed_load): Remove LIBRARIES argument; always use
4715 Vdynamic_library_alist.
4716
4717 * gnutls.c (init_gnutls_functions): Caller changed; remove arg.
4718 (Fgnutls_available_p): Caller changed.
4719
4720 * xml.c (init_libxml2_functions, Flibxml_parse_html_region)
4721 (Flibxml_parse_xml_region): Likewise.
4722
4723 * dispextern.h (struct image_type): Remove arg from init function.
4724
4725 * image.c (Finit_image_library, lookup_image_type)
4726 (define_image_type): Remove now-unneeded second arg.
4727 (init_xpm_functions, init_png_functions, init_jpeg_functions)
4728 (init_tiff_functions, init_gif_functions, init_svg_functions):
4729 Arglist and w32_delayed_load calling convention changed.
4730 (gs_type): Remove init_gs_functions; there is no such function.
4731 (valid_image_p, make_image): Fix caller to lookup_image_type.
4732
4733 2012-09-23 Paul Eggert <eggert@cs.ucla.edu>
4734
4735 Simplify and avoid signal-handling races (Bug#12471).
4736 * alloc.c (die):
4737 * sysdep.c (emacs_abort) [HAVE_NTGUI]:
4738 Avoid recursive loop if there's a fatal error in the function itself.
4739 * atimer.c (pending_atimers):
4740 * blockinput.h: Don't include "atimer.h"; no longer needed.
4741 (interrupt_input_pending): Remove. All uses removed.
4742 pending_signals now counts both atimers and ordinary interrupts.
4743 This is less racy than having three separate pending-signal flags.
4744 (block_input, unblock_input, totally_unblock_input, unblock_input_to)
4745 (input_blocked_p):
4746 Rename from their upper-case counterparts BLOCK_INPUT,
4747 UNBLOCK_INPUT, TOTALLY_UNBLOCK_INPUT, UNBLOCK_INPUT_TO,
4748 INPUT_BLOCKED_P, and turn into functions. All uses changed.
4749 This makes it easier to access volatile variables more accurately.
4750 (BLOCK_INPUT_RESIGNAL): Remove. All uses replaced by unblock_input ().
4751 (input_blocked_p): Prefer this to 'interrupt_input_blocked', as
4752 that's more reliable if the code is buggy and sets
4753 interrupt_input_blocked to a negative value. All uses changed.
4754 * atimer.c (deliver_alarm_signal):
4755 Remove. No need to deliver this to the parent; any thread can
4756 handle this signal now. All uses replaced by underlying handler.
4757 * atimer.c (turn_on_atimers):
4758 * dispnew.c (handle_window_change_signal):
4759 * emacs.c (handle_danger_signal):
4760 * keyboard.c (kbd_buffer_get_event):
4761 Don't reestablish signal handler; not needed with sigaction.
4762 * blockinput.h (UNBLOCK_INPUT_TO, TOTALLY_UNBLOCK_INPUT)
4763 (UNBLOCK_INPUT_TO):
4764 Rework to avoid unnecessary accesses to volatile variables.
4765 (UNBLOCK_INPUT_TO): Now a function.
4766 (totally_unblock_input, unblock_input): New decls.
4767 * data.c (handle_arith_signal, deliver_arith_signal): Move to sysdep.c
4768 (init_data): Remove. Necessary stuff now done in init_signal.
4769 * emacs.c, xdisp.c: Include "atimer.h", since we invoke atimer functions.
4770 * emacs.c (handle_fatal_signal, deliver_fatal_signal): Move to sysdep.c.
4771 (fatal_error_code): Remove; no longer needed.
4772 (terminate_due_to_signal): Rename from fatal_error_backtrace, since
4773 it doesn't always backtrace. All uses changed. No need to reset
4774 signal to default, since sigaction and/or die does that for us now.
4775 Use emacs_raise (FOO), not kill (getpid (), FOO).
4776 (main): Check more-accurately whether we're dumping.
4777 Move fatal-error setup to sysdep.c
4778 * floatfns.c: Do not include "syssignal.h"; no longer needed.
4779 * gtkutil.c (xg_get_file_name, xg_get_font):
4780 Remove no-longer-needed signal-mask manipulation.
4781 * keyboard.c, process.c (POLL_FOR_INPUT):
4782 Don't depend on USE_ASYNC_EVENTS, a symbol that is never defined.
4783 * keyboard.c (read_avail_input): Remove.
4784 All uses replaced by gobble_input.
4785 (Ftop_level): Use TOTALLY_UNBLOCK_INPUT rather than open code.
4786 (kbd_buffer_store_event_hold, gobble_input):
4787 (record_asynch_buffer_change) [USABLE_SIGIO]:
4788 (store_user_signal_events):
4789 No need to mess with signal mask.
4790 (gobble_input): If blocking input and there are terminals, simply
4791 set pending_signals to 1 and return. All hooks changed to not
4792 worry about whether input is blocked.
4793 (process_pending_signals): Clear pending_signals before processing
4794 them, in case a signal comes in while we're processing.
4795 By convention callers now test pending_signals before calling us.
4796 (UNBLOCK_INPUT_TO, unblock_input, totally_unblock_input):
4797 New functions, to support changes to blockinput.h.
4798 (handle_input_available_signal): Now extern.
4799 (reinvoke_input_signal): Remove. All uses replaced by
4800 handle_async_input.
4801 (quit_count): Now volatile, since a signal handler uses it.
4802 (handle_interrupt): Now takes bool IN_SIGNAL_HANDLER as arg.
4803 All callers changed. Block SIGINT only if not already blocked.
4804 Clear sigmask reliably, even if Fsignal returns, which it can.
4805 Omit unnecessary accesses to volatile var.
4806 (quit_throw_to_read_char): No need to restore sigmask.
4807 * keyboard.c (gobble_input, handle_user_signal):
4808 * process.c (wait_reading_process_output):
4809 Call signal-handling code rather than killing ourselves.
4810 * lisp.h: Include <float.h>, for...
4811 (IEEE_FLOATING_POINT): New macro, moved here to avoid duplication.
4812 (pending_signals): Now volatile.
4813 (syms_of_data): Now const if IEEE floating point.
4814 (handle_input_available_signal) [USABLE_SIGIO]:
4815 (terminate_due_to_signal, record_child_status_change): New decls.
4816 * process.c (create_process): Avoid disaster if memory is exhausted
4817 while we're processing a vfork, by tightening the critical section
4818 around the vfork.
4819 (send_process_frame, process_sent_to, handle_pipe_signal)
4820 (deliver_pipe_signal): Remove. No longer needed, as Emacs now
4821 ignores SIGPIPE.
4822 (send_process): No need for setjmp/longjmp any more, since the
4823 SIGPIPE stuff is now gone. Instead, report an error if errno
4824 is EPIPE.
4825 (record_child_status_change): Now extern. PID and W are now args.
4826 Return void, not bool. All callers changed.
4827 * sysdep.c (wait_debugging) [(BSD_SYSTEM || HPUX) && !defined (__GNU__)]:
4828 Remove. All uses removed. This bug should be fixed now in a
4829 different way.
4830 (wait_for_termination_1): Use waitpid rather than sigsuspend,
4831 and record the child status change directly. This avoids the
4832 need to futz with the signal mask.
4833 (process_fatal_action): Move here from emacs.c.
4834 (emacs_sigaction_flags): New function, containing
4835 much of what used to be in emacs_sigaction_init.
4836 (emacs_sigaction_init): Use it. Block nonfatal system signals that are
4837 caught by emacs, to make races less likely.
4838 (deliver_process_signal): Rename from handle_on_main_thread.
4839 All uses changed.
4840 (BACKTRACE_LIMIT_MAX): Now at top level.
4841 (thread_backtrace_buffer, threadback_backtrace_pointers):
4842 New static vars.
4843 (deliver_thread_signal, deliver_fatal_thread_signal):
4844 New functions, for more-accurate delivery of thread-specific signals.
4845 (handle_fatal_signal, deliver_fatal_signal): Move here from emacs.c.
4846 (deliver_arith_signal): Handle in this thread, not
4847 in the main thread, since it's triggered by this thread.
4848 (maybe_fatal_sig): New function.
4849 (init_signals): New arg DUMPING so that we can be more accurate
4850 about whether we're dumping. Caller changed.
4851 Treat thread-specific signals differently from process-general signals.
4852 Block all signals while handling fatal error; that's safer.
4853 xsignal from SIGFPE only on non-IEEE hosts, treating it as fatal
4854 on IEEE hosts.
4855 When batch, ignore SIGHUP, SIGINT, SIGTERM if they were already ignored.
4856 Ignore SIGPIPE unless batch.
4857 (emacs_backtrace): Output backtrace for the appropriate thread,
4858 which is not necessarily the main thread.
4859 * syssignal.h: Include <stdbool.h>.
4860 (emacs_raise): New macro.
4861 * xterm.c (x_connection_signal): Remove; no longer needed
4862 now that we use sigaction.
4863 (x_connection_closed): No need to mess with sigmask now.
4864 (x_initialize): No need to reset SIGPIPE handler here, since
4865 init_signals does this for us now.
4866
4867 2012-09-23 Jan Djärv <jan.h.d@swipnet.se>
4868
4869 * nsterm.m (ns_dumpglyphs_image): dr is a new rect to draw image into,
4870 background rect may be larger (Bug#12245).
4871
4872 2012-09-23 Chong Yidong <cyd@gnu.org>
4873
4874 * keyboard.c (timer_check): Avoid quitting during Fcopy_sequence.
4875
4876 2012-09-22 Paul Eggert <eggert@cs.ucla.edu>
4877
4878 * .gdbinit: Just stop at fatal_error_backtrace.
4879 See Stefan Monnier's request in
4880 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00549.html>.
4881 Remove no-longer-used query of system type.
4882
4883 2012-09-22 Chong Yidong <cyd@gnu.org>
4884
4885 * search.c (Freplace_match): Doc fix (Bug#12325).
4886
4887 * minibuf.c (Finternal_complete_buffer): Doc fix (Bug#12391).
4888
4889 * editfns.c (Fline_beginning_position): Doc fix (Bug#12416).
4890 (Fline_end_position): Doc fix.
4891
4892 * cmds.c (Fforward_char, Fbackward_char): Doc fix (Bug#12414).
4893
4894 2012-09-22 Chong Yidong <cyd@gnu.org>
4895
4896 * dispextern.h (struct image_type): Add new slot, storing a type
4897 initialization function.
4898
4899 * image.c (define_image_type): Call the image initializer function
4900 if it is defined. Arguments and return value changed.
4901 (valid_image_p, make_image): Callers changed.
4902 (xbm_type, xpm_type, pbm_type, png_type, jpeg_type, tiff_type)
4903 (gif_type, imagemagick_type, svg_type, gs_type):
4904 Add initialization functions.
4905 (Finit_image_library): Call lookup_image_type.
4906 (CHECK_LIB_AVAILABLE): Macro deleted.
4907 (lookup_image_type): Call define_image_type here, rather than via
4908 Finit_image_library, and without using CHECK_LIB_AVAILABLE.
4909 (syms_of_image): Move define_image_type calls for xbm_type and
4910 pbm_type to lookup_image_type.
4911
4912 2012-09-22 Eli Zaretskii <eliz@gnu.org>
4913
4914 * keyboard.c (timer_check_2): Move calculation of 'timers' and
4915 'idle_timers' from here ...
4916 (timer_check): ... to here. Use Fcopy_sequence to copy the timer
4917 lists, to avoid infloops when the timer does something stupid,
4918 like reinvoke itself with the same or smaller time-out.
4919 (Bug#12447)
4920
4921 2012-09-22 Martin Rudalics <rudalics@gmx.at>
4922
4923 * window.c (Fsplit_window_internal): Handle only Qt value of
4924 Vwindow_combination_limit separately.
4925 (Qtemp_buffer_resize): New symbol.
4926 (Vwindow_combination_limit): New default value.
4927 Rewrite doc-string.
4928
4929 2012-09-22 Eli Zaretskii <eliz@gnu.org>
4930
4931 * xdisp.c (next_overlay_string): Initialize it->end_charpos for
4932 the new overlay string. (Bug#10159)
4933
4934 2012-09-22 Paul Eggert <eggert@cs.ucla.edu>
4935
4936 * emacs.c (shut_down_emacs): Don't assume stderr is buffered,
4937 or that fprintf is async-signal-safe. POSIX doesn't require
4938 either assumption.
4939
4940 2012-09-22 Chong Yidong <cyd@gnu.org>
4941
4942 * buffer.c (Fset_buffer_modified_p): Handle indirect buffers
4943 (Bug#8207).
4944
4945 2012-09-22 Kenichi Handa <handa@gnu.org>
4946
4947 * composite.c (composition_reseat_it): Handle the case that a
4948 grapheme cluster is not covered by a single font (Bug#12352).
4949
4950 2012-09-21 Chong Yidong <cyd@gnu.org>
4951
4952 * image.c (define_image_type): Avoid adding duplicate types to
4953 image_types (Bug#12463). Suggested by Jörg Walter.
4954
4955 2012-09-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
4956
4957 * unexmacosx.c: Define LC_DATA_IN_CODE if not defined.
4958 (print_load_command_name): Add case LC_DATA_IN_CODE.
4959 (dump_it) [LC_DATA_IN_CODE]: Call copy_linkedit_data.
4960
4961 2012-09-21 Glenn Morris <rgm@gnu.org>
4962
4963 * eval.c (Frun_hook_with_args_until_success)
4964 (Frun_hook_with_args_until_failure): Doc fixes. (Bug#12393)
4965
4966 2012-09-21 Andreas Schwab <schwab@linux-m68k.org>
4967
4968 * fileio.c (Ffile_selinux_context): Only call freecon when
4969 lgetfilecon succeeded.
4970 (Fset_file_selinux_context): Likewise. (Bug#12444)
4971
4972 2012-09-21 Eli Zaretskii <eliz@gnu.org>
4973
4974 * xdisp.c (try_window_reusing_current_matrix): Under bidi
4975 reordering, locate the cursor by calling set_cursor_from_row; if
4976 that fails, clear the desired glyph matrix before returning a
4977 failure indication to the caller. Fixes leaving garbled display
4978 when fast scrolling with a down-key. (Bug#12403)
4979 (compute_stop_pos_backwards): Fix a typo that caused crashes while
4980 scrolling through multibyte text.
4981
4982 2012-09-20 Stefan Monnier <monnier@iro.umontreal.ca>
4983
4984 * alloc.c (mark_object) <PVEC_WINDOW>: Mark prev/next_buffers *after*
4985 calling mark_vectorlike since that's the one that marks the window.
4986 (mark_discard_killed_buffers): Mark the final cdr.
4987 * window.h (struct window): Move prev/next_buffers to the
4988 non-standard fields.
4989 * window.c (make_window): Initialize prev/next_buffers manually.
4990
4991 2012-09-20 Paul Eggert <eggert@cs.ucla.edu>
4992
4993 Omit unused arg EXPECTED from socket hooks.
4994 * keyboard.c (gobble_input, read_avail_input, tty_read_avail_input):
4995 * nsterm.m (ns_term_init):
4996 * termhooks.h (struct terminal.read_socket_hook):
4997 * w32inevt.c (w32_console_read_socket):
4998 * w32term.c (w32_read_socket):
4999 * xterm.c (XTread_socket):
5000 Omit unused arg EXPECTED. All callers changed.
5001 (store_user_signal_events): Return void, not int, since callers no
5002 longer care about the return value. All uses changed.
5003
5004 2012-09-20 Juanma Barranquero <lekktu@gmail.com>
5005
5006 * w32gui.h (XParseGeometry): Do not declare.
5007
5008 2012-09-19 Paul Eggert <eggert@cs.ucla.edu>
5009
5010 * w32inevt.c (w32_console_read_socket): Return -1 on failure, not 0.
5011 Ignore 'expected'. See Eli Zaretskii in
5012 <http://bugs.gnu.org/12471#8> (last line).
5013
5014 * frame.c (read_integer): Remove. All uses replaced by strtol/strtoul.
5015 (XParseGeometry): Now static. Substitute extremal values for
5016 values that are out of range.
5017
5018 2012-09-19 Jan Djärv <jan.h.d@swipnet.se>
5019
5020 * w32xfns.c (read_integer, XParseGeometry): Move to frame.c.
5021
5022 * nsfns.m (XParseGeometry): Remove.
5023 (Fx_create_frame): Call x_set_offset to correctly interpret
5024 top_pos in geometry.
5025
5026 * frame.c (read_integer, XParseGeometry): Move from w32xfns.c.
5027 (Fx_parse_geometry): If there is a space in string, call
5028 Qns_parse_geometry, otherwise do as on other terms (Bug#12368).
5029
5030 2012-09-17 Eli Zaretskii <eliz@gnu.org>
5031
5032 * search.c (scan_buffer): Use character positions in calls to
5033 region_cache_forward and region_cache_backward, not byte
5034 positions. (Bug#12196)
5035
5036 * w32term.c (w32_read_socket): Set pending_signals to 1, like
5037 xterm.c does. Reported by Daniel Colascione <dancol@dancol.org>.
5038
5039 * ralloc.c (r_alloc_init) [!SYSTEM_MALLOC]: Initialize
5040 __malloc_extra_blocks to 32 instead of 64, like alloc.c did in
5041 emacs_blocked_malloc, now deleted.
5042
5043 2012-09-17 Paul Eggert <eggert@cs.ucla.edu>
5044
5045 Remove no-longer-needed Solaris 2.4 vfork bug workaround.
5046 The workaround was for improving performance on Solaris 2.4, but
5047 is getting in the way now. Emacs will still work if someone is
5048 still running Solaris 2.4 in a museum somewhere; Sun dropped
5049 support for Solaris 2.4 in 2003.
5050 * callproc.c (Fcall_process) [HAVE_WORKING_VFORK]:
5051 * process.c (create_process) [HAVE_WORKING_VFORK]:
5052 Omit now-unnecessary workaround for the Solaris 2.4 vfork bug,
5053 since Emacs no longer uses vfork on that platform.
5054
5055 2012-09-17 Glenn Morris <rgm@gnu.org>
5056
5057 * emacs.c: Use COPYRIGHT.
5058
5059 2012-09-16 Paul Eggert <eggert@cs.ucla.edu>
5060
5061 Remove configure's --without-sync-input option (Bug#12450).
5062 When auditing signal-handling in preparation for cleaning it up,
5063 I found that SYNC_INPUT has race conditions and would be a real
5064 pain to fix. Since it's an undocumented and deprecated
5065 configure-time option, now seems like a good time to remove it.
5066 Also see <http://bugs.gnu.org/11080#16>.
5067 * alloc.c (_bytes_used, __malloc_extra_blocks, _malloc_internal)
5068 (_free_internal) [!DOUG_LEA_MALLOC]: Remove decls.
5069 (alloc_mutex) [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
5070 (malloc_hysteresis):
5071 (check_depth) [XMALLOC_OVERRUN_CHECK]:
5072 (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT):
5073 (__malloc_hook, __realloc_hook, __free_hook, BYTES_USED)
5074 (dont_register_blocks, bytes_used_when_reconsidered)
5075 (bytes_used_when_full, emacs_blocked_free, emacs_blocked_malloc)
5076 (emacs_blocked_realloc, reset_malloc_hooks, uninterrupt_malloc):
5077 [!SYSTEM_MALLOC && !SYNC_INPUT]:
5078 Remove. All uses removed.
5079 (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): Use a different
5080 implementation, one that depends on whether the new macro
5081 XMALLOC_BLOCK_INPUT_CHECK is defined, not on whether SYNC_INPUT
5082 is defined.
5083 * atimer.c (run_timers, handle_alarm_signal):
5084 * keyboard.c (pending_signal, poll_for_input_1, poll_for_input)
5085 (handle_async_input, process_pending_signals)
5086 (handle_input_available_signal, init_keyboard):
5087 * nsterm.m (ns_read_socket):
5088 * process.c (wait_reading_process_output):
5089 * regex.c (immediate_quit, IMMEDIATE_QUIT_CHECK):
5090 * sysdep.c (emacs_sigaction_init) [SA_RESTART]:
5091 (emacs_write):
5092 * xterm.c (XTread_socket):
5093 Assume SYNC_INPUT.
5094 * conf_post.h (SA_RESTART) [IRIX6_5]: Do not #undef.
5095 * eval.c (handling_signal): Remove. All uses removed.
5096 * lisp.h (ELSE_PENDING_SIGNALS): Remove.
5097 All uses replaced with the SYNC_INPUT version.
5098 (reset_malloc_hooks, uninterrupt_malloc, handling_signal):
5099 Remove decls.
5100 * sysdep.c, syssignal.h (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
5101 Now static.
5102
5103 * font.c (Ffont_shape_gstring): Remove unused local.
5104
5105 2012-09-16 Glenn Morris <rgm@gnu.org>
5106
5107 * Makefile.in (clean): No longer run nextstep's clean.
5108
5109 * Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Remove variables.
5110 (ns_frag): Remove.
5111 (ns-app): Move here from ns.mk, and simplify.
5112 (clean): Simplify nextstep entry.
5113 * ns.mk: Remove file.
5114
5115 2012-09-17 Kenichi Handa <handa@gnu.org>
5116
5117 * font.c (Ffont_shape_gstring): Fix previous change; GLYPHs may
5118 not covert the last few charactes.
5119
5120 2012-09-16 Kenichi Handa <handa@gnu.org>
5121
5122 * font.c (Ffont_shape_gstring): Don't adjust grapheme cluster
5123 here, but just check the validity of glyphs in the glyph-string.
5124
5125 2012-09-16 Martin Rudalics <rudalics@gmx.at>
5126
5127 * window.c (Fwindow_parameter, Fset_window_parameter):
5128 Accept any window as argument (Bug#12452).
5129
5130 2012-09-16 Jan Djärv <jan.h.d@swipnet.se>
5131
5132 * nsfns.m (Fx_open_connection): Move initialization of ns_*_types
5133 to ns_term_init to avoid memory leak.
5134
5135 * nsterm.m (ns_update_begin): Initialize bp after lcokFocus, use
5136 explicit retain/release.
5137 (ns_term_init): Only allow one display. Initialize outerpool and
5138 ns_*_types.
5139
5140 2012-09-15 Paul Eggert <eggert@cs.ucla.edu>
5141
5142 Port _setjmp fix to POSIXish hosts as well as Microsoft.
5143 * image.c (_setjmp) [!HAVE__SETJMP]: Restore definition, as
5144 it's needed on POSIXish hosts that lack _setjmp. Attempt to solve
5145 the Microsoft problem in a different way, by altering ../nt/config.nt.
5146
5147 2012-09-15 Eli Zaretskii <eliz@gnu.org>
5148
5149 * w32xfns.c:
5150 * w32uniscribe.c:
5151 * w32term.c:
5152 * w32select.c:
5153 * w32reg.c:
5154 * w32proc.c:
5155 * w32menu.c:
5156 * w32inevt.c:
5157 * w32heap.c:
5158 * w32font.c:
5159 * w32fns.c:
5160 * w32console.c:
5161 * w32.c:
5162 * w16select.c: Remove inclusion of setjmp.h, as it is now included
5163 by lisp.h. This completes removal of setjmp.h inclusion
5164 erroneously announced in the previous commit. (Bug#12446)
5165
5166 * lisp.h [!HAVE__SETJMP, !HAVE_SIGSETJMP]: Make the commentary
5167 more accurate.
5168
5169 * image.c (_setjmp) [!HAVE__SETJMP]: Define only if 'setjmp' is
5170 not defined as a macro. The latter happens on MS-Windows.
5171 (Bug#12446)
5172
5173 2012-09-15 Paul Eggert <eggert@cs.ucla.edu>
5174
5175 Port better to POSIX hosts lacking _setjmp (Bug#12446).
5176 * lisp.h: Include <setjmp.h> here, since we use its symbols here.
5177 Some instances of '#include <setjmp.h>' removed, if the
5178 only reason for the instance was because "lisp.h" was included.
5179 (sys_jmp_buf, sys_setjmp, sys_longjmp): New symbols.
5180 Unless otherwise specified, replace all uses of jmp_buf, _setjmp,
5181 and _longjmp with the new symbols. Emacs already uses _setjmp if
5182 available, so this change affects only POSIXish hosts that have
5183 sigsetjmp but not _setjmp, such as some versions of Solaris and
5184 Unixware. (Also, POSIX-2008 marks _setjmp as obsolescent.)
5185 * image.c (_setjmp, _longjmp) [HAVE_PNG && !HAVE__SETJMP]: New macros.
5186 (png_load_body) [HAVE_PNG]:
5187 (PNG_LONGJMP) [HAVE_PNG && PNG_LIBPNG_VER < 10500]:
5188 (PNG_JMPBUF) [HAVE_PNG && PNG_LIBPNG_VER >= 10500]:
5189 Use _setjmp and _longjmp rather than sys_setjmp and sys_longjmp,
5190 since PNG requires jmp_buf. This is the only exception to the
5191 general rule that we now use sys_setjmp and sys_longjmp.
5192 This exception is OK since this code does not change the signal
5193 mask or longjmp out of a signal handler.
5194
5195 2012-09-14 Paul Eggert <eggert@cs.ucla.edu>
5196
5197 * alloc.c [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
5198 Include "syssignal.h", for 'main_thread'.
5199
5200 2012-09-14 Dmitry Antipov <dmantipov@yandex.ru>
5201
5202 Avoid out-of-range marker position (Bug#12426).
5203 * insdel.c (replace_range, replace_range_2):
5204 Adjust markers before overlays, as suggested by comments.
5205 (insert_1_both, insert_from_buffer_1, adjust_after_replace):
5206 Remove redundant check before calling offset_intervals.
5207
5208 2012-09-14 Martin Rudalics <rudalics@gmx.at>
5209
5210 * xdisp.c (Fformat_mode_line): Unconditionally save/restore
5211 current buffer (Bug#12387).
5212
5213 2012-09-14 Juanma Barranquero <lekktu@gmail.com>
5214
5215 * makefile.w32-in ($(BLD)/alloc.$(O)): Update dependencies.
5216
5217 2012-09-13 Paul Eggert <eggert@cs.ucla.edu>
5218
5219 Use a more backwards-compatible timer format (Bug#12430).
5220 * keyboard.c (decode_timer): Get PSECS from the 8th (origin-0)
5221 vector element, not from the 4th, since PSECS is now at the end.
5222 (Fcurrent_idle_time): Doc fix.
5223
5224 2012-09-13 Dmitry Antipov <dmantipov@yandex.ru>
5225
5226 Function to mark objects and remove killed buffers at once.
5227 * alloc.c (discard_killed_buffers): Rename to ...
5228 (mark_discard_killed buffers) ... new name. Add marking
5229 of remaining objects. Fix comment. Adjust users.
5230 (mark_object): Do not touch frame buffer lists here.
5231 * frame.c (delete_frame): Reset frame buffer lists here.
5232
5233 2012-09-13 Paul Eggert <eggert@cs.ucla.edu>
5234
5235 Better workaround for GNOME bug when --enable-gcc-warnings.
5236 * emacsgtkfixed.c (G_STATIC_ASSERT): Remove, undoing last change.
5237 Instead, disable -Wunused-local-typedefs. See Dmitry Antipov in
5238 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00335.html>.
5239
5240 Simplify SIGIO usage (Bug#12408).
5241 The code that dealt with SIGIO was crufty and confusing, e.g., it
5242 played tricks like "#undef SIGIO" but these tricks were not used
5243 consistently. Simplify mostly by not #undeffing standard symbols,
5244 e.g., use "defined USABLE_SIGIO" (our symbol, which we can define
5245 or not as we please) rather than "defined SIGIO" (standard symbol
5246 that we probably shouldn't #undef).
5247 * conf_post.h [USG5_4]: Do not include <sys/wait.h> here.
5248 Modules that need it can include it.
5249 [USG5_4 && emacs]: Likewise, do not include the streams stuff here.
5250 * dispextern.h (ignore_sigio): New decl.
5251 * emacs.c (shut_down_emacs): Invoke unrequest_sigio
5252 unconditionally, since it's now a no-op if !USABLE_SIGIO.
5253 * emacs.c (shut_down_emacs):
5254 * keyboard.c (kbd_buffer_store_event_hold):
5255 Use ignore_sigio rather than invoking 'signal' directly.
5256 * keyboard.c (USABLE_FIONREAD && USG5_4): Include <sys/filio.h>,
5257 for FIONREAD.
5258 (FIONREAD, SIGIO): Do not #undef.
5259 (tty_read_avail_input): Use #error rather than a syntax error.
5260 * process.c [USG5_4]: Include <sys/stream.h> and <sys/stropts.h>,
5261 for I_PIPE, used by SETUP_SLAVE_PTY.
5262 (DATAGRAM_SOCKETS): Simplify defn, based on USABLE_FIONREAD.
5263 * sysdep.c (croak): Remove; no longer needed. This bit of
5264 temporary code, with Fred N. Fish's comment that it's temporary,
5265 has been in Emacs since at least 1992!
5266 (init_sigio, reset_sigio, request_sigio, unrequest_sigio):
5267 Arrange for them to be no-ops in all cases when ! USABLE_SIGIO.
5268 * syssignal.h (croak): Remove decl.
5269 (SIGIO, SIGPOO, SIGAIO, SIGPTY): Do not #undef; that's too fragile.
5270 * systty.h [!NO_TERMIO]: Do not include <termio.h>; no longer needed
5271 now that we're termios-only.
5272 (FIONREAD, ASYNC) [BROKEN_FIONREAD]: Do not #undef.
5273 * term.c (dissociate_if_controlling_tty): Use #error rather than
5274 a run-time error.
5275
5276 Work around GCC and GNOME bugs when --enable-gcc-warnings.
5277 * emacsgtkfixed.c (G_STATIC_ASSERT): Redefine to use 'verify',
5278 to work around GNOME bug 683906.
5279 * image.c (jpeg_load_body) [HAVE_JPEG && lint]: Pacify gcc -Wclobber.
5280 (struct my_jpeg_error_mgr) [HAVE_JPEG && lint]: New member fp.
5281 This works around GCC bug 54561.
5282
5283 2012-09-12 Paul Eggert <eggert@cs.ucla.edu>
5284
5285 More fixes for 'volatile' and setjmp/longjmp.
5286 * eval.c (Fdefvar, Fcondition_case): Remove unnecessary 'volatile's.
5287 * image.c (struct png_load_context) [HAVE_PNG]: New type.
5288 (png_load_body) [HAVE_PNG]:
5289 (jpeg_load_body) [HAVE_JPEG]:
5290 New function, with most of the old parent function's body.
5291 (png_load) [HAVE_PNG]:
5292 (jpeg_load) [HAVE_JPEG]:
5293 Invoke the new function, to avoid longjmp munging our locals.
5294 (struct my_jpeg_error_mgr) [HAVE_JPEG]: New members cinfo, failure_code.
5295 (my_error_exit) [HAVE_JPEG]: Don't trust 'setjmp' to return 2 when
5296 longjmp is passed 2, as the C standard doesn't guarantee this.
5297 Instead, store the failure code into mgr->failure_code.
5298
5299 2012-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
5300
5301 * keyboard.c (read_char, requeued_events_pending_p, Finput_pending_p)
5302 (Fdiscard_input, quit_throw_to_read_char, init_keyboard)
5303 (syms_of_keyboard): Remove support for unread-command-char.
5304
5305 2012-09-12 Eli Zaretskii <eliz@gnu.org>
5306
5307 * w32proc.c (sys_kill): If PID is our process ID and the signal is
5308 SIGABRT, call emacs_abort. Avoids silently exiting upon assertion
5309 violation. (Bug#12426)
5310
5311 2012-09-12 Paul Eggert <eggert@cs.ucla.edu>
5312
5313 * image.c (jpeg_memory_src): Don't assume string len fits in unsigned.
5314
5315 2012-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
5316
5317 * eval.c: Add `inhibit-debugger'.
5318 (Qinhibit_debugger): New symbol.
5319 (call_debugger): Bind it instead of Qdebug_on_error.
5320 (maybe_call_debugger): Test Vinhibit_debugger.
5321 (syms_of_eval): Define inhibit-debugger.
5322 * xdisp.c (set_message): Don't bind Qinhibit_debug_on_message.
5323 (syms_of_xdisp): Remove inhibit-debug-on-message.
5324
5325 2012-09-11 Paul Eggert <eggert@cs.ucla.edu>
5326
5327 Avoid _setjmp/_longjmp problems with local nonvolatile variables.
5328 If a nonvolatile local variable is written before a _longjmp to
5329 the frame containing the variable, and is read after the _longjmp,
5330 the value read is indeterminate. Some local variables of type
5331 'struct handler' and 'struct catchtag' are used in this way, so
5332 mark each of their slots as volatile if the slot can be set before
5333 _longjmp and read afterwards.
5334 * lisp.h (struct handler): var and chosen_clause are now volatile.
5335 (struct catchtag): val, next, and pdlcount are now volatile.
5336
5337 * bidi.c (bidi_push_it, bidi_pop_it):
5338 * fns.c (copy_hash_table):
5339 * image.c (define_image_type):
5340 * keyboard.c (kbd_buffer_store_event_hold):
5341 * process.c (Fprocess_send_eof):
5342 * xfaces.c (x_create_gc) [HAVE_NS]:
5343 * xgselect.c (xg_select):
5344 Prefer assignment to memcpy when either will do.
5345
5346 * alloc.c (discard_killed_buffers): Tune and simplify a bit.
5347 Use pointer-to-a-pointer to simplify and avoid a NILP check each
5348 time an item is removed. No need to mark this function 'inline';
5349 the compiler knows better than we do.
5350
5351 2012-09-11 Jan Djärv <jan.h.d@swipnet.se>
5352
5353 * nsterm.m (ns_judge_scroll_bars): Pass NO to updateFrameSize.
5354 (updateFrameSize:): Add delay parameter to updateFrameSize, send it
5355 to change_frame_size (Bug#12388).
5356 (windowDidResize:): Pass YES to updateFrameSize.
5357
5358 * nsterm.h: Add delay parameter to updateFrameSize.
5359
5360 2012-09-11 Dmitry Antipov <dmantipov@yandex.ru>
5361
5362 Discard killed buffers from deleted window and frame objects.
5363 This reduces an amount of references to killed buffers and
5364 helps GC to reclaim them faster.
5365 * alloc.c (discard_killed_buffers): New function.
5366 (mark_object): Use it for deleted windows and frames.
5367 (mark_object): If symbol's value is set up for a killed buffer
5368 or deleted frame, restore its global binding.
5369 * data.c (swap_in_global_binding): Add GC notice.
5370 (swap_in_symval_forwarding): Use convenient set_blv_where.
5371 * window.c (wset_next_buffers, wset_prev_buffers): Move ...
5372 * window.h: ... to here.
5373
5374 2012-09-11 Dmitry Antipov <dmantipov@yandex.ru>
5375
5376 Convenient macro to check whether the buffer is live.
5377 * buffer.h (BUFFER_LIVE_P): New macro.
5378 * alloc.c, buffer.c, editfns.c, insdel.c, lread.c, marker.c:
5379 * minibuf.c, print.c, process.c, window.c, xdisp.c: Use it.
5380
5381 2012-09-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
5382
5383 * xdisp.c (right_overwritten, right_overwriting): Also handle gstring
5384 composition cases (Bug#12364).
5385
5386 * xterm.c (x_draw_glyph_string): Avoid overwriting inverted left
5387 overhang of succeeding glyphs overlapping box cursor.
5388
5389 * w32term.c (x_draw_glyph_string): Likewise.
5390
5391 2012-09-11 Paul Eggert <eggert@cs.ucla.edu>
5392
5393 Simplify, document, and port floating-point (Bug#12381).
5394 The porting part of this patch fixes bugs on non-IEEE platforms
5395 with frexp, ldexp, logb.
5396 * data.c, lisp.h (Qdomain_error, Qsingularity_error, Qunderflow_error):
5397 Now static.
5398 * floatfns.c: Simplify discussion of functions that Emacs doesn't
5399 support, by removing commented-out code and briefly listing the
5400 C89 functions excluded. The commented-out stuff was confusing
5401 maintenance, e.g., we thought we needed cbrt but it was commented out.
5402 (logb): Remove decl; no longer needed.
5403 (isfinite): New macro, if not already supplied.
5404 (isnan): Don't replace any existing macro.
5405 (Ffrexp, Fldexp): Define even if !HAVE_COPYSIGN, as frexp and ldexp
5406 are present on all C89 platforms.
5407 (Ffrexp): Do not special-case zero, as frexp does the right thing
5408 for that case.
5409 (Flogb): Do not use logb, as it doesn't have the desired meaning
5410 on hosts that use non-base-2 floating point. Instead, stick with
5411 frexp, which is C89 anyway. Do not pass an infinity or a NaN to
5412 frexp, to avoid getting an unspecified result.
5413
5414 * xdisp.c (Qinhibit_debug_on_message): Now static.
5415
5416 2012-09-10 Jan Djärv <jan.h.d@swipnet.se>
5417
5418 * nsterm.m (ns_update_begin): Set clip path to whole view by using
5419 NSBezierPath (Bug#12131).
5420
5421 2012-09-10 Chong Yidong <cyd@gnu.org>
5422
5423 * fns.c (Fdelq, Fdelete): Doc fix.
5424
5425 2012-09-10 Paul Eggert <eggert@cs.ucla.edu>
5426
5427 * lisp.h (XSETINT, XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL)
5428 (XSETFLOAT, XSETMISC): Parenthesize macro bodies.
5429
5430 2012-09-09 Stefan Monnier <monnier@iro.umontreal.ca>
5431
5432 * lisp.h (make_lisp_ptr): New macro to replace XSET.
5433 (XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL, XSETFLOAT, XSETMISC):
5434 Use it.
5435
5436 2012-09-09 Eli Zaretskii <eliz@gnu.org>
5437
5438 * fringe.c (draw_fringe_bitmap_1): Don't reduce the width of the
5439 left fringe if the window has a left margin. This avoids leaving
5440 traces of the cursor because its leftmost pixel is not drawn over.
5441
5442 * dispnew.c (update_window_line): When the left margin area of a
5443 screen line is updated, set the redraw_fringe_bitmaps_p flag of
5444 that screen line. (Bug#12277)
5445
5446 2012-09-09 Paul Eggert <eggert@cs.ucla.edu>
5447
5448 Assume C89 or later for math functions (Bug#12381).
5449 This simplifies the code, and makes it a bit smaller and faster,
5450 and (most important) makes it easier to clean up signal handling
5451 since we can stop worring about floating-point exceptions in
5452 library code. That was a problem before C89, but the problem
5453 went away many years ago on all practical Emacs targets.
5454 * data.c, image.c, lread.c, print.c:
5455 Don't include <math.h>; no longer needed.
5456 * data.c, floatfns.c (IEEE_FLOATING_POINT): Don't worry that it
5457 might be autoconfigured, as that never happens.
5458 * data.c (fmod):
5459 * doprnt.c (DBL_MAX_10_EXP):
5460 * print.c (DBL_DIG):
5461 Remove. C89 or later always defines these.
5462 * floatfns.c (HAVE_MATHERR, FLOAT_CHECK_ERRNO, FLOAT_CHECK_DOMAIN)
5463 (in_float, float_error_arg, float_error_arg2, float_error_fn_name)
5464 (arith_error, domain_error, domain_error2):
5465 Remove all this pre-C89 cruft. Do not include <errno.h> as that's
5466 no longer needed -- we simply return what C returns. All uses removed.
5467 (IN_FLOAT, IN_FLOAT2): Remove. All uses replaced with
5468 the wrapped code.
5469 (FLOAT_TO_INT, FLOAT_TO_INT2, range_error, range_error2):
5470 Remove. All uses expanded, as these macros are no longer used
5471 more than once and are now more trouble than they're worth.
5472 (Ftan): Use tan, not sin / cos.
5473 (Flogb): Assume C89 frexp.
5474 (fmod_float): Assume C89 fmod.
5475 (matherr) [HAVE_MATHERR]: Remove; no longer needed.
5476 (init_floatfns): Remove. All uses removed.
5477
5478 2012-09-08 Jan Djärv <jan.h.d@swipnet.se>
5479
5480 * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Take back
5481 compositeToPoint for OSX < 10.6 (Bug#12390).
5482
5483 2012-09-08 Paul Eggert <eggert@cs.ucla.edu>
5484
5485 * floatfns.c (Ftan): Use tan (x), not (sin (x) / cos (x)).
5486 This produces more-accurate results.
5487
5488 2012-09-08 Jan Djärv <jan.h.d@swipnet.se>
5489
5490 * nsterm.m (updateFrameSize): Call setFrame: on the view when size
5491 changes (Bug#12088).
5492
5493 2012-09-08 Chong Yidong <cyd@gnu.org>
5494
5495 * syntax.c (Fstring_to_syntax): Doc fix.
5496
5497 2012-09-08 Jan Djärv <jan.h.d@swipnet.se>
5498
5499 * nsterm.m (ns_clip_to_row): Remove code that deals with drawing fringe
5500 in the internal border.
5501 (x_set_window_size): Remove static variables and their usage.
5502 (ns_redraw_scroll_bars): Fix NSTRACE arg.
5503 (ns_after_update_window_line, ns_draw_fringe_bitmap):
5504 Remove fringe/internal border adjustment (Bug#11052).
5505 (ns_draw_fringe_bitmap): Make code more like other terms (xterm.c).
5506 (ns_draw_window_cursor): Remove fringe/internal border adjustment.
5507 (ns_fix_rect_ibw): Remove.
5508 (ns_get_glyph_string_clip_rect): Remove call to ns_fix_rect_ibw.
5509 (ns_dumpglyphs_box_or_relief): Ditto.
5510 (ns_maybe_dumpglyphs_background): Remove fringe/internal border
5511 adjustment.
5512 (ns_dumpglyphs_image): Ditto.
5513 (ns_dumpglyphs_stretch): Fix coding style. Remove fringe/internal
5514 border adjustment.
5515 (ns_set_vertical_scroll_bar): Remove variables barOnVeryLeft/Right and
5516 their usage. Add fringe_extended_p and its use as in other terms.
5517 (ns_judge_scroll_bars): Code style fix. Call updateFrameSize if
5518 scroll bar was removed.
5519 (updateFrameSize): New function.
5520 (windowDidResize): Move code to updateFrameSize and call it.
5521
5522 * nsterm.h (EmacsView): Add updateFrameSize.
5523
5524 2012-09-07 Chong Yidong <cyd@gnu.org>
5525
5526 * textprop.c (Fget_text_property): Minor doc fix (Bug#12323).
5527
5528 * data.c (Flocal_variable_if_set_p): Doc fix (Bug#10713).
5529
5530 2012-09-07 Paul Eggert <eggert@cs.ucla.edu>
5531
5532 More signal-handler cleanup (Bug#12327).
5533 * emacs.c (main): Convert three 'signal' calls to 'sigaction' calls.
5534 Problem introduced when merging patches. Noted by Eli Zaretskii in
5535 <http://bugs.gnu.org/12327#67>.
5536 * floatfns.c: Comment fix.
5537 * lisp.h (force_auto_save_soon): Declare regardless of SIGDANGER.
5538 SIGDANGER might not be in scope so "#ifdef SIGDANGER" is not right,
5539 and anyway the declaration is harmless even if SIGDANGER is not defined.
5540 * syssignal.h (SIGIO): Also #undef if (! defined FIONREAD ||
5541 defined BROKEN_FIONREAD). systty.h formerly did this, but other
5542 source files not surprisingly expected syssignal.h to define, or
5543 not define, SIGIO, and it's cleaner to do it that way, for consistency.
5544 Include <sys/ioctl.h>, for FIONREAD.
5545 * systty.h (SIGIO): Do not #undef here; it's now syssignal.h's job.
5546 This eliminates a problem whereby other files mysteriously had
5547 to include "syssignal.h" before including "systty.h" if they
5548 wanted to use "#ifdef SIGIO".
5549
5550 2012-09-07 Eli Zaretskii <eliz@gnu.org>
5551
5552 * w32proc.c (sigaction): New function, emulates Posix 'sigaction'.
5553
5554 * w32.c (sigemptyset): Empty the set.
5555 (sigsetmask, sigmask, sigblock, sigunblock): Remove unused functions.
5556
5557 * alloc.c [ENABLE_CHECKING]: Include signal.h, since we need SIGABRT.
5558
5559 2012-09-07 Dmitry Antipov <dmantipov@yandex.ru>
5560
5561 * alloc.c (mark_buffer): Revert unsafe marking optimization.
5562 (mark_object): Likewise for frame objects.
5563
5564 2012-09-07 Paul Eggert <eggert@cs.ucla.edu>
5565
5566 * syssignal.h (handle_on_main_thread): Always declare,
5567 even if FORWARD_SIGNAL_TO_MAIN_THREAD is not defined.
5568 This ports to platforms without HAVE_PTHREAD.
5569
5570 2012-09-06 Paul Eggert <eggert@cs.ucla.edu>
5571
5572 Signal-handler cleanup (Bug#12327).
5573 Emacs's signal handlers were written in the old 4.2BSD style with
5574 sigblock and sigmask and so forth, and this led to some
5575 inefficiencies and confusion. Rewrite these to use
5576 pthread_sigmask etc. without copying signal sets around. Also,
5577 get rid of the confusing macros 'SIGNAL_THREAD_CHECK' and
5578 'signal', and instead use functions that do not attempt to take
5579 over the system name space. This patch causes Emacs's text
5580 segment to shrink by 0.7% on my platform, Fedora 17 x86-64.
5581 * alloc.c, emacsgtkfixed.c, nsfns.m, widget.c, xmenu.c:
5582 Do not include <signal.h> or "syssignal.h", as these
5583 modules do not use signals.
5584 * atimer.c, callproc.c, data.c, dispnew.c, emacs.c, floatfns.c:
5585 * gtkutil.c, keyboard.c, process.c, sound.c, sysdep.c, term.c, xterm.c:
5586 Do not include <signal.h>, as "syssignal.h" does that for us now.
5587 * atimer.c (sigmask_atimers): New function.
5588 (block_atimers, unblock_atimers): New functions,
5589 replacing the old macros BLOCK_ATIMERS and UNBLOCK_ATIMERS.
5590 All uses replaced.
5591 * conf_post.h [SIGNAL_H_AHB]: Do not include <signal.h>;
5592 no longer needed here.
5593 * emacs.c (main): Inspect existing signal handler with sigaction,
5594 so that there's no need to block and unblock SIGHUP.
5595 * sysdep.c (struct save_signal): New member 'action', replacing
5596 old member 'handler'.
5597 (save_signal_handlers, restore_signal_handlers):
5598 Use sigaction instead of 'signal' to save and restore.
5599 (get_set_sighandler, set_sighandler) [!WINDOWSNT]:
5600 New function. All users of 'signal' modified to use set_sighandler
5601 if they're writeonly, and to use sys_signal if they're read+write.
5602 (emacs_sigaction_init, forwarded_signal): New functions.
5603 (sys_signal): Remove. All uses replaced by calls to sigaction
5604 and emacs_sigaction_init, or by direct calls to 'signal'.
5605 (sys_sigmask) [!__GNUC__]: Remove; no longer needed.
5606 (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove;
5607 all uses replaced by pthread_sigmask etc. calls.
5608 * syssignal.h: Include <signal.h>.
5609 (emacs_sigaction_init, forwarded_signal): New decls.
5610 (SIGMASKTYPE): Remove. All uses replaced by its definiens, sigset_t.
5611 (SIGEMPTYMASK): Remove; all uses replaced by its definiens, empty_mask.
5612 (sigmask, sys_sigmask): Remove; no longer needed.
5613 (sigpause): Remove. All uses replaced by its definiens, sigsuspend.
5614 (sigblock, sigunblock, sigfree):
5615 (sigsetmask) [!defined sigsetmask]:
5616 Remove. All uses replaced by pthread_sigmask.
5617 (signal): Remove. Its remaining uses (with SIG_DFL and SIG_IGN)
5618 no longer need to be replaced, and its typical old uses
5619 are now done via emacs_sigaction_init and sigaction.
5620 (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove decls.
5621 (sys_sigdel): Remove; unused.
5622 (NSIG): Remove a FIXME; the code's fine. Remove an unnecessary ifdef.
5623
5624 2012-09-06 Eli Zaretskii <eliz@gnu.org>
5625
5626 * process.c (CAN_HANDLE_MULTIPLE_CHILDREN): Fix a typo that broke
5627 SIGCHLD handling on systems that don't have WNOHANG. (Bug#12327)
5628
5629 2012-09-06 Dmitry Antipov <dmantipov@yandex.ru>
5630
5631 Explicitly mark buffer_defaults and buffer_local_symbols.
5632 * alloc.c (Fgarbage_collect): Mark buffer_defaults and
5633 mark_local_symbols here.
5634 (mark_object): If GC_CHECK_MARKED_OBJECTS, simplify checking
5635 since special buffers aren't marked here any more.
5636 (allocate_buffer): Chain new buffer with all_buffers here...
5637 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): ...and
5638 not here.
5639 (Vbuffer_defaults, Vbuffer_local_symbols): Remove.
5640 (syms_of_buffer): Remove staticpro of the above.
5641 (init_buffer_once): Set names for buffer_defaults and
5642 buffer_local_symbols.
5643
5644 2012-09-06 Paul Eggert <eggert@cs.ucla.edu>
5645
5646 Use bool for booleans in font-related modules.
5647 * font.c (font_intern_prop, font_style_to_value)
5648 (font_style_symbolic, font_parse_xlfd, font_parse_fcname)
5649 (generate_otf_features, font_check_otf_features, font_check_otf)
5650 (font_match_p, font_list_entities, font_at):
5651 * fontset.c (fontset_id_valid_p, reorder_font_vector
5652 (fontset_find_font, Fset_fontset_font)
5653 (face_suitable_for_char_p) [0]:
5654 * ftfont.c (fc_initialized, ftfont_get_open_type_spec)
5655 (ftfont_open, ftfont_text_extents, ftfont_check_otf):
5656 (m17n_flt_initialized, ftfont_shape_by_flt):
5657 * ftxfont.c (ftxfont_draw_bitmap, ftxfont_draw):
5658 * nsfont.m (nsfont_draw):
5659 * w32font.c (w32font_draw):
5660 * w32term.c (x_draw_glyphless_glyph_string_foreground):
5661 Use bool for booleans.
5662 * font.h: Adjust to above API changes.
5663 (struct font, struct font_driver, struct font_driver_list):
5664 Use bool for booleans.
5665 (struct font): Remove useless member encoding_type.
5666 All users removed.
5667 * fontset.c, xftfont.c: Omit unnecessary static decls.
5668
5669 2012-09-06 Dmitry Antipov <dmantipov@yandex.ru>
5670
5671 * alloc.c (mark_object): Revert window marking code
5672 since it's unsafe for the Fset_window_configuration.
5673
5674 2012-09-05 Paul Eggert <eggert@cs.ucla.edu>
5675
5676 Fix race conditions with signal handlers and errno (Bug#12327).
5677 Be more systematic about preserving errno whenever a signal
5678 handler returns, even if it's not in the main thread. Do this by
5679 renaming signal handlers to distinguish between signal delivery
5680 and signal handling. All uses changed.
5681 * atimer.c (deliver_alarm_signal): Rename from alarm_signal_handler.
5682 * data.c (deliver_arith_signal): Rename from arith_error.
5683 * dispnew.c (deliver_window_change_signal): Rename from
5684 window_change_signal.
5685 * emacs.c (deliver_error_signal): Rename from fatal_error_signal.
5686 (deliver_danger_signal) [SIGDANGER]: Rename from memory_warning_signal.
5687 * keyboard.c (deliver_input_available_signal): Rename from
5688 input_available_signal.
5689 (deliver_user_signal): Rename from handle_user_signal.
5690 (deliver_interrupt_signal): Rename from interrupt_signal.
5691 * process.c (deliver_pipe_signal): Rename from send_process_trap.
5692 (deliver_child_signal): Rename from sigchld_handler.
5693 * atimer.c (handle_alarm_signal):
5694 * data.c (handle_arith_signal):
5695 * dispnew.c (handle_window_change_signal):
5696 * emacs.c (handle_fatal_signal, handle_danger_signal):
5697 * keyboard.c (handle_input_available_signal):
5698 * keyboard.c (handle_user_signal, handle_interrupt_signal):
5699 * process.c (handle_pipe_signal, handle_child_signal):
5700 New functions, with the actual signal-handling code taken from the
5701 original respective signal handlers, sans the sporadic attempts to
5702 preserve errno, since that's now done by handle_on_main_thread.
5703 * atimer.c (alarm_signal_handler): Remove unnecessary decl.
5704 * emacs.c, floatfns.c, lisp.h: Remove unused FLOAT_CATCH_SIGKILL cruft.
5705 * emacs.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
5706 Move to sysdep.c.
5707 (main) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
5708 Move initialization of main_thread to sysdep.c's init_signals.
5709 * process.c (waitpid) [!WNOHANG]: #define to wait; that's good enough for
5710 our usage, and simplifies the mainline code.
5711 (record_child_status_change): New static function, as a helper
5712 for handle_child_signal, and with most of the old child handler's
5713 contents.
5714 (CAN_HANDLE_MULTIPLE_CHILDREN): New constant.
5715 (handle_child_signal): Use the above.
5716 * sysdep.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
5717 Moved here from emacs.c.
5718 (init_signals) [FORWARD_SIGNAL_TO_MAIN_THREAD]: Initialize it;
5719 code moved here from emacs.c's main function.
5720 * sysdep.c, syssignal.h (handle_on_main_thread): New function,
5721 replacing the old SIGNAL_THREAD_CHECK. All uses changed.
5722 This lets callers save and restore errno properly.
5723
5724 2012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
5725
5726 Remove redundant or unused things here and there.
5727 * lisp.h (CYCLE_CHECK, CHAR_TABLE_TRANSLATE): Remove.
5728 * conf_post.h (RE_TRANSLATE): Use char_table_translate.
5729 * editfns.c (Fcompare_buffer_substrings): Likewise.
5730 * frame.h (struct terminal, struct font_driver_list):
5731 Remove redundant declarations.
5732 * window.h (Qleft, Qright): Likewise.
5733
5734 2012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
5735
5736 Do not mark objects from deleted buffers, windows and frames.
5737 * alloc.c (mark_buffer): Mark just the buffer if it is dead.
5738 (mark_object): Likewise for windows and frames.
5739
5740 2012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
5741
5742 * alloc.c (valid_lisp_object_p): Treat killed buffers,
5743 buffer_defaults and buffer_local_symbols as valid objects.
5744 Return special value to denote them.
5745
5746 2012-09-05 Paul Eggert <eggert@cs.ucla.edu>
5747
5748 * fileio.c, filelock.c, floatfns.c, fns.c: Use bool for boolean.
5749 * fileio.c (auto_saving, auto_save_error_occurred, make_temp_name)
5750 (Fexpand_file_name, barf_or_query_if_file_exists, Fcopy_file)
5751 (file_name_absolute_p, Fsubstitute_in_file_name):
5752 (check_executable, check_writable, Ffile_accessible_directory_p)
5753 (Fset_file_selinux_context, Fdefault_file_modes)
5754 (Finsert_file_contents, choose_write_coding_system)
5755 (Fwrite_region, build_annotations, a_write, e_write)
5756 (Fdo_auto_save):
5757 * filelock.c (boot_time_initialized, get_boot_time)
5758 (get_boot_time_1, lock_file_1, within_one_second):
5759 * floatfns.c (in_float):
5760 * fns.c (concat, internal_equal, Frequire, base64_encode_1)
5761 (base64_decode_1, cmpfn_eql, cmpfn_user_defined)
5762 (sweep_weak_table, sweep_weak_hash_tables, secure_hash):
5763 * lisp.h (struct Lisp_Hash_Table.cmpfn):
5764 * window.c (compare_window_configurations):
5765 Use bool for booleans.
5766 * fileio.c (auto_saving_dir_umask, auto_saving_mode_bits)
5767 (Fdefault_file_modes): Now mode_t, not int, for modes.
5768 (Fdo_auto_save): Set a boolean to 1 rather than using ++.
5769 (internal_delete_file): Now returns void, not a (boolean) int,
5770 since nobody was looking at the return value.
5771 * lisp.h, window.h: Adjust to above API changes.
5772
5773 * xdisp.c (set_message): Simplify and reindent last change.
5774
5775 2012-09-05 Juanma Barranquero <lekktu@gmail.com>
5776
5777 * makefile.w32-in ($(BLD)/sysdep.$(O)): Update dependencies.
5778
5779 2012-09-04 Lars Ingebrigtsen <larsi@gnus.org>
5780
5781 * eval.c (call_debugger): Make the function non-static so that we
5782 can call it from set_message.
5783
5784 * xdisp.c (set_message): Implement the new variable `debug-on-message'.
5785 (syms_of_xdisp): Defvar it and `inhibit-debug-on-message'.
5786
5787 2012-09-04 Paul Eggert <eggert@cs.ucla.edu>
5788
5789 Give more-useful info on a fatal error (Bug#12328).
5790 * alloc.c [ENABLE_CHECKING]: Do not include <execinfo.h>.
5791 (die) [ENABLE_CHECKING]: Call fatal_error_backtrace instead
5792 of doing the work ourselves.
5793 * emacs.c (fatal_error_signal): Let fatal_error_backtrace
5794 do most of the work.
5795 (fatal_error_backtrace): New function, taken from the guts
5796 of the old fatal_error_signal, but with a new option to output
5797 a backtrace.
5798 (shut_down_emacs) [!DOS_NT]: Use strsignal to give more-useful
5799 info about the signal than just its number.
5800 * lisp.h (fatal_error_backtrace, emacs_backtrace): New decls.
5801 * sysdep.c: Include <execinfo.h>
5802 (emacs_backtrace): New function, taken partly from the previous
5803 code of the 'die' function.
5804 (emacs_abort): Call fatal_error_backtrace rather than abort.
5805
5806 2012-09-04 Stefan Monnier <monnier@iro.umontreal.ca>
5807
5808 * lread.c (readevalloop): Call internal-macroexpand-for-load to perform
5809 eager (load-time) macro-expansion.
5810 * lisp.mk (lisp): Add macroexp.
5811
5812 2012-09-04 Paul Eggert <eggert@cs.ucla.edu>
5813
5814 Simplify redefinition of 'abort' (Bug#12316).
5815 Do not try to redefine the 'abort' function. Instead, redo
5816 the code so that it calls 'emacs_abort' rather than 'abort'.
5817 This removes the need for the NO_ABORT configure-time macro
5818 and makes it easier to change the abort code to do a backtrace.
5819 * .gdbinit: Just stop at emacs_abort, not at w32_abort or abort.
5820 * emacs.c (abort) [!DOS_NT && !NO_ABORT]:
5821 Remove; sysdep.c's emacs_abort now takes its place.
5822 * lisp.h (emacs_abort): New decl. All calls from Emacs code to
5823 'abort' changed to use 'emacs_abort'.
5824 * msdos.c (dos_abort) [defined abort]: Remove; not used.
5825 (abort) [!defined abort]: Rename to ...
5826 (emacs_abort): ... new name.
5827 * sysdep.c (emacs_abort) [!HAVE_NTGUI]: New function, taking
5828 the place of the old 'abort' in emacs.c.
5829 * w32.c, w32fns.c (abort): Do not #undef.
5830 * w32.c (emacs_abort): Rename from w32_abort.
5831
5832 2012-09-04 Eli Zaretskii <eliz@gnu.org>
5833
5834 * w32uniscribe.c (uniscribe_shape): Reverse the sign of
5835 offsets[j].dv, since the y axis of the screen coordinates points
5836 down, while the y axis of the font definition coordinates points
5837 up. This fixes display of Arabic diacritics such as KASRA and
5838 KASRATAN. (Bug#11860)
5839
5840 2012-09-04 Paul Eggert <eggert@cs.ucla.edu>
5841
5842 Be more systematic about _setjmp vs setjmp.
5843 * alloc.c (test_setjmp, mark_stack):
5844 * image.c (PNG_LONGJMP) [PNG_LIBPNG_VER < 10500]:
5845 (PNG_JMPBUF) [! (PNG_LIBPNG_VER < 10500)]:
5846 (png_load, my_error_exit, jpeg_load):
5847 * process.c (send_process_trap, send_process):
5848 Uniformly prefer _setjmp and _longjmp to setjmp and longjmp.
5849 The underscored versions are up to 30x faster on some hosts.
5850 Formerly, the code used setjmp+longjmp sometimes and
5851 _setjmp+_longjmp at other times, with no particular reason to
5852 prefer setjmp+longjmp.
5853
5854 2012-09-03 Paul Eggert <eggert@cs.ucla.edu>
5855
5856 Fix minor problem found by static checking.
5857 * buffer.c (Fdelete_all_overlays): Return nil.
5858
5859 2012-09-03 Martin Rudalics <rudalics@gmx.at>
5860
5861 * buffer.c (Fdelete_all_overlays): New function.
5862
5863 2012-09-03 Chong Yidong <cyd@gnu.org>
5864
5865 * gtkutil.c: Add extern decl for Qxft.
5866
5867 2012-09-02 Paul Eggert <eggert@cs.ucla.edu>
5868
5869 * emacs.c, eval.c: Use bool for boolean.
5870 * emacs.c (initialized, inhibit_window_system, running_asynch_code):
5871 (malloc_using_checking) [DOUG_LEA_MALLOC]:
5872 (display_arg) [HAVE_X_WINDOWS || HAVE_NS]:
5873 (noninteractive, no_site_lisp, fatal_error_in_progress, argmatch)
5874 (main, decode_env_path, Fdaemon_initialized):
5875 * eval.c (call_debugger, Finteractive_p, interactive_p):
5876 (unwind_to_catch, Fsignal, wants_debugger, skip_debugger)
5877 (maybe_call_debugger, Fbacktrace):
5878 * process.c (read_process_output, exec_sentinel):
5879 Use bool for booleans.
5880 * emacs.c (shut_down_emacs): Omit unused boolean argument NO_X.
5881 All callers changed.
5882 * eval.c (interactive_p): Omit always-true boolean argument
5883 EXCLUDE_SUBRS_P. All callers changed.
5884 * dispextern.h, lisp.h: Reflect above API changes.
5885 * firstfile.c (dummy): Use the address of 'main', whose signature
5886 won't change, instead of the address of 'initialize', whose
5887 signature just changed from int to bool.
5888 * lisp.h (fatal_error_in_progress): New decl of boolean, moved here ...
5889 * msdos.c (fatal_error_in_progress): ... from here.
5890 * xdisp.c (redisplaying_p): Now a boolean. Set it to 1 instead
5891 of incrementing it.
5892 (redisplay_internal, unwind_redisplay): Simply clear
5893 REDISPLAYING_P when unwinding, instead of saving its previous,
5894 always-false value and then restoring it.
5895
5896 Clean up some extern decls.
5897 Mostly, this hoists extern decls out of .c files and into .h files.
5898 That way, we're more likely to catch errors if the interfaces change.
5899 * alloc.c [USE_GTK]: Include "gtkutil.h" so that we need not
5900 declare xg_mark_data.
5901 * dispextern.h (x_frame_parm_handlers):
5902 * font.h (Qxft):
5903 * lisp.h (Qlexical_binding, Qinternal_interpreter_environment)
5904 (Qextra_light, Qlight, Qsemi_light, Qsemi_bold, Qbold, Qextra_bold)
5905 (Qultra_bold, Qoblique, Qitalic):
5906 Move extern decl here from .c file.
5907 * alloc.c (xg_mark_data) [USE_GTK]:
5908 * doc.c (Qclosure):
5909 * eval.c (Qlexical_binding):
5910 * fns.c (time) [!HAVE_UNISTD_H]:
5911 * gtkutil.c (Qxft, Qnormal, Qextra_light, Qlight, Qsemi_light)
5912 (Qsemi_bold, Qbold, Qextra_bold, Qultra_bold, Qoblique, Qitalic):
5913 * image.c (Vlibrary_cache, QCloaded_from) [HAVE_NTGUI]:
5914 * lread.c (Qinternal_interpreter_environment):
5915 * minibuf.c (Qbuffer):
5916 * process.c (QCfamily, QCfilter):
5917 * widget.c (free_frame_faces):
5918 * xfaces.c (free_frame_menubar) [USE_X_TOOLKIT]:
5919 * xfont.c (x_clear_errors):
5920 * xterm.c (x_frame_parm_handlers):
5921 Remove now-redundant extern decls.
5922 * keyboard.c, keyboard.h (ignore_mouse_drag_p) [USE_GTK || HAVE_NS]:
5923 * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic):
5924 Now static.
5925 * xfaces.c: Remove unnecessary static decls.
5926 * xterm.c (updating_frame): Remove decl of nonexistent object.
5927
5928 * Makefile.in (gl-stamp): Don't scan $(SOME_MACHINE_OBJECTS)
5929 when building globals.h, as the objects that are not built on
5930 this host are not needed to compile C files on this host.
5931
5932 2012-09-02 Jan Djärv <jan.h.d@swipnet.se>
5933
5934 * gtkutil.h: Remove prototype for x_wm_set_size_hint.
5935
5936 * frame.h: Add missing prototype for x_wm_set_size_hint.
5937
5938 2012-09-02 Paul Eggert <eggert@cs.ucla.edu>
5939
5940 * doc.c, editfns.c, insdel.c, intervals.c: Use bool for boolean.
5941 * doc.c (read_bytecode_char, get_doc_string, reread_doc_file)
5942 (Fdocumentation, Fdocumentation_property, Fsnarf_documentation)
5943 (Fsubstitute_command_keys):
5944 * editfns.c (region_limit, find_field, Fconstrain_to_field)
5945 (save_excursion_save, save_excursion_restore)
5946 (disassemble_lisp_time, decode_time_components, emacs_nmemftime)
5947 (format_time_string, general_insert_function)
5948 (make_buffer_string, make_buffer_string_both)
5949 (Fsubst_char_in_region, Ftranslate_region_internal, Fformat):
5950 * insdel.c (check_markers, gap_left, adjust_markers_for_insert)
5951 (copy_text, insert_1, insert_1_both, insert_from_string)
5952 (insert_from_string_before_markers, insert_from_string_1)
5953 (insert_from_buffer, insert_from_buffer_1, replace_range)
5954 (replace_range_2, del_range_1, del_range_byte, del_range_both)
5955 (del_range_2, modify_region):
5956 * intervals.c (intervals_equal, balance_possible_root_interval)
5957 (adjust_intervals_for_insertion, merge_properties_sticky)
5958 (graft_intervals_into_buffer, lookup_char_property)
5959 (adjust_for_invis_intang, set_point_both)
5960 (get_property_and_range, compare_string_intervals)
5961 (set_intervals_multibyte_1, set_intervals_multibyte):
5962 * keyboard.c (decode_timer):
5963 Use bool for boolean.
5964 * intervals.h, lisp.h, systime.h: Reflect above API changes.
5965 * editfns.c (struct info): Use 1-bit unsigned bitfields for booleans.
5966
5967 2012-09-02 Chong Yidong <cyd@gnu.org>
5968
5969 * keymap.c (push_key_description): Print M-TAB as C-M-i
5970 (Bug#11758).
5971
5972 2012-09-02 Juanma Barranquero <lekktu@gmail.com>
5973
5974 * makefile.w32-in (CCL_H, W32FONT_H): New macros.
5975 (ATIMER_H, FONT_H, $(BLD)/alloc.$(O), $(BLD)/callproc.$(O))
5976 ($(BLD)/editfns.$(O), $(BLD)/ccl.$(O), $(BLD)/chartab.$(O))
5977 ($(BLD)/coding.$(O), $(BLD)/sysdep.$(O), $(BLD)/fontset.$(O))
5978 ($(BLD)/sysdep.$(O), $(BLD)/w32fns.$(O), $(BLD)/keyboard.$(O))
5979 ($(BLD)/w32term.$(O), $(BLD)/w32menu.$(O), $(BLD)/process.$(O))
5980 ($(BLD)/w32font.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
5981
5982 2012-09-01 Eli Zaretskii <eliz@gnu.org>
5983
5984 * w32uniscribe.c (uniscribe_shape): Handle correctly the case of
5985 more than one grapheme cluster passed to the shaper: compute the
5986 offset adjustment values separately for each cluster. (Bug#11860)
5987
5988 * image.c: Restore mistakenly removed inclusion of w32.h. Without
5989 it, GCC doesn't see prototypes of w32_delayed_load, and complains
5990 about implicit conversions from integer to pointer.
5991
5992 2012-09-01 Daniel Colascione <dancol@dancol.org>
5993
5994 * w32fns.c (x_display_info_for_name): Prevent crash if w32 window
5995 system used too early.
5996
5997 2012-09-01 Paul Eggert <eggert@cs.ucla.edu>
5998
5999 Better seed support for (random).
6000 * emacs.c (main): Call init_random.
6001 * fns.c (Frandom): Set the seed from a string argument, if given.
6002 Remove long-obsolete Gentzel cruft.
6003 * lisp.h, sysdep.c (seed_random): Now takes address and size, not long.
6004 (init_random): New function.
6005
6006 2012-09-01 Daniel Colascione <dancol@dancol.org>
6007
6008 * xterm.h: Add header guards. Declare x_menubar_window_to_frame.
6009 Remove x_set_frame_alpha, x_bitmap_icon, x_make_frame_visible,
6010 x_make_frame_invisible, x_iconify_frame, x_free_frame_resources,
6011 x_wm_set_size_hint, x_query_colors, x_real_positions,
6012 x_set_menu_bar_lines, x_char_width, x_char_height, x_sync,
6013 x_set_tool_bar_lines, x_activate_menubar, and free_frame_menubar,
6014 all of which have been moved to common code.
6015
6016 * xfaces.c: Include TERM_HEADER instead of listing all possible
6017 window-system headers.
6018
6019 * w32xfns.c (x_sync): Correct definition of x_sync (a no-op here)
6020 to match header.
6021
6022 * w32term.h (FRAME_X_WINDOW): Use FRAME_W32_WINDOW instead of
6023 directly accessing frame internals.
6024
6025 * w32font.h: Include font.h. Define syms_of_w32font and
6026 globals_of_w32font.
6027
6028 * process.c: Include TERM_HEADER instead of listing all possible
6029 window-system headers.
6030
6031 * nsterm.h: Remove declarations now in frame.h.
6032 Define FRAME_X_SCREEN, FRAME_X_VISUAL.
6033
6034 * menu.c: Include TERM_HEADER instead of listing all possible
6035 window-system headers.
6036
6037 * keyboard.h: Declare ignore_mouse_drag_p whenever we have a
6038 window system.
6039
6040 * keyboard.c: Include TERM_HEADER instead of listing all possible
6041 window-system headers.
6042
6043 * image.c: Include TERM_HEADER instead of listing all possible
6044 window-system headers. Declare Vlibrary_cache when compiling for
6045 Windows.
6046
6047 * gtkutil.h (xg_list_node_): Include xterm.h to pick up needed
6048 window system declarations.
6049
6050 * frame.h: Move common functions here: set_frame_menubar,
6051 x_set_window_size, x_sync, x_get_focus_frame,
6052 x_set_mouse_position, x_set_mouse_pixel_position,
6053 x_make_frame_visible, x_make_frame_invisible, x_iconify_frame,
6054 x_char_width, x_char_height, x_pixel_width, x_pixel_height,
6055 x_set_frame_alpha, x_set_menu_bar_lines, x_set_tool_bar_lines,
6056 x_activate_menubar, x_real_positions, x_bitmap_icon,
6057 x_set_menu_bar_lines, free_frame_menubar, x_free_frame_resources,
6058 and x_query_colors.
6059
6060 * frame.c: Include TERM_HEADER instead of listing all possible
6061 window-system headers.
6062
6063 * font.c: Include TERM_HEADER instead of listing all possible
6064 window-system headers.
6065
6066 * emacs.c: Include TERM_HEADER.
6067
6068 * dispnew.c: Include TERM_HEADER instead of listing all possible
6069 window-system headers.
6070
6071 * ccl.h: Include character.h.
6072
6073 * Makefile.in: Define WINDOW_SYSTEM_OBJ to hold objects needed for
6074 the current window system; include in list of objects to link into
6075 Emacs.
6076
6077 2012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
6078
6079 Remove mark_ttys function and fix tty_display_info initialization.
6080 * lisp.h (mark_ttys): Remove prototype.
6081 * alloc.c (Fgarbage_collect): Remove redundant (and the only) call
6082 to mark_ttys because all possible values of 'top_frame' slot are
6083 the frames which are reachable from Vframe_list.
6084 * term.c (mark_ttys): Remove.
6085 (init_tty): Safely initialize 'top_frame' slot with Qnil.
6086
6087 2012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
6088
6089 Change struct frame bitfields from unsigned char to unsigned.
6090 * frame.h (struct frame): Change type of 'display_preempted',
6091 'visible', 'iconified', 'has_minibuffer', 'wants_modeline',
6092 'auto_raise', 'auto_lower', 'no_split', 'explicit_name',
6093 'window_sizes_changed', 'mouse_moved' and 'pointer_invisible'
6094 bitfields from unsigned char to unsigned.
6095
6096 2012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
6097
6098 Remove unused member of struct x_output and struct w32_output.
6099 * xterm.h (struct x_output): Remove unused field 'needs_exposure'.
6100 * w32term.h (struct w32_output): Likewise.
6101
6102 2012-08-30 Jan Djärv <jan.h.d@swipnet.se>
6103
6104 * gtkutil.c (x_wm_set_size_hint): Use 1 col for base_width so it
6105 does not become zero (Bug#12234).
6106
6107 2012-08-30 Paul Eggert <eggert@cs.ucla.edu>
6108
6109 * dispnew.c (update_frame_1): Pacify gcc -Wstrict-overflow
6110 for GCC 4.7.1 x86-64.
6111
6112 2012-08-30 Glenn Morris <rgm@gnu.org>
6113
6114 * lread.c (init_lread): For out-of-tree builds, only add the
6115 source directory's site-lisp dir to the load-path if it exists,
6116 consistent with in-tree builds. (Bug#12302)
6117
6118 2012-08-28 Jan Djärv <jan.h.d@swipnet.se>
6119
6120 * nsmenu.m (initWithContentRect:styleMask:backing:defer:): Initialize
6121 button_values to NULL. Call setStykeMask so dialogs get a close button.
6122 (windowShouldClose:): Set window_closed.
6123 (dealloc): New member, free button_values.
6124 (process_dialog:): Make member function. Remove window argument,
6125 replace window with self. Count buttons and allocate and store values
6126 in button_values.
6127 (addButton:value:row:): value is int with the name tag. Call setTag
6128 with tag. Remove return self, declare return value as void.
6129 (addString:row:): Remove return self, declare return value as void.
6130 (addSplit): Remove return self, declare return value as void.
6131 (clicked:): Remove return self, declare return value as void.
6132 Set dialog_return to button_values[seltag]. Code formatting change.
6133 (initFromContents:isQuestion:): Adjust call to process_dialog.
6134 Code formatting change.
6135 (timeout_handler:): Set timer_fired to YES.
6136 (runDialogAt:): Set timer_fired to NO.
6137 Handle click on close button as quit.
6138
6139 * nsterm.h (EmacsDialogPanel): Make timer_fired BOOL.
6140 Add window_closed and button_values. Add void as return value for
6141 add(Button|String|Split). addButton takes int instead of Lisp_Object.
6142 Add process_dialog as new member.
6143
6144 2012-08-28 Eli Zaretskii <eliz@gnu.org>
6145
6146 * ralloc.c (free_bloc): Don't dereference a 'heap' structure if it
6147 is not one of the heaps we manage. (Bug#12242)
6148
6149 2012-08-28 Glenn Morris <rgm@gnu.org>
6150
6151 * eval.c (Fcalled_interactively_p): Doc fix. (Bug#11747)
6152
6153 2012-08-28 Martin Rudalics <rudalics@gmx.at>
6154
6155 * window.c (Fset_window_configuration): Remove handling of
6156 auto-buffer-name window parameter. Install revision of reverted
6157 fix.
6158
6159 2012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
6160
6161 Do not allow to set major mode for a dead buffer.
6162 * buffer.c (Fset_buffer_major_mode): Signal an error
6163 if the buffer is dead.
6164 (Fother_buffer, other_buffer_safely): Remove redundant
6165 nested declaration.
6166
6167 2012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
6168
6169 Always use set_buffer_if_live to restore original buffer at unwind.
6170 * buffer.h (record_unwind_current_buffer): New function.
6171 * bytecode.c, dispnew.c, editfns.c, fileio.c, fns.c, insdel.c:
6172 * keyboard.c, keymap.c, minibuf.c, print.c, process.c, textprop.c:
6173 * undo.c, window.c: Adjust users.
6174 * buffer.c (set_buffer_if_live): Fix comment.
6175
6176 2012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
6177
6178 Fix usage of set_buffer_internal.
6179 * buffer.h (set_buffer_internal): Make it BUFFER_INLINE.
6180 * buffer.c (set_buffer_if_live): Use set_buffer_internal.
6181 * coding.c (decode_coding): Omit redundant test.
6182 * fileio.c (decide_coding_unwind): Likewise.
6183 * fns.c (secure_hash): Likewise.
6184 * insdel.c (modify_region): Likewise.
6185 * keyboard.c (command_loop_1): Likewise.
6186 * print.c (PRINTFINISH): Likewise.
6187 * xdisp.c (run_window_scroll_functions): Use set_buffer_internal.
6188
6189 2012-08-27 Paul Eggert <eggert@cs.ucla.edu>
6190
6191 * dispnew.c: Use bool for boolean.
6192 (frame_garbaged, display_completed, delayed_size_change)
6193 (fonts_changed_p, add_window_display_history)
6194 (add_frame_display_history, verify_row_hash)
6195 (adjust_glyph_matrix, clear_window_matrices, glyph_row_slice_p)
6196 (row_equal_p, realloc_glyph_pool)
6197 (allocate_matrices_for_frame_redisplay)
6198 (showing_window_margins_p)
6199 (adjust_frame_glyphs_for_frame_redisplay)
6200 (build_frame_matrix_from_leaf_window, make_current)
6201 (mirrored_line_dance, mirror_line_dance, update_frame)
6202 (update_window_tree, update_single_window)
6203 (check_current_matrix_flags, update_window, update_text_area)
6204 (update_window_line, set_window_update_flags, scrolling_window)
6205 (update_frame_1, scrolling, buffer_posn_from_coords)
6206 (do_pending_window_change, change_frame_size)
6207 (change_frame_size_1, sit_for):
6208 Use bool for boolean.
6209 (clear_glyph_matrix_rows): Rename from enable_glyph_matrix_rows,
6210 and remove last int (actually boolean) argument, which was always 0.
6211 All callers changed.
6212 * dispextern.h, frame.h, lisp.h: Reflect above API changes.
6213 * dispextern.h (struct composition_it): Use bool for boolean.
6214 (struct glyph_matrix): Don't assume buffer sizes can fit in 'int'.
6215 (struct bidi_it): Use unsigned:1, not int, for boolean prev_was_pdf.
6216 * dired.c (file_name_completion):
6217 Use bool for boolean. (This was missed in an earlier change.)
6218
6219 2012-08-27 Martin Rudalics <rudalics@gmx.at>
6220
6221 * window.c (Fset_window_configuration): Revert first part of
6222 last change.
6223
6224 2012-08-27 Jan Djärv <jan.h.d@swipnet.se>
6225
6226 * nsterm.h (NSPanel): New class variable dialog_return.
6227
6228 * nsmenu.m (initWithContentRect:styleMask:backing:defer:):
6229 Initialize dialog_return.
6230 (windowShouldClose:): Use stop instead of stopModalWithCode.
6231 (clicked:): Ditto, and also set dialog_return (Bug#12258).
6232 (timeout_handler:): Use stop instead of abortModal. Send a dummy
6233 event.
6234 (runDialogAt:): Make ret Lisp_Object. Set it from dialog_return when
6235 modal loop returns.
6236
6237 2012-08-27 Paul Eggert <eggert@cs.ucla.edu>
6238
6239 * composite.c, data.c, dbusbind.c, dired.c: Use bool for booleans.
6240 * composite.c (find_composition, composition_gstring_p)
6241 (composition_reseat_it, find_automatic_composition):
6242 * data.c (let_shadows_buffer_binding_p)
6243 (let_shadows_global_binding_p, set_internal, make_blv)
6244 (Fmake_variable_buffer_local, Fmake_local_variable)
6245 (Fmake_variable_frame_local, arithcompare, cons_to_unsigned)
6246 (cons_to_signed, arith_driver):
6247 * dbusbind.c (xd_in_read_queued_messages):
6248 * dired.c (directory_files_internal, file_name_completion):
6249 Use bool for booleans.
6250 * dired.c (file_name_completion):
6251 * process.h (fd_callback):
6252 Omit int (actually boolean) argument. It wasn't being used.
6253 All uses changed.
6254 * composite.h, lisp.h: Reflect above API changes.
6255
6256 * cmds.c, coding.c: Use bool for booleans.
6257 * cmds.c (move_point, Fself_insert_command):
6258 * coding.h (struct composition status, struct coding_system):
6259 * coding.c (detect_coding_utf_8, encode_coding_utf_8)
6260 (detect_coding_utf_16, encode_coding_utf_16, detect_coding_emacs_mule)
6261 (emacs_mule_char, decode_coding_emacs_mule)
6262 (encode_coding_emacs_mule, detect_coding_iso_2022)
6263 (decode_coding_iso_2022, encode_invocation_designation)
6264 (encode_designation_at_bol, encode_coding_iso_2022)
6265 (detect_coding_sjis, detect_coding_big5, decode_coding_sjis)
6266 (decode_coding_big5, encode_coding_sjis, encode_coding_big5)
6267 (detect_coding_ccl, encode_coding_ccl, decode_coding_raw_text)
6268 (encode_coding_raw_text, detect_coding_charset)
6269 (decode_coding_charset, encode_coding_charset, detect_eol)
6270 (detect_coding, get_translation_table, produce_chars)
6271 (consume_chars, reused_workbuf_in_use)
6272 (make_conversion_work_buffer, code_conversion_save)
6273 (decode_coding_object, encode_coding_object)
6274 (detect_coding_system, char_encodable_p)
6275 (Funencodable_char_position, code_convert_region)
6276 (code_convert_string, code_convert_string_norecord)
6277 (Fset_coding_system_priority):
6278 * fileio.c (Finsert_file_contents):
6279 Use bool for booleans.
6280 * coding.h, lisp.h: Reflect above API changes.
6281 * coding.c: Remove unnecessary static function decls.
6282 (detect_coding): Use unsigned, not signed, to copy an unsigned field.
6283 (decode_coding, encode_coding, decode_coding_gap): Return 'void',
6284 not a boolean 'int', since callers never look at the return value.
6285 (ALLOC_CONVERSION_WORK_AREA): Assume caller returns 'void', not 'int'.
6286 * coding.h (decoding_buffer_size, encoding_buffer_size)
6287 (emacs_mule_string_char): Remove unused extern decls.
6288 (struct iso_2022_spec, struct coding_system):
6289 Use 'unsigned int : 1' for boolean fields, since there's more than one.
6290 (struct emacs_mule_spec): Remove unused field 'full_support'.
6291 All initializations removed.
6292 * cmds.c (internal_self_insert): Don't assume EMACS_INT fits in 'int'.
6293
6294 2012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
6295
6296 Fix spare memory change (Bug#12286).
6297 * alloc.c (mark_maybe_pointer): Handle MEM_TYPE_SPARE.
6298 (valid_lisp_object_p): Likewise.
6299
6300 2012-08-27 Martin Rudalics <rudalics@gmx.at>
6301
6302 * window.c (Fset_window_configuration): Record any window's old
6303 buffer if it's replaced (see Bug#8789). If the new current
6304 buffer doesn't appear in the selected window, go to its old
6305 point (Bug#12208).
6306
6307 2012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
6308
6309 Special MEM_TYPE_SPARE to denote reserved memory.
6310 * alloc.c (enum mem_type): New memory type.
6311 (refill_memory_reserve): Use new type for spare memory.
6312 This prevents live_cons_p and live_string_p from incorrect
6313 detection of uninitialized objects from spare memory as live.
6314
6315 2012-08-26 Paul Eggert <eggert@cs.ucla.edu>
6316
6317 Spelling fixes.
6318 * Makefile.in (.PHONY): versioclean -> versionclean.
6319
6320 Remove unused external symbols.
6321 * data.c (Qcons, Qfloat, Qmisc, Qstring, Qvector):
6322 * window.c (Qwindow_valid_p, decode_valid_window):
6323 Now static, not extern.
6324 * data.c (Qinterval): Remove; unused.
6325 (syms_of_data): Do not define 'interval'.
6326 * lisp.h (Qinteger, Qstring, Qmisc, Qvector, Qfloat, Qcons):
6327 * window.h (decode_valid_window):
6328 Remove decls.
6329
6330 * character.c, charset.c, chartab.c: Use bool for booleans.
6331 * character.c (lisp_string_width, string_count_byte8)
6332 (string_escape_byte8):
6333 * charset.c (charset_map_loaded, load_charset_map, read_hex):
6334 (load_charset_map_from_file, map_charset_chars)
6335 (Fdefine_charset_internal, define_charset_internal)
6336 (Fdeclare_equiv_charset, find_charsets_in_text)
6337 (Ffind_charset_region, char_charset, Fiso_charset):
6338 * chartab.c (sub_char_table_ref, sub_char_table_ref_and_range)
6339 (sub_char_table_set, sub_char_table_set_range)
6340 (char_table_set_range, optimize_sub_char_table)
6341 (map_sub_char_table):
6342 Use bool for boolean.
6343 * character.c (str_to_unibyte): Omit last boolean argument; it was
6344 always 0. All callers changed.
6345 * character.h, charset.h: Adjust to match previous changes.
6346 * character.h (char_printable_p): Remove decl of nonexistent function.
6347 * charset.h (struct charset): Members code_linear_p, iso_chars_96,
6348 ascii_compatible_p, supplementary_p, compact_codes_p, unified_p
6349 are all boolean, so make them single-bit bitfields.
6350
6351 * lisp.h (ASET): Remove attempt to detect side effects.
6352 It was meant to be temporary and it often doesn't work,
6353 because when IDX has side effects the behavior of IDX==IDX
6354 is undefined. See Stefan Monnier in
6355 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00762.html>.
6356
6357 2012-08-26 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
6358
6359 * lisp.h (functionp): New function (extracted from Ffunctionp).
6360 (FUNCTIONP): Use it.
6361 * eval.c (Ffunctionp): Use it.
6362
6363 2012-08-25 Paul Eggert <eggert@cs.ucla.edu>
6364
6365 * xgselect.c (xg_select): Use auto storage for the GPollFD buffer
6366 as that's faster and simpler than static storage. Don't bother
6367 with the g_main_context_query overhead if g_main_context_pending
6368 says no events are pending.
6369 (gfds, gfds_size): Remove these static vars.
6370 (xgselect_initialize): Remove; no longer needed.
6371 All uses and decls removed.
6372
6373 * emacs.c (fatal_error_signal_hook): Remove.
6374 All uses removed. This leftover from old code was always 0.
6375
6376 * casefiddle.c, casetab.c, category.c: Use bool for boolean.
6377 * casefiddle.c (casify_object, casify_region):
6378 * casetab.c (set_case_table):
6379 * category.c, category.h (word_boundary_p):
6380 * category.h (CHAR_HAS_CATEGORY):
6381 Use bool for booleans, instead of int.
6382
6383 2012-08-25 Eli Zaretskii <eliz@gnu.org>
6384
6385 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on $(GNU_LIB)/execinfo.h.
6386
6387 2012-08-25 Paul Eggert <eggert@cs.ucla.edu>
6388
6389 On assertion failure, print backtrace if available.
6390 * alloc.c [ENABLE_CHECKING]: Include <execinfo.h>.
6391 (die) [ENABLE_CHECKING]: Print a backtrace if available.
6392 * Makefile.in (LIB_EXECINFO): New macro.
6393 (LIBES): Use it.
6394
6395 * bytecode.c, callint.c, callproc.c: Use bool for boolean.
6396 * bytecode.c (exec_byte_code):
6397 * callint.c (check_mark, Fcall_interactively):
6398 * callproc.c (Fcall_process, add_env, child_setup, getenv_internal_1)
6399 (getenv_internal, sync_process_alive, call_process_exited):
6400 * lisp.h (USE_SAFE_ALLOCA):
6401 Use bool for booleans, instead of int.
6402 * lisp.h, process.h: Adjust prototypes to match above changes.
6403 * callint.c (Fcall_interactively): Don't assume the mark's
6404 offset fits in 'int'.
6405
6406 2012-08-24 Paul Eggert <eggert@cs.ucla.edu>
6407
6408 * buffer.c, buffer.h: Use bool for boolean.
6409 * buffer.c (reset_buffer_local_variables)
6410 (buffer_lisp_local_variables, Fset_buffer_modified_p)
6411 (Frestore_buffer_modified_p, Fset_buffer_multibyte):
6412 (overlays_at, overlays_in, mouse_face_overlay_overlaps)
6413 (overlay_touches_p, overlay_strings, Foverlay_put)
6414 (report_overlay_modification, call_overlay_mod_hooks):
6415 (mmap_enlarge, mmap_set_vars):
6416 * buffer.h (buffer_has_overlays, uppercasep, lowercasep):
6417 Use bool for booleans, instead of int.
6418 * buffer.c (compact_buffer, mmap_free_1): Return void, not int,
6419 since the 1-or-0 return value is always ignored anyway.
6420 (mmap_initialized_p):
6421 * buffer.h (struct buffer_text.inhibit_shrinking): Now bool, not int.
6422 * buffer.h, lisp.h: Adjust prototypes to match above changes.
6423
6424 2012-08-23 Paul Eggert <eggert@cs.ucla.edu>
6425
6426 * bidi.c: Use bool for boolean.
6427 This is a bit more readable, and makes the text segment of bidi.o
6428 0.4% smaller on my platform (GCC 4.7.1 x86-64, Fedora 15).
6429 Presumably it's faster too.
6430 (bidi_initialized, bidi_ignore_explicit_marks_for_paragraph_level):
6431 Now bool.
6432 (bidi_cache_find_level_change, bidi_cache_iterator_state)
6433 (bidi_unshelve_cache, bidi_init_it, bidi_count_bytes)
6434 (bidi_char_at_pos, bidi_fetch_char, bidi_paragraph_init)
6435 (bidi_explicit_dir_char, bidi_level_of_next_char)
6436 (bidi_find_other_level_edge, bidi_move_to_visually_next):
6437 Use bool for booleans, instead of int.
6438 * dispextern.h (bidi_init_it, bidi_paragraph_init)
6439 (bidi_unshelve_cache): Adjust decls to match code.
6440
6441 2012-08-23 Martin Rudalics <rudalics@gmx.at>
6442
6443 * keyboard.c (Fposn_at_x_y): Do not allow internal window as
6444 argument.
6445
6446 2012-08-23 Paul Eggert <eggert@cs.ucla.edu>
6447
6448 * atimer.c, atimer.h (turn_on_atimers): Use bool for boolean.
6449 * atimer.h: Include <stdbool.h>.
6450
6451 2012-08-22 Dan Nicolaescu <dann@gnu.org>
6452
6453 * frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_NS_P): Change to
6454 compile time tests instead of run time tests on systems that do
6455 not use them.
6456 (FRAME_MAC_P): Remove leftover from deleted code.
6457 * frame.c (syms_of_frame): Remove leftover from deleted code.
6458
6459 2012-08-22 Jan Djärv <jan.h.d@swipnet.se>
6460
6461 * nsterm.m (insertText:): Don't clear modifiers if code is space.
6462
6463 2012-08-22 Paul Eggert <eggert@cs.ucla.edu>
6464
6465 * fontset.c (FONTSET_ADD): Return void, not Lisp_Object.
6466 Otherwise, the compiler complains about (A?B:C) where B is void
6467 and C is Lisp_Object. This fixes an incompatibility with Sun C 5.12.
6468 (fontset_add): Return void, for FONTSET_ADD.
6469
6470 2012-08-21 Paul Eggert <eggert@cs.ucla.edu>
6471
6472 * alloc.c: Use bool for booleans.
6473 (gc_in_progress, abort_on_gc)
6474 (setjmp_tested_p) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
6475 (dont_register_blocks) [GC_MALLOC_CHECK]:
6476 (suppress_checking) [ENABLE_CHECKING]: Now bool, not int.
6477 (check_string_bytes, make_specified_string, memory_full)
6478 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
6479 (live_misc_p, live_vector_p, live_buffer_p, mark_maybe_object)
6480 (mark_stack, valid_pointer_p, make_pure_string)
6481 (Fgarbage_collect, survives_gc_p, gc_sweep):
6482 Use bool for booleans, instead of int.
6483 (test_setjmp) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
6484 Remove unused local.
6485 * alloc.c (PURE_POINTER_P):
6486 * lisp.h (STRING_MULTIBYTE): Document that it returns a boolean.
6487 * editfns.c (Fformat):
6488 * fileio.c (Fexpand_file_name, Fsubstitute_in_file_name)
6489 (Fdo_auto_save):
6490 * fns.c (sweep_weak_table):
6491 * lisp.h (suppress_checking, push_message, survives_gc_p)
6492 (make_pure_string, gc_in_progress, abort_on_gc):
6493 * lread.c (readchar, read1):
6494 * print.c (Fprin1_to_string):
6495 * xdisp.c (push_message):
6496 Use bool for booleans affected directly or indirectly by
6497 alloc.c's changes.
6498
6499 Make recently-introduced setters macros.
6500 * fontset.c (set_fontset_id, set_fontset_name, set_fontset_ascii)
6501 (set_fontset_base, set_fontset_frame, set_fontset_nofont_face)
6502 (set_fontset_default, set_fontset_fallback): Rename from their
6503 upper-case counterparts, and make them functions rather than macros.
6504 This is more consistent with the other recently-introduced setters.
6505 These don't need to be inline, since they're local.
6506
6507 2012-08-21 Jan Djärv <jan.h.d@swipnet.se>
6508
6509 * nsterm.m (fd_handler:): Alloc and release a NSAutoreleasePool in
6510 the loop (Bug#12247).
6511
6512 2012-08-21 Paul Eggert <eggert@cs.ucla.edu>
6513
6514 * lisp.h (vcopy): Use memcpy rather than our own loop.
6515 This fixes a performance regression introduced by the recent
6516 addition of vcopy. This means 'vcopy' will need to be modified
6517 for a copying collector, but that's OK. Also, tighten the
6518 checking in the assertion.
6519
6520 2012-08-21 Eli Zaretskii <eliz@gnu.org>
6521
6522 * w32uniscribe.c (uniscribe_shape): Fix producing gstring
6523 components for RTL text (Bug#11860). Adjust X-OFFSET of each
6524 non-base glyph for the width of the base character, according to
6525 what x_draw_composite_glyph_string_foreground expects.
6526 Generate WADJUST value according to composition_gstring_width's
6527 expectations, to produce correct width of the composed character.
6528 Reverse the sign of the DU offset produced by ScriptPlace.
6529
6530 2012-08-21 Paul Eggert <eggert@cs.ucla.edu>
6531
6532 * dbusbind.c (xd_remove_watch): Do not assume C99 comments.
6533
6534 2012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
6535
6536 Avoid direct writes to contents member of struct Lisp_Vector.
6537 * lisp.h (vcopy): New function to copy data into vector.
6538 * dispnew.c (Fframe_or_buffer_changed_p): Use AREF and ASET.
6539 * fns.c (Ffillarray): Use ASET.
6540 * keyboard.c (timer_check_2): Use AREF and ASET.
6541 (append_tool_bar_item, Frecent_keys): Use vcopy.
6542 * lread.c (read_vector): Use ASET.
6543 * msdos.c (Frecent_doskeys): Use vcopy.
6544 * xface.c (Finternal_copy_lisp_face): Use vcopy.
6545 (Finternal_merge_in_global_face): Use ASET and vcopy.
6546 * xfont.c (xfont_list_pattern): Likewise.
6547
6548 2012-08-21 Martin Rudalics <rudalics@gmx.at>
6549
6550 * window.c (Fwindow_point): For the selected window always return
6551 the position of its buffer's point.
6552 (Fset_window_point): For the selected window always go in its
6553 buffer to the specified position.
6554
6555 2012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
6556
6557 Setter macros for fontsets.
6558 * fontset.c (SET_FONTSET_ID, SET_FONTSET_NAME, SET_FONTSET_ASCII)
6559 (SET_FONTSET_BASE, SET_FONTSET_FRAME, SET_FONTSET_NOFONT_FACE)
6560 (SET_FONTSET_DEFAULT, SET_FONTSET_FALLBACK): New macros.
6561 Adjust users.
6562
6563 2012-08-20 Glenn Morris <rgm@gnu.org>
6564
6565 * Makefile.in (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
6566 Don't assume that `ln -f' works.
6567
6568 2012-08-20 Eli Zaretskii <eliz@gnu.org>
6569
6570 * .gdbinit: Use "set $dummy = ..." to avoid warnings from GDB 7.5
6571 and later about non-assignments with no effect. See discussion at
6572 http://sourceware.org/ml/gdb-patches/2012-08/msg00518.html for
6573 details.
6574
6575 2012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
6576
6577 Inline setter functions for Lisp_Objects slots of struct specbinding.
6578 * eval.c (set_specpdl_symbol, set_specpdl_old_value): New functions.
6579 Adjust users.
6580
6581 2012-08-20 Martin Rudalics <rudalics@gmx.at>
6582
6583 * window.c (select_window): Always make selected window's buffer
6584 current.
6585
6586 2012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
6587
6588 Use AREF and ASET for docstrings of category tables.
6589 * category.h (CATEGORY_DOCSTRING): Use AREF.
6590 (SET_CATEGORY_DOCSTRING): Use ASET.
6591 * category.c (Fdefine_category): Use SET_CATEGORY_DOCSTRING.
6592
6593 2012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
6594
6595 Inline setter functions for hash table members.
6596 * lisp.h (set_hash_key, set_hash_value, set_hash_next)
6597 (set_hash_hash, set_hash_index): Rename with _slot suffix.
6598 (set_hash_key_and_value, set_hash_index, set_hash_next)
6599 (set_hash_hash): New functions.
6600 * charset.c, fns.c: Adjust users.
6601
6602 2012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
6603
6604 Inline getter and setter functions for per-buffer values.
6605 * buffer.h (per_buffer_default, set_per_buffer_default)
6606 (per_buffer_value, set_per_buffer_value): New functions.
6607 (PER_BUFFER_VALUE, PER_BUFFER_DEFAULT): Remove.
6608 * buffer.c, data.c: Adjust users.
6609
6610 2012-08-20 Juanma Barranquero <lekktu@gmail.com>
6611
6612 * makefile.w32-in ($(BLD)/vm-limit.$(O)): Update dependencies.
6613
6614 2012-08-19 Paul Eggert <eggert@cs.ucla.edu>
6615
6616 Rely on <config.h> + <unistd.h> to declare 'environ',
6617 as gnulib does this if the system doesn't.
6618 * callproc.c, editfns.c, process.c (environ) [!USE_CRT_DLL]:
6619 Remove declaration. MS-Windows declares it on stdlib.h which is
6620 included by conf_post.h.
6621 * emacs.c (environ) [DOUG_LEA_MALLOC]:
6622 * vm-limit.c (environ) [ORDINARY_LINK]: Remove decl.
6623 * vm-limit.c: Include <unistd.h>, for 'environ'.
6624
6625 * unexaix.c, unexcoff.c: Include "mem-limits.h".
6626 (start_of_data): Remove decl; mem-limits.h provides it.
6627
6628 * xdisp.c (handle_invisible_prop): Make it a bit faster
6629 and avoid a gcc -Wmaybe-uninitialized diagnostic.
6630
6631 2012-08-19 Chong Yidong <cyd@gnu.org>
6632
6633 * xdisp.c (handle_invisible_prop): Fix ellipses at overlay string
6634 ends (Bug#3874).
6635
6636 2012-08-19 Andreas Schwab <schwab@linux-m68k.org>
6637
6638 * .gdbinit: Use call instead of set when calling a function in the
6639 inferior.
6640
6641 * data.c (set_internal): Don't use set_blv_found.
6642 (Fkill_local_variable): Likewise.
6643
6644 2012-08-18 Alp Aker <alp.tekin.aker@gmail.com>
6645
6646 * nsfont.m (ns_ascii_average_width): Ensure the string
6647 ascii_printable is initialized with a null-terminated character
6648 array. Otherwise, it can contain undesired extra characters.
6649
6650 2012-08-18 Paul Eggert <eggert@cs.ucla.edu>
6651
6652 port new setting code to Sun C 5.8 2005/10/13
6653 * chartab.c, lisp.h (char_table_set, char_table_set_range):
6654 Return void, not Lisp_Object. Otherwise, the compiler
6655 complains about (A?B:C) where B is void and C is Lisp_Object
6656 when compiling CHAR_TABLE_SET, due to the recent change to
6657 the API of sub_char_table_set_contents.
6658
6659 2012-08-18 Chong Yidong <cyd@gnu.org>
6660
6661 * xdisp.c (handle_invisible_prop): Obey TEXT_PROP_MEANS_INVISIBLE
6662 for the string case (Bug#3874).
6663
6664 2012-08-18 Paul Eggert <eggert@cs.ucla.edu>
6665
6666 * buffer.h (BSET): Remove (Bug#12215).
6667 Replace all uses with calls to new setter functions.
6668 (bset_bidi_paragraph_direction, bset_case_canon_table)
6669 (bset_case_eqv_table, bset_directory, bset_display_count)
6670 (bset_display_time, bset_downcase_table)
6671 (bset_enable_multibyte_characters, bset_filename, bset_keymap)
6672 (bset_last_selected_window, bset_local_var_alist)
6673 (bset_mark_active, bset_point_before_scroll, bset_read_only)
6674 (bset_truncate_lines, bset_undo_list, bset_upcase_table)
6675 (bset_width_table):
6676 * buffer.c (bset_abbrev_mode, bset_abbrev_table)
6677 (bset_auto_fill_function, bset_auto_save_file_format)
6678 (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
6679 (bset_bidi_display_reordering, bset_buffer_file_coding_system)
6680 (bset_cache_long_line_scans, bset_case_fold_search)
6681 (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
6682 (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
6683 (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
6684 (bset_fringe_indicator_alist, bset_fringes_outside_margins)
6685 (bset_header_line_format, bset_indicate_buffer_boundaries)
6686 (bset_indicate_empty_lines, bset_invisibility_spec)
6687 (bset_left_fringe_width, bset_major_mode, bset_mark)
6688 (bset_minor_modes, bset_mode_line_format, bset_mode_name)
6689 (bset_name, bset_overwrite_mode, bset_pt_marker)
6690 (bset_right_fringe_width, bset_save_length)
6691 (bset_scroll_bar_width, bset_scroll_down_aggressively)
6692 (bset_scroll_up_aggressively, bset_selective_display)
6693 (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
6694 (bset_word_wrap, bset_zv_marker):
6695 * category.c (bset_category_table):
6696 * syntax.c (bset_syntax_table):
6697 New setter functions.
6698
6699 * process.h (PSET): Remove (Bug#12215).
6700 Replace all uses with calls to new setter functions.
6701 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
6702 (PROCESS_INLINE): New macro.
6703 (pset_childp): New setter function.
6704 (pset_gnutls_cred_type) [HAVE_GNUTLS]: New setter function.
6705 * process.c (PROCESS_INLINE):
6706 Define to EXTERN_INLINE, so that the corresponding functions
6707 are compiled into code.
6708 (pset_buffer, pset_command, pset_decode_coding_system)
6709 (pset_decoding_buf, pset_encode_coding_system)
6710 (pset_encoding_buf, pset_filter, pset_log, pset_mark, pset_name)
6711 (pset_plist, pset_sentinel, pset_status, pset_tty_name)
6712 (pset_type, pset_write_queue): New setter functions.
6713
6714 * window.h (WSET): Remove (Bug#12215).
6715 Replace all uses with calls to new setter functions.
6716 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
6717 (WINDOW_INLINE): New macro.
6718 (wset_buffer, wset_frame, wset_left_col, wset_next, wset_prev)
6719 (wset_redisplay_end_trigger, wset_top_line, wset_total_cols)
6720 (wset_total_lines, wset_vertical_scroll_bar)
6721 (wset_window_end_pos, wset_window_end_valid)
6722 (wset_window_end_vpos): New setter functions.
6723 * window.c (WINDOW_INLINE):
6724 Define to EXTERN_INLINE, so that the corresponding functions
6725 are compiled into code.
6726 (wset_combination_limit, wset_dedicated, wset_display_table)
6727 (wset_hchild, wset_left_fringe_width, wset_left_margin_cols)
6728 (wset_new_normal, wset_new_total, wset_next_buffers)
6729 (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
6730 (wset_prev_buffers, wset_right_fringe_width)
6731 (wset_right_margin_cols, wset_scroll_bar_width, wset_start)
6732 (wset_temslot, wset_vchild, wset_vertical_scroll_bar_type)
6733 (wset_window_parameters):
6734 * xdisp.c (wset_base_line_number, wset_base_line_pos)
6735 (wset_column_number_displayed, wset_region_showing):
6736 New setter functions.
6737
6738 * termhooks.h (TSET): Remove (Bug#12215).
6739 Replace all uses with calls to new setter functions.
6740 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
6741 (TERMHOOKS_INLINE): New macro.
6742 (tset_charset_list, tset_selection_alist): New setter functions.
6743 * terminal.c (TERMHOOKS_INLINE):
6744 Define to EXTERN_INLINE, so that the corresponding functions
6745 are compiled into code.
6746 (tset_param_alist): New setter function.
6747
6748 2012-08-17 Paul Eggert <eggert@cs.ucla.edu>
6749
6750 * keyboard.h (KSET): Remove (Bug#12215).
6751 Replace all uses with calls to new setter functions.
6752 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
6753 (KEYBOARD_INLINE): New macro.
6754 (kset_default_minibuffer_frame, kset_defining_kbd_macro)
6755 (kset_input_decode_map, kset_last_command, kset_last_kbd_macro)
6756 (kset_prefix_arg, kset_system_key_alist, kset_window_system):
6757 New setter functions.
6758 * keyboard.c (KEYBOARD_INLINE):
6759 Define to EXTERN_INLINE, so that the corresponding functions
6760 are compiled into code.
6761 (kset_echo_string, kset_kbd_queue)
6762 (kset_keyboard_translate_table, kset_last_prefix_arg)
6763 (kset_last_repeatable_command, kset_local_function_key_map)
6764 (kset_overriding_terminal_local_map, kset_real_last_command)
6765 (kset_system_key_syms): New setter functions.
6766
6767 * frame.h (FSET): Remove (Bug#12215).
6768 Replace all uses with calls to new setter functions.
6769 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
6770 (FRAME_INLINE): New macro.
6771 (fset_buffer_list, fset_buried_buffer_list, fset_condemned_scroll_bars)
6772 (fset_current_tool_bar_string, fset_desired_tool_bar_string)
6773 (fset_face_alist, fset_focus_frame, fset_icon_name, fset_menu_bar_items)
6774 (fset_menu_bar_vector, fset_menu_bar_window, fset_name)
6775 (fset_param_alist, fset_root_window, fset_scroll_bars)
6776 (fset_selected_window, fset_title, fset_tool_bar_items)
6777 (fset_tool_bar_position, fset_tool_bar_window): New functions.
6778 * frame.c (FRAME_INLINE):
6779 Define to EXTERN_INLINE, so that the corresponding functions
6780 are compiled into code.
6781 (fset_buffer_predicate, fset_minibuffer_window): New setter functions.
6782
6783 A few more naming-convention fixes for getters and setters.
6784 * buffer.c (set_buffer_overlays_before): Move here from buffer.h,
6785 and rename from buffer_overlays_set_before.
6786 (set_buffer_overlays_after): Move here from buffer.h, and rename
6787 from buffer_overlays_set_after.
6788 * buffer.h (buffer_intervals): Rename from buffer_get_intervals.
6789 All uses changed.
6790 (set_buffer_intervals): Rename from buffer_set_intervals.
6791 * intervals.c (set_interval_object): Move here from intervals.h,
6792 and rename from interval_set_object.
6793 (set_interval_left): Move here from intervals.h, and rename from
6794 interval_set_left.
6795 (set_interval_right): Move here from intervals.h, and rename from
6796 interval_set_right.
6797 (copy_interval_parent): Move here from intervals.h, and rename from
6798 interval_copy_parent.
6799 * intervals.h (set_interval_parent): Rename from interval_set_parent.
6800 (set_interval_plist): Rename from interval_set_plist.
6801 Return void, not Lisp_Object, since no caller uses the result.
6802 * lisp.h (string_intervals): Rename from string_get_intervals.
6803 (set_string_intervals): Rename from string_set_intervals.
6804
6805 * lisp.h (set_char_table_extras): Rename from char_table_set_extras.
6806 (set_char_table_contents): Rename from char_table_set_contents.
6807 (set_sub_char_table_contents): Rename from sub_char_table_set_contents.
6808 All uses changed. See the end of
6809 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00549.html>.
6810
6811 * lisp.h (CSET): Remove (Bug#12215).
6812 (set_char_table_ascii, set_char_table_defalt, set_char_table_parent)
6813 (set_char_table_purpose): New functions,
6814 replacing CSET. All uses changed. For example, replace
6815 "CSET (XCHAR_TABLE (char_table), parent, parent);" with
6816 "set_char_table_parent (char_table, parent);".
6817 The old version was confusing because it used the same name
6818 'parent' for two different things.
6819
6820 2012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
6821
6822 Functions to get and set Lisp_Object fields of buffer-local variables.
6823 * lisp.h (blv_found, set_blv_found, blv_value, set_blv_value)
6824 (set_blv_where, set_blv_defcell, set_blv_valcell): New functions.
6825 (BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): Remove.
6826 * data.c, eval.c, frame.c: Adjust users.
6827
6828 2012-08-17 Chong Yidong <cyd@gnu.org>
6829
6830 * xfaces.c (merge_face_vectors): If the target font specfies a
6831 font spec, make the font's attributes take precedence over
6832 directly-specified attributes.
6833 (merge_face_ref): Recognize :font.
6834
6835 2012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
6836
6837 Do not use memcpy for copying intervals.
6838 * intervals.c (reproduce_interval): New function.
6839 (reproduce_tree, reproduce_tree_obj): Use it.
6840 (reproduce_tree_obj): Remove prototype.
6841
6842 2012-08-17 Paul Eggert <eggert@cs.ucla.edu>
6843
6844 * lisp.h (duration_to_sec_usec): Remove unused decl.
6845
6846 2012-08-17 Alp Aker <alp.tekin.aker@gmail.com>
6847
6848 * nsfont.m (ns_ascii_average_width): Send initWithFormat selector
6849 to an allocated instance of NSString, not to the class itself.
6850
6851 2012-08-17 Juanma Barranquero <lekktu@gmail.com>
6852
6853 * makefile.w32-in (C_CTYPE_H): New macro.
6854 (LISP_H, $(BLD)/ccl.$(O), $(BLD)/doc.$(O), $(BLD)/w32console.$(O)):
6855 ($(BLD)/fontset.$(O), $(BLD)/frame.$(O), $(BLD)/composite.$(O)):
6856 ($(BLD)/sysdep.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
6857
6858 2012-08-16 Paul Eggert <eggert@cs.ucla.edu>
6859
6860 Use ASCII tests for character types.
6861 * category.c, dispnew.c, doprnt.c, editfns.c, syntax.c, term.c:
6862 * xfns.c, xterm.c:
6863 Don't include <ctype.h>; was not needed.
6864 * charset.c, doc.c, fileio.c, font.c, frame.c, gtkutil.c, image.c:
6865 * sysdep.c, xfaces.c:
6866 Include <c-ctype.h> instead of <ctype.h>.
6867 * nsterm.m: Include <c-ctype.h>.
6868 * charset.c (read_hex):
6869 * doc.c (Fsnarf_documentation):
6870 * fileio.c (IS_DRIVE) [WINDOWSNT]:
6871 (DRIVE_LETTER) [DOS_NT]:
6872 (Ffile_name_directory, Fexpand_file_name)
6873 (Fsubstitute_in_file_name):
6874 * font.c (font_parse_xlfd, font_parse_fcname):
6875 * frame.c (x_set_font_backend):
6876 * gtkutil.c (xg_get_font):
6877 * image.c (xbm_scan, xpm_scan, pbm_scan_number):
6878 * nsimage.m (hexchar):
6879 * nsterm.m (ns_xlfd_to_fontname):
6880 * sysdep.c (system_process_attributes):
6881 * xfaces.c (hash_string_case_insensitive):
6882 Use C-locale tests instead of locale-specific tests for character
6883 types, since we want the ASCII interpretation here, not the
6884 interpretation suitable for whatever happens to be the current locale.
6885
6886 2012-08-16 Martin Rudalics <rudalics@gmx.at>
6887
6888 Consistently check windows for validity/liveness
6889 (Bug#11984, Bug#12025, Bug#12026).
6890 * lisp.h (CHECK_VALID_WINDOW): New macro.
6891 * window.c (decode_window): Rename to decode_live_window.
6892 (decode_valid_window, Fwindow_valid_p): New functions.
6893 (Fwindow_frame, Fframe_root_window, Fwindow_minibuffer_p)
6894 (Fframe_first_window, Fframe_selected_window, Fwindow_parent)
6895 (Fwindow_top_child, Fwindow_left_child, Fwindow_next_sibling)
6896 (Fwindow_prev_sibling, Fwindow_combination_limit)
6897 (Fset_window_combination_limit, Fwindow_use_time)
6898 (Fwindow_total_height, Fwindow_total_width, Fwindow_new_total)
6899 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_left_column)
6900 (Fwindow_top_line, Fwindow_body_height, Fwindow_body_width)
6901 (Fwindow_hscroll, Fset_window_hscroll)
6902 (Fwindow_redisplay_end_trigger)
6903 (Fset_window_redisplay_end_trigger, Fwindow_edges)
6904 (Fwindow_pixel_edges, Fwindow_absolute_pixel_edges)
6905 (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
6906 (Fcoordinates_in_window_p, Fwindow_point, Fwindow_start)
6907 (Fwindow_end, Fset_window_point, Fset_window_start)
6908 (Fpos_visible_in_window_p, Fwindow_line_height)
6909 (Fwindow_dedicated_p, Fset_window_dedicated_p)
6910 (Fwindow_prev_buffers, Fset_window_prev_buffers)
6911 (Fwindow_next_buffers, Fwindow_parameters, Fwindow_parameter)
6912 (Fset_window_parameter, Fwindow_display_table)
6913 (Fset_window_display_table, Fdelete_other_windows_internal)
6914 (Fset_window_buffer, Fset_window_new_total)
6915 (Fset_window_new_normal, Fdelete_window_internal)
6916 (Fwindow_text_height, Fset_window_margins, Fwindow_margins)
6917 (Fset_window_fringes, Fwindow_fringes, Fset_window_scroll_bars)
6918 (Fwindow_scroll_bars): Check whether argument window is a valid or
6919 live window. Update doc-strings.
6920 (syms_of_window): New symbol Qwindow_valid_p.
6921 * keyboard.c (Fposn_at_x_y): Check whether argument
6922 frame_or_window denotes a valid window.
6923
6924 2012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
6925
6926 Fix previous char table change.
6927 * lisp.h (CHAR_TABLE_SET): Use sub_char_table_set_contents.
6928 * chartab.c (optimize_sub_char_table): Likewise.
6929
6930 2012-08-16 Chong Yidong <cyd@gnu.org>
6931
6932 * gtkutil.c (xg_get_font): Demand an Xft font (Bug#3228).
6933
6934 * xfont.c (xfont_open):
6935 * xftfont.c (xftfont_open): Set the font's max_width field.
6936
6937 * nsfont.m (nsfont_open): Similar to the Xft backend, set
6938 min_width to space_width and average_width to the average over
6939 printable ASCII characters.
6940 (ns_char_width): Code cleanup.
6941 (ns_ascii_average_width): New utility function.
6942
6943 * font.h (struct font): Update comments.
6944
6945 2012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
6946
6947 Simple interface to set Lisp_Object fields of character tables.
6948 * lisp.h (CSET): New macro.
6949 (char_table_set_extras, char_table_set_contents)
6950 (sub_char_table_set_contents): New function.
6951 * casetab.c, category.c, chartab.c, fns.c, fontset.c, search.c:
6952 * syntax.c: Adjust users.
6953
6954 2012-08-16 Stefan Monnier <monnier@iro.umontreal.ca>
6955
6956 * eval.c (eval_sub): Bind lexical-binding.
6957 * lread.c (Qlexical_binding): Make non-static.
6958
6959 2012-08-15 Jan Djärv <jan.h.d@swipnet.se>
6960
6961 * nsmenu.m (popupSession): Remove.
6962 (pop_down_menu): Remove endModalSession.
6963 (timeout_handler:): New method.
6964 (runDialogAt:): Get next timeout. Start a NSTimer with that timeout.
6965 Call runModalForWindow. Check timer_fired when it returns.
6966 If not set, cancel timer and break out of loop.
6967 Otherwise loop again, with a new timeout.
6968
6969 * nsterm.m: Include fcntl.h if present.
6970 (fd_entry, t_readfds, inNsSelect): Remove.
6971 (select_writefds, select_valid, select_timeout, selfds)
6972 (select_mutex, apploopnr): Add.
6973 (EV_TRAILER): Call kbd_buffer_store_event_hold only if q_event_ptr.
6974 Otherwise call kbd_buffer_store_event.
6975 (ns_send_appdefined): Remove release of fd_entry.
6976 (ns_read_socket): Always send appdefined. Remove inNsSelect check.
6977 Increment and decrement apploopnr.
6978 (ns_select): If no file descriptors, just do a NSTimer.
6979 Otherwise copy read/write masks and start select thread (fd_handler).
6980 Start main loop and wait for application defined event.
6981 Inform select thread to stop selecting after main loop is exited.
6982 (ns_term_init): Create selfds pipe and set non-blocking.
6983 Initialize select_mutex. Start the select thread (fd_handler).
6984 (fd_handler:): Loop forever, wait for info from the main thread
6985 to either start or stop selecting. When select returns, send
6986 and appdefined event.
6987 (sendScrollEventAtLoc:fromEvent:): Check if q_event_ptr is set.
6988 If not call kbd_buffer_store_event.
6989
6990 * nsterm.h (EmacsApp): fd_handler takes id argument.
6991 (EmacsDialogPanel): Add timer_fired and timeout_handler.
6992
6993 * gtkutil.c (xg_mark_data): Use FRAME_X_P.
6994
6995 2012-08-15 Eli Zaretskii <eliz@gnu.org>
6996
6997 * region-cache.c (move_cache_gap): Update gap_len using the actual
6998 growth of the boundaries array. Do not change cache_len.
6999 (Bug#12196)
7000
7001 2012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
7002
7003 Generalize and cleanup font subsystem checks.
7004 * font.h (FONT_DEBUG, font_assert): Remove.
7005 * font.c, fontset.c, w32font.c, xfont.c, xftfont.c:
7006 Change font_assert to eassert. Use eassert where appropriate.
7007
7008 2012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
7009
7010 * gtkutil.c (xg_get_font): Use pango_units_to_double.
7011
7012 2012-08-15 Chong Yidong <cyd@gnu.org>
7013
7014 * gtkutil.c (xg_get_font): Rename from xg_get_font_name.
7015 When using the new font chooser, use gtk_font_chooser_get_font_desc to
7016 extract the font descriptor instead of just the font name.
7017 In that case, return a font spec instead of a string.
7018 (x_last_font_name): Move to this file from xfns.c.
7019
7020 * xfns.c (Fx_select_font): The return value can also be a font
7021 spec. Move x_last_font_name management to gtkutil.c.
7022
7023 * xfaces.c: Make font weight and style symbols non-static.
7024
7025 2012-08-15 Stefan Monnier <monnier@iro.umontreal.ca>
7026
7027 * minibuf.c (read_minibuf): Ignore caller's inhibit-read-only
7028 (bug#12117).
7029
7030 2012-08-14 Stefan Monnier <monnier@iro.umontreal.ca>
7031
7032 * alloc.c (Fgarbage_collect): Use plural form consistently.
7033
7034 2012-08-14 Eli Zaretskii <eliz@gnu.org>
7035
7036 * keyboard.c (command_loop_1): Reset ignore_mouse_drag_p flag each
7037 iteration through the command loop. Fixes a problem whereby mouse
7038 movements are ignored until the first mouse click.
7039
7040 2012-08-14 Paul Eggert <eggert@cs.ucla.edu>
7041
7042 Use bool, not int, for Lisp booleans.
7043 This is more natural, and on my platform (GCC 4.7.1 x86-64) it
7044 makes Emacs a bit smaller and presumably a bit faster.
7045 * lisp.h: Include <stdbool.h>.
7046 (struct Lisp_Boolfwd, defvar_bool):
7047 * lread.c (defvar_bool): Use bool, not int, for Lisp booleans.
7048 * regex.c [!emacs]: Include <stdbool.h>.
7049 (false, true): Remove; <stdbool.h> does this for us now.
7050
7051 2012-08-14 Chong Yidong <cyd@gnu.org>
7052
7053 * character.c (Fcharacterp): Doc fix (Bug#12076).
7054
7055 * data.c (Findirect_variable): Doc fix (Bug#11040).
7056
7057 * chartab.c (Fmap_char_table): Doc fix (Bug#12061).
7058
7059 * editfns.c (Fformat): Doc fix (Bug#12059).
7060 (Fsave_current_buffer): Doc fix (Bug#11542).
7061
7062 2012-08-14 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
7063
7064 * keyboard.c (access_keymap_keyremap): Accept anonymous functions
7065 (bug#12022).
7066
7067 2012-08-14 Martin Rudalics <rudalics@gmx.at>
7068
7069 * frame.c (make_frame_without_minibuffer, make_minibuffer_frame)
7070 (delete_frame, Fmake_frame_invisible, Ficonify_frame):
7071 * minibuf.c (choose_minibuf_frame, read_minibuf):
7072 * w32fns.c (x_create_tip_frame):
7073 * xfns.c (x_create_tip_frame): Call set_window_buffer instead of
7074 Fset_window_buffer (Bug#11984, Bug#12025, Bug#12026).
7075
7076 2012-08-14 Paul Eggert <eggert@cs.ucla.edu>
7077
7078 * intervals.c (offset_intervals): Remove obsolete comment.
7079
7080 2012-08-14 Andreas Schwab <schwab@linux-m68k.org>
7081
7082 * gtkutil.c (find_rtl_image, update_frame_tool_bar): Use NILP.
7083
7084 2012-08-14 Gergely Risko <gergely@risko.hu>
7085
7086 * coding.c (decode_coding): Record buffer modification before
7087 disabling undo_list (Bug#11773).
7088
7089 2012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
7090
7091 Revert and cleanup some recent overlay changes.
7092 * buffer.h (enum overlay_type): Remove.
7093 (buffer_get_overlays, buffer_set_overlays): Likewise.
7094 (buffer_set_overlays_before, buffer_set_overlays_after):
7095 New function. Adjust users.
7096 (unchain_both): Add eassert.
7097
7098 2012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
7099
7100 * gtkutil.c (update_frame_tool_bar): Use EQ where appropriate.
7101
7102 2012-08-14 Paul Eggert <eggert@cs.ucla.edu>
7103
7104 * gtkutil.c (xg_mark_data): Don't assume C99.
7105
7106 2012-08-13 Jan Djärv <jan.h.d@swipnet.se>
7107
7108 * gtkutil.c (xg_frame_tb_info): New struct.
7109 (TB_INFO_KEY): New define.
7110 (xg_free_frame_widgets): Free xg_frame_tb_info for frame if present.
7111 (xg_mark_data): Mark Lisp_Objects in xg_frame_tb_info.
7112 (xg_create_tool_bar): Allocate and initialize a xg_frame_tb_info
7113 if not present.
7114 (update_frame_tool_bar): Return early if data in xg_frame_tb_info
7115 is up to date. Otherwise store new data.
7116 (free_frame_tool_bar): Free xg_frame_tb_info if present.
7117
7118 2012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
7119
7120 Use KSET for write access to Lisp_Object members of struct kboard.
7121 * keyboard.h (KSET): New macro.
7122 * callint.c, category.c, frame.c, keyboard.c, keyboard.h, macros.c:
7123 * msdos.c, nsfns.m, nsterm.m, term.c, w32fns.c, w32term.c, xfns.c:
7124 * xterm.c: Adjust users.
7125
7126 2012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
7127
7128 Use BSET for write access to Lisp_Object members of struct buffer.
7129 * buffer.h (BSET): New macro.
7130 * buffer.c, casetab.c, cmds.c, coding.c, data.c, editfns.c:
7131 * fileio.c, frame.c, indent.c, insdel.c, intervals.c, keymap.c:
7132 * minibuf.c, print.c, process.c, syntax.c, undo.c, w32fns.c:
7133 * window.c, xdisp.c, xfns.c: Adjust users.
7134
7135 2012-08-11 BT Templeton <bpt@hcoop.net> (tiny change)
7136
7137 * lread.c (syms_of_lread): Initialize Vlexical_binding.
7138
7139 2012-08-11 Jan Djärv <jan.h.d@swipnet.se>
7140
7141 * nsterm.m (not_in_argv): New function.
7142 (application:openFile, application:openTempFile:):
7143 (application:openFileWithoutUI:, application:openFiles:): Open file
7144 if not_in_argv returns non-zero (bug#12171).
7145
7146 * gtkutil.c (gtk_font_chooser_dialog_new, GTK_FONT_CHOOSER)
7147 (gtk_font_chooser_set_font, gtk_font_chooser_get_font):
7148 Define for Gtk+ versions less than 3.2.
7149 (xg_get_font_name): Use those functions/macros here.
7150 Reported by Frans Oilinki <moilinki@gmail.com>.
7151
7152 2012-08-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7153
7154 * unexmacosx.c (copy_data_segment): Copy initialized data in
7155 statically linked libraries from input file rather than memory.
7156
7157 * unexmacosx.c (print_load_command_name): Add cases LC_MAIN,
7158 LC_SOURCE_VERSION, and LC_DYLIB_CODE_SIGN_DRS.
7159 (dump_it) [LC_DYLIB_CODE_SIGN_DRS]: Call copy_linkedit_data.
7160
7161 2012-08-10 Glenn Morris <rgm@gnu.org>
7162
7163 * conf_post.h (IF_LINT, lint_assume): Move here from lisp.h.
7164 * lisp.h (IF_LINT, lint_assume): Move to conf_post.h.
7165
7166 2012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
7167
7168 Fix last change to allow compilation with low optimization levels.
7169 * intervals.c (INTERVALS_INLINE): Define to EXTERN_INLINE.
7170 Reported by Jan Djärv <jan.h.d@swipnet.se>.
7171
7172 2012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
7173
7174 Use common inline syntax in intervals.h.
7175 * intervals.h (INTERVALS_INLINE): New macro.
7176 Change all users from LISP_INLINE.
7177
7178 2012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
7179
7180 Define Qnone once for all platforms.
7181 * frame.c (Qnone): Define here.
7182 (syms_of_frame): DEFSYM it.
7183 * lisp.h (Qnone): New declaration.
7184 * nsfns.m, nsterm.h, nsterm.m, w32fns.c, w32font.c:
7185 * xfns.c: Remove duplication. Adjust users.
7186
7187 2012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
7188
7189 Remove unused macros from intervals.h.
7190 * intervals.h (MERGE_INSERTIONS, DISPLAY_INVISIBLE_GLYPH): Remove.
7191 * intervals.c: Adjust comment.
7192
7193 2012-08-10 Eli Zaretskii <eliz@gnu.org>
7194
7195 * w32fns.c <w32_unicode_gui>: New static variable.
7196 (globals_of_w32fns): Initialize it according to os_subtype.
7197 (w32_init_class, w32_msg_pump, w32_wnd_proc): Use it instead of
7198 testing os_subtype.
7199
7200 2012-08-10 Joakim Hårsman <joakim.harsman@gmail.com> (tiny change)
7201 Eli Zaretskii <eliz@gnu.org>
7202
7203 Fix bug #10299 with Unicode characters sent by customized
7204 keyboards created by MSKLC.
7205 * w32fns.c (INIT_WINDOW_CLASS): New macro.
7206 (w32_init_class): Use it to initialize the Emacs class with either
7207 ANSI or Unicode API calls.
7208 (w32_msg_pump): Call GetMessageW and DispatchMessageW on NT and
7209 later.
7210 (w32_wnd_proc): If the character code sent by WM_CHAR or
7211 WM_SYSCHAR is above 255, post a WM_UNICHAR message, not the
7212 original message. Call DefWindowProcW on NT and later.
7213
7214 2012-08-10 Glenn Morris <rgm@gnu.org>
7215
7216 * Makefile.in (config_h): Fix conf_post.h out-of-tree build location.
7217
7218 * lisp.h (DIRECTORY_SEP): Let configure set it.
7219
7220 2012-08-09 Dmitry Antipov <dmantipov@yandex.ru>
7221
7222 Use TSET for write access to Lisp_Object slots of struct terminal.
7223 * termhooks.h (TSET): New macro.
7224 * coding.c, terminal.c, xselect.c: Adjust users.
7225
7226 2012-08-08 Stefan Monnier <monnier@iro.umontreal.ca>
7227
7228 * xdisp.c (safe_eval_handler): Remove prototype. Receive args describing
7229 the failing expression, include them in the error message.
7230 * eval.c (internal_condition_case_n): Pass nargs and args to hfun.
7231 * lisp.h (internal_condition_case_n): Update declaration.
7232
7233 2012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
7234
7235 Inline functions to examine and change buffer overlays.
7236 * buffer.c (unchain_both): New function.
7237 * buffer.h (buffer_get_overlays, buffer_set_overlays):
7238 (buffer_has_overlays): New function.
7239 (enum overlay_type): New enum.
7240 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c:
7241 * insdel.c, intervals.c, print.c, xdisp.c: Adjust users.
7242
7243 2012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
7244
7245 Inline functions to examine and change buffer intervals.
7246 * alloc.c (mark_interval_tree): Remove.
7247 (MARK_INTERVAL_TREE): Simplify.
7248 (UNMARK_BALANCE_INTERVALS): Remove. Adjust users.
7249 * intervals.c (buffer_balance_intervals): New function.
7250 (graft_intervals_into_buffer): Adjust indentation.
7251 (set_intervals_multibyte): Simplify.
7252 * buffer.h (BUF_INTERVALS): Remove.
7253 (buffer_get_intervals, buffer_set_intervals): New function.
7254 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c, insdel.c:
7255 * intervals.c, textprop.c: Adjust users.
7256
7257 2012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
7258
7259 Inline functions to examine and change string intervals.
7260 * lisp.h (STRING_INTERVALS, STRING_SET_INTERVALS): Remove.
7261 (string_get_intervals, string_set_intervals): New function.
7262 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
7263 * lread.c, print.c, textprop.c: Adjust users.
7264
7265 2012-08-08 Glenn Morris <rgm@gnu.org>
7266
7267 * lisp.mk (lisp): Remove language/persian.elc.
7268
7269 2012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
7270
7271 Cleanup intervals.
7272 * intervals.h (NULL_INTERVAL, DEFAULT_INTERVAL): Remove.
7273 (NULL_INTERVAL_P): Likewise. Adjust users.
7274 (FRONT_STICKY_P, END_NONSTICKY_P, FRONT_NONSTICKY_P):
7275 Adjust comment. Move under #if 0.
7276 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
7277 * print.c, syntax.c, textprop.c, xdisp.c: Adjust users.
7278
7279 2012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
7280
7281 Check total length of intervals with eassert.
7282 * intervals.h (CHECK_TOTAL_LENGTH): Remove.
7283 * intervals.c: Change all users to eassert.
7284
7285 2012-08-07 Eli Zaretskii <eliz@gnu.org>
7286
7287 * .gdbinit (xframe, xwindow, nextcons, xcar, xcdr, xlist):
7288 Rename fields to match removal of FGET and WGET and disuse of
7289 INTERNAL_FIELD in Lisp_Cons.
7290
7291 2012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
7292
7293 Revert and cleanup Lisp_Cons, Lisp_Misc and Lisp_Symbol things.
7294 * lisp.h (struct Lisp_Symbol): Change xname to meaningful
7295 name since all xname users are fixed long time ago. Do not
7296 use INTERNAL_FIELD.
7297 (set_symbol_name, set_symbol_function, set_symbol_plist):
7298 (set_symbol_next, set_overlay_plist): New function.
7299 (struct Lisp_Cons): Do not use INTERNAL_FIELD.
7300 (struct Lisp_Overlay): Likewise.
7301 (CVAR, MVAR, SVAR): Remove.
7302 * alloc.c, buffer.c, buffer.h, bytecode.c, cmds.c, data.c:
7303 * doc.c, eval.c, fns.c, keyboard.c, lread.c, nsselect.m:
7304 * xterm.c: Adjust users.
7305 * .gdbinit: Change to use name field of struct Lisp_Symbol
7306 where appropriate.
7307
7308 2012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
7309
7310 Basic functions to set Lisp_Object and pointer slots of intervals.
7311 * intervals.h (interval_set_parent, interval_set_object):
7312 (interval_set_left, interval_set_right, interval_set_plist):
7313 (interval_copy_parent): New function.
7314 (SET_INTERVAL_OBJECT, SET_INTERVAL_PARENT, INTERVAL_PTR_SIZE): Remove.
7315 (RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE):
7316 Adjust indentation.
7317 (INTERVAL_SIZE): Remove. Adjust users.
7318 * alloc.c, intervals.c, lread.c, textprop.c: Use new functions.
7319
7320 2012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
7321
7322 Drop PGET and revert read access to Lisp_Objects slots of Lisp_Process.
7323 * process.h (PGET): Remove.
7324 (struct Lisp_Process): Do not use INTERNAL_FIELD.
7325 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
7326
7327 2012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
7328
7329 Drop WGET and revert read access to Lisp_Objects slots of struct window.
7330 * window.h (WGET): Remove.
7331 (struct window): Do not use INTERNAL_FIELD.
7332 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
7333 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
7334 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
7335 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
7336 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
7337 Adjust users.
7338
7339 2012-08-07 Chong Yidong <cyd@gnu.org>
7340
7341 * window.c (Fwindow_edges, Fwindow_pixel_edges)
7342 (Fwindow_absolute_pixel_edges, Fdelete_other_windows_internal)
7343 (Fdelete_window_internal): Signal an error if the window is not on
7344 a live frame (Bug#12025).
7345
7346 2012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
7347
7348 Drop FGET and revert read access to Lisp_Objects slots of struct frame.
7349 * frame.h (FGET): Remove.
7350 (struct frame): Do not use INTERNAL_FIELD.
7351 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
7352 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
7353 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
7354 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
7355
7356 2012-08-06 Juanma Barranquero <lekktu@gmail.com>
7357
7358 * w32.c: Silence compiler warnings.
7359 (map_w32_filename): Remove unused variable `is_fat'.
7360 (chase_symlinks): Add parentheses around expression.
7361
7362 2012-08-06 Glenn Morris <rgm@gnu.org>
7363
7364 * sysdep.c: Respect BROKEN_GETWD.
7365
7366 * dispnew.c (GNU_LIBRARY_PENDING_OUTPUT_COUNT, PENDING_OUTPUT_COUNT):
7367 Let configure handle it.
7368 (stdio_ext.h) [DISPNEW_NEEDS_STDIO_EXT]: Include it.
7369
7370 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
7371
7372 Use GCALIGNMENT where appropriate.
7373 * alloc.c (XMALLOC_HEADER_ALIGNMENT, roundup_size):
7374 (union aligned_Lisp_Symbol, union aligned_Lisp_Misc):
7375 (mark_maybe_pointer, pure_alloc): Change to use GCALIGNMENT.
7376
7377 2012-08-06 Eli Zaretskii <eliz@gnu.org>
7378
7379 * w32menu.c (set_frame_menubar, initialize_frame_menubar):
7380 Don't use FRAME_MENU_BAR_ITEMS as an lvalue.
7381
7382 2012-08-06 Stefan Monnier <monnier@iro.umontreal.ca>
7383
7384 * buffer.h (struct buffer): Revert `indirections' to a simple int;
7385 that should be sufficient for everyone.
7386
7387 2012-08-06 Jan Djärv <jan.h.d@swipnet.se>
7388
7389 * keyboard.c (timer_check_2): Add break so timer_check returns next
7390 timeout.
7391
7392 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
7393
7394 Fix Windows build errors introduced after converting to WGET and WSET.
7395 * w32term.c (w32_set_vertical_scroll_bar): Change to use WSET.
7396 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
7397
7398 2012-08-06 Jan Djärv <jan.h.d@swipnet.se>
7399
7400 * nsterm.m (ns_frame_rehighlight): Use FSET.
7401
7402 * nsmenu.m (ns_update_menubar): Use FSET.
7403
7404 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
7405
7406 Separate read and write access to Lisp_Object slots of Lisp_Process.
7407 * process.h (PGET, PSET): New macros similar to AREF and ASET.
7408 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
7409
7410 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
7411
7412 Separate read and write access to Lisp_Object slots of struct window.
7413 * window.h (WGET, WSET): New macros similar to AREF and ASET.
7414 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
7415 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
7416 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
7417 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
7418 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
7419 Adjust users.
7420
7421 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
7422
7423 Fix Windows build errors introduced after converting to FGET and FSET.
7424 * w32term.c (x_frame_rehighlight, x_scroll_bar_create):
7425 (w32_condemn_scroll_bars, w32_redeem_scroll_bar):
7426 (w32_judge_scroll_bars): Change to use FSET.
7427 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
7428
7429 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
7430
7431 Fix replacement typo.
7432 * window.c (replace_window): Set root_window instead of
7433 selected_window. This fixes a total window subsystem
7434 malfunction reported by Bastien Guerry <bzg@gnu.org>.
7435
7436 2012-08-06 Glenn Morris <rgm@gnu.org>
7437
7438 * lisp.mk (lisp): Add language/persian.elc.
7439
7440 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
7441
7442 Separate read and write access to Lisp_Object slots of struct frame.
7443 * frame.h (FGET, FSET): New macros similar to AREF and ASET.
7444 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
7445 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
7446 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
7447 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
7448
7449 2012-08-05 Andreas Schwab <schwab@linux-m68k.org>
7450
7451 * emacs.c (decode_env_path): Only use defaulted if WINDOWSNT.
7452
7453 2012-08-05 Dmitry Antipov <dmantipov@yandex.ru>
7454
7455 Generalize common compile-time constants.
7456 * lisp.h (header_size, bool_header_size, word_size): Now here.
7457 (struct Lisp_Vector): Add comment.
7458 (struct Lisp_Bool_Vector): Move up to define handy constants.
7459 (VECSIZE, PSEUDOVECSIZE): Simplify.
7460 (SAFE_ALLOCA_LISP): Use new constant. Adjust indentation.
7461 * buffer.c, buffer.h, bytecode.c, callint.c, eval.c, fns.c:
7462 * font.c, fontset.c, keyboard.c, keymap.c, macros.c, menu.c:
7463 * msdos.c, w32menu.c, w32term.h, window.c, xdisp.c, xfaces.c:
7464 * xfont.c, xmenu.c: Use word_size where appropriate.
7465
7466 2012-08-05 Lawrence Mitchell <wence@gmx.li>
7467
7468 * search.c (Freplace_match): Treat \? in the replacement text
7469 literally (Bug#8161).
7470
7471 2012-08-05 Chong Yidong <cyd@gnu.org>
7472
7473 * term.c (Vsuspend_tty_functions, Vresume_tty_functions):
7474 * frame.c (Vdelete_frame_functions):
7475 * emacs.c (Vkill_emacs_hook): Doc fix.
7476
7477 2012-08-04 Eli Zaretskii <eliz@gnu.org>
7478
7479 * xfns.c (x_set_menu_bar_lines): Fix compilation error in
7480 --with-x-toolkit=no builds.
7481 Reported by Carsten Mattner <carstenmattner@gmail.com>.
7482
7483 2012-08-04 Chong Yidong <cyd@gnu.org>
7484
7485 * syntax.c (Fmodify_syntax_entry): Doc fix.
7486
7487 2012-08-04 Eli Zaretskii <eliz@gnu.org>
7488
7489 Fix startup warnings about ../site-lisp on MS-Windows. (Bug#11959)
7490 * w32.c (init_environment): Change the default values of many
7491 environment variables in dflt_envvars[] to NULL, to avoid pushing
7492 them into environment when they were not already defined.
7493 Remove the code that deletes site-lisp subdirectories from the default
7494 value of EMACSLOADPATH, as it is no longer needed.
7495 (check_windows_init_file): Now external, not static.
7496 Use Vload_path as is, without adding anything, as this function is now
7497 called when Vload_path is already set up.
7498
7499 * w32.h (check_windows_init_file): Add prototype.
7500
7501 * emacs.c (init_cmdargs) [WINDOWSNT]: When running from the build
7502 directory, ignore the /*/i386/ tail in Vinvocation_directory, for
7503 compatibility with Posix platforms.
7504 (main): Move the call to check_windows_init_file to here from
7505 w32.c.
7506 (decode_env_path) [WINDOWSNT]: Expand the %emacs_dir%/ prefix, if
7507 any, in the DEFALT argument into the root of the Emacs build or
7508 installation tree, as appropriate.
7509
7510 * callproc.c (init_callproc_1): Call decode_env_path instead of
7511 doing its equivalent by hand.
7512 (init_callproc): Replace DOS_NT condition with MSDOS, thus letting
7513 the code that sets Vexec_path run on MS-Windows.
7514
7515 * lread.c (init_lread): Add comments to #ifdef's.
7516
7517 * msdos.c (dos_set_window_size, IT_update_begin)
7518 (IT_frame_up_to_date, IT_set_frame_parameters): Use FVAR and WVAR
7519 instead of direct references.
7520
7521 2012-08-04 Paul Eggert <eggert@cs.ucla.edu>
7522
7523 Export DEFAULT_REHASH_* to GDB.
7524 * lisp.h (DEFAULT_REHASH_THRESHOLD, DEFAULT_REHASH_SIZE):
7525 Now constants, not macros.
7526
7527 2012-08-03 Paul Eggert <eggert@cs.ucla.edu>
7528
7529 Remove unnecessary casts involving pointers.
7530 These casts are no longer needed now that we assume C89 or later,
7531 since they involve casting to or from void *.
7532 * alloc.c (make_pure_string, make_pure_c_string, pure_cons)
7533 (make_pure_float, make_pure_vector):
7534 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP):
7535 * macros.c (Fstart_kbd_macro):
7536 * menu.c (find_and_return_menu_selection):
7537 * minibuf.c (read_minibuf_noninteractive):
7538 * sysdep.c (closedir):
7539 * xdisp.c (x_produce_glyphs):
7540 * xfaces.c (compare_fonts_by_sort_order):
7541 * xfns.c (x_real_positions, select_visual):
7542 * xselect.c (x_stop_queuing_selection_requests)
7543 (x_get_window_property, x_get_window_property_as_lisp_data):
7544 * xterm.c (x_set_frame_alpha, x_find_modifier_meanings):
7545 Remove unnecessary pointer casts.
7546 * alloc.c (record_xmalloc): New function.
7547 * lisp.h (record_xmalloc): New decl.
7548 (SAFE_ALLOCA): Now takes just one arg -- the size -- and acts
7549 more like a function. This is because the pointer cast is not
7550 needed. All uses changed.
7551 * print.c (print_string, print_error_message): Avoid length recalc.
7552
7553 Improve fix for macroexp crash with debugging (Bug#12118).
7554 * lisp.h (ASET) [ENABLE_CHECKING]: Pay attention to
7555 ARRAY_MARK_FLAG when checking subscripts, because ASET is
7556 not supposed to be invoked from the garbage collector.
7557 See Andreas Schwab in <http://bugs.gnu.org/12118#25>.
7558 (gc_aset): New function, which is like ASET but can be
7559 used in the garbage collector.
7560 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
7561 (set_hash_index): Use it instead of ASET.
7562
7563 2012-08-03 Eli Zaretskii <eliz@gnu.org>
7564
7565 Support symlinks on latest versions of MS-Windows.
7566 * w32.c: Include winioctl.h and aclapi.h.
7567 (is_symlink, chase_symlinks, enable_privilege, restore_privilege)
7568 (revert_to_self): Forward declarations of static functions.
7569 <static BOOL g_b_init_get_security_info>:
7570 <g_b_init_create_symbolic_link>: New static flags.
7571 (globals_of_w32): Initialize them to zero.
7572 (GetSecurityInfo_Proc, CreateSymbolicLink_Proc): New typedefs.
7573 (map_w32_filename): Improve commentary. Simplify switch.
7574 (SYMBOLIC_LINK_FLAG_DIRECTORY): Define if not defined in system
7575 headers (most versions of MinGW w32api don't).
7576 (get_security_info, create_symbolic_link)
7577 (get_file_security_desc_by_handle, is_symlink, chase_symlinks):
7578 New functions.
7579 (sys_access, sys_chmod): Call 'chase_symlinks' to resolve symlinks
7580 in the argument file name.
7581 (sys_access): Call unc_volume_file_attributes only if
7582 GetFileAttributes fails with network-related error codes.
7583 (sys_rename): Diagnose renaming of a symlink when the user doesn't
7584 have the required privileges.
7585 (get_file_security_desc_by_name): Rename from
7586 get_file_security_desc.
7587 (stat_worker): New function, with most of the guts of 'stat', and
7588 with addition of handling of symlinks and support for 'lstat'.
7589 If possible, get file's attributes and security information by
7590 handle, not by name. Produce S_IFLNK bit for symlinks, when
7591 called from 'lstat'.
7592 (stat, lstat): New functions, call 'stat_worker'.
7593 (symlink, readlink, careadlinkat): Rewritten to create and resolve
7594 symlinks when the underlying filesystem supports them.
7595
7596 2012-08-02 Paul Eggert <eggert@cs.ucla.edu>
7597
7598 Fix macroexp crash on Windows with debugging (Bug#12118).
7599 * lisp.h (ASET) [ENABLE_CHECKING]: Ignore ARRAY_MARK_FLAG when
7600 checking subscripts; problem introduced with the recent
7601 "ASET (a, i, v)" rather than "AREF (a, i) = v" patch.
7602 (ARRAY_MARK_FLAG): Now a macro as well as a constant,
7603 since it's used in non-static inline functions now.
7604
7605 * xfaces.c (face_at_buffer_position, face_for_overlay_string):
7606 Don't assume buffer size fits in 'int'. Remove unused local.
7607
7608 Use C99-style 'extern inline' if available.
7609 * buffer.h (BUFFER_INLINE):
7610 * category.h (CATEGORY_INLINE):
7611 * character.h (CHARACTER_INLINE):
7612 * charset.h (CHARSET_INLINE):
7613 * composite.h (COMPOSITE_INLINE):
7614 * dispextern.h (DISPEXTERN_INLINE):
7615 * lisp.h (LISP_INLINE):
7616 * systime.h (SYSTIME_INLINE):
7617 New macro, replacing 'static inline' in this header.
7618 * buffer.h, category.h, character.h, charset.h, composite.h:
7619 * dispextern.h, lisp.h, systime.h:
7620 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
7621 * alloc.c (LISP_INLINE):
7622 * buffer.c (BUFFER_INLINE):
7623 * category.c (CATEGORY_INLINE):
7624 * character.c (CHARACTER_INLINE):
7625 * charset.c (CHARSET_INLINE):
7626 * composite.c (COMPOSITE_INLINE):
7627 * dispnew.c (DISPEXTERN_INLINE):
7628 * sysdep.c (SYSTIME_INLINE):
7629 Define to EXTERN_INLINE, so that the corresponding functions
7630 are compiled into code.
7631 * conf_post.h (INLINE, EXTERN_INLINE, INLINE_HEADER_BEGIN)
7632 (INLINE_HEADER_END): New macros.
7633 * lisp.h (PSEUDOVECTOR_FLAG): Now a macro as well as a constant,
7634 since it's used in non-static inline functions now.
7635 (VALMASK) [!USE_LSB_TAG]: Likewise.
7636
7637 2012-08-02 Glenn Morris <rgm@gnu.org>
7638
7639 * s/: Remove empty directory.
7640
7641 * s/ms-w32.h: Move to ../nt/inc.
7642 * makefile.w32-in (TAGS, TAGS-gmake, MS_W32_H):
7643 Update for new ms-w32.h location.
7644
7645 2012-08-02 Paul Eggert <eggert@cs.ucla.edu>
7646
7647 Port to Solaris 8.
7648 * syswait.h (WRETCODE): Remove, consistently with ../configure.ac.
7649
7650 2012-08-02 Glenn Morris <rgm@gnu.org>
7651
7652 * nsterm.m (ns_exec_path, ns_load_path): Use SEPCHAR rather than
7653 hard-coding the path separator.
7654
7655 2012-08-01 Paul Eggert <eggert@cs.ucla.edu>
7656
7657 Use "ASET (a, i, v)" rather than "AREF (a, i) = v".
7658 This how ASET and AREF are supposed to work, and makes
7659 it easier to think about future improvements. See
7660 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00026.html>.
7661 * charset.h (set_charset_attr): New function.
7662 All lvalue-style uses of CHARSET_DECODER etc. changed to use it.
7663 * lisp.h (ASET): Rewrite so as not to use AREF in an lvalue style.
7664 (aref_addr): New function. All uses of &AREF(...) changed.
7665 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
7666 (set_hash_index): New functions. All lvalue-style uses of
7667 HASH_KEY etc. changed.
7668 * keyboard.c (set_prop): New function. All lvalue-style uses
7669 of PROP changed.
7670
7671 2012-08-01 Alp Aker <alp.tekin.aker@gmail.com>
7672
7673 * nsterm.m (ns_set_vertical_scroll_bar, ns_redeem_scroll_bar)
7674 (EmacsWindow-accessibilityAttributeValue, EmacsScroller-initFrame:)
7675 (EmacsScroller-dealloc): Adjust to use WVAR. (Bug#12114)
7676 * nsfns.m (ns_set_name_as_filename): Likewise.
7677 * nsmenu.m (ns_update_menubar): Likewise.
7678 * nsselect.m (symbol_to_nsstring): Adjust to use SVAR.
7679
7680 2012-08-01 Eli Zaretskii <eliz@gnu.org>
7681
7682 * .gdbinit (xcar, xcdr, xlist, xwindow, nextcons, xprintsym):
7683 Adapt to latest changes in field names of the corresponding Lisp
7684 objects.
7685
7686 * xdisp.c (try_window_id): Use WVAR in IF_DEBUG code.
7687
7688 2012-08-01 Glenn Morris <rgm@gnu.org>
7689
7690 * s/msdos.h: Remove file.
7691 * conf_post.h [MSDOS]: New section, moved from s/msdos.h.
7692 * Makefile.in (S_FILE): Remove.
7693 (config_h): Remove S_FILE.
7694
7695 2012-08-01 Juanma Barranquero <lekktu@gmail.com>
7696
7697 * s/ms-w32.h (DEVICE_SEP, IS_DIRECTORY_SEP, IS_ANY_SEP):
7698 Remove; moved to nt/config.nt.
7699
7700 2012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
7701
7702 Use INTERNAL_FIELD for conses and overlays.
7703 * lisp.h (struct Lisp_Cons): Use INTERNAL_FIELD.
7704 Remove obsolete comment.
7705 (MVAR): New macro.
7706 (struct Lisp_Overlay): Use INTERNAL_FIELD.
7707 * alloc.c, buffer.c, buffer.h, fns.c: Adjust users.
7708
7709 2012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
7710
7711 Use INTERNAL_FIELD for symbols.
7712 * lisp.h (SVAR): New macro. Adjust users.
7713 * alloc.c, bytecode.c, cmds.c, data.c, doc.c, eval.c:
7714 * fns.c, keyboard.c, lread.c, xterm.c: Users changed.
7715
7716 2012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
7717
7718 Use INTERNAL_FIELD for processes.
7719 * process.h (PVAR): New macro. Adjust style.
7720 (struct Lisp_Process): Change Lisp_Object members to INTERNAL_FIELD.
7721 * print.c, process.c, sysdep.c, w32.c, xdisp.c: Users changed.
7722
7723 2012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
7724
7725 Use INTERNAL_FIELD for windows.
7726 * window.h (WVAR): New macro.
7727 (struct window): Change Lisp_Object members to INTERNAL_FIELD.
7728 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
7729 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
7730 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, nsterm.m, print.c:
7731 * textprop.c, w32fns.c, w32menu.c, w32term.c, window.c, xdisp.c:
7732 * xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
7733
7734 2012-08-01 Paul Eggert <eggert@cs.ucla.edu>
7735
7736 * coding.h (CODING_ATTR_FLUSHING): Remove; unused and wouldn't work.
7737
7738 2012-08-01 Glenn Morris <rgm@gnu.org>
7739
7740 * lisp.h (IS_DIRECTORY_SEP, IS_DEVICE_SEP, IS_ANY_SEP):
7741 Move to configure.ac.
7742
7743 2012-08-01 Juanma Barranquero <lekktu@gmail.com>
7744
7745 * makefile.w32-in (CONFIG_H): Update dependencies.
7746 (CONF_POST_H): New macro.
7747
7748 * s/ms-w32.h (SEPCHAR, NULL_DEVICE): Remove; moved to nt/config.nt.
7749
7750 2012-07-31 Glenn Morris <rgm@gnu.org>
7751
7752 * Makefile.in (S_FILE): No longer set by configure.
7753
7754 * conf_post.h (config_opsysfile): Move earlier, so that WINDOWSNT
7755 is available.
7756 (alloca.h) [WINDOWSNT]: Don't include it on MS Windows.
7757
7758 * process.h (NULL_DEVICE):
7759 * emacs.c (SEPCHAR):
7760 * editfns.c (USER_FULL_NAME): Let configure set them.
7761
7762 * s/README, s/template.h: Remove files.
7763
7764 * conf_post.h [HPUX]: Undefine HAVE_RANDOM and HAVE_RINT.
7765
7766 * conf_post.h (AMPERSAND_FULL_NAME, subprocesses):
7767 Move to configure.ac.
7768
7769 2012-07-31 Eli Zaretskii <eliz@gnu.org>
7770
7771 * .gdbinit (xframe): Adapt to introduction of FVAR and the
7772 resulting renaming of 'struct frame' members.
7773
7774 * w32menu.c (w32_menu_show): Revert bogus introduction of FVAR.
7775
7776 * fontset.c (dump_fontset): Fix compilation with ENABLE_CHECKING
7777 after introduction of FVAR.
7778
7779 2012-07-31 Jan Djärv <jan.h.d@swipnet.se>
7780
7781 * nsmenu.m (update_frame_tool_bar): Change key from NSObject* to id.
7782
7783 * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Use drawInRect
7784 instead of compositeToPoint.
7785 (applicationShouldTerminate): Pass NS String literal to NSRunAlertPanel.
7786
7787 * nsfns.m, nsmenu.m, nsterm.m: Adopt to struct frame/FVAR changes.
7788
7789 2012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
7790
7791 Generalize INTERNAL_FIELD between buffers, keyboards and frames.
7792 * lisp.h (INTERNAL_FIELD): New macro.
7793 * buffer.h (BUFFER_INTERNAL_FIELD): Remove.
7794 (BVAR): Change to use INTERNAL_FIELD.
7795 * keyboard.h (KBOARD_INTERNAL_FIELD): Likewise.
7796 (KVAR): Change to use INTERNAL_FIELD.
7797 * frame.h (FVAR): New macro.
7798 (struct frame): Use INTERNAL_FIELD for all Lisp_Object fields.
7799 * alloc.c, buffer.c, data.c, dispnew.c, dosfns.c, eval.c, frame.c:
7800 * fringe.c, gtkutil.c, minibuf.c, nsfns.m, nsterm.m, print.c:
7801 * term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
7802 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
7803
7804 2012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
7805
7806 Miscellaneous fixes for non-default X toolkits.
7807 * xfns.c (Fx_file_dialog): Change to SSDATA to avoid warnings.
7808 * xterm.c (x_frame_of_widget): Remove redundant prototype.
7809 Move under #ifdef USE_LUCID.
7810 (x_create_toolkit_scroll_bar): Adjust scroll_bar_name
7811 definition and usage to avoid warnings.
7812
7813 2012-07-31 Jan Djärv <jan.h.d@swipnet.se>
7814
7815 * nsterm.m (openFiles): Fix previous checkin.
7816
7817 2012-07-31 Paul Eggert <eggert@cs.ucla.edu>
7818
7819 * indent.c (compute_motion): Remove unused local.
7820
7821 2012-07-31 Glenn Morris <rgm@gnu.org>
7822
7823 * s/usg5-4-common.h (wait3, WRETCODE): Let configure set them.
7824
7825 * conf_post.h [USG5_4]:
7826 Move remaining contents of s/usg5-4-common.h here.
7827 * s/usg5-4-common.h: Remove file.
7828
7829 * conf_post.h [IRIX6_5]: Move remaining contents of s/irix6-5.h here.
7830 * s/irix6-5.h: Remove file.
7831
7832 * conf_post.h [DARWIN_OS]: Move remaining contents of s/darwin.h here.
7833 * s/darwin.h: Remove file.
7834
7835 * conf_post.h [HPUX]: Move random, srandom here from s/hpux10-20.h.
7836 * s/hpux10-20.h: Remove file, which is now empty.
7837
7838 2012-07-30 Glenn Morris <rgm@gnu.org>
7839
7840 * conf_post.h: New, split from configure.ac's AH_BOTTOM.
7841 * Makefile.in (config_h): Add conf_post.h.
7842 * makefile.w32-in (CONFIG_H): Add conf_post.h.
7843
7844 2012-07-30 Jan Djärv <jan.h.d@swipnet.se>
7845
7846 * nsterm.m (ns_do_open_file): New variable.
7847 (ns_term_init): Set ns_do_open_file to YES after run returns.
7848 (openFile, openTempFile, openFileWithoutUI, openFiles):
7849 Open files only if ns_do_open_file.
7850
7851 2012-07-30 Paul Eggert <eggert@cs.ucla.edu>
7852
7853 * lisp.h (SWITCH_ENUM_CAST): Remove. All uses removed.
7854 This no-op macro hasn't been needed for many years.
7855 * src/regex.c (SWITCH_ENUM_CAST) [!emacs]: Likewise.
7856
7857 Export DIRECTORY_SEP, TYPEMASK, VALMASK to GDB.
7858 * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]: Add lsb_bits.
7859 * lisp.h (enum lsb_bits) [USE_LSB_TAG]: New enum, for
7860 gdb_make_enums_visible.
7861 (TYPEMASK, VALMASK) [USE_LSB_TAGS]: Now enum constants, not macros.
7862 (DIRECTORY_SEP): Now a constant, not a macro.
7863
7864 2012-07-30 Eli Zaretskii <eliz@gnu.org>
7865
7866 * w32fns.c (w32_wnd_proc): Pass w32_keyboard_codepage to
7867 w32_kbd_patch_key as the 2nd arg. (Bug#12082)
7868
7869 * w32term.c <w32_keyboard_codepage>: Renamed from
7870 keyboard_codepage and now external. All users changed.
7871
7872 * w32term.h: Add declaration of w32_keyboard_codepage.
7873
7874 * w32inevt.c (w32_kbd_patch_key): Accept an additional argument --
7875 the codepage to translate keys to Unicode. If this argument is
7876 -1, use the value returned by GetConsoleCP. All callers changed.
7877
7878 2012-07-30 Paul Eggert <eggert@cs.ucla.edu>
7879
7880 Update .PHONY listings in makefiles.
7881 * Makefile.in (.PHONY): Add all, mostlyclean, clean,
7882 bootstrap-clean, distclean, maintainer-clean, versioclean,
7883 extraclean, frc.
7884
7885 * lisp.h (STRING_BYTES_BOUND): Cast entire result to ptrdiff_t.
7886 This is a bit clearer. Fix some commentary typos.
7887
7888 2012-07-30 Glenn Morris <rgm@gnu.org>
7889
7890 * s/netbsd.h: Let configure include signal.h if needed.
7891 Remove file, which is now empty.
7892
7893 * s/usg5-4-common.h (_longjmp, _setjmp, TIOCSIGSEND):
7894 Let configure set them.
7895 * s/irix6-5.h (_longjmp, _setjmp, TIOCSIGSEND):
7896 No more need to undefine.
7897
7898 2012-07-30 Andreas Schwab <schwab@linux-m68k.org>
7899
7900 * keymap.c (Fkey_description): Don't remove 0x80 bit from
7901 non-single-byte char when adding meta modifier. (Bug#12090)
7902
7903 2012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
7904
7905 Convert safe_call to use variable number of arguments.
7906 * xdisp.c (safe_call): Convert to use varargs. Adjust users.
7907 (safe_call2): Fix comment.
7908 * lisp.h (safe_call): Adjust prototype.
7909 * coding.c (encode_coding_object): Change to use safe_call2.
7910 * xfaces.c (merge_face_heights): Change to use safe_call1.
7911
7912 2012-07-30 Glenn Morris <rgm@gnu.org>
7913
7914 * s/aix4-2.h (sigmask): No need to undefine it, since syssignal.h
7915 does that unconditionally. Remove file, which is now empty.
7916
7917 * s/freebsd.h, s/gnu-linux.h, s/sol2-6.h, s/unixware.h:
7918 Remove empty files.
7919
7920 2012-07-30 Paul Eggert <eggert@cs.ucla.edu>
7921
7922 Export to GDB most of lisp.h's remaining object-like macros.
7923 * lisp.h (min, max): Move earlier, because they're used earlier now.
7924 (INTMASK, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK)
7925 (CHAR_TABLE_STANDARD_SLOTS, CHARTAB_SIZE_BITS_0)
7926 (CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2, CHARTAB_SIZE_BITS_3)
7927 (DEFAULT_HASH_SIZE, COMPILED_ARGLIST, COMPILED_BYTECODE)
7928 (COMPILED_CONSTANTS, COMPILED_STACK_DEPTH, COMPILED_DOC_STRING)
7929 (COMPILED_INTERACTIVE, CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT)
7930 (CHAR_CTL, CHAR_META, CHAR_MODIFIER_MASK, CHARACTERBITS)
7931 (MANY, UNEVALLED, FLOAT_TO_STRING_BUFSIZE, MAX_ALLOCA):
7932 Now constants, for GDB. They need not be macros.
7933 (MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM, STRING_BYTES_BOUND):
7934 Now constants, for GDB, as well as macros, for static initializers.
7935 (CHAR_TABLE_STANDARD_SLOTS, CHAR_TABLE_EXTRA_SLOTS):
7936 Move to after the definition of struct Lisp_Char_Table,
7937 since the former now needs that type defined.
7938 (enum CHARTAB_SIZE_BITS, enum CHAR_TABLE_STANDARD_SLOTS)
7939 (enum DEFAULT_HASH_SIZE, enum Lisp_Compiled, enum char_bits)
7940 (enum maxargs, enum FLOAT_TO_STRING_BUFSIZE, enum MAX_ALLOCA):
7941 New enums, for gdb_make_enums_visible.
7942 (GLYPH_MODE_LINE_FACE): Remove; unused.
7943 * alloc.c (STRING_BYTES_MAX): Now a constant, not a macro.
7944 (gdb_make_enums_visible): Add enum CHARTAB_SIZE_BITS, enum
7945 CHAR_TABLE_STANDARD_SLOTS, enum char_bits, enum DEFAULT_HASH_SIZE,
7946 enum FLOAT_TO_STRING_BUFSIZE, enum Lisp_Bits, enum Lisp_Compiled,
7947 enum maxargs, enum MAX_ALLOCA.
7948 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): Remove.
7949 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Remove;
7950 no longer needed, now that they are done in lisp.h.
7951
7952 2012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
7953
7954 Cleanup string bytes checking.
7955 * alloc.c (GC_STRING_BYTES, CHECK_STRING_BYTES): Remove. Convert
7956 all users to STRING_BYTES or string_bytes if GC_CHECK_STRING_BYTES.
7957 (check_string_bytes): Define to empty if not GC_CHECK_STRING_BYTES.
7958 (check_sblock, compact_small_strings): Simplify.
7959
7960 2012-07-29 Paul Eggert <eggert@cs.ucla.edu>
7961
7962 * lisp.h (LISP_INT_TAG, LISP_INT1_TAG, LISP_STRING_TAG): Remove.
7963 These macros are confusing and no longer need to be defined, as
7964 the enum values now suffice. All uses replaced with definiens.
7965 (Lisp_Int1, Lisp_String): Define directly; this is clearer.
7966
7967 2012-07-29 Juanma Barranquero <lekktu@gmail.com>
7968
7969 * makefile.w32-in (LISP_H, $(BLD)/emacs.$(O), $(BLD)/w32inevt.$(O))
7970 ($(BLD)/w32console.$(O)): Update dependencies.
7971
7972 2012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
7973
7974 Remove HIDE_LISP_IMPLEMENTATION and cleanup cons free list check.
7975 * lisp.h (HIDE_LISP_IMPLEMENTATION): Remove as useless for a long
7976 time. Adjust users.
7977 (CHECK_CONS_LIST): Remove. Convert all users to check_cons_list.
7978
7979 2012-07-29 Jan Djärv <jan.h.d@swipnet.se>
7980
7981 * lread.c (init_lread): Remove if-statement in ifdef HAVE_NS before
7982 setting sitelisp (Bug#12010).
7983
7984 2012-07-29 Eli Zaretskii <eliz@gnu.org>
7985
7986 * w32heap.h (OS_9X): Rename from OS_WINDOWS_95.
7987
7988 * w32heap.c (cache_system_info):
7989 * w32.c (sys_rename):
7990 * w32proc.c (find_child_console, sys_kill): All users changed.
7991
7992 2012-07-29 Paul Eggert <eggert@cs.ucla.edu>
7993
7994 * alloc.c (Fgarbage_collect): Indent as per usual Emacs style.
7995
7996 2012-07-29 Eli Zaretskii <eliz@gnu.org>
7997
7998 * makefile.w32-in (LISP_H): Add $(NT_INC)/stdalign.h.
7999
8000 2012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
8001
8002 Cleanup statistics calculation in Fgarbage_collect.
8003 * alloc.c (Fgarbage_collect): Rename t1 to meaningful start.
8004 Fix zombies percentage calculation. Simplify elapsed time calculation.
8005
8006 2012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
8007
8008 Generalize marker debugging code under MARKER_DEBUG and use eassert.
8009 * insdel.c (CHECK_MARKERS, check_markers_debug_flag): Remove.
8010 (gap_left, gap_right, adjust_markers_for_delete, insert_1_both)
8011 (insert_from_string_1, insert_from_gap, insert_from_buffer_1)
8012 (replace_range, replace_range_2, del_range_2): Change to eassert.
8013 * marker.c (byte_char_debug_check): Adjust style.
8014
8015 2012-07-29 Paul Eggert <eggert@cs.ucla.edu>
8016
8017 Don't use the abbreviation "win" to refer to Windows (Bug#10421).
8018 * regex.c (MAX_BUF_SIZE): Remove some incorrect and
8019 long-ago-commented-out code that talks about "WIN32".
8020 * w32heap.h (OS_WINDOWS_95): Rename from OS_WIN95.
8021 All uses changed.
8022
8023 2012-07-28 Paul Eggert <eggert@cs.ucla.edu>
8024
8025 Use Gnulib stdalign module (Bug#9772, Bug#9960).
8026 * alloc.c (XMALLOC_BASE_ALIGNMENT, GC_POINTER_ALIGNMENT, pure_alloc):
8027 Simplify by using alignof.
8028 (pure_alloc) [! USE_LSB_TAG]: Don't over-align EMACS_INT values.
8029 * lisp.h: Include <stdalign.h>.
8030 (GCALIGNMENT): New macro and constant.
8031 (DECL_ALIGN): Remove. All uses replaced by alignas (GCALIGNMENT).
8032 (USE_LSB_TAG): ifdef on alignas, not on DECL_ALIGN.
8033 (stdalign): New macro, if not already defined.
8034
8035 2012-07-28 Eli Zaretskii <eliz@gnu.org>
8036
8037 Fix non-ASCII input in non-GUI frames on MS-Windows. (Bug#12055)
8038 * w32inevt.c: Include w32inevt.h.
8039 (w32_read_console_input): New inline function, calls either
8040 ReadConsoleInputA or ReadConsoleInputW, depending on the value of
8041 w32_console_unicode_input.
8042 (fill_queue): Call w32_read_console_input instead of ReadConsoleInput.
8043 (w32_kbd_patch_key, key_event): Use the codepage returned by
8044 GetConsoleCP, rather than the ANSI codepage returned by GetLocaleInfo.
8045 (key_event): use uChar.UnicodeChar only if
8046 w32_console_unicode_input is non-zero.
8047
8048 * w32console.c: Include w32heap.h.
8049 <w32_console_unicode_input>: New global variable.
8050 (initialize_w32_display): Set w32_console_unicode_input to 1 on NT
8051 family of Windows, zero otherwise.
8052
8053 * w32inevt.h: Declare w32_console_unicode_input.
8054
8055 * xdisp.c (init_iterator): Don't reference tip_frame in a build
8056 --without-x. (Bug#11742)
8057
8058 2012-07-27 Paul Eggert <eggert@cs.ucla.edu>
8059
8060 Adjust GDB to reflect pvec_type changes (Bug#12036).
8061 * .gdbinit (xvectype, xpr, xbacktrace): Adjust to reflect the
8062 2012-07-04 changes to pseudovector representation.
8063 Problem reported by Eli Zaretskii in <http://bugs.gnu.org/12036#30>.
8064
8065 2012-07-27 Michael Albinus <michael.albinus@gmx.de>
8066
8067 * dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Canonicalize session
8068 bus address.
8069 (xd_close_bus, Fdbus_init_bus): Handle reference counter properly.
8070
8071 2012-07-27 Eli Zaretskii <eliz@gnu.org>
8072
8073 * alloc.c (listn): Fix the order the arguments are consed onto the
8074 list.
8075
8076 * lisp.h (enum constype): Use CONSTYPE_HEAP and CONSTYPE_PURE for
8077 enumeration constants, as PURE and HEAP are too general, and clash
8078 with other headers and sources, such as gmalloc.c and the
8079 MS-Windows system headers. All users changed.
8080
8081 2012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
8082
8083 Revert last save_excursion_save and save_excursion_restore changes.
8084 * alloc.c, editfns.c, marker.c, lisp.h: Revert.
8085 Lots of crashes reported by Chong Yidong <cyd@gnu.org>.
8086
8087 2012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
8088
8089 Fix recently-introduced typos in Windows port.
8090 Reported by Martin Rudalics <rudalics@gmx.at>.
8091 * w32.c (init_environment): Replace comma with semicolon.
8092 * w32fns.c (syms_of_w32fns): Add missing parenthesis.
8093
8094 2012-07-27 Paul Eggert <eggert@cs.ucla.edu>
8095
8096 Improve GDB symbol export (Bug#12036).
8097 * .gdbinit (xgetptr, xgetint, xgettype): Set $bugfix in different
8098 arms of an 'if', not using conditional expressions; otherwise GDB
8099 complains about the types in the unevaluated arm when the argument
8100 is an integer literal.
8101 (xgetint): Simplify expression.
8102 * alloc.c (gdb_make_enums_visible): New constant. This ports to
8103 GCC 3.4.2 the export of symbols to GDB. Problem reported by Eli
8104 Zaretskii in <http://bugs.gnu.org/12036#13>.
8105 * lisp.h (PUBLISH_TO_GDB): Remove. All uses removed. No longer
8106 needed now that we have gdb_make_enums_visible.
8107 (enum CHECK_LISP_OBJECT_TYPE, enum Lisp_Bits, enum More_Lisp_Bits)
8108 (enum enum_USE_LSB_TAG):
8109 New enum types, packaging up enums that need to be exported to GDB.
8110
8111 2012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
8112
8113 Utility function to make a list from specified amount of objects.
8114 * lisp.h (enum constype): New datatype.
8115 (listn): New prototype.
8116 * alloc.c (listn): New function.
8117 (Fmemory_use_count, syms_of_alloc): Use it.
8118 * buffer.c (syms_of_buffer): Likewise.
8119 * callint.c (syms_of_callint): Likewise.
8120 * charset.c (define_charset_internal): Likewise.
8121 * coding.c (syms_of_coding): Likewise.
8122 * keymap.c (syms_of_keymap): Likewise.
8123 * search.c (syms_of_search): Likewise.
8124 * syntax.c (syms_of_syntax): Likewise.
8125 * w32.c (init_environment): Likewise.
8126 * w32fns.c (Fw32_battery_status, syms_of_w32fns): Likewise.
8127 * xdisp.c (syms_of_xdisp): Likewise.
8128 * xfns.c (syms_of_xfns): Likewise.
8129
8130 2012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
8131
8132 Fast save_excursion_save and save_excursion_restore.
8133 * lisp.h (struct Lisp_Excursion): New data type.
8134 (PVEC_EXCURSION): New pseudovector type.
8135 (XEXCURSION, XSETEXCURSION, EXCURSIONP): Convenient macros
8136 to deal with it. Adjust comments.
8137 (init_marker, attach_marker): New prototype.
8138 (unchain_marker): Adjust prototype.
8139 * marker.c (attach_marker): Change to global.
8140 (init_marker): New function.
8141 * alloc.c (Fmake_marker, build_marker): Use it.
8142 (build_marker): More easserts.
8143 (mark_object): Handle struct Lisp_Excursion.
8144 * editfns.c (save_excursion_save, save_excursion_restore):
8145 Reimplement to use struct Lisp_Excursion. Add comments.
8146
8147 2012-07-26 Paul Eggert <eggert@cs.ucla.edu>
8148
8149 Fix export of symbols to GDB (Bug#12036).
8150 * alloc.c (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL)
8151 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Move these here from
8152 emacs.c, as this is a more-suitable home. Had this been done earlier
8153 the fix for 12036 would have avoided some of the problems noted in
8154 <http://bugs.gnu.org/12036#13> by Eli Zaretskii, as the scope problems
8155 would have been more obvious.
8156 * emacs.c: Do not include <verify.h>; no longer needed.
8157 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS)
8158 (gdb_GCTYPEBITS, gdb_USE_LSB_TAG)
8159 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
8160 Remove; now done in lisp.h.
8161 * lisp.h (PUBLISH_TO_GDB): New macro.
8162 (GCTYPEBITS, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE, enum pvec_type)
8163 (DATA_SEG_BITS): Use it.
8164 (GCTYPEBITS, USE_LSB_TAG): Now also an enum, for GDB.
8165 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Now just an enum, for GDB.
8166 * mem-limits.h (EXCEEDS_LISP_PTR): Redo so that DATA_SEG_BITS need
8167 not be usable in #if. This simplifies things.
8168
8169 2012-07-26 Juanma Barranquero <lekktu@gmail.com>
8170
8171 * makefile.w32-in ($(BLD)/emacs.$(O)): Update dependencies.
8172
8173 2012-07-26 Paul Eggert <eggert@cs.ucla.edu>
8174
8175 Simplify export of symbols to GDB (Bug#12036).
8176 * .gdbinit (xgetptr, xgetint, xgettype): Don't use "set $bugfix =
8177 $bugfix.i", as this doesn't work (with GDB 7.4.1, anyway).
8178 (xgetptr, xgetint, xgettype, xcoding, xcharset, xprintbytestr):
8179 Adjust to changes in lisp.h and emacs.c, by using
8180 CHECK_LISP_OBJECT_TYPE rather than gdb_use_struct, VALMASK instead
8181 of $valmask, DATA_SEG_BITS instead of gdb_data_seg_bits,
8182 INTTYPEBITS instead of gdb_gctypebits - 1, USE_LSB_TAG instead of
8183 gdb_use_lsb, (1 << GCTYPEBITS) - 1 instead of $tagmask, VALBITS
8184 instead of gdb_valbits.
8185 (xvectype, xvector, xpr, xprintstr, xbacktrace): Similarly, use
8186 PSEUDOVECTOR_FLAG instead of PVEC_FLAG, and ARRAY_MARK_FLAG
8187 instead of gdb_array_mark_flag.
8188 (xboolvector): Get size from $->size, not $->header.size.
8189 Use BOOL_VECTOR_BITS_PER_CHAR rather than mystery constants.
8190 (xreload, hook-run, hookpost-run): Remove.
8191 * emacs.c: Include <verify.h>.
8192 (gdb_use_lsb, gdb_use_struct, gdb_valbits, gdb_gctypebits)
8193 (gdb_data_seg_bits, PVEC_FLAG, gdb_array_mark_flag, gdb_pvec_type):
8194 Remove.
8195 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS, gdb_GCTYPEBITS)
8196 (gdb_USE_LSB_TAG): New enum constants.
8197 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
8198 Also define these as enum constants, so they're visible to GDB.
8199 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): New macros.
8200 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Also define these
8201 as constants, so they're visible to GDB.
8202 * lisp.h (VALBITS, INTTYPEBITS, FIXNUM_BITS, PSEUDOVECTOR_SIZE_BITS)
8203 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK, BOOL_VECTOR_BITS_PER_CHAR):
8204 Now enum constants, not macros, so they're visible to GDB.
8205 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Default to 0, as this is
8206 more convenient now. All uses changed.
8207 (VALMASK) [USE_LSB_TAG]: Also define in this case.
8208 * mem-limits.h (EXCEEDS_LISP_PTR): Adjust to DATA_SEG_BITS change.
8209
8210 2012-07-26 Dmitry Antipov <dmantipov@yandex.ru>
8211
8212 Explicitly free restriction data that are not needed anymore.
8213 * editfns.c (save_restriction_restore): Free restriction data.
8214
8215 2012-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
8216
8217 * eval.c (Fautoload_do_load): Rename from do_autoload, export to Lisp,
8218 add argument, tune behavior, and adjust all callers.
8219
8220 2012-07-25 Paul Eggert <eggert@cs.ucla.edu>
8221
8222 Use typedef for EMACS_INT, EMACS_UINT.
8223 * lisp.h, s/ms-w32.h (EMACS_INT, EMACS_UINT): Use typedefs rather
8224 than macros. This simplifies debugging in the usual case, since
8225 it lets GDB show addresses as 'EMACS_INT *' rather than 'long int *'
8226 and it allows expressions involving EMACS_INT casts.
8227 * .gdbinit (xreload): Simplify by using EMACS_INT cast.
8228
8229 2012-07-25 Jan Djärv <jan.h.d@swipnet.se>
8230
8231 * nsterm.m (ns_read_socket): Return early if there is a modal
8232 window (Bug#12043).
8233
8234 2012-07-25 Martin Rudalics <rudalics@gmx.at>
8235
8236 * frame.c (Fredirect_frame_focus): In doc-string don't mention
8237 that FOCUS-FRAME can be omitted.
8238
8239 2012-07-25 Dmitry Antipov <dmantipov@yandex.ru>
8240
8241 Adjust buffer text indirection counters at the end of Fkill_buffer.
8242 * buffer.c (Fkill_buffer): Adjust indirection counters when the
8243 buffer is definitely dead. This should really fix an issue reported
8244 by Christoph Scholtes again. (Bug#12007).
8245 (init_buffer_once): Initialize indirection counters of
8246 buffer_defaults and buffer_local_symbols (for sanity and safety).
8247
8248 2012-07-24 Eli Zaretskii <eliz@gnu.org>
8249
8250 * xdisp.c (init_iterator): Don't compute dimensions of truncation
8251 and continuation glyphs on tooltip frames, leave them at zero.
8252 Avoids continued lines in tooltips. (Bug#11832)
8253
8254 2012-07-24 Dmitry Antipov <dmantipov@yandex.ru>
8255
8256 Simplify copy_overlay.
8257 * buffer.c (copy_overlay): Simplify. Use build_marker.
8258 * lisp.h (struct Lisp_Overlay): Restore comment with minor tweaks.
8259
8260 2012-07-23 Eli Zaretskii <eliz@gnu.org>
8261
8262 * print.c (print_object): Don't crash when a frame's name is nil
8263 or invalid. (Bug#12025)
8264
8265 * window.c (decode_any_window): Disable CHECK_LIVE_FRAME test, as
8266 it signals an error when a tooltip frame is being created.
8267
8268 2012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
8269
8270 Cleanup miscellaneous objects allocation and initialization.
8271 * alloc.c (allocate_misc): Change to static. Add argument to
8272 specify the subtype. Adjust comment and users.
8273 (build_overlay): New function.
8274 * buffer.c (copy_overlays, Fmake_overlay): Use it.
8275 * lisp.h (struct Lisp_Overlay): Remove obsolete comment.
8276 (allocate_misc): Remove prototype.
8277 (build_overlay): Add prototype.
8278
8279 2012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
8280
8281 Swap buffer text indirection counters in Fbuffer_swap_text.
8282 * buffer.c (Fbuffer_swap_text): Swap indirections too.
8283 This avoids crash reported by Christoph Scholtes at
8284 http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-07/msg00785.html.
8285
8286 2012-07-22 Jan Djärv <jan.h.d@swipnet.se>
8287
8288 * nsmenu.m (Popdown_data): New struct.
8289 (pop_down_menu): p->pointer is Popdown_data. Release the pool and
8290 free Popdown_data.
8291 (ns_popup_dialog): Use NSAutoreleasePool and pass it to pop_down_menu.
8292 (initWithContentRect): Make imgView and contentView non-static
8293 and autorelease them. Also autorelease img and matrix (Bug#12005).
8294 (dealloc): Remove (Bug#12005).
8295
8296 2012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
8297
8298 Adjust consing_since_gc when objects are explicitly freed.
8299 * alloc.c (GC_DEFAULT_THRESHOLD): New macro.
8300 (Fgarbage_collect): Use it. Change minimum to 1/10 of default.
8301 (free_cons, free_misc): Subtract object size from consing_since_gc.
8302
8303 2012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
8304
8305 Simplify and cleanup markers positioning code.
8306 * marker.c (attach_marker): More useful eassert.
8307 (live_buffer, set_marker_internal): New function.
8308 (Fset_marker, set_marker_restricted): Use set_marker_internal.
8309 (set_marker_both, set_marker_restricted_both): Use live_buffer.
8310
8311 2012-07-22 Paul Eggert <eggert@cs.ucla.edu>
8312
8313 * buffer.h (struct buffer.indirections): Now ptrdiff_t, not int,
8314 as it's limited by the amount of memory, not by INT_MAX.
8315
8316 2012-07-21 Eli Zaretskii <eliz@gnu.org>
8317
8318 * keyboard.c (keys_of_keyboard): Bind language-change to 'ignore'
8319 in special-event-map. See the discussion at
8320 http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00417.html
8321 for the reasons.
8322
8323 * w32menu.c (add_menu_item): Cast to ULONG_PTR when assigning
8324 info.dwItemData. Fixes crashes on 64-bit Windows.
8325 Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
8326
8327 2012-07-21 Jan Djärv <jan.h.d@swipnet.se>
8328
8329 * nsterm.m (accessibilityAttributeValue): New function. (Bug#11134).
8330 (conversationIdentifier): Return value is NSInteger.
8331 * nsterm.m (accessibilityAttributeValue): Surround with NS_IMPL_COCOA.
8332
8333 2012-07-21 Chong Yidong <cyd@gnu.org>
8334
8335 * window.c (decode_any_window): Signal an error if the window is
8336 on a dead frame (Bug#11984).
8337
8338 2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
8339
8340 Add indirection counting to speed up Fkill_buffer.
8341 * buffer.h (struct buffer): New member.
8342 * buffer.c (Fget_buffer_create): Set indirection counter to 0.
8343 (Fmake_indirect_buffer): Set indirection counter to -1, increment
8344 base buffer indirection counter.
8345 (compact_buffer): If ENABLE_CHECKING, verify indirection counters.
8346 (Fkill_buffer): Adjust indirection counters as needed, don't walk
8347 through buffer list if indirection counter is 0.
8348
8349 2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
8350
8351 Extend the value returned by Fgarbage_collect with heap statistics.
8352 * alloc.c (Qheap): New symbol.
8353 (syms_of_alloc): DEFSYM it.
8354 (Fgarbage_collect): If DOUG_LEA_MALLOC, add mallinfo data.
8355 (Fmemory_free): Remove.
8356 (syms_of_alloc): Don't defsubr it.
8357 * buffer.c (Fcompact_buffer): Remove.
8358 (syms_of_buffer): Don't defsubr it.
8359
8360 2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
8361
8362 Make maybe_gc inline.
8363 Verify that inlining is always possible (GCC 4.7.1, -O3 -Winline).
8364 * lisp.h (consing_since_gc, gc_relative_threshold)
8365 (memory_full_cons_threshold): Revert declaration.
8366 (maybe_gc): Remove prototype, define as inline.
8367 * alloc.c: Remove old commented-out code.
8368 (consing_since_gc, gc_relative_threshold)
8369 (memory_full_cons_threshold): Revert to global.
8370 (maybe_gc): Remove.
8371
8372 2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
8373
8374 Simple wrapper for make_unibyte_string, adjust font_open_by_name.
8375 * lisp.h (build_unibyte_string): New function.
8376 * dosfns.c, fileio.c, fns.c, ftfont.c, process.c:
8377 * sysdep.c, w32fns.c, xfns.c: Use it.
8378 * font.c (font_open_by_name): Change 2nd and 3rd args to the only arg
8379 of type Lisp_Object to avoid redundant calls to make_unibyte_string.
8380 Adjust users accordingly.
8381 * font.h (font_open_by_name): Adjust prototype.
8382
8383 2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
8384
8385 Cleanup calls to Fgarbage_collect.
8386 * lisp.h (maybe_gc): New prototype.
8387 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
8388 Remove declarations.
8389 * alloc.c (maybe_gc): New function.
8390 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
8391 Make them static.
8392 * bytecode.c (MAYBE_GC): Use maybe_gc.
8393 * eval.c (eval_sub, Ffuncall): Likewise.
8394 * keyboard.c (read_char): Likewise. Adjust call to maybe_gc
8395 to avoid dependency from auto-save feature.
8396
8397 2012-07-19 Paul Eggert <eggert@cs.ucla.edu>
8398
8399 * buffer.h (FOR_EACH_BUFFER): Rename from 'for_each_buffer'.
8400 (FOR_EACH_PER_BUFFER_OBJECT_AT): Rename from
8401 'for_each_per_buffer_object_at'.
8402 All uses changed. It's better to use upper-case for macros that
8403 cannot be implemented as functions, to give the reader a clue
8404 that they're special.
8405
8406 2012-07-19 Stefan Monnier <monnier@iro.umontreal.ca>
8407
8408 * alloc.c (Fgarbage_collect): Tweak docstring.
8409
8410 2012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
8411
8412 Tweak the value returned from Fgarbage_collect again.
8413 * alloc.c (Fgarbage_collect): New return value, as confirmed in
8414 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00418.html.
8415 Adjust documentation.
8416 (total_vector_bytes): Rename to total_vector_slots, adjust
8417 accounting.
8418 (total_free_vector_bytes): Rename to total_free_vector_slots,
8419 adjust accounting.
8420 (Qstring_bytes, Qvector_slots): New symbols.
8421 (syms_of_alloc): DEFSYM them.
8422
8423 2012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
8424
8425 Buffer compaction primitive which may be used from Lisp.
8426 * buffer.c (compact_buffer, Fcompact_buffer): New function.
8427 (syms_of_buffer): Register Fcompact_buffer.
8428 * alloc.c (Fgarbage_collect): Use compact_buffer.
8429 * buffer.h (compact_buffer): New prototype.
8430 (struct buffer_text): New member.
8431
8432 2012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
8433
8434 New macro to iterate over all buffers, miscellaneous cleanups.
8435 * lisp.h (all_buffers): Remove declaration.
8436 * buffer.h (all_buffers): Add declaration, with comment.
8437 (for_each_buffer): New macro.
8438 * alloc.c (Fgarbage_collect, mark_object): Use it.
8439 * buffer.c (Fkill_buffer, Fbuffer_swap_text, Fset_buffer_multibyte)
8440 (init_buffer): Likewise.
8441 * data.c (Fset_default): Likewise.
8442 * coding.c (code_conversion_restore): Remove redundant check
8443 for dead buffer.
8444 * buffer.c (Fkill_buffer): Likewise. Remove obsolete comment.
8445
8446 2012-07-18 Andreas Schwab <schwab@linux-m68k.org>
8447
8448 Fix bug that created negative-length intervals.
8449 * intervals.c (merge_interval_right, merge_interval_left):
8450 Do not zero out this interval if it is absorbed by its children,
8451 as this interval's total length doesn't change in that case. See
8452 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00403.html>.
8453
8454 2012-07-18 Paul Eggert <eggert@cs.ucla.edu>
8455
8456 * alloc.c (Fmake_bool_vector): Fix off-by-8 bug
8457 when invoking (make-bool-vector N t) and N is a positive
8458 multiple of 8 -- the last 8 bits were mistakenly cleared.
8459
8460 Remove some struct layout assumptions in bool vectors.
8461 * alloc.c (bool_header_size): New constant.
8462 (header_size, word_size): Move earlier, as they're now used earlier.
8463 Use 'word_size' in a few more places, where it's appropriate.
8464 (Fmake_bool_vector, sweep_vectors): Don't assume that there is no
8465 padding before the data member of a bool vector.
8466 (sweep_vectors): Use PSEUDOVECTOR_TYPEP, in an eassert, rather
8467 than doing the check by hand with an abort ().
8468
8469 2012-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
8470
8471 * eval.c (Fdefvar): Don't check constants since we only set the var if
8472 it's not yet defined anyway (bug#11904).
8473
8474 * lisp.h (last_undo_boundary): Declare new var.
8475 * keyboard.c (command_loop_1): Set it.
8476 * cmds.c (Fself_insert_command): Use it to only remove boundaries that
8477 were auto-added by the command loop (bug#11774).
8478
8479 2012-07-18 Andreas Schwab <schwab@linux-m68k.org>
8480
8481 * w32font.c (Qsymbol): Remove local definition.
8482 (syms_of_w32font): Don't DEFSYM it.
8483
8484 2012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
8485
8486 Fix sweep_vectors to handle large bool vectors correctly.
8487 * alloc.c (sweep_vectors): Account total_vector_bytes for
8488 bool vectors larger than VBLOCK_BYTES_MAX.
8489
8490 2012-07-18 Chong Yidong <cyd@gnu.org>
8491
8492 * frame.c (x_set_frame_parameters): Revert bogus change introduced
8493 in 2012-05-25 commit by Paul Eggert (Bug#11738).
8494
8495 2012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
8496
8497 Return more descriptive data from Fgarbage_collect.
8498 Suggested by Stefan Monnier in
8499 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00369.html.
8500 * alloc.c (bounded_number): New function.
8501 (total_buffers, total_vectors): New variable.
8502 (total_string_size): Rename to total_string_bytes, adjust users.
8503 (total_vector_size): Rename to total_vector_bytes, adjust users.
8504 (sweep_vectors): Account total_vectors and total_vector_bytes.
8505 (Fgarbage_collect): New return value. Adjust documentation.
8506 (gc_sweep): Account total_buffers.
8507 (Fmemory_free, Fmemory_use_counts): Use bounded_number.
8508 (VECTOR_SIZE): Remove.
8509 * data.c (Qfloat, Qvector, Qsymbol, Qstring, Qcons): Make global.
8510 (Qinterval, Qmisc): New symbols.
8511 (syms_of_data): Initialize them.
8512 * lisp.h (Qinterval, Qsymbol, Qstring, Qmisc, Qvector, Qfloat)
8513 (Qcons, Qbuffer): New declarations.
8514
8515 2012-07-17 Paul Eggert <eggert@cs.ucla.edu>
8516
8517 * alloc.c (Fmemory_free): Account for memory-free's own storage.
8518 Round up, not down. Improve doc.
8519
8520 2012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
8521
8522 Restore old code in allocate_string_data to avoid Faset breakage.
8523 Reported by Julien Danjou <julien@danjou.info> in
8524 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00371.html.
8525 * alloc.c (allocate_string_data): Restore old code with minor
8526 adjustments, fix comment to explain this subtle issue.
8527
8528 2012-07-17 Eli Zaretskii <eliz@gnu.org>
8529
8530 Remove FILE_SYSTEM_CASE.
8531 * s/msdos.h (FILE_SYSTEM_CASE): Don't define.
8532
8533 * fileio.c (FILE_SYSTEM_CASE): Don't define.
8534 (Ffile_name_directory, Fexpand_file_name): Don't use FILE_SYSTEM_CASE.
8535 Fixes problems on MS-DOS with Vtemp_file_name_pattern when
8536 call-process-region passes it through expand-file-name.
8537
8538 * dired.c (file_name_completion): Don't use FILE_SYSTEM_CASE.
8539
8540 2012-07-17 Andreas Schwab <schwab@linux-m68k.org>
8541
8542 Fix crash when creating indirect buffer (Bug#11917)
8543 * buffer.c (buffer_lisp_local_variables): Add argument CLONE.
8544 Don't handle unbound variables specially if non-zero.
8545 (Fbuffer_local_variables): Pass zero.
8546 (clone_per_buffer_values): Pass non-zero.
8547
8548 2012-07-17 Andreas Schwab <schwab@linux-m68k.org>
8549
8550 * gnutls.c (emacs_gnutls_handshake): Revert last change. Add QUIT
8551 to make the loop interruptible.
8552
8553 2012-07-17 Andreas Schwab <schwab@linux-m68k.org>
8554
8555 * gnutls.c (emacs_gnutls_handshake): Only retry if
8556 GNUTLS_E_INTERRUPTED.
8557
8558 2012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
8559
8560 Cleanup and convert miscellaneous checks to eassert.
8561 * alloc.c (mark_interval): Fix comment, partially rephrase
8562 old comment from intervals.h (see below).
8563 * intervals.c (find_interval, adjust_intervals_for_insertion)
8564 (delete_interval, adjust_intervals_for_deletion)
8565 (graft_intervals_into_buffer, temp_set_point_both, copy_intervals):
8566 Convert to eassert.
8567 (adjust_intervals_for_insertion, make_new_interval):
8568 Remove obsolete and unused code.
8569 * intervals.h (struct interval): Remove obsolete comment.
8570 * textprotp.c (erase_properties): Remove unused code.
8571 (Fadd_text_properties, set_text_properties_1, Fremove_text_properties)
8572 (Fremove_list_of_text_properties): Convert to eassert.
8573
8574 2012-07-17 Chong Yidong <cyd@gnu.org>
8575
8576 * editfns.c (Finsert_char): Doc fix.
8577
8578 2012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
8579
8580 Fix previous change to make Fmemory_free always accurate.
8581 * alloc.c (make_interval): Update total_free_intervals.
8582 (make_float): Likewise for total_free_floats.
8583 (free_cons, Fcons): Likewise for total_free_conses.
8584 (SETUP_ON_FREE_LIST, allocate_vector_from_block):
8585 Likewise for total_free_vector_bytes.
8586 (Fmake_symbol): Likewise for total_free_symbols.
8587 (bytes_free): Remove.
8588
8589 2012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
8590
8591 Simple free memory accounting feature.
8592 * alloc.c (bytes_free, total_free_vector_bytes): New variable.
8593 (sweep_vectors): Accumulate size of free vectors.
8594 (Fgarbage_collect): Setup bytes_free.
8595 (Fmemory_free): New function.
8596 (syms_of_alloc): Register it.
8597
8598 2012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
8599
8600 Cleanup overlays checking.
8601 * buffer.h (OVERLAY_VALID): Remove as useless synonym of OVERLAYP.
8602 * buffer.c (overlay_touches_p, recenter_overlay_lists): Change to
8603 eassert and OVERLAYP.
8604 (sort_overlays): Change to use OVERLAYP.
8605
8606 2012-07-16 René Kyllingstad <Rene@Kyllingstad.com> (tiny change)
8607
8608 * editfns.c (Finsert_char): Make it interactive, and make the
8609 second arg optional. Copy interactive spec and docstring from
8610 ucs-insert.
8611
8612 2012-07-17 Paul Eggert <eggert@cs.ucla.edu>
8613
8614 * floatfns.c (Fabs): Do not wrap fabs inside IN_FLOAT (Bug#11913).
8615 Unlike the other wrapped functions, fabs has an unspecified
8616 effect on errno.
8617
8618 2012-07-16 Jan Djärv <jan.h.d@swipnet.se>
8619
8620 * nsterm.m (keyDown): Interpret flags without left/right bits
8621 as the left key (Bug#11670).
8622
8623 2012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
8624
8625 Remove empty and useless init functions.
8626 * lisp.h (init_character_once, init_fns, init_image)
8627 (init_filelock, init_sound): Remove prototype.
8628 * character.c (init_character_once): Remove.
8629 * filelock.c (init_filelock): Likewise.
8630 * fns.c (init_fns): Likewise.
8631 * image.c (init_image): Likewise.
8632 * sound.c (init_sound): Likewise.
8633 * emacs.c (main): Adjust accordingly.
8634
8635 2012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
8636
8637 * gtkutil.h: Tiny cleanups.
8638 (use_old_gtk_file_dialog): Remove useless declaration.
8639 (xg_uses_old_file_dialog): Add suggested const attribute.
8640
8641 2012-07-15 Eli Zaretskii <eliz@gnu.org>
8642
8643 * bidi.c (MAX_STRONG_CHAR_SEARCH): New macro.
8644 (bidi_paragraph_init): Use it to limit search forward for a strong
8645 directional character in abnormally large paragraphs full of
8646 neutral or weak characters. (Bug#11943)
8647
8648 2012-07-15 Stefano Facchini <stefano.facchini@gmail.com> (tiny change)
8649
8650 * gtkutil.c (xg_create_tool_bar): Apply "primary-toolbar" style to
8651 the toolbar (Bug#9451).
8652 (xg_make_tool_item): Give the widget event box a transparent
8653 background.
8654
8655 2012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
8656
8657 Cleanup basic allocation variables and functions.
8658 * alloc.c (ignore_warnings, init_intervals, init_float)
8659 (init_cons, init_symbol, init_marker): Remove.
8660 (interval_block_index): Initialize to INTERVAL_BLOCK_SIZE.
8661 (float_block_index): Initialize to FLOAT_BLOCK_SIZE.
8662 (cons_block_index): Initialize to CONS_BLOCK_SIZE.
8663 (symbol_block_size): Initialize to SYMBOL_BLOCK_SIZE.
8664 (marker_block_index): Initialize to MARKER_BLOCK_SIZE.
8665 (staticidx, init_alloc_once, init_strings, free_ablock):
8666 Remove redundant initialization.
8667 * fns.c (init_weak_hash_tables): Remove.
8668 * lisp.h (init_weak_hash_tables): Remove prototype.
8669
8670 2012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
8671
8672 Use zero_vector where appropriate.
8673 * alloc.c (zero_vector): Define as Lisp_Object. Adjust users
8674 accordingly.
8675 * lisp.h (zero_vector): New declaration.
8676 * font.c (null_vector): Remove.
8677 (syms_of_font): Remove initialization and staticpro.
8678 (font_list_entities, font_find_for_lface): Change to use zero_vector.
8679 * keymap.c (Faccessible_keymaps): Likewise.
8680
8681 2012-07-15 Leo Liu <sdl.web@gmail.com>
8682
8683 * fringe.c: Fix typo in comments.
8684
8685 2012-07-14 Leo Liu <sdl.web@gmail.com>
8686
8687 * fringe.c: Add a new bitmap exclamation-mark.
8688
8689 2012-07-14 Eli Zaretskii <eliz@gnu.org>
8690
8691 * gmalloc.c (GMALLOC_INHIBIT_VALLOC): Don't reference.
8692
8693 * s/msdos.h (BSD_SYSTEM, DATA_START, GC_SETJMP_WORKS, HAVE_MOUSE)
8694 (HAVE_MENUS): Don't define, defined by editing config.in with
8695 msdos/sed2v2.inp.
8696 (GMALLOC_INHIBIT_VALLOC): Don't define.
8697 (MODE_LINE_BINARY_TEXT): Remove, not used anymore.
8698
8699 2012-07-14 Juanma Barranquero <lekktu@gmail.com>
8700
8701 * s/ms-w32.h (GC_SETJMP_WORKS, GC_MARK_STACK): Set in nt/config.nt.
8702
8703 2012-07-14 Glenn Morris <rgm@gnu.org>
8704
8705 * s/aix4-2.h, s/freebsd.h, s/gnu-linux.h, s/hpux10-20.h:
8706 * s/irix6-5.h, s/netbsd.h, s/sol2-6.h, s/unixware.h:
8707 Let configure set GC_SETJMP_WORKS, GC_MARK_STACK.
8708
8709 2012-07-13 Glenn Morris <rgm@gnu.org>
8710
8711 * s/gnu-linux.h (GC_MARK_SECONDARY_STACK): Let configure set it.
8712
8713 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Let configure set it.
8714 * s/irix6-5.h (SETUP_SLAVE_PTY): No more need to unset it.
8715
8716 2012-07-13 Jan Djärv <jan.h.d@swipnet.se>
8717
8718 * nsterm.m (uRect): Only define if NS_IMPL_GNUSTEP.
8719 (x_free_frame_resources): Pass x_free_frame_resources to NSTRACE.
8720 (ns_lisp_to_color, ns_string_to_lispmod, ns_term_init)
8721 (ns_term_shutdown, requestService, initFrameFromEmacs): Use SSDATA
8722 where appropriate.
8723 (ns_exec_path, ns_load_path, changeFont): Put () around assignment used
8724 as boolean expression.
8725 (x_set_window_size): Remove unused variable toolbar.
8726 (ns_get_color_default, ns_mod_to_lisp): Remove.
8727 (ns_mouse_position): Remove unused variables xchar and ychar.
8728 (ns_compute_glyph_string_overhangs): Remove unused variable face.
8729 (ns_set_vertical_scroll_bar): Remove unused variable count.
8730 (ns_delete_terminal): Remove unused variable i.
8731 (ns_term_init): Remove unused variables r, g and b.
8732 (mouseDown): Remove unused variable window.
8733 (windowDidResize): Move definition of theWindow inside NS_IMPL_GNUSTEP.
8734 (initFrameFromEmacs): Remove unused variable vbextra.
8735 (mouseEntered): Remove unused variables p and dpyinfo.
8736 (mouseExited): Remove unused variables p and r.
8737 (ns_define_frame_cursor, ns_clear_frame_area)
8738 (ns_draw_window_cursor, ns_initialize_display_info): Make static.
8739 (menuDown): Assign [sender tag] to variable and cast the variable.
8740
8741 * nsterm.h (menuDown): Add id as type to argument sender.
8742 (ns_display_info_for_name): Add Lisp_Object argument.
8743 (ns_term_init): Add Lisp_Object argument.
8744 (ns_map_event_to_object): Add void argument.
8745 (ns_string_from_pasteboard, ns_string_to_pasteboard): Add correct
8746 prototype with arguments and only declare if __OBJC__.
8747 (nxatoms_of_nsselect): Add void argument.
8748 (ns_lisp_to_cursor_type): Add Lisp_Object argument.
8749 (ns_alloc_autorelease_pool): Add void argument.
8750 (ns_release_autorelease_pool): Add void* argument.
8751 (ns_get_defaults_value): Add const char* argument.
8752
8753 * nsmenu.m (ns_update_menubar, ns_menu_show, process_dialog)
8754 (initFromContents): Use SSDATA where appropriate.
8755 (ns_update_menubar): Add braces to ambigous if-else.
8756 (initWithTitle): Put () around assignment in if statement.
8757 (ns_menu_show): Remove unused variables window and keymap.
8758 (update_frame_tool_bar): Remove unused variable selected_p.
8759 (initWithContentRect): Remove unused variable this_cmd_name.
8760
8761 * nsimage.m (ns_load_image, allocInitFromFile): Use SSDATA where
8762 appropriate.
8763 (setXBMColor): Remove unused variable len.
8764 (setPixmapData): Put () around assignment in loop statement.
8765
8766 * nsfont.m (ns_get_family, ns_lang_to_script, ns_otf_to_script)
8767 (ns_registry_to_script, ns_get_req_script, nsfont_open): Use SSDATA
8768 where appropriate.
8769 (ns_get_covering_families, ns_findfonts, nsfont_list_family): Put ()
8770 around assignment in loop statement.
8771 (nsfont_open): Remove unused variable i.
8772 (nsfont_open): Remove unused variable len.
8773 (nsfont_draw): Remove unused variable cs.
8774
8775 * nsfns.m (x_set_icon_name, ns_set_name_internal)
8776 (ns_set_name_as_filename, ns_implicitly_set_icon_type)
8777 (x_set_icon_type, ns_lisp_to_cursor_type, Fns_read_file_name)
8778 (Fns_get_resource, Fns_set_resource, Fx_open_connection)
8779 (Fns_font_name, Fns_perform_service)
8780 (Fns_convert_utf8_nfd_to_nfc, ns_do_applescript)
8781 (Fns_do_applescript, Fx_show_tip): Use SSDATA where appropriate.
8782 (ns_set_name): Remove unused variable view.
8783 (x_set_menu_bar_lines): Remove unused variable olines.
8784 (x_set_tool_bar_lines): Remove unused variable root_window.
8785 (Fns_list_colors): Put () around assignment in while statement.
8786 (Fns_perform_service): Remove unused variable len.
8787 (Fns_display_usable_bounds): Remove unused variable top.
8788 (syms_of_nsfns): Remove unused variable i.
8789
8790 * nsmenu.m (ns_update_menubar): Exchange place of argument 2 and 3 to
8791 memcpy (Bug#11907).
8792
8793 2012-07-13 Kalle Kankare <kalle.kankare@iki.fi> (tiny change)
8794
8795 * image.c (Fimagemagick_types): Initialize ex with GetExceptionInfo
8796 and free it with DestroyExceptionInfo (Bug#11558).
8797
8798 2012-07-13 Juanma Barranquero <lekktu@gmail.com>
8799
8800 * s/ms-w32.h (FIRST_PTY_LETTER, HAVE_SOCKETS): Move to nt/config.nt.
8801 (HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE___BUILTIN_UNWIND_INIT):
8802 Set here, not in nt/config.nt.
8803
8804 2012-07-13 Eli Zaretskii <eliz@gnu.org>
8805
8806 * xdisp.c (move_it_in_display_line_to): On GUI terminals, allow
8807 cursor overflow into the last glyph on display line when the right
8808 fringe is off. (Bug#11832)
8809
8810 2012-07-13 Paul Eggert <eggert@cs.ucla.edu>
8811
8812 * xdisp.c (produce_special_glyphs): Now static.
8813 * dispextern.h (produce_special_glyphs): Remove decl.
8814
8815 2012-07-13 Glenn Morris <rgm@gnu.org>
8816
8817 * s/bsd-common.h, s/cygwin.h: Remove empty files.
8818 * s/freebsd.h, s/netbsd.h: Do not include bsd-common.h.
8819
8820 * s/usg5-4-common.h (USG, USG5):
8821 * s/template.h (USG5, USG, HPUX, BSD4_2, BSD_SYSTEM):
8822 * s/sol2-6.h (SOLARIS2):
8823 * s/irix6-5.h (IRIX6_5):
8824 * s/hpux10-20.h (USG, USG5, HPUX):
8825 * s/gnu-linux.h (USG, GNU_LINUX):
8826 * s/freebsd.h (BSD_SYSTEM):
8827 * s/darwin.h (BSD4_2, BSD_SYSTEM, DARWIN_OS):
8828 * s/cygwin.h (CYGWIN):
8829 * s/bsd-common.h (BSD_SYSTEM, BSD4_2):
8830 * s/aix4-2.h (USG, USG5, _AIX): Move "system type" macros to configure.
8831
8832 2012-07-13 BT Templeton <bpt@hcoop.net> (tiny change)
8833
8834 * nsfont.m (ns_charset_covers): Don't abort if no bitmap (Bug#11853).
8835
8836 2012-07-13 Glenn Morris <rgm@gnu.org>
8837
8838 * s/usg5-4-common.h (NSIG_MINIMUM): Let configure set it.
8839
8840 * s/gnu-linux.h, s/irix6-5.h: Let configure set ULIMIT_BREAK_VALUE.
8841
8842 * process.c (init_process_emacs): Replace MIN_PTY_KERNEL_VERSION.
8843 * s/darwin.h (MIN_PTY_KERNEL_VERSION): Remove single-use macro.
8844
8845 2012-07-12 Glenn Morris <rgm@gnu.org>
8846
8847 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Move to configure.
8848
8849 * process.c (init_process_emacs): Rename from init_process.
8850 The old name is also the name of a Mach system call.
8851 * lisp.h, emacs.c: Update for this name change.
8852 * nsgui.h, sysselect.h, s/darwin.h: Remove workaround that is no
8853 longer needed.
8854
8855 2012-07-12 Eli Zaretskii <eliz@gnu.org>
8856
8857 * xdisp.c (insert_left_trunc_glyphs): Fix incorrect size in
8858 memmove call that removes glyphs covered by the left truncation
8859 glyph. Improve commentary.
8860 (display_line): Fix display of continuation glyphs on GUI frames
8861 when the right fringe is turned off and variable-size fonts are
8862 used in the window. Move the code that appends a stretch glyph to
8863 produce_special_glyphs, so that it could be used for truncation
8864 and continuation glyphs alike.
8865 (produce_special_glyphs) [HAVE_WINDOW_SYSTEM]: Produce a stretch
8866 glyph of a suitably computed width, to align the special glyphs at
8867 the window margin. Code moved from display_line. (Bug#11832)
8868
8869 2012-07-12 Glenn Morris <rgm@gnu.org>
8870
8871 * s/aix4-2.h, s/hpux10-20.h: Let configure set NO_EDITRES.
8872
8873 * s/gnu-linux.h, s/hpux10-20.h:
8874 Do not unconditionally define HAVE_XRMSETDATABASE.
8875
8876 * s/gnu-linux.h (UNIX98_PTYS): Let configure set it.
8877
8878 2012-07-12 Paul Eggert <eggert@cs.ucla.edu>
8879
8880 Fix typos that broke OS X build.
8881 Reported by Randal L. Schwartz in
8882 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00225.html>.
8883 * nsterm.m (ns_timeout): Add missing local decl.
8884 (ns_get_color): snprintf -> sprintf, to fix typo.
8885
8886 2012-07-12 Glenn Morris <rgm@gnu.org>
8887
8888 * src/s/aix4-2.h, src/s/cygwin.h, src/s/darwin.h:
8889 * src/s/gnu-linux.h, src/s/hpux10-20.h, src/s/irix6-5.h:
8890 * src/s/sol2-6.h, src/s/unixware.h, src/s/usg5-4-common.h:
8891 Move PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF to configure.
8892
8893 * s/cygwin.h, s/darwin.h, s/gnu-linux.h, s/irix6-5.h:
8894 Move PTY_OPEN to configure.
8895
8896 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
8897 * s/gnu-linux.h, s/hpux10-20.h, s/irix6-5.h, s/template.h:
8898 * s/usg5-4-common.h: Move FIRST_PTY_LETTER, PTY_ITERATION to configure.
8899
8900 2012-07-12 Dmitry Antipov <dmantipov@yandex.ru>
8901
8902 Use empty_unibyte_string where applicable.
8903 * keyboard.c (parse_tool_bar_item): Use empty_unibyte_string.
8904 * lread.c (read1): Likewise.
8905 * xsettings.c (syms_of_xsettings): Likewise.
8906
8907 2012-07-12 Glenn Morris <rgm@gnu.org>
8908
8909 * s/cygwin.h (G_SLICE_ALWAYS_MALLOC):
8910 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN):
8911 * s/irix6-5.h (SETPGRP_RELEASES_CTTY, PREFER_VSUSP):
8912 * s/hpux10-20.h (RUN_TIME_REMAP):
8913 * s/bsd-common.h (TABDLY): Move to configure.
8914
8915 * s/hpux10-20.h, s/sol2-6.h: Move XOS_NEEDS_TIME_H to configure.
8916
8917 * s/bsd-common.h, s/darwin.h: Move TAB3 to configure.
8918
8919 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
8920 (BROKEN_SIGPOLL, BROKEN_GET_CURRENT_DIR_NAME): Let configure set them.
8921
8922 * s/darwin.h (NO_ABORT, NO_MATHERR): Let configure set them.
8923
8924 * s/bsd-common.h, s/cygwin.h, s/gnu-linux.h, s/irix6-5.h:
8925 * s/template.h: Move NARROWPROTO to configure.
8926
8927 2012-07-11 Glenn Morris <rgm@gnu.org>
8928
8929 * s/gnu-linux.h, s/sol2-6.h: No longer define POSIX,
8930 unused since 2011-01-17 change to systty.h.
8931
8932 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h, s/gnu-linux.h:
8933 * s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
8934 Move HAVE_PTYS and HAVE_SOCKETS to configure.
8935
8936 2012-07-11 Paul Eggert <eggert@cs.ucla.edu>
8937
8938 * s/sol2-6.h (HAVE_LIBKSTAT): Remove. (Bug#11914)
8939
8940 2012-07-11 Glenn Morris <rgm@gnu.org>
8941
8942 * s/darwin.h, s/gnu-linux.h, s/template.h:
8943 Move INTERRUPT_INPUT to configure.
8944
8945 2012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
8946
8947 Minor adjustments to interning code.
8948 * lisp.h (intern, intern_c_string): Redefine as static inline
8949 wrappers for intern_1 and intern_c_string_1, respectively.
8950 (intern_1, intern_c_string_1): Rename prototypes.
8951 * lread.c (intern_1, intern_c_string_1, oblookup):
8952 Simplify Vobarray checking.
8953 * font.c (font_intern_prop): Likewise. Adjust comment.
8954 * w32font.c (intern_font_name): Likewise.
8955
8956 2012-07-11 Andreas Schwab <schwab@linux-m68k.org>
8957
8958 * gnutls.c (Fgnutls_boot): Properly parse :keylist argument.
8959
8960 * coding.c (Fdefine_coding_system_internal): Use XCAR/XCDR instead
8961 of Fcar/Fcdr if possible.
8962 * font.c (check_otf_features): Likewise.
8963 * fontset.c (Fnew_fontset): Likewise.
8964 * gnutls.c (Fgnutls_boot): Likewise.
8965 * minibuf.c (read_minibuf): Likewise.
8966 * msdos.c (IT_set_frame_parameters): Likewise.
8967 * xmenu.c (Fx_popup_dialog): Likewise.
8968 * w32menu.c (Fx_popup_dialog): Likewise.
8969
8970 2012-07-11 Glenn Morris <rgm@gnu.org>
8971
8972 * s/bsd-common.h, s/cygwin.h: No need to undefine INTERRUPT_INPUT,
8973 since nothing has defined it on these platforms.
8974
8975 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/gnu-linux.h:
8976 * s/irix6-5.h: Move SIGNALS_VIA_CHARACTERS to configure.
8977
8978 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
8979 * s/gnu-linux.h, s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
8980 Move CLASH_DETECTION to configure.
8981
8982 * s/gnu.h: Remove file, which is now empty.
8983
8984 * s/gnu.h, s/gnu-linux.h:
8985 Move GNU_LIBRARY_PENDING_OUTPUT_COUNT to configure.
8986
8987 2012-07-11 John Wiegley <johnw@newartisans.com>
8988
8989 * alloc.c (mark_memory): Guard the "no_address_safety_analysis"
8990 function attribute, so we only use it if it exists in the
8991 compiler.
8992
8993 2012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
8994
8995 Avoid call to strlen in fast_c_string_match_ignore_case.
8996 * search.c (fast_c_string_match_ignore_case): Change to use
8997 length argument. Adjust users accordingly.
8998 * lisp.h (fast_c_string_match_ignore_case): Adjust prototype.
8999
9000 2012-07-11 Paul Eggert <eggert@cs.ucla.edu>
9001
9002 Assume mkdir, rmdir.
9003 * sysdep.c (mkdir) [!HAVE_MKDIR]: Remove.
9004 * sysdep.c (rmdir) [!HAVE_RMDIR]: Remove.
9005
9006 Assume rename.
9007 * sysdep.c (rename) [!HAVE_RENAME]: Remove.
9008
9009 Assume perror.
9010 * s/hpux10-20.h (HAVE_PERROR): Remove.
9011 * sysdep.c (perror) [HPUX && !HAVE_PERROR]:
9012 Remove dummy definition, as this problem was obsolete long ago.
9013
9014 Assume strerror.
9015 * sysdep.c (strerror) [!HAVE_STRERROR && !WINDOWSNT]: Remove.
9016
9017 2012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
9018
9019 Avoid calls to strlen in font processing functions.
9020 * font.c (font_parse_name, font_parse_xlfd, font_parse_fcname)
9021 (font_open_by_name): Change to use length argument.
9022 Adjust users accordingly.
9023 * font.h (font_open_by_name, font_parse_xlfd, font_unparse_xlfd):
9024 Adjust prototypes.
9025 * xfont.c (xfont_decode_coding_xlfd, font_unparse_xlfd):
9026 Change to return ptrdiff_t.
9027 (xfont_list_pattern, xfont_match): Use length returned by
9028 xfont_decode_coding_xlfd.
9029 * xfns.c (x_default_font_parameter): Omit useless xstrdup.
9030
9031 2012-07-11 Glenn Morris <rgm@gnu.org>
9032
9033 * s/darwin.h, s/freebsd.h, s/netbsd.h:
9034 Move DONT_REOPEN_PTY to configure.
9035
9036 * sound.c (DEFAULT_SOUND_DEVICE) [!WINDOWSNT]:
9037 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Let configure set it.
9038
9039 2012-07-10 Paul Eggert <eggert@cs.ucla.edu>
9040
9041 Remove "#define unix" that is no longer needed (Bug#11905).
9042 * s/aix4-2.h (unix): Remove; no longer needed.
9043
9044 EMACS_TIME simplification (Bug#11875).
9045 This replaces macros (which typically do not work in GDB)
9046 with functions, typedefs and enums, making the code easier to debug.
9047 The functional style also makes code easier to read and maintain.
9048 * systime.h: Include <sys/time.h> on all hosts, not just if
9049 WINDOWSNT, since 'struct timeval' is needed in general.
9050 (EMACS_TIME): Now a typedef, not a macro.
9051 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): Now constants,
9052 not macros.
9053 (EMACS_SECS, EMACS_NSECS, EMACS_TIME_SIGN, EMACS_TIME_VALID_P)
9054 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE, EMACS_TIME_EQ)
9055 (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT)
9056 (EMACS_TIME_LE): Now functions, not macros.
9057 (EMACS_SET_SECS, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS)
9058 (EMACS_SET_USECS, EMACS_SET_SECS_USECS): Remove these macros,
9059 which are not functions. All uses rewritten to use:
9060 (make_emacs_time): New function.
9061 (EMACS_SECS_ADDR, EMACS_SET_INVALID_TIME, EMACS_GET_TIME)
9062 (EMACS_ADD_TIME, EMACS_SUB_TIME): Remove these macros, which are
9063 not functions. All uses rewritten to use the following, respectively:
9064 (emacs_secs_addr, invalid_emacs_time, get_emacs_time)
9065 (add_emacs_time, sub_emacs_time): New functions.
9066 * atimer.c: Don't include <sys/time.h>, as "systime.h" does this.
9067 * fileio.c (Fcopy_file):
9068 * xterm.c (XTflash): Get the current time closer to when it's used.
9069 * makefile.w32-in ($(BLD)/atimer.$(O)): Update dependencies.
9070
9071 * bytecode.c (targets): Suppress -Woverride-init warnings.
9072
9073 Simplify by avoiding confusing use of strncpy etc.
9074 * doc.c (Fsnarf_documentation):
9075 * fileio.c (Ffile_name_directory, Fsubstitute_in_file_name):
9076 * frame.c (Fmake_terminal_frame):
9077 * gtkutil.c (get_utf8_string):
9078 * lread.c (openp):
9079 * nsmenu.m (ns_update_menubar):
9080 * regex.c (regerror):
9081 Prefer memcpy to strncpy and strncat when either will do.
9082 * fileio.c (Fsubstitute_in_file_name):
9083 * keyboard.c (MULTI_LETTER_MOD, parse_modifiers_uncached)
9084 (menu_separator_name_p):
9085 * nsmenu.m (ns_update_menubar):
9086 Prefer memcmp to strncmp when either will do.
9087 * nsterm.m: Include <ftoastr.h>.
9088 (ns_get_color):
9089 * s/gnu-linux.h, s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF):
9090 Prefer snprintf to strncpy.
9091 * nsterm.m (ns_term_init):
9092 * widget.c (set_frame_size) [0]: Prefer xstrdup to xmalloc + strncpy.
9093 * nsterm.m (ns_term_init):
9094 Avoid the need for strncpy, by using build_string or
9095 make_unibyte_string directly. Use dtoastr, not snprintf.
9096 * process.c (Fmake_network_process): Diagnose service names that
9097 are too long, rather than silently truncating them or creating
9098 non-null-terminated names.
9099 (Fnetwork_interface_info): Likewise, for interface names.
9100 * sysdep.c (system_process_attributes) [GNU_LINUX]:
9101 Prefer sprintf to strncat.
9102 * xdisp.c (debug_method_add) [GLYPH_DEBUG]:
9103 Prefer vsnprintf to vsprintf + strncpy.
9104
9105 2012-07-10 Glenn Morris <rgm@gnu.org>
9106
9107 * dispnew.c (PENDING_OUTPUT_COUNT) [!__GNU_LIBRARY__]:
9108 Clarify fallback case.
9109
9110 2012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
9111
9112 Use XCAR and XCDR instead of Fcar and Fcdr where possible.
9113 * callint.c, coding.c, doc.c, editfns.c, eval.c, font.c, fontset.c,
9114 * frame.c, gnutls.c, minibuf.c, msdos.c, textprop.c, w32fns.c,
9115 * w32menu.c, window.c, xmenu.c: Change to use XCAR and XCDR
9116 where argument type is known to be a Lisp_Cons.
9117
9118 2012-07-10 Tom Tromey <tromey@redhat.com>
9119
9120 * bytecode.c (BYTE_CODE_THREADED): New macro.
9121 (BYTE_CODES): New macro. Replaces all old byte-code defines.
9122 (enum byte_code_op): New type.
9123 (CASE, NEXT, FIRST, CASE_DEFAULT, CASE_ABORT): New macros.
9124 (exec_byte_code): Use them. Use token threading when applicable.
9125
9126 2012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
9127
9128 Optimize pure C strings initialization.
9129 * lisp.h (make_pure_string): Fix prototype.
9130 (build_pure_c_string): New function, defined as static inline. This
9131 provides a better opportunity to optimize away calls to strlen when
9132 the function is called with compile-time constant argument.
9133 * alloc.c (make_pure_c_string): Fix comment. Change to add nchars
9134 argument, adjust users accordingly. Use build_pure_c_string where
9135 appropriate.
9136 * buffer.c, coding.c, data.c, dbusbind.c, fileio.c, fontset.c, frame.c,
9137 * keyboard.c, keymap.c, lread.c, search.c, syntax.c, w32fns.c, xdisp.c,
9138 * xfaces.c, xfns.c, xterm.c: Use build_pure_c_string where appropriate.
9139
9140 2012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
9141
9142 Avoid calls to strlen in miscellaneous functions.
9143 * buffer.c (init_buffer): Use precalculated len, adjust if needed.
9144 * font.c (Ffont_xlfd_name): Likewise. Change to call make_string.
9145 * lread.c (openp): Likewise.
9146
9147 2012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
9148
9149 Avoid calls to strlen in path processing functions.
9150 * fileio.c (file_name_as_directory): Add comment. Change to add
9151 srclen argument and return the length of result. Adjust users
9152 accordingly.
9153 (directory_file_name): Fix comment. Change to add srclen argument,
9154 swap 1st and 2nd arguments to obey the common convention.
9155 Adjust users accordingly.
9156 * filelock.c (fill_in_lock_file_name): Avoid calls to strlen.
9157
9158 2012-07-10 Glenn Morris <rgm@gnu.org>
9159
9160 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/netbsd.h, s/unixware.h:
9161 Move PENDING_OUTPUT_COUNT definition to configure.
9162
9163 * s/irix6-5.h (DATA_START, DATA_SEG_BITS):
9164 * s/hpux10-20.h (DATA_SEG_BITS, DATA_START):
9165 * s/gnu.h (DATA_START): Move definitions to configure.
9166
9167 * s/irix6-5.h (SETUP_SLAVE_PTY, PTY_NAME_SPRINTF): Drop ifdef guards.
9168 We include usg5-4-common.h, which defines them both.
9169
9170 * s/gnu.h: Don't include fcntl.h (every file in Emacs that uses
9171 O_RDONLY already includes it).
9172
9173 Stop ns builds setting the EMACSLOADPATH environment variable.
9174 * nsterm.m (ns_load_path): Rename from ns_init_paths.
9175 Now it does not set EMACSLOADPATH, just returns the load-path string.
9176 * nsterm.h: Update accordingly.
9177 * lread.c [HAVE_NS]: Include nsterm.h.
9178 (init_lread) [HAVE_NS]: Use ns_load_path.
9179 * emacs.c (main) [HAVE_NS]: No longer call ns_init_paths.
9180
9181 2012-07-09 Glenn Morris <rgm@gnu.org>
9182
9183 * s/gnu.h (SIGNALS_VIA_CHARACTERS): No need to define it here,
9184 since the included bsd-common.h does so.
9185
9186 Stop ns builds setting the EMACSPATH environment variable.
9187 * nsterm.m (ns_exec_path): New function, split from ns_init_paths.
9188 (ns_init_paths): Do not set EMACSPATH.
9189 * nsterm.h (ns_exec_path): Add it.
9190 * callproc.c (init_callproc_1, init_callproc) [HAVE_NS]:
9191 Use ns_exec_path.
9192
9193 * nsterm.m, nsterm.h (ns_etc_directory): Fix type, empty return.
9194
9195 2012-07-09 Paul Eggert <eggert@cs.ucla.edu>
9196
9197 * process.c (wait_reading_process_output): 'waitchannels' was unset
9198 when read_kbd || !NILP (wait_for_cell); fix this.
9199
9200 Add GCC-style 'const' attribute to functions that can use it.
9201 * character.h (char_resolve_modifier_mask):
9202 * keyboard.h (make_ctrl_char):
9203 * lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe)
9204 (init_character_once, next_almost_prime, init_fns, init_image)
9205 (flush_pending_output, init_sound):
9206 * mem-limits.h (start_of_data):
9207 * menu.h (finish_menu_items):
9208 Add ATTRIBUTE_CONST.
9209 * emacs.c (DEFINE_DUMMY_FUNCTION):
9210 Declare the dummy function with ATTRIBUTE_CONST.
9211 * lisp.h (Fbyteorder, Fmax_char, Fidentity):
9212 Add decls with ATTRIBUTE_CONST.
9213
9214 Minor improvements to make_formatted_string.
9215 * alloc.c (make_formatted_string): Prefer int to ptrdiff_t
9216 where int is good enough, as vsprintf returns an int.
9217 * lisp.h (make_formatted_string): Add ATTRIBUTE_FORMAT_PRINTF.
9218
9219 2012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
9220
9221 Use make_formatted_string to avoid double length calculation.
9222 * lisp.h (make_formatted_string): New prototype.
9223 * alloc.c (make_formatted_string): New function.
9224 * buffer.c (Fgenerate_new_buffer_name): Use it.
9225 * dbusbind.c (syms_of_dbusbind): Likewise.
9226 * editfns.c (Fcurrent_time_zone): Likewise.
9227 * filelock.c (get_boot_time): Likewise.
9228 * frame.c (make_terminal_frame, set_term_frame_name)
9229 (x_report_frame_params): Likewise.
9230 * image.c (gs_load): Likewise.
9231 * minibuf.c (get_minibuffer): Likewise.
9232 * msdos.c (dos_set_window_size): Likewise.
9233 * process.c (make_process): Likewise.
9234 * xdisp.c (ensure_echo_area_buffers): Likewise.
9235 * xsettings.c (apply_xft_settings): Likewise.
9236
9237 2012-07-09 Glenn Morris <rgm@gnu.org>
9238
9239 Stop ns builds polluting the environment with EMACSDATA, EMACSDOC.
9240 * nsterm.m (ns_etc_directory): New function, split from ns_init_paths.
9241 (ns_init_paths): Do not set EMACSDATA, EMACSDOC.
9242 * nsterm.h (ns_etc_directory): Add it.
9243 * callproc.c [HAVE_NS]: Include nsterm.h.
9244 (init_callproc_1, init_callproc) [HAVE_NS]: Use ns_etc_directory.
9245
9246 2012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
9247
9248 Move marker debugging code under MARKER_DEBUG.
9249 * marker.c (MARKER_DEBUG): Move marker debugging code under
9250 #ifdef MARKER_DEBUG because byte_char_debug_check is too slow
9251 for bootstrap with --enable-checking (~3x slowdown reported
9252 by Juanma Barranquero <lekktu@gmail.com>).
9253 (verify_bytepos): Move under #ifdef MARKER_DEBUG.
9254
9255 2012-07-08 Paul Eggert <eggert@cs.ucla.edu>
9256
9257 * systime.h (EMACS_SUB_TIME): Clarify behavior with unsigned time_t.
9258 See <http://bugs.gnu.org/11825#29>.
9259
9260 2012-07-08 Eli Zaretskii <eliz@gnu.org>
9261
9262 * xdisp.c (fill_glyphless_glyph_string): If the face of the glyph
9263 has no font, use the frame's font. (Bug#11813)
9264 (display_line): Add commentary about displaying truncation glyphs
9265 on GUI frames.
9266 (produce_special_glyphs): Move here from term.c.
9267
9268 * term.c (produce_special_glyphs): Move to xdisp.c.
9269
9270 * dispextern.h (produce_special_glyphs): Move prototype to xdisp.c
9271 section.
9272
9273 2012-07-07 Andreas Schwab <schwab@linux-m68k.org>
9274
9275 * xdisp.c (display_line): Avoid warning about implicit declaration
9276 of FRAME_FONT.
9277
9278 * frame.c (get_frame_param): Define only if HAVE_WINDOW_SYSTEM.
9279
9280 * lisp.h: Remove empty conditional.
9281
9282 2012-07-07 Paul Eggert <eggert@cs.ucla.edu>
9283
9284 * lread.c (load_path_check): Now static.
9285
9286 Fix some minor --with-ns problems found by static checking.
9287 * frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]:
9288 (x_set_font) [!HAVE_X_WINDOWS]:
9289 * image.c (xpm_load_image) [HAVE_NS]:
9290 (x_to_xcolors) [!HAVE_X_WINDOWS && !HAVE_NTGUI]:
9291 (x_disable_image) [!HAVE_NS && !HAVE_NTGUI]:
9292 Remove unused local.
9293 (Fx_parse_geometry) [HAVE_NS]: Don't return garbage.
9294 (xpm_load_image) [HAVE_NS && !HAVE_XPM]: Remove unused label.
9295 * image.c (x_create_bitmap_from_file) [HAVE_NS]:
9296 (xpm_load_image, xpm_load) [HAVE_NS && !HAVE_XPM]:
9297 * nsselect.m (symbol_to_nsstring, ns_string_to_pasteboard_internal):
9298 * xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]:
9299 Fix pointer signedness problem.
9300 * xfaces.c (FRAME_X_FONT_TABLE):
9301 * xterm.h (FRAME_X_FONT_TABLE): Remove unused, incompatible macros.
9302
9303 2012-07-07 Glenn Morris <rgm@gnu.org>
9304
9305 * lread.c (load_path_check): New function, split from init_lread.
9306 (init_lread): Reorganize. Motivation:
9307 If EMACSLOADPATH is set, check/warn about that rather than the
9308 defaults, which we are not going to use. Hence we can remove
9309 the turn_off_warning and WINDOWSNT || HAVE_NS tests.
9310 Don't warn if site-lisp directories are missing.
9311 If not installed, start from a blank load-path, since
9312 PATH_LOADSEARCH refers to the eventual installation directories.
9313
9314 2012-07-07 Eli Zaretskii <eliz@gnu.org>
9315
9316 Support truncation and continuation glyphs on GUI frames, when
9317 fringes are disabled. (Bug#11832)
9318 * xdisp.c (init_iterator): Get dimensions of truncation and
9319 continuation glyphs even if on GUI frames.
9320 Adjust it->last_visible_x on GUI frames when the left or right fringes,
9321 or both, are absent.
9322 (start_display, move_it_in_display_line_to): Handle the case of a
9323 GUI frame without a fringe to display continuation or truncation
9324 glyphs.
9325 (insert_left_trunc_glyphs): Support GUI frames: make sure
9326 truncation glyphs overwrite enough glyphs from the current line to
9327 have sufficient space in pixels.
9328 (display_line): Support truncation and continuation glyphs on GUI
9329 frames. If some spare pixels are left on the line after inserting
9330 the truncation glyphs, fill that space with a stretch glyph of a
9331 suitably computed width.
9332
9333 * term.c (produce_special_glyphs): Call PRODUCE_GLYPHS, not
9334 produce_glyphs, to support GUI sessions.
9335
9336 2012-07-07 Paul Eggert <eggert@cs.ucla.edu>
9337
9338 * sysdep.c (ULLONG_MAX): Define if not already defined (Bug#11781).
9339
9340 * sysdep.c (list_system_processes): Port to NetBSD-current (Bug#11797).
9341
9342 Do not require float-time's arg to fit in time_t (Bug#11825).
9343 This works better on hosts where time_t is unsigned, and where
9344 float-time is applied to the (negative) difference between two times.
9345 * editfns.c (decode_time_components): Last arg is now double *,
9346 not int *, and means to store all the result as a double, without
9347 worrying about whether the seconds part fits in time_t.
9348 All callers changed.
9349 (lisp_time_argument): Remove last int * arg, as it's no longer needed.
9350 All callers changed.
9351 (Ffloat_time): Do not fail merely because the specified time falls
9352 outside of time_t range.
9353
9354 2012-07-07 Glenn Morris <rgm@gnu.org>
9355
9356 * s/darwin.h (HAVE_RES_INIT, HAVE_LIBRESOLV):
9357 * s/hpux10-20.h (HAVE_RINT, HAVE_RANDOM):
9358 * s/unixware.h (HAVE_GETWD): Move undefs to configure (effectively).
9359
9360 2012-07-07 Juanma Barranquero <lekktu@gmail.com>
9361
9362 * makefile.w32-in (DISPEXTERN_H, $(BLD)/regex.$(O)):
9363 Update dependencies.
9364
9365 * s/ms-w32.h [_MSC_VER]: Remove strcasecmp, strncasecmp.
9366
9367 2012-07-06 Paul Eggert <eggert@cs.ucla.edu>
9368
9369 Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786).
9370 * dispextern.h, nsfns.m, nsterm.m: Include <c-strcase.h>.
9371 * dispextern.h (xstrcasecmp): Rewrite using c_strcasecmp.
9372 * nsfns.m (x_get_string_resource): Use c_strncasecmp, not strncasecmp.
9373 * nsterm.m (ns_default): Use c_strcasecmp, not strcasecmp.
9374 * xfaces.c (xstrcasecmp) [!HAVE_STRCASECMP]: Remove.
9375
9376 * xfont.c (compare_font_names): Redo to omit the need for casts.
9377
9378 2012-07-06 Andreas Schwab <schwab@linux-m68k.org>
9379
9380 * xfns.c (Fx_change_window_property): Doc fix.
9381 * w32fns.c (Fx_change_window_property): Doc fix.
9382
9383 * w32fns.c (Fx_window_property): Accept the same arguments as the
9384 X Windows version. Doc fix.
9385 * xfns.c (Fx_window_property): Doc fix. (Bug#11870)
9386
9387 2012-07-06 Juanma Barranquero <lekktu@gmail.com>
9388 Eli Zaretskii <eliz@gnu.org>
9389
9390 * s/ms-w32.h: Settings not specific to Windows moved to nt/config.nt.
9391 Windows-specific code from nt/config.nt moved here.
9392 Obsolete settings removed.
9393
9394 2012-07-06 Paul Eggert <eggert@cs.ucla.edu>
9395
9396 * process.c: Avoid unnecessary calls to gettime.
9397 (wait_reading_process_output): Don't get the time of day
9398 when gobbling data immediately and not waiting, as there's no need
9399 for it in that case. This removes a FIXME.
9400
9401 2012-07-06 Jan Djärv <jan.h.d@swipnet.se>
9402
9403 * gtkutil.c (xg_event_is_for_scrollbar): Assign gwin when HAVE_GTK3
9404 is defined (Bug#11768).
9405
9406 2012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
9407
9408 Fix marker debugging code.
9409 * marker.c (byte_char_debug_check): Do not perform the check
9410 if buffer is not multibyte.
9411 (buf_charpos_to_bytepos, buf_bytepos_to_charpos):
9412 Call byte_char_debug_check with correct arguments.
9413
9414 2012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
9415
9416 Compile marker debugging code only if ENABLE_CHECKING is defined.
9417 * marker.c (byte_char_debug_check, count_markers):
9418 Use only if ENABLE_CHECKING is defined.
9419 (byte_debug_flag): Remove.
9420 (CONSIDER, buf_charpos_to_bytepos, buf_bytepos_to_charpos):
9421 Always call byte_char_debug_check if ENABLE_CHECKING is defined.
9422
9423 2012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
9424
9425 Avoid code repetition in marker-related functions.
9426 * marker.c (attach_marker): New function.
9427 (Fset_marker, set_marker_restricted, set_marker_both)
9428 (set_marker_restricted_both): Use it.
9429 (Fset_marker, set_marker_restricted, Fbuffer_has_markers_at):
9430 Consistently rename charno to charpos.
9431 (marker_position): Add eassert.
9432 (marker_byte_position): Convert to eassert.
9433
9434 2012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
9435
9436 Simplify list operations in unchain_overlay and unchain_marker.
9437 * buffer.c (unchain_overlay): Simplify. Add comment.
9438 * marker.c (unchain_marker): Simplify. Fix comments.
9439
9440 2012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
9441
9442 Introduce fast path for the widely used marker operation.
9443 * alloc.c (build_marker): New function.
9444 * lisp.h (build_marker): New prototype.
9445 * buffer.c (clone_per_buffer_values, Fmake_indirect_buffer): Use it.
9446 * composite.c (autocmp_chars): Likewise.
9447 * editfns.c (buildmark): Remove.
9448 (Fpoint_marker, Fpoint_min_marker, Fpoint_max_marker)
9449 (save_restriction_save): Use build_marker.
9450 * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise.
9451 * window.c (save_window_save): Likewise.
9452
9453 2012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
9454
9455 Do not use Fdelete_overlay in delete_all_overlays
9456 to avoid redundant calls to unchain_overlay.
9457 * buffer.c (drop_overlay): New function.
9458 (delete_all_overlays, Fdelete_overlay): Use it.
9459 * minibuf.c (get_minibuffer): Fix comment.
9460
9461 2012-07-06 Paul Eggert <eggert@cs.ucla.edu>
9462
9463 Port to OpenBSD 5.1 amd64.
9464 * sysdep.c [BSD_SYSTEM]: Include <sys/param.h> before <sys/sysctl.h>.
9465 This is needed for OpenBSD, and should be harmless on all BSD systems.
9466 Also, include <sys/sysctl.h>, as it should be available on all
9467 BSD_SYSTEM hosts given that we're already calling sysctl in that case.
9468 (list_system_processes) [__OpenBSD__]: Use DARWIN_OS style mib, but
9469 use p_pid member, not kp_proc.pid.
9470
9471 2012-07-06 Glenn Morris <rgm@gnu.org>
9472
9473 * Makefile.in (emacs$(EXEEXT)): Don't check for load-path shadows.
9474
9475 2012-07-05 Paul Eggert <eggert@cs.ucla.edu>
9476
9477 More xmalloc and related cleanup.
9478 * alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c:
9479 * callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c:
9480 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c:
9481 * font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c:
9482 * gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c:
9483 * nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c:
9484 * regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c:
9485 * sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c:
9486 * xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c:
9487 * xterm.c:
9488 Omit needless casts involving void * pointers and allocation.
9489 Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))",
9490 as the former is more robust if P's type is changed.
9491 Prefer xzalloc to xmalloc + memset 0.
9492 Simplify malloc-or-realloc to realloc.
9493 Don't worry about xmalloc returning a null pointer.
9494 Prefer xstrdup to xmalloc + strcpy.
9495 * editfns.c (Fmessage_box): Grow message_text by at least 80 when
9496 growing it.
9497 * keyboard.c (apply_modifiers_uncached): Prefer local array to
9498 alloca of a constant.
9499
9500 2012-07-05 Eli Zaretskii <eliz@gnu.org>
9501
9502 * xdisp.c (display_line): Fix horizontal pixel coordinates when
9503 hscroll is larger than the line width. Fixes long and futile
9504 looping inside extend_face_to_end_of_line (on a TTY) producing
9505 glyphs that are not needed and thrown away.
9506
9507 2012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
9508
9509 * marker.c (set_marker_restricted_both): Simplify by using
9510 clip_to_bounds.
9511
9512 2012-07-05 Paul Eggert <eggert@cs.ucla.edu>
9513
9514 * editfns.c (region_limit): Simplify by using clip_to_bounds.
9515
9516 2012-07-05 Jan Djärv <jan.h.d@swipnet.se>
9517
9518 * gtkutil.c (gtk_scrollbar_new, gtk_box_new): Define when HAVE_GTK3 is
9519 not defined (Bug#11768).
9520 (xg_create_frame_widgets): Use gtk_plug_new_for_display (Bug#11768).
9521 (xg_create_frame_widgets, create_dialog, xg_get_file_with_chooser)
9522 (make_widget_for_menu_item, xg_make_tool_item): Use gtk_box_new
9523 followed by gtk_box_set_homogeneous (Bug#11768).
9524 (xg_update_menu_item): Use GTK_IS_BOX (Bug#11768).
9525 (update_theme_scrollbar_width, xg_create_scroll_bar):
9526 Use gtk_scrollbar_new (Bug#11768).
9527 (xg_event_is_for_scrollbar): Use Gdk Device functions for HAVE_GTK3.
9528 (is_box_type): New function (Bug#11768).
9529 (xg_tool_item_stale_p): Call is_box_type.
9530 (xg_initialize): Get settings by calling gtk_settings_get_for_screen
9531 with default display (Bug#11768).
9532
9533 2012-07-05 Eli Zaretskii <eliz@gnu.org>
9534
9535 * xdisp.c (window_hscroll_limited): New function.
9536 (pos_visible_p, init_iterator): Use it to avoid overflow of pixel
9537 coordinates when window's hscroll is set to insanely large
9538 values. (Bug#11857)
9539
9540 2012-07-05 Juanma Barranquero <lekktu@gmail.com>
9541
9542 * makefile.w32-in ($(BLD)/dired.$(O), $(BLD)/fileio.$(O)): Fix typo.
9543 ($(BLD)/terminal.$(O), $(BLD)/syntax.$(O)): Update dependencies.
9544
9545 2012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
9546
9547 Cleanup xmalloc.
9548 * lisp.h (xzalloc): New prototype. Omit needless casts.
9549 * alloc.c (xzalloc): New function. Omit needless casts.
9550 * charset.c: Omit needless casts. Convert all calls to
9551 xmalloc with following memset to xzalloc.
9552 * dispnew.c: Likewise.
9553 * fringe.c: Likewise.
9554 * image.c: Likewise.
9555 * sound.c: Likewise.
9556 * term.c: Likewise.
9557 * w32fns.c: Likewise.
9558 * w32font.c: Likewise.
9559 * w32term.c: Likewise.
9560 * xfaces.c: Likewise.
9561 * xfns.c: Likewise.
9562 * xterm.c: Likewise.
9563 * atimer.c: Omit needless casts.
9564 * buffer.c: Likewise.
9565 * callproc.c: Likewise.
9566 * ccl.c: Likewise.
9567 * coding.c: Likewise.
9568 * composite.c: Likewise.
9569 * doc.c: Likewise.
9570 * doprnt.c: Likewise.
9571 * editfns.c: Likewise.
9572 * emacs.c: Likewise.
9573 * eval.c: Likewise.
9574 * filelock.c: Likewise.
9575 * fns.c: Likewise.
9576 * gtkutil.c: Likewise.
9577 * keyboard.c: Likewise.
9578 * lisp.h: Likewise.
9579 * lread.c: Likewise.
9580 * minibuf.c: Likewise.
9581 * msdos.c: Likewise.
9582 * print.c: Likewise.
9583 * process.c: Likewise.
9584 * region-cache.c: Likewise.
9585 * search.c: Likewise.
9586 * sysdep.c: Likewise.
9587 * termcap.c: Likewise.
9588 * terminal.c: Likewise.
9589 * tparam.c: Likewise.
9590 * w16select.c: Likewise.
9591 * w32.c: Likewise.
9592 * w32reg.c: Likewise.
9593 * w32select.c: Likewise.
9594 * w32uniscribe.c: Likewise.
9595 * widget.c: Likewise.
9596 * xdisp.c: Likewise.
9597 * xmenu.c: Likewise.
9598 * xrdb.c: Likewise.
9599 * xselect.c: Likewise.
9600
9601 2012-07-05 Paul Eggert <eggert@cs.ucla.edu>
9602
9603 * fileio.c (time_error_value): Check the right error number.
9604 Problem reported by Troels Nielsen in
9605 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00095.html>.
9606
9607 2012-07-04 Paul Eggert <eggert@cs.ucla.edu>
9608
9609 * window.c (set_window_hscroll): Revert the 100000 hscroll limit.
9610 This should be fixed in a better way; see Eli Zaretskii in
9611 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00088.html>.
9612 (HSCROLL_MAX): Remove; this is now internal to set_window_hscroll.
9613
9614 * fileio.c (time_error_value): Rename from special_mtime.
9615 The old name's problems were noted by Eli Zaretskii in
9616 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00087.html>.
9617
9618 * emacs.c (gdb_pvec_type): Change it back to enum pvec_type.
9619 This variable's comment says Emacs needs at least one GDB-visible
9620 symbol of type enum pvec_type, to work around GDB problems.
9621 The symbol's value doesn't matter.
9622
9623 * alloc.c (PSEUDOVECTOR_NBYTES): Remove stray ';'
9624 that causes compilation to fail on pre-C99 compilers.
9625
9626 2012-07-04 Juanma Barranquero <lekktu@gmail.com>
9627
9628 * s/ms-w32.h (LISP_FLOAT_TYPE, HAVE_MEMCMP, HAVE_MEMCPY)
9629 (HAVE_MEMMOVE, HAVE_MEMSET): Don't set, obsolete.
9630
9631 2012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
9632
9633 * buffer.c (init_buffer_once): Fix initialization of
9634 headers for buffer_defaults and buffer_local_symbols.
9635 Reported by Juanma Barranquero <lekktu@gmail.com>.
9636
9637 2012-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
9638
9639 Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
9640 * lisp.h (enum pvec_type): Use fewer bits.
9641 (PSEUDOVECTOR_SIZE_BITS): New constant.
9642 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it.
9643 (XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to
9644 change in pvec_type.
9645 (PSEUDOVECTOR_TYPEP): New macro.
9646 (TYPED_PSEUDOVECTORP): Use it.
9647 * fns.c (internal_equal): Adapt code to extract pvectype.
9648 * emacs.c (gdb_pvec_type): Update type.
9649 * alloc.c (PSEUDOVECTOR_NBYTES): New macro.
9650 (VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK).
9651 (VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE).
9652 (SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE.
9653 (sweep_vectors): Use it. Use local var `total_bytes' instead of
9654 abusing vector->header.next.nbytes.
9655 (live_vector_p): Use PVEC_TYPE.
9656 (mark_object): Adapt code to extract pvectype. Use switch.
9657
9658 2012-07-04 Paul Eggert <eggert@cs.ucla.edu>
9659
9660 * doprnt.c (doprnt): Don't assume string length fits in 'int'.
9661 Tighten new eassert a bit.
9662
9663 2012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
9664
9665 Fix compilation with --enable-gcc-warnings and -O1
9666 optimization level.
9667 * doprnt.c (doprnt): Change type of tem to int, initialize
9668 to avoid compiler warning. Add eassert.
9669 * search.c (simple_search): Initialize match_byte to avoid
9670 compiler warning. Add eassert.
9671
9672 2012-07-04 Paul Eggert <eggert@cs.ucla.edu>
9673
9674 Avoid weird behavior with large horizontal scrolls.
9675 Without this change, for example, large hscroll values would
9676 mess up Emacs's display on Fedora 15 x86, presumably due to
9677 overflows in int calculations in the display code.
9678 Also, if buffers had long lines, Emacs would freeze.
9679 * window.c (HSCROLL_MAX): Reduce to 100000, and make it visible to GDB.
9680 (set_window_hscroll): New function, containing the old guts of
9681 Fset_window_hscroll. Return the clipped value.
9682 (Fset_window_hscroll, Fscroll_left, Fscroll_right): Use it.
9683 This avoids the need to check against PTRDIFF_MAX.
9684
9685 * buffer.c (Fgenerate_new_buffer_name): Fix sprintf format mismatch.
9686
9687 2012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
9688
9689 * buffer.c (Fgenerate_new_buffer_name): Fix type mismatch.
9690
9691 2012-07-04 Paul Eggert <eggert@cs.ucla.edu>
9692
9693 * regex.c: Suppress GCC warning on RHEL 6. (Bug#11207)
9694 Conditionalize the pragmas on GCC 4.5 or later, not GCC 4.3 or later,
9695 since GCC 4.4.6 issues a bogus warning for them.
9696
9697 Fix bugs in file timestamp newness comparisons.
9698 * fileio.c (Ffile_newer_than_file_p):
9699 * lread.c (Fload): Use full timestamp resolution of files,
9700 not just the 1-second resolution, so that files that are only
9701 slightly newer still count as newer.
9702 * fileio.c (Ffile_newer_than_file_p): Don't assume file
9703 timestamps fit in 'int'; this fixes a Y2038 bug on most hosts.
9704
9705 2012-07-03 Paul Eggert <eggert@cs.ucla.edu>
9706
9707 * fileio.c: Improve handling of file time marker. (Bug#11852)
9708 (special_mtime): New function.
9709 (Finsert_file_contents, Fverify_visited_file_modtime):
9710 Use it to set special mtime values consistently.
9711
9712 2012-07-03 Andreas Schwab <schwab@linux-m68k.org>
9713
9714 * fileio.c (Finsert_file_contents): Properly handle st_mtime
9715 marker for non-existing file. (Bug#11852)
9716
9717 2012-07-03 Glenn Morris <rgm@gnu.org>
9718
9719 * lisp.h (Fread_file_name): Restore EXFUN (it's not a normal DEFUN
9720 and did not make it into globals.h).
9721
9722 2012-07-03 Tom Tromey <tromey@redhat.com>
9723
9724 * window.c (Fset_window_margins, Fset_window_fringes)
9725 (Fset_window_scroll_bars, Fset_window_vscroll): No longer static.
9726 * textprop.c (Fprevious_property_change): No longer static.
9727 * syntax.c (Fsyntax_table_p): No longer static.
9728 * process.c (Fget_process, Fprocess_datagram_address): No longer
9729 static.
9730 * keymap.c (Flookup_key, Fcopy_keymap): No longer static.
9731 * keyboard.c (Fcommand_execute): No longer static.
9732 Remove EXFUN.
9733 * insdel.c (Fcombine_after_change_execute): No longer static.
9734 * image.c (Finit_image_library): No longer static.
9735 * fileio.c (Fmake_symbolic_link): No longer static.
9736 * eval.c (Ffetch_bytecode): No longer static.
9737 * editfns.c (Fuser_full_name): No longer static.
9738 * doc.c (Fdocumentation_property, Fsnarf_documentation):
9739 No longer static.
9740 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer
9741 static.
9742 * dired.c (Ffile_attributes): No longer static.
9743 * composite.c (Fcomposition_get_gstring): No longer static.
9744 * callproc.c (Fgetenv_internal): No longer static.
9745
9746 * ccl.h: Remove EXFUNs.
9747 * buffer.h: Remove EXFUNs.
9748 * dispextern.h: Remove EXFUNs.
9749 * intervals.h: Remove EXFUNs.
9750 * fontset.h: Remove EXFUN.
9751 * font.h: Remove EXFUNs.
9752 * dosfns.c (system_process_attributes): Remove EXFUN.
9753 * keymap.h: Remove EXFUNs.
9754 * lisp.h: Remove EXFUNs.
9755 * w32term.h: Remove EXFUNs.
9756 * window.h: Remove EXFUNs.
9757 * xsettings.h: Remove EXFUN.
9758 * xterm.h: Remove EXFUN.
9759
9760 2012-07-03 Glenn Morris <rgm@gnu.org>
9761
9762 * lisp.h (Frandom): Make it visible to C.
9763 * buffer.c (Fgenerate_new_buffer_name): Speed up finding a new
9764 buffer for invisible buffers. (Bug#1229)
9765
9766 2012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
9767
9768 Fix block vector allocation code to allow VECTOR_BLOCK_SIZE
9769 values which aren't power of 2.
9770 * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro.
9771 Verify its value and the value of VECTOR_BLOCK_SIZE. Adjust users
9772 accordingly.
9773
9774 2012-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
9775
9776 * lisp.h (Lisp_Misc, Lisp_Fwd): Move around to group better.
9777
9778 * alloc.c (mark_object): Revert part of last patch to use `switch'.
9779
9780 2012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
9781
9782 * alloc.c (allocate_vector_block): Remove redundant
9783 calls to mallopt if DOUG_LEA_MALLOC is defined.
9784 (allocate_vectorlike): If DOUG_LEA_MALLOC is defined,
9785 avoid calls to mallopt if zero_vector is returned.
9786
9787 2012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
9788
9789 * alloc.c (check_string_bytes): If GC_CHECK_STRING_BYTES
9790 is enabled, avoid dereferencing NULL current_sblock if
9791 running undumped.
9792
9793 2012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
9794
9795 Cleanup basic buffer management.
9796 * buffer.h (struct buffer): Change layout to use generic vector
9797 marking code. Fix some comments. Change type of 'clip_changed'
9798 to bitfield. Remove unused #ifndef old.
9799 (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): Remove.
9800 (GET_OVERLAYS_AT): Fix indentation.
9801 (for_each_per_buffer_object_at): New macro.
9802 * buffer.c (clone_per_buffer_values, reset_buffer_local_variables)
9803 (Fbuffer_local_variables): Use it.
9804 (init_buffer_once, syms_of_buffer): Remove unused #ifndef old.
9805 * alloc.c (allocate_buffer): Adjust to match new layout of
9806 struct buffer. Fix comment.
9807 (mark_overlay): New function.
9808 (mark_buffer): Use it. Use mark_vectorlike to mark normal
9809 Lisp area of struct buffer.
9810 (mark_object): Use it. Adjust marking of misc objects
9811 and related comments.
9812
9813 2012-07-02 Paul Eggert <eggert@cs.ucla.edu>
9814
9815 * alloc.c (mark_object): Remove "#ifdef GC_CHECK_MARKED_OBJECTS"
9816 wrapper that is not needed because the wrapped code is a no-op (zero
9817 machine instructions) when GC_CHECK_MARKED_OBJECTS is not defined.
9818 This avoids a -Wunused-macros diagnostic with GCC 4.7.1 x86-64.
9819
9820 2012-07-02 Dmitry Antipov <dmantipov@yandex.ru>
9821
9822 * alloc.c (mark_buffer): Simplify. Remove prototype.
9823 (mark_object): Add comment. Reorganize marking of vector-like
9824 objects. Use CHECK_LIVE for all vector-like objects except buffers
9825 and subroutines when GC_CHECK_MARKED_OBJECTS is defined.
9826 Avoid redundant calls to mark_vectorlike for bool vectors.
9827
9828 2012-06-30 Glenn Morris <rgm@gnu.org>
9829
9830 * nsterm.m (ns_init_paths): Ignore site-lisp if --no-site-lisp.
9831
9832 * epaths.in (PATH_SITELOADSEARCH): New.
9833 * lread.c (init_lread): Use PATH_SITELOADSEARCH.
9834 This is rather than relying on --enable-locallisppath elements
9835 having "site-lisp" in their names. (Bug#10208#25, 11658)
9836
9837 2012-06-30 Eli Zaretskii <eliz@gnu.org>
9838
9839 * w32proc.c (sys_select): Accept and ignore one more argument.
9840
9841 * w32.c (emacs_gnutls_pull): Call select with one more argument.
9842
9843 * sysselect.h [DOS_NT]: Don't include sys/select.h.
9844 (pselect) [!MS_DOS]: Redirect to sys_select.
9845
9846 * sysdep.c: Don't include dos.h and dosfns.h.
9847
9848 * process.c (sys_select):
9849 * msdos.c (sys_select): Accept one more argument and ignore it.
9850
9851 * msdos.c (event_timestamp, sys_select): Use gnulib's gettime;
9852 adapt data types and code to that.
9853
9854 * dosfns.c:
9855 * msdos.c (gettime, settime): Define away the prototypes in dos.h,
9856 which clashes with the gnulib function of the same name.
9857
9858 2012-06-30 Andreas Schwab <schwab@linux-m68k.org>
9859
9860 * font.c (font_style_to_value, font_style_symbolic)
9861 (font_prop_validate_style): Add type checks for values in
9862 font_style_table.
9863
9864 * lisp.h (CHECK_RANGED_INTEGER): Make value to check the first
9865 argument.
9866 * character.c, charset.c, menu.c, process.c, window.c: Adjust all
9867 uses.
9868
9869 2012-06-29 Eli Zaretskii <eliz@gnu.org>
9870
9871 * xdisp.c (try_window_id): Undo last change.
9872
9873 * w32.c (getwd): Adjust commentary about startup_dir.
9874 (init_environment): Always call sys_access, even in non-MSVC
9875 builds. Don't chdir to the directory of the Emacs executable.
9876 This undoes code from 1997 which was justified by the need to
9877 "avoid conflicts when removing and renaming directories". But its
9878 downside was that every relative file name was being interpreted
9879 relative to the directory of the Emacs executable, which can never
9880 be TRT. In particular, it broke sys_access when called with
9881 relative file names.
9882 (sys_access): Map GetLastError to errno.
9883
9884 2012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
9885
9886 * window.h (struct window): Change type of 'fringes_outside_margins'
9887 to bitfield. Fix comment. Adjust users accordingly.
9888 (struct window): Change type of 'window_end_bytepos' to ptrdiff_t.
9889 Adjust comment.
9890 * xdisp.c (try_window_id): Change type of 'first_vpos' and 'vpos'
9891 to ptrdiff_t.
9892
9893 2012-06-29 Andreas Schwab <schwab@linux-m68k.org>
9894
9895 * gnutls.c (emacs_gnutls_handshake):
9896 Add QUIT to make the loop interruptible.
9897
9898 2012-06-29 Glenn Morris <rgm@gnu.org>
9899
9900 * charset.c (init_charset): Make lack of etc/charsets fatal.
9901
9902 2012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
9903
9904 * editfns.c (region_limit): Fix type mismatch.
9905
9906 2012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
9907
9908 * nsfns.m: Fix GLYPH_DEBUG usage assuming that it may be
9909 undefined. Convert from xassert to eassert.
9910 * nsmenu.m: Convert from xassert to eassert.
9911 * nsterm.m: Likewise.
9912
9913 2012-06-28 Stefan Monnier <monnier@iro.umontreal.ca>
9914
9915 * editfns.c (region_limit): Clip to narrowing (bug#11770).
9916
9917 2012-06-28 Paul Eggert <eggert@cs.ucla.edu>
9918
9919 Avoid integer overflow on scroll-left and scroll-right.
9920 * window.c (HSCROLL_MAX): New macro.
9921 (Fscroll_left, Fscroll_right): Avoid undefined behavior on integer
9922 overflow when requested scroll falls outside ptrdiff_t range.
9923
9924 2012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
9925
9926 * window.h (struct window): Change type of 'hscroll',
9927 'min_hscroll' and 'last_point' from Lisp_Object to ptrdiff_t,
9928 'last_modified' and 'last_overlay_modified' to EMACS_INT.
9929 Adjust users accordingly.
9930 * xdisp.c (try_cursor_movement): Replace type check with eassert.
9931 * window.c (Fscroll_left, Fscroll_right): Change type of 'hscroll'
9932 from EMACS_INT to ptrdiff_t.
9933 (make_window): Omit redundant initialization.
9934
9935 2012-06-28 Juanma Barranquero <lekktu@gmail.com>
9936
9937 * makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies.
9938
9939 2012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
9940
9941 * window.h (struct window): Change type of 'use_time' and
9942 'sequence_number' from Lisp_Object to int.
9943 * frame.c (make_frame): Adjust users accordingly.
9944 * print.c (print_object): Likewise.
9945 * window.c (select_window, Fwindow_use_time, make_parent_window)
9946 (make_window): Likewise.
9947
9948 2012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
9949
9950 * dispextern.h (GLYPH_DEBUG): Now defined in config.h if
9951 enabled with --enable-checking=[all,glyphs] configure option.
9952 Fix GLYPH_DEBUG usage assuming that it may be undefined,
9953 adjust comments accordingly.
9954 * dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be
9955 undefined, adjust comments accordingly.
9956 * image.c: Likewise.
9957 * scroll.c: Likewise.
9958 * w32fns.c: Likewise.
9959 * w32term.c: Likewise.
9960 * xdisp.c: Likewise.
9961 * xfaces.c: Likewise.
9962 * xfns.c: Likewise.
9963 * xterm.c: Likewise.
9964
9965 2012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
9966
9967 Generalize run-time debugging checks.
9968 * dispextern.h (XASSERTS): Remove.
9969 * fontset.c (xassert): Remove.
9970 Convert from xassert to eassert.
9971 * alloc.c: Convert from xassert to eassert.
9972 * bidi.c: Likewise.
9973 * dispnew.c: Likewise.
9974 * fns.c: Likewise.
9975 * fringe.c: Likewise.
9976 * ftfont.c: Likewise.
9977 * gtkutil.c: Likewise.
9978 * image.c: Likewise.
9979 * keyboard.c: Likewise.
9980 * menu.c: Likewise.
9981 * process.c: Likewise.
9982 * scroll.c: Likewise.
9983 * sound.c: Likewise.
9984 * term.c: Likewise.
9985 * w32console.c: Likewise.
9986 * w32fns.c: Likewise.
9987 * w32term.c: Likewise.
9988 * window.c: Likewise.
9989 * xdisp.c: Likewise.
9990 * xfaces.c: Likewise.
9991 * xfns.c: Likewise.
9992 * xselect.c: Likewise.
9993 * xterm.c: Likewise.
9994
9995 2012-06-27 Stefan Monnier <monnier@iro.umontreal.ca>
9996
9997 * fns.c (maybe_resize_hash_table): Output message when growing the
9998 purify-hashtable.
9999
10000 2012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
10001
10002 * alloc.c (allocate_string_data): Remove dead code.
10003 * xsettings.c (XSETTINGS_FONT_NAME): Move under HAVE_XFT to
10004 avoid GCC warning about unused macro.
10005
10006 2012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
10007
10008 * alloc.c (allocate_string): Omit intervals initialization.
10009 * alloc.c (make_uninit_multibyte_string): Initialize intervals
10010 as in make_pure_string and make_pure_c_string.
10011
10012 2012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
10013
10014 * alloc.c (allocate_string): Fix last change.
10015
10016 2012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
10017
10018 * alloc.c (allocate_string): Remove two redundant calls
10019 to memset, add explicit initialization where appropriate.
10020
10021 2012-06-27 Glenn Morris <rgm@gnu.org>
10022
10023 * lisp.mk (lisp): Remove paths.elc.
10024
10025 2012-06-27 Chong Yidong <cyd@gnu.org>
10026
10027 * doc.c (Fsubstitute_command_keys): Fix punctuation.
10028
10029 2012-06-26 John Wiegley <johnw@newartisans.com>
10030
10031 * unexmacosx.c (copy_data_segment): Add two section names used
10032 on Mac OS X Lion: __mod_init_func and __mod_term_func.
10033
10034 * alloc.c (mark_memory): Do not check with -faddress-sanitizer
10035 when building with Clang.
10036
10037 2012-06-26 Stefan Monnier <monnier@iro.umontreal.ca>
10038
10039 * eval.c (Fapply): Allow calling it with a single argument.
10040
10041 2012-06-26 Eli Zaretskii <eliz@gnu.org>
10042
10043 * s/ms-w32.h (strcasecmp, strncasecmp) [_MSC_VER]: Redirect to
10044 _stricmp and _strnicmp.
10045 (HAVE_STRCASECMP, HAVE_STRNCASECMP): Define to 1.
10046
10047 2012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
10048
10049 * alloc.c (allocate_window): Zero out non-Lisp part of newly
10050 allocated window.
10051 (allocate_process): Likewise for new process.
10052 (allocate_terminal): Change to use offsetof.
10053 (allocate_frame): Likewise.
10054 * frame.c (make_frame): Omit redundant initialization.
10055 * window.c (make_parent_window): Use memset.
10056 (make_window): Omit redundant initialization.
10057 * process.c (make_process): Omit redundant initialization.
10058 * terminal.c (create_terminal): Likewise.
10059
10060 2012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
10061
10062 * term.c (delete_tty): Remove redundant call to memset.
10063
10064 2012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
10065
10066 * alloc.c: Remove build_string.
10067 * lisp.h: Define build_string as static inline. This provides
10068 a better opportunity to optimize away calls to strlen when the
10069 function is called with compile-time constant argument.
10070 * image.c (imagemagick_error): Convert to build_string.
10071 * w32proc.c (sys_spawnve): Likewise.
10072 * xterm.c (x_term_init): Likewise.
10073
10074 2012-06-26 Paul Eggert <eggert@cs.ucla.edu>
10075
10076 Use sprintf return value instead of invoking strlen on result.
10077 In the old days this wasn't portable, since some sprintf
10078 implementations returned char *. But they died out years ago and
10079 Emacs already assumes sprintf returns int.
10080 Similarly for float_to_string.
10081 This patch speeds up (number-to-string 1000) by 3% on Fedora 15 x86-64.
10082 * ccl.c (ccl_driver):
10083 * character.c (string_escape_byte8):
10084 * data.c (Fnumber_to_string):
10085 * doprnt.c (doprnt):
10086 * print.c (print_object):
10087 * xdisp.c (message_dolog):
10088 * xfns.c (syms_of_xfns):
10089 Use sprintf or float_to_string result to avoid need to call strlen.
10090 * data.c (Fnumber_to_string):
10091 Use make_unibyte_string, since the string must be ASCII.
10092 * lisp.h, print.c (float_to_string): Now returns int length.
10093 * term.c (produce_glyphless_glyph):
10094 Use sprintf result rather than recomputing it.
10095
10096 Clean out last vestiges of the old HAVE_CONFIG_H stuff.
10097 * Makefile.in (ALL_CFLAGS):
10098 * makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H.
10099 * gmalloc.c, regex.c: Include <config.h> unconditionally.
10100
10101 2012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
10102
10103 * dispextern.h (xstrcasecmp): Define to library function
10104 strcasecmp if available.
10105 * xfaces.c: Do not use xstrcasecmp if strcasecmp is available.
10106
10107 2012-06-25 Andreas Schwab <schwab@linux-m68k.org>
10108
10109 * keyboard.c (menu_bar_items, menu_bar_item, read_key_sequence):
10110 Avoid comma operator.
10111 * menu.c (push_submenu_start, push_submenu_end)
10112 (push_left_right_boundary, push_menu_pane): Likewise.
10113 * msdos.c (dos_rawgetc): Likewise.
10114
10115 2012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
10116
10117 * xfns.c (xic_create_fontsetname): Remove redundant calls
10118 to memset.
10119
10120 2012-06-25 Paul Eggert <eggert@cs.ucla.edu>
10121
10122 * gtkutil.c (get_utf8_string): Remove redundant assignment.
10123 sprintf already null-terminates its output.
10124
10125 * xfns.c (x_window): Remove redundant cast.
10126
10127 2012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
10128
10129 * xmenu.c (xmenu_show, xdialog_show): Explicit cast from
10130 `const char *' to `char *' to avoid compiler warning.
10131
10132 2012-06-24 Paul Eggert <eggert@cs.ucla.edu>
10133
10134 * xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string
10135 instead of truncating it to 63 (admittedly a generous limit).
10136
10137 * process.c: Fix spelling and caps in comments.
10138
10139 2012-06-24 Dan Nicolaescu <dann@ics.uci.edu>
10140
10141 * emacs.c (setpgrp): Remove definition, unused.
10142 * sysdep.c (setpgrp): Remove definition, not used in this file.
10143
10144 2012-06-24 Juanma Barranquero <lekktu@gmail.com>
10145
10146 * makefile.w32-in: Update dependencies.
10147
10148 2012-06-24 Eli Zaretskii <eliz@gnu.org>
10149
10150 * makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h.
10151 (SYSTIME_H): Add nt/inc/sys/time.h.
10152
10153 * systime.h [WINDOWSNT]: Include sys/time.h.
10154
10155 * s/ms-w32.h (struct timespec): Definition moved from
10156 nt/inc/sys/time.h. Suggested by Paul Eggert <eggert@cs.ucla.edu>.
10157
10158 2012-06-24 Paul Eggert <eggert@cs.ucla.edu>
10159
10160 Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
10161 * buffer.h (buffer_slot_type_mismatch):
10162 * data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
10163 * eval.c (unwind_to_catch):
10164 * image.c (my_png_error, my_error_exit):
10165 * keyboard.c (quit_throw_to_read_char, user_error)
10166 (Fexit_recursive_edit, Fabort_recursive_edit):
10167 * lisp.h (die, args_out_of_range, args_out_of_range_3)
10168 (wrong_type_argument, buffer_overflow, __executable_start)
10169 (memory_full, buffer_memory_full, string_overflow, Fthrow)
10170 (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error)
10171 (error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs)
10172 (fatal):
10173 (child_setup) [!DOS_NT]:
10174 * lread.c (end_of_file_error, invalid_syntax):
10175 * process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
10176 * puresize.h (pure_write_error):
10177 * search.c (matcher_overflow):
10178 * sound.c (sound_perror, alsa_sound_perror):
10179 * sysdep.c, syssignal.h (croak):
10180 * term.c (maybe_fatal, vfatal):
10181 * textprop.c (text_read_only):
10182 * undo.c (user_error):
10183 * unexmacosx.c (unexec_error):
10184 * xterm.c (x_ins_del_lines, x_delete_glyphs):
10185 Use _Noreturn rather than NO_RETURN.
10186 No need for separate decl merely because of _Noreturn.
10187 * sound.c (sound_warning, parse_sound):
10188 Remove unnecessary forward decls.
10189
10190 2012-06-24 Paul Eggert <eggert@cs.ucla.edu>
10191
10192 Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000).
10193 * lisp.h (WAIT_READING_MAX): New macro.
10194 * dispnew.c (Fsleep_for, sit_for):
10195 * keyboard.c (kbd_buffer_get_event):
10196 * process.c (Faccept_process_output):
10197 Use it to avoid bogus compiler warnings with obsolescent GCC versions.
10198 This improves on the previous patch, which introduced a bug
10199 when time_t is unsigned and as wide as intmax_t.
10200 See <http://bugs.gnu.org/9000#51>.
10201
10202 2012-06-23 Eli Zaretskii <eliz@gnu.org>
10203
10204 * dispnew.c (sit_for, Fsleep_for):
10205 * keyboard.c (kbd_buffer_get_event):
10206 * process.c (Faccept_process_output): Avoid compiler warnings when
10207 comparing a 32-bit time_t with a 64-bit INTMAX_MAX.
10208
10209 2012-06-23 Juanma Barranquero <lekktu@gmail.com>
10210
10211 * makefile.w32-in: Update dependencies.
10212
10213 * w32.c (ltime): Add return type and declare static.
10214 (w32_get_internal_run_time): Remove usused variable `time_100ns'.
10215
10216 2012-06-23 Paul Eggert <eggert@cs.ucla.edu>
10217
10218 * sysdep.c [__FreeBSD__]: Fix more recently-introduced typos.
10219 Privately reported by Herbert J. Skuhra.
10220 (make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST.
10221 All uses changed.
10222 (system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time,
10223 not make_lisp_timeval, when the argument is of type EMACS_TIME.
10224
10225 2012-06-23 Eli Zaretskii <eliz@gnu.org>
10226
10227 * w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in
10228 last argument of make_unibyte_string.
10229
10230 * keyboard.c (kbd_buffer_get_event): Include the codepage and the
10231 language ID in the event parameters.
10232
10233 * w32term.c (w32_read_socket): Put the new keyboard codepage into
10234 event.code, not the obscure "character set ID".
10235
10236 2012-06-23 Chong Yidong <cyd@gnu.org>
10237
10238 * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select.
10239
10240 2012-06-23 Eli Zaretskii <eliz@gnu.org>
10241
10242 Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu.
10243 * w32.c (fdutimens): New function.
10244
10245 * w32proc.c (sys_select): Adapt to change in the EMACS_TIME type.
10246
10247 * s/ms-w32.h (pselect): Redirect to sys_select.
10248
10249 * sysselect.h [WINDOWSNT]: Don't include sys/select.h.
10250
10251 * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko
10252 in the logic of incrementing and decrementing the value of
10253 use_relocatable_buffers.
10254
10255 2012-06-23 Paul Eggert <eggert@cs.ucla.edu>
10256
10257 * sysdep.c [__FreeBSD__]: Fix recently-introduced typos.
10258 Privately reported by Herbert J. Skuhra.
10259 [__FreeBSD__]: Remove "*/" typo after "#include".
10260 (timeval_to_EMACS_TIME) [__FreeBSD__]: New static function.
10261 (TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro.
10262 (TIMEVAL, system_process_attributes) [__FreeBSD__]:
10263 Don't assume EMACS_TIME and struct timeval are the same type.
10264
10265 2012-06-22 Paul Eggert <eggert@cs.ucla.edu>
10266
10267 Support higher-resolution time stamps (Bug#9000).
10268 The time stamps are only nanosecond-resolution at the C level,
10269 since that's the best that any real-world system supports now.
10270 But they are picosecond-resolution at the Lisp level, as that's
10271 easy, and leaves room for future OS improvements.
10272
10273 * Makefile.in (LIB_CLOCK_GETTIME): New macro.
10274 (LIBES): Use it.
10275
10276 * alloc.c (Fgarbage_collect): Port to higher-res time stamps.
10277 Don't get current time unless it's needed.
10278
10279 * atimer.c: Include <sys/time.h> unconditionally, since gnulib
10280 now provides it if it's absent.
10281 (start_atimer): Port to higher-res time stamps.
10282 Check for time stamp overflow. Don't get current time more
10283 often than is needed.
10284
10285 * buffer.h (struct buffer): Buffer modtime now has high resolution.
10286 Include systime.h, not time.h.
10287 (NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros.
10288
10289 * dired.c: Include stat-time.h.
10290 (Ffile-attributes): File times now have higher resolution.
10291
10292 * dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h.
10293 (struct image): Timestamp now has higher resolution.
10294
10295 * dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always
10296 has at least microseconds now. All uses removed.
10297 (update_frame, update_single_window, update_window, update_frame_1)
10298 (Fsleep_for, sit_for): Port to higher-resolution time stamps.
10299 (duration_to_sec_usec): Remove; no longer needed.
10300
10301 * editfns.c (time_overflow): Now extern.
10302 (Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument)
10303 (float-time, Fformat_time_string, Fcurrent_time_string)
10304 (Fcurrent_time_zone): Accept and generate higher-resolution
10305 time stamps.
10306 (make_time_tail, make_lisp_time, dissassemble_lisp_time)
10307 (decode_time_components, lisp_seconds_argument): New functions.
10308 (make_time): Now static.
10309 (lisp_time_argument): Now returns EMACS_TIME. New arg ppsec.
10310 Report an error if the time is invalid, rather than having the caller
10311 do that.
10312
10313 * fileio.c: Include <stat-time.h>
10314 (Fcopy_file): Copy higher-resolution time stamps.
10315 Prefer to set the time stamp via a file descriptor if that works.
10316 (Fset_file_times, Finsert_file_contents, Fwrite_region)
10317 (Fverify_visited_file_modtime, Fclear_visited_file_modtime)
10318 (Fvisited_file_modtime, Fset_visited_file_modtime):
10319 Support higher-resolution time stamps.
10320
10321 * fns.c (Frandom): Use nanoseconds, not microseconds, for seed.
10322
10323 * gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps.
10324
10325 * image.c (prepare_image_for_display, clear_image_cache)
10326 (lookup_image): Port to higer-resolution time stamps.
10327
10328 * keyboard.c (start_polling, bind_polling_period):
10329 Check for time stamp overflow.
10330 (read_char, kbd_buffer_get_event, timer_start_idle)
10331 (timer_stop_idle, timer_resume_idle, timer_check_2, timer_check)
10332 (Fcurrent_idle_time, init_keyboard, set_waiting_for_input):
10333 Port to higher-resolution time stamps. Do not assume time_t is signed.
10334 (decode_timer): New function. Timers are now vectors of length 9,
10335 not 8, to accommodate the picosecond component.
10336 (timer_check_2): Use it.
10337
10338 * nsterm.m (select_timeout, timeval_subtract): Remove.
10339 (ns_timeout): Use Emacs's facilities for time stamp arithmetic,
10340 as they're a bit more accurate and handle overflow better.
10341 (ns_select): Change prototype to be compatible with pselect.
10342 (ns_select, ns_term_shutdown): Port to ns-resolution time stamps.
10343 * nsterm.h (ns_select): Adjust prototype.
10344
10345 * msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes
10346 us-resolution time stamps.
10347 (sys_select): Use the new EMACS_TIME_SIGN macro instead.
10348
10349 * lread.c (read_filtered_event): Port to ns-resolution time stamps.
10350
10351 * lisp.h (time_overflow): New decl.
10352 (wait_reading_process_output): First arg is now intmax_t, not int,
10353 to accommodate larger waits.
10354
10355 * process.h (struct Lisp_Process.read_output_delay):
10356 Now counts nanoseconds, not microseconds.
10357 * process.c (ADAPTIVE_READ_BUFFERING): Don't worry about
10358 EMACS_HAS_USECS.
10359 (READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output)
10360 (wait_reading_process_output):
10361 Port to ns-resolution time stamps.
10362 (Faccept_process_output, wait_reading_process_output):
10363 Check for time stamp overflow. Do not assume time_t is signed.
10364 (select_wrapper): Remove; we now use pselect.
10365 (Fprocess_attributes): Now generates ns-resolution time stamps.
10366
10367 * sysdep.c: Include utimens.h. Don't include utime.h
10368 or worry about struct utimbuf; gnulib does that for us now.
10369 (gettimeofday): Remove; gnulib provides a substitute.
10370 (make_timeval): New function.
10371 (set_file_times): Now sets ns-resolution time stamps.
10372 New arg FD; all uses changed.
10373 (time_from_jiffies, ltime_from_jiffies, get_up_time)
10374 (system_process_attributes):
10375 Now returns ns-resolution time stamp. All uses changed.
10376 Check for time stamp overflow.
10377
10378 * sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib
10379 provides a substitute now.
10380
10381 * systime.h: Include timespec.h rather than sys/time.h and time.h,
10382 since it guarantees struct timespec.
10383 (EMACS_TIME): Now struct timespec, so that we can support
10384 ns-resolution time stamps.
10385 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros.
10386 (EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now.
10387 (EMACS_USECS): Remove.
10388 (EMACS_SET_USECS): The underlying time stamp now has ns resolution,
10389 so multiply the arg by 1000 before storing it.
10390 (EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS):
10391 New macros.
10392 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME):
10393 Port to ns-resolution time stamps.
10394 (EMACS_TIME_NEG_P): Remove; replaced by....
10395 (EMACS_TIME_SIGN): New macro.
10396 (EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P)
10397 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros.
10398 (set_file_times, make_time, lisp_time_argument): Adjust signature.
10399 (make_timeval, make_lisp_time, decode_time_components): New decls.
10400 (EMACS_TIME_CMP): Remove; no longer used. Plus, it was buggy, in
10401 that it mishandled time_t overflow. You can't compare by subtracting!
10402 (EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE)
10403 (EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp.
10404
10405 * term.c: Include <sys/time.h>.
10406 (timeval_to_Time): New function, for proper overflow wraparound.
10407 (term_mouse_position, term_mouse_click): Use it.
10408
10409 * undo.c (record_first_change): Support higher-resolution time stamps
10410 in the undo buffer.
10411 (Fprimitive_undo): Use them when restoring time stamps.
10412
10413 * w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull)
10414 (w32_get_internal_run_time):
10415 Port to higher-resolution Emacs time stamps.
10416 (ltime): Now accepts single 64-bit integer, as that's more convenient
10417 for callers.
10418
10419 * xdisp.c (start_hourglass): Port to ns-resolution time stamps.
10420
10421 * xgselect.c, xgselect.h (xg_select): Add sigmask argument,
10422 for compatibility with pselect. Support ns-resolution time stamps.
10423
10424 * xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps.
10425
10426 * xselect.c (wait_for_property_change, x_get_foreign_selection):
10427 Check for time stamp overflow, and support ns-resolution time stamps.
10428
10429 * xterm.c: Don't include sys/time.h; gnulib does that for us now.
10430 Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set.
10431 (timeval_subtract): Remove; no longer needed.
10432 (XTflash, XTring_bell, x_wait_for_event):
10433 Port to ns-resolution time stamps. Don't assume time_t is signed.
10434
10435 2012-06-22 Chong Yidong <cyd@gnu.org>
10436
10437 * xdisp.c (x_consider_frame_title): Revert last change.
10438
10439 2012-06-22 Eli Zaretskii <eliz@gnu.org>
10440
10441 * alloc.c (NSTATICS): Enlarge to 0x650. Otherwise, Emacs compiled
10442 with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER
10443 aborts in staticpro during startup. (Without -DBYTE_CODE_METER,
10444 staticidx goes up to 1597 out of 1600 = 0x640.)
10445
10446 2012-06-20 Paul Eggert <eggert@cs.ucla.edu>
10447
10448 * fileio.c (Fdefault_file_modes): Block input while fiddling with umask.
10449 Otherwise, the umask might be mistakenly 0 while handling input signals.
10450
10451 2012-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
10452
10453 * minibuf.c (Fread_string): Bind minibuffer-completion-table.
10454
10455 2012-06-19 Dmitry Antipov <dmantipov@yandex.ru>
10456
10457 * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c:
10458 * font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c:
10459 * print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct
10460 access to `contents' member of Lisp_Vector objects with AREF and ASET
10461 where appropriate.
10462
10463 2012-06-19 Chong Yidong <cyd@gnu.org>
10464
10465 * frame.c (delete_frame): When selecting a frame on a different
10466 text terminal, do not alter the terminal's top-frame.
10467
10468 * xdisp.c (format_mode_line_unwind_data): Record the target
10469 frame's selected window and its terminal's top-frame.
10470 (unwind_format_mode_line): Restore them.
10471 (x_consider_frame_title, display_mode_line, Fformat_mode_line):
10472 Callers changed.
10473 (x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM,
10474 since tty frames can be explicitly named.
10475 (prepare_menu_bars): Likewise.
10476
10477 * term.c (Ftty_top_frame): New function.
10478
10479 2012-06-18 Paul Eggert <eggert@cs.ucla.edu>
10480
10481 Port byte-code-meter to modern targets.
10482 * bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume
10483 !CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG. Problem with
10484 CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in
10485 <http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00282.html>.
10486 (METER_1, METER_2): Simplify.
10487
10488 2012-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
10489
10490 * data.c (Fdefalias): Return `symbol' (bug#11686).
10491
10492 2012-06-18 Martin Rudalics <rudalics@gmx.at>
10493
10494 * buffer.c (Fkill_buffer): Don't throw an error when the buffer
10495 gets killed during executing of this function (Bug#11665).
10496 Try to always return Qt when the buffer has been actually killed.
10497 (Vkill_buffer_query_functions): In doc-string say that functions
10498 run by this hook should not change the current buffer.
10499
10500 2012-06-18 Paul Eggert <eggert@cs.ucla.edu>
10501
10502 Fix recently-introduced process.c problems found by static checking.
10503 * process.c (write_queue_push, write_queue_pop, send_process):
10504 Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets.
10505 (write_queue_pop): Fix pointer signedness problem.
10506 (send_process): Remove unused local.
10507
10508 2012-06-17 Chong Yidong <cyd@gnu.org>
10509
10510 * xdisp.c (redisplay_internal): No need to redisplay terminal
10511 frames that are not on top.
10512
10513 2012-06-17 Troels Nielsen <bn.troels@gmail.com>
10514
10515 * process.c (make_process): Initialize write_queue.
10516 (write_queue_push, write_queue_pop): New functions.
10517 (send_process): Use them to maintain correct ordering of process
10518 writes (Bug#10815).
10519
10520 2012-06-17 Paul Eggert <eggert@cs.ucla.edu>
10521
10522 * lisp.h (eassert): Assume C89 or later.
10523 This removes the need for CHECK.
10524 (CHECK): Remove. Its comments about always evaluating its
10525 argument were confusing, as 'eassert' typically does not evaluate
10526 its argument.
10527
10528 * coding.c (produce_chars): Use ptrdiff_t, not int.
10529
10530 * xterm.c (x_draw_underwave): Check for integer overflow.
10531 This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64.
10532
10533 2012-06-17 Jan Djärv <jan.h.d@swipnet.se>
10534
10535 * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't
10536 referenced (Bug#11583).
10537
10538 2012-06-16 Aurelien Aptel <aurelien.aptel@gmail.com>
10539
10540 Implement wave-style variant of underlining.
10541 * dispextern.h (face_underline_type): New enum.
10542 (face): Add field for underline type.
10543 * nsterm.m (ns_draw_underwave): New function.
10544 (ns_draw_text_decoration): Use it.
10545 * w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave):
10546 New functions.
10547 (x_draw_glyph_string): Use them.
10548 * xfaces.c (Qline, Qwave): New Lisp objects.
10549 (check_lface_attrs, merge_face_ref)
10550 (Finternal_set_lisp_face_attribute, realize_x_face):
10551 Handle wave-style underline face attributes.
10552 * xterm.c (x_draw_underwave): New function.
10553 (x_draw_glyph_string): Use it.
10554
10555 2012-06-16 Juanma Barranquero <lekktu@gmail.com>
10556
10557 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O))
10558 ($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O))
10559 ($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O))
10560 ($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O))
10561 ($(BLD)/w32select.$(O)): Update dependencies.
10562
10563 2012-06-16 Andreas Schwab <schwab@linux-m68k.org>
10564
10565 * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.
10566 (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
10567 * character.c (_fetch_multibyte_char_p): Remove.
10568 * alloc.c: Include "character.h" before "buffer.h".
10569 * bidi.c: Likewise.
10570 * buffer.c: Likewise.
10571 * bytecode.c: Likewise.
10572 * callint.c: Likewise.
10573 * callproc.c: Likewise.
10574 * casefiddle.c: Likewise.
10575 * casetab.c: Likewise.
10576 * category.c: Likewise.
10577 * cmds.c: Likewise.
10578 * coding.c: Likewise.
10579 * composite.c: Likewise.
10580 * dired.c: Likewise.
10581 * dispnew.c: Likewise.
10582 * doc.c: Likewise.
10583 * dosfns.c: Likewise.
10584 * editfns.c: Likewise.
10585 * emacs.c: Likewise.
10586 * fileio.c: Likewise.
10587 * filelock.c: Likewise.
10588 * font.c: Likewise.
10589 * fontset.c: Likewise.
10590 * fringe.c: Likewise.
10591 * indent.c: Likewise.
10592 * insdel.c: Likewise.
10593 * intervals.c: Likewise.
10594 * keyboard.c: Likewise.
10595 * keymap.c: Likewise.
10596 * lread.c: Likewise.
10597 * macros.c: Likewise.
10598 * marker.c: Likewise.
10599 * minibuf.c: Likewise.
10600 * nsfns.m: Likewise.
10601 * nsmenu.m: Likewise.
10602 * print.c: Likewise.
10603 * process.c: Likewise.
10604 * regex.c: Likewise.
10605 * region-cache.c: Likewise.
10606 * search.c: Likewise.
10607 * syntax.c: Likewise.
10608 * term.c: Likewise.
10609 * textprop.c: Likewise.
10610 * undo.c: Likewise.
10611 * unexsol.c: Likewise.
10612 * w16select.c: Likewise.
10613 * w32fns.c: Likewise.
10614 * w32menu.c: Likewise.
10615 * window.c: Likewise.
10616 * xdisp.c: Likewise.
10617 * xfns.c: Likewise.
10618 * xmenu.c: Likewise.
10619 * xml.c: Likewise.
10620 * xselect.c: Likewise.
10621
10622 2012-06-16 Eli Zaretskii <eliz@gnu.org>
10623
10624 * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end.
10625 If all the glyphs of the glyph row came from strings, and we have no
10626 cursor positioning clues, put the cursor on the first glyph of the
10627 row.
10628 (handle_face_prop): Use chunk-relative overlay string index when
10629 indexing into it->string_overlays array. (Bug#11653)
10630 (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not
10631 the rightmost. (Bug#11720)
10632
10633 2012-06-16 Andreas Schwab <schwab@linux-m68k.org>
10634
10635 * category.h (CHAR_HAS_CATEGORY): Define as inline.
10636 (CATEGORY_MEMBER): Enforce 1/0 value.
10637 * category.c (_temp_category_set): Remove.
10638
10639 2012-06-16 Eli Zaretskii <eliz@gnu.org>
10640
10641 * window.c (Fdelete_other_windows_internal)
10642 (Fdelete_window_internal): Don't access frame's mouse highlight
10643 info of the initial frame. (Bug#11677)
10644
10645 2012-06-14 Paul Eggert <eggert@cs.ucla.edu>
10646
10647 * .gdbinit (xgetint): Fix recently-introduced paren typo.
10648 Assume USE_2_TAGS_FOR_INTS.
10649 (xreload): Adjust $tagmask width to match recent lisp.h change.
10650
10651 Simplify lisp.h in minor ways that should not affect code.
10652 * lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined.
10653 (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P)
10654 (LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number):
10655 Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined.
10656 (INTTYPEBITS): New macro, for clarity.
10657 (INTMASK, MOST_POSITIVE_FIXNUM): Use it.
10658 (LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P):
10659 Simplify now that USE_LSB_TAG is always defined.
10660 (TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast.
10661 (make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler.
10662
10663 2012-06-13 Juanma Barranquero <lekktu@gmail.com>
10664
10665 * makefile.w32-in ($(BLD)/data.$(O)): Update dependencies.
10666
10667 2012-06-13 Glenn Morris <rgm@gnu.org>
10668
10669 * s/bsd-common.h (BSD4_3):
10670 * s/usg5-4-common.h (USG5_4): No longer define; unused.
10671
10672 2012-06-13 Andreas Schwab <schwab@linux-m68k.org>
10673
10674 * lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
10675 instead of union.
10676 (XLI, XIL): Define.
10677 (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG):
10678 Use them.
10679 * emacs.c (gdb_use_struct): Rename from gdb_use_union.
10680 * .gdbinit: Check gdb_use_struct instead of gdb_use_union.
10681 * alloc.c (widen_to_Lisp_Object): Remove.
10682 (mark_memory): Use XIL instead of widen_to_Lisp_Object.
10683 * frame.c (delete_frame): Remove outdated comment.
10684 * w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
10685 USE_LISP_UNION_TYPE.
10686 (Fw32_unregister_hot_key): Likewise.
10687 (Fw32_toggle_lock_key): Likewise.
10688 * w32menu.c (add_menu_item): Likewise.
10689 (w32_menu_display_help): Use XIL instead of checking
10690 USE_LISP_UNION_TYPE.
10691 * w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
10692 (init_heap): Likewise.
10693 * w32term.c (w32_read_socket): Update comment.
10694
10695 2012-06-13 Glenn Morris <rgm@gnu.org>
10696
10697 * s/usg5-4-common.h, src/s/unixware.h:
10698 Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04).
10699
10700 * s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04).
10701
10702 2012-06-13 Paul Eggert <eggert@cs.ucla.edu>
10703
10704 USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604)
10705 * alloc.c (make_number) [!defined make_number]:
10706 Remove, as lisp.h always defines this now.
10707 (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
10708 (roundup_size): Verify that it is a power of 2.
10709 * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
10710 * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
10711 * lisp.h (USE_LSB_TAG): Allow the builder to compile with
10712 -DUSE_LSB_TAG=0, to override the automatically-selected default.
10713 USE_LSB_TAG now is always defined to be either 0 or 1.
10714 All uses changed.
10715 (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
10716 code works fine either way, and efficiency is not a concern here,
10717 as the union type is for debugging, not for production.
10718 (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
10719 Use an inline function on all platforms when using the union type,
10720 since this is simpler and 'static inline' can be used portably
10721 within Emacs now.
10722 (LISP_INITIALLY_ZERO): New macro.
10723 (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
10724 (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
10725
10726 2012-06-12 Glenn Morris <rgm@gnu.org>
10727
10728 * s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files.
10729
10730 * s/gnu-linux.h (HAVE_PROCFS): Move to configure.
10731
10732 * s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h:
10733 Move BROKEN_SIGIO to configure.
10734
10735 * s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h:
10736 Move NO_TERMIO to configure.
10737
10738 2012-06-12 Chong Yidong <cyd@gnu.org>
10739
10740 * image.c (imagemagick_load_image): Use MagickFlattenImage if
10741 MagickMergeImageLayers is undefined. Use pixel pusher loop if
10742 MagickExportImagePixels is undefined.
10743
10744 2012-06-12 Paul Eggert <eggert@cs.ucla.edu>
10745
10746 * image.c (imagemagick_load_image): Remove unused label.
10747
10748 2012-06-11 Glenn Morris <rgm@gnu.org>
10749
10750 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
10751 * s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h:
10752 * s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h:
10753 * s/usg5-4-common.h: Move SYSTEM_TYPE to configure.
10754
10755 2012-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
10756
10757 * alloc.c (make_byte_code): New function.
10758 (Fmake_byte_code): Use it. Don't purify here.
10759 * lread.c (read1): Use it as well to avoid extra allocation.
10760
10761 2012-06-11 Chong Yidong <cyd@gnu.org>
10762
10763 * image.c (imagemagick_load_image): Implement transparency.
10764
10765 2012-06-10 Andreas Schwab <schwab@linux-m68k.org>
10766
10767 * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly
10768 account for preceding backslashes. (Bug#11663)
10769
10770 2012-06-09 Chong Yidong <cyd@gnu.org>
10771
10772 * term.c: Support italics in capable terminals (Bug#9652).
10773 (no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
10774 (turn_on_face): Output using TS_enter_italic_mode if available.
10775 Don't handle unused blinking and alt-charset cases.
10776 (turn_off_face): Handle italic case; discard unused tty_blinking_p
10777 and tty_alt_charset_p cases.
10778 (tty_capable_p, init_tty): Support italics.
10779
10780 * termchar.h (struct tty_display_info): Add field for italics.
10781 Remove unused blink field.
10782
10783 * xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
10784 Handle slant.
10785
10786 * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
10787 (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
10788 tty_alt_charset_p. Add tty_italic_p.
10789
10790 2012-06-09 Michael Albinus <michael.albinus@gmx.de>
10791
10792 * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and
10793 dbus_type_is_basic if available.
10794 (xd_extract_signed, xd_extract_unsigned): Rename from
10795 extract_signed and extract_unsigned, respectively. Adapt callers.
10796
10797 2012-06-09 Chong Yidong <cyd@gnu.org>
10798
10799 * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066).
10800
10801 * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive
10802 case (Bug#9752).
10803
10804 2012-06-08 Paul Eggert <eggert@cs.ucla.edu>
10805
10806 * xdisp.c (vmessage): Treat frame message as multibyte.
10807 Without this change, (let ((§ 1)) (make-variable-buffer-local '§))
10808 would generate the diagnostic "Making \302\247 buffer-local while
10809 let-bound!".
10810
10811 2012-06-08 Eli Zaretskii <eliz@gnu.org>
10812
10813 * dispnew.c (showing_window_margins_p): Undo last change, which
10814 was done due to an inadvertent commit.
10815 (adjust_frame_glyphs_for_frame_redisplay): Do call
10816 showing_window_margins_p.
10817
10818 2012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
10819
10820 * eval.c (Fmake_var_non_special): New primitive.
10821 (syms_of_eval): Defsubr it.
10822 * lread.c (syms_of_lread): Mark `values' as lexically scoped.
10823
10824 2012-06-08 Juanma Barranquero <lekktu@gmail.com>
10825
10826 * dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused
10827 function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org).
10828
10829 2012-06-08 Eli Zaretskii <eliz@gnu.org>
10830
10831 * alloc.c (allocate_vectorlike): Fix last change.
10832
10833 2012-06-08 Dmitry Antipov <dmantipov@yandex.ru>
10834
10835 Block-based vector allocation of small vectors.
10836 * lisp.h (struct vectorlike_header): New field `nbytes',
10837 adjust comment accordingly.
10838 * alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
10839 to denote vector blocks. Adjust users (live_vector_p,
10840 mark_maybe_pointer, valid_lisp_object_p) accordingly.
10841 (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
10842 (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES),
10843 (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX),
10844 (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST),
10845 (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
10846 (roundup_size): New constant.
10847 (struct vector_block): New data type.
10848 (vector_blocks, vector_free_lists, zero_vector): New variables.
10849 (all_vectors): Rename to `large_vectors'.
10850 (allocate_vector_from_block, init_vectors, allocate_vector_from_block)
10851 (sweep_vectors): New functions.
10852 (allocate_vectorlike): Return `zero_vector' as the only vector of
10853 0 items. Allocate new vector from block if vector size is less than
10854 or equal to VBLOCK_BYTES_MAX.
10855 (Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
10856 (init_alloc_once): Add call to init_vectors.
10857
10858 2012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
10859
10860 * eval.c (Fmacroexpand): Stop if the macro returns the same form.
10861
10862 2012-06-07 Paul Eggert <eggert@cs.ucla.edu>
10863
10864 * doprnt.c (doprnt): Truncate multibyte char correctly.
10865 Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP)
10866 would mishandle a string argument "Xc" if X was a multibyte
10867 character of length 2: it would truncate after X's first byte
10868 rather than including all of X.
10869
10870 2012-06-06 Chong Yidong <cyd@gnu.org>
10871
10872 * buffer.c (word_wrap): Doc fix.
10873
10874 2012-06-04 Paul Eggert <eggert@cs.ucla.edu>
10875
10876 * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall.
10877
10878 2012-06-03 Glenn Morris <rgm@gnu.org>
10879
10880 * xdisp.c (tool-bar-style): Doc fix.
10881
10882 2012-06-03 Ulrich Müller <ulm@gentoo.org>
10883
10884 * Makefile.in (PAXCTL): Define.
10885 (temacs$(EXEEXT)): Disable memory randomization for the temacs
10886 binary via PaX flags if the paxctl utility is available.
10887 (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
10888 Restore PaX flags to their default. (Bug#11398)
10889
10890 2012-06-03 Chong Yidong <cyd@gnu.org>
10891
10892 * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
10893 buffer (Bug#11226).
10894
10895 2012-06-03 Chong Yidong <cyd@gnu.org>
10896
10897 * xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
10898 (note_mode_line_or_margin_highlight): If there is no help echo,
10899 use mode-line-default-help-echo. Handle the case where the mouse
10900 position is past the end of the mode line string.
10901
10902 * buffer.c (buffer_local_value_1): New function, split from
10903 Fbuffer_local_value; can return Qunbound.
10904 (Fbuffer_local_value): Use it.
10905 (Vmode_line_format): Docstring tweaks.
10906
10907 2012-06-02 Paul Eggert <eggert@cs.ucla.edu>
10908
10909 * sysdep.c (system_process_attributes): Improve comment.
10910
10911 2012-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
10912
10913 * keyboard.c: Export real-this-command to Elisp.
10914 (syms_of_keyboard): Rename real_this_command to Vreal_this_command
10915 and DEFVAR it. Update all users.
10916
10917 2012-06-02 Paul Eggert <eggert@cs.ucla.edu>
10918
10919 * minibuf.c (Fassoc_string): Remove duplicate declaration.
10920
10921 * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
10922 Convert pctcpu and pctmem to Lisp float properly.
10923 Let the compiler fold better, as 100.0/0x8000 is exact.
10924
10925 2012-06-02 Andreas Schwab <schwab@linux-m68k.org>
10926
10927 * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
10928 cons_block.
10929
10930 2012-06-01 Paul Eggert <eggert@cs.ucla.edu>
10931
10932 * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change.
10933
10934 2012-06-01 Dmitry Antipov <dmantipov@yandex.ru>
10935
10936 For a 'struct window', replace some Lisp_Object fields to
10937 bitfields where appropriate, remove unused fields.
10938 * window.h (struct window): Remove unused 'last_mark_x' and
10939 'last_mark_y' fields. Rename 'mini_p' field to 'mini',
10940 change its type from Lisp_Object to bitfield.
10941 Change type of 'force_start', 'optional_new_start',
10942 'last_had_star', 'update_mode_line' and 'start_at_line_beg'
10943 fields from Lisp_Object to bitfield. Adjust users accordingly.
10944
10945 2012-05-31 Paul Eggert <eggert@cs.ucla.edu>
10946
10947 Pacify gcc -Wdouble-precision when using Xaw.
10948 * xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb)
10949 [HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]:
10950 Use 'float' consistently, rather than 'float' in most places
10951 and 'double' in a couple of places.
10952
10953 2012-05-31 Eli Zaretskii <eliz@gnu.org>
10954
10955 * xdisp.c (handle_stop): Detect whether we have overlay strings
10956 loaded by testing it->current.overlay_string_index to be
10957 non-negative, instead of checking whether n_overlay_strings is
10958 positive. (Bug#11587)
10959
10960 2012-05-31 Chong Yidong <cyd@gnu.org>
10961
10962 * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169).
10963
10964 * doc.c (Fsubstitute_command_keys): Doc fix.
10965
10966 2012-05-31 Eli Zaretskii <eliz@gnu.org>
10967
10968 * search.c (search_buffer): Remove calls to
10969 r_alloc_inhibit_buffer_relocation, as it is now called by
10970 maybe_unify_char, which was the cause of relocation of buffer text
10971 in bug#11519.
10972
10973 2012-05-31 Eli Zaretskii <eliz@gnu.org>
10974
10975 * charset.c (maybe_unify_char): Inhibit relocation of buffer text
10976 for the duration of call to load_charset, to avoid problems with
10977 callers of maybe_unify_char that access buffer text through C
10978 pointers.
10979
10980 * ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and
10981 decrement the inhibition flag, instead of just setting or
10982 resetting it.
10983
10984 2012-05-31 Paul Eggert <eggert@cs.ucla.edu>
10985
10986 Remove obsolete '#define static' cruft.
10987 * s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef.
10988 This #undef was "temporary" in 2000; it is no longer needed
10989 now that '#define static' has gone away.
10990 * xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height)
10991 (gray_bitmap_bits): Remove; no longer needed.
10992 All uses replaced with definiens.
10993 * xterm.c: Include "bitmaps/gray.xbm".
10994
10995 2012-05-30 Paul Eggert <eggert@cs.ucla.edu>
10996
10997 Clean up __executable_start, monstartup when --enable-profiling.
10998 The following changes affect the code only when profiling.
10999 * dispnew.c (__executable_start): Rename from safe_bcopy.
11000 Define only on platforms that need it.
11001 * emacs.c: Include <sys/gmon.h> when profiling.
11002 (_mcleanup): Remove decl, since <sys/gmon.h> does it now.
11003 (__executable_start): Remove decl, since lisp.h does it now.
11004 (safe_bcopy): Remove decl; no longer has that name.
11005 (main): Coalesce #if into single bit of code, for simplicity.
11006 Cast pointers to uintptr_t, since standard libraries want integers
11007 and not pointers.
11008 * lisp.h (__executable_start): New decl.
11009
11010 2012-05-31 Glenn Morris <rgm@gnu.org>
11011
11012 * image.c (Fimagemagick_types): Doc fix.
11013
11014 2012-05-30 Jim Meyering <meyering@redhat.com>
11015
11016 * callproc.c (Fcall_process_region): Include directory component
11017 in mkstemp error message (Bug#11586).
11018
11019 2012-05-30 Paul Eggert <eggert@cs.ucla.edu>
11020
11021 * alloc.c, lisp.h (make_pure_vector): Now static.
11022
11023 2012-05-30 Stefan Monnier <monnier@iro.umontreal.ca>
11024
11025 * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
11026 Move to byte-run.el.
11027 (Fautoload): Do the hash-doc more carefully.
11028 * data.c (Fdefalias): Purify definition, except for keymaps.
11029 (Qdefun): Move from eval.c.
11030 * lisp.h (Qdefun): Remove.
11031 * lread.c (read1): Tiny simplification.
11032
11033 2012-05-29 Troels Nielsen <bn.troels@gmail.com>
11034
11035 Do not create empty overlays with the evaporate property (Bug#9642).
11036 * buffer.c (Fmove_overlay): Reinstate the earlier fix for
11037 Bug#9642, but explicitly check that the buffer the overlay would
11038 be moved to is live and rearrange lines to make sure that errors
11039 will not put the overlay in an inconsistent state.
11040 (Fdelete_overlay): Cosmetics.
11041
11042 2012-05-28 Eli Zaretskii <eliz@gnu.org>
11043
11044 * w32term.c (my_bring_window_to_top): New function.
11045 (x_raise_frame): Use handle returned by DeferWindowPos, which
11046 could be different from the original one.
11047 Call my_bring_window_to_top instead of my_set_foreground_window.
11048 (Bug#11513)
11049
11050 * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
11051 by calling BringWindowToTop.
11052
11053 * w32term.h (WM_EMACS_BRINGTOTOP): New message.
11054 (WM_EMACS_END): Increase by one.
11055
11056 2012-05-28 Paul Eggert <eggert@cs.ucla.edu>
11057
11058 * bidi.c (bidi_mirror_char): Put eassert before conversion to int.
11059 This avoids undefined behavior that might cause the eassert
11060 to not catch an out-of-range value.
11061
11062 2012-05-28 Juanma Barranquero <lekktu@gmail.com>
11063
11064 * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)):
11065 Update dependencies.
11066
11067 2012-05-27 Eli Zaretskii <eliz@gnu.org>
11068
11069 * bidi.c (bidi_mirror_char): Fix last change.
11070
11071 2012-05-27 Andreas Schwab <schwab@linux-m68k.org>
11072
11073 * unexmacosx.c (copy_data_segment): Truncate after 16 characters
11074 when referring to sectname field in printf format.
11075
11076 2012-05-27 Paul Eggert <eggert@cs.ucla.edu>
11077
11078 * lisp.h [REL_ALLOC]: Omit duplicate prototypes.
11079 Only r_alloc_inhibit_buffer_relocation needed to be added;
11080 the others were already declared.
11081
11082 * bidi.c (bidi_mirror_char): Don't possibly truncate the integer
11083 before checking whether it's out of range. Put the check inside
11084 eassert. See
11085 <http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00485.html>.
11086
11087 2012-05-27 Ken Brown <kbrown@cornell.edu>
11088
11089 * callproc.c (Fcall_process): Restore a line that was accidentally
11090 commented out in the 2011-02-13 change (bug#11547).
11091
11092 2012-05-27 Eli Zaretskii <eliz@gnu.org>
11093
11094 * lisp.h [REL_ALLOC]: Add prototypes for external functions
11095 defined on ralloc.c.
11096
11097 * buffer.c [REL_ALLOC]: Remove prototypes of
11098 r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free,
11099 they are now on lisp.h.
11100
11101 * ralloc.c (r_alloc_inhibit_buffer_relocation): New function.
11102
11103 * search.c (search_buffer): Use it to inhibit relocation of buffer
11104 text while re_search_2 is doing its job, because re_search_2 is
11105 passed C pointers to buffer text. (Bug#11519)
11106
11107 * msdos.c (internal_terminal_init) <Vwindow_system_version>:
11108 Update value to 24.
11109
11110 * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator
11111 state after an additional call to move_it_in_display_line_to, keep
11112 the values of it->max_ascent and it->max_descent found for the
11113 entire line.
11114 (pos_visible_p): Revert the comparison against bottom_y to what it
11115 was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb.
11116 (Bug#11464)
11117
11118 2012-05-26 Paul Eggert <eggert@cs.ucla.edu>
11119
11120 Fix coding-related core dumps with gcc -ftrapv.
11121 The code was computing A - B, where A and B are pointers, and B is
11122 random garbage. This can lead to core dumps on platforms that
11123 have special pointer registers, and it also leads to core dumps on
11124 x86-64 when compiled with gcc -ftrapv. The fix is to compute
11125 A - B only when B is initialized properly.
11126 * coding.c (coding_set_source, coding_set_destination): Return void.
11127 (coding_change_source, coding_change_destinations): New functions,
11128 with the old behaviors of coding_set_source and coding_set_destination.
11129 All callers that need an offset changed to use these new functions.
11130
11131 2012-05-26 Glenn Morris <rgm@gnu.org>
11132
11133 * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791)
11134
11135 2012-05-26 Eli Zaretskii <eliz@gnu.org>
11136
11137 Extend mouse support on W32 text-mode console.
11138 * xdisp.c (draw_row_with_mouse_face):
11139 Call tty_draw_row_with_mouse_face for WINDOWSNT as well.
11140
11141 * w32console.c: Include window.h.
11142 (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face):
11143 New functions.
11144 (initialize_w32_display): Initialize mouse-highlight data.
11145
11146 * w32inevt.c: Include termchar.h and window.h.
11147 (do_mouse_event): Support mouse-autoselect-window. When the mouse
11148 moves, call note_mouse_highlight. If help_echo changed, call
11149 gen_help_event to produce help-echo message in the echo area.
11150 Call clear_mouse_face if mouse_face_hidden is set in the mouse
11151 highlight info.
11152
11153 2012-05-26 Paul Eggert <eggert@cs.ucla.edu>
11154
11155 * lread.c (read1): Simplify slightly to avoid an overflow warning
11156 with GCC 4.7.0 on x86-64.
11157
11158 2012-05-26 Eli Zaretskii <eliz@gnu.org>
11159
11160 * bidi.c (bidi_mirror_char): Revert last change: an int is
11161 definitely wide enough here.
11162
11163 2012-05-25 Paul Eggert <eggert@cs.ucla.edu>
11164
11165 Fix integer width and related bugs (Bug#9874).
11166 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
11167 (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE)
11168 (string_bytes, check_sblock, allocate_string_data):
11169 (compact_small_strings, Fmake_bool_vector, make_string)
11170 (make_unibyte_string, make_multibyte_string)
11171 (make_string_from_bytes, make_specified_string)
11172 (allocate_vectorlike, Fmake_vector, find_string_data_in_pure)
11173 (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy)
11174 (mark_vectorlike):
11175 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11176 (allocate_pseudovector):
11177 Use int, not EMACS_INT, where int is wide enough.
11178 (inhibit_garbage_collection, Fgarbage_collect):
11179 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11180 * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where
11181 int might not be wide enough.
11182 (bidi_cache_search, bidi_cache_find, bidi_init_it)
11183 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
11184 (bidi_at_paragraph_end, bidi_find_paragraph_start)
11185 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
11186 (bidi_level_of_next_char, bidi_move_to_visually_next):
11187 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11188 * buffer.c (copy_overlays, Fgenerate_new_buffer_name)
11189 (Fkill_buffer, Fset_buffer_major_mode)
11190 (advance_to_char_boundary, Fbuffer_swap_text)
11191 (Fset_buffer_multibyte, overlays_at, overlays_in)
11192 (overlay_touches_p, struct sortvec, record_overlay_string)
11193 (overlay_strings, recenter_overlay_lists)
11194 (adjust_overlays_for_insert, adjust_overlays_for_delete)
11195 (fix_start_end_in_overlays, fix_overlays_before, modify_overlay)
11196 (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change)
11197 (Foverlay_recenter, last_overlay_modification_hooks_used)
11198 (report_overlay_modification, evaporate_overlays, enlarge_buffer_text):
11199 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11200 (validate_region): Omit unnecessary test for b <= e,
11201 since that's guaranteed by the previous test.
11202 (adjust_overlays_for_delete): Avoid pos + length overflow.
11203 (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist)
11204 (report_overlay_modification):
11205 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11206 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change):
11207 Omit pointer cast, which isn't needed anyway, and doesn't work
11208 after the EMACS_INT -> ptrdiff_t change.
11209 (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow.
11210 * buffer.h: Adjust decls to match defn changes elsewhere.
11211 (struct buffer_text, struct buffer):
11212 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11213 Use EMACS_INT, not int, where int might not be wide enough.
11214 * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t,
11215 not int, to avoid needless 32-bit limit on 64-bit hosts.
11216 (exec_byte_code): Use tighter memory-full test, one that checks
11217 for alloca overflow. Don't compute the address of the object just
11218 before an array, as that's not portable. Use EMACS_INT, not
11219 ptrdiff_t or int, where ptrdiff_t or int might not be wide enough.
11220 * callint.c (Fcall_interactively):
11221 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11222 * callproc.c (call_process_kill, Fcall_process):
11223 Don't assume pid_t fits into an Emacs fixnum.
11224 (call_process_cleanup, Fcall_process, child_setup):
11225 Don't assume pid_t fits into int.
11226 (call_process_cleanup, Fcall_process, delete_temp_file)
11227 (Fcall_process_region):
11228 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11229 (Fcall_process): Simplify handling of volatile integers.
11230 Use int, not EMACS_INT, where int will do.
11231 * casefiddle.c (casify_object, casify_region, operate_on_word)
11232 (Fupcase_word, Fdowncase_word, Fcapitalize_word):
11233 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11234 (casify_object): Avoid integer overflow when overallocating buffer.
11235 * casetab.c (set_identity, shuffle): Prefer int to unsigned when
11236 either works. Use lint_assume to convince GCC 4.6.1 that it's OK.
11237 * category.c (Fchar_category_set): Don't assume fixnum fits in int.
11238 * category.h (CATEGORYP): Don't assume arg is nonnegative.
11239 * ccl.c (GET_CCL_INT): Remove; no longer needed, since the
11240 integers are now checked earlier. All uses replaced with XINT.
11241 (ccl_driver):
11242 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11243 For CCL_MapSingle, check that content and value are in int range.
11244 (ccl_driver, Fregister_code_conversion_map):
11245 Check that Vcode_version_map_vector is a vector.
11246 (resolve_symbol_ccl_program): Check that vector header is in range.
11247 Always copy the vector, so that we can check its contents reliably
11248 now rather than having to recheck each instruction as it's being
11249 executed. Check that vector words fit in 'int'.
11250 (ccl_get_compiled_code, Fregister_ccl_program)
11251 (Fregister_code_conversion_map): Use ptrdiff_t, not int, for
11252 program indexes, to avoid needless 32-bit limit on 64-bit hosts.
11253 (Fccl_execute, Fccl_execute_on_string): Check that initial reg
11254 contents are in range.
11255 (Fccl_execute_on_string): Check that status is in range.
11256 * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int.
11257 * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers):
11258 Accept and return EMACS_INT, not int, because callers can pass values
11259 out of 'int' range.
11260 (c_string_width, strwidth, lisp_string_width, chars_in_text)
11261 (multibyte_chars_in_text, parse_str_as_multibyte)
11262 (str_as_multibyte, count_size_as_multibyte, str_to_multibyte)
11263 (str_as_unibyte, str_to_unibyte, string_count_byte8)
11264 (string_escape_byte8, Fget_byte):
11265 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11266 (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to
11267 avoid mishandling large integers.
11268 * character.h: Adjust decls to match defn changes elsewhere.
11269 * charset.c (load_charset_map_from_file, find_charsets_in_text)
11270 (Ffind_charset_region):
11271 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11272 (load_charset_map_from_file): Redo idx calculation to avoid overflow.
11273 (load_charset_map_from_vector, Fdefine_charset_internal):
11274 Don't assume fixnum fits in int.
11275 (load_charset_map_from_vector, Fmap_charset_chars):
11276 Remove now-unnecessary CHECK_NATNUMs.
11277 (Fdefine_charset_internal): Check ranges here, more carefully.
11278 Don't rely on undefined behavior with signed left shift overflow.
11279 Don't assume unsigned int fits into fixnum, or that fixnum fits
11280 into unsigned int. Don't require max_code to be a valid fixnum;
11281 that's not true for gb10830 4-byte on a 32-bit host. Allow
11282 invalid_code to be a cons, for the same reason. Require code_offset
11283 to be a character. Avoid int overflow if max_char is close
11284 to INT_MAX.
11285 (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned;
11286 this is intended anyway and avoids some undefined behavior.
11287 (load_charset_map): Pass unsigned, not int, as 2nd arg of
11288 INDEX_TO_CODE_POINT, as that's what it expects.
11289 (Funify_charset, encode_char): Don't stuff unsigned vals into int vars.
11290 * charset.h (DECODE_CHAR): Return int, not unsigned;
11291 this is what was intended anyway, and it avoids undefined behavior.
11292 (CHARSET_OFFSET): Remove unused macro, instead of fixing its
11293 integer-overflow issues.
11294 (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts.
11295 Formerly, it returned EMACS_INT on 64-bit hosts in the common case
11296 where the argument is EMACS_INT, and this behavior is not intended.
11297 * chartab.c (Fmake_char_table, Fset_char_table_range)
11298 (uniprop_get_decoder, uniprop_get_encoder):
11299 Don't assume fixnum fits in int.
11300 * cmds.c (move_point): New function, that does the gist of
11301 Fforward_char and Fbackward_char, but does so while checking
11302 for integer overflow more accurately.
11303 (Fforward_char, Fbackward_char): Use it.
11304 (Fforward_line, Fend_of_line, internal_self_insert)
11305 (internal_self_insert):
11306 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11307 Fix a FIXME, by checking for integer overflow when calculating
11308 target_clm and actual_clm.
11309 * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR)
11310 (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P)
11311 (ASSURE_DESTINATION, coding_alloc_by_realloc)
11312 (coding_alloc_by_making_gap, alloc_destination)
11313 (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16)
11314 (encode_coding_utf_16, detect_coding_emacs_mule)
11315 (decode_coding_emacs_mule, encode_coding_emacs_mule)
11316 (detect_coding_iso_2022, decode_coding_iso_2022)
11317 (encode_invocation_designation, encode_designation_at_bol)
11318 (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
11319 (decode_coding_sjis, decode_coding_big5, encode_coding_sjis)
11320 (encode_coding_big5, detect_coding_ccl, decode_coding_ccl)
11321 (encode_coding_ccl, encode_coding_raw_text)
11322 (detect_coding_charset, decode_coding_charset)
11323 (encode_coding_charset, detect_eol, decode_eol, produce_chars)
11324 (produce_composition, produce_charset, produce_annotation)
11325 (decode_coding, handle_composition_annotation)
11326 (handle_charset_annotation, consume_chars, decode_coding_gap)
11327 (decode_coding_object, encode_coding_object, detect_coding_system)
11328 (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region)
11329 (code_convert_region, code_convert_string)
11330 (Fdefine_coding_system_internal)
11331 (coding_set_source, coding_set_destination):
11332 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11333 (setup_iso_safe_charsets, consume_chars, Funencodable_char_position)
11334 (Fdefine_coding_system_internal):
11335 Don't assume fixnums fit in int.
11336 (decode_coding_gap, decode_coding_object, encode_coding_object)
11337 (Fread_coding_system, Fdetect_coding_region)
11338 (Funencodable_char_position, Fcheck_coding_systems_region)
11339 (get_translation, handle_composition_annotation, consume_chars):
11340 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11341 (consume_chars): Rewrite to not calculate an address outside buffer.
11342 (Ffind_operation_coding_system): NATNUMP can eval its arg twice.
11343 Don't access memory outside of the args array.
11344 (Fdefine_coding_system_internal): Check for charset-id overflow.
11345 (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned
11346 result of ENCODE_CHAR.
11347 * coding.h: Adjust decls to match defn changes elsewhere.
11348 (struct coding_system):
11349 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11350 * composite.c (get_composition_id, find_composition)
11351 (run_composition_function, update_compositions)
11352 (compose_text, composition_gstring_put_cache)
11353 (composition_gstring_p, composition_gstring_width)
11354 (fill_gstring_header, fill_gstring_body, autocmp_chars)
11355 (composition_compute_stop_pos, composition_reseat_it)
11356 (composition_update_it, struct position_record)
11357 (find_automatic_composition, composition_adjust_point)
11358 (Fcomposition_get_gstring, Ffind_composition_internal):
11359 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11360 (update_compositions):
11361 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11362 * composite.h: Adjust decls to match defn changes elsewhere.
11363 (struct composition):
11364 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11365 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
11366 Do not attempt to compute the address of the object just before a
11367 buffer; this is not portable.
11368 (Faref, Faset):
11369 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11370 (Faset): Use int, not EMACS_INT, where int is wide enough.
11371 (Fstring_to_number): Don't assume fixnums fit in int.
11372 (Frem): Don't assume arg is nonnegative.
11373 * dbusbind.c (xd_append_arg): Check for integers out of range.
11374 (Fdbus_call_method): Don't overflow the timeout int.
11375 (extract_signed, extract_unsigned): New functions.
11376 (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned.
11377 (xd_get_connection_references): Return ptrdiff_t, not int.
11378 All uses changed.
11379 (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal)
11380 (xd_read_message_1):
11381 Use int, not unsigned, where the dbus API uses int.
11382 (Fdbus_message_internal): Don't overflow mtype.
11383 (syms_of_dbusbind): Allocate right-sized buffer for integers.
11384 * dired.c (directory_files_internal, file_name_completion, scmp)
11385 (file_name_completion_stat):
11386 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11387 (file_name_completion): Don't overflow matchcount.
11388 (file_name_completion_stat): Use SAFE_ALLOCA, not alloca.
11389 * dispextern.h: Adjust decls to match defn changes elsewhere.
11390 (struct text_pos, struct glyph, struct bidi_saved_info)
11391 (struct bidi_string_data, struct bidi_it, struct composition_it)
11392 (struct it):
11393 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11394 (struct display_pos, struct composition_it, struct it):
11395 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11396 * dispnew.c (increment_matrix_positions)
11397 (increment_row_positions, mode_line_string)
11398 (marginal_area_string):
11399 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11400 (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p):
11401 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11402 (duration_to_sec_usec): New function, to check for overflow better.
11403 (Fsleep_for, sit_for): Use it.
11404 * doc.c (get_doc_string, store_function_docstring):
11405 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11406 (get_doc_string, Fsnarf_documentation):
11407 Use int, not EMACS_INT, where int is wide enough.
11408 (get_doc_string):
11409 Use SAFE_ALLOCA, not alloca.
11410 Check for overflow when converting EMACS_INT to off_t.
11411 * doprnt.c (doprnt):
11412 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11413 * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid):
11414 Don't assume uid_t fits into fixnum.
11415 (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field)
11416 (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
11417 (Ffield_end, Fconstrain_to_field, Fline_beginning_position)
11418 (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before)
11419 (general_insert_function)
11420 (Finsert_char, make_buffer_string, make_buffer_string_both)
11421 (update_buffer_properties, Fbuffer_substring)
11422 (Fbuffer_substring_no_properties, Fcompare_buffer_substrings)
11423 (Fsubst_char_in_region, check_translation)
11424 (Ftranslate_region_internal, save_restriction_restore, Fformat)
11425 (transpose_markers, Ftranspose_regions):
11426 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11427 (clip_to_bounds): Move to lisp.h as an inline function).
11428 (Fconstrain_to_field): Don't assume integers are nonnegative.
11429 (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer):
11430 (Fsubst_char_in_region, Fsave_restriction):
11431 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11432 (Femacs_pid): Don't assume pid_t fits into fixnum.
11433 (lo_time): Use int, not EMACS_INT, when int suffices.
11434 (lisp_time_argument): Check for usec out of range.
11435 (Fencode_time): Don't assume fixnum fits in int.
11436 (Fuser_login_name, Fuser_full_name): Signal an error
11437 if a uid argument is out of range, rather than relying on
11438 undefined behavior.
11439 (Fformat_time_string): Remove now-unnecessary check.
11440 lisp_time_argument checks for out-of-range usec now.
11441 Use ptrdiff_t, not size_t, where ptrdiff_t will do.
11442 * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT.
11443 (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT.
11444 (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT.
11445 (init_cmdargs, Fdump_emacs):
11446 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11447 (Fkill_emacs): Don't assume fixnum fits in int; instead, take just
11448 the bottom (typically) 32 bits of the fixnum.
11449 * eval.c (specpdl_size, call_debugger):
11450 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11451 (when_entered_debugger, Fbacktrace_debug):
11452 Don't assume fixnum can fit in int.
11453 (Fdefvaralias, Fdefvar): Do not attempt to compute the address of
11454 the object just before a buffer; this is not portable.
11455 (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda)
11456 (grow_specpdl, unbind_to):
11457 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11458 (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum.
11459 (grow_specpdl): Simplify allocation by using xpalloc.
11460 (Fprog1, Fprog2): Don't assume list length fits in int. Simplify.
11461 * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file)
11462 (Finsert_file_contents, Fwrite_region, Fdo_auto_save):
11463 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11464 (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents)
11465 (a_write, e_write):
11466 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11467 (Fcopy_file, non_regular_nbytes, read_non_regular)
11468 (Finsert_file_contents):
11469 Use int, not EMACS_INT, where int is wide enough.
11470 (READ_BUF_SIZE): Verify that it fits in int.
11471 (Finsert_file_contents): Check that counts are in proper range,
11472 rather than assuming fixnums fit into ptrdiff_t etc.
11473 Don't assume fixnums fit into int.
11474 * floatfns.c (Fexpt): Avoid undefined signed * signed overflow.
11475 * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat)
11476 (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
11477 (string_char_to_byte, string_byte_to_char)
11478 (string_make_multibyte, string_to_multibyte)
11479 (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte)
11480 (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties)
11481 (substring_both, Fdelete, internal_equal, Ffillarray)
11482 (Fclear_string, mapcar1)
11483 (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
11484 (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
11485 (larger_vector, make_hash_table, maybe_resize_hash_table)
11486 (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table)
11487 (Fmaphash, secure_hash):
11488 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11489 (concat): Check for string index and length overflow.
11490 (Fmapconcat): Don't assume fixnums fit into ptrdiff_t.
11491 (Frequire):
11492 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11493 (larger_vector): New API (vec, incr_min, size_max) replaces old
11494 one (vec, new_size, init). This catches size overflow.
11495 INIT was removed because it was always Qnil.
11496 All callers changed.
11497 (INDEX_SIZE_BOUND): New macro, which calculates more precisely
11498 the upper bound on a hash table index size.
11499 (make_hash_table, maybe_resize_hash_table): Use it.
11500 (secure_hash): Computer start_byte and end_byte only after
11501 they're known to be in ptrdiff_t range.
11502 * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring)
11503 (Ffont_get_glyphs, Ffont_at):
11504 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11505 (font_style_to_value, font_prop_validate_style, font_expand_wildcards)
11506 (Flist_fonts, Fopen_font):
11507 Don't assume fixnum can fit in int.
11508 (check_gstring): Don't assume index can fit in int.
11509 (font_match_p): Check that fixnum is a character, not a nonnegative
11510 fixnum, since the later code needs to stuff it into an int.
11511 (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca.
11512 (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid
11513 conversion overflow issues.
11514 (Fopen_font): Check for integer out of range.
11515 (Ffont_get_glyphs): Don't assume index can fit in int.
11516 * font.h: Adjust decls to match defn changes elsewhere.
11517 * fontset.c (reorder_font_vector): Redo score calculation to avoid
11518 integer overflow.
11519 (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not
11520 printmax_t, where ptrdiff_t is wide enough.
11521 (Finternal_char_font):
11522 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11523 * frame.c (Fset_mouse_position, Fset_mouse_pixel_position)
11524 (Fset_frame_height, Fset_frame_width, Fset_frame_size)
11525 (Fset_frame_position, x_set_frame_parameters)
11526 (x_set_line_spacing, x_set_border_width)
11527 (x_set_internal_border_width, x_set_alpha, x_figure_window_size):
11528 Check that fixnums are in proper range for system types.
11529 (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters):
11530 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11531 (Fmodify_frame_parameters): Don't assume fixnum fits in int.
11532 Use SAFE_ALLOCA_LISP, not alloca.
11533 * frame.h (struct frame): Use intptr_t, not EMACS_INT, where
11534 intptr_t is wide enough.
11535 * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap)
11536 (Fdefine_fringe_bitmap): Don't assume fixnum fits in int.
11537 (Ffringe_bitmaps_at_pos): Don't assume index fits in int.
11538 Check for fixnum out of range.
11539 * ftfont.c (ftfont_list): Don't assume index fits in int.
11540 Check that fixnums are in proper range for system types.
11541 (ftfont_shape_by_flt):
11542 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11543 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
11544 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11545 (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot):
11546 Check that fixnums are in proper range for system types.
11547 * gnutls.h: Adjust decls to match defn changes elsewhere.
11548 * gtkutil.c (xg_dialog_run):
11549 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11550 (update_frame_tool_bar):
11551 Check that fixnums are in proper range for system types.
11552 * image.c (parse_image_spec): Redo count calculation to avoid overflow.
11553 (lookup_image): Check that fixnums are in range for system types.
11554 * indent.c (last_known_column, last_known_column_point):
11555 (current_column_bol_cache):
11556 (skip_invisible, current_column, check_display_width):
11557 (check_display_width, scan_for_column, current_column_1)
11558 (Findent_to, Fcurrent_indentation, position_indentation)
11559 (indented_beyond_p, Fmove_to_column, compute_motion):
11560 (Fcompute_motion, Fvertical_motion):
11561 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11562 (last_known_column_modified): Use EMACS_INT, not int.
11563 (check_display_width):
11564 (Fcompute_motion):
11565 Check that fixnums and floats are in proper range for system types.
11566 (compute_motion): Don't assume index or fixnum fits in int.
11567 (compute_motion, Fcompute_motion):
11568 Use int, not EMACS_INT, when it is wide enough.
11569 (vmotion): Omit local var start_hpos that is always 0; that way
11570 we don't need to worry about overflow in expressions involving it.
11571 * indent.h: Adjust decls to match defn changes elsewhere.
11572 (struct position):
11573 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11574 Use int, not EMACS_INT, where int is wide enough.
11575 Remove unused members ovstring_chars_done and tab_offset;
11576 all uses removed.
11577 * insdel.c (move_gap, move_gap_both, gap_left, gap_right)
11578 (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point)
11579 (adjust_markers_for_replace, make_gap_larger, make_gap_smaller)
11580 (make_gap, copy_text, insert, insert_and_inherit)
11581 (insert_before_markers, insert_before_markers_and_inherit)
11582 (insert_1, count_combining_before, count_combining_after)
11583 (insert_1_both, insert_from_string)
11584 (insert_from_string_before_markers, insert_from_string_1)
11585 (insert_from_gap, insert_from_buffer, insert_from_buffer_1)
11586 (adjust_after_replace, adjust_after_insert, replace_range)
11587 (replace_range_2, del_range, del_range_1, del_range_byte)
11588 (del_range_both, del_range_2, modify_region)
11589 (prepare_to_modify_buffer, signal_before_change)
11590 (signal_after_change, Fcombine_after_change_execute):
11591 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11592 * intervals.c (traverse_intervals, rotate_right, rotate_left)
11593 (balance_an_interval, split_interval_right, split_interval_left)
11594 (find_interval, next_interval, update_interval)
11595 (adjust_intervals_for_insertion, delete_node, delete_interval)
11596 (interval_deletion_adjustment, adjust_intervals_for_deletion)
11597 (static_offset_intervals, offset_intervals)
11598 (merge_interval_right, merge_interval_left, make_new_interval)
11599 (graft_intervals_into_buffer, temp_set_point_both)
11600 (temp_set_point, set_point, adjust_for_invis_intang)
11601 (set_point_both, move_if_not_intangible, get_property_and_range)
11602 (get_local_map, copy_intervals, copy_intervals_to_string)
11603 (compare_string_intervals, set_intervals_multibyte_1):
11604 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11605 * intervals.h: Adjust decls to match defn changes elsewhere.
11606 (struct interval):
11607 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11608 * keyboard.c (this_command_key_count, this_single_command_key_start)
11609 (before_command_key_count, before_command_echo_length, echo_now)
11610 (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse)
11611 (command_loop_1, safe_run_hooks, read_char, timer_check_2)
11612 (menu_item_eval_property, read_key_sequence, Fread_key_sequence)
11613 (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs):
11614 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11615 (last_non_minibuf_size, last_point_position, echo_truncate)
11616 (command_loop_1, adjust_point_for_property, read_char, gen_help_event)
11617 (make_lispy_position, make_lispy_event, parse_modifiers_uncached)
11618 (parse_modifiers, modify_event_symbol, Fexecute_extended_command)
11619 (stuff_buffered_input):
11620 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11621 (last_auto_save, command_loop_1, read_char):
11622 Use EMACS_INT, not int, to avoid integer overflow.
11623 (record_char): Avoid overflow in total_keys computation.
11624 (parse_modifiers_uncached): Redo index calculation to avoid overflow.
11625 * keyboard.h: Adjust decls to match defn changes elsewhere.
11626 * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1)
11627 (Fkey_description, Fdescribe_vector, Flookup_key):
11628 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11629 (click_position): New function, to check that positions are in range.
11630 (Fcurrent_active_maps):
11631 (describe_command):
11632 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11633 (Faccessible_keymaps, Fkey_description):
11634 (preferred_sequence_p):
11635 Don't assume fixnum can fit into int.
11636 (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca.
11637 Check for integer overflow in size calculations.
11638 (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to
11639 avoid mishandling large integers.
11640 * lisp.h: Adjust decls to match defn changes elsewhere.
11641 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String)
11642 (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table)
11643 (struct Lisp_Marker):
11644 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11645 (clip_to_bounds): Now an inline function, moved here from editfns.c.
11646 (GLYPH_CODE_P): Check for overflow in system types, subsuming the
11647 need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves.
11648 All callers changed.
11649 (GLYPH_CODE_CHAR, GLYPH_CODE_FACE):
11650 Assume the arg has valid form, since it always does.
11651 (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide
11652 unsigned integer system type.
11653 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros.
11654 (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA):
11655 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11656 (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum.
11657 (duration_to_sec_usec): New decl.
11658 * lread.c (read_from_string_index, read_from_string_index_byte)
11659 (read_from_string_limit, readchar, unreadchar, openp)
11660 (read_internal_start, read1, oblookup):
11661 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11662 (Fload, readevalloop, Feval_buffer, Feval_region):
11663 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11664 (openp): Check for out-of-range argument to 'access'.
11665 (read1): Use int, not EMACS_INT, where int is wide enough.
11666 Don't assume fixnum fits into int.
11667 Fix off-by-one error that can read outside a buffer.
11668 (read_filtered_event): Use duration_to_sec_usec
11669 to do proper overflow checking on durations.
11670 * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow
11671 in size calculation.
11672 (Fexecute_kbd_macro):
11673 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11674 * marker.c (cached_charpos, cached_bytepos, CONSIDER)
11675 (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos)
11676 (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted)
11677 (set_marker_both, set_marker_restricted_both, marker_position)
11678 (marker_byte_position, Fbuffer_has_markers_at):
11679 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11680 (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int.
11681 * menu.c (ensure_menu_items): Rename from grow_menu_items.
11682 It now merely ensures that the menu is large enough, without
11683 necessarily growing it, as this avoids some integer overflow issues.
11684 All callers changed.
11685 (keymap_panes, parse_single_submenu, Fx_popup_menu):
11686 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11687 (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int.
11688 Use SAFE_ALLOCA_LISP, not alloca.
11689 (find_and_return_menu_selection): Avoid unnecessary casts of pointers
11690 to EMACS_INT. Check that fixnums are in proper range for system types.
11691 * minibuf.c (minibuf_prompt_width, string_to_object)
11692 (Fminibuffer_contents, Fminibuffer_contents_no_properties)
11693 (Fminibuffer_completion_contents, Ftry_completion, Fall_completions):
11694 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11695 (get_minibuffer, read_minibuf_unwind):
11696 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11697 (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil;
11698 this simplifies overflow checking. All callers changed.
11699 (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions)
11700 (Ftest_completion):
11701 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11702 * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long.
11703 (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame):
11704 Check that fixnums are in proper range for system types.
11705 (Fx_create_frame, Fx_show_tip):
11706 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11707 * nsfont.m (ns_findfonts, nsfont_list_family):
11708 Don't assume fixnum fits in long.
11709 * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
11710 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11711 (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is
11712 wide enough.
11713 * nsselect.m (ns_get_local_selection, clean_local_selection_data):
11714 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11715 * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte)
11716 (PRINTDECLARE, PRINTPREPARE):
11717 (strout, print_string):
11718 (print, print_preprocess, print_check_string_charset_prop)
11719 (print_object):
11720 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11721 (PRINTDECLARE):
11722 (temp_output_buffer_setup, Fprin1_to_string, print_object):
11723 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11724 (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough.
11725 (printchar, strout): Use xpalloc to catch size calculation overflow.
11726 (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion.
11727 (print_error_message): Use SAFE_ALLOCA, not alloca.
11728 (print_object): Use int, not EMACS_INT, where int is wide enough.
11729 (print_depth, new_backquote_output, print_number_index):
11730 Use ptrdiff_t, not int, where int might not be wide enough.
11731 * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT.
11732 (Fset_process_window_size, Fformat_network_address)
11733 (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process)
11734 (sigchld_handler):
11735 Check that fixnums are in proper range for system types.
11736 (Fsignal_process): Simplify by avoiding a goto.
11737 Check for process-ids out of pid_t range rather than relying on
11738 undefined behavior.
11739 (process_tick, update_tick): Use EMACS_INT, not int.
11740 (Fformat_network_address, read_process_output, send_process)
11741 (Fprocess_send_region, status_notify):
11742 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11743 (Fformat_network_address, Fmake_serial_process, Fmake_network_process)
11744 (wait_reading_process_output, read_process_output, exec_sentinel):
11745 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11746 (conv_lisp_to_sockaddr): Don't assume fixnums fit into int.
11747 (Faccept_process_output): Use duration_to_sec_usec to do proper
11748 overflow checking on durations.
11749 (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal):
11750 Don't assume pid_t fits in int.
11751 * process.h (struct Lisp_Process): Members tick and update_tick
11752 are now of type EMACS_INT, not int.
11753 * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts
11754 configured --with-wide-int.
11755 * scroll.c (calculate_scrolling, calculate_direct_scrolling)
11756 (line_ins_del): Use int, not EMACS_INT, where int is wide enough.
11757 * search.c (looking_at_1, string_match_1):
11758 (fast_string_match, fast_c_string_match_ignore_case)
11759 (fast_string_match_ignore_case, fast_looking_at, scan_buffer)
11760 (scan_newline, find_before_next_newline, search_command)
11761 (trivial_regexp_p, search_buffer, simple_search, boyer_moore)
11762 (set_search_regs, wordify):
11763 (Freplace_match):
11764 (Fmatch_data):
11765 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11766 (string_match_1, search_buffer, set_search_regs):
11767 (Fmatch_data):
11768 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11769 (wordify): Check for overflow in size calculation.
11770 (Freplace_match): Avoid potential buffer overflow in search_regs.start.
11771 (Fset_match_data): Don't assume fixnum fits in ptrdiff_t.
11772 Check that fixnums are in proper range for system types.
11773 * sound.c (struct sound_device)
11774 (wav_play, au_play, vox_write, alsa_period_size, alsa_write):
11775 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11776 (Fplay_sound_internal):
11777 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11778 * syntax.c (struct lisp_parse_state, find_start_modiff)
11779 (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward):
11780 (Fparse_partial_sexp):
11781 Don't assume fixnums can fit in int.
11782 (struct lisp_parse_state, find_start_pos, find_start_value)
11783 (find_start_value_byte, find_start_begv)
11784 (update_syntax_table, char_quoted, dec_bytepos)
11785 (find_defun_start, prev_char_comend_first, back_comment):
11786 (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment)
11787 (scan_lists, Fbackward_prefix_chars, scan_sexps_forward):
11788 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11789 (Finternal_describe_syntax_value): Check that match_lisp is a
11790 character, not an integer, since the code stuffs it into int.
11791 (scan_words, scan_sexps_forward):
11792 Check that fixnums are in proper range for system types.
11793 (Fforward_word):
11794 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11795 (scan_sexps_forward):
11796 Use CHARACTERP, not INTEGERP, since the value must fit into int.
11797 (Fparse_partial_sexp): Fix doc; element 8 is not ignored.
11798 * syntax.h: Adjust decls to match defn changes elsewhere.
11799 (struct gl_state_s):
11800 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11801 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not
11802 MOST_POSITIVE_FIXNUM.
11803 * sysdep.c (wait_for_termination_1, wait_for_termination)
11804 (interruptible_wait_for_termination, mkdir):
11805 Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit.
11806 (emacs_read, emacs_write):
11807 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11808 (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT,
11809 and double all fit in int.
11810 * term.c (set_tty_color_mode):
11811 Check that fixnums are in proper range for system types.
11812 * termhooks.h (struct input_event):
11813 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11814 * textprop.c (validate_interval_range, interval_of)
11815 (Fadd_text_properties, set_text_properties_1)
11816 (Fremove_text_properties, Fremove_list_of_text_properties)
11817 (Ftext_property_any, Ftext_property_not_all)
11818 (copy_text_properties, text_property_list, extend_property_ranges)
11819 (verify_interval_modification):
11820 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11821 (Fnext_single_char_property_change)
11822 (Fprevious_single_char_property_change):
11823 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11824 (copy_text_properties):
11825 Check for integer overflow in index calculation.
11826 * undo.c (last_boundary_position, record_point, record_insert)
11827 (record_delete, record_marker_adjustment, record_change)
11828 (record_property_change):
11829 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11830 (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int.
11831 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11832 * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
11833 (Fx_hide_tip, Fx_file_dialog):
11834 * w32menu.c (set_frame_menubar):
11835 Use ptrdiff_t, not int, for consistency with rest of code.
11836 * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos)
11837 (select_window, Fdelete_other_windows_internal)
11838 (window_scroll_pixel_based, window_scroll_line_based)
11839 (Frecenter, Fset_window_configuration):
11840 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11841 (Fset_window_hscroll, run_window_configuration_change_hook)
11842 (set_window_buffer, temp_output_buffer_show, scroll_command)
11843 (Fscroll_other_window, Frecenter):
11844 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11845 (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right):
11846 Don't assume fixnum fits in int.
11847 (Fset_window_scroll_bars):
11848 Check that fixnums are in proper range for system types.
11849 * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead)
11850 (string_pos, c_string_pos, number_of_chars, init_iterator)
11851 (in_ellipses_for_invisible_text_p, init_from_display_pos)
11852 (compute_stop_pos, next_overlay_change, compute_display_string_pos)
11853 (compute_display_string_end, handle_face_prop)
11854 (face_before_or_after_it_pos, handle_invisible_prop)
11855 (handle_display_prop, handle_display_spec, handle_single_display_spec)
11856 (display_prop_intangible_p, string_buffer_position_lim)
11857 (string_buffer_position, handle_composition_prop, load_overlay_strings)
11858 (get_overlay_strings_1, get_overlay_strings)
11859 (iterate_out_of_display_property, forward_to_next_line_start)
11860 (back_to_previous_visible_line_start, reseat, reseat_to_string)
11861 (get_next_display_element, set_iterator_to_next)
11862 (get_visually_first_element, compute_stop_pos_backwards)
11863 (handle_stop_backwards, next_element_from_buffer)
11864 (move_it_in_display_line_to, move_it_in_display_line)
11865 (move_it_to, move_it_vertically_backward, move_it_by_lines)
11866 (add_to_log, message_dolog, message_log_check_duplicate)
11867 (message2, message2_nolog, message3, message3_nolog
11868 (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1)
11869 (current_message_1, truncate_echo_area, truncate_message_1)
11870 (set_message, set_message_1, store_mode_line_noprop)
11871 (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos)
11872 (text_outside_line_unchanged_p, check_point_in_composition)
11873 (reconsider_clip_changes)
11874 (redisplay_internal, set_cursor_from_row, try_scrolling)
11875 (try_cursor_movement, set_vertical_scroll_bar, redisplay_window)
11876 (redisplay_window, find_last_unchanged_at_beg_row)
11877 (find_first_unchanged_at_end_row, row_containing_pos, try_window_id)
11878 (trailing_whitespace_p, find_row_edges, display_line)
11879 (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction)
11880 (display_mode_element, store_mode_line_string)
11881 (pint2str, pint2hrstr, decode_mode_spec)
11882 (display_count_lines, display_string, draw_glyphs)
11883 (x_produce_glyphs, x_insert_glyphs)
11884 (rows_from_pos_range, mouse_face_from_buffer_pos)
11885 (fast_find_string_pos, mouse_face_from_string_pos)
11886 (note_mode_line_or_margin_highlight, note_mouse_highlight):
11887 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11888 (safe_call, init_from_display_pos, handle_fontified_prop)
11889 (handle_single_display_spec, load_overlay_strings)
11890 (with_echo_area_buffer, setup_echo_area_for_printing)
11891 (display_echo_area, echo_area_display)
11892 (x_consider_frame_title, prepare_menu_bars, update_menu_bar)
11893 (update_tool_bar, hscroll_window_tree, redisplay_internal)
11894 (redisplay_window, dump_glyph_row, display_mode_line)
11895 (Fformat_mode_line, decode_mode_spec, on_hot_spot_p):
11896 (handle_display_spec, display_prop_string_p):
11897 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11898 (handle_single_display_spec, build_desired_tool_bar_string)
11899 (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix)
11900 (get_specified_cursor_type):
11901 Check that fixnums are in proper range for system types.
11902 (struct overlay_entry, resize_mini_window, Fdump_glyph_row)
11903 (Flookup_image_map):
11904 Don't assume fixnums fit in int.
11905 (compare_overlay_entries):
11906 Avoid mishandling comparisons due to subtraction overflow.
11907 (load_overlay_strings): Use SAFE_NALLOCA, not alloca.
11908 (last_escape_glyph_face_id, last_glyphless_glyph_face_id):
11909 (handle_tool_bar_click):
11910 Use int, not unsigned, since we prefer signed and the signedness
11911 doesn't matter here.
11912 (get_next_display_element, next_element_from_display_vector):
11913 Use int, not EMACS_INT, when int is wide enough.
11914 (start_hourglass): Use duration_to_sec_usec to do proper
11915 overflow checking on durations.
11916 * xfaces.c (Fbitmap_spec_p):
11917 Check that fixnums are in proper range for system types.
11918 (compare_fonts_by_sort_order):
11919 Avoid mishandling comparisons due to subtraction overflow.
11920 (Fx_family_fonts, realize_basic_faces):
11921 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11922 (Fx_family_fonts):
11923 Don't assume fixnum fits in int.
11924 Use SAFE_ALLOCA_LISP, not alloca.
11925 (merge_face_heights): Remove unnecessary cast to EMACS_INT.
11926 (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID.
11927 (face_at_buffer_position, face_for_overlay_string)
11928 (face_at_string_position):
11929 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11930 (merge_faces): Use int, not EMACS_INT, where int is wide enough.
11931 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify)
11932 (Fx_show_tip):
11933 Check that fixnums are in proper range for system types.
11934 (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
11935 (Fx_hide_tip, Fx_file_dialog, Fx_select_font):
11936 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11937 (Fx_change_window_property): Don't assume fixnums fit in int.
11938 * xfont.c (xfont_chars_supported):
11939 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11940 * xmenu.c (Fx_popup_dialog, set_frame_menubar)
11941 (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
11942 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11943 * xml.c (parse_region):
11944 * xrdb.c (magic_file_p):
11945 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11946 * xselect.c (TRACE1): Don't assume pid_t promotes to int.
11947 (x_get_local_selection, x_reply_selection_request)
11948 (x_handle_selection_request, wait_for_property_change):
11949 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11950 (selection_data_to_lisp_data): Use short, not EMACS_INT, where
11951 short is wide enough.
11952 (x_send_client_event): Don't assume fixnum fits in int.
11953 * xterm.c (x_x_to_emacs_modifiers):
11954 Don't assume EMACS_INT overflows nicely into int.
11955 (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values
11956 may come from Lisp.
11957 (handle_one_xevent): NATNUMP can eval its arg twice.
11958 (x_connection_closed):
11959 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11960 * xterm.h: Adjust decls to match defn changes elsewhere.
11961 (struct scroll_bar): Use struct vectorlike_header
11962 rather than rolling our own approximation.
11963 (SCROLL_BAR_VEC_SIZE): Remove; not used.
11964
11965 2012-05-25 Glenn Morris <rgm@gnu.org>
11966
11967 * lisp.mk (lisp): Update for more files being compiled now.
11968
11969 2012-05-25 Stefan Monnier <monnier@iro.umontreal.ca>
11970
11971 * lread.c: Remove `read_pure' which makes no difference.
11972 (read_pure): Remove var.
11973 (unreadpure): Remove function.
11974 (readevalloop): Don't call read_list with -1 flag.
11975 (read1, read_vector): Don't test read_pure any more.
11976 (read_list): Simplify.
11977
11978 * fileio.c, character.h: Minor style tweaks.
11979
11980 2012-05-24 Dmitry Antipov <dmantipov@yandex.ru>
11981
11982 * window.h (clip_changed): Remove useless declaration.
11983
11984 2012-05-22 Juanma Barranquero <lekktu@gmail.com>
11985
11986 * makefile.w32-in: Follow-up to 2012-05-22T16:20:27Z!eggert@cs.ucla.edu.
11987 (TAGS, TAGS-gmake, CONFIG_H): Remove further references to m/intel386.h.
11988
11989 2012-05-22 Paul Eggert <eggert@cs.ucla.edu>
11990
11991 Remove src/m/*.
11992 This directory predates autoconf and is no longer needed nowadays.
11993 Move its few remaining bits of functionality to where they're needed.
11994 * m/README, m/alpha.h, m/amdx86-64.h, m/ia64.h, m/ibmrs6000.h:
11995 * m/ibms390x.h, m/intel386.h, m/m68k.h, m/macppc.h, m/sparc.h:
11996 * m/template.h: Remove.
11997 * Makefile.in (M_FILE): Remove. All uses removed.
11998 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS):
11999 * lisp.h (USE_LSB_TAG):
12000 * mem-limits.h (EXCEEDS_LISP_PTR):
12001 Use VAL_MAX, not VALBITS, in #if.
12002 * lisp.h (EMACS_INT_MAX): New macro, useful in #if.
12003 (EMACS_UINT): Define unconditionally now.
12004 (BITS_PER_CHAR, BITS_PER_SHORT, BITS_PER_INT, BITS_PER_LONG)
12005 (BITS_PER_EMACS_INT): New constants, replacing
12006 what used to be in config.h, but not useful in #if.
12007 (GCTYPEBITS, VALBITS): Define unconditionally, since m/* files don't
12008 define them any more.
12009 (VAL_MAX): New macro.
12010 (VALMASK): Use it.
12011 * puresize.h (PURESIZE_RATIO): Use EMACS_INT_MAX, not
12012 BITS_PER_EMACS_INT, in #if.
12013 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
12014 (BROKEN_SIGPOLL): Move here from m/ibmrs6000.h, which was removed.
12015 * s/gnu-linux.h (ULIMIT_BREAK_VALUE) [__i386__]:
12016 * s/ms-w32.h (DATA_START):
12017 Move here from removed file m/intel386.h.
12018 * s/gnu.h (NLIST_STRUCT): Remove undef; 'configure' does this.
12019 * s/irix6-5.h (_LP64): Remove; lisp.h no longer needs this.
12020
12021 2012-05-21 Paul Eggert <eggert@cs.ucla.edu>
12022
12023 Assume C89 or later.
12024 * alloc.c, buffer.c, lisp.h: Replace POINTER_TYPE with void.
12025 * alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc)
12026 (xrealloc):
12027 * buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts.
12028 * editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL):
12029 * textprop.c, tparam.c (NULL): Remove.
12030 * ralloc.c, vm-limit.c (POINTER): Assume void * works.
12031 * regex.c (SIGN_EXTEND_CHAR): Assume signed char works.
12032 * regex.h (_RE_ARGS): Remove. All uses rewritten to use prototypes.
12033 * unexelf.c (ElfBitsW): Assume c89 preprocessor or better.
12034 * xterm.c (input_signal_count): Assume volatile works.
12035
12036 2012-05-21 Ken Brown <kbrown@cornell.edu>
12037
12038 * xgselect.c (xg_select): Fix first argument in call to 'select'
12039 (bug#11508).
12040
12041 2012-05-20 Ken Brown <kbrown@cornell.edu>
12042
12043 * gmalloc.c (_free_internal_nolock, _realloc_internal_nolock)
12044 [CYGWIN]: Cast ptr to (char *) before comparing to _heapbase.
12045
12046 2012-05-19 Ken Brown <kbrown@cornell.edu>
12047
12048 * xfns.c (x_in_use): Remove `static' qualifier.
12049 * xterm.h (x_in_use): Declare.
12050 * xgselect.c: Include xterm.h.
12051 (xg_select): Test `x_in_use' instead of `inhibit_window_system'
12052 and `display_arg' (bug#9754).
12053
12054 2012-05-19 Paul Eggert <eggert@cs.ucla.edu>
12055
12056 * s/ms-w32.h (HAVE_GETDOMAINNAME): Remove; not needed.
12057
12058 * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed.
12059 * s/ms-w32.h (HAVE_FTIME): Remove; not needed.
12060
12061 2012-05-18 Eli Zaretskii <eliz@gnu.org>
12062
12063 Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows.
12064
12065 * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font.
12066 (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c.
12067
12068 * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken
12069 reference to image_cache->refcount.
12070 (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE.
12071
12072 2012-05-17 Juri Linkov <juri@jurta.org>
12073
12074 * search.c (Fword_search_regexp, Fword_search_backward)
12075 (Fword_search_forward, Fword_search_backward_lax)
12076 (Fword_search_forward_lax): Move functions to isearch.el
12077 (bug#10145, bug#11381).
12078
12079 2012-05-16 Paul Eggert <eggert@cs.ucla.edu>
12080
12081 * xgselect.c (xg_select): Just invoke 'select' if -nw (Bug#9754).
12082
12083 2012-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
12084
12085 * lread.c (init_obarray): Declare Qt and Qnil as special.
12086
12087 2012-05-14 Glenn Morris <rgm@gnu.org>
12088
12089 * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec").
12090 Put "libexec" before "bin", for the sake of init_callproc_1.
12091
12092 2012-05-14 Paul Eggert <eggert@cs.ucla.edu>
12093
12094 * keyboard.c (kbd_buffer_get_event) [!HAVE_DBUS]: Omit unused local.
12095
12096 * unexaix.c: Port to more-recent AIX compilers.
12097 (report_error, report_error_1, make_hdr, copy_sym)
12098 (mark_x, adjust_lnnoptrs, unrelocate_symbols):
12099 Make arguments const char *, not char *, to avoid violations of C
12100 standard and to fix some AIX warnings reported by Gilles Pion.
12101
12102 2012-05-14 Eli Zaretskii <eliz@gnu.org>
12103
12104 * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we
12105 already have overlays loaded.
12106 (handle_single_display_spec): Before returning without displaying
12107 fringe bitmap, synchronize the bidi iterator with the main display
12108 iterator, by calling iterate_out_of_display_property.
12109 (iterate_out_of_display_property): Detect buffer iteration by
12110 testing that it->string is a Lisp string.
12111 (get_next_display_element): When the current object is exhausted,
12112 and there's something on it->stack, call set_iterator_to_next to
12113 proceed with what's on the stack, instead of returning zero.
12114 (set_iterator_to_next): If called at the end of a Lisp string,
12115 proceed to consider_string_end without incrementing string
12116 position. Don't increment display vector index past the end of
12117 the display vector. (Bug#11417)
12118 (pos_visible_p): Don't report a position visible when move_it_to
12119 stopped at the last line of window, which happens to be scanned
12120 backwards by the bidi iteration. (Bug#11464)
12121
12122 2012-05-14 Eli Zaretskii <eliz@gnu.org>
12123
12124 * xdisp.c (handle_single_display_spec): Return 1 for left-margin
12125 and right-margin display specs even if the spec is invalid or we
12126 are on a TTY, and thus unable to display on the fringes.
12127 That's because the text with the property will not be displayed anyway,
12128 so we need to signal to the caller that this is a "replacing"
12129 display spec. This fixes display when the spec is invalid or we
12130 are on a TTY.
12131
12132 2012-05-14 Paul Eggert <eggert@cs.ucla.edu>
12133
12134 * unexaix.c (make_hdr): Fix typo in prototype.
12135 This bug broke the build on AIX. Problem reported by Gilles Pion.
12136
12137 2012-05-14 Michael Albinus <michael.albinus@gmx.de>
12138
12139 * keyboard.c (kbd_buffer_get_event): Read special events also in
12140 batch mode. (Bug#11415)
12141
12142 2012-05-12 Glenn Morris <rgm@gnu.org>
12143
12144 * ns.mk: Update for ns_appbindir no longer having trailing "/".
12145
12146 2012-05-12 Eli Zaretskii <eliz@gnu.org>
12147
12148 * lisp.mk (lisp): Add newcomment.elc.
12149
12150 2012-05-12 Glenn Morris <rgm@gnu.org>
12151
12152 * Makefile.in (MKDIR_P): New, set by configure.
12153 * ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P.
12154
12155 2012-05-11 Paul Eggert <eggert@cs.ucla.edu>
12156
12157 Remove unused function hourglass_started.
12158 * dispextern.h (hourglass_started):
12159 * w32fns.c (hourglass_started):
12160 * xdisp.c (hourglass_started): Remove.
12161
12162 2012-05-10 Juanma Barranquero <lekktu@gmail.com>
12163
12164 * makefile.w32-in ($(BLD)/gmalloc.$(O), $(BLD)/w32menu.$(O)):
12165 Update dependencies.
12166
12167 2012-05-10 Paul Eggert <eggert@cs.ucla.edu>
12168
12169 * xgselect.c (xg_select): Put maxfds+1 into a var.
12170 This is slightly clearer, and pacifies Ubuntu 12.04 gcc.
12171
12172 * sound.c (DEFAULT_ALSA_SOUND_DEVICE): Define only if HAVE_ALSA.
12173
12174 2012-05-10 Dave Abrahams <dave@boostpro.com>
12175
12176 * filelock.c (syms_of_filelock): New boolean create-lockfiles.
12177 (lock_file): If create_lockfiles is 0, do nothing. (Bug#11227)
12178
12179 2012-05-09 Michael Albinus <michael.albinus@gmx.de>
12180
12181 * dbusbind.c (xd_registered_buses): New internal Lisp object.
12182 Rename all occurrences of Vdbus_registered_buses to xd_registered_buses.
12183 (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
12184 Initialize xd_registered_buses.
12185
12186 2012-05-09 Paul Eggert <eggert@cs.ucla.edu>
12187
12188 Untag more efficiently if USE_LSB_TAG.
12189 This is based on a proposal by YAMAMOTO Mitsuharu in
12190 <http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg01876.html>.
12191 For an admittedly artificial (nth 8000 longlist) benchmark on
12192 Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks
12193 Emacs's overall text size by 1%.
12194 * lisp.h (XUNTAG): New macro.
12195 (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW)
12196 (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR)
12197 (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it.
12198 * eval.c (Fautoload):
12199 * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT):
12200 * frame.h (XFRAME): Use XUNTAG.
12201
12202 Port recent dbusbind.c changes to 32-bit --with-wide-int.
12203 * dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal):
12204 Remove unportable assumptions about print widths of types like
12205 dbus_uint32_t.
12206 (xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to
12207 intptr_t when converting between pointer and integer, to avoid GCC
12208 warnings about wrong width.
12209
12210 2012-05-09 Eli Zaretskii <eliz@gnu.org>
12211
12212 * w32proc.c (new_child): Force Windows to reserve only 64KB of
12213 stack for each reader_thread, instead of defaulting to 8MB
12214 determined by the linker. This avoids failures in creating
12215 subprocesses on Windows 7, see the discussion in this thread:
12216 http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html.
12217
12218 2012-05-07 Jérémy Compostella <jeremy.compostella@gmail.com>
12219
12220 Fix up display of the *Minibuf-0* buffer in the mini window.
12221 * keyboard.c (read_char): Don't clear the echo area if there's no
12222 message to clear.
12223 * xdisp.c (redisplay_internal): Redisplay the mini window (with the
12224 contents of *Minibuf-0*) if there's no message displayed in its stead.
12225
12226 2012-05-07 Michael Albinus <michael.albinus@gmx.de>
12227
12228 * dbusbind.c (XD_DEBUG_MESSAGE): Don't print message twice in
12229 batch mode.
12230
12231 2012-05-06 Chong Yidong <cyd@gnu.org>
12232
12233 * lisp.mk (lisp): Update.
12234
12235 2012-05-05 Jim Meyering <meyering@redhat.com>
12236
12237 * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372).
12238
12239 2012-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
12240
12241 * data.c (PUT_ERROR): New macro.
12242 (syms_of_data): Use it. Add new error type `user-error'.
12243 * undo.c (user_error): New function.
12244 (Fprimitive_undo): Use it.
12245 * print.c (print_error_message): Adjust print style for `user-error'.
12246 * keyboard.c (user_error): New function.
12247 (Fexit_recursive_edit, Fabort_recursive_edit): Use it.
12248
12249 2012-05-03 Paul Eggert <eggert@cs.ucla.edu>
12250
12251 Do not limit current-time-string to years 1000..9999.
12252 * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
12253 (Fcurrent_time_string): Support any year that is supported by the
12254 underlying localtime representation. Don't use asctime, as it
12255 has undefined behavior for years outside the range -999..9999.
12256
12257 2012-05-02 Paul Eggert <eggert@cs.ucla.edu>
12258
12259 Fix race conditions involving setenv, gmtime, localtime, asctime.
12260 Without this fix, interrupts could mess up code that uses these
12261 nonreentrant functions, since setting TZ invalidates existing
12262 tm_zone or tzname values, and since most of these functions return
12263 pointers to static storage.
12264 * editfns.c (format_time_string, Fdecode_time, Fencode_time)
12265 (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
12266 Grow the critical sections to include not just invoking
12267 localtime/gmtime, but also accessing these functions' results
12268 including their tm_zone values if any, and any related TZ setting.
12269 (format_time_string): Last arg is now struct tm *, not struct tm **,
12270 so that the struct tm is saved in the critical section.
12271 All callers changed. Simplify allocation of initial buffer, partly
12272 motivated by the fact that memory allocation needs to be outside
12273 the critical section.
12274
12275 2012-05-02 Dmitry Antipov <dmantipov@yandex.ru>
12276
12277 * intervals.c (adjust_intervals_for_insertion): Initialize `newi'
12278 with RESET_INTERVAL.
12279
12280 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
12281 Remove duplicated buffer name initialization.
12282
12283 2012-05-02 Jim Meyering <jim@meyering.net>
12284
12285 * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373).
12286
12287 * xfns.c (x_window): Use xstrdup (Bug#11375).
12288
12289 2012-05-02 Eli Zaretskii <eliz@gnu.org>
12290
12291 * xdisp.c (pos_visible_p): If already at a newline from the
12292 display string before the 'while' loop, don't walk back the glyphs
12293 from it3.glyph_row. Solves assertion violation when the display
12294 string begins with a newline (egg.el). (Bug#11367)
12295
12296 2012-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
12297
12298 * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings):
12299 Move to simple.el.
12300
12301 2012-05-01 Glenn Morris <rgm@gnu.org>
12302
12303 * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in
12304 s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h),
12305 and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10).
12306 All were removed before 23.1.
12307
12308 * dispnew.c: Remove HAVE_LIBNCURSES test;
12309 it is always true on relevant platforms.
12310
12311 * Makefile.in (LD_SWITCH_X_SITE_RPATH):
12312 Rename from LD_SWITCH_X_SITE_AUX_RPATH.
12313
12314 * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used.
12315
12316 2012-04-30 Andreas Schwab <schwab@linux-m68k.org>
12317
12318 * .gdbinit (xpr): Remove checks for no longer existing misc types.
12319 (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal):
12320 Remove.
12321
12322 2012-04-28 Paul Eggert <eggert@cs.ucla.edu>
12323
12324 Do not avoid creating empty evaporating overlays (Bug#9642).
12325 * buffer.c (Fmove_overlay): Revert the change of 2012-04-23.
12326 That is, do not delete an evaporating overlay if it becomes
12327 empty after its bounds are adjusted to fit within its buffer.
12328 This fix caused other problems, and I'm reverting it until we get
12329 to the bottom of them.
12330
12331 2012-04-27 Chong Yidong <cyd@gnu.org>
12332
12333 * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
12334
12335 2012-04-27 Eli Zaretskii <eliz@gnu.org>
12336
12337 * xdisp.c (pos_visible_p): If the window start position is beyond
12338 ZV, start the display from buffer beginning. Prevents assertion
12339 violation in init_iterator when the minibuffer window is scrolled
12340 via the scroll bar.
12341
12342 * window.c (window_scroll_pixel_based): Likewise.
12343
12344 2012-04-27 Chong Yidong <cyd@gnu.org>
12345
12346 * keymap.c (where_is_internal): Doc fix (Bug#10872).
12347
12348 2012-04-27 Glenn Morris <rgm@gnu.org>
12349
12350 * fileio.c (Fcopy_file, Fset_file_selinux_context):
12351 Ignore ENOTSUP failures from setfilecon functions. (Bug#11245)
12352
12353 2012-04-27 Eli Zaretskii <eliz@gnu.org>
12354
12355 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers):
12356 Don't overrun array limits of glyph row's used[] array. (Bug#11288)
12357
12358 2012-04-26 Eli Zaretskii <eliz@gnu.org>
12359
12360 * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
12361 display element, check also the underlying string or buffer
12362 character. (Bug#11341)
12363
12364 * w32menu.c: Include w32heap.h.
12365 (add_menu_item): If the call to AppendMenuW (via
12366 unicode_append_menu) fails, disable Unicode menus only if we are
12367 running on Windows 9X/Me.
12368
12369 2012-04-24 Andreas Schwab <schwab@linux-m68k.org>
12370
12371 * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS.
12372 (xgetint): Add missing shift for LSB tags.
12373
12374 2012-04-24 Martin Rudalics <rudalics@gmx.at>
12375
12376 * keyboard.c (read_char): Don't wipe echo area for select window
12377 events: These might get delayed via `mouse-autoselect-window'
12378 (Bug#11304).
12379
12380 2012-04-24 Juanma Barranquero <lekktu@gmail.com>
12381
12382 * gnutls.c (init_gnutls_functions): Protect against (unlikely)
12383 manipulation of :loaded-from data.
12384
12385 2012-04-23 Juanma Barranquero <lekktu@gmail.com>
12386
12387 * gnutls.c (init_gnutls_functions): The value of :loaded-from is
12388 now a cons (bug#11311).
12389
12390 2012-04-23 Paul Eggert <eggert@cs.ucla.edu>
12391
12392 Do not create empty overlays with the evaporate property (Bug#9642).
12393 * buffer.c (Fmove_overlay): Delete an evaporating overlay
12394 if it becomes empty after its bounds are adjusted to fit within
12395 its buffer. Without this fix, in a nonempty buffer (let ((o
12396 (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1))
12397 yields an empty overlay that has the evaporate property, which is
12398 not supposed to happen.
12399
12400 Fix minor GTK3 problems found by static checking.
12401 * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
12402 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
12403 (struct _EmacsFixedClass, emacs_fixed_get_type):
12404 Move decls here from emacsgtkfixed.h, since they needn't be public.
12405 (emacs_fixed_get_type): Now static.
12406 (emacs_fixed_class_init): Omit unused local.
12407 (emacs_fixed_child_type): Remove; unused.
12408 * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
12409 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
12410 (struct _EmacsFixedClass): Move to emacsgtkfixed.c.
12411 (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS)
12412 (EMACS_FIXED_GET_CLASS): Remove; unused.
12413 * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local.
12414
12415 * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO.
12416 Problem reported by Juanma Barranquero for Windows -Wunused-function.
12417
12418 2012-04-22 Paul Eggert <eggert@cs.ucla.edu>
12419
12420 Modernize and clean up gmalloc.c to assume C89 (Bug#9119).
12421 * gmalloc.c (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t)
12422 (__malloc_size_t, __malloc_ptrdiff_t):
12423 Remove. All uses removed, replaced by the definiens if needed,
12424 since we can assume C89 or better now.
12425 Include <stdint.h>, for PTRDIFF_MAX, uintptr_t.
12426 (protect_malloc_state, align, get_contiguous_space)
12427 (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
12428 (malloc_atfork_handler_child, malloc_enable_thread)
12429 (malloc_initialize_1, __malloc_initialize, morecore_nolock)
12430 (_malloc_internal_nolock, _malloc_internal, malloc, _malloc)
12431 (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree)
12432 (special_realloc, _realloc_internal_nolock, _realloc_internal)
12433 (realloc, calloc, __default_morecore, memalign, valloc, checkhdr)
12434 (freehook, mallochook, reallochook, mabort, mcheck, mprobe):
12435 Define using prototypes, not old style.
12436 (align, _malloc_internal_nolock, _free_internal_nolock, memalign):
12437 Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long.
12438 (align): Don't assume that signed integer overflow wraps around.
12439 Omit unused local var.
12440 (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock)
12441 (_free_internal_nolock, memalign, mallochook, reallochook):
12442 Omit no-longer-needed casts.
12443 (valloc): Use getpagesize, not __getpagesize.
12444 (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit.
12445 (struct hdr): The 'magic' member is now size_t, not unsigned long.
12446
12447 * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed.
12448
12449 2012-04-22 Michael Albinus <michael.albinus@gmx.de>
12450
12451 Move functions from C to Lisp. Make non-blocking method calls
12452 the default. Implement further D-Bus standard interfaces.
12453
12454 * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare.
12455 (QCdbus_request_name_allow_replacement)
12456 (QCdbus_request_name_replace_existing)
12457 (QCdbus_request_name_do_not_queue)
12458 (QCdbus_request_name_reply_primary_owner)
12459 (QCdbus_request_name_reply_in_queue)
12460 (QCdbus_request_name_reply_exists)
12461 (QCdbus_request_name_reply_already_owner): Move to dbus.el.
12462 (QCdbus_registered_serial, QCdbus_registered_method)
12463 (QCdbus_registered_signal): New Lisp objects.
12464 (XD_DEBUG_MESSAGE): Use sizeof.
12465 (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING)
12466 (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT)
12467 (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH)
12468 (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros.
12469 (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL.
12470 (xd_signature, xd_append_arg): Allow float for integer types.
12471 (xd_get_connection_references): New function.
12472 (xd_get_connection_address): Rename from xd_initialize.
12473 Return cached address.
12474 (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS.
12475 (xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp
12476 level.
12477 (Fdbus_init_bus): New optional arg PRIVATE. Cache address.
12478 Return number of refcounts.
12479 (Fdbus_get_unique_name): Make stronger parameter check.
12480 (Fdbus_message_internal): New defun.
12481 (Fdbus_call_method, Fdbus_call_method_asynchronously)
12482 (Fdbus_method_return_internal, Fdbus_method_error_internal)
12483 (Fdbus_send_signal, Fdbus_register_service)
12484 (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el.
12485 (xd_read_message_1): Obey new structure of Vdbus_registered_objects.
12486 (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses.
12487 (Vdbus_compiled_version, Vdbus_runtime_version)
12488 (Vdbus_message_type_invalid, Vdbus_message_type_method_call)
12489 (Vdbus_message_type_method_return, Vdbus_message_type_error)
12490 (Vdbus_message_type_signal): New defvars.
12491 (Vdbus_registered_buses, Vdbus_registered_objects_table):
12492 Adapt docstring.
12493
12494 2012-04-22 Paul Eggert <eggert@cs.ucla.edu>
12495
12496 Fix GC_MALLOC_CHECK debugging output on 64-bit hosts.
12497 * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]:
12498 Do not assume ptrdiff_t is the same width as 'int'.
12499
12500 * alloc.c: Handle unusual debugging option combinations.
12501 (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK,
12502 since the two debugging options are incompatible.
12503 (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS
12504 is defined.
12505 (mem_init, mem_insert, mem_insert_fixup):
12506 Define if GC_MARK_STACK || GC_MALLOC_CHECK.
12507 (NEED_MEM_INSERT): Remove; no longer needed.
12508
12509 2012-04-22 Leo Liu <sdl.web@gmail.com>
12510
12511 * sysdep.c (list_system_processes): Support Darwin (Bug#5725).
12512
12513 2012-04-22 Paul Eggert <eggert@cs.ucla.edu>
12514
12515 * sysdep.c [__FreeBSD__]: Minor cleanups.
12516 (list_system_processes, system_process_attributes) [__FreeBSD__]:
12517 Use Emacs indenting style more consistently. Avoid some casts.
12518 Use 'double' consistently rather than mixing 'float' and 'double'.
12519
12520 2012-04-21 Eduard Wiebe <usenet@pusto.de>
12521
12522 * sysdep.c (list_system_processes, system_process_attributes):
12523 Add implementation for FreeBSD (Bug#5243).
12524
12525 2012-04-21 Andreas Schwab <schwab@linux-m68k.org>
12526
12527 * lisp.mk (lisp): Update.
12528
12529 2012-04-20 Paul Eggert <eggert@cs.ucla.edu>
12530
12531 * keyboard.c (process_pending_signals): Define only if SYNC_INPUT.
12532 It is never used otherwise.
12533
12534 2012-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
12535
12536 * print.c (print_preprocess): Only check print_depth if print-circle
12537 is nil.
12538 (print_object): Check for cycles even when print-circle is nil and
12539 print-gensym is t, but only check print_depth if print-circle is nil.
12540
12541 2012-04-20 Chong Yidong <cyd@gnu.org>
12542
12543 * process.c (wait_reading_process_output): If EIO occurs on a pty,
12544 set the status to "failed" and ensure that sentinel is run.
12545
12546 2012-04-20 Glenn Morris <rgm@gnu.org>
12547
12548 * process.c (Fset_process_inherit_coding_system_flag)
12549 (Fset_process_query_on_exit_flag): Doc fix (mention return value).
12550 (Fmake_network_process, Fmake_serial_process): Doc fix.
12551
12552 2012-04-20 Eli Zaretskii <eliz@gnu.org>
12553
12554 * xdisp.c (string_buffer_position_lim): Limit starting position to
12555 BEGV.
12556 (set_cursor_from_row): If called for a mode-line or header-line
12557 row, return zero immediately.
12558 (try_cursor_movement): If inside continuation line, don't back up
12559 farther than the first row after the header line, if any.
12560 Don't consider the header-line row as "partially visible", even if
12561 MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261)
12562
12563 2012-04-20 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
12564
12565 * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n"
12566 (bug#11238).
12567
12568 2012-04-20 Teodor Zlatanov <tzz@lifelogs.com>
12569 2012-04-18 Paul Eggert <eggert@cs.ucla.edu>
12570
12571 configure: new option --enable-gcc-warnings (Bug#11207)
12572 * Makefile.in (C_WARNINGS_SWITCH): Remove.
12573 (WARN_CFLAGS, WERROR_CFLAGS): New macros.
12574 (ALL_CFLAGS): Use new macros rather than old.
12575 * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904.
12576 * regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore
12577 -Wunused-but-set-variable, -Wunused-function, -Wunused-macros,
12578 -Wunused-result, -Wunused-variable. This should go away once
12579 the Emacs and Gnulib regex code is merged.
12580 (xmalloc, xrealloc): Now static.
12581
12582 2012-04-17 Paul Eggert <eggert@cs.ucla.edu>
12583
12584 * dired.c (Fsystem_groups): Remove unused local.
12585
12586 2012-04-17 Glenn Morris <rgm@gnu.org>
12587
12588 * dired.c (Fsystem_users): Doc fix.
12589
12590 2012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
12591
12592 * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900)
12593 (syms_of_dired): Add them.
12594
12595 2012-04-16 Paul Eggert <eggert@cs.ucla.edu>
12596
12597 Fix minor alloc.c problems found by static checking.
12598 * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]:
12599 New extern decls, to avoid calling undeclared functions.
12600 (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT)
12601 && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined
12602 GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used.
12603 (NEED_MEM_INSERT): New macro.
12604 (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused.
12605 Remove one incorrect comment and fix another.
12606
12607 Fix minor ralloc.c problems found by static checking.
12608 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
12609 * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
12610 (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
12611 (r_alloc_sbrk): Now static.
12612
12613 Improve ralloc.c interface checking.
12614 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
12615 * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
12616 (r_alloc_free) [REL_ALLOC]: Move decls from here ...
12617 * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
12618 [REL_ALLOC]: ... to here, to check interface.
12619 * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
12620 Remove decls. This fixes an "It stinks!".
12621
12622 * alloc.c (which_symbols): Fix alignment issue / type clash.
12623
12624 2012-04-15 Andreas Schwab <schwab@linux-m68k.org>
12625
12626 * lisp.h (struct Lisp_Symbol): Remove explicit padding.
12627 (struct Lisp_Misc_Any): Likewise.
12628 (struct Lisp_Free): Likewise.
12629 * alloc.c (union aligned_Lisp_Symbol): Define.
12630 (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
12631 aligned_Lisp_Symbol instead of struct Lisp_Symbol.
12632 (union aligned_Lisp_Misc): Define.
12633 (MARKER_BLOCK_SIZE, struct marker_block): Use union
12634 aligned_Lisp_Misc instead of union Lisp_Misc.
12635 (Fmake_symbol, allocate_misc, gc_sweep): Adjust.
12636
12637 2012-04-14 Paul Eggert <eggert@cs.ucla.edu>
12638
12639 Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
12640 * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
12641 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
12642 * s/netbsd.h, s/sol2-6.h:
12643 Remove definition of GC_MARK_STACK, since the default now works.
12644 * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
12645 Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
12646 no longer the default.
12647 * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
12648
12649 2012-04-14 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
12650
12651 * lread.c (lisp_file_lexically_bound_p):
12652 Fix hang at ";-*-\n" (bug#11238).
12653
12654 2012-04-14 Eli Zaretskii <eliz@gnu.org>
12655
12656 * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
12657 "unchanged" if its end.pos is beyond ZV. (Bug#11199)
12658
12659 2012-04-14 Jan Djärv <jan.h.d@swipnet.se>
12660
12661 * nsterm.m (constrainFrameRect): Always constrain when there is only
12662 one screen (Bug#10962).
12663
12664 2012-04-13 Ken Brown <kbrown@cornell.edu>
12665
12666 * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor.
12667
12668 2012-04-13 Reuben Thomas <rrt@sc3d.org>
12669
12670 * indent.c (Fmove_to_column): Change interactive spec (Bug#739).
12671
12672 2012-04-11 Daniel Colascione <dancol@dancol.org>
12673
12674 * s/cygwin.h: The vfork the #define in cygwin.h was protecting
12675 against is gone. It's better to use vfork now so that when Cygwin
12676 gains a new, working vfork, we use it automatically (bug#10398).
12677
12678 2012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
12679
12680 * window.c (save_window_save): Obey window-point-insertion-type.
12681
12682 2012-04-11 Glenn Morris <rgm@gnu.org>
12683
12684 * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM.
12685
12686 2012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
12687
12688 * alloc.c (lisp_align_malloc): Remove unneeded prototype.
12689
12690 2012-04-10 Jason S. Cornez <jcornez@ravenpack.com> (tiny change)
12691
12692 * keyboard.c: Override inhibit-quit after the third C-g (bug#6585).
12693 (force_quit_count): New var.
12694 (handle_interrupt): Use it.
12695
12696 2012-04-10 Juanma Barranquero <lekktu@gmail.com>
12697
12698 * w32.c (w32_delayed_load): Record the full path of the library
12699 being loaded (bug#10424).
12700
12701 2012-04-09 Glenn Morris <rgm@gnu.org>
12702
12703 * doc.c (Fsnarf_documentation): Check variables, functions are bound,
12704 not just in the obarray, before snarfing them. (Bug#11036)
12705
12706 * Makefile.in ($(leimdir)/leim-list.el):
12707 Pass EMACS rather than BUILT_EMACS.
12708
12709 2012-04-09 Teodor Zlatanov <tzz@lifelogs.com>
12710
12711 * process.c (make_process):
12712 * process.h: Add integer `gnutls_handshakes_tried' member to
12713 process struct.
12714
12715 * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit.
12716 Add convenience `GNUTLS_LOG2i' macro.
12717
12718 * gnutls.c (gnutls_log_function2i): Convenience log function.
12719 (emacs_gnutls_read): Use new log functions,
12720 `gnutls_handshakes_tried' process member, and
12721 `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake
12722 attempts per process (connection).
12723
12724 2012-04-09 Chong Yidong <cyd@gnu.org>
12725
12726 * eval.c (Fuser_variable_p, user_variable_p_eh)
12727 (lisp_indirect_variable): Functions deleted.
12728 (Fdefvar): Caller changed.
12729
12730 * callint.c (Finteractive, Fcall_interactively):
12731 * minibuf.c (Fread_variable): Callers changed.
12732
12733 2012-04-09 Eli Zaretskii <eliz@gnu.org>
12734
12735 * xdisp.c (set_cursor_from_row): If the display string appears in
12736 the buffer at position that is closer to point than the position
12737 after the display string, display the cursor on the first glyph of
12738 the display string. Fixes cursor display when a 'display' text
12739 property immediately follows invisible text. (Bug#11094)
12740
12741 2012-04-09 Paul Eggert <eggert@cs.ucla.edu>
12742
12743 composite.c: use 'double' consistently
12744 * composite.c (get_composition_id): Use 'double' consistently
12745 instead of converting 'float' to 'double' and vice versa; this is
12746 easier to understand and avoids a GCC warning.
12747
12748 2012-04-09 Glenn Morris <rgm@gnu.org>
12749
12750 * Makefile.in: Generate leim-list with bootstrap-emacs, in
12751 preparation for dumping it with emacs. (Bug#4789)
12752 (leimdir): New variable.
12753 ($(leimdir)/leim-list.el): New rule.
12754 (emacs$(EXEEXT)): Depend on leim-list.el.
12755
12756 * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821)
12757 (Fget_buffer_create): Don't call Qucs_set_table_for_input.
12758 (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input.
12759
12760 2012-04-08 Andreas Schwab <schwab@linux-m68k.org>
12761
12762 * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure
12763 proper alignment.
12764
12765 2012-04-07 Juanma Barranquero <lekktu@gmail.com>
12766
12767 * xml.c (init_libxml2_functions) [WINDOWSNT]:
12768 Remove unused local variable.
12769
12770 2012-04-07 Paul Eggert <eggert@cs.ucla.edu>
12771
12772 Avoid unnecessary pointer scanning in garbage collection (Bug#10780).
12773 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro.
12774 (mark_memory): Mark Lisp_Objects only if pointers might hide in
12775 objects, as mark_maybe_pointer will catch them otherwise.
12776 (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed.
12777 * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise.
12778
12779 2012-04-07 Paul Eggert <eggert@cs.ucla.edu>
12780
12781 Fix typo that broke non-Windows builds.
12782 * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'.
12783
12784 2012-04-07 Eli Zaretskii <eliz@gnu.org>
12785
12786 Support building on MS-Windows with libxml2.
12787
12788 * makefile.w32-in (OBJ2): Add xml.$(O).
12789 (GLOBAL_SOURCES): Add xml.c.
12790 ($(BLD)/xml.$(O)): New dependency list.
12791
12792 * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros.
12793 (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement)
12794 (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion)
12795 [!WINDOWSNT]: New macros.
12796 (init_libxml2_functions, libxml2_loaded_p): New functions.
12797 (parse_region): Call fn_xmlCheckVersion instead of using the macro
12798 LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros.
12799 (xml_cleanup_parser): New function, export for fn_xmlCleanupParser.
12800 Calls xmlCleanupParser only if libxml2 was loaded (or statically
12801 linked in).
12802 (Flibxml_parse_html_region, Flibxml_parse_xml_region):
12803 Call init_libxml2_functions before calling libxml2 functions.
12804 (syms_of_xml) <Qlibxml2_dll>: DEFSYM it.
12805
12806 * emacs.c: Don't include libxml/parser.h.
12807 (shut_down_emacs): Call xml_cleanup_parser, instead of calling
12808 xmlCleanupParser directly.
12809
12810 * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser.
12811
12812 2012-04-07 Eli Zaretskii <eliz@gnu.org>
12813
12814 * indent.c (Fvertical_motion): If there is a display string at
12815 point, use it.vpos to compute how many lines to backtrack after
12816 move_it_to point. (Bug#11133)
12817
12818 2012-04-06 Eli Zaretskii <eliz@gnu.org>
12819
12820 * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR):
12821 * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments
12822 about subtle differences between FETCH_CHAR* and STRING_CHAR*
12823 macros related to unification of CJK characters. For the details,
12824 see the discussion following the message here:
12825 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14.
12826
12827 2012-04-04 Chong Yidong <cyd@gnu.org>
12828
12829 * keyboard.c (Vdelayed_warnings_list): Doc fix.
12830
12831 2012-04-01 Eli Zaretskii <eliz@gnu.org>
12832
12833 * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA
12834 instead of alloca. (Bug#11138)
12835
12836 2012-04-01 Andreas Schwab <schwab@linux-m68k.org>
12837
12838 * w32menu.c (is_simple_dialog): Properly check lisp types.
12839 (Bug#11141)
12840
12841 2012-03-31 Eli Zaretskii <eliz@gnu.org>
12842
12843 * xdisp.c (move_it_by_lines): When DVPOS is positive, and the
12844 position we get to after a call to move_it_to fails the
12845 IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position
12846 only if we wind up in a string from display property. (Bug#11063)
12847
12848 * window.c (Fdelete_other_windows_internal): Invalidate the row
12849 and column information about mouse highlight, so that redisplay
12850 restores it after reallocating the glyph matrices. (Bug#7464)
12851
12852 * xdisp.c (set_cursor_from_row): If `cursor' property on a display
12853 string comes from a `display' text property, use the buffer
12854 position of that property as if we actually saw that position in
12855 the row's glyphs.
12856 (move_it_by_lines): Remove the assertion that
12857 "it->current_x == 0 && it->hpos == 0" which can be legitimately
12858 violated when there's a before-string at the beginning of a line.
12859 (Bug#11063)
12860
12861 2012-03-30 Eli Zaretskii <eliz@gnu.org>
12862
12863 * xdisp.c (append_space_for_newline): If the default face was
12864 remapped, use the remapped face for the appended newline.
12865 (extend_face_to_end_of_line): Use the remapped default face for
12866 extending the face to the end of the line.
12867 (display_line): Call extend_face_to_end_of_line when the default
12868 face was remapped. (Bug#11068)
12869
12870 2012-03-29 Eli Zaretskii <eliz@gnu.org>
12871
12872 * s/ms-w32.h: Discourage from defining HAVE_GETCWD.
12873
12874 2012-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
12875
12876 * keyboard.c (safe_run_hooks_error): Don't unquote strings.
12877
12878 2012-03-27 Glenn Morris <rgm@gnu.org>
12879
12880 * search.c (Fword_search_backward_lax, Fword_search_forward_lax):
12881 Doc fixes.
12882
12883 2012-03-26 Kenichi Handa <handa@m17n.org>
12884
12885 * dispextern.h (struct glyph): Fix previous change. Change the
12886 bit length of glyphless.ch to 25 (Bug#11082).
12887
12888 2012-03-26 Chong Yidong <cyd@gnu.org>
12889
12890 * keyboard.c (Vselection_inhibit_update_commands): New variable.
12891 (command_loop_1): Use it; inhibit selection update for
12892 handle-select-window too (Bug#8996).
12893
12894 2012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
12895
12896 * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code.
12897
12898 2012-03-25 Kenichi Handa <handa@m17n.org>
12899
12900 * dispextern.h (struct glyph): Change the bit length of
12901 glyphless.ch to 22 to make the member glyphless fit in 32 bits.
12902
12903 2012-03-24 Eli Zaretskii <eliz@gnu.org>
12904
12905 * s/ms-w32.h (tzname): Include time.h before redirecting to
12906 _tzname. Fixes the MSVC build. (Bug#9960)
12907
12908 2012-03-24 Andreas Schwab <schwab@linux-m68k.org>
12909
12910 * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6
12911 characters.
12912
12913 * xterm.c (XTread_socket): Only modify handling_signal if
12914 !SYNC_INPUT. (Bug#11080)
12915
12916 2012-03-23 Eli Zaretskii <eliz@gnu.org>
12917
12918 * bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of
12919 FETCH_MULTIBYTE_CHAR followed by CHAR_BYTES. Prevents crashes
12920 when fetching a multibyte character consumes more bytes than
12921 CHAR_BYTES returns, due to unification of CJK characters in
12922 string_char. (Bug#11073)
12923
12924 2012-03-23 Troels Nielsen <bn.troels@gmail.com> (tiny change)
12925
12926 * process.c (wait_reading_process_output): Handle pty disconnect
12927 by refraining from sending oneself a SIGCHLD (bug#10933).
12928
12929 2012-03-22 Chong Yidong <cyd@gnu.org>
12930
12931 * dispextern.h (struct it): New member string_from_prefix_prop_p.
12932
12933 * xdisp.c (push_prefix_prop): Rename from push_display_prop.
12934 Mark string as coming from a prefix property.
12935 (handle_face_prop): Use default face for prefix strings (Bug#4281).
12936 (pop_it, reseat_1): Save and restore string_from_prefix_prop_p.
12937
12938 2012-03-21 Chong Yidong <cyd@gnu.org>
12939
12940 * xfaces.c (Vface_remapping_alist): Doc fix.
12941
12942 2012-03-20 Eli Zaretskii <eliz@gnu.org>
12943
12944 * w32proc.c (Fw32_set_console_codepage)
12945 (Fw32_set_console_output_codepage, Fw32_get_codepage_charset):
12946 Doc fixes.
12947
12948 2012-03-20 Chong Yidong <cyd@gnu.org>
12949
12950 * dispnew.c (Fredisplay, Vredisplay_preemption_period): Update doc
12951 to reflect default non-nil value of redisplay-dont-pause.
12952
12953 2012-03-19 Kenichi Handa <handa@m17n.org>
12954
12955 * ftfont.c (ftfont_drive_otf): Mask bits of character code to make
12956 it fit in a valid range (Bug#11003).
12957
12958 2012-03-18 Eli Zaretskii <eliz@gnu.org>
12959
12960 * xdisp.c (cursor_row_p): Even if the glyph row ends in a string
12961 that is not from display property, accept the row as a "cursor
12962 row" if one of the string's character has a non-nil `cursor'
12963 property. Fixes cursor positioning when there are newlines in
12964 overlay strings, e.g. in icomplete.el. (Bug#11035)
12965
12966 2012-03-12 Paul Eggert <eggert@cs.ucla.edu>
12967
12968 * buffer.c (compare_overlays): Don't assume args differ (Bug#6830).
12969
12970 2012-03-12 Chong Yidong <cyd@gnu.org>
12971
12972 * eval.c (inhibit_lisp_code): Rename from
12973 inhibit_window_configuration_change_hook; move from window.c.
12974
12975 * xfns.c (unwind_create_frame_1, Fx_create_frame):
12976 * window.c (run_window_configuration_change_hook)
12977 (syms_of_window): Callers changed.
12978
12979 2012-03-11 Chong Yidong <cyd@gnu.org>
12980
12981 * keymap.c (Fkey_description): Doc fix (Bug#9700).
12982
12983 * editfns.c (Fconstrain_to_field): Doc fix (Bug#9452).
12984
12985 2012-03-10 Chong Yidong <cyd@gnu.org>
12986
12987 * frame.c (other_visible_frames): Don't assume the selected frame
12988 is visible (Bug#10955).
12989
12990 2012-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
12991
12992 * buffer.c (compare_overlays): Avoid qsort's instability (bug#6830).
12993
12994 2012-03-08 Jan Djärv <jan.h.d@swipnet.se>
12995
12996 * gtkutil.c (x_wm_set_size_hint): Use one row in call to
12997 FRAME_TEXT_LINES_TO_PIXEL_HEIGHT so base_height is greater than
12998 zero (Bug#10954).
12999
13000 2012-03-03 Glenn Morris <rgm@gnu.org>
13001
13002 * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes.
13003
13004 2012-03-02 Eli Zaretskii <eliz@gnu.org>
13005
13006 * xdisp.c (try_window_reusing_current_matrix): Don't move cursor
13007 position past the first glyph_row that ends at ZV. (Bug#10902)
13008 (redisplay_window, next_element_from_string): Fix typos in
13009 comments.
13010 (redisplay_window): Pass to move_it_vertically the margin in
13011 pixels, not in screen lines.
13012
13013 2012-03-02 Glenn Morris <rgm@gnu.org>
13014
13015 * buffer.c (buffer-list-update-hook): Doc fix.
13016
13017 2012-02-29 Eli Zaretskii <eliz@gnu.org>
13018
13019 * xdisp.c (get_overlay_strings_1): Under bidi redisplay, call
13020 push_it before setting up the iterator for the first overlay
13021 string, even if we have an empty string loaded.
13022 (next_overlay_string): If there's an empty string on the iterator
13023 stack, pop the stack. (Bug#10903)
13024
13025 2012-02-25 Paul Eggert <eggert@cs.ucla.edu>
13026
13027 Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780).
13028 Suggested by Stefan Monnier in
13029 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00692.html>.
13030 * alloc.c (widen_to_Lisp_Object): New static function.
13031 (mark_memory): Also mark Lisp_Objects by fetching pointer words
13032 and widening them to Lisp_Objects. This would work even if
13033 USE_LSB_TAG is defined and wide integers are used, which might
13034 happen in a future version of Emacs.
13035
13036 2012-02-25 Chong Yidong <cyd@gnu.org>
13037
13038 * fileio.c (Ffile_selinux_context, Fset_file_selinux_context):
13039 Doc fix.
13040
13041 * xselect.c (Fx_selection_exists_p): Doc fix.
13042 (x_clipboard_manager_save_all): Print an informative message
13043 before saving to clipboard manager.
13044
13045 2012-02-24 Chong Yidong <cyd@gnu.org>
13046
13047 * keyboard.c (process_special_events): Handle all X selection
13048 requests in kbd_buffer, not just the next one (Bug#8869).
13049
13050 2012-02-23 Chong Yidong <cyd@gnu.org>
13051
13052 * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook
13053 call when setting menu-bar-lines and tool-bar-lines parameters.
13054 (unwind_create_frame_1): New helper function.
13055
13056 * window.c (inhibit_window_configuration_change_hook): New var.
13057 (run_window_configuration_change_hook): Obey it.
13058 (syms_of_window): Initialize it.
13059
13060 2012-02-22 Chong Yidong <cyd@gnu.org>
13061
13062 * xterm.c (x_draw_image_relief): Add missing type check for
13063 Vtool_bar_button_margin (Bug#10743).
13064
13065 2012-02-21 Chong Yidong <cyd@gnu.org>
13066
13067 * fileio.c (Vfile_name_handler_alist): Doc fix.
13068
13069 * buffer.c (Fget_file_buffer): Protect against invalid file
13070 handler return value.
13071
13072 2012-02-20 Paul Eggert <eggert@cs.ucla.edu>
13073
13074 * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long'
13075 when computing $valmask.
13076
13077 Fix crash due to non-contiguous EMACS_INT (Bug#10780).
13078 * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it.
13079 (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0.
13080 It's useless in that case, and it can cause problems on hosts
13081 that allocate halves of EMACS_INT values separately.
13082 Reported by Dan Horák. Diagnosed by Andreas Schwab in
13083 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10780#30>.
13084 * mem-limits.h (EXCEEDS_LISP_PTR): Define to 0 on hosts where
13085 UINTPTR_MAX >> VALBITS == 0. This is required by the above change;
13086 it avoids undefined behavior on hosts where shifting right by more
13087 than the word width has undefined behavior.
13088
13089 2012-02-19 Chong Yidong <cyd@gnu.org>
13090
13091 * fileio.c (Ffile_name_directory, Ffile_name_nondirectory)
13092 (Funhandled_file_name_directory, Ffile_name_as_directory)
13093 (Fdirectory_file_name, Fexpand_file_name)
13094 (Fsubstitute_in_file_name): Protect against invalid file handler
13095 return values (Bug#10845).
13096
13097 2012-02-18 Eli Zaretskii <eliz@gnu.org>
13098
13099 * .gdbinit (pitx): Fix incorrect references to fields of the
13100 iterator stack.
13101
13102 2012-02-17 Chong Yidong <cyd@gnu.org>
13103
13104 * syntax.c (Fscan_lists): Doc fix (Bug#10833).
13105
13106 2012-02-15 Paul Eggert <eggert@cs.ucla.edu>
13107
13108 * image.c (MAX_IMAGE_SIZE): Increase from 6.0 to 10.0; see
13109 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00540.html>.
13110
13111 2012-02-15 Chong Yidong <cyd@gnu.org>
13112
13113 * eval.c (Fdefvar, Fdefconst): Doc fix; note that the variable is
13114 marked as special. Also, starting docstrings with * is obsolete.
13115
13116 2012-02-13 Andreas Schwab <schwab@linux-m68k.org>
13117
13118 * gnutls.c (emacs_gnutls_write): Fix last change.
13119
13120 2012-02-13 Lars Ingebrigtsen <larsi@gnus.org>
13121
13122 * gnutls.c (emacs_gnutls_write): Set errno appropriately for
13123 send_process.
13124
13125 2012-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
13126
13127 * keymap.c (Fsingle_key_description): Handle char ranges.
13128
13129 2012-02-12 Chong Yidong <cyd@gnu.org>
13130
13131 * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here,
13132 as that creates a dangerous corner case.
13133
13134 * window.c (Fdelete_window_internal): Invalidate the mouse
13135 highlight (Bug#9904).
13136
13137 2012-02-12 Glenn Morris <rgm@gnu.org>
13138
13139 * xselect.c (Fx_own_selection_internal)
13140 (Fx_get_selection_internal, Fx_disown_selection_internal)
13141 (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes.
13142 * nsselect.m (Fx_own_selection_internal)
13143 (Fx_disown_selection_internal, Fx_selection_exists_p)
13144 (Fx_selection_owner_p, Fx_get_selection_internal):
13145 Sync docs and argument specs with the xselect.c versions.
13146
13147 2012-02-11 Lars Ingebrigtsen <larsi@gnus.org>
13148
13149 * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails.
13150
13151 2012-02-11 Eli Zaretskii <eliz@gnu.org>
13152
13153 * w32select.c (Fx_selection_exists_p): Sync doc string and
13154 argument list with xselect.c. (Bug#10783)
13155
13156 * w16select.c (Fx_selection_exists_p): Sync doc string and
13157 argument list with xselect.c. (Bug#10783)
13158
13159 2012-02-10 Glenn Morris <rgm@gnu.org>
13160
13161 * fns.c (Fsecure_hash): Doc fix.
13162
13163 2012-02-09 Kenichi Handa <handa@m17n.org>
13164
13165 * coding.c (produce_chars): Fix updating of src_end (Bug#10701).
13166
13167 2012-02-07 Chong Yidong <cyd@gnu.org>
13168
13169 * buffer.c (Fbuffer_local_variables)
13170 (buffer_lisp_local_variables): Handle unbound vars correctly;
13171 don't let Qunbound leak into Lisp.
13172
13173 2012-02-07 Glenn Morris <rgm@gnu.org>
13174
13175 * image.c (Fimagemagick_types): Doc fix.
13176
13177 * image.c (imagemagick-render-type): Change it from a lisp object
13178 to an integer. Move the doc here from the lisp manual.
13179 Treat all values not equal to 0 the same.
13180
13181 2012-02-06 Chong Yidong <cyd@gnu.org>
13182
13183 * doc.c (store_function_docstring): Avoid applying docstring of
13184 alias to base function (Bug#2603).
13185
13186 2012-02-04 Andreas Schwab <schwab@linux-m68k.org>
13187
13188 * .gdbinit (pp1, pv1): Remove redundant defines.
13189 (pr): Use pp.
13190
13191 2012-02-04 Chong Yidong <cyd@gnu.org>
13192
13193 * nsterm.m: Declare a global (Bug#10694).
13194
13195 2012-02-04 Eli Zaretskii <eliz@gnu.org>
13196
13197 * w32.c (get_emacs_configuration_options):
13198 Include --enable-checking, if specified, in the return value.
13199
13200 2012-02-04 Martin Rudalics <rudalics@gmx.at>
13201
13202 * dispnew.c (change_frame_size_1): Calculate new_frame_total_cols
13203 after rounding frame sizes. (Bug#9723)
13204
13205 2012-02-04 Eli Zaretskii <eliz@gnu.org>
13206
13207 * keyboard.c (adjust_point_for_property): Don't position point
13208 before BEGV. (Bug#10696)
13209
13210 2012-02-03 Paul Eggert <eggert@cs.ucla.edu>
13211
13212 Handle overflow when computing char display width (Bug#9496).
13213 * character.c (char_width): Return EMACS_INT, not int.
13214 (char_width, c_string_width): Check for overflow when
13215 computing the width; this is possible now that individual
13216 characters can have unbounded width. Problem introduced
13217 by merge from Emacs 23 on 2012-01-19.
13218
13219 2012-02-02 Michael Albinus <michael.albinus@gmx.de>
13220
13221 * dbusbind.c (Fdbus_register_method): Mention the return value
13222 :ignore in the docstring.
13223
13224 2012-02-02 Glenn Morris <rgm@gnu.org>
13225
13226 * callproc.c (Fcall_process, Fcall_process_region): Doc fix.
13227
13228 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
13229 Unconditionally set to t. (Bug#10673)
13230 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
13231 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
13232 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Doc fix.
13233
13234 2012-02-02 Kenichi Handa <handa@m17n.org>
13235
13236 (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is
13237 0, do not call append_composite_glyph.
13238
13239 2012-02-02 Kenichi Handa <handa@m17n.org>
13240
13241 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to
13242 NULL (Bug#6988).
13243 (x_produce_glyphs): If the component of a composition is a null
13244 string, set it->pixel_width to 1 to avoid zero-width glyph.
13245
13246 2012-02-01 Eli Zaretskii <eliz@gnu.org>
13247
13248 * ralloc.c (resize_bloc, r_alloc_sbrk): Don't call memmove if its
13249 first 2 arguments are identical. This makes inserting large
13250 output from a subprocess an order of magnitude faster on
13251 MS-Windows, where all sbrk'ed memory is always contiguous.
13252
13253 2012-01-31 Glenn Morris <rgm@gnu.org>
13254
13255 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
13256 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
13257 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
13258
13259 2012-01-29 Glenn Morris <rgm@gnu.org>
13260
13261 * gnutls.c (syms_of_gnutls): More doc (from etc/NEWS).
13262
13263 2012-01-28 Samuel Thibault <sthibault@debian.org> (tiny change)
13264
13265 * s/gnu.h: Define POSIX_SIGNALS (Bug#10552).
13266
13267 2012-01-28 Chong Yidong <cyd@gnu.org>
13268
13269 * minibuf.c (syms_of_minibuf): Doc fix (Bug#10550).
13270
13271 2012-01-26 Chong Yidong <cyd@gnu.org>
13272
13273 * keyboard.c (Vecho_keystrokes): Document zero value (Bug#10503).
13274
13275 * search.c (Fsearch_forward, Fsearch_backward): Document negative
13276 repeat counts (Bug#10507).
13277
13278 2012-01-26 Glenn Morris <rgm@gnu.org>
13279
13280 * lread.c (syms_of_lread): Doc fix.
13281
13282 2012-01-25 HIROSHI OOTA <nil@mad.dog.cx> (tiny change)
13283
13284 * coding.c (encode_designation_at_bol): Change return value to
13285 EMACS_INT.
13286
13287 2012-01-25 Chong Yidong <cyd@gnu.org>
13288
13289 * eval.c (Fuser_variable_p): Doc fix; mention custom-variable-p.
13290
13291 2012-01-21 Chong Yidong <cyd@gnu.org>
13292
13293 * floatfns.c (Fcopysign): Make the second argument non-optional,
13294 since nil is not allowed anyway.
13295
13296 2012-01-21 Andreas Schwab <schwab@linux-m68k.org>
13297
13298 * process.c (read_process_output): Use p instead of XPROCESS (proc).
13299 (send_process): Likewise.
13300
13301 2012-01-19 Martin Rudalics <rudalics@gmx.at>
13302
13303 * window.c (save_window_save, Fcurrent_window_configuration)
13304 (Vwindow_persistent_parameters): Do not use Qstate.
13305 Rewrite doc-strings.
13306
13307 2012-01-19 Kenichi Handa <handa@m17n.org>
13308
13309 * character.c (char_width): New function.
13310 (Fchar_width, c_string_width, lisp_string_width):
13311 Use char_width (Bug#9496).
13312
13313 2012-01-16 Martin Rudalics <rudalics@gmx.at>
13314
13315 * window.c (Vwindow_persistent_parameters): New variable.
13316 (Fset_window_configuration, save_window_save): Handle persistent
13317 window parameters.
13318
13319 2012-01-14 Eli Zaretskii <eliz@gnu.org>
13320
13321 * w32fns.c (signal_user_input): Don't do a QUIT, to avoid
13322 thrashing the stack of the thread. (Bug#9087)
13323
13324 2012-01-12 Paul Eggert <eggert@cs.ucla.edu>
13325
13326 * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses.
13327
13328 2012-01-11 Eli Zaretskii <eliz@gnu.org>
13329
13330 * xdisp.c (rows_from_pos_range): Handle the case where the
13331 highlight ends on a newline. (Bug#10464)
13332 (mouse_face_from_buffer_pos): Fix off-by-one error in calculating
13333 he end column for display of highlight that ends on a newline
13334 before a R2L line.
13335
13336 2012-01-11 Glenn Morris <rgm@gnu.org>
13337
13338 * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs
13339 from load-path also when installation-directory is nil. (Bug#10208)
13340
13341 2012-01-10 Glenn Morris <rgm@gnu.org>
13342
13343 * emacs.c (syms_of_emacs) <installation-directory>: Doc fix.
13344
13345 * epaths.in (PATH_LOADSEARCH, PATH_EXEC, PATH_DATA, PATH_DOC):
13346 Update template values to be closer to their typical values these days.
13347
13348 2012-01-09 Eli Zaretskii <eliz@gnu.org>
13349
13350 * xdisp.c (rows_from_pos_range): Accept additional argument
13351 DISP_STRING, and accept any glyph in a row whose object is that
13352 string as eligible for mouse highlight. Fixes mouse highlight of
13353 display strings from overlays. (Bug#10464)
13354
13355 2012-01-07 Paul Eggert <eggert@cs.ucla.edu>
13356
13357 emacs: fix an auto-save permissions race condition (Bug#10400)
13358 * fileio.c (auto_saving_dir_umask): New static var.
13359 (Fmake_directory_internal): Use it.
13360 (do_auto_save_make_dir): Set it, instead of invoking chmod after
13361 creating the directory. The old code temporarily assigns
13362 too-generous permissions to the directory.
13363 (do_auto_save_eh): Clear it.
13364 (Fdo_auto_save): Catch all errors, not just file errors, so
13365 that the var is always cleared.
13366
13367 2012-01-07 Eli Zaretskii <eliz@gnu.org>
13368
13369 * search.c (scan_buffer): Pass character positions to
13370 know_region_cache, not byte positions. (Bug#6540)
13371
13372 2012-01-07 LynX <_LynX@bk.ru> (tiny change)
13373
13374 * w32.c (sys_rename): Report EXDEV when rename of a directory
13375 fails because the target is on another logical disk. (Bug#10284)
13376
13377 2012-01-07 David Benjamin <davidben@mit.edu> (tiny change)
13378
13379 * xterm.c (x_embed_request_focus): New function.
13380
13381 * xterm.h: Add prototype.
13382
13383 * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977).
13384
13385 2012-01-05 Glenn Morris <rgm@gnu.org>
13386
13387 * emacs.c (emacs_copyright): Update short copyright year to 2012.
13388
13389 2012-01-01 Eli Zaretskii <eliz@gnu.org>
13390
13391 * gnutls.c (init_gnutls_functions): Load gnutls_check_version.
13392 Load gnutls_transport_set_lowat only if GnuTLS version is below
13393 2.11.1.
13394 (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
13395 GnuTLS versions below 2.11.1.
13396
13397 2011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
13398
13399 * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning
13400 to the doc string advising against its use for altering the way
13401 windows are scrolled.
13402
13403 2011-12-28 Kenichi Handa <handa@m17n.org>
13404
13405 * coding.c (Fdefine_coding_system_internal): Make an utf-8 base
13406 coding-system ASCII compatible only when it does not produce BOM
13407 on encoding (Bug#10383).
13408
13409 2011-12-26 Jan Djärv <jan.h.d@swipnet.se>
13410
13411 * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus
13412 can scroll.
13413 (create_and_show_popup_menu): Always use menu_position_func for
13414 Gtk3 (Bug#10361).
13415
13416 2011-12-24 Andreas Schwab <schwab@linux-m68k.org>
13417
13418 * callint.c (Fcall_interactively): Don't truncate prompt string.
13419
13420 2011-12-23 Eli Zaretskii <eliz@gnu.org>
13421
13422 * xdisp.c (handle_invisible_prop): Handle correctly an invisible
13423 property that ends at ZV, so that the bidi iteration could be
13424 resumed from there (after widening). (Bug#10360)
13425
13426 2011-12-22 Jan Djärv <jan.h.d@swipnet.se>
13427
13428 * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc.
13429
13430 2011-12-21 Jan Djärv <jan.h.d@swipnet.se>
13431
13432 * nsterm.m (x_free_frame_resources):
13433 Release f->output_data.ns->miniimage.
13434 (ns_index_color): Fix indentation. Do not retain
13435 color_table->colors[i].
13436
13437 * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree
13438 before returning.
13439
13440 * nsfns.m (x_set_background_color): Assign return value from
13441 ns_index_color to face-background instead of NSColor*.
13442 (ns_implicitly_set_icon_type): Fix indentation.
13443 Change assignment in for loop to comparison.
13444
13445 * emacs.c (ns_pool): New variable.
13446 (main): Assign ns_pool.
13447 (Fkill_emacs): Call ns_release_autorelease_pool.
13448
13449 * nsfont.m (ns_spec_to_descriptor): Fix indentation,
13450 autorelease fdesc, release fdAttrs and tdict.
13451 (ns_get_covering_families): Release charset.
13452 (ns_findfonts): Release NSFontDescriptor created with new.
13453 (ns_uni_to_glyphs): Fix indentation.
13454 (setString): Release attrStr before assigning new value.
13455
13456 2011-12-18 Jan Djärv <jan.h.d@swipnet.se>
13457
13458 * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5
13459 and NS_IMPL_COCOA.
13460 (trackingNotification): Surround with ifdef NS_IMPL_COCOA.
13461 (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA.
13462
13463 2011-12-18 David Reitter <reitter@cmu.edu>
13464
13465 * nsterm.m (ns_term_init): Subscribe for notifications
13466 NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification
13467 to method trackingNotification in EmacsMenu.
13468
13469 * nsmenu.m (trackingMenu): New variable.
13470 (trackingNotification): New method (from Aquamacs).
13471 (menuNeedsUpdate): Expand comment and return if trackingMenu is 0,
13472 from Aquamacs (Bug#7030).
13473
13474 2011-12-18 Jan Djärv <jan.h.d@swipnet.se>
13475
13476 * nsselect.m (CUT_BUFFER_SUPPORT): Remove define.
13477 (symbol_to_nsstring): Fix indentation.
13478 (ns_symbol_to_pb): New function.
13479 (Fns_get_selection_internal): Rename from Fns_get_cut_buffer_internal.
13480 (Fns_rotate_cut_buffers_internal): Remove.
13481 (Fns_store_selection_internal): Rename from
13482 Fns_store_cut_buffer_internal.
13483 (ns_get_foreign_selection, Fx_own_selection_internal)
13484 (Fx_disown_selection_internal, Fx_selection_exists_p)
13485 (Fns_get_selection_internal, Fns_store_selection_internal):
13486 Use ns_symbol_to_pb and check if return value is nil.
13487 (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr
13488 Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal
13489 renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal
13490 renamed to Sns_store_selection_internal.
13491 (ns_handle_selection_request): Move code to Fx_own_selection_internal
13492 and remove this function.
13493 (ns_handle_selection_clear): Remove, never used.
13494 (Fx_own_selection_internal): Move code from ns_handle_selection_request
13495 here.
13496
13497 2011-12-17 Ken Brown <kbrown@cornell.edu>
13498
13499 * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or
13500 GID is unknown (Bug#10257).
13501
13502 2011-12-17 Paul Eggert <eggert@cs.ucla.edu>
13503
13504 * s/gnu-linux.h: Fix mark_memory typo (Bug#10286).
13505 (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory,
13506 which caused a build failure on GNU/Linux IA-64. This problem was
13507 introduced by my 2011-10-07 patch.
13508
13509 2011-12-15 Juri Linkov <juri@jurta.org>
13510
13511 * image.c (imagemagick_error): New function. (Bug#10112)
13512 (imagemagick_load_image): Comment out `MagickSetResolution' call.
13513 Use `imagemagick_error' where ImageMagick functions return
13514 `MagickFalse'.
13515 (Fimagemagick_types): Add `Fnreverse' to return the list in the
13516 proper order.
13517
13518 2011-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
13519
13520 * xftfont.c (xftfont_draw): Use the font metrics of s->font to
13521 fill background (Bug#8992).
13522
13523 2011-12-13 Martin Rudalics <rudalics@gmx.at>
13524
13525 * window.c (Vwindow_combination_resize)
13526 (Vwindow_combination_limit): Use t instead of non-nil in
13527 doc-strings.
13528 (Vrecenter_redisplay): Add first sentence of doc-string on
13529 separate line.
13530 (Frecenter): Fix doc-string typo.
13531
13532 2011-12-11 Kenichi Handa <handa@m17n.org>
13533
13534 * coding.c (Funencodable_char_position): Pay attention to the
13535 buffer text relocation (Bug#9389).
13536
13537 2011-12-10 Jan Djärv <jan.h.d@swipnet.se>
13538
13539 * xterm.c (x_term_init): Move call to gdk_window_add_filter before
13540 gtk_init (Bug#10100).
13541
13542 2011-12-10 Eli Zaretskii <eliz@gnu.org>
13543
13544 * xdisp.c (RECORD_MAX_MIN_POS): Use IT->cmp_it.charpos only if
13545 IT->string is nil. (Bug#10263)
13546
13547 2011-12-10 Jan Djärv <jan.h.d@swipnet.se>
13548
13549 * nsterm.h (x_free_frame_resources): Declare.
13550
13551 * nsfns.m (ns_get_defaults_value): New function (Bug#10103).
13552 (Fns_get_resource, x_get_string_resource): Call ns_get_defaults_value.
13553
13554 * nsterm.h (ns_get_defaults_value): Declare.
13555
13556 * nsterm.m (ns_default): Call ns_get_defaults_value.
13557
13558 2011-12-09 Eli Zaretskii <eliz@gnu.org>
13559
13560 * xdisp.c (try_scrolling): Don't set scroll_down_p if dy is zero.
13561 (Bug#10170)
13562
13563 2011-12-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
13564
13565 * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case
13566 that where the value of an _OBJC_* symbol points to is in the .bss
13567 section (Bug#10240).
13568
13569 2011-12-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
13570
13571 * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end)
13572 after the loop to call ccl_driver at least once (Bug#8619).
13573
13574 2011-12-08 Kenichi Handa <handa@m17n.org>
13575
13576 * ftfont.c (get_adstyle_property): Fix previous change
13577 (Bug#10233).
13578
13579 2011-12-07 Juanma Barranquero <lekktu@gmail.com>
13580
13581 * w32.c (init_environment): If no_site_lisp, remove site-lisp
13582 dirs from the default value of EMACSLOADPATH (bug#10208).
13583
13584 2011-12-07 Glenn Morris <rgm@gnu.org>
13585
13586 * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in
13587 installation and source directories as well. (Bug#10208)
13588
13589 2011-12-06 Chong Yidong <cyd@gnu.org>
13590
13591 * minibuf.c (Fread_from_minibuffer): Doc fix (Bug#10228).
13592
13593 2011-12-06 Glenn Morris <rgm@gnu.org>
13594
13595 * process.c (start_process_unwind): Treat any pid <= 0, except -2,
13596 as an error, not just -1. (Bug#10217)
13597
13598 2011-12-05 Chong Yidong <cyd@gnu.org>
13599
13600 * keyboard.c (process_special_events): New function.
13601 (swallow_events, Finput_pending_p): Use it (Bug#10195).
13602
13603 2011-12-05 Paul Eggert <eggert@cs.ucla.edu>
13604
13605 * coding.c (encode_designation_at_bol): Don't use uninitialized
13606 local variable (Bug#9318).
13607
13608 2011-12-05 Kenichi Handa <handa@m17n.org>
13609
13610 * ftfont.c (get_adstyle_property): If the font is not BDF nor PCF,
13611 return Qnil (Bug#8046, Bug#10193).
13612
13613 2011-12-05 Kenichi Handa <handa@m17n.org>
13614
13615 * coding.c (encode_designation_at_bol): New args charbuf_end and
13616 dst. Return the number of produced bytes. Callers changed.
13617 (coding_set_source): Return how many bytes coding->source was
13618 relocated.
13619 (coding_set_destination): Return how many bytes
13620 coding->destination was relocated.
13621 (CODING_DECODE_CHAR, CODING_ENCODE_CHAR, CODING_CHAR_CHARSET)
13622 (CODING_CHAR_CHARSET_P): Adjust for the avove changes.
13623
13624 2011-12-05 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
13625
13626 * coding.c (CODING_CHAR_CHARSET_P): New macro.
13627 (encode_coding_emacs_mule, encode_coding_iso_2022): Use the above
13628 macro (Bug#9318).
13629
13630 2011-12-05 Andreas Schwab <schwab@linux-m68k.org>
13631
13632 The following changes are to fix Bug#9318.
13633
13634 * coding.c (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET): New macros.
13635 (encode_coding_emacs_mule, ENCODE_ISO_CHARACTER)
13636 (encode_coding_iso_2022, encode_coding_sjis)
13637 (encode_coding_big5, encode_coding_charset): Use the above macros.
13638
13639 2011-12-05 Juanma Barranquero <lekktu@gmail.com>
13640
13641 * lisp.h (process_quit_flag): Fix external declaration.
13642
13643 2011-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
13644
13645 Don't macro-inline non-performance-critical code.
13646 * eval.c (process_quit_flag): New function.
13647 * lisp.h (QUIT): Use it.
13648
13649 2011-12-04 Jan Djärv <jan.h.d@swipnet.se>
13650
13651 * nsfns.m (get_geometry_from_preferences): New function.
13652 (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103).
13653
13654 2011-12-04 Andreas Schwab <schwab@linux-m68k.org>
13655
13656 * emacs.c (Qkill_emacs): Define.
13657 (syms_of_emacs): Initialize it.
13658 * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set
13659 Qquit_flag to `kill-emacs' instead.
13660 (quit_throw_to_read_char): Add parameter `from_signal'.
13661 All callers changed. Call Fkill_emacs if requested and safe.
13662 * lisp.h (QUIT): Call Fkill_emacs if requested.
13663
13664 2011-12-03 Jan Djärv <jan.h.d@swipnet.se>
13665
13666 * widget.c (update_wm_hints): Return if wmshell is null.
13667 (widget_update_wm_size_hints): New function.
13668
13669 * widget.h (widget_update_wm_size_hints): Declare.
13670
13671 * xterm.c (x_wm_set_size_hint): If USE_X_TOOLKIT, call
13672 widget_update_wm_size_hints (Bug#10104).
13673
13674 2011-12-03 Eli Zaretskii <eliz@gnu.org>
13675
13676 * xdisp.c (handle_invisible_prop): If the invisible text ends just
13677 before a newline, prepare the bidi iterator for consuming the
13678 newline, and keep the current paragraph direction. (Bug#10183)
13679 (redisplay_window): Don't let `margin' become negative. (Bug#10192)
13680
13681 2011-12-02 Juri Linkov <juri@jurta.org>
13682
13683 * search.c (Fword_search_regexp): New Lisp function created from
13684 `wordify'. Change type of arg `lax' from `int' to `Lisp_Object'.
13685 (Fword_search_backward, Fword_search_forward)
13686 (Fword_search_backward_lax, Fword_search_forward_lax):
13687 Use `Fword_search_regexp' instead of `wordify'. Doc fix.
13688 (syms_of_search): Define `Sword_search_regexp'. (Bug#10145)
13689
13690 2011-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
13691
13692 * fileio.c (Finsert_file_contents): Move after-change-function call
13693 to before the "handled:" label, since all "goto handled" appear in
13694 cases where the *-change-functions have already been properly called
13695 (bug#10117).
13696
13697 2011-12-01 Andreas Schwab <schwab@linux-m68k.org>
13698
13699 * keyboard.c (interrupt_signal): Don't call kill-emacs when
13700 waiting for input. (Bug#10169)
13701
13702 2011-11-30 Eli Zaretskii <eliz@gnu.org>
13703
13704 * dispnew.c (adjust_glyph_matrix): Remove the assertion that
13705 verifies glyph row's hash code--we have just reallocated the
13706 glyphs, so their contents can be complete garbage. (Bug#10164)
13707
13708 2011-11-30 Juanma Barranquero <lekktu@gmail.com>
13709
13710 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Add missing check.
13711
13712 2011-11-30 Eli Zaretskii <eliz@gnu.org>
13713
13714 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's
13715 attributes are tested _before_ calling verify_row_hash, to protect
13716 against GCC re-ordering of the tests. (Bug#10164)
13717
13718 2011-11-29 Jan Djärv <jan.h.d@swipnet.se>
13719
13720 * xterm.h (struct x_output): net_wm_state_hidden_seen is new.
13721
13722 * xterm.c (handle_one_xevent): Only set async_visible and friends
13723 if net_wm_state_hidden_seen is non-zero (Bug#10002)
13724 (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
13725 _NET_WM_STATE_HIDDEN is in NET_WM_STATE.
13726
13727 2011-11-28 Paul Eggert <eggert@cs.ucla.edu>
13728
13729 Remove GCPRO-related macros that exist only to avoid shadowing locals.
13730 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR)
13731 (GCPRO6_VAR, UNGCPRO_VAR): Remove. See
13732 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
13733 All uses changed to use GCPRO1 etc.
13734 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO):
13735 Revert to old implementation (i.e., before 2011-03-11).
13736
13737 2011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
13738
13739 * dispnew.c (scrolling_window): Truncate overlaps in copy destination
13740 of scroll runs so as to avoid assigning disabled bogus rows and
13741 unnecessary graphics copy operations.
13742
13743 2011-11-27 Eli Zaretskii <eliz@gnu.org>
13744
13745 * s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define.
13746 (snprintf) [_MSC_VER]: Redirect to _snprintf.
13747 (strtoll) [_MSC_VER]: Redirect to _strtoi64.
13748 (malloc, free, realloc, calloc): Redirect to e_* only when
13749 compiling Emacs.
13750
13751 * lisp.h (GCTYPEBITS): Move before first use.
13752 (ALIGN_GCTYPEBITS) [_MSC_VER]: Define.
13753 (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in
13754 this macro definition.
13755
13756 * s/ms-w32.h (tzname): Redirect to _tzname for all values of
13757 _MSC_VER.
13758
13759 2011-11-27 Jan Djärv <jan.h.d@swipnet.se>
13760
13761 * gtkutil.c (xg_create_frame_widgets):
13762 Call gtk_window_set_has_resize_grip (FALSE) if that function is
13763 present with Gtk+ 2.0.
13764
13765 2011-11-26 Paul Eggert <eggert@cs.ucla.edu>
13766
13767 * fileio.c (Finsert_file_contents): Undo previous change; see
13768 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
13769
13770 2011-11-26 Paul Eggert <eggert@cs.ucla.edu>
13771
13772 Rename locals to avoid shadowing.
13773 * fileio.c (Finsert_file_contents):
13774 Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing.
13775 * process.c (wait_reading_process_output):
13776 Rename inner 'proc' to 'p' to avoid shadowing.
13777 Indent for consistency with usual Emacs style.
13778
13779 2011-11-25 Eli Zaretskii <eliz@gnu.org>
13780
13781 * xdisp.c (redisplay_window): If cursor row is not fully visible
13782 after recentering, and scroll-conservatively is set to a large
13783 number, scroll window by a few more lines to make the cursor fully
13784 visible and out of scroll-margin. (Bug#10105)
13785 (start_display): Don't move to the next line if the display should
13786 start at a newline that is part of a display vector or an overlay
13787 string. (Bug#10119)
13788
13789 2011-11-24 Juri Linkov <juri@jurta.org>
13790
13791 * image.c (imagemagick_load_image): Move `MagickSetResolution' down
13792 after the `MagickPingImage' call. (Bug#10112)
13793
13794 2011-11-23 Chong Yidong <cyd@gnu.org>
13795
13796 * window.c (Fcoordinates_in_window_p): Accept only live windows.
13797
13798 2011-11-23 Martin Rudalics <rudalics@gmx.at>
13799
13800 * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before
13801 making another buffer current. (Bug#10114)
13802
13803 2011-11-23 Glenn Morris <rgm@gnu.org>
13804
13805 * font.c (font_find_for_lface) [HAVE_NS]: Ignore case. (Bug#2526)
13806
13807 2011-11-23 Chong Yidong <cyd@gnu.org>
13808
13809 * xdisp.c (compute_stop_pos): Check validity of end_charpos before
13810 using it (Bug#5984).
13811
13812 2011-11-22 Eli Zaretskii <eliz@gnu.org>
13813
13814 * dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode-
13815 and header-lines, as they don't have one computed for them.
13816 (Bug#10098)
13817
13818 * .gdbinit (prow): Make displayed values more self-explaining.
13819 Add row's hash code.
13820
13821 2011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
13822
13823 * process.c (wait_reading_process_output): Fix asynchrounous
13824 GnuTLS socket handling on some versions of the GnuTLS library.
13825 (wait_reading_process_output): Add comment and URL.
13826
13827 2011-11-21 Jan Djärv <jan.h.d@swipnet.se>
13828
13829 * xterm.c (x_clear_frame): Reinstate the XClearWindow call.
13830
13831 2011-11-21 Chong Yidong <cyd@gnu.org>
13832
13833 * window.c (Fnext_window, Fprevious_window): Doc fix.
13834
13835 2011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
13836
13837 * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup.
13838
13839 2011-11-20 Juanma Barranquero <lekktu@gmail.com>
13840
13841 * nsfont.m (syms_of_nsfont) <ns-reg-to-script>: Fix typo.
13842
13843 2011-11-20 Martin Rudalics <rudalics@gmx.at>
13844
13845 * window.c (Fset_window_combination_limit): Rename argument
13846 STATUS to LIMIT.
13847 (Vwindow_combination_limit): Remove "status" from doc-string.
13848
13849 2011-11-20 Andreas Schwab <schwab@linux-m68k.org>
13850
13851 * m/ibms390.h: Remove.
13852 * m/ibms390x.h: Don't include "ibms390.h".
13853
13854 2011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
13855
13856 * fileio.c (Finsert_file_contents): Add missing gcpro1 variable.
13857 Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
13858
13859 2011-11-20 Juanma Barranquero <lekktu@gmail.com>
13860
13861 * casetab.c (Fset_case_table):
13862 * charset.c (Fcharset_after): Fix typos.
13863
13864 2011-11-20 Paul Eggert <eggert@cs.ucla.edu>
13865
13866 Standardize on VIRT_ADDR_VARIES behavior (Bug#10042).
13867 Otherwise, valgrind does not work on some platforms.
13868 Problem reported by Andreas Schwab in
13869 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
13870 * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
13871 is set, removing the need for VIRT_ADDRESS_VARIES.
13872 (PURE_P): Use a more-efficient implementation that needs just one
13873 comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
13874 number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
13875 to 4 (xorl, subq, cmpq, setbe).
13876 * alloc.c (pure): Always extern now, since that's the
13877 VIRT_ADDR_VARIES behavior.
13878 (PURE_POINTER_P): Use a single comparison, not two, for
13879 consistency with the new puresize.h.
13880 * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
13881 * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
13882 Remove VIRT_ADDR_VARIES no longer needed.
13883
13884 2011-11-19 Eli Zaretskii <eliz@gnu.org>
13885
13886 * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
13887 (erase_phys_cursor, update_window_cursor, show_mouse_face)
13888 (cursor_in_mouse_face_p): If the cursor position is out of bounds,
13889 behave as if the cursor position were at the window margin.
13890
13891 * window.c (get_phys_cursor_glyph): If the window is hscrolled,
13892 and the cursor position is out of bounds, behave as if the cursor
13893 position were at the window margin. (Bug#10075)
13894
13895 2011-11-18 Chong Yidong <cyd@gnu.org>
13896
13897 * window.c (Fwindow_combination_limit): Make first argument
13898 non-optional, since it is meaningless for live windows like the
13899 selected window.
13900
13901 2011-11-18 Dmitry Antipov <dmantipov@yandex.ru>
13902
13903 * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs.
13904
13905 2011-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
13906
13907 * intervals.c: Fix grafting over the whole buffer (bug#10071).
13908 (graft_intervals_into_buffer): Simplify.
13909
13910 2011-11-18 Eli Zaretskii <eliz@gnu.org>
13911
13912 * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
13913 hash values of the two rows.
13914 (copy_row_except_pointers): Preserve the used[] arrays and the
13915 hash values of the two rows. (Bug#10035)
13916 (add_row_entry): Add xassert to verify that ROW's hash code is valid.
13917
13918 * xdisp.c (row_hash): New function, body extracted from
13919 compute_line_metrics.
13920 (compute_line_metrics): Call row_hash, instead of computing the
13921 hash code inline.
13922
13923 * dispnew.c (verify_row_hash): Call row_hash for computing the
13924 hash code of a row, instead of duplicating code from xdisp.c.
13925
13926 * dispextern.h (row_hash): Add prototype.
13927
13928 2011-11-18 Tassilo Horn <tassilo@member.fsf.org>
13929
13930 * frame.c (delete_frame): Don't delete the terminal when the last
13931 X frame is closed if emacs is built with GTK toolkit.
13932
13933 2011-11-17 Juanma Barranquero <lekktu@gmail.com>
13934
13935 * window.c (syms_of_window) <window-combination-resize>: Fix typo.
13936
13937 2011-11-17 Martin Rudalics <rudalics@gmx.at>
13938
13939 * window.c (Vwindow_splits): Rename to
13940 Vwindow_combination_resize. Suggested by Juri Linkov.
13941 (Fsplit_window_internal): Use Vwindow_combination_resize instead
13942 of Vwindow_splits.
13943
13944 2011-11-16 Juanma Barranquero <lekktu@gmail.com>
13945
13946 * nsfns.m (Fns_font_name):
13947 * window.c (syms_of_window) <window-combination-limit>: Fix typos.
13948
13949 2011-11-16 Martin Rudalics <rudalics@gmx.at>
13950
13951 * window.h (window): Rename slot "nest" to "combination_limit".
13952 * window.c (Fwindow_nest): Rename to Fwindow_combination_limit.
13953 (Fset_window_nest): Rename to Fset_window_combination_limit.
13954 (Vwindow_nest): Rename to Vwindow_combination_limit.
13955 (recombine_windows, make_parent_window, make_window)
13956 (Fsplit_window_internal, saved_window)
13957 (Fset_window_configuration, save_window_save): Rename all
13958 occurrences of window_nest to window_combination_limit.
13959
13960 2011-11-15 Juanma Barranquero <lekktu@gmail.com>
13961
13962 * image.c (imagemagick_load_image): Fix typo.
13963
13964 2011-11-14 Eli Zaretskii <eliz@gnu.org>
13965
13966 * xdisp.c (display_line): Move the call to
13967 highlight_trailing_whitespace before the call to
13968 compute_line_metrics, since the latter needs to see the final
13969 faces of all the glyphs to compute ROW's hash value.
13970 Fixes assertion violations in row_equal_p. (Bug#10035)
13971
13972 2011-11-14 Juanma Barranquero <lekktu@gmail.com>
13973
13974 * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0,
13975 just return (bug#10044).
13976
13977 2011-11-12 Eli Zaretskii <eliz@gnu.org>
13978
13979 * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
13980 with user-defined heap size. Bump the default size of the temacs
13981 heap to 27MB, to avoid memory warning when running temacs.
13982 ($(TEMACS)): Use HEAPSIZE instead of a hardcoded value.
13983
13984 * dispnew.c (scrolling_window): Fix incorrect indices in accessing
13985 current_matrix and desired_matrix. (Bug#9990)
13986 (verify_row_hash) [XASSERTS]: New function.
13987 (adjust_glyph_matrix, row_equal_p): Use it in xassert to verify
13988 that the hash value of glyph rows is correct.
13989
13990 2011-11-12 Martin Rudalics <rudalics@gmx.at>
13991
13992 * window.h (window): Remove splits slot.
13993 * window.c (Fwindow_splits, Fset_window_splits): Remove.
13994 (Fdelete_other_windows_internal, make_parent_window)
13995 (make_window, Fsplit_window_internal, Fdelete_window_internal)
13996 (Fset_window_configuration, save_window_save): Don't deal with
13997 split status of windows.
13998 (saved_window): Remove splits slot.
13999 (Vwindow_splits): Rewrite doc-string.
14000
14001 2011-11-11 Jan Djärv <jan.h.d@swipnet.se>
14002
14003 * xfns.c (unwind_create_frame):
14004 * nsfns.m (unwind_create_frame):
14005 * w32fns.c (unwind_create_frame): Use Fmemq to check if frame is in
14006 Vframe_list (Bug#9999).
14007
14008 2011-11-11 Dmitry Antipov <dmantipov@yandex.ru>
14009
14010 * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext.
14011
14012 2011-11-11 Kenichi Handa <handa@m17n.org>
14013
14014 * callproc.c (Fcall_process): Set the member dst_multibyte of
14015 process_coding.
14016
14017 2011-11-11 Johan Bockgård <bojohan@gnu.org>
14018
14019 * xdisp.c (fill_composite_glyph_string): Always set s->face, to
14020 avoid a crash (bug#9496).
14021
14022 2011-11-09 Chong Yidong <cyd@gnu.org>
14023
14024 * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
14025 (Fwindow_inside_absolute_pixel_edges): Only allow live windows.
14026
14027 2011-11-08 Paul Eggert <eggert@cs.ucla.edu>
14028
14029 * s/gnu.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS (Bug#9926).
14030
14031 2011-11-08 Paul Eggert <eggert@cs.ucla.edu>
14032
14033 Avoid some portability problems by eschewing 'extern inline' functions.
14034 The trivial performance wins aren't worth the portability hassles; see
14035 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>
14036 et seq.
14037 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
14038 (window_box_width, window_box_left, window_box_left_offset)
14039 (window_box_right, window_box_right_offset): Undo previous change,
14040 by removing the "extern"s.
14041 * intervals.c (adjust_intervals_for_insertion)
14042 (adjust_intervals_for_deletion): Undo previous change,
14043 making these static again.
14044 (offset_intervals, temp_set_point_both, temp_set_point)
14045 (copy_intervals_to_string): No longer inline.
14046 * xdisp.c (window_text_bottom_y, window_box_width)
14047 (window_box_height, window_box_left_offset)
14048 (window_box_right_offset, window_box_left, window_box_right)
14049 (window_box): No longer inline.
14050
14051 2011-11-08 Chong Yidong <cyd@gnu.org>
14052
14053 * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix.
14054 (Fwindow_body_height, Fwindow_body_width): Move from Lisp.
14055 Signal an error if not a live window.
14056 (Fwindow_total_width, Fwindow_total_height): Move from Lisp.
14057 (Fwindow_total_size, Fwindow_body_size): Move to Lisp.
14058
14059 2011-11-07 Juanma Barranquero <lekktu@gmail.com>
14060
14061 * lisp.h (syms_of_abbrev): Remove declaration.
14062 Reported by CHENG Gao <chenggao@royau.me>.
14063
14064 2011-11-07 Eli Zaretskii <eliz@gnu.org>
14065
14066 * w32.c (check_windows_init_file): Don't look for term/w32-win.el
14067 if Vpurify_flag is non-nil. Fixes a crash when running w32 build
14068 of temacs in GUI mode.
14069
14070 2011-11-07 Martin Rudalics <rudalics@gmx.at>
14071
14072 * window.h: Declare delete_all_child_windows instead of
14073 delete_all_subwindows.
14074 * window.c (Fwindow_nest, Fset_window_nest)
14075 (Fset_window_new_total, Fset_window_new_normal)
14076 (Fwindow_resize_apply): Don't use term subwindow in doc-strings.
14077 (delete_all_subwindows): Rename to delete_all_child_windows.
14078 (Fdelete_other_windows_internal, Fset_window_configuration):
14079 Call delete_all_child_windows instead of delete_all_subwindows.
14080 * frame.c (delete_frame): Call delete_all_child_windows instead
14081 of delete_all_subwindows.
14082
14083 2011-11-07 Paul Eggert <eggert@cs.ucla.edu>
14084
14085 * alloc.c (DEADP): New macro, for porting to GNU/Hurd (Bug#9926).
14086 This is also needed for porting to any host where GC_MARK_STACK is
14087 not GC_MAKE_GCPROS_NOOPS.
14088 (which_symbols): Use it.
14089
14090 2011-11-07 Kenichi Handa <handa@m17n.org>
14091
14092 * coding.c (coding_set_destination): Check coding->src_pos only
14093 when coding->src_object is a buffer (bug#9910).
14094
14095 * process.c (send_process): Set the member src_multibyte of coding
14096 to 0 (bug#9911) when sending a unibyte text.
14097
14098 * callproc.c (Fcall_process): Set the member src_multibyte of
14099 process_coding to 0 (bug#9912).
14100
14101 2011-11-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14102
14103 * xmenu.c (cleanup_widget_value_tree): New function.
14104 (xmenu_show, xdialog_show): Use it in record_unwind_protect instead of
14105 calling free_menubar_widget_value_tree directly (Bug#9830).
14106
14107 2011-11-06 Paul Eggert <eggert@cs.ucla.edu>
14108
14109 Fix some portability problems with 'inline'.
14110 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
14111 (window_box_width, window_box_left, window_box_left_offset)
14112 (window_box_right, window_box_right_offset): Declare extern.
14113 Otherwise, these inline functions do not conform to C99 and
14114 are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in
14115 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
14116 * intervals.c (adjust_intervals_for_insertion)
14117 (adjust_intervals_for_deletion): Now extern, because otherwise the
14118 extern inline functions 'offset_intervals' couldn't refer to it.
14119 (static_offset_intervals): Remove.
14120 (offset_intervals): Rewrite using the old contents of
14121 static_offset_intervals. The old version didn't conform to C99
14122 because an extern inline function contained a reference to an
14123 identifier with static linkage.
14124
14125 2011-11-06 Andreas Schwab <schwab@linux-m68k.org>
14126
14127 * keyboard.c (interrupt_signal): Don't call kill-emacs while in
14128 GC.
14129
14130 2011-11-06 Eli Zaretskii <eliz@gnu.org>
14131
14132 * xdisp.c (init_iterator, reseat_to_string): Don't set the
14133 iterator's bidi_p flag if Vpurify_flag is non-nil. (Bug#9963)
14134 (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
14135 return Qleft_to_right.
14136
14137 2011-11-06 Chong Yidong <cyd@gnu.org>
14138
14139 * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window)
14140 (Fminibuffer_window, Fwindow_buffer, Fwindow_splits)
14141 (Fset_window_splits, Fwindow_nest, Fset_window_nest)
14142 (Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size)
14143 (Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line)
14144 (Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars)
14145 (Fwindow_vscroll): Doc fix.
14146 (Fwindow_top_child, Fwindow_left_child): Eliminate a nil default
14147 argument, since it makes no sense to pass a live window and for
14148 consistency with window-child.
14149
14150 2011-11-05 Christoph Scholtes <cschol2112@googlemail.com>
14151
14152 * makefile.w32-in ($(TEMACS), (gl-stamp)): Use $(THISDIR) to
14153 support MSVC.
14154
14155 2011-11-05 Jason Rumney <jasonr@gnu.org>
14156
14157 * w32font.c (font_matches_spec): Filter out non-Japanese kana fonts.
14158 (add_font_entity_to_list): Filter out non-Japanese Shift-JIS
14159 fonts (Bug#6029).
14160 (add_font_entity_to_list): Fix logic errors in mixed boolean and
14161 bitwise arithmetic preventing use of unicode-sip and non-truetype
14162 opentype fonts.
14163
14164 2011-11-05 Eli Zaretskii <eliz@gnu.org>
14165
14166 * s/ms-w32.h (fstat, stat, utime): Move redirections to
14167 "emacs"-only part.
14168
14169 * w32fns.c (x_create_tip_frame, Fx_create_frame): Rearrange
14170 initialization code to keep similarity to xfns.c after changes
14171 from 2011-11-05.
14172
14173 2011-11-05 Jan Djärv <jan.h.d@swipnet.se>
14174
14175 * nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG.
14176 (unwind_create_frame): New function (Bug#9943).
14177 (Fx_create_frame): Restructure code to be more similar to the one in
14178 xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943).
14179 Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943).
14180 Move terminal->reference_count++ just before making the frame official
14181 (Bug#9943).
14182
14183 * nsterm.m (x_free_frame_resources): New function.
14184 (x_destroy_window): Move code to x_free_frame_resources.
14185
14186 * xfns.c (unwind_create_frame): Fix comment.
14187 (Fx_create_frame, x_create_tip_frame):
14188 Move terminal->reference_count++ just before making the frame
14189 official. Move initialization of image_cache_refcount and
14190 dpyinfo_refcount before calling init_frame_faces (Bug#9943).
14191
14192 2011-11-05 Eli Zaretskii <eliz@gnu.org>
14193
14194 Support MSVC build with newer versions of Visual Studio.
14195 * makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as
14196 Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on
14197 nt/gmake.defs.
14198
14199 * lisp.h (ENUM_BF): New macro, for enumerated types in bitfields,
14200 which are not supported by MSVC.
14201 (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay)
14202 (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in
14203 bitfields.
14204 (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated
14205 types in bitfields.
14206 (DEFUN) [_MSC_VER]: Define in a different way for MSVC.
14207
14208 * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
14209
14210 2011-11-05 Fabrice Popineau <fabrice.popineau@supelec.fr> (tiny change)
14211
14212 Support MSVC build with newer versions of Visual Studio.
14213 * w32.c: Don't include w32api.h for MSVC.
14214 (init_environment) [_MSC_VER]: Call sys_access, not _access.
14215
14216 * s/ms-w32.h <sigset_t, ssize_t> [_MSC_VER]: Typedefs for MSVC.
14217 [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h.
14218 (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins.
14219 (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the
14220 e_* cousins.
14221 (alloca) [_MSC_VER]: Define to _alloca.
14222
14223 * lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC.
14224
14225 * regex.c <re_char> [_MSC_VER]: A separate definition for MSVC.
14226
14227 2011-11-04 Eli Zaretskii <eliz@gnu.org>
14228
14229 * xdisp.c (note_mouse_highlight): If either of
14230 previous/next-single-property-change returns nil, treat that as
14231 the beginning or the end of the buffer. (Bug#9955)
14232
14233 2011-11-04 Jan Djärv <jan.h.d@swipnet.se>
14234
14235 * gtkutil.c (xg_make_tool_item): Add callbacks if one of wimage or
14236 label is not null (Bug#9951).
14237 (xg_tool_item_stale_p): Handle the fact that wimage and/or wlbl
14238 may be NULL.
14239
14240 2011-11-04 Eli Zaretskii <eliz@gnu.org>
14241
14242 * window.c (Fwindow_body_size): Mention in the doc string that the
14243 return value is in frame's canonical units. (Bug#9949)
14244
14245 2011-11-03 Eli Zaretskii <eliz@gnu.org>
14246
14247 * xdisp.c (note_mouse_highlight): Initialize `area'. (Bug#9947)
14248
14249 * w32fns.c (unwind_create_frame): If needed, free the glyph
14250 matrices of the partially constructed frame. (Bug#9943)
14251 * xfns.c (unwind_create_frame): Likewise.
14252
14253 2011-11-01 Eli Zaretskii <eliz@gnu.org>
14254
14255 * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment.
14256 Don't stop backward scan on the continuation glyph, even though
14257 its CHARPOS is positive.
14258 (mouse_face_from_buffer_pos, note_mouse_highlight):
14259 Rename cover_string to disp_string.
14260
14261 2011-11-01 Martin Rudalics <rudalics@gmx.at>
14262
14263 * window.c (temp_output_buffer_show): Don't use
14264 Vtemp_buffer_show_specifiers.
14265 (Vtemp_buffer_show_specifiers): Remove unused variable.
14266
14267 2011-10-30 Eli Zaretskii <eliz@gnu.org>
14268
14269 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented
14270 past the beginning of the current glyph matrix.
14271
14272 2011-10-30 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
14273
14274 * xterm.c: Include X11/Xproto.h if HAVE_GTK3.
14275 (x_error_handler): Ignore BadMatch for X_SetInputFocus for
14276 HAVE_GTK3 (Bug#9869).
14277
14278 * gtkutil.c (xg_win_to_widget, xg_event_is_for_menubar): Initialize
14279 type to GDK_NOTHING so valgrind does not complain (Bug#9901).
14280
14281 * xterm.h (x_display_info): Add Xatom_net_wm_state_hidden (Bug#9893).
14282
14283 * xterm.c: Declare x_handle_net_wm_state to return int.
14284 (handle_one_xevent): Check if we are iconified but don't have
14285 _NET_WM_STATE_HIDDEN. If do, treat as deiconify (Bug#9893).
14286 (get_current_wm_state): Return non-zero if not hidden,
14287 check for _NET_WM_STATE_HIDDEN (Bug#9893).
14288 (do_ewmh_fullscreen): Ignore return value from get_current_wm_state.
14289 (x_handle_net_wm_state): Return what get_current_wm_state returns.
14290 (x_term_init): Initialize dpyinfo->Xatom_net_wm_state_hidden.
14291
14292 2011-10-29 Paul Eggert <eggert@cs.ucla.edu>
14293
14294 * alloc.c (which_symbols): Declare EXTERNALLY_VISIBLE,
14295 so that this new function doesn't get optimized away by a
14296 whole-program optimizer. Make the 2nd arg EMACS_INT, not int.
14297
14298 2011-10-29 Andreas Schwab <schwab@linux-m68k.org>
14299
14300 * frame.h (MOUSE_HL_INFO): Remove excess parens.
14301
14302 2011-10-29 Eli Zaretskii <eliz@gnu.org>
14303
14304 Fix the `xbytecode' command.
14305 * .gdbinit (xprintbytestr): New command.
14306 (xwhichsymbols): Rename from `which'; all callers changed.
14307 (xbytecode): Print the byte-code string as well.
14308
14309 2011-10-29 Kim Storm <storm@cua.dk>
14310
14311 * alloc.c (which_symbols): New function.
14312
14313 2011-10-29 Andreas Schwab <schwab@linux-m68k.org>
14314
14315 * minibuf.c (read_minibuf_noninteractive): Allow reading empty
14316 line. (Bug#9903)
14317
14318 2011-10-29 Glenn Morris <rgm@gnu.org>
14319
14320 * process.c (wait_reading_process_output): Revert 2009-08-30 change.
14321 Not clear what it was for, and it causes various bugs. (Bug#9839)
14322
14323 2011-10-28 Eli Zaretskii <eliz@gnu.org>
14324
14325 * xdisp.c (note_mouse_highlight): Initialize `part', to avoid a
14326 possible random value that matches one of those tested as
14327 condition to clear the mouse face.
14328
14329 2011-10-28 Chong Yidong <cyd@gnu.org>
14330
14331 * xdisp.c (note_mouse_highlight): Fix use of uninitialized var.
14332
14333 2011-10-28 Dan Nicolaescu <dann@ics.uci.edu>
14334
14335 * window.c (make_window): Initialize phys_cursor_on_p.
14336
14337 2011-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
14338
14339 * lisp.h (struct Lisp_Symbol): Update comments.
14340
14341 2011-10-28 Juanma Barranquero <lekktu@gmail.com>
14342
14343 * w32font.c (w32_load_unicows_or_gdi32): Add missing return.
14344
14345 2011-10-28 Eli Zaretskii <eliz@gnu.org>
14346
14347 Fix Emacs on Windows 9X (bug#8562). Thanks to oslsachem
14348 <oslsachem@gmail.com> for helping to debug this.
14349
14350 * w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w)
14351 (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w)
14352 (g_b_init_get_glyph_outline_w): New static variables.
14353 (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc)
14354 (GetGlyphOutlineW_Proc): New typedefs.
14355 (w32_load_unicows_or_gdi32, get_outline_metrics_w)
14356 (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font):
14357 New functions.
14358 (w32font_open_internal, compute_metrics):
14359 Call get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w
14360 instead of calling the "wide" APIs directly.
14361
14362 * emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font.
14363
14364 * w32.h (syms_of_w32font): Add prototype.
14365
14366 2011-10-27 Juanma Barranquero <lekktu@gmail.com>
14367
14368 * window.c (Fframe_root_window, Fframe_first_window, Fwindow_end)
14369 (Fframe_selected_window, Ftemp_output_buffer_show, Fnext_window)
14370 (Fdelete_window_internal, Fwindow_parameters): Fix typos in docstrings.
14371 (Fmove_to_window_line): Doc fix.
14372
14373 2011-10-27 Chong Yidong <cyd@gnu.org>
14374
14375 * process.c (make_process): Set gnutls_state to NULL.
14376
14377 * gnutls.c (emacs_gnutls_deinit): Deinit the gnutls_state if it is
14378 non-NULL, regardless of GNUTLS_INITSTAGE.
14379 (Fgnutls_boot): Cleanups. Call emacs_gnutls_deinit if we signal
14380 an error. Set process slots as soon as we allocate them.
14381
14382 * gnutls.h (GNUTLS_LOG, GNUTLS_LOG2): Fix macros.
14383
14384 2011-10-27 Chong Yidong <cyd@gnu.org>
14385
14386 * gnutls.c (emacs_gnutls_deinit): New function.
14387 Deallocate credentials structures as well as calling gnutls_deinit.
14388 (Fgnutls_deinit, Fgnutls_boot): Use it.
14389
14390 * process.c (make_process): Initialize GnuTLS credentials to NULL.
14391 (deactivate_process): Call emacs_gnutls_deinit.
14392
14393 2011-10-27 Juanma Barranquero <lekktu@gmail.com>
14394
14395 * image.c (x_create_x_image_and_pixmap):
14396 * w32.c (sys_rename, w32_delayed_load):
14397 * w32font.c (fill_in_logfont):
14398 * w32reg.c (x_get_string_resource): Silence compiler warnings.
14399
14400 2011-10-26 Juanma Barranquero <lekktu@gmail.com>
14401
14402 * w32fns.c (w32_default_color_map): New function,
14403 extracted from Fw32_default_color_map.
14404 (Fw32_default_color_map, Fx_open_connection): Use it. (Bug#9785)
14405
14406 2011-10-25 Paul Eggert <eggert@cs.ucla.edu>
14407
14408 * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2).
14409
14410 2011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
14411
14412 * keyboard.c (test_undefined): New function (bug#9751).
14413 (read_key_sequence): Use it to detect when a key is bound to `undefined'.
14414
14415 2011-10-25 Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
14416
14417 * sysdep.c (init_sys_modes): Fix the check for the controlling
14418 terminal (Bug#6649).
14419
14420 2011-10-20 Eli Zaretskii <eliz@gnu.org>
14421
14422 * dispextern.h (struct bidi_it): New member next_en_type.
14423
14424 * bidi.c (bidi_line_init): Initialize the next_en_type member.
14425 (bidi_resolve_explicit_1): When next_en_pos is valid for the
14426 current character, check also for next_en_type being WEAK_EN.
14427 (bidi_resolve_weak): Don't enter the expensive loop if the current
14428 position is before next_en_pos. Record the bidi type of the first
14429 non-ET, non-BN character we find, in addition to its position.
14430 (bidi_level_of_next_char): Invalidate next_en_type when
14431 next_en_pos is over-stepped.
14432
14433 2011-10-20 Paul Eggert <eggert@cs.ucla.edu>
14434
14435 Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794)
14436 * editfns.c: Rewrite current-time-zone so that it invokes
14437 the equivalent of (format-time-string "%Z") to get the time zone name.
14438 This fixes a bug when the time zone name contains characters that
14439 need converting from the system time locale to Emacs internal format.
14440 This fixes a shortcoming that I introduced in my 1999-10-19 patch:
14441 that patch fixed format-time-string to do the conversion, but
14442 I forgot to fix current-time-zone.
14443 (format_time_string): New function, containing most of
14444 what Fformat_time_string used to contain.
14445 (Fformat_time_string): Rewrite in terms of format_time_string.
14446 This doesn't change this function's behavior.
14447 (current-time-zone): Rewrite to use format_time_string.
14448 This fixes the bug reported by Michael Schierl in
14449 <http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00334.html>.
14450 Jason Rumney's 2007-06-07 change worked around this bug, but
14451 didn't fix it.
14452 * systime.h (tzname, timezone): Remove no-longer-used declarations.
14453
14454 2011-10-19 Eli Zaretskii <eliz@gnu.org>
14455
14456 * xdisp.c (start_display): If the character at POS is displayed
14457 via a display vector, reset IT->current.dpvec_index to zero.
14458 (try_window_reusing_current_matrix): If a line ends in a display
14459 vector or the next line starts in a display vector, continue
14460 redrawing the window even though the character position of
14461 start_row was reached.
14462 (Bug#9771, part 2)
14463
14464 2011-10-18 Chong Yidong <cyd@gnu.org>
14465
14466 * xdisp.c (get_next_display_element): Handle U+2010 and U+2011
14467 with nobreak-char-display too.
14468
14469 2011-10-18 Eli Zaretskii <eliz@gnu.org>
14470
14471 Fix part 3 of bug#9771.
14472 * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1.
14473 (bidi_resolve_neutral): Don't enter the expensive loop looking for
14474 non-neutral characters if the current character is a paragraph
14475 separator (a.k.a. Newline). This avoids running the same
14476 expensive loop twice, once when we consume the preceding newline
14477 and the other time when the line actually needs to be displayed.
14478 Avoid the loop when we see neutrals on the base embedding level
14479 following a character whose directionality is the same as the
14480 paragraph's. This avoids running the expensive loop when a line
14481 ends in a long sequence of neutrals, like control characters.
14482 Add assertion against STRONG_AL type. Slightly rearrange code
14483 that determines the type of a neutral given the first non-neutral
14484 that follows it.
14485 (bidi_level_of_next_char): Set next_en_pos to zero when
14486 invalidating its info.
14487
14488 2011-10-17 Eli Zaretskii <eliz@gnu.org>
14489
14490 * xdisp.c (push_display_prop): Determine whether to record string
14491 or buffer position by IT->string, not by IT->method. Allow
14492 GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4)
14493 (move_it_vertically_backward): Don't look for character position
14494 immediately after the newline when in a continuation line.
14495 (Bug#9771, part 1)
14496
14497 2011-10-15 Martin Rudalics <rudalics@gmx.at>
14498
14499 * window.c (coordinates_in_window): Rewrite and delabelize
14500 vertical border check. (Bug#5357) (Bug#9618)
14501
14502 2011-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
14503
14504 * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained
14505 errors in XSetWindowBorder (bug#9310).
14506
14507 2011-10-13 Dmitry Antipov <dmantipov@yandex.ru>
14508
14509 * editfns.c (Fset_time_zone_rule): Replace free with xfree to
14510 avoid crash when xmalloc overrun checking is enabled.
14511
14512 2011-10-13 Eli Zaretskii <eliz@gnu.org>
14513
14514 * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
14515 itb.paragraph_dir to NEUTRAL_DIR. Fixes an occasional incorrect
14516 cursor motion with <left> and <right> arrow keys.
14517
14518 * bidi.c (bidi_init_it): Don't initialize paragraph_dir here, as
14519 some callers set that themselves.
14520
14521 2011-10-12 Eli Zaretskii <eliz@gnu.org>
14522
14523 * xdisp.c (find_row_edges): Handle the case where ROW comes from a
14524 display string and the previous row comes from the same string and
14525 is empty. (Bug#9739) (Bug#9738)
14526
14527 2011-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
14528
14529 * doc.c (get_doc_string): Encode file name (bug#9735).
14530
14531 2011-10-12 Eli Zaretskii <eliz@gnu.org>
14532
14533 * bidi.c (bidi_level_of_next_char):
14534 * xdisp.c (get_visually_first_element): Remove old incorrect
14535 comments regarding the Unicode Line Separator character.
14536
14537 * bidi.c (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR.
14538
14539 2011-10-12 Dmitry Antipov <dmantipov@yandex.ru>
14540
14541 * alloc.c (Fgc_status): Do not access beyond zombies array
14542 boundary if nzombies > MAX_ZOMBIES.
14543 * alloc.c (dump_zombies): Add missing format specifier.
14544
14545 2011-10-12 Paul Eggert <eggert@cs.ucla.edu>
14546
14547 * xdisp.c (set_cursor_from_row): Simplify conditionals,
14548 to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow.
14549
14550 * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff.
14551 Some packages use them to denote characters with modifiers.
14552
14553 2011-10-11 Andreas Schwab <schwab@linux-m68k.org>
14554
14555 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR)
14556 (GCPRO5_VAR, GCPRO6_VAR, UNGCPRO_VAR): Add whitespace to avoid
14557 matching a pp-number. Rename parameter var to var1.
14558
14559 2011-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
14560
14561 * minibuf.c (Finternal_complete_buffer): Fix last change (bug#9709).
14562
14563 2011-10-08 Glenn Morris <rgm@gnu.org>
14564
14565 * callint.c (Fcall_interactively): Give a more explicit error for the
14566 'c' case with a non-character input. (Bug#8479)
14567
14568 2011-10-08 Eli Zaretskii <eliz@gnu.org>
14569
14570 * xdisp.c (hscroll_window_tree): Support hscroll in right-to-left
14571 lines.
14572 (set_cursor_from_row): Fix cursor positioning in mixed L2R+R2L
14573 lines that are hscrolled on the left.
14574
14575 * dispnew.c (buffer_posn_from_coords): Account for a possible
14576 presence of header-line. (Bug#4426)
14577
14578 2011-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
14579
14580 * buffer.c (syms_of_buffer) <enable-multibyte-characters>:
14581 Don't advertise functionality which we discourage or doesn't work.
14582
14583 2011-10-07 Paul Eggert <eggert@cs.ucla.edu>
14584
14585 * alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__
14586 or sizeof. __alignof__ gives the wrong answer on Fedora x86-64
14587 with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int;
14588 this makes Emacs dump core during garbage collection on rare
14589 occasions. sizeof is obviously inferior to offsetof here, so
14590 stick with offsetof.
14591 (GC_POINTER_ALIGNMENT): New macro.
14592 (mark_memory): Omit 3rd (offset) arg; caller changed.
14593 Don't assume EMACS_INT alignment is the same as pointer alignment.
14594
14595 2011-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
14596
14597 * keyboard.c (read_key_sequence_remapped): New var.
14598 (read_key_sequence): Compute remapping in the right buffer.
14599 (command_loop_1): Use read_key_sequence's remapping directly.
14600
14601 2011-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
14602
14603 * dired.c (file_name_completion): Don't expand file name.
14604 (Ffile_name_completion, Ffile_name_all_completions): Expand file name
14605 before checking file name handler.
14606
14607 * minibuf.c (Finternal_complete_buffer): Only show internal buffers if
14608 they've been requested explicitly (bug#9591).
14609
14610 2011-10-01 Andreas Schwab <schwab@linux-m68k.org>
14611
14612 * keymap.c (Fsingle_key_description): Use make_specified_string
14613 instead of build_string to build string from push_key_description.
14614 (Bug#5193)
14615
14616 2011-09-30 Paul Eggert <eggert@cs.ucla.edu>
14617
14618 * buffer.h (struct buffer): Use time_t, not int, for a time stamp.
14619 This fixes a Y2038 bug on 64-bit hosts.
14620 * buffer.c (reset_buffer):
14621 * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved)
14622 (Fclear_buffer_auto_save_failure):
14623 Use 0, not -1, to represent an unset failure time, since time_t
14624 might not be signed.
14625
14626 Remove dependency on glibc malloc internals.
14627 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
14628 Move back here from lisp.h, but with their new implementations.
14629 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
14630 (XMALLOC_OVERRUN_SIZE_SIZE): Move these new lisp.h macros here.
14631 * charset.c (charset_table_init): New static var.
14632 (syms_of_charset): Use it instead of xmalloc. This removes a
14633 dependency on glibc malloc internals. See Eli Zaretskii's comment in
14634 <http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00815.html>.
14635 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
14636 Move back to alloc.c.
14637 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
14638 (XMALLOC_OVERRUN_SIZE_SIZE): Move to alloc.c.
14639
14640 2011-09-30 Jan Djärv <jan.h.d@swipnet.se>
14641
14642 * nsterm.m (windowDidResize): Call x_set_window_size only when
14643 ns_in_resize is true. Otherwise set pixelwidth/height and
14644 call change_frame_size (Bug#9628).
14645
14646 2011-09-30 Paul Eggert <eggert@cs.ucla.edu>
14647
14648 Port --enable-checking=all to Fedora 14 x86-64.
14649 * charset.c (syms_of_charset): Also account for glibc malloc's
14650 internal overhead when calculating the initial malloc maximum.
14651
14652 Port --enable-checking=all to Fedora 14 x86.
14653 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
14654 Move to lisp.h.
14655 (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc)
14656 (overrun_check_realloc, overrun_check_free):
14657 Use XMALLOC_OVERRUN_SIZE_SIZE, not sizeof (size_t).
14658 That way, xmalloc returns a properly-aligned pointer even if
14659 XMALLOC_OVERRUN_CHECK is defined. The old debugging code happened
14660 to align OK on typical 64-bit hosts, but not on Fedora 14 x86.
14661 * charset.c (syms_of_charset): Take XMALLOC_OVERRUN_CHECK_OVERHEAD
14662 into account when calculating the initial malloc maximum.
14663 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
14664 Move here from alloc.c, so that charset.c can use it too.
14665 Properly align; the old code wasn't right for common 32-bit hosts
14666 when configured with --enable-checking=all.
14667 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
14668 (XMALLOC_OVERRUN_SIZE_SIZE): New macros.
14669
14670 2011-09-29 Eli Zaretskii <eliz@gnu.org>
14671
14672 * sysdep.c (snprintf) [!EOVERFLOW]: If EOVERFLOW is not defined,
14673 use EDOM.
14674
14675 2011-09-28 Eli Zaretskii <eliz@gnu.org>
14676
14677 * xdisp.c (compute_display_string_end): If there's no display
14678 string at CHARPOS, return -1.
14679
14680 * bidi.c (bidi_fetch_char): When compute_display_string_end
14681 returns a negative value, treat the character as a normal
14682 character not covered by a display string. (Bug#9624)
14683
14684 2011-09-28 Juanma Barranquero <lekktu@gmail.com>
14685
14686 * lread.c (Fread_from_string): Fix typo in docstring.
14687
14688 2011-09-27 Eli Zaretskii <eliz@gnu.org>
14689
14690 * xdisp.c (handle_invisible_prop): If invisible text ends on a
14691 newline, reseat the iterator instead of bidi-iterating there one
14692 character at a time. (Bug#9610)
14693 (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past
14694 TO_CHARPOS if the bidi iterator is at base embedding level.
14695
14696 2011-09-27 Andreas Schwab <schwab@linux-m68k.org>
14697
14698 * lread.c (readevalloop): Use correct code for NBSP.
14699 (read1): Likewise. (Bug#9608)
14700
14701 2011-09-25 Michael Albinus <michael.albinus@gmx.de>
14702
14703 * dbusbind.c (Fdbus_register_signal): When service is not
14704 registered, use nil in Vdbus_registered_objects_table. (Bug#9581)
14705
14706 2011-09-25 Glenn Morris <rgm@gnu.org>
14707
14708 * buffer.c (truncate-lines): Doc fix.
14709
14710 2011-09-24 Chong Yidong <cyd@stupidchicken.com>
14711
14712 * window.c (Fwindow_prev_buffers, Fset_window_prev_buffers)
14713 (Fset_window_next_buffers): Doc fix.
14714
14715 2011-09-24 Glenn Morris <rgm@gnu.org>
14716
14717 * minibuf.c (read_minibuf): Disable line truncation. (Bug#5715)
14718
14719 2011-09-24 Paul Eggert <eggert@cs.ucla.edu>
14720
14721 Fix minor problems found by static checking.
14722 * xdisp.c (string_from_display_spec): Don't assume vecsize fits in int.
14723 * indent.c (Fvertical_motion): Fix == vs = typo.
14724
14725 2011-09-24 Eli Zaretskii <eliz@gnu.org>
14726
14727 * dispnew.c (syms_of_display) <redisplay-dont-pause>:
14728 Default value is now t. Doc fix.
14729
14730 * indent.c (Fvertical_motion): Compute and apply the overshoot
14731 logic when moving up, not only when moving down. Fix the
14732 confusing name and values of the it_overshoot_expected variable;
14733 logic changes accordingly. (Bug#9254) (Bug#9549)
14734
14735 * xdisp.c (pos_visible_p): Produce correct pixel coordinates when
14736 CHARPOS is covered by a display string which includes newlines.
14737 (move_it_vertically_backward): Avoid inflooping when START_CHARPOS
14738 is covered by a display string with embedded newlines.
14739
14740 2011-09-24 Michael Albinus <michael.albinus@gmx.de>
14741
14742 * dbusbind.c (Fdbus_register_signal): Add match rule to
14743 Vdbus_registered_objects_table. (Bug#9581)
14744 (Fdbus_register_method, Vdbus_registered_objects_table):
14745 Fix docstring.
14746
14747 2011-09-24 Jim Meyering <meyering@redhat.com>
14748
14749 do not ignore write error for any output size
14750 The previous change was incomplete.
14751 While it makes emacs --batch detect the vast majority of stdout
14752 write failures, errors were still ignored whenever the output size is
14753 k * (BUFSIZ+1) - 4. E.g., on a system with BUFSIZ of 4096,
14754 $ emacs --batch --eval '(print (format "%4093d" 0))' > /dev/full \
14755 && echo FAIL: ignored write error
14756 FAIL: ignored write error
14757 $ emacs --batch --eval '(print (format "%20481d" 0))' > /dev/full \
14758 && echo FAIL: ignored write error
14759 FAIL: ignored write error
14760 * emacs.c (Fkill_emacs): Also test ferror. (Bug#9574)
14761
14762 2011-09-23 Andreas Schwab <schwab@linux-m68k.org>
14763
14764 * emacs.c (Fkill_emacs): In noninteractive mode exit
14765 non-successfully if a write error occurred on stdout. (Bug#9574)
14766
14767 2011-09-21 Eli Zaretskii <eliz@gnu.org>
14768
14769 * xdisp.c (pop_it): Allow it->object that is a cons cell to pass
14770 the xassert test.
14771
14772 * dispextern.h (struct it): Update the comment documenting what
14773 can it->OBJECT be.
14774
14775 2011-09-20 Eli Zaretskii <eliz@gnu.org>
14776
14777 * xdisp.c (set_cursor_from_row): If the row ends in a newline from
14778 a display string, extend search for cursor position to end of row.
14779 (find_row_edges): If the row ends in a newline from a display
14780 string, increment its MATRIX_ROW_END_CHARPOS by one. (Bug#9549)
14781 Handle the case of a display string with multiple newlines.
14782 (Fcurrent_bidi_paragraph_direction): Fix search for previous
14783 non-empty line. Fixes confusing cursor motion with arrow keys at
14784 the beginning of a line that starts with whitespace.
14785
14786 2011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
14787
14788 * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is
14789 (bug#9493).
14790
14791 2011-09-18 Chong Yidong <cyd@stupidchicken.com>
14792
14793 * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as
14794 boolean (Bug#9154).
14795
14796 2011-09-18 Eli Zaretskii <eliz@gnu.org>
14797
14798 * xdisp.c (display_line): Record maximum and minimum buffer
14799 positions even if no glyphs were produced (e.g., by a zero-width
14800 stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record
14801 buffer positions that will be removed from the glyph row because
14802 they don't fit.
14803 (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the
14804 column is beyond frame width: don't subtract 1 "pixel" when
14805 computing width of the stretch.
14806 (reseat_at_next_visible_line_start): Undo the change made on
14807 2011-09-17 that saved paragraph information and restored it after
14808 the call to `reseat'. (Bug#9545)
14809
14810 2011-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14811
14812 * xdisp.c (expose_window): Save original value of phys_cursor_on_p
14813 and turn window cursor on if cleared (Bug#9415).
14814
14815 2011-09-18 Andreas Schwab <schwab@linux-m68k.org>
14816
14817 * search.c (boyer_moore): Take unibyte characters from pattern
14818 literally. (Bug#9458)
14819
14820 2011-09-18 Eli Zaretskii <eliz@gnu.org>
14821
14822 * xdisp.c (reseat_at_next_visible_line_start): Fix last change.
14823
14824 2011-09-18 Paul Eggert <eggert@cs.ucla.edu>
14825
14826 Fix minor problem found by static checking.
14827 * xdisp.c (reseat_at_next_visible_line_start): Mark locals as
14828 initialized, to pacify gcc -Wuninitialized.
14829
14830 * fileio.c: Report proper errno when syscall falls.
14831 (Finsert_file_contents): Save and restore errno,
14832 so that report_file_error outputs the correct diagnostic.
14833 (Fwrite_region) [CLASH_DETECTION]: Likewise.
14834
14835 2011-09-18 Eli Zaretskii <eliz@gnu.org>
14836
14837 * .gdbinit (pgx): Fix references to fields of `struct glyph'.
14838
14839 2011-09-17 Eli Zaretskii <eliz@gnu.org>
14840
14841 * xdisp.c (produce_stretch_glyph): Another fix for changes made on
14842 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530)
14843
14844 2011-09-17 Eli Zaretskii <eliz@gnu.org>
14845
14846 * xdisp.c (reseat_at_next_visible_line_start): Keep information
14847 about the current paragraph and restore it after the call to reseat.
14848
14849 * bidi.c (MAX_PARAGRAPH_SEARCH): New macro.
14850 (bidi_find_paragraph_start): Search back for paragraph beginning
14851 at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE.
14852 (bidi_move_to_visually_next): Only trigger paragraph-related
14853 computations when the last character is a newline or at EOB, not
14854 just any NEUTRAL_B. (Bug#9470)
14855
14856 * xdisp.c (set_cursor_from_row): Don't invoke special treatment of
14857 truncated lines if point is covered by a display string. (Bug#9524)
14858
14859 2011-09-16 Paul Eggert <eggert@cs.ucla.edu>
14860
14861 * xselect.c: Relax test for outgoing X longs (Bug#9498).
14862 (cons_to_x_long): New function.
14863 (lisp_data_to_selection_data): Use it. Correct the test for
14864 short-versus-long data; it was negated. Break out of vector
14865 loop, for efficiency, when a long datum is discovered.
14866
14867 2011-09-16 Stefan Monnier <monnier@iro.umontreal.ca>
14868
14869 * eval.c (Fquote): Document its non-consing behavior (bug#9482).
14870
14871 2011-09-16 Eli Zaretskii <eliz@gnu.org>
14872
14873 * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see
14874 GCC PR/17406) by declaring this function with external scope.
14875
14876 2011-09-15 Paul Eggert <eggert@cs.ucla.edu>
14877
14878 * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514).
14879 Don't mishandle (length (format "%%")) and (format "%4000s%%" "").
14880
14881 2011-09-15 Andreas Schwab <schwab@linux-m68k.org>
14882
14883 * editfns.c (Fformat): Correctly handle text properties on "%%".
14884
14885 2011-09-15 Eli Zaretskii <eliz@gnu.org>
14886
14887 * xterm.c (x_draw_composite_glyph_string_foreground):
14888 * w32term.c (x_draw_composite_glyph_string_foreground):
14889 * term.c (encode_terminal_code):
14890 * composite.c (composition_update_it, get_composition_id):
14891 * xdisp.c (get_next_display_element)
14892 (fill_composite_glyph_string): Add comments about special meaning
14893 of TAB characters in a composition.
14894
14895 2011-09-15 Paul Eggert <eggert@cs.ucla.edu>
14896
14897 * editfns.c (Fformat): Fix off-by-1 bug for "%%b" (Bug#9514).
14898 This occurs when processing a multibyte format.
14899 Problem reported by Wolfgang Jenker.
14900
14901 2011-09-15 Johan Bockgård <bojohan@gnu.org>
14902
14903 * xdisp.c (try_cursor_movement): Only check for exact match if
14904 cursor hpos found by set_cursor_from_row is valid. (Bug#9495)
14905
14906 2011-09-14 Paul Eggert <eggert@cs.ucla.edu>
14907
14908 Remove unused external symbols.
14909 * dispextern.h (calc_pixel_width_or_height): Remove decl.
14910 * xdisp.c (calc_pixel_width_or_height): Now static.
14911 * doprnt.c (exprintf) [! (HAVE_X_WINDOWS && USE_X_TOOLKIT)]: Remove.
14912 * indent.c (check_display_width):
14913 * w32term.c: Fix comment to match code.
14914 * xterm.c, xterm.h (x_catching_errors): Remove.
14915
14916 2011-09-14 Paul Eggert <eggert@cs.ucla.edu>
14917
14918 * xselect.c: Use signed conversions more consistently (Bug#9498).
14919 (selection_data_to_lisp_data): Assume incoming selection data are
14920 signed integers, not unsigned. This is to be consistent with
14921 outgoing selection data, which was modified to use signed integers
14922 in as part of the fix to Bug#9196 in response to Jan D.'s comment
14923 in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9196#32> that X11
14924 expects long, not unsigned long.
14925
14926 2011-09-14 Eli Zaretskii <eliz@gnu.org>
14927
14928 * xdisp.c (try_window_reusing_current_matrix): Fix incorrect
14929 computation of loop end. Reported by Johan Bockgård
14930 <bojohan@gnu.org>.
14931
14932 2011-09-13 Chong Yidong <cyd@stupidchicken.com>
14933
14934 * frame.c (Fother_visible_frames_p): Function deleted.
14935
14936 2011-09-12 Eli Zaretskii <eliz@gnu.org>
14937
14938 * indent.c (compute_motion): Process display vector front to back
14939 rather than the other way around. (Bug#2496)
14940
14941 2011-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
14942
14943 * fileio.c (Finsert_file_contents): Don't assume beg_offset is 0.
14944
14945 2011-09-11 Chong Yidong <cyd@stupidchicken.com>
14946
14947 * minibuf.c (Fread_from_minibuffer): Doc fix.
14948
14949 2011-09-11 Eli Zaretskii <eliz@gnu.org>
14950
14951 * xdisp.c (produce_stretch_glyph): Fix a typo made in changes from
14952 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9475)
14953
14954 2011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
14955
14956 * fileio.c (Fvisited_file_modtime): Document `(-1 65535)' as a
14957 value for non-existent files.
14958
14959 2011-09-11 Eli Zaretskii <eliz@gnu.org>
14960
14961 * fileio.c (Finsert_file_contents): If the file cannot be opened,
14962 set its "size" to -1. This will set the modtime_size field of
14963 the corresponding buffer to -1, which is what
14964 verify-visited-file-modtime expects for files that do not exist.
14965 (Bug#9139)
14966
14967 2011-09-11 Paul Eggert <eggert@cs.ucla.edu>
14968
14969 * keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls
14970 here ...
14971 * lisp.h: ... from here. push_key_description is no longer
14972 defined in keyboard.c, so its declaration should not be in
14973 lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE
14974 logically belongs with push_key_description.
14975
14976 2011-09-10 Paul Eggert <eggert@cs.ucla.edu>
14977
14978 * buffer.h: Include <sys/types.h> instead of <time.h>.
14979 Otherwise, off_t wasn't defined on FreeBSD 9.0-BETA2 i386.
14980 Problem reported by Herbert J. Skuhra.
14981
14982 2011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
14983
14984 * xml.c (parse_region): Make the parsing work for
14985 non-comment-starting XML files again (bug#9144).
14986
14987 2011-09-10 Andreas Schwab <schwab@linux-m68k.org>
14988
14989 * image.c (gif_load): Fix calculation of bottom and right corner.
14990 (Bug#9468)
14991
14992 2011-09-10 Eli Zaretskii <eliz@gnu.org>
14993
14994 * xdisp.c (MAX_DISP_SCAN): Decrease to 250. Prevents sluggish
14995 redisplay in small windows.
14996
14997 2011-09-09 Eli Zaretskii <eliz@gnu.org>
14998
14999 * frame.c (x_report_frame_params): Cast to avoid compiler warnings.
15000
15001 2011-09-08 Martin Rudalics <rudalics@gmx.at>
15002
15003 * window.c (Fset_window_prev_buffers, Fset_window_next_buffers):
15004 Operate on live windows only.
15005
15006 2011-09-08 Juanma Barranquero <lekktu@gmail.com>
15007
15008 * emacs.c (my_heap_start): #ifdef to avoid warnings when unused.
15009
15010 2011-09-07 Eli Zaretskii <eliz@gnu.org>
15011
15012 * xdisp.c (move_it_in_display_line_to): Call RESTORE_IT on ppos_it
15013 only under bidi iteration.
15014
15015 2011-09-07 Jan Djärv <jan.h.d@swipnet.se>
15016
15017 * gtkutil.c (xg_make_tool_item): Insert comment about eventbox.
15018
15019 2011-09-06 Paul Eggert <eggert@cs.ucla.edu>
15020
15021 isnan: Fix porting problem to Solaris 10 with bundled gcc.
15022 Without this fix, the command to link temacs failed due to an
15023 undefined symbol __builtin_isnan. This is because
15024 /usr/include/iso/math_c99.h #defines isnan(x) to
15025 __builtin_isnan(x), but the bundled gcc, which identifies itself
15026 as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have
15027 a __builtin_isnan.
15028 * floatfns.c (isnan): #undef, and then #define to a clone of
15029 what's in data.c.
15030 (Fisnan): Always define, since it's always available now.
15031 (syms_of_floatfns): Always define isnan at the Lisp level.
15032
15033 2011-09-06 Paul Eggert <eggert@cs.ucla.edu>
15034
15035 * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169).
15036
15037 2011-09-06 Paul Eggert <eggert@cs.ucla.edu>
15038
15039 * fileio.c: Fix bugs with large file offsets (Bug#9428).
15040 The previous code assumed that file offsets (off_t values) fit in
15041 EMACS_INT variables, which is not true on typical 32-bit hosts.
15042 The code messed up by falsely reporting buffer overflow in cases
15043 such as (insert-file-contents "big" nil 1 2) into an empty buffer
15044 when "big" contains more than 2**29 bytes, even though this
15045 inserts just one byte and does not overflow the buffer.
15046 (Finsert_file_contents): Store file offsets as off_t
15047 values, not as EMACS_INT values. Check for overflow when
15048 converting between EMACS_INT and off_t. When checking for
15049 buffer overflow or for overlap, take the offsets into account.
15050 Don't use EMACS_INT for small values where int suffices.
15051 When checking for overlap, fix a typo: ZV was used where
15052 ZV_BYTE was intended.
15053 (Fwrite_region): Don't assume off_t fits into 'long'.
15054 * buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT.
15055
15056 2011-09-05 Michael Albinus <michael.albinus@gmx.de>
15057
15058 * dbusbind.c (xd_signature_cat): Rename from signature_cat.
15059
15060 2011-09-04 Paul Eggert <eggert@cs.ucla.edu>
15061
15062 sprintf-related integer and memory overflow issues (Bug#9412).
15063
15064 * doprnt.c (doprnt): Support printing ptrdiff_t and intmax_t values.
15065 (esprintf, exprintf, evxprintf): New functions.
15066 * keyboard.c (command_loop_level): Now EMACS_INT, not int.
15067 (cmd_error): Kbd macro iterations count is now EMACS_INT, not int.
15068 (modify_event_symbol): Do not assume that the length of
15069 name_alist_or_stem is safe to alloca and fits in int.
15070 (Fexecute_extended_command): Likewise for function name and binding.
15071 (Frecursion_depth): Wrap around reliably on integer overflow.
15072 * keymap.c (push_key_description): First arg is now EMACS_INT, not int,
15073 since some callers pass EMACS_INT values.
15074 (Fsingle_key_description): Don't crash if symbol name contains more
15075 than MAX_ALLOCA bytes.
15076 * minibuf.c (minibuf_level): Now EMACS_INT, not int.
15077 (get_minibuffer): Arg is now EMACS_INT, not int.
15078 * lisp.h (get_minibuffer, push_key_description): Reflect API changes.
15079 (esprintf, exprintf, evxprintf): New decls.
15080 * window.h (command_loop_level, minibuf_level): Reflect API changes.
15081
15082 * dbusbind.c (signature_cat): New function.
15083 (xd_signature, Fdbus_register_signal):
15084 Do not overrun buffer; instead, report string overflow.
15085
15086 * dispnew.c (add_window_display_history): Don't overrun buffer.
15087 Truncate instead; this is OK since it's just a log.
15088
15089 * editfns.c (Fcurrent_time_zone): Don't overrun buffer
15090 even if the time zone offset is outlandishly large.
15091 Don't mishandle offset == INT_MIN.
15092
15093 * emacs.c (main) [NS_IMPL_COCOA]: Don't overrun buffer
15094 when creating daemon; the previous buffer-overflow check was incorrect.
15095
15096 * eval.c (verror): Simplify by rewriting in terms of evxprintf,
15097 which has the guts of the old verror function.
15098
15099 * filelock.c (lock_file_1, lock_file): Don't blindly alloca long name;
15100 use SAFE_ALLOCA instead. Use esprintf to avoid int-overflow issues.
15101
15102 * font.c: Include <float.h>, for DBL_MAX_10_EXP.
15103 (font_unparse_xlfd): Don't blindly alloca long strings.
15104 Don't assume XINT result fits in int, or that XFLOAT_DATA * 10
15105 fits in int, when using sprintf. Use single snprintf to count
15106 length of string rather than counting it via multiple sprintfs;
15107 that's simpler and more reliable.
15108 (font_unparse_fcname): Use it to avoid sprintf buffer overrun.
15109 (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not
15110 sprintf, in case result does not fit in int.
15111
15112 * fontset.c (num_auto_fontsets): Now printmax_t, not int.
15113 (fontset_from_font): Print it.
15114
15115 * frame.c (tty_frame_count): Now printmax_t, not int.
15116 (make_terminal_frame, set_term_frame_name): Print it.
15117 (x_report_frame_params): In X, window IDs are unsigned long,
15118 not signed long, so print them as unsigned.
15119 (validate_x_resource_name): Check for implausibly long names,
15120 and don't assume name length fits in 'int'.
15121 (x_get_resource_string): Don't blindly alloca invocation name;
15122 use SAFE_ALLOCA. Use esprintf, not sprintf, in case result does
15123 not fit in int.
15124
15125 * gtkutil.c: Include <float.h>, for DBL_MAX_10_EXP.
15126 (xg_check_special_colors, xg_set_geometry):
15127 Make sprintf buffers a bit bigger, to avoid potential buffer overrun.
15128
15129 * lread.c (dir_warning): Don't blindly alloca buffer; use SAFE_ALLOCA.
15130 Use esprintf, not sprintf, in case result does not fit in int.
15131
15132 * macros.c (executing_kbd_macro_iterations): Now EMACS_INT, not int.
15133 (Fend_kbd_macro): Don't mishandle MOST_NEGATIVE_FIXNUM by treating
15134 it as a large positive number.
15135 (Fexecute_kbd_macro): Don't assume repeat count fits in int.
15136 * macros.h (executing_kbd_macro_iterations): Now EMACS_INT, not int.
15137
15138 * nsterm.m ((NSSize)windowWillResize): Use esprintf, not sprintf,
15139 in case result does not fit in int.
15140
15141 * print.c (float_to_string): Detect width overflow more reliably.
15142 (print_object): Make sprintf buffer a bit bigger, to avoid potential
15143 buffer overrun. Don't assume list length fits in 'int'. Treat
15144 print length of 0 as 0, not as infinity; to be consistent with other
15145 uses of print length in this function. Don't overflow print length
15146 index. Don't assume hash table size fits in 'long', or that
15147 vectorlike size fits in 'unsigned long'.
15148
15149 * process.c (make_process): Use printmax_t, not int, to format
15150 process-name gensyms.
15151
15152 * sysdep.c (snprintf) [! HAVE_SNPRINTF]: New function.
15153
15154 * term.c (produce_glyphless_glyph): Make sprintf buffer a bit bigger
15155 to avoid potential buffer overrun.
15156
15157 * xfaces.c (x_update_menu_appearance): Don't overrun buffer
15158 if X resource line is longer than 512 bytes.
15159
15160 * xfns.c (x_window): Make sprintf buffer a bit bigger
15161 to avoid potential buffer overrun.
15162
15163 * xterm.c (x_io_error_quitter): Don't overrun sprintf buffer.
15164
15165 * xterm.h (x_check_errors): Add ATTRIBUTE_FORMAT_PRINTF.
15166
15167 2011-09-04 Paul Eggert <eggert@cs.ucla.edu>
15168
15169 Integer overflow fixes for scrolling, etc.
15170 Without these, Emacs silently mishandles large integers sometimes.
15171 For example, "C-u 4294967297 M-x recenter" was treated as if
15172 it were "C-u 1 M-x recenter" on a typical 64-bit host.
15173
15174 * xdisp.c (try_window_id): Check Emacs fixnum range before
15175 converting to 'int'.
15176
15177 * window.c (window_scroll_line_based, Frecenter):
15178 Check that an Emacs fixnum is in range before assigning it to 'int'.
15179 (Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for
15180 values converted from Emacs fixnums.
15181 (Frecenter): Don't wrap around a line count if it is out of 'int'
15182 range; instead, treat it as an extreme value.
15183 (Fset_window_configuration, compare_window_configurations):
15184 Use ptrdiff_t, not int, for index that might exceed 2 GiB.
15185
15186 * search.c (Freplace_match): Use ptrdiff_t, not int, for indexes
15187 that can exceed INT_MAX. Check that EMACS_INT value is in range
15188 before assigning it to the (possibly-narrower) index.
15189 (match_limit): Don't assume that a fixnum can fit in 'int'.
15190
15191 * print.c (print_object): Use ptrdiff_t, not int, for index that can
15192 exceed INT_MAX.
15193
15194 * indent.c (position_indentation): Now takes ptrdiff_t, not int.
15195 (Fvertical_motion): Don't wrap around LINES values that don't fit
15196 in 'int'. Instead, treat them as extreme values. This is good
15197 enough for windows, which can't have more than INT_MAX lines anyway.
15198
15199 2011-09-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
15200
15201 * Require libxml/parser.h to avoid compilation warning.
15202
15203 * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
15204
15205 * xml.c (parse_region): Don't call xmlCleanupParser after parsing,
15206 since this reportedly can destroy thread storage.
15207
15208 2011-08-30 Chong Yidong <cyd@stupidchicken.com>
15209
15210 * syntax.c (find_defun_start): Update all cache variables if
15211 exiting early (Bug#9401).
15212
15213 2011-08-30 Eli Zaretskii <eliz@gnu.org>
15214
15215 * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings.
15216
15217 * xdisp.c (produce_stretch_glyph): No longer static, compiled also
15218 when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY
15219 frames. Call tty_append_glyph in the TTY case. (Bug#9402)
15220
15221 * term.c (tty_append_glyph): New function.
15222 (produce_stretch_glyph): Static function and its prototype deleted.
15223
15224 * dispextern.h (produce_stretch_glyph, tty_append_glyph):
15225 Add prototypes.
15226
15227 2011-08-29 Paul Eggert <eggert@cs.ucla.edu>
15228
15229 * image.c (parse_image_spec): Check for nonnegative, not for positive,
15230 when checking :margin (Bug#9390).
15231 (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR):
15232 Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
15233 so that the name doesn't mislead. All uses changed.
15234
15235 2011-08-28 Johan Bockgård <bojohan@gnu.org>
15236
15237 * term.c (init_tty) [HAVE_GPM]: Move mouse settings after
15238 set_tty_hooks.
15239
15240 2011-08-27 Eli Zaretskii <eliz@gnu.org>
15241
15242 * xdisp.c (move_it_to): Don't bail out early when reaching
15243 position beyond to_charpos, if we are scanning backwards.
15244 (move_it_vertically_backward): When DY == 0, make sure we get to
15245 the first character in the line after the newline.
15246
15247 2011-08-27 Paul Eggert <eggert@cs.ucla.edu>
15248
15249 * ccl.c: Improve and simplify overflow checking (Bug#9196).
15250 (ccl_driver): Do not generate an out-of-range pointer.
15251 (Fccl_execute_on_string): Remove unnecessary check for
15252 integer overflow, noted by Stefan Monnier in
15253 <http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00979.html>.
15254 Remove a FIXME that didn't need fixing.
15255 Simplify the newly-introduced buffer reallocation code.
15256
15257 2011-08-27 Juanma Barranquero <lekktu@gmail.com>
15258
15259 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h.
15260
15261 2011-08-26 Paul Eggert <eggert@cs.ucla.edu>
15262
15263 Integer and memory overflow issues (Bug#9196).
15264
15265 * doc.c (get_doc_string): Rework so that
15266 get_doc_string_buffer_size is the actual buffer size, rather than
15267 being 1 less than the actual buffer size; this makes xpalloc more
15268 convenient.
15269
15270 * image.c (x_allocate_bitmap_record, cache_image):
15271 * xselect.c (Fx_register_dnd_atom):
15272 Simplify previous changes by using xpalloc.
15273
15274 * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT,
15275 since either will do and ptrdiff_t is convenient with xpalloc.
15276
15277 * charset.c (charset_table_size)
15278 (struct charset_sort_data.priority): Now ptrdiff_t.
15279 (charset_compare): Don't overflow if priorities differ greatly.
15280 (Fsort_charsets): Don't assume list length fits in int.
15281 Check for size-calculation overflow when allocating sort data.
15282 (syms_of_charset): Allocate an initial charset table that is
15283 just under 64 KiB, to avoid problems with glibc malloc and mmap.
15284
15285 * cmds.c (internal_self_insert): Check for size-calculation overflow.
15286
15287 * composite.h (struct composition.glyph_len): Now int, not unsigned.
15288 The actual value is always <= INT_MAX, and leaving it unsigned made
15289 overflow checking harder.
15290
15291 * dispextern.h (struct glyph_matrix.rows_allocated)
15292 (struct face_cache.size): Now ptrdiff_t, for convenience in use
15293 with xpalloc. The values are still always <= INT_MAX.
15294
15295 * indent.c (compute_motion): Adjust to region_cache_forward sig change.
15296
15297 * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls.
15298 (SAFE_NALLOCA): New macro.
15299
15300 * region-cache.c (struct boundary.pos, find_cache_boundary)
15301 (move_cache_gap, insert_cache_boundary, delete_cache_boundaries)
15302 (set_cache_region, invalidate_region_cache)
15303 (revalidate_region_cache, know_region_cache, region_cache_forward)
15304 (region_cache_backward, pp_cache):
15305 Use ptrdiff_t, not EMACS_INT, since either will do. This is needed
15306 so that ptrdiff_t * can be passed to xpalloc.
15307 (struct region_cache): Similarly, for gap_start, gap_len, cache_len,
15308 beg_unchanged, end_unchanged, buffer_beg, buffer_end members.
15309 (pp_cache): Don't assume cache_len fits in int.
15310 * region-cache.h: Adjust extern decls to match.
15311
15312 * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not
15313 EMACS_INT, since either will do, for xpalloc.
15314
15315 * alloc.c: Include verify.h, and check that int fits in ptrdiff_t.
15316 (xnmalloc, xnrealloc, xpalloc): New functions.
15317
15318 * bidi.c (bidi_shelve_header_size): New constant.
15319 (bidi_cache_ensure_space, bidi_shelve_cache): Use it.
15320 (bidi_cache_ensure_space): Avoid integer overflow when allocating.
15321
15322 * bidi.c (bidi_cache_shrink):
15323 * buffer.c (overlays_at, overlays_in, record_overlay_string)
15324 (overlay_strings):
15325 Don't update size of array until after memory allocation succeeds,
15326 because xmalloc/xrealloc may not return.
15327 (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help
15328 now that we have proper integer overflow checking.
15329 (record_overlay_string, overlay_strings): Catch overflows when
15330 calculating size of overlay_str_buf.
15331
15332 * callproc.c (Fcall_process): Check for size overflow when
15333 calculating size of args2.
15334 (child_setup): Avoid overflow by using size_t rather than ptrdiff_t.
15335 Normally we prefer signed values, but sticking with ptrdiff_t would
15336 require adding more-complicated checks.
15337
15338 * ccl.c (Fccl_execute_on_string): Check for memory overflow.
15339 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
15340 Redo buffer-overflow calculations to avoid integer overflow.
15341 Add a FIXME comment where memory seems to be over-allocated.
15342
15343 * character.c (Fstring): Check for size-calculation overflow.
15344
15345 * coding.c (produce_chars): Redo buffer-overflow calculations to avoid
15346 unnecessary integer overflow. Check for size overflow.
15347 (encode_coding_object): Don't update size until xmalloc succeeds.
15348
15349 * composite.c (get_composition_id): Check for overflow in glyph
15350 length calculations.
15351
15352 Integer and memory overflow fixes for display code.
15353 * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int.
15354 * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool)
15355 (scrolling_window): Check for overflow in size calculations.
15356 (line_draw_cost, realloc_glyph_pool, add_row_entry):
15357 Don't assume glyph table len fits in int.
15358 (struct row_entry.bucket, row_entry_pool_size, row_entry_idx)
15359 (row_table_size): Now ptrdiff_t, not int.
15360 (scrolling_window): Avoid overflow in size calculations.
15361 Don't update size until allocation succeeds.
15362 * fns.c (concat): Check for overflow in size calculations.
15363 (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT.
15364 * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
15365 (NEXT_ALMOST_PRIME_LIMIT): New constant.
15366
15367 * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int.
15368 (get_doc_string): Check for size calculation overflow.
15369 Don't update size until allocation succeeds.
15370 (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not
15371 EMACS_INT, where ptrdiff_t will do.
15372 (Fsubstitute_command_keys): Check for string overflow.
15373
15374 * editfns.c (set_time_zone_rule): Don't assume environment length
15375 fits in int.
15376 (message_length): Now ptrdiff_t, not int.
15377 (Fmessage_box): Don't update size until allocation succeeds.
15378 Don't assume message length fits in int.
15379 (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do.
15380
15381 * emacs.c (main): Do not reallocate argv, since there is a null at
15382 the end that can be overwritten, and this way there's no need to
15383 worry about size-calculation overflow.
15384 (sort_args): Check for size-calculation overflow.
15385
15386 * eval.c (init_eval_once, grow_specpdl): Don't update size until
15387 alloc succeeds.
15388 (call_debugger, grow_specpdl): Redo calculations to avoid overflow.
15389
15390 * frame.c (set_menu_bar_lines, x_set_frame_parameters)
15391 (x_set_scroll_bar_width, x_figure_window_size):
15392 Check for integer overflow.
15393 (x_set_alpha): Do not assume XINT fits in int.
15394
15395 * frame.h (struct frame): Use int, not EMACS_INT, where int works.
15396 This is for the members text_lines, text_cols, total_lines, total_cols,
15397 where the system imposes an 'int' limit.
15398
15399 * fringe.c (Fdefine_fringe_bitmap):
15400 Don't update size until alloc works.
15401
15402 * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring)
15403 (ftfont_shape_by_flt): Check for integer overflow in size calculations.
15404
15405 * gtkutil.c (get_utf8_string, xg_store_widget_in_map):
15406 Check for size-calculation overflow.
15407 (get_utf8_string): Use ptrdiff_t, not size_t, where either will
15408 do, as we prefer signed integers.
15409 (id_to_widget.max_size, id_to_widget.used)
15410 (xg_store_widget_in_map, xg_remove_widget_from_map)
15411 (xg_get_widget_from_map, xg_get_scroll_id_for_window)
15412 (xg_remove_scroll_bar, xg_update_scrollbar_pos):
15413 Use and return ptrdiff_t, not int.
15414 (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int.
15415 * gtkutil.h: Change prototypes to match the above.
15416
15417 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these
15418 are duplicate now that they've been promoted to lisp.h.
15419 (x_allocate_bitmap_record, x_alloc_image_color)
15420 (make_image_cache, cache_image, xpm_load):
15421 Don't update size until alloc is done.
15422 (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors)
15423 (x_detect_edges):
15424 Check for size calculation overflow.
15425 (ct_colors_allocated_max): New constant.
15426 (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid
15427 overflow.
15428
15429 * keyboard.c (read_char, menu_bar_items, tool_bar_items)
15430 (read_char_x_menu_prompt, read_char_minibuf_menu_width)
15431 (read_char_minibuf_menu_prompt, follow_key, read_key_sequence):
15432 Use ptrdiff_t, not int, to count maps.
15433 (read_char_minibuf_menu_prompt): Check for overflow in size
15434 calculations. Don't update size until allocation succeeds.
15435 Redo calculations to avoid overflow.
15436 * keyboard.h: Change prototypes to match the above.
15437
15438 * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int,
15439 to count maps.
15440 (current_minor_maps): Check for size calculation overflow.
15441 * keymap.h: Change prototypes to match the above.
15442
15443 * lread.c (read1, init_obarray): Don't update size until alloc done.
15444
15445 * macros.c (Fstart_kbd_macro): Don't update size until alloc done.
15446 (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
15447
15448 * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):
15449 Now ptrdiff_t, not int.
15450 * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes.
15451 (ns_draw_fringe_bitmap): Rewrite to avoid overflow.
15452
15453 * process.c (Fnetwork_interface_list): Check for overflow
15454 in size calculation.
15455
15456 * region-cache.c (move_cache_gap): Check for size calculation overflow.
15457
15458 * scroll.c (do_line_insertion_deletion_costs): Check for size calc
15459 overflow. Don't bother calling xmalloc when xrealloc will do.
15460
15461 * search.c (Freplace_match): Check for size calculation overflow.
15462 (Fset_match_data): Don't assume list lengths fit in 'int'.
15463
15464 * sysdep.c (system_process_attributes): Use ptrdiff_t, not int,
15465 for command line length. Do not attempt to address one before the
15466 beginning of an array, as that's not portable.
15467
15468 * term.c (max_frame_lines): Remove; unused.
15469 (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t,
15470 not int.
15471 (encode_terminal_code, calculate_costs): Check for size
15472 calculation overflow.
15473 (encode_terminal_code): Use ptrdiff_t, not int, to record glyph
15474 table lengths and related sizes. Don't update size until alloc
15475 done. Redo calculations to avoid overflow.
15476 (calculate_costs): Don't bother calling xmalloc when xrealloc will do.
15477
15478 * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of
15479 subtracting pointers.
15480 (gobble_line): Check for overflow more carefully. Don't update size
15481 until alloc done.
15482
15483 * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes.
15484 Don't update size until alloc done.
15485 Redo size calculations to avoid overflow.
15486 Check for size calculation overflow.
15487 (main) [DEBUG]: Fix typo in invoking tparam1.
15488
15489 * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title):
15490 Use ptrdiff_t, not int, for sizes.
15491 (store_mode_line_noprop_char): Don't update size until alloc done.
15492
15493 * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face):
15494 Use ptrdiff_t, not int, for sizes.
15495 (Finternal_make_lisp_face, cache_face):
15496 Check for size calculation overflow.
15497 (cache_face): Treat size calculation overflows as if they were
15498 memory exhaustion (the usual treatment), rather than aborting.
15499
15500 * xfns.c (x_encode_text, x_set_name_internal)
15501 (Fx_change_window_property): Use ptrdiff_t, not int, to count
15502 sizes, since they can exceed INT_MAX in size. Check for size
15503 calculation overflow.
15504
15505 * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc.
15506 (xg_select): Check for size calculation overflow.
15507 Don't update size until alloc done.
15508
15509 * xrdb.c (get_environ_db): Don't assume path length fits in int,
15510 as sprintf is limited to int lengths.
15511
15512 * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX)
15513 (X_LONG_MIN): New macros.
15514 Use them to make the following changes clearer.
15515 (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer.
15516 This change doesn't affect the value now, but it may help remind
15517 future maintainers not to raise the value too much later.
15518 (SELECTION_QUANTUM): Remove, replacing with ...
15519 (selection_quantum): ... new function, which avoids overflow.
15520 All uses changed.
15521 (struct selection_data.size): Now ptrdiff_t, not int, to avoid
15522 assumption that selection length fits in 'int'.
15523 (x_reply_selection_request, x_handle_selection_request)
15524 (x_get_window_property, receive_incremental_selection)
15525 (x_get_window_property_as_lisp_data, selection_data_to_lisp_data)
15526 (lisp_data_to_selection_data, clean_local_selection_data):
15527 Use ptrdiff_t, not int, to record length of selection.
15528 (x_reply_selection_request, x_get_window_property)
15529 (receive_incremental_selection, x_property_data_to_lisp):
15530 Redo calculations to avoid overflow.
15531 (x_reply_selection_request): When sending hint, ceiling it at
15532 X_LONG_MAX rather than relying on wraparound overflow to send
15533 something.
15534 (x_get_window_property, receive_incremental_selection)
15535 (lisp_data_to_selection_data, x_property_data_to_lisp):
15536 Check for size-calculation overflow.
15537 (x_get_window_property, receive_incremental_selection)
15538 (lisp_data_to_selection_data, Fx_register_dnd_atom):
15539 Don't store size until memory allocation succeeds.
15540 (x_get_window_property): Plug memory leak on memory exhaustion.
15541 Don't double-block input; malloc is safe here. Don't assume 2**34
15542 - 4 fits in unsigned long. Add an xassert to check
15543 XGetWindowProperty overflow. Be more careful about overflow
15544 calculations, and distinguish size from memory overflow better.
15545 (receive_incremental_selection): When tracing, don't assume
15546 unsigned int is less than INT_MAX.
15547 (x_selection_data_to_lisp_data): Remove unnecessary (and in theory
15548 harmful) conversions of unsigned short to int.
15549 (lisp_data_to_selection_data): Don't assume that integers
15550 in the range -65535 through -1 fit in an X unsigned short.
15551 Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into
15552 result parameters unless successful. Rely on cons_to_unsigned
15553 to report problems with elements; the old code wasn't right anyway.
15554 (x_check_property_data): Check for int overflow; we cannot use
15555 a wider type due to X limits.
15556 (x_handle_dnd_message): Use unsigned int, to avoid int overflow.
15557
15558 * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow.
15559
15560 * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent)
15561 (x_term_init): Check for size calculation overflow.
15562 (x_color_cells): Don't store size until memory allocation succeeds.
15563 (handle_one_xevent): Use ptrdiff_t, not int, for byte counts.
15564 Don't assume alloca size is less than MAX_ALLOCA.
15565 (x_term_init): Don't assume length fits in int (sprintf is limited
15566 to int size).
15567
15568 Use ptrdiff_t for composition IDs.
15569 * character.c (lisp_string_width):
15570 * composite.c (composition_table_size, n_compositions)
15571 (get_composition_id, composition_gstring_from_id):
15572 * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id):
15573 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING):
15574 * window.c (Frecenter):
15575 Use ptrdiff_t, not int, for composition IDs.
15576 * composite.c (get_composition_id): Check for integer overflow.
15577 * composite.h: Adjust prototypes to match the above changes.
15578
15579 Use ptrdiff_t for hash table indexes.
15580 * category.c (hash_get_category_set):
15581 * ccl.c (ccl_driver):
15582 * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
15583 * coding.c (coding_system_charset_list, detect_coding_system):
15584 * coding.h (struct coding_system.id):
15585 * composite.c (get_composition_id, gstring_lookup_cache):
15586 * fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
15587 * image.c (xpm_get_color_table_h):
15588 * lisp.h (hash_lookup, hash_put):
15589 * minibuf.c (Ftest_completion):
15590 Use ptrdiff_t for hash table indexes, not int (which is too
15591 narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
15592 32-bit --with-wide-int hosts).
15593
15594 * charset.c (Fdefine_charset_internal): Check for integer overflow.
15595 Add a FIXME comment about memory leaks.
15596 (syms_of_charset): Don't assume xmalloc returns.
15597
15598 Don't assume that stated character widths fit in int.
15599 * character.c (Fchar_width, c_string_width, lisp_string_width):
15600 * character.h (CHAR_WIDTH):
15601 * indent.c (MULTIBYTE_BYTES_WIDTH):
15602 Use sanitize_char_width to avoid undefined and/or bad behavior
15603 with outlandish widths.
15604 * character.h (sanitize_tab_width): Rename from sanitize_width,
15605 now that we have two such functions. All uses changed.
15606 (sanitize_char_width): New inline function.
15607
15608 Don't assume that tab-width fits in int.
15609 * character.h (sanitize_width): New inline function.
15610 (SANE_TAB_WIDTH): New macro.
15611 (ASCII_CHAR_WIDTH): Use it.
15612 * indent.c (sane_tab_width): Remove. All uses replaced by
15613 SANE_TAB_WIDTH (current_buffer).
15614 * xdisp.c (init_iterator): Use SANE_TAB_WIDTH.
15615
15616 * fileio.c: Integer overflow issues with file modes.
15617 (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
15618
15619 * charset.c (read_hex): New arg OVERFLOW. All uses changed.
15620 Remove unreachable code.
15621 (read_hex, load_charset_map_from_file): Check for integer overflow.
15622
15623 * xterm.c: Don't go over XClientMessageEvent limit.
15624 (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed.
15625 (x_send_scroll_bar_event): Likewise. Check that the size does not
15626 exceed limits imposed by XClientMessageEvent, as well as the usual
15627 ptrdiff_t and size_t limits.
15628
15629 * keyboard.c: Overflow, signedness and related fixes.
15630 (make_lispy_movement): Use same integer type in forward decl
15631 that is used in the definition.
15632 (read_key_sequence, keyremap_step):
15633 Change bufsize argument back to int, undoing my 2011-03-30 change.
15634 We prefer signed types, and int is wide enough here.
15635 (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less
15636 than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow
15637 larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string
15638 length, not size_t. Use ptrdiff_t for index, not int.
15639 (keyremap_step, read_key_sequence): Redo bufsize check to avoid
15640 possibility of integer overflow.
15641
15642 Overflow, signedness and related fixes for images.
15643
15644 * dispextern.h (struct it.stack[0].u.image.image_id)
15645 (struct_it.image_id, struct image.id, struct image_cache.size)
15646 (struct image_cache.used, struct image_cache.ref_count):
15647 * gtkutil.c (update_frame_tool_bar):
15648 * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p)
15649 (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image)
15650 (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image):
15651 * nsmenu.m (update_frame_tool_bar):
15652 * xdisp.c (calc_pixel_width_or_height):
15653 * xfns.c (image_cache_refcount):
15654 Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits
15655 on typical 64-bit hosts.
15656
15657 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
15658 (x_bitmap_pixmap, x_create_x_image_and_pixmap):
15659 Omit unnecessary casts to int.
15660 (parse_image_spec): Check that integers fall into 'int' range
15661 when the callers expect that.
15662 (image_ascent): Redo ascent calculation to avoid int overflow.
15663 (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages.
15664 (lookup_image): Remove unnecessary tests.
15665 (xbm_image_p): Locals are now of int, not EMACS_INT,
15666 since parse_image_check makes sure they fit into int.
15667 (png_load, gif_load, svg_load_image):
15668 Prefer int to unsigned where either will do.
15669 (tiff_handler): New function, combining the cores of the
15670 old tiff_error_handler and tiff_warning_handler.
15671 This function is rewritten to use vsnprintf and thereby avoid
15672 stack buffer overflows. It uses only the features of vsnprintf
15673 that are common to both POSIX and native Microsoft.
15674 (tiff_error_handler, tiff_warning_handler): Use it.
15675 (tiff_load, gif_load, imagemagick_load_image):
15676 Don't assume :index value fits in 'int'.
15677 (gif_load): Omit unnecessary cast to double, and avoid double-rounding.
15678 (imagemagick_load_image): Check that crop parameters fit into
15679 the integer types that MagickCropImage accepts. Don't assume
15680 Vimagemagick_render_type has a nonnegative value. Don't assume
15681 size_t fits in 'long'.
15682 (gs_load): Use printmax_t to print the widest integers possible.
15683 Check for integer overflow when computing image height and width.
15684
15685 2011-08-26 Eli Zaretskii <eliz@gnu.org>
15686
15687 * xdisp.c (redisplay_window): Don't force window start if point
15688 will be invisible in the resulting window. (Bug#9324)
15689
15690 2011-08-25 Eli Zaretskii <eliz@gnu.org>
15691
15692 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when
15693 the display spec is of the form `(space ...)'.
15694 (handle_display_spec): Return the value returned by
15695 handle_single_display_spec, not just 1 or zero.
15696 (handle_single_display_spec): If the display spec is of the form
15697 `(space ...)', and specifies display in the text area, return 2
15698 rather than 1.
15699 (try_cursor_movement): Check for the need to scroll more
15700 accurately, and prefer exact match for point under bidi.
15701 Don't advance `row' beyond the last row of the window.
15702
15703 * dispextern.h (struct bidi_it): Rename the disp_prop_p member
15704 into disp_prop; all users changed.
15705
15706 * bidi.c (bidi_fetch_char): If compute_display_string_pos returns
15707 DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character
15708 for the text covered by the display property.
15709
15710 2011-08-25 Chong Yidong <cyd@stupidchicken.com>
15711
15712 * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer.
15713 Change return value to nil.
15714 (Frecord_buffer): Delete unused function.
15715
15716 2011-08-24 Eli Zaretskii <eliz@gnu.org>
15717
15718 * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte
15719 buffers, return left-to-right.
15720 (set_cursor_from_row): Consider candidate row a win if its glyph
15721 represents a newline and point is on that newline. Fixes cursor
15722 positioning on the newline at EOL of R2L text within L2R
15723 paragraph, and vice versa.
15724 (try_cursor_movement): Check continued rows, in addition to
15725 continuation rows. Fixes unwarranted scroll when point enters a
15726 continued line of R2L text within an L2R paragraph, or vice versa.
15727 (cursor_row_p): Consider the case of point being equal to
15728 MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving
15729 from the end of a short line to the beginning of a continued line
15730 of R2L text within L2R paragraph.
15731 (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for
15732 composed characters.
15733
15734 * bidi.c (bidi_check_type): Use xassert.
15735 (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p
15736 members.
15737
15738 2011-08-23 Eli Zaretskii <eliz@gnu.org>
15739
15740 * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of
15741 a character.
15742
15743 2011-08-23 Chong Yidong <cyd@stupidchicken.com>
15744
15745 * nsfont.m (ns_otf_to_script): Fix typo.
15746
15747 2011-08-22 Kenichi Handa <handa@m17n.org>
15748
15749 * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a
15750 extra slot even if the purpose is char-code-property-table.
15751
15752 2011-08-23 Eli Zaretskii <eliz@gnu.org>
15753
15754 * xdisp.c (redisplay_window): When computing centering_position,
15755 account for the height of the header line. (Bug#8874)
15756
15757 * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos
15758 instead of CHAR_TO_BYTE. Fixes a crash when a completion
15759 candidate is selected by the mouse, and that candidate has a
15760 composed character under the mouse.
15761
15762 * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel
15763 coordinates reported by pos-visible-in-window-p for a composed
15764 character in column zero.
15765
15766 2011-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
15767
15768 * cmds.c (Fself_insert_command): Mention post-self-insert-hook.
15769
15770 2011-08-22 Eli Zaretskii <eliz@gnu.org>
15771
15772 * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition,
15773 consider it a hit if to_charpos is anywhere in the range of the
15774 composed buffer positions.
15775
15776 2011-08-22 Chong Yidong <cyd@stupidchicken.com>
15777
15778 * image.c (gif_load): Don't assume that each subimage has the same
15779 dimensions as the base image. Handle disposal method that is
15780 "undefined" by the gif spec (Bug#9335).
15781
15782 2011-08-20 Chong Yidong <cyd@stupidchicken.com>
15783
15784 * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329).
15785 (Fcondition_case): Document `debug' symbol in error handler.
15786
15787 2011-08-19 Eli Zaretskii <eliz@gnu.org>
15788
15789 * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
15790 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
15791 from an Org mode buffer to a Speedbar frame.
15792
15793 * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
15794 a composition, take its buffer position from IT->cmp_it.charpos.
15795 Fixes cursor positioning at the beginning of a line that begins
15796 with a composed character.
15797
15798 2011-08-18 Eli Zaretskii <eliz@gnu.org>
15799
15800 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
15801 character bidirectional type, use STRONG_L instead. Fixes crashes
15802 in a buffer produced by `describe-categories'.
15803
15804 * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p
15805 members before the level stack, so they would be saved and
15806 restored when copying iterator state. Fixes incorrect reordering
15807 around TABs covered by display properties.
15808
15809 2011-08-18 Andreas Schwab <schwab@linux-m68k.org>
15810
15811 * process.c (Fnetwork_interface_list): Correctly determine buffer size.
15812
15813 2011-08-17 Chong Yidong <cyd@stupidchicken.com>
15814
15815 * eval.c (internal_condition_case, internal_condition_case_1)
15816 (internal_condition_case_2, internal_condition_case_n):
15817 Remove unnecessary aborts (Bug#9081).
15818
15819 2011-08-17 Eli Zaretskii <eliz@gnu.org>
15820
15821 * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file
15822 has no `load' handler, try opening the file locally. (Bug#9311)
15823
15824 2011-08-16 Ken Brown <kbrown@cornell.edu>
15825
15826 * gmalloc.c: Expand comment.
15827
15828 2011-08-16 Eli Zaretskii <eliz@gnu.org>
15829
15830 * xdisp.c (set_cursor_from_row): Don't accept a previous candidate
15831 if it fails the cursor_row_p test. Fixes cursor positioning at ZV.
15832
15833 2011-08-16 Ken Brown <kbrown@cornell.edu>
15834
15835 Fix memory allocation problems in Cygwin build (Bug#9273).
15836
15837 * unexcw.c ( __malloc_initialized): Declare external variable.
15838 (fixup_executable): Force the dumped emacs to reinitialize malloc.
15839
15840 * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo):
15841 New variables.
15842 (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the
15843 dumped emacs.
15844 (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage
15845 in the static heap.
15846 [CYGWIN] (special_realloc): New function.
15847 (_realloc_internal_nolock) [CYGWIN]: Use the new function on
15848 requests to realloc storage in the static heap.
15849
15850 2011-08-15 Paul Eggert <eggert@cs.ucla.edu>
15851
15852 * bidi.c (bidi_initialize): Remove unused local.
15853
15854 2011-08-15 Eli Zaretskii <eliz@gnu.org>
15855
15856 * bidimirror.h:
15857 * biditype.h: Remove file.
15858 * makefile.w32-in ($(BLD)/bidi.$(O)):
15859 * deps.mk (bidi.o): Remove biditype.h and bidimirror.h.
15860
15861 * dispextern.h: Fix a typo in the comment to bidi_type_t.
15862
15863 * chartab.c: Improve commentary for the uniprop_table API.
15864
15865 * bidi.c (bidi_paragraph_init): Support zero value of
15866 bidi_ignore_explicit_marks_for_paragraph_level.
15867 (bidi_initialize): Use uniprop_table instead of including
15868 biditype.h and bidimirror.h.
15869
15870 * xdisp.c (move_it_in_display_line_to): Don't reset pixel
15871 coordinates of the iterator when restoring from ppos_it.
15872 (Bug#9296)
15873
15874 2011-08-14 Kenichi Handa <handa@m17n.org>
15875
15876 * process.c (create_process): Call setup_process_coding_systems
15877 after the pid of the process is set to -1 (Bug#8162).
15878
15879 2011-08-14 Eli Zaretskii <eliz@gnu.org>
15880
15881 * xdisp.c (move_it_in_display_line_to): Don't invoke
15882 IT_RESET_X_ASCENT_DESCENT when iterator position was restored from
15883 ppos_it. Fixes vertical cursor motion when line beginning is
15884 covered by an image. (Bug#9296)
15885
15886 2011-08-14 Jan Djärv <jan.h.d@swipnet.se>
15887
15888 * nsterm.h (ns_run_ascript): Declare.
15889 (NSAPP_DATA2_RUNASSCRIPT): Define.
15890
15891 * nsfns.m (as_script, as_result, as_status): New static variables.
15892 (ns_run_ascript): New function.
15893 (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined
15894 event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start
15895 the event loop. Get status from as_status (Bug#7276).
15896
15897 * nsterm.m (sendEvent): If event is NSApplicationDefined and
15898 data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit
15899 the event loop (Bug#7276).
15900
15901 2011-08-14 Andreas Schwab <schwab@linux-m68k.org>
15902
15903 * gnutls.c (QCgnutls_bootprop_priority)
15904 (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist)
15905 (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks)
15906 (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname)
15907 (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags)
15908 (QCgnutls_bootprop_verify_hostname_error)
15909 (QCgnutls_bootprop_callbacks_verify): Rename from
15910 Qgnutls_bootprop_..., all uses changed.
15911
15912 * xfaces.c (QCignore_defface): Rename from Qignore_defface, all
15913 uses changed.
15914
15915 2011-08-14 Paul Eggert <eggert@cs.ucla.edu>
15916
15917 * xfaces.c (Qframe_set_background_mode): Now static.
15918 * dispextern.h (Qframe_set_background_mode): Remove decl.
15919
15920 * process.c (Fnetwork_interface_info): Declare local only if needed.
15921
15922 2011-08-13 Jan Djärv <jan.h.d@swipnet.se>
15923
15924 * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477).
15925 (Fnetwork_interface_list): Allocate in increments of bytes instead
15926 of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting
15927 bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct
15928 sockaddr.
15929 (struct ifflag_def): notrailers is smart on OSX.
15930 (Fnetwork_interface_info): Handle case when ifr_flags is negative.
15931 Get hardware address with getifaddrs if available.
15932
15933 2011-08-12 Eli Zaretskii <eliz@gnu.org>
15934
15935 * xdisp.c (iterate_out_of_display_property): xassert that
15936 IT->position is set to within IT->object's boundaries. Break from
15937 the loop as soon as EOB is reached; avoids infloops in redisplay
15938 when IT->position is set up wrongly due to some bug.
15939 Set IT->current to match the bidi iterator unconditionally.
15940 (push_display_prop): Allow GET_FROM_STRING as IT->method on
15941 entry. Force push_it to save on the stack the current
15942 buffer/string position, to be restored by pop_it. Fix flags in
15943 the iterator structure wrt the object coming from a display
15944 property, as `line-prefix' and `wrap-prefix' are not ``replacing''
15945 properties. (Bug#9284)
15946
15947 2011-08-09 Andreas Schwab <schwab@linux-m68k.org>
15948
15949 * fontset.c (fontset_get_font_group): Add proper type checks.
15950 (Bug#9172)
15951
15952 2011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
15953
15954 * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS
15955 and LC_VERSION_MIN_MACOSX.
15956 (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function.
15957 (dump_it) [LC_FUNCTION_STARTS]: Use it.
15958
15959 2011-08-08 Eli Zaretskii <eliz@gnu.org>
15960
15961 * xdisp.c (forward_to_next_line_start): Allow to use the
15962 no-display-properties-and-no-overlays under bidi display.
15963 Set disp_pos in the bidi iterator to avoid searches for display
15964 properties and overlays.
15965
15966 2011-08-08 Chong Yidong <cyd@stupidchicken.com>
15967
15968 * editfns.c (Fset_time_zone_rule): Document relationship with the
15969 setenv function.
15970
15971 * ftfont.c (ftfont_pattern_entity): Copy the extras argument to
15972 the font entity extracted from the cache (Bug#8109).
15973
15974 2011-08-07 Chong Yidong <cyd@stupidchicken.com>
15975
15976 * composite.c (autocmp_chars): Don't reset point. That is done by
15977 restore_point_unwind (Bug#5984).
15978
15979 2011-08-07 Juri Linkov <juri@jurta.org>
15980
15981 * editfns.c (Fformat_time_string): Doc fix, add tag `usage:'
15982 to show the arg `TIME' instead of `TIMEVAL'.
15983
15984 2011-08-06 Eli Zaretskii <eliz@gnu.org>
15985
15986 * xdisp.c (set_cursor_from_row): Fix cursor positioning when a
15987 display property strides EOL and includes a newline, as in
15988 longlines-mode. (Bug#9254)
15989 (move_it_in_display_line_to): Fix vertical-motion in a buffer with
15990 word-wrap under bidirectional display. (Bug#9224)
15991
15992 * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE
15993 is non-zero, even if the data buffer is NULL. Fixes a crash in
15994 vertical-motion with longlines-mode. (Bug#9254)
15995
15996 2011-08-05 Eli Zaretskii <eliz@gnu.org>
15997
15998 * bidi.c <bidi_cache_total_alloc>: Now static.
15999 (bidi_initialize): Initialize bidi_cache_total_alloc.
16000
16001 * xdisp.c (display_line): Release buffer allocated for shelved bidi
16002 cache. (Bug#9221)
16003
16004 * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total
16005 amount allocated this far in `bidi_cache_total_alloc'.
16006 (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if
16007 non-zero, only free the data buffer without restoring the cache
16008 contents. All callers changed.
16009
16010 * dispextern.h (bidi_unshelve_cache): Update prototype.
16011
16012 * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to)
16013 (move_it_in_display_line, move_it_to)
16014 (move_it_vertically_backward, move_it_by_lines): Replace the call
16015 to xfree to an equivalent call to bidi_unshelve_cache.
16016 (move_it_in_display_line_to): Fix logic of returning
16017 MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224)
16018
16019 2011-08-05 Eli Zaretskii <eliz@gnu.org>
16020
16021 * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that
16022 came from a string character with a `cursor' property. (Bug#9229)
16023
16024 2011-08-04 Jan Djärv <jan.h.d@swipnet.se>
16025
16026 * Makefile.in (LIB_PTHREAD): New variable.
16027 (LIBES): Add LIB_PTHREAD (Bug#9216).
16028
16029 * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h:
16030 Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
16031
16032 2011-08-04 Andreas Schwab <schwab@linux-m68k.org>
16033
16034 * regex.c (re_iswctype): Remove some redundant boolean conversions.
16035
16036 2011-08-04 Jan Djärv <jan.h.d@swipnet.se>
16037
16038 * xterm.c (x_find_topmost_parent): New function.
16039 (x_set_frame_alpha): Find topmost parent window with
16040 x_find_topmost_parent and set the property there also (bug#9181).
16041 (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify.
16042
16043 2011-08-04 Paul Eggert <eggert@cs.ucla.edu>
16044
16045 * callproc.c (Fcall_process): Avoid vfork clobbering
16046 the local vars buffer, coding_systems, current_dir.
16047
16048 2011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
16049
16050 * keymap.c (Fmake_composed_keymap): Move to subr.el.
16051
16052 2011-08-03 Paul Eggert <eggert@cs.ucla.edu>
16053
16054 * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE
16055 so that it is not optimized away.
16056
16057 * xdisp.c (compute_display_string_pos): Remove unused local.
16058
16059 2011-08-02 Eli Zaretskii <eliz@gnu.org>
16060
16061 Fix slow cursor motion and scrolling in large buffers with
16062 selective display, like Org Mode buffers. (Bug#9218)
16063
16064 * dispextern.h (struct bidi_it): New member disp_prop_p.
16065
16066 * xdisp.c: Remove one-slot cache of display string positions.
16067 (compute_display_string_pos): Accept an additional argument
16068 DISP_PROP_P; callers changed. Scan at most 5K characters forward
16069 for a display string or property. If found, set DISP_PROP_P
16070 non-zero.
16071
16072 * bidi.c (bidi_fetch_char): Accept an additional argument
16073 DISP_PROP_P, and pass it to compute_display_string_pos.
16074 Only handle text covered by a display string if DISP_PROP_P is returned
16075 non-zero. All callers of bidi_fetch_char changed.
16076
16077 2011-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
16078
16079 * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
16080
16081 2010-12-03 Don March <don@ohspite.net>
16082
16083 * keymap.c (Fdefine_key): Fix non-prefix key error message when
16084 last character M-[char] is translated to ESC [char] (bug#7541).
16085
16086 2011-08-02 Kenichi Handa <handa@m17n.org>
16087
16088 * lisp.h (uniprop_table): Extern it.
16089
16090 * chartab.c (uniprop_table): Make it non-static.
16091
16092 2011-08-01 Eli Zaretskii <eliz@gnu.org>
16093
16094 * xdisp.c (forward_to_next_line_start): Accept additional argument
16095 BIDI_IT_PREV, and store into it the state of the bidi iterator had
16096 on the newline.
16097 (reseat_at_next_visible_line_start): Use the bidi iterator state
16098 returned by forward_to_next_line_start to restore the state of
16099 it->bidi_it after backing up to previous newline. (Bug#9212)
16100
16101 2011-07-30 Andreas Schwab <schwab@linux-m68k.org>
16102
16103 * regex.c (re_comp): Protoize.
16104 (re_exec): Fix return type.
16105 (regexec): Fix type of `ret'. (Bug#9203)
16106
16107 2011-07-28 Paul Eggert <eggert@cs.ucla.edu>
16108
16109 * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189).
16110 This is needed if max-image-size is a floating-point number.
16111
16112 2011-07-28 Andreas Schwab <schwab@linux-m68k.org>
16113
16114 * print.c (print_object): Print empty symbol as ##.
16115
16116 * lread.c (read1): Read ## as empty symbol.
16117
16118 2011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
16119
16120 * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when
16121 setting frame foreground color (Bug#9175).
16122 (x_set_background_color): Likewise.
16123
16124 * nsmenu.m (-setText): Size tooltip dimensions precisely to
16125 contents (Bug#9176).
16126 (EmacsTooltip -init): Remove bezels and add shadows to
16127 tooltip windows.
16128
16129 * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
16130 or scroll bar (Bug#8470).
16131
16132 * nsfont.m (nsfont_open): Remove assignment to voffset and
16133 unnecessary vars hshink, expand, hd, full_height, min_height.
16134 (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913).
16135
16136 * nsterm.h (nsfont_info): Remove voffset field.
16137
16138 2011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
16139
16140 Implement strike-through and overline on NextStep (Bug#8863).
16141
16142 * nsfont.m (nsfont_open): Use underline position provided by font,
16143 instead of hard-coded value of 2.
16144 (nsfont_draw): Call ns_draw_text_decoration instead.
16145
16146 * nsterm.h: Add declaration for ns_draw_text_decoration.
16147
16148 * nsterm.m (ns_draw_text_decoration): New function for drawing
16149 underline, overline, and strike-through.
16150 (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to
16151 ns_draw_text_decoration. Change treatment of cursor drawing to
16152 accommodate underlining, etc.
16153
16154 2011-07-28 Eli Zaretskii <eliz@gnu.org>
16155
16156 * buffer.c (init_buffer_once): Set bidi-display-reordering to t by
16157 default.
16158
16159 2011-07-28 Paul Eggert <eggert@cs.ucla.edu>
16160
16161 * alloc.c (memory_full) [!SYNC_INPUT]: Fix signal-related race.
16162 Without this fix, if a signal arrives just after memory fills up,
16163 'malloc' might be invoked reentrantly.
16164
16165 * image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1.
16166 In other words, assume that every image size is allowed, on non-X
16167 hosts. This assumption is probably wrong, but it lets Emacs compile.
16168
16169 2011-07-28 Andreas Schwab <schwab@linux-m68k.org>
16170
16171 * regex.c (re_iswctype): Convert return values to boolean.
16172
16173 2011-07-28 Eli Zaretskii <eliz@fencepost.gnu.org>
16174
16175 * xdisp.c (compute_display_string_pos): Don't use cached display
16176 string position if the buffer had its restriction changed.
16177 (Bug#9184)
16178
16179 2011-07-28 Paul Eggert <eggert@cs.ucla.edu>
16180
16181 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
16182
16183 2011-07-28 Paul Eggert <eggert@cs.ucla.edu>
16184
16185 Integer signedness and overflow and related fixes. (Bug#9079)
16186
16187 * bidi.c: Integer size and overflow fixes.
16188 (bidi_cache_size, bidi_cache_idx, bidi_cache_last_idx)
16189 (bidi_cache_start, bidi_cache_fetch_state, bidi_cache_search)
16190 (bidi_cache_find_level_change, bidi_cache_ensure_space)
16191 (bidi_cache_iterator_state, bidi_cache_find, bidi_cache_start_stack)
16192 (bidi_find_other_level_edge):
16193 Use ptrdiff_t instead of EMACS_INT where either will do.
16194 This works better on 32-bit hosts configured --with-wide-int.
16195 (bidi_cache_ensure_space): Check for size-calculation overflow.
16196 Use % rather than repeated addition, for better worst-case speed.
16197 Don't set bidi_cache_size until after xrealloc returns, because it
16198 might not return.
16199 (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow.
16200 (bidi_cache_ensure_space): Also check that the bidi cache size
16201 does not exceed that of the largest Lisp string or buffer. See Eli
16202 Zaretskii in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#29>.
16203
16204 * alloc.c (__malloc_size_t): Remove.
16205 All uses replaced by size_t. See Andreas Schwab's note
16206 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#8>.
16207
16208 * image.c: Improve checking for integer overflow.
16209 (check_image_size): Assume that f is nonnull, since
16210 it is always nonnull in practice. This is one less thing to
16211 worry about when checking for integer overflow later.
16212 (x_check_image_size): New function, which checks for integer
16213 overflow issues inside X.
16214 (x_create_x_image_and_pixmap, xbm_read_bitmap_data): Use it.
16215 This removes the need for a memory_full check.
16216 (xbm_image_p): Rewrite to avoid integer multiplication overflow.
16217 (Create_Pixmap_From_Bitmap_Data, xbm_load): Use x_check_image_size.
16218 (xbm_read_bitmap_data): Change locals back to 'int', since
16219 their values must fit in 'int'.
16220 (xpm_load_image, png_load, tiff_load):
16221 Invoke x_create_x_image_and_pixmap earlier,
16222 to avoid much needless work if the image is too large.
16223 (tiff_load): Treat overly large images as if
16224 x_create_x_image_and_pixmap failed, not as malloc failures.
16225 (gs_load): Use x_check_image_size.
16226
16227 * gtkutil.c: Omit integer casts.
16228 (xg_get_pixbuf_from_pixmap): Remove unnecessary cast.
16229 (xg_set_toolkit_scroll_bar_thumb): Rewrite to avoid need for cast.
16230
16231 * image.c (png_load): Don't assume height * row_bytes fits in 'int'.
16232
16233 * xfaces.c (Fbitmap_spec_p): Fix integer overflow bug.
16234 Without this fix, (bitmap-spec-p '(34359738368 1 "x"))
16235 would wrongly return t on a 64-bit host.
16236
16237 * dispnew.c (init_display): Use *_RANGE_OVERFLOW macros.
16238 The plain *_OVERFLOW macros run afoul of GCC bug 49705
16239 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705>
16240 and therefore cause GCC to emit a bogus diagnostic in some cases.
16241
16242 * image.c: Integer signedness and overflow and related fixes.
16243 This is not an exhaustive set of fixes, but it's time to
16244 record what I've got.
16245 (lookup_pixel_color, check_image_size): Remove redundant decls.
16246 (check_image_size): Don't assume that arbitrary EMACS_INT values
16247 fit in 'int', or that arbitrary 'double' values fit in 'int'.
16248 (x_alloc_image_color, x_create_x_image_and_pixmap, png_load)
16249 (tiff_load, imagemagick_load_image):
16250 Check for overflow in size calculations.
16251 (x_create_x_image_and_pixmap): Remove unnecessary test for
16252 xmalloc returning NULL; that can't happen.
16253 (xbm_read_bitmap_data): Don't assume sizes fit into 'int'.
16254 (xpm_color_bucket): Use better integer hashing function.
16255 (xpm_cache_color): Don't possibly over-allocate memory.
16256 (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory)
16257 (gif_memory_source):
16258 Use ptrdiff_t, not int or size_t, to record sizes.
16259 (png_load): Don't assume values greater than 2**31 fit in 'int'.
16260 (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when
16261 either works, as we prefer signed integers.
16262 (tiff_read_from_memory, tiff_write_from_memory):
16263 Return tsize_t, not size_t, since that's what the TIFF API wants.
16264 (tiff_read_from_memory): Don't fail simply because the read would
16265 go past EOF; instead, return a short read.
16266 (tiff_load): Omit no-longer-needed casts.
16267 (Fimagemagick_types): Don't assume size fits into 'int'.
16268
16269 Improve hashing quality when configured --with-wide-int.
16270 * fns.c (hash_string): New function, taken from sxhash_string.
16271 Do not discard information about ASCII character case; this
16272 discarding is no longer needed.
16273 (sxhash-string): Use it. Change sig to match it. Caller changed.
16274 * lisp.h: Declare it.
16275 * lread.c (hash_string): Remove, since we now use fns.c's version.
16276 The fns.c version returns a wider integer if --with-wide-int is
16277 specified, so this should help the quality of the hashing a bit.
16278
16279 * emacs.c: Integer overflow minor fix.
16280 (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed.
16281 Define only if GNU_LINUX.
16282 (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.
16283
16284 * dispnew.c: Integer signedness and overflow fixes.
16285 Remove unnecessary forward decls, that were a maintenance hassle.
16286 (history_tick): Now uprintmax_t, so it's more likely to avoid overflow.
16287 All uses changed.
16288 (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer)
16289 (scrolling_window): Use ptrdiff_t, not int, for byte count.
16290 (prepare_desired_row, line_draw_cost):
16291 Use int, not unsigned, where either works.
16292 (save_current_matrix, restore_current_matrix):
16293 Use ptrdiff_t, not size_t, where either works.
16294 (init_display): Check for overflow more accurately, and without
16295 relying on undefined behavior.
16296
16297 * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide):
16298 Remove, replacing with the new symbols in lisp.h. All uses changed.
16299 * fileio.c (make_temp_name):
16300 * filelock.c (lock_file_1, lock_file):
16301 * xdisp.c (message_dolog):
16302 Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts.
16303 Use pMd etc. instead.
16304 * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros,
16305 replacing the pWIDE etc. symbols removed from editfns.c.
16306
16307 * keyboard.h (num_input_events): Now uintmax_t.
16308 This is (very slightly) less likely to mess up due to wraparound.
16309 All uses changed.
16310
16311 * buffer.c: Integer signedness fixes.
16312 (alloc_buffer_text, enlarge_buffer_text):
16313 Use ptrdiff_t rather than size_t when either will do, as we prefer
16314 signed integers.
16315
16316 * alloc.c: Integer signedness and overflow fixes.
16317 Do not impose an arbitrary 32-bit limit on malloc sizes when debugging.
16318 (__malloc_size_t): Default to size_t, not to int.
16319 (pure_size, pure_bytes_used_before_overflow, stack_copy_size)
16320 (Fgarbage_collect, mark_object_loop_halt, mark_object):
16321 Prefer ptrdiff_t to size_t when either would do, as we prefer
16322 signed integers.
16323 (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro.
16324 (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer):
16325 Now const. Initialize with values that are in range even if char
16326 is signed.
16327 (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ...
16328 (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed.
16329 These functions do the right thing with sizes > 2**32.
16330 (check_depth): Now ptrdiff_t, not int.
16331 (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
16332 Adjust to new way of storing sizes. Check for size overflow bugs
16333 in rest of code.
16334 (STRING_BYTES_MAX): Adjust to new overheads. The old code was
16335 slightly wrong anyway, as it missed one instance of
16336 XMALLOC_OVERRUN_CHECK_OVERHEAD.
16337 (refill_memory_reserve): Omit needless cast to size_t.
16338 (mark_object_loop_halt): Mark as externally visible.
16339
16340 * xselect.c: Integer signedness and overflow fixes.
16341 (Fx_register_dnd_atom, x_handle_dnd_message):
16342 Use ptrdiff_t, not size_t, since we prefer signed.
16343 (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow.
16344 * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for
16345 x_dnd_atoms_size and x_dnd_atoms_length.
16346
16347 * doprnt.c: Prefer signed to unsigned when either works.
16348 * eval.c (verror):
16349 * doprnt.c (doprnt):
16350 * lisp.h (doprnt):
16351 * xdisp.c (vmessage):
16352 Use ptrdiff_t, not size_t, when using or implementing doprnt,
16353 since the sizes cannot exceed ptrdiff_t bounds anyway, and we
16354 prefer signed arithmetic to avoid comparison confusion.
16355 * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow,
16356 but is a bit tricky.
16357
16358 Assume freestanding C89 headers, string.h, stdlib.h.
16359 * data.c, doprnt.c, floatfns.c, print.c:
16360 Include float.h unconditionally.
16361 * gmalloc.c: Assume C89-at-least behavior for preprocessor,
16362 limits.h, stddef.h, string.h. Use memset instead of 'flood'.
16363 * regex.c: Likewise for stddef.h, string.h.
16364 (ISASCII): Remove; can assume it returns 1 now. All uses removed.
16365 * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef.
16366 * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H)
16367 (STDC_HEADERS): Remove obsolete defines.
16368 * sysdep.c: Include limits.h unconditionally.
16369
16370 Assume support for memcmp, memcpy, memmove, memset.
16371 * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
16372 * regex.c (memcmp, memcpy):
16373 Remove; we assume C89 now.
16374
16375 * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
16376 (__malloc_safe_bcopy): Remove; no longer needed.
16377
16378 * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes.
16379 Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
16380 well either way, and we prefer signed to unsigned.
16381
16382 2011-07-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
16383
16384 * gnutls.c (emacs_gnutls_read): Don't message anything if the peer
16385 closes the connection while we're reading (bug#9182).
16386
16387 2011-07-25 Jan Djärv <jan.h.d@swipnet.se>
16388
16389 * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons
16390 are specified (Bug#9168).
16391
16392 2011-07-25 Paul Eggert <eggert@cs.ucla.edu>
16393
16394 * bidi.c (bidi_dump_cached_states): Fix printf format mismatch.
16395 Found by GCC static checking and --with-wide-int on a 32-bit host.
16396
16397 2011-07-25 Eli Zaretskii <eliz@gnu.org>
16398
16399 * xdisp.c (compute_display_string_pos): Fix logic of caching
16400 previous display string position. Initialize cached_prev_pos to
16401 -1. Fixes slow-down at the beginning of a buffer.
16402
16403 2011-07-24 Eli Zaretskii <eliz@gnu.org>
16404
16405 * xfaces.c (check_lface_attrs) [HAVE_WINDOW_SYSTEM]: Allow `nil'
16406 for attrs[LFACE_FONTSET_INDEX].
16407
16408 2011-07-23 Paul Eggert <eggert@cs.ucla.edu>
16409
16410 * xml.c (parse_region): Remove unused local
16411 that was recently introduced.
16412
16413 2011-07-23 Eli Zaretskii <eliz@gnu.org>
16414
16415 * xfns.c (unwind_create_frame) [GLYPH_DEBUG]: Adapt to changes in
16416 2008-02-22T17:42:09Z!monnier@iro.umontreal.ca.
16417
16418 * xdisp.c (move_it_in_display_line_to): Record the best matching
16419 position for TO_CHARPOS while scanning the line, and restore it on
16420 exit if none of the characters scanned was an exact match.
16421 Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay
16422 when exact match is impossible due to invisible text, and the
16423 lines are truncated.
16424
16425 2011-07-23 Jan Djärv <jan.h.d@swipnet.se>
16426
16427 * nsterm.m (initFrameFromEmacs): Set NSTitledWindowMask in styleMask
16428 for OSX >= 10.7.
16429
16430 2011-07-22 Eli Zaretskii <eliz@gnu.org>
16431
16432 Fix a significant slow-down of cursor motion with C-n, C-p,
16433 C-f/C-b, and C-v/M-v that couldn't keep up with keyboard
16434 auto-repeat under bidi redisplay in fontified buffers.
16435 * xdisp.c (compute_stop_pos_backwards): New function.
16436 (next_element_from_buffer): Call compute_stop_pos_backwards to
16437 find a suitable prev_stop when we find ourselves before
16438 base_level_stop.
16439 (reseat): Don't look for prev_stop, as that could mean a very long
16440 run.
16441 <cached_disp_pos, cached_disp_buffer, cached_disp_modiff>
16442 <cached_disp_overlay_modiff>: Cache for last found display string
16443 position.
16444 (compute_display_string_pos): Return the cached position if asked
16445 about the same buffer in the same area of character positions, and
16446 the buffer wasn't changed since the time the display string
16447 position was cached.
16448
16449 2011-07-22 Eli Zaretskii <eliz@gnu.org>
16450
16451 * xdisp.c (rows_from_pos_range): Don't ignore glyphs whose object
16452 is an integer, which is important for empty lines. (Bug#9149)
16453
16454 2011-07-22 Chong Yidong <cyd@stupidchicken.com>
16455
16456 * frame.c (Fmodify_frame_parameters): In tty case, update the
16457 default face if necessary (Bug#4238).
16458
16459 2011-07-21 Chong Yidong <cyd@stupidchicken.com>
16460
16461 * editfns.c (Fstring_to_char): No need to explain what a character
16462 is in the docstring (Bug#6576).
16463
16464 2011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
16465
16466 * xml.c (parse_region): Make sure we always return a tree.
16467
16468 2011-07-20 HAMANO Kiyoto <khiker.mail@gmail.com>
16469
16470 * xml.c (parse_region): If a document contains only comments,
16471 return that, too.
16472
16473 2011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
16474
16475 * xml.c (make_dom): Return comments, too.
16476
16477 2011-07-19 Paul Eggert <eggert@cs.ucla.edu>
16478
16479 Port to OpenBSD.
16480 See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html
16481 and the surrounding thread.
16482 * minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar
16483 rather than fgets, and retry after EINTR. Otherwise, 'emacs
16484 --batch -f byte-compile-file' fails on OpenBSD if an inactivity
16485 timer goes off.
16486 * s/openbsd.h (BROKEN_SIGIO): Define.
16487 * unexelf.c (unexec) [__OpenBSD__]:
16488 Don't update the .mdebug section of the Alpha COFF symbol table.
16489
16490 2011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
16491
16492 * lread.c (syms_of_lread): Clarify when `lexical-binding' is used
16493 (bug#8460).
16494
16495 2011-07-18 Paul Eggert <eggert@cs.ucla.edu>
16496
16497 * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
16498 This fixes some race conditions on the permissions of any newly
16499 created file.
16500
16501 * alloc.c (valid_pointer_p): Use pipe, not open.
16502 This fixes some permissions issues when debugging.
16503
16504 * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)
16505 If fchown fails to set both uid and gid, try to set just gid,
16506 as that is sometimes allowed. Adjust the file's mode to eliminate
16507 setuid or setgid bits that are inappropriate if fchown fails.
16508
16509 2011-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
16510
16511 * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ
16512 to compare Lisp_Objects.
16513 * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to
16514 global_gnutls_log_level, don't mistake it for a Lisp_Object.
16515 (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses.
16516
16517 2011-07-17 Andreas Schwab <schwab@linux-m68k.org>
16518
16519 * lread.c (read_integer): Unread even EOF character.
16520 (read1): Likewise. Properly record start position of symbol.
16521
16522 * lread.c (read1): Read `#:' as empty uninterned symbol if no
16523 symbol character follows.
16524
16525 2011-07-17 Paul Eggert <eggert@cs.ucla.edu>
16526
16527 * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002)
16528 This works around a problem with the previous change to Fcopy_file.
16529 Recent glibc declares fchown with __attribute__((warn_unused_result)),
16530 and without this change, GCC might complain about discarding
16531 fchown's return value.
16532
16533 2011-07-16 Juanma Barranquero <lekktu@gmail.com>
16534
16535 * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059).
16536
16537 2011-07-16 Paul Eggert <eggert@cs.ucla.edu>
16538
16539 * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002)
16540
16541 2011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
16542
16543 * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since
16544 it's used from the C level.
16545
16546 * process.c: Use the same condition for POLL_FOR_INPUT in both
16547 keyboard.c and process.c (bug#1858).
16548
16549 2011-07-09 Lawrence Mitchell <wence@gmx.li>
16550
16551 * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable.
16552 (Fgnutls_boot): Use it.
16553
16554 2011-07-15 Andreas Schwab <schwab@linux-m68k.org>
16555
16556 * doc.c (Fsubstitute_command_keys): Revert last change.
16557
16558 2011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
16559
16560 * doc.c (Fsubstitute_command_keys): Clarify that \= really only
16561 quotes the next character, and doesn't affect other longer
16562 sequences (bug#8935).
16563
16564 * lread.c (syms_of_lread): Clarify that is isn't only
16565 `eval-buffer' and `eval-defun' that's affected by
16566 `lexical-binding' (bug#8460).
16567
16568 2011-07-15 Eli Zaretskii <eliz@gnu.org>
16569
16570 * xdisp.c (move_it_in_display_line_to): Fix vertical motion with
16571 bidi redisplay when a line includes both an image and is truncated.
16572
16573 2011-07-14 Paul Eggert <eggert@cs.ucla.edu>
16574
16575 Fix minor problems found by static checking.
16576 * bidi.c (bidi_cache_size): Now EMACS_INT, not size_t.
16577 (elsz): Now a signed constant, not a size_t var. We prefer signed
16578 types to unsigned, to avoid integer comparison confusion. Without
16579 this change, GCC 4.6.1 with -Wunsafe-loop-optimizations complains
16580 "cannot optimize loop, the loop counter may overflow", a symptom
16581 of the confusion.
16582 * indent.c (Fvertical_motion): Mark locals as initialized.
16583 * xdisp.c (reseat_to_string): Fix pointer signedness issue.
16584
16585 2011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
16586
16587 * search.c (Fre_search_backward): Mention `case-fold-search' in
16588 all the re_search_* functions (bug#8138).
16589
16590 * keyboard.c (Fopen_dribble_file): Document when the file is
16591 closed (bug#8056).
16592
16593 2011-07-14 Eli Zaretskii <eliz@gnu.org>
16594
16595 * bidi.c (bidi_dump_cached_states): Fix format of displaying
16596 bidi_cache_idx.
16597
16598 Support bidi reordering of display and overlay strings.
16599 * xdisp.c (compute_display_string_pos)
16600 (compute_display_string_end): Accept additional argument STRING.
16601 (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL.
16602 (reseat_to_string): Initialize bidi_it->string.s and
16603 bidi_it->string.schars.
16604 (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to
16605 NULL (avoids a crash in bidi_paragraph_init).
16606 Initialize itb.string.lstring.
16607 (init_iterator): Call bidi_init_it only of a valid
16608 buffer position was specified. Initialize paragraph_embedding to
16609 L2R.
16610 (reseat_to_string): Initialize the bidi iterator.
16611 (display_string): If we need to ignore text properties of
16612 LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The
16613 original value of -1 will not work with bidi.)
16614 (compute_display_string_pos): First arg is now struct
16615 `text_pos *'; all callers changed. Support display properties on
16616 Lisp strings.
16617 (compute_display_string_end): Support display properties on Lisp
16618 strings.
16619 (init_iterator, reseat_1, reseat_to_string): Initialize the
16620 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS
16621 when iterating on a string not from display properties).
16622 (compute_display_string_pos, compute_display_string_end):
16623 Fix calculation of the object to scan. Fixes an error when using
16624 arrow keys.
16625 (next_element_from_buffer): Don't abort when IT_CHARPOS is before
16626 base_level_stop; instead, set base_level_stop to BEGV.
16627 Fixes crashes in vertical-motion.
16628 (next_element_from_buffer): Improve commentary for when
16629 the iterator is before prev_stop.
16630 (init_iterator): Initialize bidi_p from the default value of
16631 bidi-display-reordering, not from buffer-local value. Use the
16632 buffer-local value only if initializing for buffer iteration.
16633 (handle_invisible_prop): Support invisible properties on strings
16634 that are being bidi-reordered.
16635 (set_iterator_to_next): Support bidi reordering of C strings and
16636 Lisp strings.
16637 (next_element_from_string): Support bidi reordering of Lisp
16638 strings.
16639 (handle_stop_backwards): Support Lisp strings as well.
16640 (display_string): Support display of R2L glyph rows.
16641 Use IT_STRING_CHARPOS when displaying from a Lisp string.
16642 (init_iterator): Don't initialize it->bidi_p for strings
16643 here.
16644 (reseat_to_string): Initialize it->bidi_p for strings here.
16645 (next_element_from_string, next_element_from_c_string)
16646 (next_element_from_buffer): Add xassert's for correspondence
16647 between IT's object being iterated and it->bidi_it.string
16648 structure.
16649 (face_before_or_after_it_pos): Support bidi iteration.
16650 (next_element_from_c_string): Handle the case of the first string
16651 character that is not the first one in the visual order.
16652 (get_visually_first_element): New function, refactored from common
16653 parts of next_element_from_buffer, next_element_from_string, and
16654 next_element_from_c_string.
16655 (tool_bar_lines_needed, redisplay_tool_bar)
16656 (display_menu_bar): Force left-to-right direction. Add a FIXME
16657 comment for making that be controlled by a user option.
16658 (push_it, pop_it): Save and restore the state of the
16659 bidi iterator. Save and restore the bidi_p flag.
16660 (pop_it): Iterate out of display property for string iteration as
16661 well.
16662 (iterate_out_of_display_property): Support iteration over strings.
16663 (handle_single_display_spec): Set up it->bidi_it for iteration
16664 over a display string, and call bidi_init_it.
16665 (handle_single_display_spec, next_overlay_string)
16666 (get_overlay_strings_1, push_display_prop): Set up the bidi
16667 iterator for displaying display or overlay strings.
16668 (forward_to_next_line_start): Don't use the shortcut if
16669 bidi-iterating.
16670 (back_to_previous_visible_line_start): If handle_display_prop
16671 pushed the iterator stack, restore the internal state of the bidi
16672 iterator by calling bidi_pop_it same number of times.
16673 (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero,
16674 and we are bidi-iterating, don't decrement the iterator position;
16675 instead, set the first_elt flag in the bidi iterator, to produce
16676 the same effect.
16677 (reseat_1): Remove redundant setting of string_from_display_prop_p.
16678 (push_display_prop): xassert that we are iterating a buffer.
16679 (push_it, pop_it): Save and restore paragraph_embedding member.
16680 (handle_single_display_spec, next_overlay_string)
16681 (get_overlay_strings_1, reseat_1, reseat_to_string)
16682 (push_display_prop): Set up the `unibyte' member of bidi_it.string
16683 correctly. Don't assume unibyte strings are not bidi-reordered.
16684 (compute_display_string_pos)
16685 (compute_display_string_end): Fix handling the case of C string.
16686 (push_it, pop_it): Save and restore from_disp_prop_p.
16687 (handle_single_display_spec, push_display_prop): Set the
16688 from_disp_prop_p flag.
16689 (get_overlay_strings_1): Reset the from_disp_prop_p flag.
16690 (pop_it): Call iterate_out_of_display_property only if we are
16691 popping after iteration over a string that came from a display
16692 property. Fix a typo in popping stretch info. Add an assertion
16693 for verifying that the iterator position is in sync with the bidi
16694 iterator.
16695 (handle_single_display_spec, get_overlay_strings_1)
16696 (push_display_prop): Fix initialization of paragraph direction for
16697 string when that of the parent object is not yet determined.
16698 (reseat_1): Call bidi_init_it to resync the bidi
16699 iterator with IT's position. (Bug#7616)
16700 (find_row_edges): If ROW->start.pos gives position
16701 smaller than min_pos, use it as ROW->minpos. (Bug#7616)
16702 (handle_stop, back_to_previous_visible_line_start, reseat_1):
16703 Reset the from_disp_prop_p flag.
16704 (SAVE_IT, RESTORE_IT): New macros.
16705 (pos_visible_p, face_before_or_after_it_pos)
16706 (back_to_previous_visible_line_start)
16707 (move_it_in_display_line_to, move_it_in_display_line)
16708 (move_it_to, move_it_vertically_backward, move_it_by_lines)
16709 (try_scrolling, redisplay_window, display_line): Use them when
16710 saving a temporary copy of the iterator and restoring it back.
16711 (back_to_previous_visible_line_start, reseat_1)
16712 (init_iterator): Empty the bidi cache "stack".
16713 (move_it_in_display_line_to): If iterator ended up at
16714 EOL, but we never saw any buffer positions smaller than
16715 to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor
16716 motion in bidi-reordered lines.
16717 (move_it_in_display_line_to): Record prev_method and prev_pos
16718 immediately before the call to set_iterator_to_next. Fixes cursor
16719 motion in bidi-reordered lines with stretch glyphs and strings
16720 displayed in margins. (Bug#8133) (Bug#8867)
16721 Return MOVE_POS_MATCH_OR_ZV only if iterator position is past
16722 TO_CHARPOS.
16723 (pos_visible_p): Support positions in bidi-reordered lines.
16724 Save and restore bidi cache.
16725
16726 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int.
16727 (bidi_paragraph_info): Delete unused struct.
16728 (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT.
16729 (bidi_cache_start): New variable.
16730 (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not
16731 to zero.
16732 (bidi_cache_fetch_state, bidi_cache_search)
16733 (bidi_cache_find_level_change, bidi_cache_iterator_state)
16734 (bidi_cache_find, bidi_peek_at_next_level)
16735 (bidi_level_of_next_char, bidi_find_other_level_edge)
16736 (bidi_move_to_visually_next): Compare cache index with
16737 bidi_cache_start rather than with zero.
16738 (bidi_fetch_char): Accept new argument STRING; all callers
16739 changed. Support iteration over a string. Support strings with
16740 display properties. Support unibyte strings. Fix the type of
16741 `len' according to what STRING_CHAR_AND_LENGTH expects.
16742 (bidi_paragraph_init, bidi_resolve_explicit_1)
16743 (bidi_resolve_explicit, bidi_resolve_weak)
16744 (bidi_level_of_next_char, bidi_move_to_visually_next):
16745 Support iteration over a string.
16746 (bidi_set_sor_type, bidi_resolve_explicit_1)
16747 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
16748 can now be zero (for strings); special values 0 and -1 were
16749 changed to -1 and -2, respectively.
16750 (bidi_char_at_pos): New function.
16751 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak):
16752 Call it instead of FETCH_MULTIBYTE_CHAR.
16753 (bidi_move_to_visually_next): Abort if charpos or bytepos were not
16754 initialized to valid values.
16755 (bidi_init_it): Don't initialize charpos and bytepos with invalid
16756 values.
16757 (bidi_level_of_next_char): Allow the sentinel "position" to pass
16758 the test for valid cached positions. Fix the logic for looking up
16759 the sentinel state in the cache. GCPRO the Lisp string we are
16760 iterating.
16761 (bidi_push_it, bidi_pop_it): New functions.
16762 (bidi_initialize): Initialize the bidi cache start stack pointer.
16763 (bidi_cache_ensure_space): New function, refactored from part of
16764 bidi_cache_iterator_state. Don't assume the required size is just
16765 one BIDI_CACHE_CHUNK away.
16766 (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE.
16767 (bidi_count_bytes, bidi_char_at_pos): New functions.
16768 (bidi_cache_search): Don't assume bidi_cache_last_idx is
16769 always valid if bidi_cache_idx is valid.
16770 (bidi_cache_find_level_change): xassert that bidi_cache_last_idx
16771 is valid if it's going to be used.
16772 (bidi_shelve_cache, bidi_unshelve_cache): New functions.
16773 (bidi_cache_fetch_state, bidi_cache_search)
16774 (bidi_cache_find_level_change, bidi_cache_ensure_space)
16775 (bidi_cache_iterator_state, bidi_cache_find)
16776 (bidi_find_other_level_edge, bidi_cache_start_stack):
16777 All variables related to cache indices are now EMACS_INT.
16778
16779 * dispextern.h (struct bidi_string_data): New structure.
16780 (struct bidi_it): New member `string'. Make flag members be 1-bit
16781 fields, and put them last in the struct.
16782 (compute_display_string_pos, compute_display_string_end):
16783 Update prototypes.
16784 (bidi_push_it, bidi_pop_it): Add prototypes.
16785 (struct iterator_stack_entry): New members bidi_p,
16786 paragraph_embedding, and from_disp_prop_p.
16787 (struct it): Member bidi_p is now a bit field 1 bit wide.
16788 (bidi_shelve_cache, bidi_unshelve_cache):
16789 Declare prototypes.
16790
16791 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
16792 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
16793 and vector-like objects.
16794
16795 * dispnew.c (buffer_posn_from_coords): Save and restore the bidi
16796 cache around display iteration.
16797
16798 * window.c (Fwindow_end, window_scroll_pixel_based)
16799 (displayed_window_lines, Frecenter): Save and restore the bidi
16800 cache around display iteration.
16801
16802 2011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
16803
16804 * editfns.c (Fdelete_region): Clarify the use of the named
16805 parameters (bug#6788).
16806
16807 2011-07-14 Martin Rudalics <rudalics@gmx.at>
16808
16809 * indent.c (Fvertical_motion): Set and restore w->pointm when
16810 saving and restoring the window's buffer (Bug#9006).
16811
16812 2011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
16813
16814 * editfns.c (Fstring_to_char): Clarify just what is returned
16815 (bug#6576). Text by Eli Zaretskii.
16816
16817 2011-07-13 Juanma Barranquero <lekktu@gmail.com>
16818
16819 * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059).
16820
16821 2011-07-13 Eli Zaretskii <eliz@gnu.org>
16822
16823 * buffer.c (mmap_find): Fix a typo.
16824
16825 2011-07-13 Johan Bockgård <bojohan@gnu.org>
16826
16827 Fix execution of x selection hooks.
16828 * xselect.c (Qx_lost_selection_functions)
16829 (Qx_sent_selection_functions): New vars.
16830 (syms_of_xselect): DEFSYM them.
16831 (x_handle_selection_request): Pass Qx_sent_selection_functions
16832 rather than Vx_sent_selection_functions to Frun_hook_with_args.
16833 (x_handle_selection_clear,x_clear_frame_selections):
16834 Pass Qx_lost_selection_functions rather than
16835 Vx_lost_selection_functions to Frun_hook_with_args.
16836
16837 2011-07-13 Paul Eggert <eggert@cs.ucla.edu>
16838
16839 * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking.
16840 The old code sometimes used this field without initializing it.
16841
16842 * alloc.c (gc_sweep): Don't read past end of array.
16843 In theory, the old code could also have corrupted Emacs internals,
16844 though it'd be very unlikely.
16845
16846 2011-07-12 Andreas Schwab <schwab@linux-m68k.org>
16847
16848 * character.c (Fcharacterp): Don't advertise optional ignored
16849 argument. (Bug#4026)
16850
16851 2011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
16852
16853 * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier
16854 key" (bug#4257).
16855
16856 * window.c (Fset_window_start): Doc fix (bug#4199).
16857 (Fset_window_hscroll): Ditto.
16858
16859 2011-07-12 Paul Eggert <eggert@cs.ucla.edu>
16860
16861 Fix minor new problems caught by GCC 4.6.1.
16862 * term.c (init_tty): Remove unused local.
16863 * xsettings.c (store_monospaced_changed): Define this function only
16864 if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's
16865 not used otherwise.
16866
16867 2011-07-12 Chong Yidong <cyd@stupidchicken.com>
16868
16869 * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300).
16870
16871 2011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
16872
16873 * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows
16874 are the mini-buffer and the echo area (bug#3320).
16875
16876 * term.c (init_tty): Remove support for supdup, c10 and perq
16877 terminals, which are no longer supported (bug#1482).
16878
16879 2011-07-10 Johan Bockgård <bojohan@gnu.org>
16880
16881 * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check.
16882
16883 2011-07-10 Jan Djärv <jan.h.d@swipnet.se>
16884
16885 * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event
16886 for non-popups (Bug#3642).
16887
16888 2011-07-10 Andreas Schwab <schwab@linux-m68k.org>
16889
16890 * alloc.c (reset_malloc_hooks): Protoize.
16891 * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge)
16892 (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise.
16893 * cm.c (losecursor): Likewise.
16894 * data.c (fmod): Likewise.
16895 * dispnew.c (swap_glyphs_in_rows): Likewise.
16896 * emacs.c (memory_warning_signal): Likewise.
16897 * floatfns.c (float_error): Likewise.
16898 * font.c (check_gstring, check_otf_features, otf_tag_symbol)
16899 (otf_open, font_otf_capability, generate_otf_features)
16900 (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
16901 Likewise.
16902 * image.c (pbm_read_file): Likewise.
16903 * indent.c (string_display_width): Likewise.
16904 * intervals.c (check_for_interval, search_for_interval)
16905 (inc_interval_count, count_intervals, root_interval)
16906 (adjust_intervals_for_insertion, make_new_interval): Likewise.
16907 * lread.c (defalias): Likewise.
16908 * ralloc.c (r_alloc_check): Likewise.
16909 * regex.c (set_image_of_range_1, set_image_of_range)
16910 (regex_grow_registers): Likewise.
16911 * sysdep.c (strerror): Likewise.
16912 * termcap.c (valid_filename_p, tprint, main): Likewise.
16913 * tparam.c (main): Likewise.
16914 * unexhp9k800.c (run_time_remap, save_data_space)
16915 (update_file_ptrs, read_header, write_header, calculate_checksum)
16916 (copy_file, copy_rest, display_header): Likewise.
16917 * widget.c (mark_shell_size_user_specified, create_frame_gcs):
16918 Likewise.
16919 * xdisp.c (check_it): Likewise.
16920 * xfaces.c (register_color, unregister_color, unregister_colors):
16921 Likewise.
16922 * xfns.c (print_fontset_result): Likewise.
16923 * xrdb.c (member, fatal, main): Likewise.
16924
16925 2011-07-10 Paul Eggert <eggert@cs.ucla.edu>
16926
16927 Fix minor problems found by static checking (Bug#9031).
16928 * chartab.c (char_table_set_range, map_sub_char_table):
16929 Remove unused locals.
16930 (uniprop_table): Now static.
16931 * composite.c (_work_char): Remove unused static var.
16932
16933 2011-07-09 Juanma Barranquero <lekktu@gmail.com>
16934
16935 * chartab.c (uniprop_table_uncompress): Remove unused local variable.
16936
16937 2011-07-09 Jan Djärv <jan.h.d@swipnet.se>
16938
16939 * gtkutil.c (qttip_cb): Remove code without function.
16940
16941 2011-07-09 Eli Zaretskii <eliz@gnu.org>
16942
16943 * w32.c (pthread_sigmask): New stub.
16944
16945 2011-07-08 Paul Eggert <eggert@cs.ucla.edu>
16946
16947 Use pthread_sigmask, not sigprocmask (Bug#9010).
16948 sigprocmask is portable only for single-threaded applications, and
16949 Emacs can be multi-threaded when it uses GTK.
16950 * Makefile.in (LIB_PTHREAD_SIGMASK): New macro.
16951 (LIBES): Use it.
16952 * callproc.c (Fcall_process):
16953 * process.c (create_process):
16954 * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask):
16955 Use pthread_sigmask, not sigprocmask.
16956
16957 2011-07-08 Jan Djärv <jan.h.d@swipnet.se>
16958
16959 * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget.
16960 (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was
16961 wrong (Bug#8591).
16962
16963 2011-07-08 Jan Djärv <jan.h.d@swipnet.se>
16964
16965 * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment.
16966 Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591).
16967 (xg_hide_tooltip): Fix comment.
16968
16969 * nsterm.m (initFrameFromEmacs): Don't use ns_return_types
16970 in registerServicesMenuSendTypes.
16971 (validRequestorForSendType): Don't check ns_return_types.
16972
16973 * nsfns.m (Fx_open_connection): Put NSStringPboardType into
16974 ns_return_type.
16975
16976 2011-07-08 Jason Rumney <jasonr@gnu.org>
16977
16978 * w32term.c (x_make_frame_visible): Use SH_SHOWNORMAL rather than
16979 SH_SHOW for hidden windows (Bug#5482).
16980
16981 * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using
16982 frame struct members of non-existent frames (Bug#6284).
16983
16984 2011-07-08 Jan Djärv <jan.h.d@swipnet.se>
16985
16986 * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and
16987 variable firstTime not needed on OSX >= 10.6.
16988 (setPosition): setFloatValue:knobProportion: is deprecated on OSX
16989 >= 10.5. Use setKnobProportion, setDoubleValue.
16990
16991 * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4)
16992 (MAC_OS_X_VERSION_10_5): Define if not defined.
16993 (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6.
16994 (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6.
16995 (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6.
16996
16997 * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods
16998 cString and lossyCString on OSX >= 10.4.
16999
17000 * nsmenu.m (fillWithWidgetValue): Don't use deprecated method
17001 sizeToFit on OSX >= 10.2.
17002
17003 * nsimage.m (allocInitFromFile): Don't use deprecated method
17004 bestRepresentationForDevice on OSX >= 10.6.
17005
17006 * nsfns.m (check_ns_display_info): Cast to long and use %ld in error
17007 to avoid warning.
17008
17009 * emacs.c: Declare unexec_init_emacs_zone.
17010
17011 * nsgui.h: Fix compiler warning about gnulib redefining verify.
17012
17013 * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842).
17014
17015 * nsmenu.m (ns_update_menubar): Remove useless setDelegate call
17016 on svcsMenu (Bug#8842).
17017
17018 * nsfns.m (Fx_open_connection): Remove NSStringPboardType from
17019 ns_return_types.
17020 (Fns_list_services): Just return Qnil on 10.6, code not working there.
17021
17022 * nsterm.m (QUTF8_STRING): Declare.
17023 (initFrameFromEmacs): Call registerServicesMenuSendTypes.
17024 (validRequestorForSendType): Return type is (id).
17025 Change indexOfObjectIdenticalTo to indexOfObject.
17026 Check if we have local selection before returning self (Bug#8842).
17027 (writeSelectionToPasteboard): Put local selection into paste board
17028 if we have a local selection (Bug#8842).
17029 (syms_of_nsterm): DEFSYM QUTF8_STRING.
17030
17031 * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m.
17032 (ns_get_local_selection): Declare.
17033
17034 2011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
17035
17036 * keymap.c (describe_map_tree): Don't insert a double newline at
17037 the end of the buffer (bug#1169) and return whether we inserted
17038 something.
17039
17040 * callint.c (Fcall_interactively): Change "reading args" to
17041 "providing args" to try to clarify what it does (bug#1010).
17042
17043 2011-07-07 Kenichi Handa <handa@m17n.org>
17044
17045 * composite.c (composition_compute_stop_pos): Ignore a static
17046 composition starting before CHARPOS (Bug#8915).
17047
17048 * xdisp.c (handle_composition_prop): Likewise.
17049
17050 2011-07-07 Eli Zaretskii <eliz@gnu.org>
17051
17052 * term.c (produce_glyphs) <xassert>: Allow IT_GLYPHLESS in it->what.
17053 (Bug#9015)
17054
17055 2011-07-07 Kenichi Handa <handa@m17n.org>
17056
17057 * character.h (unicode_category_t): New enum type.
17058
17059 * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types.
17060 (Qchar_code_property_table): New variable.
17061 (UNIPROP_TABLE_P, UNIPROP_GET_DECODER)
17062 (UNIPROP_COMPRESSED_FORM_P): New macros.
17063 (char_table_ascii): Uncompress the compressed values.
17064 (sub_char_table_ref): New arg is_uniprop. Callers changed.
17065 Uncompress the compressed values.
17066 (sub_char_table_ref_and_range): Likewise.
17067 (char_table_ref_and_range): Uncompress the compressed values.
17068 (sub_char_table_set): New arg is_uniprop. Callers changed.
17069 Uncompress the compressed values.
17070 (sub_char_table_set_range): Args changed. Callers changed.
17071 (char_table_set_range): Adjuted for the above change.
17072 (map_sub_char_table): Delete args default_val and parent. Add arg
17073 top. Give decoded values to a Lisp function.
17074 (map_char_table): Adjust for the above change. Give decoded
17075 values to a Lisp function. Gcpro more variables.
17076 (uniprop_table_uncompress)
17077 (uniprop_decode_value_run_length): New functions.
17078 (uniprop_decoder, uniprop_decoder_count): New variables.
17079 (uniprop_get_decoder, uniprop_encode_value_character)
17080 (uniprop_encode_value_run_length, uniprop_encode_value_numeric):
17081 New functions.
17082 (uniprop_encoder, uniprop_encoder_count): New variables.
17083 (uniprop_get_encoder, uniprop_table)
17084 (Funicode_property_table_internal, Fget_unicode_property_internal)
17085 (Fput_unicode_property_internal): New functions.
17086 (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr
17087 Sunicode_property_table_internal, Sget_unicode_property_internal,
17088 and Sput_unicode_property_internal. Defvar_lisp
17089 char-code-property-alist.
17090
17091 * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of
17092 Vunicode_category_table.
17093
17094 * font.c (font_range): Adjust for the change of
17095 Vunicode_category_table.
17096
17097 2011-07-07 Dan Nicolaescu <dann@ics.uci.edu>
17098
17099 * m/iris4d.h: Remove file, move contents ...
17100 * s/irix6-5.h: ... here.
17101
17102 2011-07-06 Paul Eggert <eggert@cs.ucla.edu>
17103
17104 Remove unportable assumption about struct layout (Bug#8884).
17105 * alloc.c (mark_buffer):
17106 * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables)
17107 (clone_per_buffer_values): Don't assume that
17108 sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
17109 This isn't true in general, and it's particularly not true
17110 if Emacs is configured with --with-wide-int.
17111 * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
17112 New macros, used in the buffer.c change.
17113
17114 2011-07-05 Jan Djärv <jan.h.d@swipnet.se>
17115
17116 * xsettings.c: Use both GConf and GSettings if both are available.
17117 (store_config_changed_event): Add comment.
17118 (dpyinfo_valid, store_font_name_changed, map_tool_bar_style)
17119 (store_tool_bar_style_changed): New functions.
17120 (store_monospaced_changed): Add comment. Call dpyinfo_valid.
17121 (struct xsettings): Move font inside HAVE_XFT.
17122 (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
17123 (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT.
17124 Move inside HAVE_XFT.
17125 (something_changed_gsettingsCB): Rename from something_changedCB.
17126 Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
17127 also.
17128 (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
17129 (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
17130 (something_changed_gconfCB): Rename from something_changedCB.
17131 Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
17132 (parse_settings): Move check for font inside HAVE_XFT.
17133 (read_settings, apply_xft_settings): Add comment.
17134 (read_and_apply_settings): Add comment. Call map_tool_bar_style and
17135 store_tool_bar_style_changed. Move check for font inside HAVE_XFT and
17136 call store_font_name_changed.
17137 (xft_settings_event): Add comment.
17138 (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE
17139 and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT.
17140 (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE
17141 and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT.
17142 (xsettings_initialize): Call init_gsettings last.
17143 (xsettings_get_system_font, xsettings_get_system_normal_font):
17144 Add comment.
17145
17146 2011-07-05 Paul Eggert <eggert@cs.ucla.edu>
17147
17148 Random fixes. E.g., (random) never returned negative values.
17149 * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the
17150 subseconds part to the entropy, as that's a bit more random.
17151 Prefer signed to unsigned, since the signedness doesn't matter and
17152 in general we prefer signed. When given a limit, use a
17153 denominator equal to INTMASK + 1, not to VALMASK + 1, because the
17154 latter isn't right if USE_2_TAGS_FOR_INTS.
17155 * sysdep.c (get_random): Return a value in the range 0..INTMASK,
17156 not 0..VALMASK. Don't discard "excess" bits that random () returns.
17157
17158 2011-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
17159
17160 * textprop.c (text_property_stickiness):
17161 Obey Vtext_property_default_nonsticky.
17162 (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky.
17163 * w32fns.c (syms_of_w32fns):
17164 * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default.
17165
17166 2011-07-04 Paul Eggert <eggert@cs.ucla.edu>
17167
17168 * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR.
17169 This is more efficient than Ffile_directory_p and avoids a minor race.
17170
17171 2011-07-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
17172
17173 * buffer.c (Foverlay_put): Say what the return value is
17174 (bug#7835).
17175
17176 * fileio.c (barf_or_query_if_file_exists): Check first if the file
17177 is a directory before asking whether to use the file name
17178 (bug#7564).
17179 (barf_or_query_if_file_exists): Make the "File is a directory"
17180 error be more correct.
17181
17182 * fns.c (Frequire): Remove the mention of the .gz files, since
17183 that's installation-specific, but keep the mention of
17184 `get-load-suffixes'.
17185
17186 2011-07-04 Paul Eggert <eggert@cs.ucla.edu>
17187
17188 * editfns.c (Fformat_time_string): Don't assume strlen fits in int.
17189 Report string overflow if the output is too long.
17190
17191 2011-07-04 Juanma Barranquero <lekktu@gmail.com>
17192
17193 * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
17194 (syms_of_gnutls): Remove duplicate DEFSYM for
17195 Qgnutls_bootprop_verify_hostname_error, an error for
17196 Qgnutls_bootprop_verify_error (which is no longer used).
17197
17198 * eval.c (find_handler_clause): Remove parameters `sig' and `data',
17199 unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed.
17200 Also (re)move comments that are misplaced or no longer relevant.
17201
17202 2011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
17203
17204 * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813).
17205
17206 2011-07-03 Chong Yidong <cyd@stupidchicken.com>
17207
17208 * xfaces.c (Finternal_merge_in_global_face): Modify the foreground
17209 and background color parameters if they have been changed.
17210
17211 2011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
17212
17213 * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659).
17214
17215 2011-07-03 Paul Eggert <eggert@cs.ucla.edu>
17216
17217 * xsettings.c (SYSTEM_FONT): Define only when used.
17218 No need to define when HAVE_GSETTINGS || !HAVE_XFT.
17219
17220 * keymap.c (access_keymap_1): Now static.
17221
17222 2011-07-02 Chong Yidong <cyd@stupidchicken.com>
17223
17224 * keyboard.c (command_loop_1): If a down-mouse event is unbound,
17225 leave any prefix arg for the up event (Bug#1586).
17226
17227 2011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
17228
17229 * lread.c (syms_of_lread): Mention single symbols defined by
17230 `defvar' or `defconst' (bug#7154).
17231
17232 * fns.c (Frequire): Mention .el.gz files (bug#7314).
17233 (Frequire): Mention get-load-suffixes.
17234
17235 2011-07-02 Martin Rudalics <rudalics@gmx.at>
17236
17237 * window.h (window): Remove clone_number slot.
17238 * window.c (Fwindow_clone_number, Fset_window_clone_number):
17239 Remove.
17240 (make_parent_window, make_window, saved_window)
17241 (Fset_window_configuration, save_window_save): Don't deal with
17242 clone numbers.
17243 * buffer.c (Qclone_number): Remove declaration.
17244 (sort_overlays, overlay_strings): Don't deal with clone numbers.
17245
17246 2011-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
17247
17248 Add multiple inheritance to keymaps.
17249 * keymap.c (Fmake_composed_keymap): New function.
17250 (Fset_keymap_parent): Simplify.
17251 (fix_submap_inheritance): Remove.
17252 (access_keymap_1): New function extracted from access_keymap to handle
17253 embedded parents and handle lists of maps.
17254 (access_keymap): Use it.
17255 (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
17256 (Fcopy_keymap): Handle embedded parents.
17257 (Fcommand_remapping, define_as_prefix): Simplify.
17258 (Fkey_binding): Simplify.
17259 (syms_of_keymap): Move minibuffer-local-completion-map,
17260 minibuffer-local-filename-completion-map,
17261 minibuffer-local-must-match-map, and
17262 minibuffer-local-filename-must-match-map to Elisp.
17263 (syms_of_keymap): Defsubr make-composed-keymap.
17264 * keyboard.c (menu_bar_items): Use map_keymap_canonical.
17265 (parse_menu_item): Trivial simplification.
17266
17267 2011-07-01 Glenn Morris <rgm@gnu.org>
17268
17269 * Makefile.in (SETTINGS_LIBS): Fix typo.
17270
17271 2011-07-01 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
17272
17273 * coding.c (Fencode_coding_string): Record the last coding system
17274 used, as the function doc string says (bug#8738).
17275
17276 2011-07-01 Jan Djärv <jan.h.d@swipnet.se>
17277
17278 * xsettings.c (store_monospaced_changed): Take new font as arg and
17279 check for change against current_mono_font.
17280 (EMACS_TYPE_SETTINGS): Remove this and related defines.
17281 (emacs_settings_constructor, emacs_settings_get_property)
17282 (emacs_settings_set_property, emacs_settings_class_init)
17283 (emacs_settings_init, gsettings_obj): Remove.
17284 (something_changedCB): New function for HAVE_GSETTINGS.
17285 (something_changedCB): HAVE_GCONF: Call store_monospaced_changed
17286 with value as argument.
17287 (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
17288 g_settings_new (Bug#8967). Do not create gsettings_obj.
17289 Remove calls to g_settings_bind. Connect something_changedCB to
17290 "changed".
17291
17292 * xgselect.c: Add defined (HAVE_GSETTINGS).
17293 (xgselect_initialize): Ditto.
17294
17295 * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h
17296 (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
17297 xg_select.
17298
17299 2011-07-01 Paul Eggert <eggert@cs.ucla.edu>
17300
17301 * eval.c (struct backtrace): Simplify and port the data structure.
17302 Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
17303 signed bit field, as this assumption is not portable and it makes
17304 Emacs crash when compiled with Sun C 5.8 on sparc. Do not use
17305 "char debug_on_exit : 1" as this is not portable either; instead,
17306 use the portable "unsigned int debug_on_exit : 1". Remove unused
17307 member evalargs. Remove obsolete comments about cc bombing out.
17308
17309 2011-06-30 Jan Djärv <jan.h.d@swipnet.se>
17310
17311 * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS.
17312 Let HAVE_GSETTINGS override HAVE_GCONF.
17313 (store_monospaced_changed): New function.
17314 (EMACS_SETTINGS): A new type derived from GObject to handle
17315 GSettings notifications.
17316 (emacs_settings_constructor, emacs_settings_get_property)
17317 (emacs_settings_set_property, emacs_settings_class_init):
17318 New functions.
17319 (gsettings_client, gsettings_obj): New variables.
17320 (GSETTINGS_SCHEMA): New define.
17321 (something_changedCB): Call store_monospaced_changed.
17322 (init_gsettings): New function.
17323 (xsettings_initialize): Call init_gsettings.
17324 (syms_of_xsettings): Initialize gsettings_client, gsettings_obj
17325 to NULL.
17326
17327 * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from
17328 GCONF_CFLAGS/LIBS.
17329
17330 2011-06-29 Martin Rudalics <rudalics@gmx.at>
17331
17332 * window.c (resize_root_window, grow_mini_window)
17333 (shrink_mini_window): Rename Qresize_root_window to
17334 Qwindow_resize_root_window and Qresize_root_window_vertically to
17335 Qwindow_resize_root_window_vertically.
17336
17337 2011-06-28 Paul Eggert <eggert@cs.ucla.edu>
17338
17339 * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var.
17340
17341 2011-06-27 Juanma Barranquero <lekktu@gmail.com>
17342
17343 * makefile.w32-in: Redesign dependencies so they reflect more
17344 clearly which files are directly included by each source file,
17345 and not through other includes.
17346
17347 2011-06-27 Martin Rudalics <rudalics@gmx.at>
17348
17349 * buffer.c (Qclone_number): Declare static and DEFSYM it.
17350 (sort_overlays, overlay_strings): When an overlay's clone number
17351 matches the window's clone number process the overlay even if
17352 the overlay's window property doesn't match the current window.
17353
17354 * window.c (Fwindow_vchild): Rename to Fwindow_top_child.
17355 (Fwindow_hchild): Rename to Fwindow_left_child.
17356 (Fwindow_next): Rename to Fwindow_next_sibling.
17357 (Fwindow_prev): Rename to Fwindow_prev_sibling.
17358 (resize_window_check): Rename to window_resize_check.
17359 (resize_window_apply): Rename to window_resize_apply.
17360 (Fresize_window_apply): Rename to Fwindow_resize_apply.
17361 (Fdelete_other_windows_internal, resize_frame_windows)
17362 (Fsplit_window_internal, Fdelete_window_internal)
17363 (grow_mini_window, shrink_mini_window)
17364 (Fresize_mini_window_internal): Fix callers accordingly.
17365
17366 2011-06-26 Jan Djärv <jan.h.d@swipnet.se>
17367
17368 * emacsgtkfixed.h: State that this is only used with Gtk+3.
17369 (emacs_fixed_set_min_size): Remove.
17370 (emacs_fixed_new): Take frame as argument.
17371
17372 * emacsgtkfixed.c: State that this is only used with Gtk+3.
17373 (_EmacsFixedPrivate): Remove minwidth/height.
17374 Add struct frame *f.
17375 (emacs_fixed_init): Initialize priv->f.
17376 (get_parent_class, emacs_fixed_set_min_size): Remove.
17377 (emacs_fixed_new): Set priv->f to argument.
17378 (emacs_fixed_get_preferred_width)
17379 (emacs_fixed_get_preferred_height): Use min_width/height from
17380 frames size_hint to set minimum and natural (Bug#8919).
17381 (XSetWMSizeHints, XSetWMNormalHints): Override these functions
17382 and use min_width/height from frames size_hint to set
17383 min_width/height (Bug#8919).
17384
17385 * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new.
17386 (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size.
17387 Fix indentation.
17388
17389 2011-06-26 Eli Zaretskii <eliz@gnu.org>
17390
17391 * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling
17392 bidi_at_paragraph_end, since fast_looking_at doesn't like to be
17393 called at ZV.
17394
17395 2011-06-26 Chong Yidong <cyd@stupidchicken.com>
17396
17397 * process.c (wait_reading_process_output): Bypass select if
17398 waiting for a cell while ignoring keyboard input, and input is
17399 pending. Suggested by Jan Djärv (Bug#8869).
17400
17401 2011-06-25 Paul Eggert <eggert@cs.ucla.edu>
17402
17403 Use gnulib's dup2 module instead of rolling our own.
17404 * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this.
17405
17406 2011-06-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
17407
17408 * dispnew.c (scrolling_window): Before scrolling, turn off a
17409 mouse-highlight in the window being scrolled.
17410
17411 2011-06-24 Juanma Barranquero <lekktu@gmail.com>
17412
17413 Move DEFSYM to lisp.h and use everywhere.
17414
17415 * character.h (DEFSYM): Move declaration...
17416 * lisp.h (DEFSYM): ...here.
17417
17418 * gnutls.c:
17419 * minibuf.c:
17420 * w32menu.c:
17421 * w32proc.c:
17422 * w32select.c: Don't include character.h.
17423
17424 * alloc.c (syms_of_alloc):
17425 * buffer.c (syms_of_buffer):
17426 * bytecode.c (syms_of_bytecode):
17427 * callint.c (syms_of_callint):
17428 * casefiddle.c (syms_of_casefiddle):
17429 * casetab.c (init_casetab_once):
17430 * category.c (init_category_once, syms_of_category):
17431 * ccl.c (syms_of_ccl):
17432 * cmds.c (syms_of_cmds):
17433 * composite.c (syms_of_composite):
17434 * dbusbind.c (syms_of_dbusbind):
17435 * dired.c (syms_of_dired):
17436 * dispnew.c (syms_of_display):
17437 * doc.c (syms_of_doc):
17438 * editfns.c (syms_of_editfns):
17439 * emacs.c (syms_of_emacs):
17440 * eval.c (syms_of_eval):
17441 * fileio.c (syms_of_fileio):
17442 * fns.c (syms_of_fns):
17443 * frame.c (syms_of_frame):
17444 * fringe.c (syms_of_fringe):
17445 * insdel.c (syms_of_insdel):
17446 * keymap.c (syms_of_keymap):
17447 * lread.c (init_obarray, syms_of_lread):
17448 * macros.c (syms_of_macros):
17449 * msdos.c (syms_of_msdos):
17450 * print.c (syms_of_print):
17451 * process.c (syms_of_process):
17452 * search.c (syms_of_search):
17453 * sound.c (syms_of_sound):
17454 * syntax.c (init_syntax_once, syms_of_syntax):
17455 * terminal.c (syms_of_terminal):
17456 * textprop.c (syms_of_textprop):
17457 * undo.c (syms_of_undo):
17458 * w32.c (globals_of_w32):
17459 * window.c (syms_of_window):
17460 * xdisp.c (syms_of_xdisp):
17461 * xfaces.c (syms_of_xfaces):
17462 * xfns.c (syms_of_xfns):
17463 * xmenu.c (syms_of_xmenu):
17464 * xsettings.c (syms_of_xsettings):
17465 * xterm.c (syms_of_xterm): Use DEFSYM.
17466
17467 2011-06-24 Teodor Zlatanov <tzz@lifelogs.com>
17468
17469 * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h.
17470
17471 2011-06-23 Paul Eggert <eggert@cs.ucla.edu>
17472
17473 Integer and buffer overflow fixes (Bug#8873).
17474
17475 * print.c (printchar, strout): Check for string overflow.
17476 (PRINTPREPARE, printchar, strout):
17477 Don't set size unless allocation succeeds.
17478
17479 * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int,
17480 for sizes. Check for string overflow more accurately.
17481 Simplify newline removal at end; this suppresses a GCC 4.6.0 warning.
17482
17483 * macros.c: Integer and buffer overflow fixes.
17484 * keyboard.h (struct keyboard.kbd_macro_bufsize):
17485 * macros.c (Fstart_kbd_macro, store_kbd_macro_char):
17486 Use ptrdiff_t, not int, for sizes.
17487 Don't increment bufsize until after realloc succeeds.
17488 Check for size-calculation overflow.
17489 (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result.
17490
17491 * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
17492
17493 * lread.c: Integer overflow fixes.
17494 (read_integer): Radix is now EMACS_INT, not int,
17495 to improve quality of diagnostics for out-of-range radices.
17496 Calculate buffer size correctly for out-of-range radices.
17497 (read1): Check for integer overflow in radices, and in
17498 read-circle numbers.
17499 (read_escape): Avoid int overflow.
17500 (Fload, openp, read_buffer_size, read1)
17501 (substitute_object_recurse, read_vector, read_list, map_obarray):
17502 Use ptrdiff_t, not int, for sizes.
17503 (read1): Use EMACS_INT, not int, for sizes.
17504 Check for size overflow.
17505
17506 * image.c (cache_image): Check for size arithmetic overflow.
17507
17508 * lread.c: Integer overflow issues.
17509 (saved_doc_string_size, saved_doc_string_length)
17510 (prev_saved_doc_string_size, prev_saved_doc_string_length):
17511 Now ptrdiff_t, not int.
17512 (read1): Don't assume doc string length fits in int. Check for
17513 out-of-range doc string lengths.
17514 (read_list): Don't assume file position fits in int.
17515 (read_escape): Check for hex character overflow.
17516
17517 2011-06-22 Leo Liu <sdl.web@gmail.com>
17518
17519 * minibuf.c (Fcompleting_read_default, Vcompleting_read_function):
17520 Move to minibuffer.el.
17521
17522 2011-06-22 Paul Eggert <eggert@cs.ucla.edu>
17523
17524 Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
17525 The following patches are for when GLYPH_DEBUG && !XASSERT.
17526 * dispextern.h (trace_redisplay_p, dump_glyph_string):
17527 * dispnew.c (flush_stdout):
17528 * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph):
17529 Mark as externally visible.
17530 * dispnew.c (check_window_matrix_pointers): Now static.
17531 * dispnew.c (window_to_frame_vpos):
17532 * xfns.c (unwind_create_frame):
17533 * xterm.c (x_check_font): Remove unused local.
17534 * scroll.c (CHECK_BOUNDS):
17535 * xfaces.c (cache_fache): Rename local to avoid shadowing.
17536 * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static.
17537 * xdisp.c (check_window_end): Now a no-op if !XASSERTS.
17538 (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos)
17539 (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos):
17540 Now static.
17541 (debug_method_add): Use va_list and vsprintf rather than relying
17542 on undefined behavior with wrong number of arguments.
17543 (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
17544 Don't assume ptrdiff_t and EMACS_INT are the same width as int.
17545 In this code, it's OK to assume C99 behavior for ptrdiff_t formats
17546 since we're not interested in debugging glyphs with old libraries.
17547 * xfaces.c (cache_face): Move debugging code earlier; this pacifies
17548 GCC 4.6.0's static checking.
17549
17550 2011-06-22 Paul Eggert <eggert@cs.ucla.edu>
17551
17552 Integer overflow and signedness fixes (Bug#8873).
17553 A few related buffer overrun fixes, too.
17554
17555 * font.c (font_score): Use EMACS_INT, not int, to store XINT value.
17556
17557 * dispextern.h (struct face.stipple):
17558 * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
17559 (x_bitmap_mask, x_allocate_bitmap_record)
17560 (x_create_bitmap_from_data, x_create_bitmap_from_file)
17561 (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask)
17562 (x_create_bitmap_from_xpm_data):
17563 * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last):
17564 * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size)
17565 (.bitmaps_last):
17566 * xfaces.c (load_pixmap):
17567 * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap):
17568 * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size)
17569 (.bitmaps_last, struct x_output.icon_bitmap):
17570 Use ptrdiff_t, not int, for bitmap indexes.
17571 (x_allocate_bitmap_record): Check for size overflow.
17572 * dispextern.h, lisp.h: Adjust to API changes elsewhere.
17573
17574 Use ptrdiff_t, not int, for overlay counts.
17575 * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT):
17576 * editfns.c (overlays_around, get_pos_property):
17577 * textprop.c (get_char_property_and_overlay):
17578 * xdisp.c (next_overlay_change, note_mouse_highlight):
17579 * xfaces.c (face_at_buffer_position):
17580 * buffer.c (OVERLAY_COUNT_MAX): New macro.
17581 (overlays_at, overlays_in, sort_overlays, Foverlays_at)
17582 (Fnext_overlay_change, Fprevious_overlay_change)
17583 (mouse_face_overlay_overlaps, Foverlays_in):
17584 Use ptrdiff_t, not int, for sizes.
17585 (overlays_at, overlays_in): Check for size-calculation overflow.
17586
17587 * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int.
17588
17589 * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen.
17590 (x_session_initialize): Do not assume string length fits in int.
17591
17592 * xsettings.c (apply_xft_settings): Fix potential buffer overrun.
17593 This is unlikely, but can occur if DPI is outlandish.
17594
17595 * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
17596 * xselect.c (Fx_get_atom_name): Avoid need for strlen.
17597
17598 * xrdb.c: Don't assume strlen fits in int; avoid some strlens.
17599 * xrdb.c (magic_file_p, search_magic_path):
17600 Omit last arg SUFFIX; it was always 0. All callers changed.
17601 (magic_file_p): Use ptrdiff_t, not int. Check for size overflow.
17602
17603 * xfont.c (xfont_match): Avoid need for strlen.
17604
17605 * xfns.c: Don't assume strlen fits in int.
17606 (xic_create_fontsetname, x_window): Use ptrdiff_t, not int.
17607
17608 * xdisp.c (message_log_check_duplicate): Return intmax_t,
17609 not unsigned long, as we prefer signed integers. All callers changed.
17610 Detect integer overflow in repeat count.
17611 (message_dolog): Don't assume print length fits in 39 bytes.
17612 (display_mode_element): Don't assume strlen fits in int.
17613
17614 * termcap.c: Don't assume sizes fit in int and never overflow.
17615 (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes.
17616 (gobble_line): Check for size-calculation overflow.
17617
17618 * minibuf.c (Fread_buffer):
17619 * lread.c (intern, intern_c_string):
17620 * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]:
17621 Don't assume string length fits in int.
17622
17623 * keyboard.c (parse_tool_bar_item):
17624 * gtkutil.c (style_changed_cb): Avoid need for strlen.
17625
17626 * font.c: Don't assume string length fits in int.
17627 (font_parse_xlfd, font_parse_fcname, font_unparse_fcname):
17628 Use ptrdiff_t, not int.
17629 (font_intern_prop): Don't assume string length fits in int.
17630 Don't assume integer property fits in fixnum.
17631 * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int.
17632
17633 * filelock.c: Fix some buffer overrun and integer overflow issues.
17634 (get_boot_time): Don't assume gzip command string fits in 100 bytes.
17635 Reformulate so as not to need the command string.
17636 Invoke gzip -cd rather than gunzip, as it's more portable.
17637 (lock_info_type, lock_file_1, lock_file):
17638 Don't assume pid_t and time_t fit in unsigned long.
17639 (LOCK_PID_MAX): Remove; we now use more-reliable bounds.
17640 (current_lock_owner): Prefer signed type for sizes.
17641 Use memcpy, not strncpy, where memcpy is what is really wanted.
17642 Don't assume (via atoi) that time_t and pid_t fit in int.
17643 Check for time_t and/or pid_t out of range, e.g., via a network share.
17644 Don't alloca where an auto var works fine.
17645
17646 * fileio.c: Fix some integer overflow issues.
17647 (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name):
17648 Don't assume string length fits in int.
17649 (directory_file_name): Don't assume string length fits in long.
17650 (make_temp_name): Don't assume pid fits in int, or that its print
17651 length is less than 20.
17652
17653 * data.c (Fsubr_name): Rewrite to avoid a strlen call.
17654
17655 * coding.c (make_subsidiaries): Don't assume string length fits in int.
17656
17657 * callproc.c (child_setup): Rewrite to avoid two strlen calls.
17658
17659 * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT.
17660 We prefer signed integers, even for size calculations.
17661
17662 * emacs.c: Don't assume string length fits in 'int'.
17663 (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int.
17664 (main): Don't invoke strlen when not needed.
17665
17666 * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string.
17667 (XD_DEBUG_MESSAGE): Don't waste a byte.
17668
17669 * callproc.c (getenv_internal_1, getenv_internal)
17670 (Fgetenv_internal):
17671 * buffer.c (init_buffer): Don't assume string length fits in 'int'.
17672
17673 * lread.c (invalid_syntax): Omit length argument.
17674 All uses changed. This doesn't fix a bug, but it simplifies the
17675 code away from its former Hollerith-constant appearance, and it's
17676 one less 'int' to worry about when looking at integer-overflow issues.
17677 (string_to_number): Simplify 2011-04-26 change by invoking xsignal1.
17678
17679 * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr).
17680 This didn't break anything, but it didn't help either.
17681 It's confusing to put a bogus integer in a place where the actual
17682 value does not matter.
17683 (LIST_END_P): Remove unused macro and its bogus comment.
17684 (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT.
17685
17686 * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT.
17687 This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE,
17688 implementation.
17689 (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT.
17690 We prefer signed types, and the value cannot exceed the EMACS_INT
17691 range anyway (because otherwise the length would not be representable).
17692 (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t,
17693 not EMACS_UINT and EMACS_INT, when converting pointer to integer.
17694 This avoids a GCC warning when WIDE_EMACS_INT.
17695
17696 * indent.c (sane_tab_width): New function.
17697 (current_column, scan_for_column, Findent_to, position_indentation)
17698 (compute_motion): Use it. This is just for clarity.
17699 (Fcompute_motion): Don't assume hscroll and tab offset fit in int.
17700
17701 * image.c (xbm_image_p): Don't assume stated width, height fit in int.
17702
17703 * lisp.h (lint_assume): New macro.
17704 * composite.c (composition_gstring_put_cache):
17705 * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0.
17706
17707 * editfns.c, insdel.c:
17708 Omit unnecessary forward decls, to simplify future changes.
17709
17710 * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths.
17711
17712 * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'.
17713
17714 * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'.
17715 Use much-faster test for byte-length change.
17716 Don't assume string byte-length fits in 'int'.
17717 Check that character arg fits in 'int'.
17718 (mapcar1): Declare byte as byte, for clarity.
17719
17720 * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
17721
17722 * fns.c (concat): Catch string overflow earlier.
17723 Do not rely on integer wraparound.
17724
17725 * dispextern.h (struct it.overlay_strings_charpos)
17726 (struct it.selective): Now EMACS_INT, not int.
17727 * xdisp.c (forward_to_next_line_start)
17728 (back_to_previous_visible_line_start)
17729 (reseat_at_next_visible_line_start, next_element_from_buffer):
17730 Don't arbitrarily truncate the value of 'selective' to int.
17731
17732 * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0.
17733
17734 * composite.c: Don't truncate sizes to 'int'.
17735 (composition_gstring_p, composition_reseat_it)
17736 (composition_adjust_point): Use EMACS_INT, not int.
17737 (get_composition_id, composition_gstring_put_cache): Use EMACS_INT,
17738 not EMACS_UINT, for indexes.
17739
17740 * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT.
17741
17742 * buffer.c: Include <verify.h>.
17743 (struct sortvec.priority, struct sortstr.priority):
17744 Now EMACS_INT, not int.
17745 (compare_overlays, cmp_for_strings): Avoid subtraction overflow.
17746 (struct sortstr.size, record_overlay_string)
17747 (struct sortstrlist.size, struct sortlist.used):
17748 Don't truncate size to int.
17749 (record_overlay_string): Check for size-calculation overflow.
17750 (init_buffer_once): Check at compile-time, not run-time.
17751
17752 2011-06-22 Jim Meyering <meyering@redhat.com>
17753
17754 Don't leak an XBM-image-sized buffer
17755 * image.c (xbm_load): Free the image buffer after using it.
17756
17757 2011-06-21 Paul Eggert <eggert@cs.ucla.edu>
17758
17759 Port to Sun C.
17760 * composite.c (find_automatic_composition): Omit needless 'return 0;'
17761 that Sun C diagnosed.
17762 * fns.c (secure_hash): Fix pointer signedness issue.
17763 * intervals.c (static_offset_intervals): New function.
17764 (offset_intervals): Use it.
17765
17766 2011-06-21 Leo Liu <sdl.web@gmail.com>
17767
17768 * deps.mk (fns.o):
17769 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and
17770 sha512.h.
17771
17772 * fns.c (secure_hash): Rename from crypto_hash_function and change
17773 the first arg to accept symbols.
17774 (Fsecure_hash): New primitive.
17775 (syms_of_fns): New symbols.
17776
17777 2011-06-20 Deniz Dogan <deniz@dogan.se>
17778
17779 * process.c (Fset_process_buffer): Clarify return value in
17780 docstring.
17781
17782 2011-06-18 Chong Yidong <cyd@stupidchicken.com>
17783
17784 * dispnew.c (add_window_display_history): Use BVAR.
17785
17786 * xdisp.c (debug_method_add): Use BVAR.
17787 (check_window_end, dump_glyph_matrix, dump_glyph)
17788 (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C.
17789
17790 * xfaces.c (check_lface_attrs, check_lface, dump_realized_face):
17791 Likewise.
17792
17793 * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache
17794 check till after the cache is created in init_frame_faces.
17795
17796 2011-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
17797
17798 * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup.
17799
17800 2011-06-16 Paul Eggert <eggert@cs.ucla.edu>
17801
17802 * lisp.h: Include <limits.h>, for INT_MAX, LONG_MAX, LLONG_MAX.
17803 Without this, prin1 mishandles Lisp_Misc_Save_Value printing on
17804 hosts with pre-C99 libraries, because pD is wrongly defined to "t".
17805
17806 Improve buffer-overflow checking (Bug#8873).
17807 * fileio.c (Finsert_file_contents):
17808 * insdel.c (insert_from_buffer_1, replace_range, replace_range_2):
17809 Remove the old (too-loose) buffer overflow checks.
17810 They weren't needed, since make_gap checks for buffer overflow.
17811 * insdel.c (make_gap_larger): Catch buffer overflows that were missed.
17812 The old code merely checked for Emacs fixnum overflow, and relied
17813 on undefined (wraparound) behavior. The new code avoids undefined
17814 behavior, and also checks for ptrdiff_t and/or size_t overflow.
17815
17816 * editfns.c (Finsert_char): Don't dump core with very negative counts.
17817 Tune. Don't use wider integers than needed. Don't use alloca.
17818 Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test.
17819
17820 * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing.
17821
17822 * insdel.c, lisp.h (buffer_overflow): New function.
17823 (insert_from_buffer_1, replace_range, replace_range_2):
17824 * insdel.c (make_gap_larger):
17825 * editfns.c (Finsert_char):
17826 * fileio.c (Finsert_file_contents): Use it, to normalize wording.
17827
17828 * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed.
17829
17830 2011-06-15 Paul Eggert <eggert@cs.ucla.edu>
17831
17832 Integer overflow and signedness fixes (Bug#8873, Bug#8828).
17833
17834 * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772.
17835 (GET_CCL_RANGE, IN_INT_RANGE): Use it.
17836
17837 * fileio.c: Don't assume EMACS_INT fits in off_t.
17838 (emacs_lseek): New static function.
17839 (Finsert_file_contents, Fwrite_region): Use it.
17840 Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate.
17841
17842 * fns.c (Fload_average): Don't assume 100 * load average fits in int.
17843
17844 * fns.c: Don't overflow int when computing a list length.
17845 * fns.c (QUIT_COUNT_HEURISTIC): New constant.
17846 (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted
17847 truncation on 64-bit hosts. Check for QUIT every
17848 QUIT_COUNT_HEURISTIC entries rather than every other entry; that's
17849 faster and is responsive enough.
17850 (Flength): Report an error instead of overflowing an integer.
17851 (Fsafe_length): Return a float if the value is not representable
17852 as a fixnum. This shouldn't happen except in contrived situations.
17853 (Fnthcdr, Fsort): Don't assume list length fits in int.
17854 (Fcopy_sequence): Don't assume vector length fits in int.
17855
17856 * alloc.c: Check that resized vectors' lengths fit in fixnums.
17857 (header_size, word_size): New constants.
17858 (allocate_vectorlike): Don't check size overflow here.
17859 (allocate_vector): Check it here instead, since this is the only
17860 caller of allocate_vectorlike that could cause overflow.
17861 Check that the new vector's length is representable as a fixnum.
17862
17863 * fns.c (next_almost_prime): Don't return a multiple of 3 or 5.
17864 The previous code was bogus. For example, next_almost_prime (32)
17865 returned 39, which is undesirable as it is a multiple of 3; and
17866 next_almost_prime (24) returned 25, which is a multiple of 5 so
17867 why was the code bothering to check for multiples of 7?
17868
17869 * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length.
17870
17871 * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now.
17872
17873 Variadic C functions now count arguments with ptrdiff_t.
17874 This partly undoes my 2011-03-30 change, which replaced int with size_t.
17875 Back then I didn't know that the Emacs coding style prefers signed int.
17876 Also, in the meantime I found a few more instances where arguments
17877 were being counted with int, which may truncate counts on 64-bit
17878 machines, or EMACS_INT, which may be unnecessarily wide.
17879 * lisp.h (struct Lisp_Subr.function.aMANY)
17880 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
17881 Arg counts are now ptrdiff_t, not size_t.
17882 All variadic functions and their callers changed accordingly.
17883 (struct gcpro.nvars): Now size_t, not size_t. All uses changed.
17884 * bytecode.c (exec_byte_code): Check maxdepth for overflow,
17885 to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
17886 * callint.c (Fcall_interactively): Check arg count for overflow,
17887 to avoid potential buffer overrun. Use signed char, not 'int',
17888 for 'varies' array, so that we needn't bother to check its size
17889 calculation for overflow.
17890 * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
17891 * eval.c (apply_lambda):
17892 * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
17893 (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
17894 (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
17895
17896 * callint.c (Fcall_interactively): Don't use index var as event count.
17897
17898 * vm-limit.c (check_memory_limits): Fix incorrect extern function decls.
17899 * mem-limits.h (SIZE): Remove; no longer used.
17900
17901 * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works.
17902
17903 Remove unnecessary casts.
17904 * xterm.c (x_term_init):
17905 * xfns.c (x_set_border_pixel):
17906 * widget.c (create_frame_gcs): Remove casts to unsigned long etc.
17907 These aren't needed now that we assume ANSI C.
17908
17909 * sound.c (Fplay_sound_internal): Remove cast to unsigned long.
17910 It's more likely to cause problems (due to unsigned overflow)
17911 than to cure them.
17912
17913 * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts.
17914
17915 * unexelf.c (unexec): Don't assume BSS addr fits in unsigned.
17916
17917 * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned.
17918
17919 * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX.
17920
17921 * lisp.h (CHAR_TABLE_SET): Omit now-redundant test.
17922
17923 * lread.c (Fload): Don't compare a possibly-garbage time_t value.
17924
17925 GLYPH_CODE_FACE returns EMACS_INT, not int.
17926 * dispextern.h (merge_faces):
17927 * xfaces.c (merge_faces):
17928 * xdisp.c (get_next_display_element, next_element_from_display_vector):
17929 Don't assume EMACS_INT fits in int.
17930
17931 * character.h (CHAR_VALID_P): Remove unused parameter.
17932 * fontset.c, lisp.h, xdisp.c: All uses changed.
17933
17934 * editfns.c (Ftranslate_region_internal): Omit redundant test.
17935
17936 * fns.c (concat): Minor tuning based on overflow analysis.
17937 This doesn't fix any bugs. Use int to hold character, instead
17938 of constantly refetching from Emacs object. Use XFASTINT, not
17939 XINT, for value known to be a character. Don't bother comparing
17940 a single byte to 0400, as it's always less.
17941
17942 * floatfns.c (Fexpt):
17943 * fileio.c (make_temp_name): Omit unnecessary cast to unsigned.
17944
17945 * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT
17946 for characters.
17947
17948 * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives.
17949
17950 * data.c (Faset): If ARRAY is a string, check that NEWELT is a char.
17951 Without this fix, on a 64-bit host (aset S 0 4294967386) would
17952 incorrectly succeed when S was a string, because 4294967386 was
17953 truncated before it was used.
17954
17955 * chartab.c (Fchar_table_range): Use CHARACTERP to check range.
17956 Otherwise, an out-of-range integer could cause undefined behavior
17957 on a 64-bit host.
17958
17959 * composite.c: Use int, not EMACS_INT, for characters.
17960 (fill_gstring_body, composition_compute_stop_pos): Use int, not
17961 EMACS_INT, for values that are known to be in character range.
17962 This doesn't fix any bugs but is the usual style inside Emacs and
17963 may generate better code on 32-bit machines.
17964
17965 Make sure a 64-bit char is never passed to ENCODE_CHAR.
17966 This is for reasons similar to the recent CHAR_STRING fix.
17967 * charset.c (Fencode_char): Check that character arg is actually
17968 a character. Pass an int to ENCODE_CHAR.
17969 * charset.h (ENCODE_CHAR): Verify that the character argument is no
17970 wider than 'int', as a compile-time check to prevent future regressions
17971 in this area.
17972
17973 * character.c (char_string): Remove unnecessary casts.
17974
17975 Make sure a 64-bit char is never passed to CHAR_STRING.
17976 Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform,
17977 by silently ignoring the top 32 bits, allowing some values
17978 that were far too large to be valid characters.
17979 * character.h: Include <verify.h>.
17980 (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character
17981 arguments are no wider than unsigned, as a compile-time check
17982 to prevent future regressions in this area.
17983 * data.c (Faset):
17984 * editfns.c (Fchar_to_string, general_insert_function, Finsert_char)
17985 (Fsubst_char_in_region):
17986 * fns.c (concat):
17987 * xdisp.c (decode_mode_spec_coding):
17988 Adjust to CHAR_STRING's new requirement.
17989 * editfns.c (Finsert_char, Fsubst_char_in_region):
17990 * fns.c (concat): Check that character args are actually
17991 characters. Without this test, these functions did the wrong
17992 thing with wildly out-of-range values on 64-bit hosts.
17993
17994 Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts.
17995 These casts should not be needed on 32-bit hosts, either.
17996 * keyboard.c (read_char):
17997 * lread.c (Fload): Remove casts to unsigned.
17998
17999 * lisp.h (UNSIGNED_CMP): New macro.
18000 This fixes comparison bugs on 64-bit hosts.
18001 (ASCII_CHAR_P): Use it.
18002 * casefiddle.c (casify_object):
18003 * character.h (ASCII_BYTE_P, CHAR_VALID_P)
18004 (SINGLE_BYTE_CHAR_P, CHAR_STRING):
18005 * composite.h (COMPOSITION_ENCODE_RULE_VALID):
18006 * dispextern.h (FACE_FROM_ID):
18007 * keyboard.c (read_char): Use UNSIGNED_CMP.
18008
18009 * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t,
18010 not to EMACS_INT, to avoid GCC warning.
18011
18012 * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals.
18013
18014 * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast.
18015 The cast incorrectly truncated 64-bit byte offsets to 32 bits, and
18016 isn't needed on 32-bit machines.
18017
18018 * buffer.c (Fgenerate_new_buffer_name):
18019 Use EMACS_INT for count, not int.
18020 (advance_to_char_boundary): Return EMACS_INT, not int.
18021
18022 * data.c (Qcompiled_function): Now static.
18023
18024 * window.c (window_body_lines): Now static.
18025
18026 * image.c (gif_load): Rename local to avoid shadowing.
18027
18028 * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow.
18029 (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member.
18030 * alloc.c (make_save_value): Integer argument is now of type
18031 ptrdiff_t, not int.
18032 (mark_object): Use ptrdiff_t, not int.
18033 * lisp.h (pD): New macro.
18034 * print.c (print_object): Use it.
18035
18036 * alloc.c: Use EMACS_INT, not int, to count objects.
18037 (total_conses, total_markers, total_symbols, total_vector_size)
18038 (total_free_conses, total_free_markers, total_free_symbols)
18039 (total_free_floats, total_floats, total_free_intervals)
18040 (total_intervals, total_strings, total_free_strings):
18041 Now EMACS_INT, not int. All uses changed.
18042 (Fgarbage_collect): Compute overall total using a double, so that
18043 integer overflow is less likely to be a problem. Check for overflow
18044 when converting back to an integer.
18045 (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks)
18046 (n_vectors, n_symbol_blocks, n_marker_blocks): Remove.
18047 These were 'int' variables that could overflow on 64-bit hosts;
18048 they were never used, so remove them instead of repairing them.
18049 (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'.
18050 (inhibit_garbage_collection): Set gc_cons_threshold to max value.
18051 Previously, this ceilinged at INT_MAX, but that doesn't work on
18052 64-bit machines.
18053 (allocate_pseudovector): Don't use EMACS_INT when int would do.
18054
18055 * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int.
18056 (allocate_vectorlike): Check for ptrdiff_t overflow.
18057 (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT
18058 when a (possibly-narrower) signed value would do just as well.
18059 We prefer using signed arithmetic, to avoid comparison confusion.
18060
18061 * alloc.c: Catch some string size overflows that we were missing.
18062 (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0,
18063 for convenience in STRING_BYTES_MAX.
18064 (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h.
18065 The definition here is exact; the one in lisp.h was approximate.
18066 (allocate_string_data): Check for string overflow. This catches
18067 some instances we weren't catching before. Also, it catches
18068 size_t overflow on (unusual) hosts where SIZE_MAX <= min
18069 (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits
18070 and ptrdiff_t and EMACS_INT are both 64 bits.
18071
18072 * character.c, coding.c, doprnt.c, editfns.c, eval.c:
18073 All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND.
18074 * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX.
18075
18076 * character.c (string_escape_byte8): Fix nbytes/nchars typo.
18077
18078 * alloc.c (Fmake_string): Check for out-of-range init.
18079
18080 2011-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
18081
18082 * eval.c (Fdefvaralias): Also mark the target as variable-special-p.
18083
18084 2011-06-14 Jan Djärv <jan.h.d@swipnet.se>
18085
18086 * xfns.c (x_set_scroll_bar_default_width): Remove argument to
18087 xg_get_default_scrollbar_width.
18088
18089 * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3.
18090 (int_gtk_range_get_value): Move to the scroll bar part of the file.
18091 (style_changed_cb): Call update_theme_scrollbar_width and call
18092 x_set_scroll_bar_default_width and xg_frame_set_char_size for
18093 all frames (Bug#8505).
18094 (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505).
18095 Call gtk_window_set_resizable if HAVE_GTK3.
18096 (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width
18097 and height if HAVE_GTK3 (Bug#8505).
18098 (scroll_bar_width_for_theme): New variable.
18099 (update_theme_scrollbar_width): New function.
18100 (xg_get_default_scrollbar_width): Move code to
18101 update_theme_scrollbar_width, just return scroll_bar_width_for_theme.
18102 (xg_initialize): Call update_theme_scrollbar_width.
18103
18104 * gtkutil.h (xg_get_default_scrollbar_width): Remove argument.
18105
18106 * emacsgtkfixed.c, emacsgtkfixed.h: New files.
18107
18108 2011-06-12 Martin Rudalics <rudalics@gmx.at>
18109
18110 * frame.c (make_frame): Call other_buffer_safely instead of
18111 other_buffer.
18112
18113 * window.c (temp_output_buffer_show): Call display_buffer with
18114 second argument Vtemp_buffer_show_specifiers and reset latter
18115 immediately after the call.
18116 (Vtemp_buffer_show_specifiers): New variable.
18117 (auto_window_vscroll_p, next_screen_context_lines)
18118 (Vscroll_preserve_screen_position): Remove leading asterisks from
18119 doc-strings.
18120
18121 2011-06-12 Paul Eggert <eggert@cs.ucla.edu>
18122
18123 Fix minor problems found by GCC 4.6.0 static checking.
18124 * buffer.c (Qclone_number): Remove for now, as it's unused.
18125 (record_buffer, Funrecord_buffer): Rename local to avoid shadowing.
18126 (record_buffer): Remove unused local.
18127 * frame.c (other_visible_frames, frame_buffer_list): Now static.
18128 (set_frame_buffer_list): Remove; unused.
18129 * frame.h (other_visible_frames): Remove decl.
18130 * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF.
18131 * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls.
18132 (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only
18133 if HAVE_GPM.
18134 * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF.
18135 * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
18136 Define only if HAVE_GPM.
18137 * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static.
18138 (update_hints_inhibit): Remove; never set. All uses removed.
18139 * widgetprv.h (emacsFrameClassRec): Remove decl.
18140 * window.c (delete_deletable_window): Now returns void, since it
18141 wasn't returning anything.
18142 (compare_window_configurations): Remove unused locals.
18143 * xfns.c (x_set_scroll_bar_default_width): Remove unused locals.
18144 * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF.
18145 (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers
18146 the same widths as pointers. This follows up on the 2011-05-06 patch.
18147 * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID.
18148 * xterm.h: Likewise.
18149 (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF.
18150
18151 2011-06-12 Juanma Barranquero <lekktu@gmail.com>
18152
18153 * makefile.w32-in: Update dependencies.
18154 (LISP_H): Add lib/intprops.h.
18155
18156 2011-06-11 Chong Yidong <cyd@stupidchicken.com>
18157
18158 * image.c (gif_load): Add animation frame delay to the metadata.
18159 (syms_of_image): Use DEFSYM. New symbol `delay'.
18160
18161 2011-06-11 Martin Rudalics <rudalics@gmx.at>
18162
18163 * window.c (delete_deletable_window): Re-add.
18164 (Fset_window_configuration): Rewrite to handle dead buffers and
18165 consequently deletable windows.
18166 (window_tree, Fwindow_tree): Remove. Supply functionality in
18167 window.el.
18168 (compare_window_configurations): Simplify code.
18169
18170 2011-06-11 Andreas Schwab <schwab@linux-m68k.org>
18171
18172 * image.c (imagemagick_load_image): Fix type mismatch.
18173 (Fimagemagick_types): Likewise.
18174
18175 * window.h (replace_buffer_in_windows): Declare.
18176
18177 2011-06-11 Martin Rudalics <rudalics@gmx.at>
18178
18179 * buffer.c: New Lisp objects Qbuffer_list_update_hook and
18180 Qclone_number. Remove external declaration of Qdelete_window.
18181 (Fbuffer_list): Rewrite doc-string. Minor restructuring of
18182 code.
18183 (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer):
18184 Run Qbuffer_list_update_hook if allowed.
18185 (Fother_buffer): Rewrite doc-string. Major rewrite for new
18186 buffer list implementation.
18187 (other_buffer_safely): New function.
18188 (Fkill_buffer): Replace call to replace_buffer_in_all_windows by
18189 calls to replace_buffer_in_windows and
18190 replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook
18191 if allowed.
18192 (record_buffer): Inhibit quitting and rewrite using quittable
18193 functions. Run Qbuffer_list_update_hook if allowed.
18194 (Frecord_buffer, Funrecord_buffer): New functions.
18195 (switch_to_buffer_1, Fswitch_to_buffer): Remove.
18196 Move switch-to-buffer to window.el.
18197 (bury-buffer): Move to window.el.
18198 (Vbuffer_list_update_hook): New variable.
18199
18200 * lisp.h (other_buffer_safely): Add prototype in buffer.c
18201 section.
18202
18203 * window.h (resize_frame_windows): Move up in code.
18204 (Fwindow_frame): Remove EXFUN.
18205 (replace_buffer_in_all_windows): Remove prototype.
18206 (replace_buffer_in_windows_safely): Add prototype.
18207
18208 * window.c: Declare Qdelete_window static again. Move down
18209 declaration of select_count.
18210 (Fnext_window, Fprevious_window): Rewrite doc-strings.
18211 (Fother_window): Move to window.el.
18212 (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER
18213 cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case.
18214 (Fdelete_windows_on, Freplace_buffer_in_windows): Move to
18215 window.el.
18216 (replace_buffer_in_windows): Implement by calling
18217 Qreplace_buffer_in_windows.
18218 (replace_buffer_in_all_windows): Remove with some functionality
18219 moved into replace_buffer_in_windows_safely.
18220 (replace_buffer_in_windows_safely): New function.
18221 (select_window_norecord, select_frame_norecord): Move in front
18222 of run_window_configuration_change_hook. Remove now obsolete
18223 declarations.
18224 (Fset_window_buffer): Rewrite doc-string.
18225 Call Qrecord_window_buffer.
18226 (keys_of_window): Move binding for other-window to window.el.
18227
18228 2011-06-11 Chong Yidong <cyd@stupidchicken.com>
18229
18230 * dispextern.h (struct image): Replace data member, whose int_val
18231 and ptr_val fields were not used by anything, with a single
18232 lisp_val object.
18233
18234 * image.c (Fimage_metadata, make_image, mark_image, tiff_load)
18235 (gif_clear_image, gif_load, imagemagick_load_image)
18236 (gs_clear_image, gs_load): Callers changed.
18237
18238 2011-06-10 Paul Eggert <eggert@cs.ucla.edu>
18239
18240 * buffer.h: Include <time.h>, for time_t.
18241 Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra.
18242
18243 Fix minor problems found by static checking.
18244
18245 * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't.
18246
18247 Make identifiers static if they are not used in other modules.
18248 * data.c (Qcompiled_function, Qframe, Qvector):
18249 * image.c (QimageMagick, Qsvg):
18250 * minibuf.c (Qmetadata):
18251 * window.c (resize_window_check, resize_root_window): Now static.
18252 * window.h (resize_window_check, resize_root_window): Remove decls.
18253
18254 * window.c (window_deletion_count, delete_deletable_window):
18255 Remove; unused.
18256 (window_body_lines): Now static.
18257 (Fdelete_other_windows_internal): Mark vars as initialized.
18258 Make sure 'resize_failed' is initialized.
18259 (run_window_configuration_change_hook): Rename local to avoid shadowing.
18260 (resize_window_apply): Remove unused local.
18261 * window.h (delete_deletable_window): Remove decl.
18262
18263 * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing.
18264 (imagemagick_load_image): Fix pointer signedness problem by changing
18265 last arg from unsigned char * to char *. All uses changed.
18266 Also, fix a local for similar reasons.
18267 Remove unused locals. Remove locals to avoid shadowing.
18268 (fn_rsvg_handle_free): Remove; unused.
18269 (svg_load, svg_load_image): Fix pointer signedness problem.
18270 (imagemagick_load_image): Don't use garbage pointer image_wand.
18271
18272 * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals.
18273
18274 2011-06-10 Chong Yidong <cyd@stupidchicken.com>
18275
18276 * image.c (gif_load): Fix omitted cast error introduced by
18277 2011-06-06 change.
18278
18279 2011-06-10 Martin Rudalics <rudalics@gmx.at>
18280
18281 * window.h (resize_proportionally, orig_total_lines)
18282 (orig_top_line): Remove from window structure.
18283 (set_window_height, set_window_width, change_window_heights)
18284 (Fdelete_window): Remove prototypes.
18285 (resize_frame_windows): Remove duplicate declaration.
18286
18287 2011-06-10 Eli Zaretskii <eliz@gnu.org>
18288
18289 * window.h (resize_frame_windows, resize_window_check)
18290 (delete_deletable_window, resize_root_window)
18291 (resize_frame_windows): Declare prototypes.
18292
18293 * window.c (resize_window_apply): Make definition be "static" to
18294 match the prototype.
18295
18296 2011-06-10 Martin Rudalics <rudalics@gmx.at>
18297
18298 * window.c: Remove declarations of Qwindow_size_fixed,
18299 window_min_size_1, window_min_size_2, window_min_size,
18300 size_window, window_fixed_size_p, enlarge_window, delete_window.
18301 Remove static from declaration of Qdelete_window, it's
18302 temporarily needed by Fbury_buffer.
18303 (replace_window): Don't assign orig_top_line and
18304 orig_total_lines.
18305 (Fdelete_window, delete_window): Remove. Window deletion is
18306 handled by window.el.
18307 (window_loop): Remove DELETE_OTHER_WINDOWS case.
18308 Replace Fdelete_window calls with calls to Qdelete_window.
18309 (Fdelete_other_windows): Remove. Deleting other windows is
18310 handled by window.el.
18311 (window_fixed_size_p): Remove. Fixed-sizeness of windows is
18312 handled in window.el.
18313 (window_min_size_2, window_min_size_1, window_min_size): Remove.
18314 Window minimum sizes are handled in window.el.
18315 (shrink_windows, size_window, set_window_height)
18316 (set_window_width, change_window_heights, window_height)
18317 (window_width, CURBEG, CURSIZE, enlarge_window)
18318 (adjust_window_trailing_edge, Fadjust_window_trailing_edge)
18319 (Fenlarge_window, Fshrink_window): Remove. Window resizing is
18320 handled in window.el.
18321 (make_dummy_parent): Rename to make_parent_window and give it a
18322 second argument horflag.
18323 (make_window): Don't set resize_proportionally any more.
18324 (Fsplit_window): Remove. Windows are split in window.el.
18325 (save_restore_action, save_restore_orig_size)
18326 (shrink_window_lowest_first, save_restore_orig_size): Remove.
18327 Resize mini windows in window.el.
18328 (grow_mini_window, shrink_mini_window): Implement by calling
18329 Qresize_root_window_vertically, resize_window_check and
18330 resize_window_apply.
18331 (saved_window, Fset_window_configuration, save_window_save):
18332 Do not handle orig_top_line, orig_total_lines, and
18333 resize_proportionally.
18334 (window_min_height, window_min_width): Move to window.el.
18335 (keys_of_window): Move bindings for delete-other-windows,
18336 split-window, delete-window and enlarge-window to window.el.
18337
18338 * buffer.c: Temporarily extern Qdelete_window.
18339 (Fbury_buffer): Temporarily call Qdelete_window instead of
18340 Fdelete_window (Fbury_buffer will move to window.el soon).
18341
18342 * frame.c (set_menu_bar_lines_1): Remove code handling
18343 orig_top_line and orig_total_lines.
18344
18345 * dispnew.c (adjust_frame_glyphs_initially): Don't use
18346 set_window_height but set heights directly.
18347 (change_frame_size_1): Use resize_frame_windows.
18348
18349 * xdisp.c (init_xdisp): Don't use set_window_height but set
18350 heights directly.
18351
18352 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
18353 Use resize_frame_windows instead of change_window_heights and run
18354 run_window_configuration_change_hook.
18355
18356 * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows
18357 instead of change_window_heights and run
18358 run_window_configuration_change_hook.
18359
18360 2011-06-09 Martin Rudalics <rudalics@gmx.at>
18361
18362 * window.c (replace_window): Rename second argument REPLACEMENT to
18363 NEW. New third argument SETFLAG. Rewrite.
18364 (delete_window, make_dummy_parent): Call replace_window with
18365 third argument 1.
18366 (window_list_1): Move down in code.
18367 (run_window_configuration_change_hook): Move set_buffer part
18368 before select_frame_norecord part in order to unwind correctly.
18369 Rename count1 to count.
18370 (recombine_windows, delete_deletable_window, resize_root_window)
18371 (Fdelete_other_windows_internal)
18372 (Frun_window_configuration_change_hook, make_parent_window)
18373 (resize_window_check, resize_window_apply, Fresize_window_apply)
18374 (resize_frame_windows, Fsplit_window_internal)
18375 (Fdelete_window_internal, Fresize_mini_window_internal):
18376 New functions.
18377 (syms_of_window): New variables Vwindow_splits and Vwindow_nest.
18378
18379 2011-06-08 Martin Rudalics <rudalics@gmx.at>
18380
18381 * window.h (window): Add some new members to window structure -
18382 normal_lines, normal_cols, new_total, new_normal, clone_number,
18383 splits, nest, prev_buffers, next_buffers.
18384 (WINDOW_TOTAL_SIZE): Move here from window.c.
18385 (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here.
18386
18387 * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p):
18388 Remove.
18389 (make_dummy_parent): Set new members of windows structure.
18390 (make_window): Move down in code. Handle new members of window
18391 structure.
18392 (Fwindow_clone_number, Fwindow_splits, Fset_window_splits)
18393 (Fwindow_nest, Fset_window_nest, Fwindow_new_total)
18394 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers)
18395 (Fset_window_prev_buffers, Fwindow_next_buffers)
18396 (Fset_window_next_buffers, Fset_window_clone_number):
18397 New functions.
18398 (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start)
18399 (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p):
18400 Doc-string fixes.
18401 (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter):
18402 Argument WINDOW can be now internal window too.
18403 (Fwindow_use_time): Move up in code.
18404 (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES.
18405 Rewrite doc-string.
18406 (Fset_window_configuration, saved_window)
18407 (Fcurrent_window_configuration, save_window_save): Handle new
18408 members of window structure.
18409 (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH)
18410 (MIN_SAFE_WINDOW_HEIGHT): Move to window.h.
18411 (syms_of_window): New Lisp objects Qrecord_window_buffer,
18412 Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows,
18413 Qget_mru_window, Qresize_root_window,
18414 Qresize_root_window_vertically, Qsafe, Qabove, Qbelow,
18415 Qauto_buffer_name; staticpro them.
18416
18417 2011-06-07 Martin Rudalics <rudalics@gmx.at>
18418
18419 * window.c (Fwindow_total_size, Fwindow_left_column)
18420 (Fwindow_top_line, window_body_lines, Fwindow_body_size)
18421 (Fwindow_list_1): New functions.
18422 (window_box_text_cols): Replace with window_body_cols.
18423 (Fwindow_width, Fscroll_left, Fscroll_right):
18424 Use window_body_cols instead of window_box_text_cols.
18425 (delete_window, Fset_window_configuration):
18426 Call delete_all_subwindows with window as argument.
18427 (delete_all_subwindows): Take a window as argument and not a
18428 structure. Rewrite.
18429 (window_loop): Remove handling of GET_LRU_WINDOW and
18430 GET_LARGEST_WINDOW.
18431 (Fget_lru_window, Fget_largest_window): Move to window.el.
18432
18433 * window.h: Extern window_body_cols instead of
18434 window_box_text_cols. delete_all_subwindows now takes a
18435 Lisp_Object as argument.
18436
18437 * indent.c (compute_motion, Fcompute_motion):
18438 Use window_body_cols instead of window_box_text_cols.
18439
18440 * frame.c (delete_frame): Call delete_all_subwindows with root
18441 window as argument.
18442
18443 2011-06-07 Daniel Colascione <dan.colascione@gmail.com>
18444
18445 * fns.c (Fputhash): Document return value.
18446
18447 2011-06-06 Chong Yidong <cyd@stupidchicken.com>
18448
18449 * image.c (gif_load): Implement gif89a spec "no disposal" method.
18450
18451 2011-06-06 Paul Eggert <eggert@cs.ucla.edu>
18452
18453 Cons<->int and similar integer overflow fixes (Bug#8794).
18454
18455 Check for overflow when converting integer to cons and back.
18456 * charset.c (Fdefine_charset_internal, Fdecode_char):
18457 Use cons_to_unsigned to catch overflow.
18458 (Fencode_char): Use INTEGER_TO_CONS.
18459 * composite.h (LGLYPH_CODE): Use cons_to_unsigned.
18460 (LGLYPH_SET_CODE): Use INTEGER_TO_CONS.
18461 * data.c (long_to_cons, cons_to_long): Remove.
18462 (cons_to_unsigned, cons_to_signed): New functions.
18463 These signal an error for invalid or out-of-range values.
18464 * dired.c (Ffile_attributes): Use INTEGER_TO_CONS.
18465 * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER.
18466 * font.c (Ffont_variation_glyphs):
18467 * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS.
18468 * lisp.h: Include <intprops.h>.
18469 (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros.
18470 (cons_to_signed, cons_to_unsigned): New decls.
18471 (long_to_cons, cons_to_long): Remove decls.
18472 * undo.c (record_first_change): Use INTEGER_TO_CONS.
18473 (Fprimitive_undo): Use CONS_TO_INTEGER.
18474 * xfns.c (Fx_window_property): Likewise.
18475 * xselect.c: Include <limits.h>.
18476 (x_own_selection, selection_data_to_lisp_data):
18477 Use INTEGER_TO_CONS.
18478 (x_handle_selection_request, x_handle_selection_clear)
18479 (x_get_foreign_selection, Fx_disown_selection_internal)
18480 (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER.
18481 (lisp_data_to_selection_data): Use cons_to_unsigned.
18482 (x_fill_property_data): Use cons_to_signed.
18483 Report values out of range.
18484
18485 Check for buffer and string overflow more precisely.
18486 * buffer.h (BUF_BYTES_MAX): New macro.
18487 * lisp.h (STRING_BYTES_MAX): New macro.
18488 * alloc.c (Fmake_string):
18489 * character.c (string_escape_byte8):
18490 * coding.c (coding_alloc_by_realloc):
18491 * doprnt.c (doprnt):
18492 * editfns.c (Fformat):
18493 * eval.c (verror):
18494 Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM,
18495 since they may not be the same number.
18496 * editfns.c (Finsert_char):
18497 * fileio.c (Finsert_file_contents):
18498 Likewise for BUF_BYTES_MAX.
18499
18500 * image.c: Use ptrdiff_t, not int, for sizes.
18501 (slurp_file): Switch from int to ptrdiff_t.
18502 All uses changed.
18503 (slurp_file): Check that file size fits in both size_t (for
18504 malloc) and ptrdiff_t (for sanity and safety).
18505
18506 * fileio.c (Fverify_visited_file_modtime): Avoid time overflow
18507 if b->modtime has its maximal value.
18508
18509 * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits.
18510
18511 Don't assume time_t can fit into int.
18512 * buffer.h (struct buffer.modtime): Now time_t, not int.
18513 * fileio.c (Fvisited_file_modtime): No need for time_t cast now.
18514 * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value.
18515
18516 Minor fixes for signed vs unsigned integers.
18517 * character.h (MAYBE_UNIFY_CHAR):
18518 * charset.c (maybe_unify_char):
18519 * keyboard.c (read_char, reorder_modifiers):
18520 XINT -> XFASTINT, since the integer must be nonnegative.
18521 * ftfont.c (ftfont_spec_pattern):
18522 * keymap.c (access_keymap, silly_event_symbol_error):
18523 XUINT -> XFASTINT, since the integer must be nonnegative.
18524 (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT,
18525 since it makes no difference and we prefer signed.
18526 * keyboard.c (record_char): Use XUINT when all the neighbors do.
18527 (access_keymap): NATNUMP -> INTEGERP, since the integer must be
18528 nonnegative.
18529
18530 2011-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
18531
18532 * window.h (Fwindow_frame): Declare.
18533
18534 2011-06-06 Paul Eggert <eggert@cs.ucla.edu>
18535
18536 * alloc.c: Simplify handling of large-request failures (Bug#8800).
18537 (SPARE_MEMORY): Always define.
18538 (LARGE_REQUEST): Remove.
18539 (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST.
18540
18541 2011-06-06 Martin Rudalics <rudalics@gmx.at>
18542
18543 * lisp.h: Move EXFUNS for Fframe_root_window,
18544 Fframe_first_window and Fset_frame_selected_window to window.h.
18545
18546 * window.h: Move EXFUNS for Fframe_root_window,
18547 Fframe_first_window and Fset_frame_selected_window here from
18548 lisp.h.
18549
18550 * frame.c (Fwindow_frame, Fframe_first_window)
18551 (Fframe_root_window, Fframe_selected_window)
18552 (Fset_frame_selected_window): Move to window.c.
18553 (Factive_minibuffer_window): Move to minibuf.c.
18554 (Fother_visible_frames_p): New function.
18555
18556 * minibuf.c (Factive_minibuffer_window): Move here from frame.c.
18557
18558 * window.c (decode_window, decode_any_window): Move up in code.
18559 (Fwindowp, Fwindow_live_p): Rewrite doc-strings.
18560 (inhibit_frame_unsplittable): Remove unused variable.
18561 (Fwindow_buffer): Move up and rewrite doc-string.
18562 (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next)
18563 (Fwindow_prev): New functions.
18564 (Fwindow_frame): Move here from frame.c. Accept any window as
18565 argument.
18566 (Fframe_root_window, Fframe_first_window)
18567 (Fframe_selected_window): Move here from frame.c. Accept frame
18568 or arbitrary window as argument. Update doc-strings.
18569 (Fminibuffer_window): Move up in code.
18570 (Fwindow_minibuffer_p): Move up in code and simplify.
18571 (Fset_frame_selected_window): Move here from frame.c.
18572 Marginal rewrite.
18573 (Fselected_window, select_window, Fselect_window): Move up in
18574 code. Minor doc-string fixes.
18575
18576 2011-06-06 Paul Eggert <eggert@cs.ucla.edu>
18577
18578 * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800).
18579 Do not assume that spare memory exists; that assumption is valid
18580 only if SYSTEM_MALLOC.
18581 (LARGE_REQUEST): New macro, so that the issue of large requests
18582 is separated from the issue of spare memory.
18583
18584 2011-06-05 Andreas Schwab <schwab@linux-m68k.org>
18585
18586 * editfns.c (Fformat): Correctly handle zero flag with hexadecimal
18587 format. (Bug#8806)
18588
18589 * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning.
18590
18591 * xfns.c (x_set_scroll_bar_default_width): Move declarations
18592 before statements.
18593
18594 2011-06-05 Jan Djärv <jan.h.d@swipnet.se>
18595
18596 * gtkutil.c (xg_get_default_scrollbar_width): New function.
18597
18598 * gtkutil.h: Declare xg_get_default_scrollbar_width.
18599
18600 * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get
18601 min width by calling x_set_scroll_bar_default_width (Bug#8505).
18602
18603 2011-06-05 Juanma Barranquero <lekktu@gmail.com>
18604
18605 * xdisp.c (single_display_spec_intangible_p): Remove declaration.
18606
18607 2011-06-04 Chong Yidong <cyd@stupidchicken.com>
18608
18609 * xselect.c (x_clipboard_manager_save): Remove redundant arg.
18610 (x_clipboard_manager_save): Add return value.
18611 (x_clipboard_manager_error_1, x_clipboard_manager_error_2):
18612 New error handlers.
18613 (x_clipboard_manager_save_frame, x_clipboard_manager_save_all):
18614 Obey Vx_select_enable_clipboard_manager. Catch errors in
18615 x_clipboard_manager_save (Bug#8779).
18616 (Vx_select_enable_clipboard_manager): New variable.
18617 (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790).
18618
18619 2011-06-04 Dan Nicolaescu <dann@ics.uci.edu>
18620
18621 * emacs.c (main): Warn when starting a GTK emacs in daemon mode.
18622
18623 2011-06-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
18624
18625 * fringe.c (update_window_fringes): Don't update overlay arrow bitmap
18626 in the current matrix if keep_current_p is non-zero.
18627
18628 2011-06-04 Eli Zaretskii <eliz@gnu.org>
18629
18630 * bidi.c (bidi_level_of_next_char): Fix last change.
18631
18632 2011-06-03 Eli Zaretskii <eliz@gnu.org>
18633
18634 Support bidi reordering of text covered by display properties.
18635
18636 * bidi.c (bidi_copy_it): Use offsetof instead of emulating it.
18637 (bidi_fetch_char, bidi_fetch_char_advance): New functions.
18638 (bidi_cache_search, bidi_cache_iterator_state)
18639 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
18640 (bidi_level_of_next_char, bidi_move_to_visually_next):
18641 Support character positions inside a run of characters covered by a
18642 display string.
18643 (bidi_paragraph_init, bidi_resolve_explicit_1)
18644 (bidi_level_of_next_char): Call bidi_fetch_char and
18645 bidi_fetch_char_advance instead of FETCH_CHAR and
18646 FETCH_CHAR_ADVANCE.
18647 (bidi_init_it): Initialize new members.
18648 (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro
18649 definitions.
18650 (bidi_explicit_dir_char): Lookup character type in bidi_type_table,
18651 instead of using explicit *_CHAR codes.
18652 (bidi_resolve_explicit, bidi_resolve_weak):
18653 Use FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of
18654 bidirectional text is supported only in multibyte buffers.
18655 (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
18656 it to initialize the frame_window_p member of struct bidi_it.
18657 (bidi_cache_iterator_state, bidi_resolve_explicit_1)
18658 (bidi_resolve_explicit, bidi_resolve_weak)
18659 (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if
18660 bidi_it->nchars is non-positive.
18661 (bidi_level_of_next_char): Don't try to lookup the cache for the
18662 next/previous character if nothing is cached there yet, or if we
18663 were just reseat()'ed to a new position.
18664
18665 * xdisp.c (set_cursor_from_row): Set start and stop points
18666 according to the row's direction when priming the loop that looks
18667 for the glyph on which to display cursor.
18668 (single_display_spec_intangible_p): Function deleted.
18669 (display_prop_intangible_p): Reimplement to call
18670 handle_display_spec instead of single_display_spec_intangible_p.
18671 Accept 3 additional arguments needed by handle_display_spec.
18672 This fixes incorrect cursor motion across display property with complex
18673 values: lists, `(when COND...)' forms, etc.
18674 (single_display_spec_string_p): Support property values that are
18675 lists with the argument STRING its top-level element.
18676 (display_prop_string_p): Fix the condition for processing a
18677 property that is a list to be consistent with handle_display_spec.
18678 (handle_display_spec): New function, refactored from the
18679 last portion of handle_display_prop.
18680 (compute_display_string_pos): Accept additional argument
18681 FRAME_WINDOW_P. Call handle_display_spec to determine whether the
18682 value of a `display' property is a "replacing spec".
18683 (handle_single_display_spec): Accept 2 additional arguments BUFPOS
18684 and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from
18685 the display property, but just return a value indicating whether
18686 the display property will replace the characters it covers.
18687 (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
18688 frame_window_p members of struct bidi_it.
18689 (compute_display_string_pos, compute_display_string_end):
18690 New functions.
18691 (push_it): Accept second argument POSITION, where pop_it should
18692 jump to continue iteration.
18693 (reseat_1): Initialize bidi_it.disp_pos.
18694
18695 * keyboard.c (adjust_point_for_property): Adjust the call to
18696 display_prop_intangible_p to its new signature.
18697
18698 * dispextern.h (struct bidi_it): New member frame_window_p.
18699 (bidi_init_it): Update prototypes.
18700 (display_prop_intangible_p): Update prototype.
18701 (compute_display_string_pos, compute_display_string_end):
18702 Declare prototypes.
18703 (struct bidi_it): New members nchars and disp_pos. ch_len is now
18704 EMACS_INT.
18705
18706 2011-06-02 Paul Eggert <eggert@cs.ucla.edu>
18707
18708 Malloc failure behavior now depends on size of allocation.
18709 * alloc.c (buffer_memory_full, memory_full): New arg NBYTES.
18710 * lisp.h: Change signatures accordingly.
18711 * alloc.c, buffer.c, editfns.c, menu.c, minibuf.c, xterm.c:
18712 All callers changed. (Bug#8762)
18713
18714 * gnutls.c: Use Emacs's memory allocators.
18715 Without this change, the gnutls library would invoke malloc etc.
18716 directly, which causes problems on non-SYNC_INPUT hosts, and which
18717 runs afoul of improving memory_full behavior. (Bug#8761)
18718 (fn_gnutls_global_set_mem_functions): New macro or function pointer.
18719 (emacs_gnutls_global_init): Use it to specify xmalloc, xrealloc,
18720 xfree instead of the default malloc, realloc, free.
18721 (Fgnutls_boot): No need to check for memory allocation failure,
18722 since xmalloc does that for us.
18723
18724 Remove arbitrary limit of 2**31 entries in hash tables. (Bug#8771)
18725 * category.c (hash_get_category_set):
18726 * ccl.c (ccl_driver):
18727 * charset.c (Fdefine_charset_internal):
18728 * charset.h (struct charset.hash_index):
18729 * composite.c (get_composition_id, gstring_lookup_cache)
18730 (composition_gstring_put_cache):
18731 * composite.h (struct composition.hash_index):
18732 * dispextern.h (struct image.hash):
18733 * fns.c (next_almost_prime, larger_vector, cmpfn_eql)
18734 (cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
18735 (hashfn_equal, hashfn_user_defined, make_hash_table)
18736 (maybe_resize_hash_table, hash_lookup, hash_put)
18737 (hash_remove_from_table, hash_clear, sweep_weak_table, SXHASH_COMBINE)
18738 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector)
18739 (Fsxhash, Fgethash, Fputhash, Fmaphash):
18740 * image.c (make_image, search_image_cache, lookup_image)
18741 (xpm_put_color_table_h):
18742 * lisp.h (struct Lisp_Hash_Table):
18743 * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
18744 * print.c (print): Use 'EMACS_UINT' and 'EMACS_INT'
18745 for hashes and hash indexes, instead of 'unsigned' and 'int'.
18746 * alloc.c (allocate_vectorlike):
18747 Check for overflow in vector size calculations.
18748 * ccl.c (ccl_driver):
18749 Check for overflow when converting EMACS_INT to int.
18750 * fns.c, image.c: Remove unnecessary static decls that would otherwise
18751 need to be updated by these changes.
18752 * fns.c (make_hash_table, maybe_resize_hash_table):
18753 Check for integer overflow with large hash tables.
18754 (make_hash_table, maybe_resize_hash_table, Fmake_hash_table):
18755 Prefer the faster XFLOAT_DATA to XFLOATINT where either will do.
18756 (SXHASH_REDUCE): New macro.
18757 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector):
18758 Use it instead of discarding useful hash info with large hash values.
18759 (sxhash_float): New function.
18760 (sxhash): Use it. No more need for "& INTMASK" due to above changes.
18761 * lisp.h (FIXNUM_BITS): New macro, useful for SXHASH_REDUCE etc.
18762 (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK):
18763 Rewrite to use FIXNUM_BITS, as this simplifies things.
18764 (next_almost_prime, larger_vector, sxhash, hash_lookup, hash_put):
18765 Adjust signatures to match updated version of code.
18766 (consing_since_gc): Now EMACS_INT, since a single hash table can
18767 use more than INT_MAX bytes.
18768
18769 2011-06-01 Dan Nicolaescu <dann@ics.uci.edu>
18770
18771 Make it possible to build with GCC-4.6+ -O2 -flto.
18772
18773 * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE.
18774
18775 2011-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
18776
18777 * minibuf.c (get_minibuffer, read_minibuf_unwind):
18778 Call minibuffer-inactive-mode.
18779
18780 2011-05-31 Juanma Barranquero <lekktu@gmail.com>
18781
18782 * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)):
18783 Update dependencies.
18784
18785 2011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
18786
18787 * data.c (init_data): Remove code for UTS, this system is not
18788 supported anymore.
18789
18790 2011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
18791
18792 Don't force ./temacs to start in terminal mode.
18793
18794 * frame.c (make_initial_frame): Initialize faces in all cases, not
18795 only when CANNOT_DUMP is defined.
18796 * dispnew.c (init_display): Remove CANNOT_DUMP condition.
18797
18798 2011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
18799
18800 * dispnew.c (add_window_display_history): Use const for the string
18801 pointer. Remove declaration, not needed.
18802
18803 2011-05-31 Paul Eggert <eggert@cs.ucla.edu>
18804
18805 Use 'inline', not 'INLINE'.
18806 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00914.html>
18807 * alloc.c, fontset.c (INLINE): Remove.
18808 * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
18809 * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
18810 * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
18811 * gmalloc.c (register_heapinfo): Use inline unconditionally.
18812 * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
18813
18814 2011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
18815
18816 Make it possible to run ./temacs.
18817
18818 * callproc.c (set_initial_environment): Remove CANNOT_DUMP code,
18819 syms_of_callproc does the same thing. Remove test for
18820 "initialized", do it in the caller.
18821 * emacs.c (main): Avoid calling set_initial_environment when dumping.
18822
18823 2011-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
18824
18825 * minibuf.c (Finternal_complete_buffer): Return `category' metadata.
18826 (read_minibuf): Use get_minibuffer.
18827 (syms_of_minibuf): Use DEFSYM.
18828 (Qmetadata): New var.
18829 * data.c (Qbuffer): Don't make it static.
18830 (syms_of_data): Use DEFSYM.
18831
18832 2011-05-31 Paul Eggert <eggert@cs.ucla.edu>
18833
18834 * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751)
18835 (CCL_CODE_MIN): New macro.
18836
18837 2011-05-30 Paul Eggert <eggert@cs.ucla.edu>
18838
18839 * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests.
18840
18841 * eval.c (Qdebug): Now static.
18842 * lisp.h (Qdebug): Remove decl. This reverts a part of the
18843 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of
18844 2011-04-14T06:48:41Z!eggert@cs.ucla.edu.
18845
18846 2011-05-29 Chong Yidong <cyd@stupidchicken.com>
18847
18848 * image.c: Various fixes to ImageMagick code comments.
18849 (Fimagemagick_types): Doc fix.
18850
18851 2011-05-29 Paul Eggert <eggert@cs.ucla.edu>
18852
18853 Minor fixes prompted by GCC 4.6.0 warnings.
18854
18855 * xselect.c (converted_selections, conversion_fail_tag): Now static.
18856
18857 * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h".
18858 (x_clipboard_manager_save_all): Move extern decl to ...
18859 * xterm.h: ... here, so that it can be checked for consistency.
18860
18861 2011-05-29 Chong Yidong <cyd@stupidchicken.com>
18862
18863 * xselect.c (x_clipboard_manager_save_frame)
18864 (x_clipboard_manager_save_all): New functions.
18865 (Fx_clipboard_manager_save): Lisp function deleted.
18866
18867 * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all.
18868 * frame.c (delete_frame): Call x_clipboard_manager_save_frame.
18869
18870 * xterm.h: Update prototype.
18871
18872 2011-05-28 William Xu <william.xwl@gmail.com>
18873
18874 * nsterm.m (ns_term_shutdown): Synchronize user defaults before
18875 exiting (Bug#8239).
18876
18877 2011-05-28 Jim Meyering <meyering@redhat.com>
18878
18879 Avoid a sign-extension bug in crypto_hash_function.
18880 * fns.c (to_uchar): Define.
18881 (crypto_hash_function): Use it to convert some newly-signed
18882 variables to unsigned, to avoid sign-extension bugs. For example,
18883 without this change, (md5 "truc") would evaluate to
18884 45723a2aff78ff4fff7fff1114760e62 rather than the expected
18885 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in
18886 https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html.
18887
18888 2011-05-27 Paul Eggert <eggert@cs.ucla.edu>
18889
18890 Integer overflow fixes.
18891
18892 * dbusbind.c: Serial number integer overflow fixes.
18893 (CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
18894 (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
18895 to hold a serial number that is too large for a fixnum.
18896 (Fdbus_method_return_internal, Fdbus_method_error_internal):
18897 Check for serial numbers out of range. Decode any serial number
18898 that was so large that it became a float. (Bug#8722)
18899
18900 * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
18901 (Fdbus_call_method, Fdbus_call_method_asynchronously):
18902 Use XFASTINT rather than XUINT when numbers are nonnegative.
18903 (xd_append_arg, Fdbus_method_return_internal):
18904 (Fdbus_method_error_internal): Likewise. Also, for unsigned
18905 arguments, check that Lisp number is nonnegative, rather than
18906 silently wrapping negative numbers around. (Bug#8722)
18907 (xd_read_message_1): Don't assume dbus_uint32_t can fit in int.
18908 (Bug#8722)
18909
18910 * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT.
18911
18912 * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'.
18913
18914 ccl: Add integer overflow checks.
18915 * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
18916 (IN_INT_RANGE): New macros.
18917 (ccl_driver): Use them to check for integer overflow when
18918 decoding a CCL program. Many of the new checks are whether XINT (x)
18919 fits in int; it doesn't always, on 64-bit hosts. The new version
18920 doesn't catch all possible integer overflows, but it's an
18921 improvement. (Bug#8719)
18922
18923 * alloc.c (make_event_array): Use XINT, not XUINT.
18924 There's no need for unsigned here.
18925
18926 * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t
18927 This follows up to the 2011-05-06 change that substituted uintptr_t
18928 for EMACS_INT. This case wasn't caught back then.
18929
18930 Rework Fformat to avoid integer overflow issues.
18931 * editfns.c: Include <float.h> unconditionally, as it's everywhere
18932 now (part of C89). Include <verify.h>.
18933 (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed.
18934 (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns.
18935 (Fformat): Avoid the prepass trying to compute sizes; it was only
18936 approximate and thus did not catch overflow reliably. Instead, walk
18937 through the format just once, formatting and computing sizes as we go,
18938 checking for integer overflow at every step, and allocating a larger
18939 buffer as needed. Keep track separately whether the format is
18940 multibyte. Keep only the most-recently calculated precision, rather
18941 than them all. Record whether each argument has been converted to
18942 string. Use EMACS_INT, not int, for byte and char and arg counts.
18943 Support field widths and precisions larger than INT_MAX. Avoid
18944 sprintf's undefined behavior with conversion specifications such as %#d
18945 and %.0c. Fix bug with strchr succeeding on '\0' when looking for
18946 flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when
18947 formatting out-of-range floating point numbers with int
18948 formats. (Bug#8668)
18949
18950 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
18951
18952 * data.c: Avoid integer truncation in expressions involving floats.
18953 * data.c: Include <intprops.h>.
18954 (arith_driver): When there's an integer overflow in an expression
18955 involving floating point, convert the integers to floating point
18956 so that the resulting value does not suffer from catastrophic
18957 integer truncation. For example, on a 64-bit host (* 4
18958 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
18959 Do not rely on undefined behavior after integer overflow.
18960
18961 merge count_size_as_multibyte, parse_str_to_multibyte
18962 * character.c, character.h (count_size_as_multibyte):
18963 Rename from parse_str_to_multibyte; all uses changed.
18964 Check for integer overflow.
18965 * insdel.c, lisp.h (count_size_as_multibyte): Remove,
18966 since it's now a duplicate of the other. This is more of
18967 a character than a buffer op, so better that it's in character.c.
18968 * fns.c, print.c: Adjust to above changes.
18969
18970 2011-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
18971
18972 * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup.
18973
18974 2011-05-27 Paul Eggert <eggert@cs.ucla.edu>
18975
18976 * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
18977 (x_handle_selection_request, frame_for_x_selection): Remove unused vars.
18978 (x_clipboard_manager_save): Now static.
18979 (Fx_clipboard_manager_save): Rename local to avoid shadowing.
18980
18981 * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings.
18982 (crypto_hash_function): Now static.
18983 Fix pointer signedness problems. Avoid unnecessary initializations.
18984
18985 2011-05-27 Chong Yidong <cyd@stupidchicken.com>
18986
18987 * termhooks.h (Vselection_alist): Make it terminal-local.
18988
18989 * terminal.c (create_terminal): Initialize it.
18990
18991 * xselect.c: Support for clipboard managers.
18992 (Vselection_alist): Move to termhooks.h as terminal-local var.
18993 (LOCAL_SELECTION): New macro.
18994 (x_atom_to_symbol): Handle x_display_info_for_display fail case.
18995 (symbol_to_x_atom): Remove gratuitous arg.
18996 (x_handle_selection_request, lisp_data_to_selection_data)
18997 (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
18998 (x_own_selection, x_get_local_selection, x_convert_selection):
18999 New arg, specifying work frame. Use terminal-local Vselection_alist.
19000 (some_frame_on_display): Delete unused function.
19001 (Fx_own_selection_internal, Fx_get_selection_internal)
19002 (Fx_disown_selection_internal, Fx_selection_owner_p)
19003 (Fx_selection_exists_p): New optional frame arg.
19004 (frame_for_x_selection, Fx_clipboard_manager_save): New functions.
19005 (x_handle_selection_clear): Don't treat other terminals with the
19006 same keyboard specially. Use the terminal-local Vselection_alist.
19007 (x_clear_frame_selections): Use Frun_hook_with_args.
19008
19009 * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.
19010
19011 * xterm.h: Add support for those atoms.
19012
19013 2011-05-26 Chong Yidong <cyd@stupidchicken.com>
19014
19015 * xselect.c: ICCCM-compliant handling of MULTIPLE targets.
19016 (converted_selections, conversion_fail_tag): New global variables.
19017 (x_selection_request_lisp_error): Free the above.
19018 (x_get_local_selection): Remove unnecessary code.
19019 (x_reply_selection_request): Args changed; handle arbitrary array
19020 of converted selections stored in converted_selections.
19021 Separate the XChangeProperty and SelectionNotify steps.
19022 (x_handle_selection_request): Rewrite to handle MULTIPLE target.
19023 (x_convert_selection): New function.
19024 (x_handle_selection_event): Simplify.
19025 (x_get_foreign_selection): Don't ignore incoming requests while
19026 waiting for an answer; this will fail when we implement
19027 SAVE_TARGETS, and seems unnecessary anyway.
19028 (selection_data_to_lisp_data): Recognize ATOM_PAIR type.
19029 (Vx_sent_selection_functions): Doc fix.
19030
19031 2011-05-26 Leo Liu <sdl.web@gmail.com>
19032
19033 * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699)
19034
19035 2011-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
19036
19037 * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.
19038
19039 * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
19040 for fringe update if it has periodic bitmap.
19041 (row_equal_p): Also compare left_fringe_offset, right_fringe_offset,
19042 and fringe_bitmap_periodic_p.
19043
19044 * fringe.c (get_fringe_bitmap_data): New function.
19045 (draw_fringe_bitmap_1, update_window_fringes): Use it.
19046 (update_window_fringes): Record periodicity of fringe bitmap in glyph
19047 row. Mark glyph row for fringe update if periodicity changed.
19048
19049 * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
19050 for fringe update unless it has periodic bitmap.
19051
19052 2011-05-25 Kenichi Handa <handa@m17n.org>
19053
19054 * xdisp.c (get_next_display_element): Set correct it->face_id for
19055 a static composition.
19056
19057 2011-05-24 Leo Liu <sdl.web@gmail.com>
19058
19059 * deps.mk (fns.o):
19060 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h.
19061
19062 * fns.c (crypto_hash_function, Fsha1): New function.
19063 (Fmd5): Use crypto_hash_function.
19064 (syms_of_fns): Add Ssha1.
19065
19066 2011-05-22 Paul Eggert <eggert@cs.ucla.edu>
19067
19068 * gnutls.c: Remove unused macros.
19069 (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
19070 (fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
19071 Remove macros that are defined and never used.
19072 Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
19073
19074 2011-05-22 Chong Yidong <cyd@stupidchicken.com>
19075
19076 * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
19077 (Fx_get_selection_internal): Minor cleanup.
19078 (Fx_own_selection_internal): Rename arguments for consistency with
19079 select.el.
19080
19081 2011-05-22 Paul Eggert <eggert@cs.ucla.edu>
19082
19083 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure.
19084
19085 2011-05-22 Chong Yidong <cyd@stupidchicken.com>
19086
19087 * xselect.c (syms_of_xselect): Include character.h; use DEFSYM.
19088
19089 2011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
19090
19091 * dispnew.c (scrolling_window): Don't exclude the case that the
19092 last enabled row in the desired matrix touches the bottom boundary.
19093
19094 2011-05-21 Glenn Morris <rgm@gnu.org>
19095
19096 * Makefile.in ($(etc)/DOC): Make second command line even shorter.
19097 (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
19098 and add some more files.
19099
19100 2011-05-20 Eli Zaretskii <eliz@gnu.org>
19101
19102 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
19103 report_file_error introduced by the change from 2011-05-07.
19104
19105 2011-05-20 Paul Eggert <eggert@cs.ucla.edu>
19106
19107 * systime.h (Time): Define only if emacs is defined.
19108 This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
19109 where the include path doesn't have X11/X.h by default. See
19110 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
19111
19112 2011-05-20 Kenichi Handa <handa@m17n.org>
19113
19114 * composite.c (find_automatic_composition): Fix previous change.
19115
19116 2011-05-20 Glenn Morris <rgm@gnu.org>
19117
19118 * lisp.mk: New file, split from Makefile.in.
19119 * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
19120 (shortlisp): Remove.
19121 ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.
19122
19123 2011-05-19 Glenn Morris <rgm@gnu.org>
19124
19125 * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
19126 (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
19127 (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
19128 (lisp): Set the order to that of loadup.el.
19129 (shortlisp): Make it a copy of $lisp.
19130 (SOME_MACHINE_LISP): Remove.
19131 ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
19132 Use just $shortlisp, not $SOME_MACHINE_LISP too.
19133
19134 2011-05-18 Kenichi Handa <handa@m17n.org>
19135
19136 * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
19137 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
19138 (find_automatic_composition): Mostly rewrite for efficiency.
19139
19140 2011-05-18 Juanma Barranquero <lekktu@gmail.com>
19141
19142 * makefile.w32-in: Update dependencies.
19143
19144 2011-05-18 Christoph Scholtes <cschol2112@googlemail.com>
19145
19146 * menu.c: Include limits.h (fixes the MS-Windows build broken by
19147 2011-06-18T18:49:19Z!cyd@stupidchicken.com).
19148
19149 2011-05-18 Paul Eggert <eggert@cs.ucla.edu>
19150
19151 Fix some integer overflow issues, such as string length overflow.
19152
19153 * insdel.c (count_size_as_multibyte): Check for string overflow.
19154
19155 * character.c (lisp_string_width): Check for string overflow.
19156 Use EMACS_INT, not int, for string indexes and lengths; in
19157 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
19158 the resulting string length overflows an EMACS_INT; instead,
19159 report a string overflow if no precision given. When checking for
19160 precision exhaustion, use a check that cannot possibly have
19161 integer overflow. (Bug#8675)
19162 * character.h (lisp_string_width): Adjust to new signature.
19163
19164 * alloc.c (string_overflow): New function.
19165 (Fmake_string): Use it. This doesn't change behavior, but saves
19166 a few bytes and will simplify future changes.
19167 * character.c (string_escape_byte8): Likewise.
19168 * lisp.h (string_overflow): New decl.
19169
19170 Fixups, following up to the user-interface timestamp change.
19171 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
19172 for UI timestamps, instead of unsigned long.
19173 * msdos.c (mouse_get_pos): Likewise.
19174 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
19175 * w32gui.h (Time): Define by including "systime.h" rather than by
19176 declaring it ourselves. (Bug#8664)
19177
19178 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
19179 * image.c (clear_image_cache): Likewise.
19180
19181 * term.c (term_mouse_position): Don't assume time_t wraparound.
19182
19183 Be more systematic about user-interface timestamps.
19184 Before, the code sometimes used 'Time', sometimes 'unsigned long',
19185 and sometimes 'EMACS_UINT', to represent these timestamps.
19186 This change causes it to use 'Time' uniformly, as that's what X uses.
19187 This makes the code easier to follow, and makes it easier to catch
19188 integer overflow bugs such as Bug#8664.
19189 * frame.c (Fmouse_position, Fmouse_pixel_position):
19190 Use Time, not unsigned long, for user-interface timestamps.
19191 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
19192 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
19193 * keyboard.h (last_event_timestamp): Likewise.
19194 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
19195 * menu.h (xmenu_show): Likewise.
19196 * term.c (term_mouse_position): Likewise.
19197 * termhooks.h (struct input_event.timestamp): Likewise.
19198 (struct terminal.mouse_position_hook): Likewise.
19199 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
19200 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
19201 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
19202 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
19203 what it was before.
19204 * menu.h, termhooks.h: Include "systime.h", for Time.
19205
19206 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
19207 Don't assume that the difference between two unsigned long values
19208 can fit into an integer. At this point, we know button_down_time
19209 <= event->timestamp, so the difference must be nonnegative, so
19210 there's no need to cast the result if double-click-time is
19211 nonnegative, as it should be; check that it's nonnegative, just in
19212 case. This bug is triggered when events are more than 2**31 ms
19213 apart (about 25 days). (Bug#8664)
19214
19215 * xselect.c (last_event_timestamp): Remove duplicate decl.
19216 (x_own_selection): Remove needless cast to unsigned long.
19217
19218 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
19219 that always fit in int. Use a sentinel instead of a counter, to
19220 avoid a temp and to allay GCC's concerns about possible int overflow.
19221 * frame.h (struct frame): Use int for menu_bar_items_used
19222 instead of EMACS_INT, since it always fits in int.
19223
19224 * menu.c (grow_menu_items): Check for int overflow.
19225
19226 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
19227
19228 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
19229 Before, the code was not consistent. These values cannot exceed
19230 2**31 - 1 so there's no need to make them unsigned.
19231 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
19232 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
19233 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
19234 as modifiers.
19235 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
19236
19237 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
19238 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
19239 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
19240 presumably because the widths might not match.
19241
19242 * window.c (size_window): Avoid needless test at loop start.
19243
19244 2011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
19245
19246 * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
19247
19248 2011-05-12 Drew Adams <drew.adams@oracle.com>
19249
19250 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
19251
19252 2011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
19253
19254 * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
19255 `width' to `bar_area_x' and `bar_area_width', respectively.
19256 (x_scroll_run): Take account of fringe background extension.
19257
19258 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
19259 Rename local vars `left' and `width' to `bar_area_x' and
19260 `bar_area_width', respectively.
19261 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
19262 background extension.
19263
19264 2011-05-10 Jim Meyering <meyering@redhat.com>
19265
19266 * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
19267
19268 2011-05-10 Juanma Barranquero <lekktu@gmail.com>
19269
19270 * image.c (Finit_image_library): Return t for built-in image types,
19271 like pbm and xbm. (Bug#8640)
19272
19273 2011-05-09 Andreas Schwab <schwab@linux-m68k.org>
19274
19275 * w32menu.c (set_frame_menubar): Fix submenu allocation.
19276
19277 2011-05-07 Eli Zaretskii <eliz@gnu.org>
19278
19279 * w32console.c (Fset_screen_color): Doc fix.
19280 (Fget_screen_color): New function.
19281 (syms_of_ntterm): Defsubr it.
19282
19283 * callproc.c (call_process_cleanup) [MSDOS]: Don't close and
19284 unlink the temporary file if Fcall_process didn't create it in the
19285 first place.
19286 (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the
19287 child process will be redirected to a file specified with `:file'.
19288 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
19289 cue to call_process_cleanup not to close that handle.
19290
19291 2011-05-07 Ben Key <bkey76@gmail.com>
19292
19293 * makefile.w32-in: The bootstrap-temacs rule now makes use of
19294 one of two shell specific rules, either bootstrap-temacs-CMD or
19295 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
19296 to the previous implementation of the bootstrap-temacs rule.
19297 The bootstrap-temacs-CMD rule is similar to the previous
19298 implementation of the bootstrap-temacs rule except that it
19299 makes use of the ESC_CFLAGS variable instead of the CFLAGS
19300 variable.
19301
19302 These changes, along with some changes to nt/configure.bat,
19303 nt/gmake.defs, and nt/nmake.defs, are required to extend my
19304 earlier fix to add support for --cflags and --ldflags options
19305 that include quotes so that it works whether make uses cmd or
19306 sh as the shell.
19307
19308 2011-05-06 Michael Albinus <michael.albinus@gmx.de>
19309
19310 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
19311 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
19312 is a constant.
19313 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
19314 a string. Handle both cases.
19315 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
19316 (Fdbus_register_method): Use Qinvalid_function.
19317
19318 2011-05-06 Juanma Barranquero <lekktu@gmail.com>
19319
19320 * makefile.w32-in: Update dependencies.
19321 (LISP_H): Add inttypes.h and stdin.h.
19322 (PROCESS_H): Add unistd.h.
19323
19324 2011-05-06 Eli Zaretskii <eliz@gnu.org>
19325
19326 * lread.c: Include limits.h (fixes the MS-Windows build broken by
19327 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
19328
19329 2011-05-06 Paul Eggert <eggert@cs.ucla.edu>
19330
19331 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
19332
19333 * term.c (vfatal): Remove stray call to va_end.
19334 It's not needed and the C Standard doesn't allow it here anyway.
19335
19336 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
19337 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
19338
19339 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
19340 bytes.
19341
19342 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
19343
19344 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
19345
19346 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
19347
19348 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
19349
19350 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
19351
19352 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
19353 * charset.c (Fdefine_charset_internal): Don't initialize
19354 charset.code_space[15]. The value was garbage, on hosts with
19355 32-bit int (Bug#8600).
19356
19357 * lread.c (read_integer): Be more consistent with string-to-number.
19358 Use string_to_number to do the actual conversion; this avoids
19359 rounding errors and fixes some other screwups. Without this fix,
19360 for example, #x1fffffffffffffff was misread as -2305843009213693952.
19361 (digit_to_number): Move earlier, for benefit of read_integer.
19362 Return -1 if the digit is out of range for the base, -2 if it is
19363 not a digit in any supported base. (Bug#8602)
19364
19365 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
19366
19367 * dispnew.c (scrolling_window): Return 1 if we scrolled,
19368 to match comment at start of function. This also removes a
19369 GCC warning about overflow in a 32+64-bit port.
19370
19371 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
19372
19373 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
19374 Reported by Stefan Monnier in
19375 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
19376 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
19377 Use SYMBOLP-guarded XSYMBOL, not XPNTR.
19378
19379 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
19380 (EMACS_UINTPTR): Likewise, with uintptr_t.
19381
19382 * lisp.h: Prefer 64-bit EMACS_INT if available.
19383 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
19384 on 32-bit hosts that have 64-bit int, so that they can access
19385 large files.
19386 However, temporarily disable this change unless the temporary
19387 symbol WIDE_EMACS_INT is defined.
19388
19389 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
19390
19391 Prefer intptr_t/uintptr_t for integers the same widths as pointers.
19392 This removes an assumption that EMACS_INT and long are the same
19393 width as pointers. The assumption is true for Emacs porting targets
19394 now, but we want to make other targets possible.
19395 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
19396 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
19397 In the rest of the code, change types of integers that hold casted
19398 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
19399 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
19400 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
19401 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
19402 No need to cast type when ORing.
19403 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
19404 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
19405 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
19406 assume EMACS_INT is the same width as char *.
19407 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
19408 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
19409 Remove no-longer-needed casts.
19410 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
19411 (xg_tool_bar_help_callback, xg_make_tool_item):
19412 Use EMACS_INTPTR to hold an integer
19413 that will be cast to void *; this can avoid a GCC warning
19414 if EMACS_INT is not the same width as void *.
19415 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
19416 * xdisp.c (display_echo_area_1, resize_mini_window_1):
19417 (current_message_1, set_message_1):
19418 Use a local to convert to proper width without a cast.
19419 * xmenu.c (dialog_selection_callback): Likewise.
19420
19421 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
19422 Also, don't assume VALBITS / RAND_BITS is less than 5,
19423 and don't rely on undefined behavior when shifting a 1 left into
19424 the sign bit.
19425 * lisp.h (get_random): Change signature to match.
19426
19427 * lread.c (hash_string): Use size_t, not int, for hash computation.
19428 Normally we prefer signed values; but hashing is special, because
19429 it's better to use unsigned division on hash table sizes so that
19430 the remainder is nonnegative. Also, size_t is the natural width
19431 for hashing into memory. The previous code used 'int', which doesn't
19432 retain enough info to hash well into very large tables.
19433 (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
19434
19435 * dbusbind.c: Don't possibly lose pointer info when converting.
19436 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
19437 Use XPNTR rather than XHASH, so that the high-order bits of
19438 the pointer aren't lost when converting through void *.
19439
19440 * eval.c (Fautoload): Don't double-shift a pointer.
19441
19442 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
19443
19444 2011-05-06 Juanma Barranquero <lekktu@gmail.com>
19445
19446 * gnutls.c (DEF_GNUTLS_FN):
19447 * image.c (DEF_IMGLIB_FN): Make function pointers static.
19448
19449 2011-05-05 Andreas Schwab <schwab@linux-m68k.org>
19450
19451 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
19452 marker. (Bug#8610)
19453
19454 2011-05-05 Eli Zaretskii <eliz@gnu.org>
19455
19456 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
19457 New version that can reserve upto 2GB of heap space.
19458
19459 2011-05-05 Chong Yidong <cyd@stupidchicken.com>
19460
19461 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
19462
19463 2011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
19464
19465 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
19466 `gnutls_certificate_set_x509_key_file'.
19467
19468 2011-05-05 Juanma Barranquero <lekktu@gmail.com>
19469
19470 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
19471 Update dependencies.
19472
19473 2011-05-04 Juanma Barranquero <lekktu@gmail.com>
19474
19475 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
19476 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
19477 Remove unused parameter `fildes'.
19478 * process.c (read_process_output, send_process): Don't pass it.
19479
19480 2011-05-04 Juanma Barranquero <lekktu@gmail.com>
19481
19482 Fix previous change: the library cache is defined in w32.c.
19483 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
19484 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
19485
19486 2011-05-04 Juanma Barranquero <lekktu@gmail.com>
19487
19488 Implement dynamic loading of GnuTLS on Windows.
19489
19490 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
19491 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
19492 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
19493 Declare.
19494
19495 * gnutls.c (Qgnutls_dll): Define.
19496 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
19497 (gnutls_*): Declare function pointers.
19498 (init_gnutls_functions): New function to initialize function pointers.
19499 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
19500 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
19501 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
19502 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
19503 (emacs_gnutls_write, emacs_gnutls_read)
19504 (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
19505 (Fgnutls_available_p): New function.
19506 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers.
19507 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
19508 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
19509
19510 * image.c: Include w32.h.
19511 (Vimage_type_cache): Delete.
19512 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
19513 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
19514 (w32_delayed_load): Move to w32.c.
19515
19516 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
19517
19518 * w32.c (QCloaded_from, Vlibrary_cache): Define.
19519 (w32_delayed_load): Move from image.c. When loading a library, record
19520 its filename in the :loaded-from property of the library id.
19521 (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
19522 Initialize and staticpro them.
19523 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
19524
19525 * process.c: Include lisp.h before w32.h, not after.
19526 (wait_reading_process_output): Call emacs_gnutls_record_check_pending
19527 instead of gnutls_record_check_pending.
19528
19529 * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
19530
19531 2011-05-04 Teodor Zlatanov <tzz@lifelogs.com>
19532
19533 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
19534 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists
19535 as passed in.
19536
19537 2011-05-03 Jan Djärv <jan.h.d@swipnet.se>
19538
19539 * xterm.c (x_set_frame_alpha): Do not set property on anything
19540 else than FRAME_X_OUTER_WINDOW (Bug#8608).
19541
19542 2011-05-02 Juanma Barranquero <lekktu@gmail.com>
19543
19544 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596)
19545
19546 2011-05-02 Juanma Barranquero <lekktu@gmail.com>
19547
19548 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
19549 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
19550 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
19551 (gnutls_global_initialized, Qgnutls_bootprop_priority)
19552 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
19553 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
19554 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
19555 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
19556 (Qgnutls_bootprop_callbacks_verify): Make static.
19557
19558 2011-05-01 Andreas Schwab <schwab@linux-m68k.org>
19559
19560 * callproc.c: Indentation fixup.
19561
19562 * sysdep.c (wait_for_termination_1): Make static.
19563 (wait_for_termination, interruptible_wait_for_termination):
19564 Move after wait_for_termination_1.
19565
19566 2011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
19567
19568 * sysdep.c (interruptible_wait_for_termination): New function
19569 which is like wait_for_termination, but allows keyboard
19570 interruptions.
19571
19572 * callproc.c (Fcall_process): Add (:file "file") as an option for
19573 the STDOUT buffer.
19574 (Fcall_process_region): Ditto.
19575
19576 2011-04-30 Eli Zaretskii <eliz@gnu.org>
19577
19578 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
19579 rather than `XVECTOR (FOO)->size'.
19580
19581 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
19582 inttypes.h, as a gnulib replacement is used if it not available in
19583 system headers.
19584
19585 2011-04-21 Eli Zaretskii <eliz@gnu.org>
19586
19587 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
19588 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
19589 of MOST_POSITIVE_FIXNUM. (Bug#8528)
19590
19591 * coding.c (coding_alloc_by_realloc): Error out if destination
19592 will grow beyond MOST_POSITIVE_FIXNUM.
19593 (decode_coding_emacs_mule): Abort if there isn't enough place in
19594 charbuf for the composition carryover bytes. Reserve an extra
19595 space for up to 2 characters produced in a loop.
19596 (decode_coding_iso_2022): Abort if there isn't enough place in
19597 charbuf for the composition carryover bytes.
19598
19599 2011-04-21 Eli Zaretskii <eliz@gnu.org>
19600
19601 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
19602 aborting when %lld or %lll format is passed.
19603 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
19604 %llo or %llx format is passed. (Bug#8545)
19605
19606 * window.c (window_scroll_line_based): Use a marker instead of
19607 simple variables to record original value of point. (Bug#7952)
19608
19609 * doprnt.c (doprnt): Fix the case where a multibyte sequence
19610 produced by %s or %c overflows available buffer space. (Bug#8545)
19611
19612 2011-04-28 Paul Eggert <eggert@cs.ucla.edu>
19613
19614 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
19615 (SIZE_MAX): Move defn after all includes, as they might #define it.
19616
19617 2011-04-28 Juanma Barranquero <lekktu@gmail.com>
19618
19619 * w32.c (init_environment): Warn about defaulting HOME to C:\.
19620
19621 2011-04-28 Juanma Barranquero <lekktu@gmail.com>
19622
19623 * keyboard.c (Qdelayed_warnings_hook): Define.
19624 (command_loop_1): Run `delayed-warnings-hook'
19625 if Vdelayed_warnings_list is non-nil.
19626 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
19627 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
19628
19629 2011-04-28 Eli Zaretskii <eliz@gnu.org>
19630
19631 * doprnt.c (doprnt): Don't return value smaller than the buffer
19632 size if the message was truncated. (Bug#8545).
19633
19634 2011-04-28 Juanma Barranquero <lekktu@gmail.com>
19635
19636 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
19637 (Fx_window_property): #if-0 the whole functions, not just the bodies.
19638
19639 2011-04-27 Paul Eggert <eggert@cs.ucla.edu>
19640
19641 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
19642
19643 2011-04-27 Juanma Barranquero <lekktu@gmail.com>
19644
19645 * makefile.w32-in: Update dependencies.
19646
19647 2011-04-27 Eli Zaretskii <eliz@gnu.org>
19648
19649 Improve `doprnt' and its usage. (Bug#8545)
19650 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
19651 `format_end'. Remove support for %l as a conversion specifier.
19652 Don't use xrealloc. Improve diagnostics when the %l size modifier
19653 is used. Update the commentary.
19654
19655 * eval.c (verror): Simplify calculation of size_t.
19656
19657 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
19658 messages.
19659
19660 2011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
19661
19662 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
19663 change.
19664
19665 2011-04-27 Paul Eggert <eggert@cs.ucla.edu>
19666
19667 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
19668 This makes this file independent of the recent pseudovector change.
19669
19670 2011-04-26 Paul Eggert <eggert@cs.ucla.edu>
19671
19672 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
19673
19674 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
19675 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
19676 Remove unused local.
19677 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
19678
19679 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
19680 GCC 4.6.0 optimizes based on type-based alias analysis.
19681 For example, if b is of type struct buffer * and v of type struct
19682 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
19683 != &v->size, and therefore "v->size = 1; b->size = 2; return
19684 v->size;" must therefore return 1. This assumption is incorrect
19685 for Emacs, since it type-puns struct Lisp_Vector * with many other
19686 types. To fix this problem, this patch adds a new type struct
19687 vectorlike_header that documents the constraints on layout of vectors
19688 and pseudovectors, and helps optimizing compilers not get fooled
19689 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
19690 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
19691 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
19692 the size member.
19693 (XSETPVECTYPE): Rewrite in terms of new macro.
19694 (XSETPVECTYPESIZE): New macro, specifying both type and size.
19695 This is a bit clearer, and further avoids the possibility of
19696 undesirable aliasing.
19697 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
19698 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
19699 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
19700 since Lisp_Subr is a special case (no "next" field).
19701 (ASIZE): Now uses header.size rather than size.
19702 All previous uses of XVECTOR (foo)->size replaced to use this macro,
19703 to avoid the hassle of writing XVECTOR (foo)->header.size.
19704 (struct vectorlike_header): New type.
19705 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
19706 object, to help avoid aliasing.
19707 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
19708 (SUBRP): Likewise, since Lisp_Subr is a special case.
19709 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
19710 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
19711 (struct Lisp_Hash_Table): Combine first two members into a single
19712 struct vectorlike_header member. All uses of "size" and "next" members
19713 changed to be "header.size" and "header.next".
19714 * buffer.h (struct buffer): Likewise.
19715 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
19716 * frame.h (struct frame): Likewise.
19717 * process.h (struct Lisp_Process): Likewise.
19718 * termhooks.h (struct terminal): Likewise.
19719 * window.c (struct save_window_data, struct saved_window): Likewise.
19720 * window.h (struct window): Likewise.
19721 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
19722 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
19723 * buffer.c (init_buffer_once): Likewise.
19724 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
19725 special case.
19726 * process.c (Fformat_network_address): Use local var for size,
19727 for brevity.
19728
19729 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
19730
19731 Make the Lisp reader and string-to-float more consistent (Bug#8525)
19732 * data.c (atof): Remove decl; no longer used or needed.
19733 (digit_to_number): Move to lread.c.
19734 (Fstring_to_number): Use new string_to_number function, to be
19735 consistent with how the Lisp reader treats infinities and NaNs.
19736 Do not assume that floating-point numbers represent EMACS_INT
19737 without losing information; this is not true on most 64-bit hosts.
19738 Avoid double-rounding errors, by insisting on integers when
19739 parsing non-base-10 numbers, as the documentation specifies.
19740 * lisp.h (string_to_number): New decl, replacing ...
19741 (isfloat_string): Remove.
19742 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
19743 (read1): Do not accept +. and -. as integers; this
19744 appears to have been a coding error. Similarly, do not accept
19745 strings like +-1e0 as floating point numbers. Do not report
19746 overflow for integer overflows unless the base is not 10 which
19747 means we have no simple and reliable way to continue.
19748 Break out the floating-point parsing into a new
19749 function string_to_number, so that Fstring_to_number parses
19750 floating point numbers consistently with the Lisp reader.
19751 (digit_to_number): Move here from data.c. Make it static inline.
19752 (E_CHAR, EXP_INT): Remove, replacing with ...
19753 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
19754 (string_to_number): New function, replacing isfloat_string.
19755 This function checks for valid syntax and produces the resulting
19756 Lisp float number too. Rework it so that string-to-number
19757 no longer mishandles examples like "1.0e+". Use strtoumax,
19758 so that overflow for non-base-10 numbers is reported only when
19759 there's no portable and simple way to convert to floating point.
19760
19761 * textprop.c (set_text_properties_1): Rewrite for clarity,
19762 and to avoid GCC warning about integer overflow.
19763
19764 * intervals.h (struct interval): Use EMACS_INT for members
19765 where EMACS_UINT might cause problems. See
19766 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
19767 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
19768 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
19769 All uses changed.
19770 (offset_intervals): Tell GCC not to worry about length overflow
19771 when negating a negative length.
19772
19773 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
19774 (overrun_check_free): Likewise.
19775
19776 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
19777 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
19778 word size.
19779
19780 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
19781 (gnutls_make_error): Rename local to avoid shadowing.
19782 (gnutls_emacs_global_deinit): ifdef out; not used.
19783 (Fgnutls_boot): Use const for pointer to readonly storage.
19784 Comment out unused local. Fix pointer signedness problems.
19785
19786 * lread.c (openp): Don't stuff size_t into an 'int'.
19787 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
19788 about possible signed overflow.
19789
19790 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
19791 (GDK_KEY_g): Don't define if already defined.
19792 (xg_prepare_tooltip): Avoid pointer signedness problem.
19793 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
19794
19795 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
19796 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
19797
19798 * xfns.c (Fx_window_property): Simplify a bit,
19799 to make a bit faster and to avoid GCC 4.6.0 warning.
19800 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
19801
19802 * fns.c (internal_equal): Don't assume size_t fits in int.
19803
19804 * alloc.c (compact_small_strings): Tighten assertion a little.
19805
19806 Replace pEd with more-general pI, and fix some printf arg casts.
19807 * lisp.h (pI): New macro, generalizing old pEd macro to other
19808 conversion specifiers. For example, use "...%"pI"d..." rather
19809 than "...%"pEd"...".
19810 (pEd): Remove. All uses replaced with similar uses of pI.
19811 * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise.
19812 * alloc.c (check_pure_size): Don't overflow by converting size to int.
19813 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
19814 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
19815 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
19816 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
19817 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
19818 64-bit hosts.
19819 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
19820 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
19821 * print.c (safe_debug_print, print_object): Likewise.
19822 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
19823 to int.
19824 Use pI instead of if-then-else-abort. Use %p to avoid casts,
19825 avoiding the 0 flag, which is not portable.
19826 * process.c (Fmake_network_process): Use pI to avoid cast.
19827 * region-cache.c (pp_cache): Likewise.
19828 * xdisp.c (decode_mode_spec): Likewise.
19829 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
19830 behavior on 64-bit hosts with printf arg.
19831 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
19832 (x_stop_queuing_selection_requests): Likewise.
19833 (x_get_window_property): Don't truncate byte count to an 'int'
19834 when tracing.
19835
19836 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
19837 here, since it parses constructs like leading '-' and spaces,
19838 which are not wanted; and it overflows with large numbers.
19839 Instead, simply match F[0-9]+, which is what is wanted anyway.
19840
19841 * alloc.c: Remove unportable assumptions about struct layout.
19842 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
19843 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
19844 (allocate_vectorlike, make_pure_vector): Use the new macros,
19845 plus offsetof, to remove unportable assumptions about struct layout.
19846 These assumptions hold on all porting targets that I know of, but
19847 they are not guaranteed, they're easy to remove, and removing them
19848 makes further changes easier.
19849
19850 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
19851 This doesn't fix a bug but makes the code clearer.
19852 (string_overrun_cookie): Now const. Use initializers that
19853 don't formally overflow signed char, to avoid warnings.
19854 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
19855 can cause Emacs to crash when string overrun checking is enabled.
19856 (allocate_buffer): Don't assume sizeof (struct buffer) is a
19857 multiple of sizeof (EMACS_INT); it need not be, if
19858 alignof(EMACS_INT) < sizeof (EMACS_INT).
19859 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
19860
19861 2011-04-26 Juanma Barranquero <lekktu@gmail.com>
19862
19863 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
19864
19865 2011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
19866
19867 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
19868 supposed to be handshaking. (Bug#8556)
19869 Reported by Paul Eggert <eggert@cs.ucla.edu>.
19870
19871 2011-04-26 Daniel Colascione <dan.colascione@gmail.com>
19872
19873 * lisp.h (Qdebug): List symbol.
19874 * eval.c (Qdebug): Restore global linkage.
19875 * keyboard.c (debug-on-event): New variable.
19876 (handle_user_signal): Break into debugger when debug-on-event
19877 matches the current signal symbol.
19878
19879 2011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
19880
19881 * alloc.c (check_sblock, check_string_bytes)
19882 (check_string_free_list): Convert to standard C.
19883
19884 2011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
19885
19886 * w32.c (emacs_gnutls_push): Fix typo.
19887
19888 2011-04-25 Eli Zaretskii <eliz@gnu.org>
19889
19890 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
19891 "cast to pointer from integer of different size".
19892
19893 Improve doprnt and its use in verror. (Bug#8545)
19894 * doprnt.c (doprnt): Document the set of format control sequences
19895 supported by the function. Use SAFE_ALLOCA instead of always
19896 using `alloca'.
19897
19898 * eval.c (verror): Don't limit the buffer size at size_max-1, that
19899 is one byte too soon. Don't use xrealloc; instead xfree and
19900 xmalloc anew.
19901
19902 2011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
19903
19904 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
19905 callbacks stage.
19906
19907 * gnutls.c: Renamed global_initialized to
19908 gnutls_global_initialized. Added internals for the
19909 :verify-hostname-error, :verify-error, and :verify-flags
19910 parameters of `gnutls-boot' and documented those parameters in the
19911 docstring. Start callback support.
19912 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
19913 unless a fatal error occurred. Call gnutls_alert_send_appropriate
19914 on error. Return error code.
19915 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
19916 (emacs_gnutls_read): Likewise.
19917 (Fgnutls_boot): Return handshake error code.
19918 (emacs_gnutls_handle_error): New function.
19919 (wsaerror_to_errno): Likewise.
19920
19921 * w32.h (emacs_gnutls_pull): Add prototype.
19922 (emacs_gnutls_push): Likewise.
19923
19924 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
19925 (emacs_gnutls_push): Likewise.
19926
19927 2011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
19928
19929 * process.c (wait_reading_process_output): Check if GnuTLS
19930 buffered some data internally if no FDs are set for TLS
19931 connections.
19932
19933 * makefile.w32-in (OBJ2): Add gnutls.$(O).
19934 (LIBS): Link to USER_LIBS.
19935 ($(BLD)/gnutls.$(0)): New target.
19936
19937 2011-04-24 Eli Zaretskii <eliz@gnu.org>
19938
19939 * xdisp.c (handle_single_display_spec): Rename the
19940 display_replaced_before_p argument into display_replaced_p, to
19941 make it consistent with the commentary. Fix typos in the
19942 commentary.
19943
19944 * textprop.c (syms_of_textprop): Remove dead code.
19945 (copy_text_properties): Delete obsolete commentary about an
19946 interface that was deleted long ago. Fix typos in the description
19947 of arguments.
19948
19949 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
19950 to changes in oldXMenu/XMenu.h from 2011-04-16.
19951 <menu_help_message, prev_menu_help_message>: Constify.
19952 (IT_menu_make_room): menu->help_text is now `const char **';
19953 adjust.
19954
19955 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
19956 to changes in oldXMenu/XMenu.h from 2011-04-16.
19957 (struct XMenu): Declare `help_text' `const char **'.
19958
19959 * xfaces.c <Qunspecified>: Make extern again.
19960
19961 * syntax.c: Include sys/types.h before including regex.h, as
19962 required by POSIX.
19963
19964 * doc.c (get_doc_string): Improve the format passed to `error'.
19965
19966 * doprnt.c (doprnt): Improve commentary.
19967
19968 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
19969
19970 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
19971 them with etags.
19972
19973 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
19974 changes in globals.h immediately force recompilation.
19975 (TAGS): Depend on $(CURDIR)/m/intel386.h and
19976 $(CURDIR)/s/ms-w32.h.
19977 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
19978
19979 * character.c (Fchar_direction): Function deleted.
19980 (syms_of_character): Don't defsubr it.
19981 <char-direction-table>: Deleted.
19982
19983 2011-04-23 Eli Zaretskii <eliz@gnu.org>
19984
19985 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
19986 * doprnt.c: Include limits.h.
19987 (SIZE_MAX): New macro.
19988 (doprnt): Return a size_t value. 2nd arg is now size_t.
19989 Many local variables are now size_t instead of int or unsigned.
19990 Improve overflow protection. Support `l' modifier for integer
19991 conversions. Support %l conversion. Don't assume an EMACS_INT
19992 argument for integer conversions and for %c.
19993
19994 * lisp.h (doprnt): Restore prototype.
19995
19996 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
19997 $(SRC)/character.h.
19998
19999 * Makefile.in (base_obj): Add back doprnt.o.
20000
20001 * deps.mk (doprnt.o): Add back prerequisites.
20002 (callint.o): Depend on character.h.
20003
20004 * eval.c (internal_lisp_condition_case): Include the handler
20005 representation in the error message.
20006 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
20007 when breaking from the loop.
20008
20009 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
20010
20011 * callint.c (Fcall_interactively): When displaying error message
20012 about invalid control letter, pass the character's codepoint, not
20013 a pointer to its multibyte form. Improve display of the character
20014 in octal and display also its hex code.
20015
20016 * character.c (char_string): Use %x to display the (unsigned)
20017 codepoint of an invalid character, to avoid displaying a bogus
20018 negative value.
20019
20020 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
20021 `error', not SYMBOL_NAME itself.
20022
20023 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
20024 character arguments to `error'.
20025
20026 * charset.c (check_iso_charset_parameter): Fix incorrect argument
20027 to `error' in error message about FINAL_CHAR argument. Make sure
20028 FINAL_CHAR is a character, and use %c when it is passed as
20029 argument to `error'.
20030
20031 2011-04-23 Eli Zaretskii <eliz@gnu.org>
20032
20033 * s/ms-w32.h (localtime): Redirect to sys_localtime.
20034
20035 * w32.c: Include <time.h>.
20036 (sys_localtime): New function.
20037
20038 2011-04-23 Chong Yidong <cyd@stupidchicken.com>
20039
20040 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
20041
20042 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
20043
20044 2011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
20045
20046 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
20047 zombies (Bug#8467).
20048
20049 2011-04-19 Eli Zaretskii <eliz@gnu.org>
20050
20051 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
20052 gl_state.e_property when gl_state.object is Qt.
20053
20054 * insdel.c (make_gap_larger): Remove limitation of buffer size
20055 to <= INT_MAX.
20056
20057 2011-04-18 Chong Yidong <cyd@stupidchicken.com>
20058
20059 * xdisp.c (lookup_glyphless_char_display)
20060 (produce_glyphless_glyph): Handle cons cell entry in
20061 glyphless-char-display.
20062 (Vglyphless_char_display): Document it.
20063
20064 * term.c (produce_glyphless_glyph): Handle cons cell entry in
20065 glyphless-char-display.
20066
20067 2011-04-17 Chong Yidong <cyd@stupidchicken.com>
20068
20069 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
20070
20071 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
20072
20073 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
20074 definition for no-X builds.
20075
20076 2011-04-16 Paul Eggert <eggert@cs.ucla.edu>
20077
20078 Static checks with GCC 4.6.0 and non-default toolkits.
20079
20080 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
20081
20082 * process.c (keyboard_bit_set): Define only if SIGIO.
20083 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
20084 (send_process): Repair possible setjmp clobbering.
20085
20086 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
20087
20088 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
20089
20090 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
20091
20092 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
20093 Define only if needed.
20094
20095 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
20096 by pacifying GCC about it. Maybe it's time to retire it?
20097 * xfaces.c (USG, __TIMEVAL__): Likewise.
20098
20099 * dispextern.h (struct redisplay_interface): Rename param
20100 to avoid shadowing.
20101 * termhooks.h (struct terminal): Likewise.
20102 * xterm.c (xembed_send_message): Likewise.
20103
20104 * insdel.c (make_gap_smaller): Define only if
20105 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
20106
20107 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
20108 it.
20109
20110 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
20111 so that we aren't warned about unused symbols.
20112
20113 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
20114
20115 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
20116
20117 * xfns.c (x_real_positions): Mark locals as initialized.
20118
20119 * xmenu.c (xmenu_show): Don't use uninitialized vars.
20120
20121 * xterm.c: Fix problems found by static analysis with other toolkits.
20122 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
20123 (x_dispatch_event): Declare static if USE_GTK, and
20124 define if USE_GTK || USE_X_TOOLKIT.
20125 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
20126 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
20127 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
20128 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
20129
20130 * xmenu.c (menu_help_callback): Pointer type fixes.
20131 Use const pointers when pointing at readonly data. Avoid pointer
20132 signedness clashes.
20133 (FALSE): Remove unused macro.
20134 (update_frame_menubar): Remove unused decl.
20135
20136 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
20137
20138 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
20139 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
20140 (single_menu_item): Rename local to avoid shadowing.
20141
20142 * keyboard.c (make_lispy_event): Remove unused local var.
20143
20144 * frame.c, frame.h (x_get_resource_string): Bring this back, but
20145 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
20146
20147 * bitmaps: Change bitmaps from unsigned char back to the X11
20148 compatible char. Avoid the old compiler warnings about
20149 out-of-range initializers by using, for example, '\xab' rather
20150 than 0xab.
20151
20152 * xgselect.c (xgselect_initialize): Check vs interface
20153 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
20154
20155 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
20156
20157 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
20158 to read-only memory.
20159
20160 * fns.c (vector): Remove; this old hack is no longer needed.
20161
20162 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
20163 Remove unused var.
20164 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
20165
20166 * xrdb.c (x_load_resources): Omit unused local.
20167
20168 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
20169 (x_window): Rename locals to avoid shadowing.
20170 (USG): Use the kludged USG macro, to pacify gcc.
20171
20172 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
20173 (x_term_init): Remove local to avoid shadowing.
20174
20175 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
20176
20177 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
20178 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
20179
20180 2011-04-16 Eli Zaretskii <eliz@gnu.org>
20181
20182 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
20183
20184 Fix regex.c, syntax.c and friends for buffers > 2GB.
20185 * syntax.h (struct gl_state_s): Declare character position members
20186 EMACS_INT.
20187
20188 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
20189
20190 * textprop.c (verify_interval_modification, interval_of):
20191 Declare arguments EMACS_INT.
20192
20193 * intervals.c (adjust_intervals_for_insertion): Declare arguments
20194 EMACS_INT.
20195
20196 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
20197
20198 * indent.c (Fvertical_motion): Local variable it_start is now
20199 EMACS_INT.
20200
20201 * regex.c (re_match, re_match_2, re_match_2_internal)
20202 (bcmp_translate, regcomp, regexec, print_double_string)
20203 (group_in_compile_stack, re_search, re_search_2, regex_compile)
20204 (re_compile_pattern, re_exec): Declare arguments and local
20205 variables `size_t' and `ssize_t' and return values `regoff_t', as
20206 appropriate.
20207 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
20208 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
20209 <compile_stack_type>: `size' and `avail' are now `size_t'.
20210
20211 * regex.h <regoff_t>: Use ssize_t, not int.
20212 (re_search, re_search_2, re_match, re_match_2): Arguments that
20213 specify buffer/string position and length are now ssize_t and
20214 size_t. Return type is regoff_t.
20215
20216 2011-04-16 Ben Key <bkey76@gmail.com>
20217
20218 * nsfont.m: Fixed bugs in ns_get_family and
20219 ns_descriptor_to_entity that were caused by using free to
20220 deallocate memory blocks that were allocated by xmalloc (via
20221 xstrdup). This caused Emacs to crash when compiled with
20222 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
20223 --enable-checking=xmallocoverrun). xfree is now used to
20224 deallocate these memory blocks.
20225
20226 2011-04-15 Paul Eggert <eggert@cs.ucla.edu>
20227
20228 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
20229
20230 emacs_write: Accept and return EMACS_INT for sizes.
20231 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
20232 et seq.
20233 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
20234 Accept and return EMACS_INT.
20235 (emacs_gnutls_write): Return the number of bytes written on
20236 partial writes.
20237 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
20238 (emacs_read, emacs_write): Remove check for negative size, as the
20239 Emacs source code has been audited now.
20240 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
20241 (emacs_read, emacs_write): Use it.
20242 * process.c (send_process): Adjust to the new signatures of
20243 emacs_write and emacs_gnutls_write. Do not attempt to store
20244 a byte offset into an 'int'; it might overflow.
20245 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
20246
20247 * sound.c: Don't assume sizes fit in 'int'.
20248 (struct sound_device.period_size, alsa_period_size):
20249 Return EMACS_INT, not int.
20250 (struct sound_device.write, vox_write, alsa_write):
20251 Accept EMACS_INT, not int.
20252 (wav_play, au_play): Use EMACS_INT to store sizes and to
20253 record read return values.
20254
20255 2011-04-15 Ben Key <bkey76@gmail.com>
20256
20257 * keyboard.c (Qundefined): Don't declare static since it is used
20258 in nsfns.m.
20259 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
20260 static since they are used in nsfont.m.
20261
20262 2011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
20263
20264 * process.c (Qprocessp): Don't declare static.
20265 * lisp.h (Qprocessp): Declare again.
20266
20267 2011-04-15 Juanma Barranquero <lekktu@gmail.com>
20268
20269 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
20270
20271 2011-04-14 Paul Eggert <eggert@cs.ucla.edu>
20272
20273 Improve C-level modularity by making more things 'static'.
20274
20275 Don't publish debugger-only interfaces to other modules.
20276 * lisp.h (safe_debug_print, debug_output_compilation_hack):
20277 (verify_bytepos, count_markers): Move decls to the only modules
20278 that need them.
20279 * region-cache.h (pp_cache): Likewise.
20280 * window.h (check_all_windows): Likewise.
20281 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
20282
20283 * sysdep.c (croak): Now static, if
20284 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
20285 * syssignal.h (croak): Declare only if not static.
20286
20287 * alloc.c (refill_memory_reserve): Now static if
20288 !defined REL_ALLOC || defined SYSTEM_MALLOC.
20289 * lisp.h (refill_memory_reserve): Declare only if not static.
20290
20291 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
20292 Define only if USE_LUCID.
20293
20294 * xrdb.c (x_customization_string, x_rm_string): Now static.
20295
20296 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
20297 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
20298
20299 * xdisp.c (draw_row_with_mouse_face): Now static.
20300 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
20301
20302 * window.h (check_all_windows): Mark externally visible.
20303
20304 * window.c (window_deletion_count): Now static.
20305
20306 * undo.c: Make symbols static if they're not exported.
20307 (last_undo_buffer, last_boundary_position, pending_boundary):
20308 Now static.
20309
20310 * textprop.c (interval_insert_behind_hooks): Now static.
20311 (interval_insert_in_front_hooks): Likewise.
20312
20313 * term.c: Make symbols static if they're not exported.
20314 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
20315 (max_frame_lines, tty_set_terminal_modes):
20316 (tty_reset_terminal_modes, tty_turn_off_highlight):
20317 (get_tty_terminal): Now static.
20318 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
20319 * termhooks.h (term_mouse_moveto): Do not declare if
20320 HAVE_WINDOW_SYSTEM.
20321 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
20322 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
20323
20324 * sysdep.c: Make symbols static if they're not exported.
20325 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
20326 Now static.
20327 (sigprocmask_set, full_mask): Remove; unused.
20328 (wait_debugging): Mark as visible.
20329 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
20330 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
20331
20332 * syntax.c (syntax_temp): Define only if !__GNUC__.
20333
20334 * sound.c (current_sound_device, current_sound): Now static.
20335
20336 * search.c (searchbufs, searchbuf_head): Now static.
20337
20338 * scroll.c (scroll_cost): Remove; unused.
20339 * dispextern.h (scroll_cost): Remove decl.
20340
20341 * region-cache.h (pp_cache): Mark as externally visible.
20342
20343 * process.c: Make symbols static if they're not exported.
20344 (process_tick, update_tick, create_process, chan_process):
20345 (Vprocess_alist, proc_buffered_char, datagram_access):
20346 (fd_callback_data, send_process_frame, process_sent_to): Now static.
20347 (deactivate_process): Mark defn as static, as well as decl.
20348 * lisp.h (create_process): Remove decl.
20349 * process.h (chan_process, Vprocess_alist): Remove decls.
20350
20351 * print.c: Make symbols static if they're not exported.
20352 (print_depth, new_backquote_output, being_printed, print_buffer):
20353 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
20354 (print_interval, print_number_index, initial_stderr_stream):
20355 Now static.
20356 * lisp.h (Fprinc): Remove decl.
20357 (debug_output_compilation_hack): Mark as externally visible.
20358
20359 * sysdep.c (croak): Move decl from here to syssignal.h.
20360 * syssignal.h (croak): Put it here, so the API can be checked when
20361 'croak' is called from dissociate_if_controlling_tty.
20362
20363 * minibuf.c: Make symbols static if they're not exported.
20364 (minibuf_save_list, choose_minibuf_frame): Now static.
20365 * lisp.h (choose_minibuf_frame): Remove decl.
20366
20367 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
20368
20369 * lread.c: Make symbols static if they're not exported.
20370 (read_objects, initial_obarray, oblookup_last_bucket_number):
20371 Now static.
20372 (make_symbol): Remove; unused.
20373 * lisp.h (initial_obarray, make_symbol): Remove decls.
20374
20375 * keyboard.c: Make symbols static if they're not exported.
20376 (single_kboard, recent_keys_index, total_keys, recent_keys):
20377 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
20378 (this_single_command_key_start, echoing, last_auto_save):
20379 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
20380 (command_loop, echo_now, keyboard_init_hook, help_char_p):
20381 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
20382 (Vlispy_mouse_stem, double_click_count):
20383 Now static.
20384 (force_auto_save_soon): Define only if SIGDANGER.
20385 (ignore_mouse_drag_p): Now static if
20386 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
20387 (print_help): Remove; unused.
20388 (stop_character, last_timer_event): Mark as externally visible.
20389 * keyboard.h (ignore_mouse_drag_p): Declare only if
20390 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
20391 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
20392 * lisp.h (echoing): Remove decl.
20393 (force_auto_save_soon): Declare only if SIGDANGER.
20394 * xdisp.c (redisplay_window): Simplify code, to make it more
20395 obvious that ignore_mouse_drag_p is not accessed if !defined
20396 USE_GTK && !defined HAVE_NS.
20397
20398 * intervals.c: Make symbols static if they're not exported.
20399 (merge_properties_sticky, merge_interval_right, delete_interval):
20400 Now static.
20401 * intervals.h (merge_interval_right, delete_interval): Remove decls.
20402
20403 * insdel.c: Make symbols static if they're not exported.
20404 However, leave prepare_to_modify_buffer alone. It's never
20405 called from outside this function, but that appears to be a bug.
20406 (combine_after_change_list, combine_after_change_buffer):
20407 (adjust_after_replace, signal_before_change): Now static.
20408 (adjust_after_replace_noundo): Remove; unused.
20409 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
20410 (signal_before_change): Remove decls.
20411
20412 * indent.c (val_compute_motion, val_vmotion): Now static.
20413
20414 * image.c: Make symbols static if they're not exported.
20415 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
20416 if USE_GTK.
20417 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
20418 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
20419
20420 * fringe.c (standard_bitmaps): Now static.
20421 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
20422
20423 * frame.c: Make symbols static if they're not exported.
20424 (x_report_frame_params, make_terminal_frame): Now static.
20425 (get_frame_param): Now static, unless HAVE_NS.
20426 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
20427 (x_get_resource_string): Remove; not used.
20428 * frame.h (make_terminal_frame, x_report_frame_params):
20429 (x_get_resource_string); Remove decls.
20430 (x_fullscreen_adjust): Declare only if WINDOWSNT.
20431 * lisp.h (get_frame_param): Declare only if HAVE_NS.
20432
20433 * font.c, fontset.c: Make symbols static if they're not exported.
20434 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
20435 (FACE_SUITABLE_FOR_CHAR_P): Use it.
20436 * font.c (font_close_object): Now static.
20437 * font.h (font_close_object): Remove.
20438 * fontset.c (FONTSET_OBJLIST): Remove.
20439 (free_realized_fontset) #if-0 the body, which does nothing.
20440 (face_suitable_for_char_p): #if-0, as it's never called.
20441 * fontset.h (face_suitable_for_char_p): Remove decl.
20442 * xfaces.c (face_at_string_position):
20443 Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
20444 since 0 is always ASCII.
20445
20446 * fns.c (weak_hash_tables): Now static.
20447
20448 * fileio.c: Make symbols static if they're not exported.
20449 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
20450 (Vwrite_region_annotation_buffers): Now static.
20451
20452 * eval.c: Make symbols static if they're not exported.
20453 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
20454 * lisp.h (backtrace_list): Remove decl.
20455
20456 * emacs.c: Make symbols static if they're not exported.
20457 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
20458 (fatal_error_code, fatal_error_signal_hook, standard_args):
20459 Now static.
20460 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
20461 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
20462 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
20463 * lisp.h (fatal_error_signal_hook): Remove decl.
20464 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
20465
20466 * editfns.c: Move a (normally-unused) function to its only use.
20467 * editfns.c, lisp.h (get_operating_system_release): Remove.
20468 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
20469 worth the hassle of breaking this out.
20470
20471 * xterm.c: Make symbols static if they're not exported.
20472 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
20473 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
20474 (x_destroy_window, x_delete_display):
20475 Now static.
20476 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
20477 (x_mouse_leave): Remove; unused.
20478 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
20479 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
20480 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
20481 Remove decls.
20482 (x_mouse_leave): Declare only if WINDOWSNT.
20483 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
20484 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
20485 USE_X_TOOLKIT.
20486
20487 * ftxfont.c: Make symbols static if they're not exported.
20488 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
20489 HAVE_FREETYPE.
20490 * font.h (ftxfont_driver): Likewise.
20491
20492 * xfns.c: Make symbols static if they're not exported.
20493 (x_last_font_name, x_display_info_for_name):
20494 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
20495 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
20496 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
20497 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
20498 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
20499 (last_show_tip_args): Now static.
20500 (xic_defaut_fontset, xic_create_fontsetname): Define only if
20501 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
20502 (x_screen_planes): Remove; unused.
20503 * dispextern.h (x_screen_planes): Remove decl.
20504
20505 * dispnew.c: Make symbols static if they're not exported.
20506 * dispextern.h (redraw_garbaged_frames, scrolling):
20507 (increment_row_positions): Remove.
20508 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
20509 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
20510 Now static.
20511 (redraw_garbaged_frames): Remove; unused.
20512
20513 * xfaces.c: Make symbols static if they're not exported.
20514 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
20515 Remove decls.
20516 * xterm.h (defined_color): Remove decls.
20517 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
20518 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
20519 (menu_face_changed_default, defined_color, free_realized_face):
20520 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
20521 (ascii_face_of_lisp_face): Remove; unused.
20522
20523 * xdisp.c: Make symbols static if they're not exported.
20524 * dispextern.h (scratch_glyph_row, window_box_edges):
20525 (glyph_to_pixel_coords, set_cursor_from_row):
20526 (get_next_display_element, set_iterator_to_next):
20527 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
20528 (show_mouse_face): Remove decls
20529 * frame.h (message_buf_print): Likewise.
20530 * lisp.h (pop_message, set_message, check_point_in_composition):
20531 Likewise.
20532 * xterm.h (set_vertical_scroll_bar): Likewise.
20533 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
20534 (message_buf_print, scratch_glyph_row, displayed_buffer):
20535 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
20536 (get_next_display_element, show_mouse_face, window_box_edges):
20537 (frame_to_window_pixel_xy, check_point_in_composition):
20538 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
20539 (glyph_to_pixel_coords): Remove; unused.
20540
20541 * dired.c (file_name_completion): Now static.
20542
20543 * dbusbind.c (xd_in_read_queued_messages): Now static.
20544
20545 * lisp.h (circular_list_error, FOREACH): Remove; unused.
20546 * data.c (circular_list_error): Remove.
20547
20548 * commands.h (last_point_position, last_point_position_buffer):
20549 (last_point_position_window): Remove decls.
20550 * keyboard.c: Make these variables static.
20551
20552 * coding.h (coding, code_convert_region, encode_coding_gap):
20553 Remove decls.
20554 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
20555 (iso_code_class, detect_coding, code_convert_region): Now static.
20556 (encode_coding_gap): Remove; unused.
20557
20558 * chartab.c (chartab_chars, chartab_bits): Now static.
20559
20560 * charset.h (charset_iso_8859_1): Remove decl.
20561 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
20562 Now static.
20563
20564 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
20565 * ccl.c (Vccl_program_table): Now static.
20566 (check_ccl_update): Remove; unused.
20567
20568 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
20569 * category.h: ... from here.
20570 * category.c (check_category_table, set_category_set): Now static.
20571
20572 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
20573 * lisp.h: Remove these decls.
20574
20575 * buffer.c (buffer_count): Remove unused var.
20576
20577 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
20578 so that it's not optimized away.
20579 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
20580 * dispextern.h (bidi_dump_cached_states): Remove, since it's
20581 exported only to the debugger.
20582
20583 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
20584 * atimer.h (run_all_atimers): Remove; not exported.
20585
20586 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
20587 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
20588 was inaccessible from Lisp.
20589 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
20590 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
20591
20592 alloc.c: Import and export fewer symbols, and remove unused items.
20593 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
20594 is defined.
20595 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
20596 it's not optimized away by whole-program optimization.
20597 (message_enable_multibyte, free_misc): Remove.
20598 (catchlist, handlerlist, mark_backtrace):
20599 Declare only if BYTE_MARK_STACK.
20600 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
20601 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
20602 (message_enable_multibyte): Remove decl.
20603 (free_misc, interval_free_list, float_block, float_block_index):
20604 (n_float_blocks, float_free_list, cons_block, cons_block_index):
20605 (cons_free_list, last_marked_index):
20606 Now static.
20607 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
20608 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
20609 (mark_backtrace): Define only if BYTE_MARK_STACK.
20610 * xdisp.c (message_enable_multibyte): Now static.
20611
20612 Declare Lisp_Object Q* variables to be 'static' if not exported.
20613 This makes it easier for human readers (and static analyzers)
20614 to see whether these variables are used from other modules.
20615 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
20616 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
20617 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
20618 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
20619 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
20620 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
20621 * xmenu.c, xselect.c:
20622 Declare Q* vars static if they are not used in other modules.
20623 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
20624 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
20625 Remove decls of unexported vars.
20626 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
20627
20628 * lisp.h (DEFINE_FUNC): Make sname 'static'.
20629
20630 Make Emacs functions such as Fatom 'static' by default.
20631 This makes it easier for human readers (and static analyzers)
20632 to see whether these functions can be called from other modules.
20633 DEFUN now defines a static function. To make the function external
20634 so that it can be used in other C modules, use the new macro DEFUE.
20635 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
20636 (Finit_image_library):
20637 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
20638 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
20639 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
20640 Remove decls, since these functions are now static.
20641 (Funintern, Fget_internal_run_time): New decls, since these functions
20642 were already external.
20643
20644 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
20645 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
20646 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
20647 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
20648 * keyboard.c, keymap.c, lread.c:
20649 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
20650 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
20651 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
20652 Mark functions with DEFUE instead of DEFUN,
20653 if they are used in other modules.
20654 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
20655 decls for now-static functions.
20656 * buffer.h (Fdelete_overlay): Remove decl.
20657 * callproc.c (Fgetenv_internal): Mark as internal.
20658 * composite.c (Fremove_list_of_text_properties): Remove decl.
20659 (Fcomposition_get_gstring): New forward static decl.
20660 * composite.h (Fcomposite_get_gstring): Remove decl.
20661 * dired.c (Ffile_attributes): New forward static decl.
20662 * doc.c (Fdocumntation_property): New forward static decl.
20663 * eval.c (Ffetch_bytecode): New forward static decl.
20664 (Funintern): Remove extern decl; now in .h file where it belongs.
20665 * fileio.c (Fmake_symbolic_link): New forward static decl.
20666 * image.c (Finit_image_library): New forward static decl.
20667 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
20668 * intervals.h (Fprevious_property_change):
20669 (Fremove_list_of_text_properties): Remove decls.
20670 * keyboard.c (Fthis_command_keys): Remove decl.
20671 (Fcommand_execute): New forward static decl.
20672 * keymap.c (Flookup_key): New forward static decl.
20673 (Fcopy_keymap): Now static.
20674 * keymap.h (Flookup_key): Remove decl.
20675 * process.c (Fget_process): New forward static decl.
20676 (Fprocess_datagram_address): Mark as internal.
20677 * syntax.c (Fsyntax_table_p): New forward static decl.
20678 (skip_chars): Remove duplicate decl.
20679 * textprop.c (Fprevious_property_change): New forward static decl.
20680 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
20681 Now internal.
20682 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
20683 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
20684
20685 * editfns.c (Fformat): Remove unreachable code.
20686
20687 2011-04-14 Andreas Schwab <schwab@linux-m68k.org>
20688
20689 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
20690 change. (Bug#8496)
20691
20692 2011-04-13 Eli Zaretskii <eliz@gnu.org>
20693
20694 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
20695 when at ZV. (Bug#8487)
20696
20697 2011-04-12 Andreas Schwab <schwab@linux-m68k.org>
20698
20699 * charset.c (Fclear_charset_maps): Use xfree instead of free.
20700 (Bug#8437)
20701 * keyboard.c (parse_tool_bar_item): Likewise.
20702 * sound.c (sound_cleanup, alsa_close): Likewise.
20703 * termcap.c (tgetent): Likewise.
20704 * xfns.c (x_default_font_parameter): Likewise.
20705 * xsettings.c (read_and_apply_settings): Likewise.
20706
20707 * alloc.c (overrun_check_malloc, overrun_check_realloc)
20708 (overrun_check_free): Protoize.
20709
20710 2011-04-12 Paul Eggert <eggert@cs.ucla.edu>
20711
20712 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
20713 since callers should never pass a negative size.
20714 Change the signature to match that of plain 'read' and 'write'; see
20715 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
20716 * lisp.h: Update prototypes of emacs_write and emacs_read.
20717
20718 2011-04-11 Eli Zaretskii <eliz@gnu.org>
20719
20720 * xdisp.c (redisplay_window): Don't try to determine the character
20721 position of the scroll margin if the window start point w->startp
20722 is outside the buffer's accessible region. (Bug#8468)
20723
20724 2011-04-10 Eli Zaretskii <eliz@gnu.org>
20725
20726 Fix write-region and its subroutines for buffers > 2GB.
20727 * fileio.c (a_write, e_write): Modify declaration of arguments and
20728 local variables to support buffers larger than 2GB.
20729 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
20730
20731 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
20732 argument, local variables, and return value.
20733
20734 * lisp.h: Update prototypes of emacs_write and emacs_read.
20735
20736 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
20737
20738 2011-04-10 Paul Eggert <eggert@cs.ucla.edu>
20739
20740 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
20741
20742 Fix more problems found by GCC 4.6.0's static checks.
20743
20744 * xdisp.c (vmessage): Use a better test for character truncation.
20745
20746 * charset.c (load_charset_map): <, not <=, for optimization,
20747 and to avoid potential problems with integer overflow.
20748 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
20749 * casetab.c (set_identity, shuffle): Likewise.
20750 * editfns.c (Fformat): Likewise.
20751 * syntax.c (skip_chars): Likewise.
20752
20753 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
20754 This also lets GCC 4.6.0 generate slightly better loop code.
20755
20756 * callint.c (Fcall_interactively): <, not <=, for optimization.
20757 (Fcall_interactively): Count the number of arguments produced,
20758 not the number of arguments given. This is simpler and lets GCC
20759 4.6.0 generate slightly better code.
20760
20761 * ftfont.c: Distingish more carefully between FcChar8 and char.
20762 The previous code passed unsigned char * to a functions like
20763 strlen and xstrcasecmp that expect char *, which does not
20764 conform to the C standard.
20765 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
20766 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
20767 char * when the C standard requires it.
20768
20769 * keyboard.c (read_char): Remove unused var.
20770
20771 * eval.c: Port to Windows vsnprintf (Bug#8435).
20772 Include <limits.h>.
20773 (SIZE_MAX): Define if the headers do not.
20774 (verror): Do not give up if vsnprintf returns a negative count.
20775 Instead, grow the buffer. This ports to Windows vsnprintf, which
20776 does not conform to C99. Problem reported by Eli Zaretskii.
20777 Also, simplify the allocation scheme, by avoiding the need for
20778 calling realloc, and removing the ALLOCATED variable.
20779
20780 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
20781
20782 Remove invocations of doprnt, as Emacs now uses vsnprintf.
20783 But keep the doprint source code for now, as we might revamp it
20784 and use it again (Bug#8435).
20785 * lisp.h (doprnt): Remove.
20786 * Makefile.in (base_obj): Remove doprnt.o.
20787 * deps.mk (doprnt.o): Remove.
20788
20789 error: Print 32- and 64-bit integers portably (Bug#8435).
20790 Without this change, on typical 64-bit hosts error ("...%d...", N)
20791 was used to print both 32- and 64-bit integers N, which relied on
20792 undefined behavior.
20793 * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro.
20794 * lisp.h (error, verror): Mark as printf-like functions.
20795 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
20796 Report overflow in size calculations when allocating printf buffer.
20797 Do not truncate output string at its first null byte.
20798 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
20799 Truncate the output at a character boundary, since vsnprintf does not
20800 do that.
20801 * charset.c (check_iso_charset_parameter): Convert internal
20802 character to string before calling 'error', since %c now has the
20803 printf meaning.
20804 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
20805 overflow when computing char to be passed to 'error'. Do not
20806 pass Lisp_Object to 'error'; pass the integer instead.
20807 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
20808 formatted with plain %d.
20809
20810 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
20811
20812 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
20813
20814 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
20815
20816 * xterm.c (x_catch_errors): Remove duplicate declaration.
20817
20818 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
20819
20820 * xdisp.c, lisp.h (message_nolog): Remove; unused.
20821
20822 2011-04-10 Jim Meyering <meyering@redhat.com>
20823
20824 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
20825 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
20826 return ssize_t not "int", and use size_t as the buffer length.
20827 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
20828 * gnutls.h: Update declarations.
20829 * process.c (read_process_output): Use ssize_t, to match.
20830 (send_process): Likewise.
20831
20832 2011-04-09 Chong Yidong <cyd@stupidchicken.com>
20833
20834 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
20835
20836 2011-04-09 Chong Yidong <cyd@stupidchicken.com>
20837
20838 * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
20839 Use unsigned char, to match FcChar8 type definition.
20840
20841 * xterm.c (handle_one_xevent):
20842 * xmenu.c (create_and_show_popup_menu):
20843 * xselect.c (x_decline_selection_request)
20844 (x_reply_selection_request): Avoid type-punned deref of X events.
20845
20846 2011-04-09 Eli Zaretskii <eliz@gnu.org>
20847
20848 Fix some uses of `int' instead of EMACS_INT.
20849 * search.c (string_match_1, fast_string_match)
20850 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
20851 (scan_buffer, find_next_newline_no_quit)
20852 (find_before_next_newline, search_command, Freplace_match)
20853 (Fmatch_data): Make some `int' variables be EMACS_INT.
20854
20855 * xdisp.c (display_count_lines): 3rd argument and return value now
20856 EMACS_INT. All callers changed.
20857 (pint2hrstr): Last argument is now EMACS_INT.
20858
20859 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
20860 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
20861 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
20862 (decode_coding_utf_16, decode_coding_emacs_mule)
20863 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
20864 (decode_coding_ccl, decode_coding_charset)
20865 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
20866 (decode_coding_iso_2022, decode_coding_emacs_mule)
20867 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
20868 <char_offset, last_offset>: Declare EMACS_INT.
20869 (encode_coding_utf_8, encode_coding_utf_16)
20870 (encode_coding_emacs_mule, encode_invocation_designation)
20871 (encode_designation_at_bol, encode_coding_iso_2022)
20872 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
20873 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
20874 Declare EMACS_INT.
20875 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
20876 (encode_invocation_designation): Last argument P_NCHARS is now
20877 EMACS_INT.
20878 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
20879 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
20880
20881 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
20882 All users changed.
20883
20884 * ccl.c (Fccl_execute_on_string): Declare some variables
20885 EMACS_INT.
20886
20887 2011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
20888
20889 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
20890
20891 2011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
20892
20893 * process.c (Fformat_network_address): Doc fix.
20894
20895 2011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
20896
20897 * xml.c (parse_region): Avoid creating spurious whitespace nodes.
20898
20899 2011-04-08 Chong Yidong <cyd@stupidchicken.com>
20900
20901 * keyboard.c (read_char): Call Lisp function help-form-show,
20902 instead of using internal_with_output_to_temp_buffer.
20903 (Qhelp_form_show): New var.
20904 (syms_of_keyboard): Use DEFSYM macro.
20905
20906 * print.c (internal_with_output_to_temp_buffer): Function deleted.
20907
20908 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
20909
20910 2011-04-06 Chong Yidong <cyd@stupidchicken.com>
20911
20912 * process.c (Flist_processes): Remove to Lisp.
20913 (list_processes_1): Delete.
20914
20915 2011-04-06 Eli Zaretskii <eliz@gnu.org>
20916
20917 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
20918
20919 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
20920
20921 2011-04-06 Paul Eggert <eggert@cs.ucla.edu>
20922
20923 Fix more problems found by GCC 4.6.0's static checks.
20924
20925 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
20926
20927 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
20928
20929 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
20930
20931 * xdisp.c (vmessage): Mark as a printf-like function.
20932
20933 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
20934
20935 * sound.c (sound_warning): Don't crash if arg contains a printf format.
20936
20937 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
20938 printf-like functions.
20939 (tiff_load): Add casts to remove these marks before passing them
20940 to system-supplied API.
20941
20942 * eval.c (Fsignal): Remove excess argument to 'fatal'.
20943
20944 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
20945 This avoids several warnings with gcc -Wstrict-overflow.
20946 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
20947 directly, rather than having caller test rule sign. This avoids
20948 some unnecessary tests.
20949 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
20950 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
20951 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
20952
20953 * xfont.c (xfont_text_extents): Remove var that was set but not used.
20954 (xfont_open): Avoid unnecessary tests.
20955
20956 * composite.c (composition_gstring_put_cache): Use unsigned integer.
20957
20958 * composite.h, composite.c (composition_gstring_put_cache):
20959 Use EMACS_INT, not int, for length.
20960
20961 * composite.h (COMPOSITION_DECODE_REFS): New macro,
20962 breaking out part of COMPOSITION_DECODE_RULE.
20963 (COMPOSITION_DECODE_RULE): Use it.
20964 * composite.c (get_composition_id): Remove unused local vars,
20965 by using the new macro.
20966
20967 * textprop.c (set_text_properties_1): Change while to do-while,
20968 since the condition is always true at first.
20969
20970 * intervals.c (graft_intervals_into_buffer): Mark var as used.
20971 (interval_deletion_adjustment): Return unsigned value.
20972 All uses changed.
20973
20974 * process.c (list_processes_1, create_pty, read_process_output):
20975 (exec_sentinel): Remove vars that were set but not used.
20976 (create_pty): Remove unnecessary "volatile"s.
20977 (Fnetwork_interface_info): Avoid possibility of int overflow.
20978 (read_process_output): Do adaptive read buffering even if carryover.
20979 (read_process_output): Simplify nbytes computation if buffered.
20980
20981 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
20982
20983 * syntax.c (scan_words): Remove var that was set but not used.
20984 (update_syntax_table): Use unsigned instead of int.
20985
20986 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
20987 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
20988 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
20989
20990 * print.c (print_error_message): Avoid int overflow.
20991
20992 * font.c (font_list_entities): Redo for clarity,
20993 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
20994
20995 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
20996 (font_score): Avoid potential overflow in diff calculation.
20997
20998 * fns.c (substring_both): Remove var that is set but not used.
20999 (sxhash): Redo loop for clarity and to avoid wraparound warning.
21000
21001 * eval.c (funcall_lambda): Rename local to avoid shadowing.
21002
21003 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
21004 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
21005 can always succeed if overflow has undefined behavior.
21006
21007 * search.c (boyer_moore, wordify): Remove vars set but not used.
21008 (wordify): Omit three unnecessary tests.
21009
21010 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
21011 All callers changed. This avoids the need for an unused var.
21012
21013 * casefiddle.c (casify_region): Remove var that is set but not used.
21014
21015 * dired.c (file_name_completion): Remove var that is set but not used.
21016
21017 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
21018
21019 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
21020 (Finsert_file_contents): Remove unnecessary code checking fd.
21021
21022 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
21023 Check for integer overflow on size calculations.
21024
21025 * buffer.c (Fprevious_overlay_change): Remove var that is set
21026 but not used.
21027
21028 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
21029 Remove vars that are set but not used.
21030 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
21031 (timer_check_2): Mark vars as initialized.
21032
21033 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
21034
21035 * image.c (lookup_image): Remove var that is set but not used.
21036 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
21037
21038 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
21039 that are set but not used.
21040
21041 * xfns.c (make_invisible_cursor): Don't return garbage
21042 if XCreateBitmapFromData fails (Bug#8410).
21043
21044 * xselect.c (x_get_local_selection, x_handle_property_notify):
21045 Remove vars that are set but not used.
21046
21047 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
21048 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
21049
21050 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
21051 Remove var that is set but not used.
21052 (scroll_bar_windows_size): Now size_t, not int.
21053 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
21054 Check for overflow.
21055
21056 * xfaces.c (realize_named_face): Remove vars that are set but not used.
21057 (map_tty_color) [!defined MSDOS]: Likewise.
21058
21059 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
21060
21061 * coding.c: Remove vars that are set but not used.
21062 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
21063 All callers changed.
21064 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
21065 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
21066 (decode_coding_charset): Remove vars that are set but not used.
21067
21068 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
21069 that is set but not used.
21070
21071 * print.c (print_object): Remove var that is set but not used.
21072
21073 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
21074 The gnulib version avoids calling malloc in the usual case,
21075 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
21076 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
21077 * filelock.c (current_lock_owner): Likewise.
21078 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
21079 * sysdep.c: Include allocator.h, careadlinkat.h.
21080 (emacs_no_realloc_allocator): New static constant.
21081 (emacs_readlink): New function.
21082 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
21083 ../lib/careadlinkat.h.
21084
21085 2011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
21086
21087 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
21088 first non-nil return value).
21089
21090 2011-04-03 Jan Djärv <jan.h.d@swipnet.se>
21091
21092 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
21093 if not defined (Bug#8403).
21094
21095 2011-04-02 Juanma Barranquero <lekktu@gmail.com>
21096
21097 * xdisp.c (display_count_lines): Remove parameter `start',
21098 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
21099 (get_char_face_and_encoding): Remove parameter `multibyte_p',
21100 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
21101 (fill_stretch_glyph_string): Remove parameters `row' and `area',
21102 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
21103 and thereabouts. All callers changed.
21104 (get_per_char_metric): Remove parameter `f', unused since
21105 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
21106
21107 2011-04-02 Jim Meyering <meyering@redhat.com>
21108
21109 do not dereference NULL upon failed strdup
21110 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
21111 (ns_get_family): Likewise.
21112
21113 2011-04-02 Juanma Barranquero <lekktu@gmail.com>
21114
21115 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
21116
21117 2011-04-02 Jan Djärv <jan.h.d@swipnet.se>
21118
21119 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
21120 later (Bug#8403).
21121
21122 2011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
21123
21124 Add lexical binding.
21125
21126 * window.c (Ftemp_output_buffer_show): New fun.
21127 (Fsave_window_excursion):
21128 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
21129
21130 * lread.c (lisp_file_lexically_bound_p): New function.
21131 (Fload): Bind Qlexical_binding.
21132 (readevalloop): Remove `evalfun' arg.
21133 Bind Qinternal_interpreter_environment.
21134 (Feval_buffer): Bind Qlexical_binding.
21135 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
21136 Mark as dynamic.
21137 (syms_of_lread): Declare `lexical-binding'.
21138
21139 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
21140
21141 * keyboard.c (eval_dyn): New fun.
21142 (menu_item_eval_property): Use it.
21143
21144 * image.c (parse_image_spec): Use Ffunctionp.
21145
21146 * fns.c (concat, mapcar1): Accept byte-code-functions.
21147
21148 * eval.c (Fsetq): Handle lexical vars.
21149 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
21150 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
21151 (FletX, Flet): Obey lexical binding.
21152 (Fcommandp): Handle closures.
21153 (Feval): New `lexical' arg.
21154 (eval_sub): New function extracted from Feval. Use it almost
21155 everywhere where Feval was used. Look up vars in lexical env.
21156 Handle closures.
21157 (Ffunctionp): Move from subr.el.
21158 (Ffuncall): Handle closures.
21159 (apply_lambda): Remove `eval_flags'.
21160 (funcall_lambda): Handle closures and new byte-code-functions.
21161 (Fspecial_variable_p): New function.
21162 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
21163 but without exporting it to Lisp.
21164
21165 * doc.c (Fdocumentation, store_function_docstring):
21166 * data.c (Finteractive_form): Handle closures.
21167
21168 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
21169 interactive spec.
21170
21171 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
21172 New byte-codes.
21173 (exec_byte_code): New function extracted from Fbyte_code to handle new
21174 calling convention for byte-code-functions. Add new byte-codes.
21175
21176 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
21177
21178 * alloc.c (Fmake_symbol): Init new `declared_special' field.
21179
21180 2011-03-31 Juanma Barranquero <lekktu@gmail.com>
21181
21182 * xdisp.c (redisplay_internal): Fix prototype.
21183
21184 2011-03-31 Eli Zaretskii <eliz@gnu.org>
21185
21186 * xdisp.c (SCROLL_LIMIT): New macro.
21187 (try_scrolling): Use it when setting scroll_limit.
21188 Limit scrolling to 100 screen lines.
21189 (redisplay_window): Even when falling back on "recentering",
21190 position point in the window according to scroll-conservatively,
21191 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
21192
21193 (try_scrolling): When point is above the window, allow searching
21194 as far as scroll_max, or one screenful, to compute vertical
21195 distance from PT to the scroll margin position. This prevents
21196 try_scrolling from unnecessarily failing when
21197 scroll-conservatively is set to a value slightly larger than the
21198 window height. Clean up the case of PT below the margin at bottom
21199 of window: scroll_max can no longer be INT_MAX. When aggressive
21200 scrolling is in use, don't let point enter the opposite scroll
21201 margin as result of the scroll.
21202 (syms_of_xdisp) <scroll-conservatively>: Document the
21203 threshold of 100 lines for never-recentering scrolling.
21204
21205 2011-03-31 Juanma Barranquero <lekktu@gmail.com>
21206
21207 * dispextern.h (move_it_by_lines):
21208 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
21209 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
21210 (message_log_check_duplicate): Remove parameters `prev_bol' and
21211 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
21212 (redisplay_internal): Remove parameter `preserve_echo_area',
21213 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
21214
21215 * indent.c (Fvertical_motion):
21216 * window.c (window_scroll_pixel_based, Frecenter):
21217 Don't pass `need_y_p' to `move_it_by_lines'.
21218
21219 2011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
21220
21221 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
21222 steal a few bits to be more compact.
21223 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
21224 Remove unneeded casts.
21225
21226 * bytecode.c (Fbyte_code): CAR and CDR can GC.
21227
21228 2011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
21229
21230 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
21231 binding" message (bug#7967).
21232
21233 2011-03-30 Paul Eggert <eggert@cs.ucla.edu>
21234
21235 Fix more problems found by GCC 4.6.0's static checks.
21236
21237 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
21238 Remove unused local var.
21239
21240 * editfns.c (Fmessage_box): Remove unused local var.
21241
21242 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
21243 (note_mode_line_or_margin_highlight, note_mouse_highlight):
21244 Omit unused local vars.
21245 * window.c (shrink_windows): Omit unused local var.
21246 * menu.c (digest_single_submenu): Omit unused local var.
21247 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
21248 Omit unused local var.
21249
21250 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
21251 Don't assume string length fits in int.
21252 (keyremap_step, read_key_sequence): Use size_t for sizes.
21253 (read_key_sequence): Don't check last_real_key_start redundantly.
21254
21255 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
21256 instead of alloca (Bug#8344).
21257
21258 * eval.c (Fbacktrace): Don't assume nargs fits in int.
21259 (Fbacktrace_frame): Don't assume nframes fits in int.
21260
21261 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
21262
21263 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
21264 concerns.
21265
21266 * term.c (produce_glyphless_glyph): Remove unnecessary test.
21267
21268 * cm.c (calccost): Turn while-do into do-while, for clarity.
21269
21270 * keyboard.c (syms_of_keyboard): Use the same style as later
21271 in this function when indexing through an array. This also
21272 works around GCC bug 48267.
21273
21274 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
21275
21276 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
21277
21278 * chartab.c (sub_char_table_ref_and_range): Redo for slight
21279 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
21280
21281 * keyboard.c, keyboard.h (num_input_events): Now size_t.
21282 This avoids undefined behavior on integer overflow, and is a bit
21283 more convenient anyway since it is compared to a size_t variable.
21284
21285 Variadic C functions now count arguments with size_t, not int.
21286 This avoids an unnecessary limitation on 64-bit machines, which
21287 caused (substring ...) to crash on large vectors (Bug#8344).
21288 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
21289 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
21290 All variadic functions and their callers changed accordingly.
21291 (struct gcpro.nvars): Now size_t, not int. All uses changed.
21292 * data.c (arith_driver, float_arith_driver): Likewise.
21293 * editfns.c (general_insert_function): Likewise.
21294 * eval.c (struct backtrace.nargs, interactive_p)
21295 (internal_condition_case_n, run_hook_with_args, apply_lambda)
21296 (funcall_lambda, mark_backtrace): Likewise.
21297 * fns.c (concat): Likewise.
21298 * frame.c (x_set_frame_parameters): Likewise.
21299 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
21300 0 if not found, not -1. All callers changed.
21301
21302 * alloc.c (garbage_collect): Don't assume stack size fits in int.
21303 (stack_copy_size): Now size_t, not int.
21304 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
21305
21306 2011-03-28 Juanma Barranquero <lekktu@gmail.com>
21307
21308 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
21309 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
21310 All callers changed.
21311
21312 * lisp.h (multibyte_char_to_unibyte):
21313 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
21314 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
21315 * character.h (CHAR_TO_BYTE8):
21316 * cmds.c (internal_self_insert):
21317 * editfns.c (general_insert_function):
21318 * keymap.c (push_key_description):
21319 * search.c (Freplace_match):
21320 * xdisp.c (message_dolog, set_message_1): All callers changed.
21321
21322 2011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
21323
21324 * keyboard.c (safe_run_hook_funcall): New function.
21325 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
21326 don't set the hook to nil, but remove the offending function instead.
21327 (Qcommand_hook_internal): Remove, unused.
21328 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
21329 Vcommand_hook_internal.
21330
21331 * eval.c (enum run_hooks_condition): Remove.
21332 (funcall_nil, funcall_not): New functions.
21333 (run_hook_with_args): Call each function through a `funcall' argument.
21334 Remove `cond' argument, now redundant.
21335 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
21336 (Frun_hook_with_args_until_failure): Adjust accordingly.
21337 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
21338
21339 2011-03-28 Juanma Barranquero <lekktu@gmail.com>
21340
21341 * dispextern.h (string_buffer_position): Remove declaration.
21342
21343 * print.c (strout): Remove parameter `multibyte', unused since
21344 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
21345
21346 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
21347 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
21348 All callers changed.
21349
21350 * w32.c (_wsa_errlist): Use braces for struct initializers.
21351
21352 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
21353 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
21354 All callers changed.
21355 (string_buffer_position): Likewise. Also, make static (it's never
21356 used outside xdisp.c).
21357 (cursor_row_p): Remove parameter `w', unused since
21358 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
21359 (decode_mode_spec): Remove parameter `precision', introduced during
21360 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
21361 All callers changed.
21362
21363 2011-03-27 Jan Djärv <jan.h.d@swipnet.se>
21364
21365 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
21366
21367 2011-03-27 Anders Lindgren <andlind@gmail.com>
21368
21369 * nsterm.m (ns_menu_bar_is_hidden): New variable.
21370 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
21371 (ns_update_auto_hide_menu_bar): New functions.
21372 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
21373 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
21374 ns_constrain_all_frames.
21375 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
21376 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
21377
21378 2011-03-27 Jan Djärv <jan.h.d@swipnet.se>
21379
21380 * nsmenu.m (runDialogAt): Remove argument to timer_check.
21381
21382 2011-03-27 Glenn Morris <rgm@gnu.org>
21383
21384 * syssignal.h: Replace RETSIGTYPE with void.
21385 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
21386 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
21387 Replace SIGTYPE with void everywhere.
21388 * s/usg5-4-common.h (SIGTYPE): Remove definition.
21389 * s/template.h (SIGTYPE): Remove commented out definition.
21390
21391 2011-03-26 Eli Zaretskii <eliz@gnu.org>
21392
21393 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
21394 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
21395
21396 2011-03-26 Juanma Barranquero <lekktu@gmail.com>
21397
21398 * w32.c (read_unc_volume): Use parameter `henum', instead of
21399 global variable `wget_enum_handle'.
21400
21401 * keymap.c (describe_vector): Remove parameters `indices' and
21402 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
21403 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
21404
21405 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
21406
21407 * keyboard.c (timer_check): Remove parameter `do_it_now',
21408 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
21409 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
21410 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
21411
21412 * keyboard.c (read_char):
21413 * w32menu.c (w32_menu_display_help):
21414 * xmenu.c (show_help_event, menu_help_callback):
21415 Adjust calls to `show_help_echo'.
21416
21417 * gtkutil.c (xg_maybe_add_timer):
21418 * keyboard.c (readable_events):
21419 * process.c (wait_reading_process_output):
21420 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
21421
21422 * insdel.c (adjust_markers_gap_motion):
21423 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
21424 (gap_left, gap_right): Don't call it.
21425
21426 2011-03-25 Chong Yidong <cyd@stupidchicken.com>
21427
21428 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
21429 incurred during fontification.
21430
21431 2011-03-25 Juanma Barranquero <lekktu@gmail.com>
21432
21433 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
21434 (DEFVAR_PER_BUFFER): Don't pass it.
21435
21436 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
21437 (scrolling_window): Don't pass it.
21438
21439 2011-03-25 Juanma Barranquero <lekktu@gmail.com>
21440
21441 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
21442
21443 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
21444 and `suffix'.
21445 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
21446 of variables specific to SELinux and computation of `encoded_absname'.
21447
21448 * image.c (XPutPixel): Remove unused variable `height'.
21449
21450 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
21451
21452 * unexw32.c (get_section_info): Remove unused variable `section'.
21453
21454 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
21455 (system_process_attributes): Remove unused variable `sess'.
21456 (sys_read): Remove unused variable `err'.
21457
21458 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
21459 (w32_wnd_proc): Remove unused variable `isdead'.
21460 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
21461 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
21462 (x_create_tip_frame): Remove unused variable `tem'.
21463
21464 * w32inevt.c (w32_console_read_socket):
21465 Remove unused variable `no_events'.
21466
21467 * w32term.c (x_draw_composite_glyph_string_foreground):
21468 Remove unused variable `width'.
21469
21470 2011-03-24 Juanma Barranquero <lekktu@gmail.com>
21471
21472 * w32term.c (x_set_glyph_string_clipping):
21473 Don't pass uninitialized region to CombineRgn.
21474
21475 2011-03-23 Juanma Barranquero <lekktu@gmail.com>
21476
21477 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
21478 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
21479 (Fx_close_connection): Remove unused variable `i'.
21480
21481 * w32font.c (w32font_draw): Return number of glyphs.
21482 (w32font_open_internal): Remove unused variable `i'.
21483 (w32font_driver): Add missing initializer.
21484
21485 * w32menu.c (utf8to16): Remove unused variable `utf16'.
21486 (fill_in_menu): Remove unused variable `items_added'.
21487
21488 * w32term.c (last_mouse_press_frame): Remove static global variable.
21489 (w32_clip_to_row): Remove unused variable `f'.
21490 (x_delete_terminal): Remove unused variable `i'.
21491
21492 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
21493 (NOTHING): Remove unused static global variable.
21494 (uniscribe_check_otf): Remove unused variable `table'.
21495 (uniscribe_font_driver): Add missing initializers.
21496
21497 2011-03-23 Julien Danjou <julien@danjou.info>
21498
21499 * term.c (Fsuspend_tty, Fresume_tty):
21500 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
21501 * window.c (temp_output_buffer_show):
21502 * insdel.c (signal_before_change):
21503 * frame.c (Fhandle_switch_frame):
21504 * fileio.c (Fdo_auto_save):
21505 * emacs.c (Fkill_emacs):
21506 * editfns.c (save_excursion_restore):
21507 * cmds.c (internal_self_insert):
21508 * callint.c (Fcall_interactively):
21509 * buffer.c (Fkill_all_local_variables):
21510 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
21511 Use Frun_hooks.
21512 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
21513 unconditionally since it does the check itself.
21514
21515 2011-03-23 Paul Eggert <eggert@cs.ucla.edu>
21516
21517 Fix more problems found by GCC 4.5.2's static checks.
21518
21519 * coding.c (encode_coding_raw_text): Avoid unnecessary test
21520 the first time through the loop, since we know p0 < p1 then.
21521 This also avoids a gcc -Wstrict-overflow warning.
21522
21523 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
21524 leading to a memory leak, possible in functions like
21525 load_charset_map_from_file that can allocate an unbounded number
21526 of objects (Bug#8318).
21527
21528 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
21529 that could (at least in theory) be that large.
21530
21531 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
21532 This is less likely to overflow, and avoids undefined behavior if
21533 overflow does occur. All callers changed. Use strtoul to scan
21534 for the unsigned long integer.
21535 (pint2hrstr): Simplify and tune code slightly.
21536 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
21537
21538 * scroll.c (do_scrolling): Work around GCC bug 48228.
21539 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
21540
21541 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
21542 This also avoids a warning with gcc -Wstrict-overflow.
21543 (validate_x_resource_name): Simplify count usage.
21544 This also avoids a warning with gcc -Wstrict-overflow.
21545
21546 * fileio.c (Fcopy_file): Report error if fchown or fchmod
21547 fail (Bug#8306).
21548
21549 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
21550
21551 * process.c (Fmake_network_process): Use socklen_t, not int,
21552 where POSIX says socklen_t is required in portable programs.
21553 This fixes a porting bug on hosts like 64-bit HP-UX, where
21554 socklen_t is wider than int (Bug#8277).
21555 (Fmake_network_process, server_accept_connection):
21556 (wait_reading_process_output, read_process_output):
21557 Likewise.
21558
21559 * process.c: Rename or move locals to avoid shadowing.
21560 (list_processes_1, Fmake_network_process):
21561 (read_process_output_error_handler, exec_sentinel_error_handler):
21562 Rename or move locals.
21563 (Fmake_network_process): Define label "retry_connect" only if needed.
21564 (Fnetwork_interface_info): Fix pointer signedness.
21565 (process_send_signal): Add cast to avoid pointer signedness problem.
21566 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
21567 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
21568
21569 Make tparam.h and terminfo.c consistent.
21570 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
21571 Include tparam.h instead, since it declares them.
21572 * cm.h (PC): Remove extern decl; tparam.h now does this.
21573 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
21574 * terminfo.c: Include tparam.h, to check interfaces.
21575 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
21576 (tparam): Adjust signature to match interface in tparam.h;
21577 this removes some undefined behavior. Check that outstring and len
21578 are zero, which they always are with Emacs.
21579 * tparam.h (PC, BC, UP): New extern decls.
21580
21581 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
21582 (xftfont_open): Rename locals to avoid shadowing.
21583
21584 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
21585 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
21586 (OTF_TAG_SYM): Omit macro if not needed.
21587 (ftfont_list): Remove unused local.
21588 (get_adstyle_property, ftfont_pattern_entity):
21589 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
21590 Rename locals to avoid shadowing.
21591
21592 * xfont.c (xfont_list_family): Mark var as initialized.
21593
21594 * xml.c (make_dom): Now static.
21595
21596 * composite.c (composition_compute_stop_pos): Rename local to
21597 avoid shadowing.
21598 (composition_reseat_it): Remove unused locals.
21599 (find_automatic_composition, composition_adjust_point): Likewise.
21600 (composition_update_it): Mark var as initialized.
21601 (find_automatic_composition): Mark vars as initialized,
21602 with a FIXME (Bug#8290).
21603
21604 character.h: Rename locals to avoid shadowing.
21605 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
21606 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
21607 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
21608 (BUF_DEC_POS): Be more systematic about renaming local temporaries
21609 to avoid shadowing.
21610
21611 * textprop.c (property_change_between_p): Remove; unused.
21612
21613 * intervals.c (interval_start_pos): Now static.
21614
21615 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
21616
21617 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
21618 Rename locals to avoid shadowing.
21619
21620 * sound.c (wav_play, au_play, Fplay_sound_internal):
21621 Fix pointer signedness.
21622 (alsa_choose_format): Remove unused local var.
21623 (wav_play): Initialize a variable to 0, to prevent undefined
21624 behavior (Bug#8278).
21625
21626 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
21627
21628 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
21629
21630 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
21631 clobbering (Bug#8298).
21632 * sysdep.c (sys_subshell): Likewise.
21633 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
21634
21635 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
21636 This should get cleaned up, so that child_setup has the
21637 same signature on all platforms.
21638
21639 * callproc.c (call_process_cleanup): Now static.
21640 (relocate_fd): Rename locals to avoid shadowing.
21641
21642 2011-03-22 Chong Yidong <cyd@stupidchicken.com>
21643
21644 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
21645 not to be necessary, and produces flickering.
21646
21647 2011-03-20 Glenn Morris <rgm@gnu.org>
21648
21649 * config.in: Remove file.
21650
21651 2011-03-20 Juanma Barranquero <lekktu@gmail.com>
21652
21653 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
21654 are now in src/globals.h.
21655 (syms_of_minibuf): Remove spurious & from previous change.
21656
21657 2011-03-20 Leo Liu <sdl.web@gmail.com>
21658
21659 * minibuf.c (completing-read-function): New variable.
21660 (completing-read-default): Rename from completing-read.
21661 (completing-read): Call completing-read-function.
21662
21663 2011-03-19 Juanma Barranquero <lekktu@gmail.com>
21664
21665 * xfaces.c (Fx_load_color_file):
21666 Read color file from absolute filename (bug#8250).
21667
21668 2011-03-19 Juanma Barranquero <lekktu@gmail.com>
21669
21670 * makefile.w32-in: Update dependencies.
21671
21672 2011-03-17 Eli Zaretskii <eliz@gnu.org>
21673
21674 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
21675
21676 2011-03-17 Paul Eggert <eggert@cs.ucla.edu>
21677
21678 Fix more problems found by GCC 4.5.2's static checks.
21679
21680 * process.c (make_serial_process_unwind, send_process_trap):
21681 (sigchld_handler): Now static.
21682
21683 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
21684 That way, the code declares only the vars that it needs.
21685 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
21686 * s/cygwin.h (PTY_ITERATION): Likewise.
21687 * s/darwin.h (PTY_ITERATION): Likewise.
21688 * s/gnu-linux.h (PTY_ITERATION): Likewise.
21689
21690 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
21691 * process.c (allocate_pty): Don't declare stb unless it's needed.
21692
21693 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
21694 (CONSTANTLIM): Remove; unused.
21695 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
21696 Define only if needed.
21697
21698 * unexelf.c (unexec): Name an expression,
21699 to avoid gcc -Wbad-function-cast warning.
21700 Use a different way to cause a compilation error if anyone uses
21701 n rather than nn, a way that does not involve shadowing.
21702 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
21703
21704 * deps.mk (unexalpha.o): Remove; unused.
21705
21706 New file unexec.h, the (simple) interface for unexec (Bug#8267).
21707 * unexec.h: New file.
21708 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
21709 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
21710 Depend on unexec.h.
21711 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
21712 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
21713 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
21714 Change as necessary to match prototype in unexec.h.
21715
21716 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
21717 shadowing.
21718 (back_comment, skip_chars): Mark vars as initialized.
21719
21720 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
21721 Rename locals to avoid shadowing.
21722
21723 * lread.c (read1): Rewrite so as not to use empty "else".
21724 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
21725
21726 * print.c (Fredirect_debugging_output): Fix pointer signedess.
21727
21728 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
21729 warning when compiling print.c.
21730
21731 * font.c (font_unparse_fcname): Abort in an "impossible" situation
21732 instead of using an uninitialized var.
21733 (font_sort_entities): Mark var as initialized.
21734
21735 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
21736
21737 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
21738 pointers to constants.
21739 (font_parse_fcname): Remove unused vars.
21740 (font_delete_unmatched): Now static.
21741 (font_get_spec): Remove; unused.
21742 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
21743 (font_update_drivers, Ffont_get_glyphs, font_add_log):
21744 Rename or move locals to avoid shadowing.
21745
21746 * fns.c (require_nesting_list, require_unwind): Now static.
21747 (Ffillarray): Rename locals to avoid shadowing.
21748
21749 * floatfns.c (domain_error2): Define only if needed.
21750 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
21751
21752 * alloc.c (mark_backtrace): Move decl from here ...
21753 * lisp.h: ... to here, so that it can be checked.
21754
21755 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
21756 (Fdefvar): Rewrite so as not to use empty "else".
21757 (lisp_indirect_variable): Name an expression,
21758 to avoid gcc -Wbad-function-cast warning.
21759 (Fdefvar): Rename locals to avoid shadowing.
21760
21761 * callint.c (quotify_arg, quotify_args): Now static.
21762 (Fcall_interactively): Rename locals to avoid shadowing.
21763 Use const pointer when appropriate.
21764
21765 * lisp.h (get_system_name, get_operating_system_release):
21766 Move decls here, to check interfaces.
21767 * process.c (get_operating_system_release): Move decl to lisp.h.
21768 * xrdb.c (get_system_name): Likewise.
21769 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
21770 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
21771 some of which prompt warnings from gcc -Wbad-function-cast.
21772 (Fformat_time_string, Fencode_time, Finsert_char):
21773 (Ftranslate_region_internal, Fformat):
21774 Rename or remove local vars to avoid shadowing.
21775 (Ftranslate_region_internal): Mark var as initialized.
21776
21777 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
21778 avoid shadowing.
21779
21780 * lisp.h (eassert): Check that the argument compiles, even if
21781 ENABLE_CHECKING is not defined.
21782
21783 * data.c (Findirect_variable): Name an expression, to avoid
21784 gcc -Wbad-function-cast warning.
21785 (default_value, arithcompare, arith_driver, arith_error): Now static.
21786 (store_symval_forwarding): Rename local to avoid shadowing.
21787 (Fmake_variable_buffer_local, Fmake_local_variable):
21788 Mark variables as initialized.
21789 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
21790
21791 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
21792 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
21793 Rename locals to avoid shadowing.
21794 (mark_stack): Move local variables into the #ifdef region where
21795 they're used.
21796 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
21797 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
21798 needed otherwise.
21799 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
21800 (GC_STRING_CHARS): Remove; not used.
21801 (Fmemory_limit): Cast sbrk's returned value to char *.
21802
21803 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
21804 avoids undefined behavior in theory.
21805
21806 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
21807
21808 Use functions, not macros, for up- and down-casing (Bug#8254).
21809 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
21810 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
21811 to use the following functions instead of these macros.
21812 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
21813 EMACS_INT, since callers assume the returned value fits in int.
21814 (upcase1): Likewise, for UPCASE_TABLE.
21815 (uppercasep, lowercasep, upcase): New static inline functions.
21816 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
21817 the race-condition problem in the old DOWNCASE.
21818
21819 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
21820 Rename locals to avoid shadowing.
21821 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
21822 (regex_compile, re_search_2, re_match_2_internal):
21823 Remove unused local vars.
21824 (FREE_VAR): Rewrite so as not to use empty "else",
21825 which gcc can warn about.
21826 (regex_compile, re_match_2_internal): Mark locals as initialized.
21827 (RETALLOC_IF): Define only if needed.
21828 (WORDCHAR_P): Likewise. This one is never needed, but is used
21829 only in a comment talking about a compiler bug, so put inside
21830 the #if 0 of that comment.
21831 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
21832 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
21833 Remove; unused.
21834
21835 * search.c (boyer_moore): Rename locals to avoid shadowing.
21836 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
21837 (PREV_CHAR_BOUNDARY): Likewise.
21838
21839 * search.c (simple_search): Remove unused var.
21840
21841 * dired.c (compile_pattern): Move decl from here ...
21842 * lisp.h: ... to here, so that it can be checked.
21843 (struct re_registers): New forward decl.
21844
21845 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
21846
21847 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
21848 All uses changed.
21849 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
21850 Rename locals to avoid shadowing.
21851 (Fvertical_motion): Mark locals as initialized.
21852
21853 * casefiddle.c (casify_object, casify_region): Now static.
21854 (casify_region): Mark local as initialized.
21855
21856 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
21857
21858 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
21859 New macros, so that the caller can use some names other than
21860 gcpro1, gcpro2, etc.
21861 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
21862 of the new macros.
21863 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
21864 argument, for consistency with GCPRO2_VAR, etc: it is now the
21865 prefix of the variable, not the variable itself. All uses
21866 changed.
21867 * dired.c (directory_files_internal, file_name_completion):
21868 Rename locals to avoid shadowing.
21869
21870 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
21871 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
21872 dired.c's scmp function, had undefined behavior.
21873 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
21874 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
21875 * buffer.h: ... to here, because these macros use current_buffer,
21876 and the new implementation with inline functions needs to have
21877 current_buffer in scope now, rather than later when the macros
21878 are used.
21879 (downcase, upcase1): New static inline functions.
21880 (DOWNCASE, UPCASE1): Reimplement using these functions.
21881 This avoids undefined behavior in expressions like
21882 DOWNCASE (x) == DOWNCASE (y), which previously suffered
21883 from race conditions in accessing the global variables
21884 case_temp1 and case_temp2.
21885 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
21886 * lisp.h (case_temp1, case_temp2): Remove their decls.
21887 * character.h (ASCII_CHAR_P): Move from here ...
21888 * lisp.h: ... to here, so that the inline functions mentioned
21889 above can use them.
21890
21891 * dired.c (directory_files_internal_unwind): Now static.
21892
21893 * fileio.c (file_name_as_directory, directory_file_name):
21894 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
21895 Now static.
21896 (file_name_as_directory): Use const pointers when appropriate.
21897 (Fexpand_file_name): Likewise. In particular, newdir might
21898 point at constant storage, so make it a const pointer.
21899 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
21900 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
21901 signedness issues.
21902 (Fset_file_times, Finsert_file_contents, auto_save_error):
21903 Rename locals to avoid shadowing.
21904
21905 * minibuf.c (choose_minibuf_frame_1): Now static.
21906 (Ftry_completion, Fall_completions): Rename or remove locals
21907 to avoid shadowing.
21908
21909 * marker.c (bytepos_to_charpos): Remove; unused.
21910
21911 * lisp.h (verify_bytepos, count_markers): New decls,
21912 so that gcc does not warn that these functions aren't declared.
21913
21914 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
21915 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
21916 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
21917 (copy_text): Remove unused local var.
21918
21919 * filelock.c (within_one_second): Now static.
21920 (lock_file_1): Rename local to avoid shadowing.
21921
21922 * buffer.c (fix_overlays_before): Mark locals as initialized.
21923 (fix_start_end_in_overlays): Likewise. This function should be
21924 simplified by using pointers-to-pointers, but that's a different
21925 matter.
21926 (switch_to_buffer_1): Now static.
21927 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
21928 (report_overlay_modification): Rename locals to avoid shadowing.
21929
21930 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
21931 Fix pointer signedness issue.
21932 (sys_subshell): Mark local as volatile if checking for lint,
21933 to suppress a gcc -Wclobbered warning that does not seem to be right.
21934 (MAXPATHLEN): Define only if needed.
21935
21936 * process.c (serial_open, serial_configure): Move decls from here ...
21937 * systty.h: ... to here, so that they can be checked.
21938
21939 * fns.c (get_random, seed_random): Move extern decls from here ...
21940 * lisp.h: ... to here, so that they can be checked.
21941
21942 * sysdep.c (reset_io): Now static.
21943 (wait_for_termination_signal): Remove; unused.
21944
21945 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
21946 (copy_keymap_item, append_key, push_text_char_description):
21947 Now static.
21948 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
21949 (DENSE_TABLE_SIZE): Remove; unused.
21950 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
21951 (describe_map_tree):
21952 Rename locals to avoid shadowing.
21953
21954 * keyboard.c: Declare functions static if they are not used elsewhere.
21955 (echo_char, echo_dash, cmd_error, top_level_2):
21956 (poll_for_input, handle_async_input): Now static.
21957 (read_char, kbd_buffer_get_event, make_lispy_position):
21958 (make_lispy_event, make_lispy_movement, apply_modifiers):
21959 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
21960 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
21961 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
21962 (read_key_sequence, read_char): Mark locals as initialized.
21963 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
21964
21965 * keyboard.h (make_ctrl_char): New decl.
21966 (mark_kboards): Move decl here ...
21967 * alloc.c (mark_kboards): ... from here.
21968
21969 * lisp.h (force_auto_save_soon): New decl.
21970
21971 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
21972 (DEFINE_DUMMY_FUNCTION): New macro.
21973 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
21974 Use it.
21975 (main): Add casts to avoid warnings
21976 if GCC considers string literals to be constants.
21977
21978 * lisp.h (fatal_error_signal): Add decl, since it's exported.
21979
21980 * dbusbind.c: Pointer signedness fixes.
21981 (xd_signature, xd_append_arg, xd_initialize):
21982 (Fdbus_call_method, Fdbus_call_method_asynchronously):
21983 (Fdbus_method_return_internal, Fdbus_method_error_internal):
21984 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
21985 (Fdbus_register_signal): Use SSDATA when the context wants char *.
21986
21987 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
21988 if GCC considers string literals to be constants.
21989 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
21990
21991 2011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
21992
21993 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
21994 (print_preprocess, print_object): New macro to fix last change.
21995
21996 * print.c (print_preprocess): Don't forget font objects.
21997
21998 2011-03-16 Juanma Barranquero <lekktu@gmail.com>
21999
22000 * emacs.c (USAGE3): Doc fixes.
22001
22002 2011-03-15 Andreas Schwab <schwab@linux-m68k.org>
22003
22004 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
22005 structure.
22006
22007 2011-03-14 Juanma Barranquero <lekktu@gmail.com>
22008
22009 * lisp.h (VWindow_system, Qfile_name_history):
22010 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
22011 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
22012 (w32_system_caret_x, w32_system_caret_y): Declare extern.
22013
22014 * w32select.c: Don't #include "keyboard.h".
22015 (run_protected): Add extern declaration for waiting_for_input.
22016
22017 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
22018 * w32console.c (detect_input_pending, read_input_pending)
22019 (encode_terminal_code):
22020 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
22021 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
22022 (w32_system_caret_y, Qfile_name_history):
22023 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
22024 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
22025 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
22026 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
22027 * w32proc.c (Qlocal, report_file_error):
22028 * w32term.c (Vwindow_system, updating_frame):
22029 * w32uniscribe.c (initialized, uniscribe_font_driver):
22030 Remove unneeded extern declarations.
22031
22032 2011-03-14 Chong Yidong <cyd@stupidchicken.com>
22033
22034 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
22035
22036 2011-03-13 Chong Yidong <cyd@stupidchicken.com>
22037
22038 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
22039 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
22040 These macros can no longer be used for assignment.
22041
22042 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
22043 Assign struct members directly, instead of using BUF_BEGV etc.
22044 (record_buffer_markers, fetch_buffer_markers): New functions for
22045 recording and fetching special buffer markers.
22046 (set_buffer_internal_1, set_buffer_temp): Use them.
22047
22048 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
22049
22050 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
22051
22052 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
22053 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
22054
22055 * xdisp.c (hscroll_window_tree):
22056 (reconsider_clip_changes): Use PT instead of BUF_PT.
22057
22058 2011-03-13 Eli Zaretskii <eliz@gnu.org>
22059
22060 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
22061 $(EMACS_ROOT)/lib/intprops.h.
22062
22063 2011-03-13 Paul Eggert <eggert@cs.ucla.edu>
22064
22065 Fix more problems found by GCC 4.5.2's static checks.
22066
22067 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
22068 to unsigned char * to avoid compiler diagnostic.
22069 (xg_free_frame_widgets): Make it clear that a local variable is
22070 needed only if USE_GTK_TOOLTIP.
22071 (gdk_window_get_screen): Make it clear that this macro is needed
22072 only if USE_GTK_TOOLTIP.
22073 (int_gtk_range_get_value): New function, which avoids a diagnostic
22074 from gcc -Wbad-function-cast.
22075 (xg_set_toolkit_scroll_bar_thumb): Use it.
22076 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
22077 diagnostic from gcc -Wbad-function-cast.
22078 (get_utf8_string, xg_get_file_with_chooser):
22079 Rename locals to avoid shadowing.
22080 (create_dialog): Move locals to avoid shadowing.
22081
22082 * xgselect.c (xg_select): Remove unused var.
22083
22084 * image.c (four_corners_best): Mark locals as initialized.
22085 (gif_load): Initialize transparent_p to zero (Bug#8238).
22086 Mark another local as initialized.
22087 (my_png_error, my_error_exit): Mark with NO_RETURN.
22088
22089 * image.c (clear_image_cache): Now static.
22090 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
22091 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
22092 (x_edge_detection): Remove unnecessary cast that
22093 gcc -Wbad-function-cast diagnoses.
22094 (gif_load): Fix pointer signedness.
22095 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
22096 (jpeg_load, gif_load): Rename locals to avoid shadowing.
22097
22098 2011-03-12 Paul Eggert <eggert@cs.ucla.edu>
22099
22100 Improve quality of tests for time stamp overflow.
22101 For example, without this patch (encode-time 0 0 0 1 1
22102 1152921504606846976) returns the obviously-bogus value (-948597
22103 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
22104 reports time overflow. See
22105 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
22106 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
22107 * editfns.c: Include limits.h and intprops.h.
22108 (TIME_T_MIN, TIME_T_MAX): New macros.
22109 (time_overflow): Move earlier, to before first use.
22110 (hi_time, lo_time): New functions, for an accurate test for
22111 out-of-range times.
22112 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
22113 (Fget_internal_run_time): Don't assume time_t fits in int.
22114 (make_time): Use list2 instead of Fcons twice.
22115 (Fdecode_time): More accurate test for out-of-range times.
22116 (check_tm_member): New function.
22117 (Fencode_time): Use it, to test for out-of-range times.
22118 (lisp_time_argument): Don't rely on undefined left-shift and
22119 right-shift behavior when checking for time stamp overflow.
22120
22121 * editfns.c (time_overflow): New function, refactoring common code.
22122 (Fformat_time_string, Fdecode_time, Fencode_time):
22123 (Fcurrent_time_string): Use it.
22124
22125 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
22126 * dired.c (make_time): Move to ...
22127 * editfns.c (make_time): ... here.
22128 * systime.h: Note the move.
22129
22130 2011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
22131
22132 * fringe.c (update_window_fringes): Remove unused variables.
22133
22134 * unexmacosx.c (copy_data_segment): Also copy __got section.
22135 (Bug#8223)
22136
22137 2011-03-12 Eli Zaretskii <eliz@gnu.org>
22138
22139 * termcap.c [MSDOS]: Include "msdos.h".
22140 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
22141 Constify `char *' arguments and their references according to
22142 prototypes in tparam.h.
22143
22144 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
22145
22146 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
22147 Adapt all references accordingly.
22148
22149 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
22150
22151 2011-03-11 Tom Tromey <tromey@redhat.com>
22152
22153 * buffer.c (syms_of_buffer): Remove obsolete comment.
22154
22155 2011-03-11 Eli Zaretskii <eliz@gnu.org>
22156
22157 * termhooks.h (encode_terminal_code): Declare prototype.
22158
22159 * msdos.c (encode_terminal_code): Don't declare prototype.
22160
22161 * term.c (encode_terminal_code): Now external again, used by
22162 w32console.c and msdos.c.
22163
22164 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
22165 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
22166
22167 2011-03-11 Paul Eggert <eggert@cs.ucla.edu>
22168
22169 Fix some minor problems found by GCC 4.5.2's static checks.
22170
22171 * fringe.c (update_window_fringes): Mark locals as initialized
22172 (Bug#8227).
22173 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
22174
22175 * alloc.c (mark_fringe_data): Move decl from here ...
22176 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
22177 to check its interface.
22178 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
22179
22180 * fontset.c (free_realized_fontset): Now static.
22181 (Fset_fontset_font): Rename local to avoid shadowing.
22182 (fontset_font): Mark local as initialized.
22183 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
22184
22185 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
22186
22187 * xselect.c (x_disown_buffer_selections): Remove; not used.
22188 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
22189 (x_own_selection, Fx_disown_selection_internal): Rename locals
22190 to avoid shadowing.
22191 (x_handle_dnd_message): Remove local to avoid shadowing.
22192
22193 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
22194 so that the caller can use some name other than gcpro1.
22195 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
22196 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
22197 (Fx_backspace_delete_keys_p):
22198 Use them to avoid shadowing, and rename vars to avoid shadowing.
22199 (x_decode_color, x_set_name, x_window): Now static.
22200 (Fx_create_frame): Add braces to silence GCC warning.
22201 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
22202 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
22203 Remove unused locals.
22204 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
22205 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
22206 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
22207 macros.
22208
22209 * xterm.h (x_mouse_leave): New decl.
22210
22211 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
22212 Remove unused functions.
22213 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
22214 (x_calc_absolute_position): Now static.
22215 (XTread_socket): Don't define label "out" unless it's used.
22216 Don't declare local "event" unless it's used.
22217 (x_iconify_frame, x_free_frame_resources): Don't declare locals
22218 unless they are used.
22219 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
22220 (x_fatal_error_signal): Remove; not used.
22221 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
22222 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
22223 (x_error_catcher, x_connection_closed, x_error_handler):
22224 (x_error_quitter, xembed_send_message, x_iconify_frame):
22225 (my_log_handler): Rename locals to avoid shadowing.
22226 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
22227 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
22228
22229 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
22230 Rename or move locals to avoid shadowing.
22231 (tty_defined_color, merge_face_heights): Now static.
22232 (free_realized_faces_for_fontset): Remove; not used.
22233 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
22234 does not deduce is never used uninitialized.
22235 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
22236 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
22237
22238 * terminal.c (store_terminal_param): Now static.
22239
22240 * xmenu.c (menu_highlight_callback): Now static.
22241 (set_frame_menubar): Remove unused local.
22242 (xmenu_show): Rename parameter to avoid shadowing.
22243 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
22244 since they might point to immutable storage.
22245 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
22246 since it's unused otherwise.
22247
22248 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
22249 Add a FIXME, since the code still doesn't look right. (Bug#8215)
22250 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
22251 avoids a gcc -Wuninitialized diagnostic.
22252 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
22253 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
22254 does not deduce are never used uninitialized.
22255
22256 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
22257
22258 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
22259 * window.c (window_loop, size_window):
22260 (run_window_configuration_change_hook, enlarge_window): Likewise.
22261
22262 * window.c (display_buffer): Now static.
22263 (size_window): Mark variables that gcc -Wuninitialized
22264 does not deduce are never used uninitialized.
22265 * window.h (check_all_windows): New decl, to forestall
22266 gcc -Wmissing-prototypes diagnostic.
22267 * dispextern.h (bidi_dump_cached_states): Likewise.
22268
22269 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
22270 shadowing.
22271 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
22272 Include <limits.h>.
22273 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
22274 and to avoid gcc -Wuninitialized warning.
22275 (load_charset_map): Mark variables that gcc -Wuninitialized
22276 does not deduce are never used uninitialized.
22277 (load_charset): Abort instead of using uninitialized var (Bug#8229).
22278
22279 * coding.c (coding_set_source, coding_set_destination):
22280 Use "else { /* comment */ }" rather than "else /* comment */;"
22281 for clarity, and to avoid gcc -Wempty-body warning.
22282 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
22283 a block, when the outer 'i' will do.
22284 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
22285 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
22286 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
22287 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
22288 (Fdecode_sjis_char, Fdefine_coding_system_internal):
22289 Rename locals to avoid shadowing.
22290 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
22291 * coding.c (emacs_mule_char, encode_invocation_designation):
22292 Now static, since they're not used elsewhere.
22293 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
22294 (decode_coding_object, encode_coding_object, detect_coding_system):
22295 (decode_coding_emacs_mule): Mark variables that gcc
22296 -Wuninitialized does not deduce are never used uninitialized.
22297 (detect_coding_iso_2022): Initialize a local variable that might
22298 be used uninitialized. Leave a FIXME because it's not clear that
22299 this initialization is needed. (Bug#8211)
22300 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
22301 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
22302 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
22303 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
22304 Remove unused macros.
22305
22306 * category.c (hash_get_category_set): Remove unused local var.
22307 (copy_category_table): Now static, since it's not used elsewhere.
22308 * character.c (string_count_byte8): Likewise.
22309
22310 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
22311 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
22312
22313 * chartab.c (copy_sub_char_table): Now static, since it's not used
22314 elsewhere.
22315 (sub_char_table_ref_and_range, char_table_ref_and_range):
22316 Rename locals to avoid shadowing.
22317 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
22318
22319 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
22320 (BIDI_BOB): Remove unused macro.
22321
22322 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
22323 deduce are never used uninitialized.
22324 * term.c (encode_terminal_code): Likewise.
22325
22326 * term.c (encode_terminal_code): Now static. Remove unused local.
22327
22328 * tparam.h: New file.
22329 * term.c, tparam.h: Include it.
22330 * deps.mk (term.o, tparam.o): Depend on tparam.h.
22331 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
22332 Move these decls to tparam.h, and make them agree with what
22333 is actually in tparam.c. The previous trick of using incompatible
22334 decls in different modules does not conform to the C standard.
22335 All callers of tparam changed to use tparam's actual API.
22336 * tparam.c (tparam1, tparam, tgoto):
22337 Use const pointers where appropriate.
22338
22339 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
22340 * cm.h (struct cm): Likewise.
22341 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
22342 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
22343 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
22344 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
22345 (turn_on_face, init_tty): Likewise.
22346 * termchar.h (struct tty_display_info): Likewise.
22347
22348 * term.c (term_mouse_position): Rename local to avoid shadowing.
22349
22350 * alloc.c (mark_ttys): Move decl from here ...
22351 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
22352
22353 2011-03-11 Andreas Schwab <schwab@linux-m68k.org>
22354
22355 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
22356
22357 2011-03-09 Juanma Barranquero <lekktu@gmail.com>
22358
22359 * search.c (compile_pattern_1): Remove argument regp, unused since
22360 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
22361 (compile_pattern): Don't pass it.
22362
22363 2011-03-08 Jan Djärv <jan.h.d@swipnet.se>
22364
22365 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
22366 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
22367 for ! HAVE_GTK3.
22368 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
22369
22370 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
22371
22372 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
22373 gdk_window_get_screen, gdk_window_get_geometry,
22374 gdk_x11_window_lookup_for_display and GDK_KEY_g.
22375 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
22376 (xg_get_pixbuf_from_pixmap): New function.
22377 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
22378 to Pixmap, take frame as parameter, remove GdkColormap parameter.
22379 Call xg_get_pixbuf_from_pixmap instead of
22380 gdk_pixbuf_get_from_drawable.
22381 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
22382 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
22383 (xg_check_special_colors): Use GtkStyleContext and its functions
22384 for HAVE_GTK3.
22385 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
22386 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
22387 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
22388 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
22389 Call gtk_widget_get_preferred_size.
22390 (xg_frame_resized): gdk_window_get_geometry only takes 5
22391 parameters.
22392 (xg_win_to_widget, xg_event_is_for_menubar):
22393 Call gdk_x11_window_lookup_for_display.
22394 (xg_set_widget_bg): New function.
22395 (delete_cb): New function.
22396 (xg_create_frame_widgets): Connect delete-event to delete_cb.
22397 Call xg_set_widget_bg. Only set background pixmap for ! HAVE_GTK3
22398 (xg_set_background_color): Call xg_set_widget_bg.
22399 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
22400 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
22401 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
22402 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
22403 if ! HAVE_GTK3.
22404 (update_frame_tool_bar): Call gtk_widget_hide.
22405 (xg_initialize): Use GDK_KEY_g.
22406
22407 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
22408 if ! HAVE_GTK3
22409 (x_session_initialize): Call gdk_x11_set_sm_client_id.
22410
22411 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
22412 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
22413 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
22414
22415 2011-03-08 Juanma Barranquero <lekktu@gmail.com>
22416
22417 * w32xfns.c (select_palette): Check success of RealizePalette against
22418 GDI_ERROR, not zero.
22419
22420 See ChangeLog.11 for earlier changes.
22421
22422 ;; Local Variables:
22423 ;; coding: utf-8
22424 ;; End:
22425
22426 Copyright (C) 2011-2013 Free Software Foundation, Inc.
22427
22428 This file is part of GNU Emacs.
22429
22430 GNU Emacs is free software: you can redistribute it and/or modify
22431 it under the terms of the GNU General Public License as published by
22432 the Free Software Foundation, either version 3 of the License, or
22433 (at your option) any later version.
22434
22435 GNU Emacs is distributed in the hope that it will be useful,
22436 but WITHOUT ANY WARRANTY; without even the implied warranty of
22437 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22438 GNU General Public License for more details.
22439
22440 You should have received a copy of the GNU General Public License
22441 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.