Follow symlinks in MS-Windows emulations of ACL functions.
[bpt/emacs.git] / src / ChangeLog
1 2012-12-18 Eli Zaretskii <eliz@gnu.org>
2
3 * w32.c (acl_get_file, acl_set_file): Run the file name through
4 map_w32_filename, and resolve any symlinks in the file name, like
5 Posix platforms do.
6 (acl_set_file): Call revert_to_self, if any privileges were
7 enabled.
8
9 2012-12-17 Juanma Barranquero <lekktu@gmail.com>
10
11 * makefile.w32-in ($(BLD)/editfns.$(O), $(BLD)/fileio.$(O))
12 ($(BLD)/w32.$(O)): Update dependencies.
13
14 2012-12-17 Stefan Monnier <monnier@iro.umontreal.ca>
15
16 * xdisp.c (select_frame_for_redisplay): Use select_window_1 to
17 propagate redisplay's scrolling (if any) to the right window.
18 (redisplay_internal): Use ensure_selected_frame.
19 (display_mode_lines): Complete last fix.
20 * window.c (select_window_1): New func, extracted from select_window.
21 (select_window): Use it.
22 * window.h (select_window_1): Declare.
23
24 2012-12-17 Eli Zaretskii <eliz@gnu.org>
25
26 Emulate Posix ACL APIs on MS-Windows.
27 * w32.c: Include sddl.h and sys/acl.h.
28 (SDDL_REVISION_1): Define if not already defined.
29 (g_b_init_get_security_descriptor_dacl)
30 (g_b_init_convert_sd_to_sddl, g_b_init_convert_sddl_to_sd)
31 (g_b_init_is_valid_security_descriptor)
32 (g_b_init_set_file_security): New static flags.
33 (globals_of_w32): Initialize them to zero.
34 (SetFileSecurity_Name): New string constant.
35 (SetFileSecurity_Proc, GetSecurityDescriptorDacl_Proc)
36 (ConvertStringSecurityDescriptorToSecurityDescriptor_Proc)
37 (ConvertSecurityDescriptorToStringSecurityDescriptor_Proc)
38 (IsValidSecurityDescriptor_Proc): New typedefs.
39 (get_file_security, get_security_descriptor_owner)
40 (get_security_descriptor_group): Set errno to ENOTSUP.
41 (set_file_security, get_security_descriptor_dacl)
42 (is_valid_security_descriptor, convert_sd_to_sddl)
43 (convert_sddl_to_sd, acl_valid, acl_to_text, acl_from_text)
44 (acl_free, acl_get_file, acl_set_file): New functions.
45
46 * fileio.c (Fcopy_file) [WINDOWSNT]: Support copying ACLs.
47
48 2012-12-17 Paul Eggert <eggert@cs.ucla.edu>
49
50 Don't reraise SIGCHLD, as that can now lose (Bug#13192).
51 With the 2012-12-03 fix for Bug#12980 in place, an old workaround
52 for some of that bug's symptoms can now cause Emacs to abort.
53 Remove the workaround.
54 * process.c (wait_reading_process_output): Don't reraise SIGCHLD.
55 The bug that caused SIGCHLD to get lost has been fixed, and the
56 workaround for it can now cause Emacs to abort.
57
58 2012-12-16 Paul Eggert <eggert@cs.ucla.edu>
59
60 * sysdep.c (emacs_abort): Bump backtrace size to 40.
61 Companion to the 2012-09-30 patch. Suggested by Eli Zaretskii in
62 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00796.html>.
63
64 2012-12-16 Romain Francoise <romain@orebokech.com>
65
66 * fileio.c (Ffile_acl, Fset_file_acl): New functions.
67 (Fcopy_file): Change last arg to `preserve_extended_attributes'
68 and copy ACL entries of file in addition to SELinux context if set.
69 (syms_of_fileio): Add `file-acl' and `set-file-acl'.
70
71 * Makefile.in (LIBACL_LIBS): New macro.
72 (LIBES): Use it.
73
74 2012-12-15 Paul Eggert <eggert@cs.ucla.edu>
75
76 * fileio.c (internal_delete_file): Use bool for boolean.
77
78 2012-12-15 Eli Zaretskii <eliz@gnu.org>
79
80 Fix bug #13079 on MS-Windows with temp files not being deleted.
81 * w32.h (_child_process): New members input_file and
82 pending_deletion.
83 (register_child): First argument is now pid_t.
84 (record_infile, record_pending_deletion): New prototypes.
85
86 * w32proc.c (new_child): Initialize input_file and
87 pending_deletion members of the child.
88 (delete_child): Delete the child's temporary input file, if any,
89 that is pending deletion.
90 (register_child): First argument is now pid_t.
91 (record_infile, record_pending_deletion): New functions.
92 (reap_subprocess): Fix a typo in DebPrint string.
93 (sys_spawnve, sys_kill): Use pid_t for PID arguments.
94
95 * fileio.c (internal_delete_file): Return an int again: non-zero
96 if delete-file succeeds, zero otherwise.
97
98 * lisp.h (internal_delete_file): Adjust prototype.
99
100 * callproc.c (Fcall_process): Don't overwrite infile with result
101 of DECODE_FILE.
102 [WINDOWSNT] If BUFFER is an integer, i.e. we are launching an
103 asynchronous subprocess, record the name of the input file name,
104 if any.
105 (delete_temp_file) [WINDOWSNT]: If internal_delete_file fails to
106 delete the file, record it as pending deletion when the subprocess
107 exits.
108
109 2012-12-14 Eli Zaretskii <eliz@gnu.org>
110
111 * editfns.c [HAVE_PWD_H]: Include grp.h.
112
113 * makefile.w32-in ($(BLD)/editfns.$(O)): Add $(NT_INC)/grp.h.
114
115 2012-12-14 Paul Eggert <eggert@cs.ucla.edu>
116
117 Fix permissions bugs with setgid directories etc. (Bug#13125)
118 * dired.c (Ffile_attributes): Return t as the 9th attribute,
119 to mark it as a placeholder. The old value was often wrong.
120 The only user of this attribute has been changed to use
121 file-ownership-preserved-p instead, with its new group arg.
122 * editfns.c (Fgroup_gid, Fgroup_real_gid): New functions.
123
124 2012-12-14 Stefan Monnier <monnier@iro.umontreal.ca>
125
126 * xdisp.c (select_frame_for_redisplay, display_mode_lines):
127 Keep selected_window and selected_frame in sync.
128
129 2012-12-14 Eli Zaretskii <eliz@gnu.org>
130
131 * w32.c (stat_worker): If w32_stat_get_owner_group is zero, do not
132 try to get accurate owner and group information from NT file
133 security APIs. This is to make most callers of 'stat' and
134 'lstat', which don't need that information, much faster.
135
136 * dired.c (Ffile_attributes) [WINDOWSNT]:
137 Set w32_stat_get_owner_group to a non-zero value, to request accurate
138 owner and group information from 'lstat'.
139
140 2012-12-13 Paul Eggert <eggert@cs.ucla.edu>
141
142 * fileio.c (Finsert_file_contents): Don't put tail into head area,
143 as that confuses set-auto-coding, so insist on the head-read
144 returning the full 1024 bytes. Let lseek compute the tail offset;
145 less work for us. Do not ignore I/O errors when reading the tail.
146
147 * xdisp.c: Minor style fixes.
148 (init_iterator): Hoist assignment out of if-expression.
149 (markpos_of_region): Callers now test for sign, not for -1.
150
151 2012-12-13 Dmitry Antipov <dmantipov@yandex.ru>
152
153 Minor redisplay optimization when the region length is zero.
154 * xdisp.c (markpos_of_region): New function.
155 (init_iterator): Do not highlight the region of zero length.
156 (redisplay_window): Check whether the region is of non-zero length.
157 (try_cursor_movement): Allow if the region length is zero.
158 (try_window_reusing_current_matrix, try_window_id): Likewise.
159
160 2012-12-13 Eli Zaretskii <eliz@gnu.org>
161
162 * search.c (search_buffer): Check the inverse translations of each
163 character in pattern when the buffer being searched is unibyte.
164 (Bug#13084)
165
166 2012-12-13 Paul Eggert <eggert@cs.ucla.edu>
167
168 * fileio.c (Fvisited_file_modtime): Return (-1 ...) for nonexistent
169 files, fixing a regression from 24.2.
170 (Fverify_visited_file_modtime): Don't read uninitialized st.st_size.
171
172 2012-12-13 Paul Eggert <eggert@cs.ucla.edu>
173
174 * fileio.c (Fcopy_file): Make fstat failure as serious as open failure.
175 fstat shouldn't fail, and if it does fail copy-file should not proceed.
176 Remove unnecessary S_ISLNK test, as (contra the comments) this
177 function can't copy symlinks. Improve quality of error message
178 when attempting to copy files that are neither regular files nor
179 directories.
180
181 2012-12-12 Dmitry Antipov <dmantipov@yandex.ru>
182
183 * dispnew.c (set_window_cursor_after_update): Use clip_to_bounds.
184 * gtkutil.c (xg_set_toolkit_scroll_bar_thumb):
185 * window.c (Frecenter):
186 * xdisp.c (resize_mini_window, hscroll_window_tree, draw_glyphs):
187 * xterm.c (x_set_toolkit_scroll_bar_thumb): Likewise.
188
189 2012-12-12 Daniel Colascione <dancol@dancol.org>
190
191 * unexcw.c (fixup_executable): Use posix_fallocate to ensure that
192 the dumped Emacs is not a sparse file, greatly improving Cygwin
193 "make bootstrap" performance.
194
195 2012-12-11 Michael Albinus <michael.albinus@gmx.de>
196
197 * inotify.c (inotify_callback): Generate an Emacs event for every
198 incoming inotify event.
199
200 2012-12-11 Eli Zaretskii <eliz@gnu.org>
201
202 * xdisp.c (handle_face_prop): Fix logic of computing
203 it->start_of_box_run_p.
204 (append_space_for_newline): If the glyph row is R2L, reset the
205 iterator's end_of_box_run_p flag before prepending the space glyph.
206 (extend_face_to_end_of_line): If the glyph row is R2L, reset the
207 iterator's start_of_box_run_p flag before prepending the stretch.
208 (append_glyph, produce_image_glyph, append_composite_glyph)
209 (append_stretch_glyph, append_glyphless_glyph): Reverse the
210 left_box_line_p and right_box_line_p flags of the glyph for R2L
211 glyph rows. (Bug#13011)
212
213 2012-12-11 Dmitry Antipov <dmantipov@yandex.ru>
214
215 * buffer.c (Fset_buffer_multibyte): Do not force redisplay
216 if changed buffer is not shown in a window.
217 * insdel.c (prepare_to_modify_buffer): Likewise.
218 * window.c (replace_buffer_in_windows_safely): Do nothing
219 if buffer is not shown in a window.
220 (Fforce_window_update): Likewise if string or buffer argument
221 is passed.
222
223 2012-12-11 Eli Zaretskii <eliz@gnu.org>
224
225 * inotify.c (Finotify_add_watch): Rename decoded_file_name to
226 encoded_file_name, which is what it is.
227
228 2012-12-11 Dmitry Antipov <dmantipov@yandex.ru>
229
230 Consistently use marker_position and marker_byte_position.
231 * fringe.c (Ffringe_bitmaps_at_pos):
232 * indent.c (Fvertical_motion):
233 * insdel.c (prepare_to_modify_buffer):
234 * keyboard.c (make_lispy_position):
235 * window.c (Fwindow_end, Fpos_visible_in_window_p, unshow_buffer)
236 (window_scroll_pixel_based, displayed_window_lines)
237 (Fset_window_configuration):
238 * xdisp.c (message_dolog, with_echo_area_buffer_unwind_data)
239 (mark_window_display_accurate_1, redisplay_window, decode_mode_spec):
240 Replace direct access to marker fields with calls
241 to marker_position and/or marker_byte_position.
242
243 2012-12-11 Juanma Barranquero <lekktu@gmail.com>
244
245 * makefile.w32-in (SIG2STR_H): New macro.
246 (SYSWAIT_H, $(BLD)/emacs.$(O), $(BLD)/process.$(O))
247 ($(BLD)/w32notify.$(O)): Update dependencies.
248
249 2012-12-10 Daniel Colascione <dancol@dancol.org>
250
251 * w32term.c, keyboard.c: Fix build break in cygw32 by omitting
252 Windows file notification functionality unless WINDOWSNT.
253
254 * w32gui.h (hprevinst, lpCmdLine, nCmdShow): Remove unused
255 declarations.
256
257 * w32fns.c (cache_system_info): Initialize the global hinst
258 variable here so various initialization calls DTRT.
259
260 * unexw32.c (hprevinst, lpCmdLine, nCmdShow): Remove unused variables.
261 (hinst): Remove unneeded extern declaration.
262 (_start): Remove initialization of above variables; remove
263 initialization of hinst, as cache_system_info now does that.
264
265 * emacs.c (main): Call cache_system_info early in startup; we
266 previously weren't calling it in Cygwin builds.
267
268 * Makefile.in (ntsource, WINDRES, W32_RES, W#@_RES_LINK):
269 Teach the autoconf build system how to compile a Windows resource file
270 and link it to Emacs.
271
272 2012-12-10 Dmitry Antipov <dmantipov@yandex.ru>
273
274 Per-buffer window counters.
275 * buffer.h (struct buffer): New member window_count.
276 (buffer_window_count): New function.
277 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
278 Initialize window_count.
279 (Fkill_buffer): Verify window_count for the buffer being killed.
280 (modify_overlay): Do not force redisplay if buffer is not shown
281 in any window.
282 (init_buffer_once): Initialize window_count for buffer_defaults
283 and buffer_local_symbols.
284 * window.h (buffer_shared): Remove declaration.
285 (wset_buffer): Convert from inline ...
286 * window.c (wset_buffer): ... to an ordinary function.
287 (adjust_window_count): New function.
288 (make_parent_window): Use it.
289 * xdisp.c (buffer_shared): Remove.
290 (redisplay_internal, redisplay_window): Adjust users.
291 (buffer_shared_and_changed): Use per-buffer window counter.
292
293 2012-12-10 Eli Zaretskii <eliz@gnu.org>
294
295 Support for filesystem notifications on MS-Windows.
296 * w32proc.c (sys_select): If drain_message_queue returns non-zero,
297 and this is a TTY frame, signal the caller that keyboard input is
298 available.
299
300 * w32xfns.c (drain_message_queue): Now returns an int: an
301 indication whether any WM_EMACS_FILENOTIFY messages were found in
302 the queue.
303
304 * w32inevt.c (handle_file_notifications): New function.
305 (w32_console_read_socket): Call it to process file notifications.
306
307 * w32console.c (initialize_w32_display): Record the main thread ID
308 in dwMainThreadId.
309
310 * deps.mk (inotify.o): New dependency list.
311
312 * Makefile.in (SOME_MACHINE_OBJECTS): Add w32notify.o.
313
314 * w32term.h (WM_EMACS_FILENOTIFY): New custom message.
315 (WM_EMACS_END): Bump value by 1.
316 (notification_buffer_in_use, file_notifications)
317 (notifications_size, notifications_desc): Declare.
318 (w32_get_watch_object, lispy_file_action, globals_of_w32notify):
319 Add prototypes.
320
321 * w32term.c (lispy_file_action, queue_notifications): New functions.
322 (syms_of_w32term) <Qadded, Qremoved, Qmodified, Qrenamed_from>
323 <Qrenamed_to>: New symbols.
324 (w32_read_socket): Handle the WM_EMACS_FILENOTIFY message.
325
326 * w32notify.c: New file, implements file event notifications for
327 MS-Windows.
328
329 * w32fns.c (w32_wnd_proc): Handle the WM_EMACS_FILENOTIFY message
330 by posting it to the w32_read_socket queue.
331
332 * termhooks.h (enum event_kind) [HAVE_NTGUI]: Support FILE_NOTIFY_EVENT.
333
334 * makefile.w32-in (OBJ2): Add $(BLD)/w32notify.$(O).
335 (GLOBAL_SOURCES): Add w32notify.c
336 ($(BLD)/w32notify.$(O)): New set of dependencies.
337
338 * lisp.h (syms_of_w32notify) [WINDOWSNT]: Add prototype.
339
340 * keyboard.c (kbd_buffer_get_event) [WINDOWSNT]:
341 Handle FILE_NOTIFY_EVENT.
342 (syms_of_keyboard) [HAVE_NTGUI] <Qfile_notify>: New symbol.
343 (keys_of_keyboard) [WINDOWSNT]: Bind file-notify to
344 w32notify-handle-event by default.
345
346 * emacs.c (main) [WINDOWSNT]: Call globals_of_w32notify and
347 syms_of_w32notify.
348
349 2012-12-10 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
350
351 Support for filesystem notifications on GNU/Linux via inotify.
352 * termhooks.h (enum event_kind) [HAVE_INOTIFY]: Add FILE_NOTIFY_EVENT.
353
354 * lisp.h (syms_of_inotify) [HAVE_INOTIFY]: Add prototype.
355
356 * keyboard.c (Qfile_inotify) [HAVE_INOTIFY]: New variable.
357 (syms_of_keyboard): DEFSYM it.
358 (kbd_buffer_get_event) [HAVE_INOTIFY]: Generate FILE_NOTIFY_EVENT.
359 (make_lispy_event): Support FILE_NOTIFY_EVENT by generating
360 Qfile_inotify events.
361 (keys_of_keyboard) [HAVE_INOTIFY]: Bind file-inotify events in
362 special-event-map to inotify-handle-event.
363
364 * emacs.c (main) [HAVE_INOTIFY]: Call syms_of_inotify.
365
366 * Makefile.in (base_obj): Add inotify.o.
367
368 * inotify.c: New file.
369
370 2012-12-10 Jan Djärv <jan.h.d@swipnet.se>
371
372 * nsterm.m (fd_handler:): FD_ZERO fds (Bug#13103).
373
374 2012-12-10 Fabrice Popineau <fabrice.popineau@gmail.com>
375
376 * w32fns.c (cache_system_info): Cast sysinfo_cache.dwPageSize to
377 DWORD_PTR, for compatibility with 64-bit builds.
378
379 * w32.c (_PROCESS_MEMORY_COUNTERS_EX):
380 (GetProcessWorkingSetSize_Proc, get_process_working_set_size)
381 (system_process_attributes): Use SIZE_T rather than DWORD, for
382 compatibility with 64-bit builds.
383
384 2012-12-10 Christopher Schmidt <christopher@ch.ristopher.com>
385
386 * lread.c (Vload_source_file_function): Doc fix (Bug#11647).
387
388 2012-12-10 Eli Zaretskii <eliz@gnu.org>
389
390 * indent.c (Fvertical_motion): If a display string will be
391 displayed on the left or the right margin, don't consider it as a
392 factor in cursor positioning. (Bug#13108)
393
394 2012-12-10 Martin Rudalics <rudalics@gmx.at>
395
396 * editfns.c (Fcompare_buffer_substrings): Reword doc-string.
397
398 2012-12-10 Paul Eggert <eggert@cs.ucla.edu>
399
400 * fileio.c (Fsubstitute_in_file_name): Use ptrdiff_t, not int,
401 for string length.
402
403 2012-12-08 Eli Zaretskii <eliz@gnu.org>
404
405 * w32.c (unsetenv): Return 0 if the input string is too long.
406
407 2012-12-08 Paul Eggert <eggert@cs.ucla.edu>
408
409 Use putenv+unsetenv instead of modifying environ directly (Bug#13070).
410 * alloc.c (xputenv): New function.
411 * dbusbind.c (Fdbus_init_bus):
412 * emacs.c (main):
413 * xterm.c (x_term_init):
414 Use xputenv instead of setenv or putenv, to detect memory exhaustion.
415 * editfns.c (initial_tz): Move static var decl up.
416 (tzvalbuf_in_environ): New static var.
417 (init_editfns): Initialize these two static vars.
418 (Fencode_time): Don't assume arbitrary limit on EMACS_INT width.
419 Save old TZ value on stack, if it's small.
420 (Fencode_time, set_time_zone_rule): Don't modify 'environ' directly;
421 instead, use xputenv+unsetenv to set and restore TZ.
422 (environbuf): Remove static var. All uses removed.
423 (Fset_time_zone_rule): Do not save TZ and environ;
424 no longer needed here.
425 (set_time_zone_rule_tz1, set_time_zone_rule_tz2) [LOCALTIME_CACHE]:
426 Move to inside set_time_zone_rule; they don't need file scope any more.
427 (set_time_zone_rule): Maintain the TZ=value string separately.
428 (syms_of_editfns): Don't initialize initial_tz;
429 init_editfns now does it.
430 * emacs.c (dump_tz) [HAVE_TZSET]: Now const.
431 * lisp.h (xputenv): New decl.
432
433 2012-12-08 Fabrice Popineau <fabrice.popineau@gmail.com>
434
435 * w32fns.c (emacs_abort): Don't do arithmetics on void pointers.
436
437 2012-12-08 Eli Zaretskii <eliz@gnu.org>
438
439 * w32.c (unsetenv, sys_putenv): New functions.
440
441 2012-12-08 Chong Yidong <cyd@gnu.org>
442
443 * editfns.c (Finsert_char): Make the error message more
444 informative (Bug#12992).
445
446 2012-12-08 Paul Eggert <eggert@cs.ucla.edu>
447
448 Simplify get_lim_data.
449 * vm-limit.c (get_lim_data): Combine RLIMIT_AS and RLIMIT_DATA methods.
450 Remove USG and vlimit methods; no longer used these days.
451 Add #error catchall just in case.
452
453 Assume POSIX 1003.1-1988 or later for signal.h (Bug#13026).
454 Exceptions: do not assume SIGCONT, SIGSTOP, SIGTSTP, SIGTTIN,
455 SIGTTOU, SIGUSR1, SIGUSR2, as Microsoft platforms lack these.
456 * process.c [subprocesses]: Include <c-ctype.h>, <sig2str.h>.
457 (deleted_pid_list, Fdelete_process, create_process)
458 (record_child_status_change, handle_child_signal, deliver_child_signal)
459 (init_process_emacs, syms_of_process):
460 Assume SIGCHLD is defined.
461 (parse_signal): Remove. All uses removed.
462 (abbr_to_signal): New static function.
463 (Fsignal_process): Use it to convert signal names to ints.
464 * sysdep.c (sys_suspend) [!DOS_NT]: Use kill (0, ...) rather than
465 kill (getpgrp (), ...).
466 (emacs_sigaction_init): Assume SIGCHLD is defined.
467 (init_signals): Assume SIGALRM, SIGCHLD, SIGHUP, SIGKILL,
468 SIGPIPE, and SIGQUIT are defined. Do not worry about SIGCLD any more.
469 * syssignal.h (EMACS_KILLPG): Remove.
470 All uses replaced by 'kill' with a negative pid.
471 (SIGCHLD): Remove definition, as we now assume SIGCHLD.
472 * w32proc.c (sys_kill): Support negative pids compatibly with POSIX.
473
474 2012-12-07 Paul Eggert <eggert@cs.ucla.edu>
475
476 * sysdep.c (get_child_status): Abort on internal error (Bug#13086).
477 This will cause a production Emacs to dump core instead of
478 infinite-looping.
479
480 2012-12-07 Dmitry Antipov <dmantipov@yandex.ru>
481
482 * frame.c (make_frame): Do not set window's buffer to t.
483 * window.c (Fsplit_window_internal): Likewise. Previously it was
484 used to indicate that the window is being set up. Now we use
485 set_window_buffer for all new windows, so the condition in ...
486 (Fset_window_buffer): ... is always true and can be removed.
487
488 2012-12-07 Dmitry Antipov <dmantipov@yandex.ru>
489
490 Convenient macro to check whether the buffer is hidden.
491 * buffer.h (BUFFER_HIDDEN_P): New macro.
492 * frame.c (make_frame): Use it. Adjust comment.
493 * buffer.c (candidate_buffer): New function.
494 (Fother_buffer, other_buffer_safely): Use it.
495
496 2012-12-06 Eli Zaretskii <eliz@gnu.org>
497
498 * w32proc.c (waitpid): Avoid busy-waiting when called with WNOHANG
499 if the child process is still running. Instead, exit the wait
500 loop and return zero. (Bug#13086)
501
502 2012-12-06 Dmitry Antipov <dmantipov@yandex.ru>
503
504 * frame.h (x_char_width, x_char_height): Remove prototypes.
505 * w32term.h (x_char_width, x_char_height): Likewise.
506 * xfns.c (x_char_width, x_char_height): Remove.
507 * w32fns.c (x_char_width, x_char_height): Likewise.
508 * nsfns.c (x_char_width, x_char_height): Likewise.
509 * frame.c (Fframe_char_width): Use FRAME_COLUMN_WIDTH for
510 all window frames.
511 (Fframe_char_height): Likewise with FRAME_LINE_HEIGHT.
512 * keyboard.c (command_loop_1): Remove prototype.
513 (command_loop_2, top_level_1): Add static to match prototype.
514
515 2012-12-06 Paul Eggert <eggert@cs.ucla.edu>
516
517 Fix a recently-introduced delete-process race condition.
518 * callproc.c, process.h (record_kill_process):
519 New function, containing part of the old call_process_kill.
520 (call_process_kill): Use it.
521 This does not change call_process_kill's behavior.
522 * process.c (Fdelete_process): Use record_kill_process to fix a
523 race condition that could cause Emacs to lose track of a child.
524
525 2012-12-06 Dmitry Antipov <dmantipov@yandex.ru>
526
527 Avoid code duplication between prev_frame and next_frame.
528 * frame.c (candidate_frame): New function. Add comment.
529 (prev_frame, next_frame): Use it. Adjust comment.
530
531 2012-12-06 Eli Zaretskii <eliz@gnu.org>
532
533 * callproc.c (Fcall_process_region) [!HAVE_MKSTEMP]: If mktemp
534 fails, signal an error instead of continuing with an empty
535 string. (Bug#13079)
536 Encode expanded temp file pattern before passing it to mkstemp or
537 mktemp.
538
539 * fileio.c (file_name_as_directory, directory_file_name) [DOS_NT]:
540 Encode the file name before passing it to dostounix_filename, in
541 case it will downcase it (under w32-downcase-file-names).
542 (Bug#12933)
543
544 2012-12-05 Paul Eggert <eggert@cs.ucla.edu>
545
546 Minor call-process cleanups.
547 * callproc.c (Fcall_process): Do record-unwind-protect on MSDOS
548 at the same time as other platforms, to simplify analysis.
549 No need for fd0_volatile since we have synch_process_fd.
550 Avoid needless emacs_close; arg is always negative.
551
552 2012-12-04 Andreas Schwab <schwab@linux-m68k.org>
553
554 * callproc.c (Fcall_process): Fix specpdl nesting for asynchronous
555 processes.
556
557 2012-12-04 Dmitry Antipov <dmantipov@yandex.ru>
558
559 * lisp.h (Mouse_HLInfo): Remove set-but-unused mouse_face_image_state
560 member. Adjust users. Convert mouse_face_past_end, mouse_face_defer
561 and mouse_face_hidden members to a bitfields.
562 * frame.h (struct frame): Remove set-but-not-used space_width member.
563 (FRAME_SPACE_WIDTH): Remove.
564 * nsterm.m, w32term.c, xterm.c: Adjust users.
565 * termchar.h (struct tty_display_info): Remove set-but-unused se_is_so
566 member. Adjust users. Convert term_initted, delete_in_insert_mode,
567 costs_set, insert_mode, standout_mode, cursor_hidden and flow_control
568 members to a bitfields.
569
570 2012-12-03 Paul Eggert <eggert@cs.ucla.edu>
571
572 Don't let call-process be a zombie factory (Bug#12980).
573 Fixing this bug required some cleanup of the signal-handling code.
574 As a side effect, this change also fixes a longstanding rare race
575 condition whereby Emacs could mistakenly kill unrelated processes,
576 and it fixes a bug where a second C-g does not kill a recalcitrant
577 synchronous process in GNU/Linux and similar platforms.
578 The patch should also fix the last vestiges of Bug#9488,
579 a bug which has mostly been fixed on the trunk by other changes.
580 * callproc.c, process.h (synch_process_alive, synch_process_death)
581 (synch_process_termsig, sync_process_retcode):
582 Remove. All uses removed, to simplify analysis and so that
583 less consing is done inside critical sections.
584 * callproc.c (call_process_exited): Remove. All uses replaced
585 with !synch_process_pid.
586 * callproc.c (synch_process_pid, synch_process_fd): New static vars.
587 These take the role of what used to be in unwind-protect arg.
588 All uses changed.
589 (block_child_signal, unblock_child_signal):
590 New functions, to avoid races that could kill innocent-victim processes.
591 (call_process_kill, call_process_cleanup, Fcall_process): Use them.
592 (call_process_kill): Record killed processes as deleted, so that
593 zombies do not clutter up the system. Do this inside a critical
594 section, to avoid a race that would allow the clutter.
595 (call_process_cleanup): Fix code so that the second C-g works again
596 on common platforms such as GNU/Linux.
597 (Fcall_process): Create the child process in a critical section,
598 to fix a race condition. If creating an asynchronous process,
599 record it as deleted so that zombies do not clutter up the system.
600 Do unwind-protect for WINDOWSNT too, as that's simpler in the
601 light of these changes. Omit unnecessary call to emacs_close
602 before failure, as the unwind-protect code does that.
603 * callproc.c (call_process_cleanup):
604 * w32proc.c (waitpid): Simplify now that synch_process_alive is gone.
605 * process.c (record_deleted_pid): New function, containing
606 code refactored out of Fdelete_process.
607 (Fdelete_process): Use it.
608 (process_status_retrieved): Remove. All callers changed to use
609 child_status_change.
610 (record_child_status_change): Remove, folding its contents into ...
611 (handle_child_signal): ... this signal handler. Now, this
612 function is purely a handler for SIGCHLD, and is not called after
613 a synchronous waitpid returns; the synchronous code is moved to
614 wait_for_termination. There is no need to worry about reaping
615 more than one child now.
616 * sysdep.c (get_child_status, child_status_changed): New functions.
617 (wait_for_termination): Now takes int * status and bool
618 interruptible arguments, too. Do not record child status change;
619 that's now the caller's responsibility. All callers changed.
620 Reimplement in terms of get_child_status.
621 (wait_for_termination_1, interruptible_wait_for_termination):
622 Remove. All callers changed to use wait_for_termination.
623 * syswait.h: Include <stdbool.h>, for bool.
624 (record_child_status_change, interruptible_wait_for_termination):
625 Remove decls.
626 (record_deleted_pid, child_status_changed): New decls.
627 (wait_for_termination): Adjust to API changes noted above.
628
629 * bytecode.c, lisp.h (Qbytecode): Remove.
630 No longer needed after 2012-11-20 interactive-p changes.
631
632 2012-12-03 Eli Zaretskii <eliz@gnu.org>
633
634 * xdisp.c (redisplay_window): If the cursor is visible, but inside
635 the scroll margin, move point outside the margin. (Bug#13055)
636
637 2012-12-03 Jan Djärv <jan.h.d@swipnet.se>
638
639 * gtkutil.c (my_log_handler): New function.
640 (xg_set_geometry): Set log handler to my_log_handler (Bug#11177).
641
642 2012-12-03 Dmitry Antipov <dmantipov@yandex.ru>
643
644 * lisp.h (modify_region): Rename to...
645 (modify_region_1): ...new prototype.
646 * textprop.c (modify_region): Now static. Adjust users.
647 * insdel.c (modify_region): Rename to...
648 (modify_region_1): ...new function to work with current buffer.
649 Adjust comment and users. Use true and false for booleans.
650
651 2012-12-03 Dmitry Antipov <dmantipov@yandex.ru>
652
653 * alloc.c (free_save_value): New function.
654 (safe_alloca_unwind): Use it.
655 * lisp.h (free_save_value): New prototype.
656 * editfns.c (save_excursion_save): Use Lisp_Misc_Save_Value.
657 Add comment.
658 (save_excursion_restore): Adjust to match saved data structure.
659 Use free_save_value to offload some work from GC. Drop obsolete
660 #if 0 code.
661
662 2012-12-03 Chong Yidong <cyd@gnu.org>
663
664 * fileio.c (Vauto_save_list_file_name): Doc fix.
665
666 2012-12-03 Fabrice Popineau <fabrice.popineau@gmail.com>
667
668 * w32fns.c: Remove prototype of atof.
669 (syspage_mask): Make it DWORD_PTR, for compatibility with 64-bit
670 builds.
671 (file_dialog_callback): Make it UINT_PTR.
672
673 * w32common.h (syspage_mask): Declare DWORD_PTR, for compatibility
674 with 64-bit builds.
675
676 * w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED)
677 (FILE_ANY_ACCESS, CTL_CODE) [_MSC_VER]: Define only if not already
678 defined.
679
680 2012-12-03 Glenn Morris <rgm@gnu.org>
681
682 * data.c (Fboundp, Fsymbol_value): Doc fix re lexical-binding.
683
684 2012-12-02 Paul Eggert <eggert@cs.ucla.edu>
685
686 Fix xpalloc confusion after memory is exhausted.
687 * alloc.c (xpalloc): Comment fix.
688 * charset.c (Fdefine_charset_internal): If xpalloc exhausts memory
689 and signals an error, do not clear charset_table_size, as
690 charset_table is still valid.
691 * doprnt.c (evxprintf): Clear *BUF after freeing it.
692
693 Use execve to avoid need to munge environ (Bug#13054).
694 * callproc.c (Fcall_process):
695 * process.c (create_process):
696 Don't save and restore environ; no longer needed.
697 * callproc.c (child_setup):
698 Use execve, not execvp, to preserve environ.
699
700 2012-12-01 Paul Eggert <eggert@cs.ucla.edu>
701
702 * xterm.c (x_draw_image_relief): Remove unused locals (Bug#10500).
703
704 2012-12-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
705
706 * xterm.c (x_draw_relief_rect, x_draw_image_relief): Fix relief
707 display for sliced images (Bug#10500).
708
709 * w32term.c (w32_draw_relief_rect, x_draw_image_relief): Likewise.
710
711 2012-11-30 Juanma Barranquero <lekktu@gmail.com>
712
713 * doc.c (Fdocumentation): Re-add handling of function-documentation,
714 accidentally removed in 2012-11-09T04:10:16Z!monnier@iro.umontreal.ca (bug#13034).
715
716 2012-11-29 Dmitry Antipov <dmantipov@yandex.ru>
717
718 * xdisp.c (window_outdated): Remove eassert since it hits
719 some suspicious corner cases (see Bug#13007 and Bug#13012).
720 (mode_line_update_needed): New function.
721 (redisplay_internal, redisplay_window): Use it.
722 (ensure_selected_frame): New function.
723 (redisplay_internal, unwind_redisplay): Use it.
724 (redisplay_internal): Move comment about buffer_shared...
725 (buffer_shared_and_changed): ...near to its real use.
726
727 2012-11-29 Paul Eggert <eggert@cs.ucla.edu>
728
729 * callproc.c (Fcall_process): Don't misreport vfork failure.
730
731 2012-11-28 Paul Eggert <eggert@cs.ucla.edu>
732
733 * callproc.c (Fcall_process): Fix vfork portability problems.
734 Do not assume that fd[0], count, filefd, and save_environ survive
735 vfork. Fix bug whereby wrong errno value could be reported for
736 pipe failure. Some minor cleanups, too, as follows. Move buf and
737 bufsize to the context where they're needed. Change new_argv to
738 be of type char **, as this is more convenient and avoids casts.
739 (CALLPROC_BUFFER_SIZE_MIN, CALLPROC_BUFFER_SIZE_MAX):
740 Now local constants, not macros.
741
742 2012-11-18 Kenichi Handa <handa@gnu.org>
743
744 * font.c (font_unparse_xlfd): Fix previous change. Keep "const"
745 for the variable "f".
746
747 2012-11-13 Kenichi Handa <handa@gnu.org>
748
749 * font.c (font_unparse_xlfd): Exclude special characters from the
750 generating XLFD name.
751
752 2012-11-27 Paul Eggert <eggert@cs.ucla.edu>
753
754 Assume POSIX 1003.1-1988 or later for grp.h, pwd.h.
755 * dired.c (stat_uname, stat_gname):
756 * fileio.c (Fexpand_file_name): Remove no-longer-needed casts.
757
758 Assume POSIX 1003.1-1988 or later for errno.h (Bug#12968).
759 * dired.c (directory_files_internal, file_name_completion):
760 Assume EAGAIN and EINTR are defined.
761
762 * fileio.c (Fcopy_file): Assume EISDIR is defined.
763 * gmalloc.c (ENOMEM, EINVAL): Assume they're defined.
764 * gnutls.c (emacs_gnutls_write): Assume EAGAIN is defined.
765 * lread.c (readbyte_from_file): Assume EINTR is defined.
766 * process.c (wait_reading_process_output, send_process) [subprocesses]:
767 Assume EIO and EAGAIN are defined.
768 * unexcoff.c (write_segment): Assume EFAULT is defined.
769
770 2012-11-27 Eli Zaretskii <eliz@gnu.org>
771
772 * fontset.c (Finternal_char_font): Return nil on non-GUI frames.
773 (Bug#11964)
774
775 * xdisp.c (draw_glyphs): Don't draw in mouse face if mouse
776 highlighting on the frame was cleared. Prevents assertion
777 violations when repeatedly clicking on the "Top" link of the
778 "bread-crumbs" in Info buffers.
779
780 2012-11-25 Paul Eggert <eggert@cs.ucla.edu>
781
782 * sysdep.c (sys_subshell): Don't assume pid_t fits in int.
783
784 2012-11-24 Ken Brown <kbrown@cornell.edu>
785
786 * keyboard.c (HAVE_MOUSE):
787 * frame.c (HAVE_MOUSE): Remove, and rewrite code as if HAVE_MOUSE
788 were always defined.
789
790 2012-11-24 Eli Zaretskii <eliz@gnu.org>
791
792 * xdisp.c (set_cursor_from_row): Skip step 2 only if point is not
793 between bpos_covered and bpos_max. This fixes cursor display when
794 several display strings follow each other.
795
796 * .gdbinit (pgx): If the glyph's object is a string, display the
797 pointer to string data, rather than the value of the string object
798 itself (which barfs under CHECK_LISP_OBJECT_TYPE).
799
800 * indent.c (Fvertical_motion): If the starting position is covered
801 by a display string, return to one position before that, to avoid
802 overshooting it inside move_it_to. (Bug#12930)
803
804 2012-11-23 Dmitry Antipov <dmantipov@yandex.ru>
805
806 * frame.h (struct frame): Remove display_preempted member
807 since all users are dead long ago.
808 * nsterm.h (struct x_output): Use the only dummy member.
809 * w32menu.c (pending_menu_activation): Remove since not
810 really used.
811 (set_frame_menubar): Adjust user.
812 * w32term.h (struct x_output): Drop outdated #if 0 code.
813 (struct w32_output): Use bitfields for explicit_parent,
814 asked_for_visible and menubar_active members.
815 Drop unused pending_menu_activation member.
816 * xterm.h (struct x_output): Drop outdated #if 0 code.
817 Use bitfields for explicit_parent, asked_for_visible,
818 has_been_visible and net_wm_state_hidden_seen members.
819
820 2012-11-23 Eli Zaretskii <eliz@gnu.org>
821
822 * makefile.w32-in (globals.h, gl-stamp): Use $(SWITCHCHAR) instead
823 of a literal "/". (Bug#12955)
824 (gl-stamp): Invoke fc.exe directly, not through cmd.
825
826 2012-11-23 Paul Eggert <eggert@cs.ucla.edu>
827
828 Assume POSIX 1003.1-1988 or later for dirent.h (Bug#12958).
829 * dired.c: Assume HAVE_DIRENT_H.
830 (NAMLEN): Remove, replacing with ...
831 (dirent_namelen): New function. All uses changed. Use the GNU macro
832 _D_EXACT_NAMELEN if available, as it's faster than strlen.
833 (DIRENTRY): Remove, replacing all uses with 'struct dirent'.
834 (DIRENTRY_NONEMPTY): Remove. All callers now assume it's nonzero.
835 * makefile.w32-in (DIR_H): Remove. All uses replaced with
836 $(NT_INC)/dirent.h.
837 ($(BLD)/w32.$(O)): Do not depend on $(SRC)/ndir.h.
838 * ndir.h: Rename to ../nt/inc/dirent.h.
839 * sysdep.h (closedir) [!HAVE_CLOSEDIR]: Remove.
840 Do not include <dirent.h>; no longer needed.
841 * w32.c: Include <dirent.h> rather than "ndir.h".
842
843 2012-11-23 Chong Yidong <cyd@gnu.org>
844
845 * xftfont.c (xftfont_open): Remove duplicate assignment.
846
847 2012-11-22 Dmitry Antipov <dmantipov@yandex.ru>
848
849 * alloc.c (Fgarbage_collect): Unblock input after clearing
850 gc_in_progress to avoid note_mouse_highlight glitch with GC.
851 * frame.h (FRAME_MOUSE_UPDATE): New macro.
852 * msdos.c (IT_frame_up_to_date): Use it here...
853 * w32term.c (w32_frame_up_to_date): ...here...
854 * xterm.c (XTframe_up_to_date): ...and here...
855 * nsterm.m (ns_frame_up_to_date): ...but not here.
856 * lisp.h (Mouse_HLInfo): Remove mouse_face_deferred_gc member.
857 Adjust users.
858 * xdisp.c (message2_nolog, message3_nolog, note_mouse_highlight):
859 Do not check whether GC is in progress.
860
861 2012-11-22 Dmitry Antipov <dmantipov@yandex.ru>
862
863 * xdisp.c (window_buffer_changed): New function.
864 (update_menu_bar, update_tool_bar): Use it to
865 simplify large 'if' statements.
866 (redisplay_internal): Generalize commonly used
867 'tail' and 'frame' local variables.
868
869 2012-11-22 Eli Zaretskii <eliz@gnu.org>
870
871 * w32.c (getcwd): Fix the 2nd argument type, to prevent conflicts
872 with Windows system header.
873
874 2012-11-21 Paul Eggert <eggert@cs.ucla.edu>
875
876 Assume POSIX 1003.1-1988 or later for unistd.h (Bug#12945).
877 * alloc.c: Assume unistd.h exists.
878 * fileio.c (Fexpand_file_name) [DOS_NT]: Use getcwd, not getwd.
879 * sysdep.c (get_current_dir_name): Assume getcwd exists.
880 (getwd) [USG]: Remove; no longer needed.
881 (sys_subshell) [DOS_NT]: Use getcwd, not getwd.
882 * w32.c (getcwd): Rename from getwd, and switch to getcwd's API.
883 * w32.h (getcwd): Remove decl.
884
885 2012-11-21 Stefan Monnier <monnier@iro.umontreal.ca>
886
887 * xdisp.c (fast_set_selected_frame): Rename from update_tool_bar_unwind.
888 Make it set selected_window as well.
889 (update_tool_bar): Use it.
890
891 2012-11-21 Ken Brown <kbrown@cornell.edu>
892
893 * emacs.c (main): Set the G_SLICE environment variable for all
894 Cygwin builds, not just GTK builds. See
895 https://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00368.html.
896
897 2012-11-21 Eli Zaretskii <eliz@gnu.org>
898
899 * w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED)
900 (FILE_ANY_ACCESS, CTL_CODE, FSCTL_GET_REPARSE_POINT) [_MSC_VER]:
901 Define for the MSVC compiler.
902
903 * w32term.h (EnumSystemLocalesW) [_MSC_VER]: Add a missing semi-colon.
904
905 * fileio.c (Fsubstitute_in_file_name, Ffile_name_directory)
906 (Fexpand_file_name) [DOS_NT]: Pass encoded file name to
907 dostounix_filename. Prevents crashes down the road, because
908 dostounix_filename assumes it gets a unibyte string.
909 Reported by Michel de Ruiter <michel@sentient.nl>, see
910 http://lists.gnu.org/archive/html/help-emacs-windows/2012-11/msg00017.html
911
912 2012-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
913
914 Conflate Qnil and Qunbound for `symbol-function'.
915 * alloc.c (Fmake_symbol): Initialize `function' to Qnil.
916 * lread.c (init_obarray): Set `function' fields to Qnil.
917 * eval.c (Fcommandp): Ignore Qunbound.
918 (Fautoload, eval_sub, Fapply, Ffuncall, Fmacroexpand):
919 * data.c (Ffset, Ffboundp, indirect_function, Findirect_function):
920 Test NILP rather than Qunbound.
921 (Ffmakunbound): Set to Qnil.
922 (Fsymbol_function): Never signal an error.
923 (Finteractive_form): Ignore Qunbound.
924
925 2012-11-20 Paul Eggert <eggert@cs.ucla.edu>
926
927 * eval.c (interactive_p): Remove no-longer-used decl.
928
929 2012-11-20 Dmitry Antipov <dmantipov@yandex.ru>
930
931 * xdisp.c (buffer_shared): Adjust comment.
932 (buffer_shared_and_changed): New function.
933 (prepare_menu_bars, redisplay_internal): Use it to
934 decide whether all windows or frames should be updated.
935 (window_outdated): New function.
936 (text_outside_line_unchanged_p, redisplay_window): Use it.
937 (redisplay_internal): Likewise. Fix indentation.
938
939 2012-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
940
941 * eval.c (Finteractive_p, Fcalled_interactively_p, interactive_p): Remove.
942 (syms_of_eval): Remove corresponding defsubr.
943 * bytecode.c (exec_byte_code): `interactive-p' is now a Lisp function.
944
945 2012-11-19 Daniel Colascione <dancol@dancol.org>
946
947 * w32fns.c (Fx_file_dialog):
948 (Fx_file_dialog): Accomodate rename of cygwin_convert_path* to
949 cygwin_convert_file_name*.
950
951 * cygw32.c (Fcygwin_convert_path_to_windows, syms_of_cygw32):
952 Rename cygwin_convert_path* to cygwin_convert_file_name*.
953
954 2012-11-18 Paul Eggert <eggert@cs.ucla.edu>
955
956 * nsterm.m (ns_select): Send SIGIO only to self, not to process group.
957
958 2012-11-18 Eli Zaretskii <eliz@gnu.org>
959
960 * w32select.c: Include w32common.h before w32term.h, so that
961 windows.h gets included before w32term.h uses some of its
962 features, see below.
963
964 * w32term.h (LOCALE_ENUMPROCA, LOCALE_ENUMPROCW) [_MSC_VER]:
965 New typedefs.
966 (EnumSystemLocalesA, EnumSystemLocalesW) [_MSC_VER]:
967 New prototypes.
968 (EnumSystemLocales) [_MSC_VER]: Define if undefined. (Bug#12878)
969
970 2012-11-18 Jan Djärv <jan.h.d@swipnet.se>
971
972 * nsterm.m (hold_event): Set send_appdefined to YES (Bug#12834).
973 (ns_select): Return at once if events are held (Bug#12834).
974
975 2012-11-18 enami tsugutomo <tsugutomo.enami@jp.sony.com>
976
977 * unexelf.c (ELFSIZE) [__NetBSD__ && _LP64]: Set to 64.
978 Needed following 2012-10-20 change. (Bug#12902)
979
980 2012-11-18 Juanma Barranquero <lekktu@gmail.com>
981
982 * w32proc.c (waitpid): Remove unused label get_result.
983
984 2012-11-17 Juanma Barranquero <lekktu@gmail.com>
985
986 * makefile.w32-in (SYSWAIT_H): New macro.
987 ($(BLD)/callproc.$(O), $(BLD)/w32proc.$(O), $(BLD)/process.$(O))
988 ($(BLD)/sysdep.$(O)): Update dependencies.
989
990 2012-11-17 Paul Eggert <eggert@cs.ucla.edu>
991
992 Assume POSIX 1003.1-1988 or later for fcntl.h (Bug#12881).
993 * callproc.c (relocate_fd): Assume F_DUPFD.
994 * emacs.c, term.c (O_RDWR): Remove.
995 * keyboard.c (tty_read_avail_input): Use O_NONBLOCK rather than
996 O_NDELAY, since O_NONBLOCK is the standard name for this flag.
997 * nsterm.m: Assume <fcntl.h> exists.
998 * process.c (NON_BLOCKING_CONNECT, allocate_pty, create_process)
999 (create_pty, Fmake_network_process, server_accept_connection)
1000 (wait_reading_process_output, init_process_emacs):
1001 Assume O_NONBLOCK.
1002 (wait_reading_process_output): Put in a special case for WINDOWSNT
1003 to mimick the older behavior where it had O_NDELAY but not O_NONBLOCK.
1004 It's not clear this is needed, but it's a more-conservative change.
1005 (create_process): Assume FD_CLOEXEC.
1006 (create_process, create_pty): Assume O_NOCTTY.
1007 * sysdep.c (init_sys_modes, reset_sys_modes): Assume F_SETFL.
1008 (reset_sys_modes): Use O_NONBLOCK rather than O_NDELAY.
1009 Omit if not DOS_NT, since F_GETFL is not defined there.
1010 (serial_open): Assume O_NONBLOCK and O_NOCTTY.
1011 * term.c: Include <fcntl.h>, for flags like O_NOCTTY.
1012 (O_NOCTTY): Remove.
1013 (init_tty): Assume O_IGNORE_CTTY is defined to 0 on platforms that
1014 lack it, since gnulib guarantees this.
1015 * w32.c (fcntl): Test for O_NONBLOCK rather than O_NDELAY.
1016
1017 2012-11-17 Eli Zaretskii <eliz@gnu.org>
1018
1019 * w32.c (faccessat): Pretend that directories have the execute bit
1020 set. Emacs expects that, e.g., in files.el:cd-absolute.
1021
1022 * w32proc.c (create_child): Don't clip the PID of the child
1023 process to fit into an Emacs integer, as this is no longer a
1024 restriction.
1025 (waitpid): Rename from sys_wait. Emulate a Posix 'waitpid' by
1026 reaping only the process specified by PID argument, if that is
1027 positive. Use PID instead of dead_child to know which process to
1028 reap. Wait for the child to die only if WNOHANG is not in
1029 OPTIONS.
1030 (sys_select): Don't set dead_child.
1031
1032 * sysdep.c (wait_for_termination_1): Remove the WINDOWSNT portion,
1033 as it is no longer needed.
1034
1035 * process.c (waitpid, WUNTRACED) [!WNOHANG]: Remove definitions,
1036 no longer needed.
1037 (record_child_status_change): Remove the setting of
1038 record_at_most_one_child for the !WNOHANG case.
1039
1040 2012-11-17 Paul Eggert <eggert@cs.ucla.edu>
1041
1042 Fix problems in ns port found by static checking.
1043 * nsterm.m: Include <pthread.h>, for pthread_mutex_lock etc.
1044 (hold_event, setPosition:portion:whole:): Send SIGIO only to self,
1045 not to process group.
1046 (ns_select): Use emacs_write, not write, as that's more robust
1047 in the presence of signals.
1048 (fd_handler:): Check for read errors.
1049
1050 2012-11-16 Glenn Morris <rgm@gnu.org>
1051
1052 * editfns.c (Fmessage): Mention message-log-max. (Bug#12849)
1053
1054 2012-11-16 Stefan Monnier <monnier@iro.umontreal.ca>
1055
1056 * eval.c (Finteractive_p): Revert lexbind-merge mishap.
1057
1058 2012-11-16 Eli Zaretskii <eliz@gnu.org>
1059
1060 * w32proc.c (timer_loop): Make sure SuspendThread and ResumeThread
1061 use the same value of thread handle.
1062 (start_timer_thread): If the timer thread exited (due to error),
1063 clean up by closing the two handles it used. Duplicate the caller
1064 thread's handle here, so it gets duplicated only once, when
1065 launching the timer thread. Set priority of the timer thread, not
1066 the caller thread.
1067 (getitimer): Don't duplicate the caller thread's handle here.
1068 (Bug#12832)
1069
1070 2012-11-16 Jan Djärv <jan.h.d@swipnet.se>
1071
1072 * nsterm.m (hold_event): Send SIGIO to make sure ns_read_socket is
1073 called (Bug#12834).
1074
1075 2012-11-16 Paul Eggert <eggert@cs.ucla.edu>
1076
1077 Remove no-longer-used pty_max_bytes variable.
1078 * process.c (pty_max_bytes): Remove; unused.
1079 (send_process): Do not set it.
1080
1081 2012-11-15 Juanma Barranquero <lekktu@gmail.com>
1082
1083 * makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/emacs.$(O)):
1084 Update dependencies.
1085
1086 2012-11-15 Paul Eggert <eggert@cs.ucla.edu>
1087
1088 * eval.c (mark_backtrace) [BYTE_MARK_STACK]: Remove stray '*'.
1089 This follows up on the 2012-09-29 patch that removed indirection
1090 for the 'function' field. Reported by Sergey Vinokurov in
1091 <http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00263.html>.
1092
1093 2012-11-14 Eli Zaretskii <eliz@gnu.org>
1094
1095 * w32.c (faccessat): Rename from sys_faccessat. (No need to use a
1096 different name, as the MS runtime does not have such a function,
1097 and probably never will.) All callers changed. Ignore DIRFD
1098 value if PATH is an absolute file name, to match Posix spec
1099 better. If AT_SYMLINK_NOFOLLOW is set in FLAGS, don't resolve
1100 symlinks.
1101
1102 2012-11-14 Dmitry Antipov <dmantipov@yandex.ru>
1103
1104 * xdisp.c (echo_area_display, redisplay_internal):
1105 Omit redundant check whether frame_garbaged is set.
1106
1107 2012-11-14 Paul Eggert <eggert@cs.ucla.edu>
1108
1109 Use faccessat, not access, when checking file permissions (Bug#12632).
1110 This fixes a bug that has been present in Emacs since its creation.
1111 It was reported by Chris Torek in 1983 even before GNU Emacs existed,
1112 which must set some sort of record. (Torek's bug report was against
1113 a predecessor of GNU Emacs, but GNU Emacs happened to have the
1114 same common flaw.) See Torek's Usenet posting
1115 "setuid/setgid programs & Emacs" Article-I.D.: sri-arpa.858
1116 Posted: Fri Apr 8 14:18:56 1983.
1117 * Makefile.in (LIB_EACCESS): New macro.
1118 (LIBES): Use it.
1119 * callproc.c (init_callproc):
1120 * charset.c (init_charset):
1121 * fileio.c (check_existing, check_executable, check_writable)
1122 (Ffile_readable_p):
1123 * lread.c (openp, load_path_check):
1124 * process.c (allocate_pty):
1125 * xrdb.c (file_p):
1126 Use effective UID when checking permissions, not real UID.
1127 * callproc.c (init_callproc):
1128 * charset.c (init_charset):
1129 * lread.c (load_path_check, init_lread):
1130 Test whether directories are accessible, not merely whether they exist.
1131 * conf_post.h (GNULIB_SUPPORT_ONLY_AT_FDCWD): New macro.
1132 * fileio.c (check_existing, check_executable, check_writable)
1133 (Ffile_readable_p):
1134 Use symbolic names instead of integers for the flags, as they're
1135 portable now.
1136 (check_writable): New arg AMODE. All uses changed.
1137 Set errno on failure.
1138 (Ffile_readable_p): Use faccessat, not stat + open + close.
1139 (Ffile_writable_p): No need to call check_existing + check_writable.
1140 Just call check_writable and then look at errno. This saves a syscall.
1141 dir should never be nil; replace an unnecessary runtime check
1142 with an eassert. When checking the parent directory of a nonexistent
1143 file, check that the directory is searchable as well as writable, as
1144 we can't create files in unsearchable directories.
1145 (file_directory_p): New function, which uses 'stat' on most platforms
1146 but faccessat with D_OK (for efficiency) if WINDOWSNT.
1147 (Ffile_directory_p, Fset_file_times): Use it.
1148 (file_accessible_directory_p): New function, which uses a single
1149 syscall for efficiency.
1150 (Ffile_accessible_directory_p): Use it.
1151 * xrdb.c (file_p): Use file_directory_p.
1152 * lisp.h (file_directory_p, file_accessible_directory_p): New decls.
1153 * lread.c (openp): When opening a file, use fstat rather than
1154 stat, as that avoids a permissions race. When not opening a file,
1155 use file_directory_p rather than stat.
1156 (dir_warning): First arg is now a usage string, not a format.
1157 Use errno. All uses changed.
1158 * nsterm.m (ns_term_init): Remove unnecessary call to file-readable
1159 that merely introduced a race.
1160 * process.c, sysdep.c, term.c: All uses of '#ifdef O_NONBLOCK'
1161 changed to '#if O_NONBLOCK', to accommodate gnulib O_* style,
1162 and similarly for the other O_* flags.
1163 * w32.c (sys_faccessat): Rename from sys_access and switch to
1164 faccessat's API. All uses changed.
1165 * xrdb.c: Do not include <sys/stat.h>; no longer needed.
1166 (magic_db): Rename from magic_file_p.
1167 (magic_db, search_magic_path): Return an XrmDatabase rather than a
1168 char *, so that we don't have to test for file existence
1169 separately from opening the file for reading. This removes a race
1170 fixes a permission-checking problem, and simplifies the code.
1171 All uses changed.
1172 (file_p): Remove; no longer needed.
1173
1174 2012-11-13 Dmitry Antipov <dmantipov@yandex.ru>
1175
1176 Omit glyphs initialization at startup.
1177 * dispnew.c (glyphs_initialized_initially_p): Remove.
1178 (adjust_frame_glyphs_initially): Likewise. Adjust users.
1179 (Fredraw_frame): Move actual code from here...
1180 (redraw_frame): ...to here. Add eassert. Adjust comment.
1181 (Fredraw_display): Use redraw_frame.
1182 * xdisp.c (clear_garbaged_frames): Likewise.
1183
1184 2012-11-13 Eli Zaretskii <eliz@gnu.org>
1185
1186 * xdisp.c (decode_mode_spec): Limit the value of WIDTH argument
1187 passed to pint2str and pint2hrstr to be at most the size of the
1188 frame's decode_mode_spec_buffer. This avoids crashes with very
1189 large values of FIELD_WIDTH argument to decode_mode_spec.
1190 (Bug#12867)
1191
1192 2012-11-13 Paul Eggert <eggert@cs.ucla.edu>
1193
1194 Fix a race with verify-visited-file-modtime (Bug#12863).
1195 Since at least 1991 Emacs has ignored an mtime difference of no
1196 more than one second, but my guess is that this was to work around
1197 file system bugs that were fixed long ago. Since the race is
1198 causing problems now, let's remove that code.
1199 * fileio.c (Fverify_visited_file_modtime): Do not accept a file
1200 whose time stamp is off by no more than a second. Insist that the
1201 file time stamps match exactly.
1202
1203 2012-11-12 Dmitry Antipov <dmantipov@yandex.ru>
1204
1205 * frame.h (struct frame): Convert external_tool_bar member to
1206 1-bit unsigned bitfield.
1207 * termhooks.h (struct terminal): Remove mouse_moved member since
1208 all users are long dead. Adjust comment on mouse_position_hook.
1209
1210 2012-11-12 Dmitry Antipov <dmantipov@yandex.ru>
1211
1212 Simplify by using FOR_EACH_FRAME here and there.
1213 * frame.c (next_frame, prev_frame, other_visible_frames)
1214 (delete_frame, visible-frame-list): Use FOR_EACH_FRAME.
1215 * w32term.c (x_window_to_scroll_bar): Likewise.
1216 * window.c (window_list): Likewise.
1217 * xdisp.c (x_consider_frame_title): Likewise.
1218 * xfaces.c ( Fdisplay_supports_face_attributes_p): Likewise.
1219 * xfns.c (x_window_to_frame, x_any_window_to_frame)
1220 (x_menubar_window_to_frame, x_top_window_to_frame): Likewise.
1221 * xmenu.c (menubar_id_to_frame): Likewise.
1222 * xselect.c (frame_for_x_selection): Likewise.
1223 * xterm.c (x_frame_of_widget, x_window_to_scroll_bar)
1224 (x_window_to_menu_bar): Likewise.
1225 * w32fns.c (x_window_to_frame): Likewise. Adjust comment.
1226
1227 2012-11-12 Paul Eggert <eggert@cs.ucla.edu>
1228
1229 * data.c (Qdefalias_fset_function): Now static.
1230
1231 Another tweak to vectorlike_header change.
1232 * alloc.c (struct Lisp_Vectorlike_Free, NEXT_IN_FREE_LIST):
1233 Remove, and replace all uses with ...
1234 (next_in_free_list, set_next_in_free_list):
1235 New functions, which respect C's aliasing rules better.
1236
1237 2012-11-11 Paul Eggert <eggert@cs.ucla.edu>
1238
1239 * window.c (list4i): Rename from 'quad'. All uses changed.
1240 Needed because <sys/types.h> defines 'quad' on Solaris 10.
1241
1242 2012-11-11 Juanma Barranquero <lekktu@gmail.com>
1243
1244 * xdisp.c (start_hourglass) [HAVE_NTGUI]: Add block to silence
1245 warning about mixing declarations and code in ISO C90.
1246
1247 2012-11-10 Martin Rudalics <rudalics@gmx.at>
1248
1249 * window.c (Fsplit_window_internal): Set combination limit of
1250 new parent window to t iff Vwindow_combination_limit is t;
1251 fixing a regression introduced with the change from 2012-09-22.
1252 (Fset_window_combination_limit): Fix doc-string.
1253
1254 2012-11-10 Eli Zaretskii <eliz@gnu.org>
1255
1256 * xdisp.c (try_scrolling): Fix correction of aggressive-scroll
1257 amount when the scroll margins are too large. When scrolling
1258 backwards in the buffer, give up if cannot reach point or the
1259 scroll margin within a reasonable number of screen lines.
1260 Fixes point position in window under scroll-up/down-aggressively when
1261 point is positioned many lines beyond the window top/bottom.
1262 (Bug#12811)
1263
1264 * ralloc.c (relinquish): If real_morecore fails to return memory
1265 to the system, don't crash; instead, leave the last heap
1266 unchanged and return. (Bug#12774)
1267
1268 2012-11-09 Stefan Monnier <monnier@iro.umontreal.ca>
1269
1270 * lisp.h (AUTOLOADP): New macro.
1271 * eval.c (Fautoload): Don't attach to loadhist, call Fdefalias instead.
1272 * data.c (Ffset): Remove special ad-advice-info handling.
1273 (Fdefalias): Handle autoload definitions and new Qdefalias_fset_function.
1274 (Fsubr_arity): CSE.
1275 (Finteractive_form): Simplify.
1276 (Fquo): Don't insist on having at least 2 arguments.
1277 (Qdefalias_fset_function): New var.
1278
1279 2012-11-09 Jan Djärv <jan.h.d@swipnet.se>
1280
1281 * image.c (xpm_make_color_table_h): Change to hashtest_equal.
1282
1283 * nsfont.m (Qcondensed, Qexpanded): New variables.
1284 (ns_descriptor_to_entity): Restore Qcondensed, Qexpanded setting.
1285 (syms_of_nsfont): Defsym Qcondensed, Qexpanded.
1286
1287 2012-11-09 Dmitry Antipov <dmantipov@yandex.ru>
1288
1289 Fix recently introduced crash on MS-Windows (Bug#12839).
1290 * w32term.h (struct scroll_bar): Use convenient header.
1291 (SCROLL_BAR_VEC_SIZE): Remove.
1292 * w32term.c (x_scroll_bar_create): Use VECSIZE.
1293
1294 2012-11-09 Dmitry Antipov <dmantipov@yandex.ru>
1295
1296 Tweak last vectorlike_header change.
1297 * alloc.c (struct Lisp_Vectorlike_Free): Special type to represent
1298 vectorlike object on the free list. This is introduced to avoid
1299 some (but not all) pointer casting and aliasing problems, see
1300 http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00105.html.
1301 * .gdbinit (pvectype, pvecsize): New commands to examine vectorlike
1302 objects.
1303 (xvectype, xvecsize): Use them to examine Lisp_Object values.
1304
1305 2012-11-09 Jan Djärv <jan.h.d@swipnet.se>
1306
1307 * nsfont.m (ns_descriptor_to_entity): Qcondensed and Qexpanded has
1308 been removed, so remove them here also.
1309
1310 2012-11-09 Stefan Monnier <monnier@iro.umontreal.ca>
1311
1312 * doc.c (Fdocumentation): Handle new property
1313 dynamic-docstring-function to replace the old ad-advice-info.
1314
1315 2012-11-09 Paul Eggert <eggert@cs.ucla.edu>
1316
1317 * fns.c (Qeql, hashtest_eq): Now static.
1318
1319 2012-11-08 Stefan Monnier <monnier@iro.umontreal.ca>
1320
1321 * lisp.h (XHASH): Redefine to be imperfect and fit in a Lisp int.
1322 * fns.c (hashfn_eq, hashfn_eql, sxhash):
1323 * profiler.c (hashfn_profiler): Don't use XUINT on non-integers.
1324 * buffer.c (compare_overlays): Use XLI rather than XHASH.
1325
1326 2012-11-08 Paul Eggert <eggert@cs.ucla.edu>
1327
1328 Use same hash function for hashfn_profiler as for hash_string etc.
1329 * fns.c (SXHASH_COMBINE): Remove. All uses replaced by sxhash_combine.
1330 * lisp.h (sxhash_combine): New inline function, with the contents
1331 of the old SXHASH_COMBINE.
1332 * profiler.c (hashfn_profiler): Use it, instead of having a
1333 special hash function containing a comparison that always yields 1.
1334
1335 2012-11-08 Stefan Monnier <monnier@iro.umontreal.ca>
1336
1337 * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic)
1338 (Qultra_condensed, Qextra_condensed, Qcondensed, Qsemi_condensed)
1339 (Qsemi_expanded, Qextra_expanded, Qexpanded, Qultra_expanded):
1340 Remove unused vars.
1341
1342 2012-11-08 Jan Djärv <jan.h.d@swipnet.se>
1343
1344 * image.c (xpm_make_color_table_h): Fix compiler error because
1345 make_hash_table changed.
1346
1347 2012-11-08 Thomas Kappler <tkappler@gmail.com> (tiny change)
1348
1349 * nsfont.m (ns_findfonts): Handle empty matchingDescs (Bug#11541).
1350
1351 2012-11-08 Stefan Monnier <monnier@iro.umontreal.ca>
1352
1353 Use ad-hoc comparison function for the profiler's hash-tables.
1354 * profiler.c (Qprofiler_backtrace_equal, hashtest_profiler): New vars.
1355 (make_log): Use them.
1356 (handle_profiler_signal): Don't inhibit quit any longer since we don't
1357 call Fequal any more.
1358 (Ffunction_equal): New function.
1359 (cmpfn_profiler, hashfn_profiler): New functions.
1360 (syms_of_profiler): Initialize them.
1361 * lisp.h (struct hash_table_test): New struct.
1362 (struct Lisp_Hash_Table): Use it.
1363 * alloc.c (mark_object): Mark hash_table_test fields of hash tables.
1364 * fns.c (make_hash_table): Take a struct to describe the test.
1365 (cmpfn_eql, cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
1366 (hashfn_equal, hashfn_user_defined): Adjust to new calling convention.
1367 (hash_lookup, hash_remove_from_table): Move assertion checking of
1368 hashfn result here. Check hash-equality before calling cmpfn.
1369 (Fmake_hash_table): Adjust call to make_hash_table.
1370 (hashtest_eq, hashtest_eql, hashtest_equal): New structs.
1371 (syms_of_fns): Initialize them.
1372 * emacs.c (main): Move syms_of_fns earlier.
1373 * xterm.c (syms_of_xterm):
1374 * category.c (hash_get_category_set): Adjust call to make_hash_table.
1375 * print.c (print_object): Adjust to new hash-table struct.
1376 * composite.c (composition_gstring_put_cache): Adjust to new hashfn.
1377
1378 2012-11-08 Eli Zaretskii <eliz@gnu.org>
1379
1380 * w32fns.c (modifier_set): Fix handling of Scroll Lock when the
1381 value of w32-scroll-lock-modifier is neither nil nor one of the
1382 known key modifiers. (Bug#12806)
1383
1384 2012-11-08 Dmitry Antipov <dmantipov@yandex.ru>
1385
1386 Shrink struct vectorlike_header to the only size field.
1387 * lisp.h (enum pvec_type): Avoid explicit enum member values.
1388 Adjust comment.
1389 (enum More_Lisp_Bits): Change PSEUDOVECTOR_SIZE_BITS and
1390 PVEC_TYPE_MASK to arrange new bitfield in the vector header.
1391 (PSEUDOVECTOR_REST_BITS, PSEUDOVECTOR_REST_MASK): New members.
1392 (PSEUDOVECTOR_AREA_BITS): New member used to extract subtype
1393 information from the vector header. Adjust comment.
1394 (XSETPVECTYPE, XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR)
1395 (PSEUDOVECTOR_TYPEP, DEFUN): Adjust to match new vector header
1396 layout.
1397 (XSETSUBR, SUBRP): Adjust to match new Lisp_Subr layout.
1398 (struct vectorlike_header): Remove next member. Adjust comment.
1399 (struct Lisp_Subr): Add convenient header. Adjust comment.
1400 (allocate_pseudovector): Adjust prototype.
1401 * alloc.c (mark_glyph_matrix, mark_face_cache, allocate_string)
1402 (sweep_string, lisp_malloc): Remove useless prototypes.
1403 (enum mem_type): Adjust comment.
1404 (NEXT_IN_FREE_LIST): New macro.
1405 (SETUP_ON_FREE_LIST): Adjust XSETPVECTYPESIZE usage.
1406 (Fmake_bool_vector): Likewise.
1407 (struct large_vector): New type to represent allocation unit for
1408 the vectors with the memory footprint more than VBLOOCK_BYTES_MAX.
1409 (large_vectors): Change type to struct large_vector.
1410 (allocate_vector_from_block): Simplify.
1411 (PSEUDOVECTOR_NBYTES): Replace with...
1412 (vector_nbytes): ...new function. Adjust users.
1413 (sweep_vectors): Adjust processing of large vectors.
1414 (allocate_vectorlike): Likewise.
1415 (allocate_pseudovector): Change type of 3rd arg to enum pvec_type.
1416 Add easserts. Adjust XSETPVECTYPESIZE usage.
1417 (allocate_buffer): Use BUFFER_PVEC_INIT.
1418 (live_vector_p): Adjust to match large vector.
1419 * buffer.c (init_buffer_once): Use BUFFER_PVEC_INIT.
1420 * buffer.h (struct buffer): Add next member.
1421 (BUFFER_LISP_SIZE, BUFFER_REST_SIZE, BUFFER_PVEC_INIT):
1422 New macros.
1423 (FOR_EACH_BUFFER): Adjust to match struct buffer change.
1424 * fns.c (internal_equal): Adjust to match enum pvec_type change.
1425 (copy_hash_table): Adjust to match vector header change.
1426 * lread.c (defsubr): Use XSETPVECTYPE.
1427 * .gdbinit (xpr, xbacktrace): Adjust to match vector header change.
1428 (xvectype): Likewise. Print PVEC_NORMAL_VECTOR for regular vectors.
1429 (xvecsize): New command.
1430
1431 2012-11-08 Dmitry Antipov <dmantipov@yandex.ru>
1432
1433 * keyboard.c (event_to_kboard): Do not dereference
1434 frame_or_window field of SELECTION_REQUEST_EVENT
1435 and SELECTION_CLEAR_EVENT events (Bug#12814).
1436 * xterm.h (struct selection_input_event): Adjust comment.
1437
1438 2012-11-07 Eli Zaretskii <eliz@gnu.org>
1439
1440 * w32fns.c (modifier_set): Don't report modifiers from toggle key,
1441 such as Scroll Lock, if the respective keys are treated as
1442 function keys, not as modifiers. This avoids destroying non-ASCII
1443 keyboard input when Scroll Lock is toggled ON. (Bug#12806)
1444
1445 2012-11-07 Dmitry Antipov <dmantipov@yandex.ru>
1446
1447 * xfns.c (Fx_wm_set_size_hint): Use check_x_frame. Adjust docstring.
1448
1449 2012-11-06 Paul Eggert <eggert@cs.ucla.edu>
1450
1451 Restore some duplicate definitions (Bug#12814).
1452 This undoes part of the 2012-11-03 changes. Some people build
1453 with plain -g rather than with -g3, and they need the duplicate
1454 definitions for .gdbinit to work; see <http://bugs.gnu.org/12814#26>.
1455 * lisp.h (GCTYPEBITS, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK):
1456 Define as macros, as well as as enums or as constants.
1457
1458 2012-11-06 Jan Djärv <jan.h.d@swipnet.se>
1459
1460 * nsterm.m (convert_ns_to_X_keysym, keyDown:): Add NSNumericPadKeyMask
1461 to keypad keys (Bug#12816).
1462
1463 2012-11-06 Paul Eggert <eggert@cs.ucla.edu>
1464
1465 Minor adjustments of recently-changed frame functions.
1466 * buffer.c (Fbuffer_list): Omit CHECK_FRAME, since arg is already
1467 known to be a frame (we're in the FRAMEP branch).
1468 * lisp.h (Qframep): Remove decl. frame.h declares this.
1469 * window.c (quad): Args are of type EMACS_INT, not ptrdiff_t,
1470 since they're meant for Lisp fixnum values.
1471
1472 2012-11-06 Dmitry Antipov <dmantipov@yandex.ru>
1473
1474 * window.c (Fwindow_combination_limit): Revert to the only
1475 required argument and adjust docstring as suggested in
1476 http://lists.gnu.org/archive/html/emacs-diffs/2012-11/msg01082.html
1477 by Martin Rudalics <rudalics@gmx.at>.
1478
1479 2012-11-06 Dmitry Antipov <dmantipov@yandex.ru>
1480
1481 Widely used frame validity and checking functions.
1482 * frame.h (decode_live_frame, decode_any_frame): Add prototypes.
1483 * frame.c (decode_live_frame, decode_any_frame): New functions.
1484 (delete_frame, Fredirect_frame_focus, Fframe_parameters)
1485 (Fframe_parameter, Fframe_char_height, Fframe_char_width)
1486 (Fframe_pixel_height, Fframe_pixel_width, Ftool_bar_pixel_width)
1487 (Fframe_pointer_visible_p): Use decode_any_frame.
1488 (Fmake_frame_visible, Fmake_frame_invisible, Ficonify_frame)
1489 (Fraise_frame, Flower_frame, Fmodify_frame_parameters)
1490 (Fset_frame_height, Fset_frame_width): Use decode_live_frame.
1491 (Fframe_focus): Likewise. Allow zero number of arguments.
1492 Adjust docstring.
1493 (frame_buffer_list, frame_buffer_predicate): Remove.
1494 * lisp.h (frame_buffer_predicate): Remove prototype.
1495 * buffer.c (Fother_buffer): Use decode_any_frame.
1496 * xdisp.c (Ftool_bar_lines_needed): Likewise.
1497 * xfaces.c (Fcolor_gray_p, Fcolor_supported_p): Likewise.
1498 * font.c (Ffont_face_attributes, Ffont_family_list, Fopen_font)
1499 (Fclose_font, Ffont_info): Use decode_live_frame.
1500 * fontset.c (check_fontset_name): Likewise.
1501 * terminal.c (Fframe_terminal): Likewise.
1502 * w32fns.c (check_x_frame): Likewise.
1503 * window.c (Fminibuffer_window, Fwindow_at)
1504 (Fcurrent_window_configuration): Likewise.
1505 (Frun_window_configuration_change_hook, Fwindow_resize_apply):
1506 Likewise. Allow zero number of arguments. Adjust docstring.
1507 * dispnew.c (Fredraw_frame): Likewise.
1508 * xfaces.c (frame_or_selected_frame): Remove.
1509 (Fx_list_fonts, Finternal_get_lisp_face_attribute, Fface_font)
1510 (Finternal_lisp_face_equal_p, Finternal_lisp_face_empty_p)
1511 (Fframe_face_alist): Use decode_live_frame.
1512 * xfns.c (check_x_frame): Likewise.
1513
1514 2012-11-06 Dmitry Antipov <dmantipov@yandex.ru>
1515
1516 * window.c (quad): New function.
1517 (Fwindow_edges, Fwindow_pixel_edges, Fwindow_inside_edges)
1518 (Fwindow_absolute_pixel_edges, Fwindow_inside_absolute_pixel_edges)
1519 (Fwindow_inside_pixel_edges, Fpos_visible_in_window_p)
1520 (Fwindow_line_height): Use it.
1521 (Fwindow_fringes): Use list3.
1522 (Fwindow_scroll_bars): Use list4.
1523 (Fwindow_frame, Fwindow_top_child, Fwindow_left_child)
1524 (Fwindow_combination_limit): Allow zero number of arguments.
1525
1526 2012-11-05 Eli Zaretskii <eliz@gnu.org>
1527
1528 * makefile.w32-in ($(BLD)/w32fns.$(O)): Depend on $(NT_INC)/unistd.h.
1529
1530 * w32fns.c: Include unistd.h, to avoid compiler warnings on Cygwin.
1531 (emacs_abort) [CYGWIN]: Don't call _open_osfhandle; instead, use
1532 file descriptor 2 for standard error. (Bug#12805)
1533
1534 2012-11-05 Chong Yidong <cyd@gnu.org>
1535
1536 * process.c (wait_reading_process_output): Revert previous change.
1537
1538 2012-11-05 Paul Eggert <eggert@cs.ucla.edu>
1539
1540 Assume at least POSIX.1-1988 for getpgrp, setpgid, setsid (Bug#12800).
1541 This removes code that has been obsolete since around 1990.
1542 * callproc.c (Fcall_process):
1543 * emacs.c (main):
1544 * process.c (create_process):
1545 * term.c (dissociate_if_controlling_tty):
1546 Assume setsid exists.
1547 * callproc.c (child_setup): Assume setpgid exists and behaves as
1548 per POSIX.1-1988 or later.
1549 * conf_post.h (setpgid) [!HAVE_SETPGID]: Remove.
1550 * emacs.c (shut_down_emacs):
1551 * sysdep.c (sys_suspend, init_foreground_group):
1552 Assume getpgrp behaves as per POSIX.1-1998 or later.
1553 * msdos.c (setpgrp): Remove.
1554 (tcgetpgrp, setpgid, setsid): New functions.
1555 * systty.h (EMACS_GETPGRP): Remove. All callers now use getpgrp.
1556 * term.c (no_controlling_tty): Remove; unused.
1557 * w32proc.c (setpgrp): Remove.
1558 (setsid, tcgetpgrp): New functions.
1559
1560 Simplify by assuming __fpending.
1561 * dispnew.c: Include <fpending.h>, not <stdio_ext.h>.
1562 (update_frame_1): Use __fpending, not PENDING_OUTPUT_COUNT.
1563 Do not assume that __fpending's result fits in int.
1564
1565 2012-11-04 Paul Eggert <eggert@cs.ucla.edu>
1566
1567 Remove EMACS_OUTQSIZE+sleep hack.
1568 * dispnew.c (update_frame_1): Remove hack for terminals slower
1569 than 2400 bps, which throttled Emacs by having it sleep.
1570 This code hasn't worked since at least 2007, when the multi-tty stuff
1571 was added, and anyway those old terminals are long dead.
1572 * systty.h (EMACS_OUTQSIZE): Remove; unused. The macro isn't used even
1573 without the dispnew.c change, as dispnew.c doesn't include systty.h.
1574
1575 Fix data-loss with --version (Bug#9574).
1576 * emacs.c (close_output_streams): Use strerror, not emacs_strerror,
1577 as we can't assume that emacs_strerror is initialized, and strerror
1578 is good enough here.
1579 (main): Invoke atexit earlier, to catch earlier instances of
1580 sending data to stdout and exiting, e.g., "emacs --version >/dev/full".
1581
1582 2012-11-04 Michael Marchionna <tralfaz@pacbell.net>
1583
1584 * nsterm.m: Add NSClearLineFunctionKey and keypad keys (Bug#8680).
1585 (keyDown): Remap keypad keys to X11 virtual key codes.
1586
1587 2012-11-03 Paul Eggert <eggert@cs.ucla.edu>
1588
1589 Fix data-loss with --batch (Bug#9574).
1590 * emacs.c: Include <close-stream.h>.
1591 (close_output_streams): New function.
1592 (main): Pass it to atexit, so that Emacs closes stdout and stderr
1593 and handles errors appropriately.
1594 (Fkill_emacs): Don't worry about flushing, as close_output_stream
1595 does that now.
1596
1597 Fix a race condition that causes Emacs to mess up glib (Bug#8855).
1598 The symptom is a diagnostic "GLib-WARNING **: In call to
1599 g_spawn_sync(), exit status of a child process was requested but
1600 SIGCHLD action was set to SIG_IGN and ECHILD was received by
1601 waitpid(), so exit status can't be returned." The diagnostic
1602 is partly wrong, as the SIGCHLD action is not set to SIG_IGN.
1603 The real bug is a race condition between Emacs and glib: Emacs
1604 does a waitpid (-1, ...) and reaps glib's subprocess by mistake,
1605 so that glib can't find it. Work around the bug by invoking
1606 waitpid only on subprocesses that Emacs itself creates.
1607 * process.c (create_process, record_child_status_change):
1608 Don't use special value -1 in pid field, as the caller now must
1609 know the pid rather than having the callee infer it.
1610 The inference was sometimes incorrect anyway, due to another race.
1611 (create_process): Set new 'alive' member if child is created.
1612 (process_status_retrieved): New function.
1613 (record_child_status_change): Use it.
1614 Accept negative 1st argument, which means to wait for the
1615 processes that Emacs already knows about. Move special-case code
1616 for DOS_NT (which lacks WNOHANG) here, from caller. Keep track of
1617 processes that have already been waited for, by testing and
1618 clearing new 'alive' member.
1619 (CAN_HANDLE_MULTIPLE_CHILDREN): Remove, as record_child_status_change
1620 now does this internally.
1621 (handle_child_signal): Let record_child_status_change do all
1622 the work, since we do not want to reap all exited child processes,
1623 only the child processes that Emacs itself created.
1624 * process.h (Lisp_Process): New boolean member 'alive'.
1625
1626 Omit duplicate definitions no longer needed with gcc -g3.
1627 * lisp.h (GCTYPEBITS, GCALIGNMENT, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG)
1628 (VALMASK, MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM):
1629 Define only as macros. There's no longer any need to also define
1630 these symbols as enums or as constants, since we now assume
1631 gcc -g3 when debugging.
1632
1633 2012-11-03 Eli Zaretskii <eliz@gnu.org>
1634
1635 * lisp.mk: Adjust comments to the fact that term/internal is now
1636 loaded from loadup.el.
1637
1638 * msdos.c (msdos_abort): Rename from emacs_abort, and make static.
1639 (msdos_fatal_signal): New function.
1640 (XMenuActivate): Adjust the call to kbd_buffer_events_waiting to
1641 its argument list.
1642
1643 * conf_post.h (_GL_EXECINFO_INLINE) [MSDOS]: Define to "inline"
1644 for GCC versions before 4.
1645 (emacs_raise): Define to call msdos_fatal_signal.
1646
1647 * xdisp.c (init_from_display_pos): Fix initialization of the bidi
1648 iterator when starting in the middle of a display or overlay
1649 string. (Bug#12745)
1650
1651 2012-11-03 Chong Yidong <cyd@gnu.org>
1652
1653 * process.c (wait_reading_process_output): Clean up the last
1654 change.
1655
1656 2012-11-03 Jim Paris <jim@jtan.com> (tiny change)
1657
1658 * process.c (wait_reading_process_output): Avoid a race condition
1659 with SIGIO delivery (Bug#11536).
1660
1661 2012-11-03 Chong Yidong <cyd@gnu.org>
1662
1663 * buffer.c (cursor_type): Untabify docstring.
1664
1665 2012-11-03 Dmitry Antipov <dmantipov@yandex.ru>
1666
1667 * frame.h (struct frame): Drop can_have_scroll_bars member
1668 which is meaningless for a long time. Adjust comments.
1669 (FRAME_CAN_HAVE_SCROLL_BARS): Remove.
1670 * frame.c, nsfns.m, term.c, w32fns.c, xfns.c: Adjust users.
1671
1672 2012-11-03 Dmitry Antipov <dmantipov@yandex.ru>
1673
1674 * window.c (decode_next_window_args): Update window arg after
1675 calling decode_live_window and so fix crash reported at
1676 http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00035.html
1677 by Juanma Barranquero <lekktu@gmail.com>.
1678 (Fwindow_body_width, Fwindow_body_height): Simplify a bit.
1679 * font.c (Ffont_at): Likewise.
1680
1681 2012-11-01 Jan Djärv <jan.h.d@swipnet.se>
1682
1683 * widget.c (resize_cb): New function.
1684 (EmacsFrameRealize): Add resize_cb as event handler (Bug#12733).
1685 (EmacsFrameResize): Check if all is up to date before changing frame
1686 size.
1687
1688 2012-11-02 Eli Zaretskii <eliz@gnu.org>
1689
1690 Implement backtrace output for fatal errors on MS-Windows.
1691 * w32fns.c (CaptureStackBackTrace_proc): New typedef.
1692 (BACKTRACE_LIMIT_MAX): New macro.
1693 (w32_backtrace): New function.
1694 (emacs_abort): Use w32_backtrace when the user chooses not to
1695 attach a debugger. Update the text of the abort dialog.
1696
1697 2012-11-02 Dmitry Antipov <dmantipov@yandex.ru>
1698
1699 Window-related stuff cleanup here and there.
1700 * dispnew.c (Finternal_show_cursor, Finternal_show_cursor_p):
1701 Use decode_any_window.
1702 * fringe.c (Ffringe_bitmaps_at_pos): Likewise.
1703 * xdisp.c (Fformat_mode_line): Likewise.
1704 * font.c (Ffont_at): Use decode_live_window.
1705 * indent.c (Fcompute_motion, Fvertical_motion): Likewise.
1706 * window.c (decode_next_window_args): Likewise.
1707 (decode_any_window): Remove static.
1708 * window.h (decode_any_window): Add prototype.
1709 * lisp.h (CHECK_VALID_WINDOW, CHECK_LIVE_WINDOW): Move from here...
1710 * window.h: ...to here, redefine via WINDOW_VALID_P and WINDOW_LIVE_P,
1711 respectively.
1712
1713 2012-11-02 Dmitry Antipov <dmantipov@yandex.ru>
1714
1715 Remove pad from struct input_event.
1716 * termhooks.h (struct input_event): Remove padding field.
1717 Adjust comment.
1718 * keyboard.c (event_to_kboard): Simplify because frame_or_window
1719 member is never cons for a long time. Adjust comment.
1720 (mark_kboards): Adjust because SELECTION_REQUEST_EVENT and
1721 SELECTION_CLEAR_EVENT has no Lisp_Objects to mark. Add comment.
1722 * xterm.c (handle_one_xevent): Do not initialize frame_or_window
1723 field of SELECTION_REQUEST_EVENT and SELECTION_CLEAR_EVENT.
1724
1725 2012-11-01 Eli Zaretskii <eliz@gnu.org>
1726
1727 * w32proc.c (getpgrp, setpgid): New functions. (Bug#12776)
1728
1729 2012-10-31 Paul Eggert <eggert@cs.ucla.edu>
1730
1731 Fix crash when using Emacs as commit editor for git (Bug#12697).
1732 * callproc.c (setpgrp): Remove macro, as we now use setpgid
1733 and it is configured in conf_post.h.
1734 (Fcall_process): Don't invoke both setsid and setpgid; the former
1735 is enough, if it exists.
1736 * callproc.c (Fcall_process, child_setup):
1737 * process.c (create_process): Use setpgid.
1738 * conf_post.h (setpgid) [!HAVE_SETPGID]: New macro, which substitutes
1739 for the real thing.
1740 * dispnew.c (init_display): Initialize the foreground group
1741 if we are running a tty display.
1742 * emacs.c (main): Do not worry about setpgrp; init_display does it now.
1743 * lisp.h (init_foreground_group): New decl.
1744 * sysdep.c (inherited_pgroup): New static var.
1745 (init_foreground_group, tcsetpgrp_without_stopping)
1746 (narrow_foreground_group, widen_foreground_group): New functions.
1747 (init_sys_modes): Narrow foreground group.
1748 (reset_sys_modes): Widen foreground group.
1749
1750 2012-10-31 Michael Albinus <michael.albinus@gmx.de>
1751
1752 * dbusbind.c: Fix cut'n'waste error. Use HAVE_DBUS_VALIDATE_INTERFACE.
1753
1754 2012-10-31 Martin Rudalics <rudalics@gmx.at>
1755
1756 * minibuf.c (read_minibuf): Restore current buffer since
1757 choose_minibuf_frame calling Fset_frame_selected_window may
1758 change it (Bug#12766).
1759
1760 2012-10-30 Jan Djärv <jan.h.d@swipnet.se>
1761
1762 * frame.c (Fframe_pixel_height): Fix documentation (Bug#12733).
1763
1764 2012-10-30 Kenichi Handa <handa@gnu.org>
1765
1766 * font.c (Ffont_at): If WINDOW is specified and it is not
1767 displaying the current buffer, signal an error.
1768
1769 2012-10-29 Daniel Colascione <dancol@dancol.org>
1770
1771 * cygw32.h, cygw32.c (Qutf_16le, from_unicode, to_unicode):
1772 In preparation for fixing bug#12739, move these functions from
1773 here...
1774
1775 * coding.h, coding.c: ... to here, and compile them only when
1776 WINDOWSNT or CYGWIN. Moving these functions out of cygw32 proper
1777 lets us write cygw32-agnostic code for the HAVE_NTGUI case.
1778
1779 2012-10-28 Eli Zaretskii <eliz@gnu.org>
1780
1781 * w32proc.c (TIMER_TICKS_PER_SEC): New macro.
1782 (timer_loop, getitimer, setitimer): Use it instead of
1783 CLOCKS_PER_SEC, which is no longer pertinent, since we don't use
1784 'clock'.
1785 (w32_get_timer_time): Use 10*TIMER_TICKS_PER_SEC instead of a
1786 literal 10000.
1787
1788 2012-10-28 Jan Djärv <jan.h.d@swipnet.se>
1789
1790 * nsterm.m (NO_APPDEFINED_DATA): New define.
1791 (last_appdefined_event_data): New variable
1792 (last_appdefined_event): Remove.
1793 (ns_select): Initialize t from last_appdefined_event_data instead
1794 of [last_appdefined_event data1].
1795 (sendEvent:): Save [theEvent data1] to last_appdefined_event_data,
1796 remove last_appdefined_event (Bug#12698).
1797
1798 2012-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
1799
1800 * frame.c (x_set_font): Catch internal error.
1801
1802 2012-10-27 Eli Zaretskii <eliz@gnu.org>
1803
1804 Avoid overflow in w32 implementation of interval timers.
1805 When possible, for ITIMER_PROF count only times the main thread
1806 actually executes.
1807 * w32proc.c <struct itimer_data>: 'expire' and 'reload' are now
1808 'volatile ULONGLONG' types. All the other data which was
1809 previously clock_t is now ULONGLONG. 'terminate' is 'volatile int'.
1810 (GetThreadTimes_Proc): New typedef.
1811 (w32_get_timer_time): New function, returns a suitable time value
1812 for the timer.
1813 (timer_loop): Enter critical section when accessing ULONGLONG
1814 values of the itimer_data struct, as these accesses are no longer
1815 atomic. Call 'w32_get_timer_time' instead of 'clock'.
1816 Remove unused variable.
1817 (init_timers): Initialize s_pfn_Get_Thread_Times.
1818 (start_timer_thread): Don't assign itimer->caller_thread here.
1819 (getitimer): Assign itimer->caller_thread here.
1820 (setitimer): Always call getitimer to get the value of ticks_now.
1821 (sys_spawnve): Avoid compiler warning about format mismatch.
1822
1823 2012-10-26 Eli Zaretskii <eliz@gnu.org>
1824
1825 * w32fns.c (w32_wnd_proc) <WM_MOUSEMOVE>: Don't enable tracking of
1826 mouse movement events if the menu bar is active. This avoids
1827 producing a busy "hour-glass" cursor by Windows if the mouse
1828 pointer is positioned over a tooltip shown for some menu item.
1829
1830 2012-10-25 Paul Eggert <eggert@cs.ucla.edu>
1831
1832 Don't assume process IDs fit in int.
1833 * emacs.c (shut_down_emacs) [!DOS_NT]:
1834 * sysdep.c (sys_suspend) [SIGTSTP && !MSDOS]:
1835 * term.c (dissociate_if_controlling_tty) [!DOS_NT]:
1836 Use pid_t, not int, to store process IDs, as 'int'
1837 is not wide enough on a few platforms (e.g., AIX and IRIX).
1838
1839 2012-10-23 Kenichi Handa <handa@gnu.org>
1840
1841 The following change is to make face-font-rescale-alist work
1842 correctly for non-ASCII fonts.
1843
1844 * font.c (font_open_entity): Don't handle Vface_font_rescale_alist.
1845 (font_open_for_lface): Handle Vface_font_rescale_alist.
1846
1847 2012-10-23 Chong Yidong <cyd@gnu.org>
1848
1849 * xfaces.c (Vfont_list_limit): Move unused variable to faces.el.
1850
1851 2012-10-21 Jan Djärv <jan.h.d@swipnet.se>
1852
1853 * nsfont.m (nsfont_open, ns_glyph_metrics): Force integer advancement
1854 for screen font.
1855 (nsfont_draw): Turn off LCD-smoothing (Bug#11484).
1856
1857 * xterm.c (x_focus_changed): Check if daemonp when sending focus in
1858 event (Bug#12681).
1859
1860 2012-10-21 Glenn Morris <rgm@gnu.org>
1861
1862 * lisp.mk (lisp): Add cp51932.el and eucjp-ms.el.
1863
1864 2012-10-20 Paul Eggert <eggert@cs.ucla.edu>
1865
1866 Port to OpenBSD 5.1.
1867 * frame.c (Fmouse_position, Fmouse_pixel_position):
1868 * xdisp.c (produce_stretch_glyph):
1869 Declare local vars only when they're needed.
1870 This is clearer and avoids a warning on OpenBSD about unused vars.
1871 * frame.h (FRAME_WINDOW_P): Always evaluate its argument.
1872 This is safer, and avoids OpenBSD warnings about unused vars.
1873 * keyboard.c (record_menu_key): Remove unnecessary decl.
1874 (poll_timer): Define only if POLL_FOR_INPUT is defined.
1875 * unexelf.c (ELFSIZE) [!ElfW]: Do not define if already defined,
1876 as our definition clashes with OpenBSD's.
1877 * xfaces.c (load_face_colors, check_lface_attrs)
1878 (get_lface_attributes_no_remap, get_lface_attributes)
1879 (lface_fully_specified_p, x_supports_face_attributes_p)
1880 (tty_supports_face_attributes_p, face_fontset, realize_face)
1881 (realize_x_face, realize_tty_face):
1882 Declare parameters to be Lisp_Object[LFACE_VECTOR_SIZE], not
1883 merely Lisp_Object *. This is more informative and avoids
1884 a warning on OpenBSD about accessing beyond an object's size.
1885
1886 2012-10-20 Chong Yidong <cyd@gnu.org>
1887
1888 * lread.c (Fload): Doc fix (Bug#12592).
1889
1890 2012-10-19 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
1891
1892 * font.c (Ffont_at): Fix previous change.
1893
1894 2012-10-19 Eli Zaretskii <eliz@gnu.org>
1895
1896 * puresize.h (BASE_PURESIZE): Bump the base value to 1700000.
1897 See http://lists.gnu.org/archive/html/emacs-devel/2012-10/msg00593.html
1898 for the reasons.
1899
1900 * alloc.c (NSTATICS): Decrease to 0x800.
1901
1902 2012-10-19 Stefan Monnier <monnier@iro.umontreal.ca>
1903
1904 * fns.c (Fnreverse): Include the problem element when signaling an
1905 error (bug#12677).
1906
1907 2012-10-18 Jan Djärv <jan.h.d@swipnet.se>
1908
1909 * nsterm.m (ns_select): Check writefds before call to
1910 FD_ISSET (Bug#12668).
1911
1912 2012-10-18 Daniel Colascione <dancol@dancol.org>
1913
1914 * alloc.c (NSTATICS): Increase from 0x650 to 0x1000
1915 (staticpro): If we run out of staticpro slots, die with an
1916 informative error instead of just calling emacs_abort.
1917
1918 2012-10-18 Martin Rudalics <rudalics@gmx.at>
1919
1920 Fix two flaws reported by Dmitry Antipov.
1921 * window.c (Ftemp_output_buffer_show): Remove.
1922 (Fwindow_vscroll, Fset_window_vscroll): Use decode_live_window.
1923 (syms_of_window): Remove defsubr for Stemp_output_buffer_show.
1924
1925 2012-10-17 Eli Zaretskii <eliz@gnu.org>
1926
1927 * makefile.w32-in ($(BLD)/w32.$(O)):
1928 ($(BLD)/vm-limit.$(O)):
1929 ($(BLD)/term.$(O)):
1930 ($(BLD)/unexw32.$(O)):
1931 ($(BLD)/fileio.$(O)):
1932 ($(BLD)/dispnew.$(O)): Update dependencies.
1933
1934 * w32term.h (w32_initialize_display_info, initialize_w32_display):
1935 Add prototypes.
1936
1937 * w32proc.c: Include ctype.h.
1938
1939 * w32.h (init_environment, check_windows_init_file)
1940 (syms_of_ntproc, syms_of_ntterm, dostounix_filename)
1941 (unixtodos_filename, init_winsock, srandom, random, sys_pipe)
1942 (set_process_dir, sys_spawnve, register_child, sys_sleep, getwd)
1943 (sys_link): Add prototypes.
1944
1945 * w32.c: Include w32select.h.
1946 (sys_access, e_malloc, sys_select): Add prototypes.
1947 (emacs_gnutls_pull): 'timeout' is now EMACS_TIME, not struct timeval.
1948
1949 * vm-limit.c [WINDOWSNT]: Include w32heap.h.
1950
1951 * unexw32.c: Include lisp.h and w32.h.
1952
1953 * term.c [WINDOWSNT]: Include w32term.h.
1954
1955 * process.c [WINDOWSNT]: Add prototype of sys_select.
1956
1957 * fileio.c [WINDOWSNT]: Include w32.h.
1958
1959 * dispnew.c [WINDOWSNT]: Include w32.h.
1960
1961 * cygw32.c (Fcygwin_convert_path_to_windows)
1962 (Fcygwin_convert_path_from_windows): Use EQ to compare 2
1963 Lisp_Object values. (Bug#12661)
1964
1965 * w32fns.c (w32_msg_pump): Use XIL instead of casting an integer
1966 to Lisp_Object. (Bug#12661)
1967
1968 2012-10-17 Kenichi Handa <handa@gnu.org>
1969
1970 * xdisp.c (reseat_1): Make the information stored in it->cmp_it
1971 invalidate.
1972
1973 2012-10-17 Dmitry Antipov <dmantipov@yandex.ru>
1974
1975 * buffer.c (Fkill_buffer): When unchaining the marker,
1976 reset its buffer pointer to NULL (Bug#12652).
1977
1978 2012-10-17 Dmitry Antipov <dmantipov@yandex.ru>
1979
1980 Do not verify indirection counters of killed buffers (Bug#12579).
1981 * buffer.h (BUFFER_CHECK_INDIRECTION): New macro.
1982 * buffer.c (compact_buffer, set_buffer_internal_1): Use it.
1983
1984 2012-10-16 Dmitry Antipov <dmantipov@yandex.ru>
1985
1986 * alloc.c (Fmake_byte_code): Fix typo in comment.
1987 * print.c (print_interval): Define as static to match prototype.
1988 * indent.c (disptab_matches_widthtab, recompute_width_table):
1989 Convert to eassert.
1990
1991 2012-10-16 Dmitry Antipov <dmantipov@yandex.ru>
1992
1993 * editfns.c (get_system_name): Remove.
1994 * lisp.h (get_system_name): Remove prototype.
1995 * xrdb.c (getenv, getpwuid, getpwnam): Remove prototypes.
1996 (get_environ_db): Use Vsystem_name. Avoid call to strlen.
1997
1998 2012-10-15 Daniel Colascione <dancol@dancol.org>
1999
2000 * dbusbind.c: Add comment explaining reason for previous change.
2001
2002 2012-10-15 Martin Rudalics <rudalics@gmx.at>
2003
2004 * window.c (Fwindow_end): Rewrite check whether cached position
2005 can be used (Bug#12600).
2006 (resize_frame_windows, grow_mini_window, shrink_mini_window):
2007 Set windows_or_buffers_changed.
2008
2009 2012-10-15 Daniel Colascione <dancol@dancol.org>
2010
2011 * dbusbind.c: Fix cygw32 build break when compiling with dbus
2012 enabled by undefining the symbol "interface", which the platform
2013 headers define to something incompatible.
2014
2015 2012-10-14 Daniel Colascione <dancol@dancol.org>
2016
2017 * image.c (init_tiff_functions, init_imagemagick_functions)
2018 (init_svg_functions): Fix cygw32 build break by using these
2019 functions only when WINDOWSNT _and_ HAVE_NTGUI.
2020
2021 2012-10-14 Jan Djärv <jan.h.d@swipnet.se>
2022
2023 * nsterm.m (ns_select): Count fd:s in writefs also (Bug#12422).
2024
2025 2012-10-13 Jan Djärv <jan.h.d@swipnet.se>
2026
2027 * gtkutil.c (xg_set_widget_bg): Divide by 65535 (Bug#12612).
2028
2029 2012-10-13 HANATAKA, Shinya <bogytech@gmail.com> (tiny change)
2030
2031 * coding.c (detect_coding): Set coding->id before calling
2032 this->detector.
2033
2034 2012-10-13 Andreas Schwab <schwab@linux-m68k.org>
2035
2036 * fileio.c: Formatting fixes.
2037
2038 2012-10-13 Paul Eggert <eggert@cs.ucla.edu>
2039
2040 Fix some stat-related races.
2041 * fileio.c (Fwrite_region): Avoid race condition if a file is
2042 removed or renamed by some other process immediately after Emacs
2043 writes it but before Emacs stats it. Do not assume that stat (or
2044 fstat) succeeds.
2045 * image.c (slurp_file): Resolve the file name with fopen + fstat
2046 rather than stat + fopen.
2047 (pbm_read_file) [0]: Remove unused code with stat race.
2048 * process.c (allocate_pty) [HAVE_PTYS && !PTY_ITERATION && !PTY_OPEN]:
2049 Remove ineffective code with stat race.
2050
2051 2012-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
2052
2053 * doc.c (get_doc_string): Don't signal an error if the file is missing.
2054
2055 2012-10-12 Jan Djärv <jan.h.d@swipnet.se>
2056
2057 * nsterm.m (hold_event_q): New static variable.
2058 (EV_TRAILER, sendScrollEventAtLoc:fromEvent:): Call hold_event if
2059 ! q_event_ptr.
2060 (hold_event): New function.
2061 (ns_read_socket): If hold_event_q have events, store them and
2062 return (Bug#12384).
2063 (setPosition:portion:whole:): Send SIGIO to ourselves if apploopnr
2064 is zero (Bug#12384).
2065
2066 2012-10-12 Juanma Barranquero <lekktu@gmail.com>
2067
2068 * makefile.w32-in ($(BLD)/w32select.$(O)): Update dependencies.
2069
2070 2012-10-12 Eli Zaretskii <eliz@gnu.org>
2071
2072 * makefile.w32-in ($(BLD)/fileio.$(O)): Add sys/file.h.
2073
2074 * fileio.c (check_existing): New function.
2075 (make_temp_name, Ffile_exists_p, Ffile_writable_p): Call it
2076 instead of calling 'stat', when what's needed is to check whether
2077 a file exists. This avoids expensive system calls on MS-Windows.
2078 (Bug#12587)
2079
2080 * w32.c (init_environment): Call 'check_existing' instead of 'stat'.
2081
2082 * lread.c (openp) [WINDOWSNT]: Call 'access' instead of 'stat' to
2083 determine whether a file exists and is not a directory.
2084
2085 * lisp.h (check_existing): Add prototype.
2086
2087 2012-10-12 Jan Djärv <jan.h.d@swipnet.se>
2088
2089 * nsfont.m (nsfont_open): Remove font cache, it is not GC correct.
2090
2091 2012-10-12 Glenn Morris <rgm@gnu.org>
2092
2093 * buffer.c (Fset_buffer): Doc fix. (Bug#12624)
2094
2095 2012-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
2096
2097 * buffer.c (Fkill_buffer): Null out the overlay list(s) as well.
2098
2099 * eval.c (Fautoload): Remember previous autoload status in load-history.
2100
2101 2012-10-11 Paul Eggert <eggert@cs.ucla.edu>
2102
2103 lread.c, macros.c, marker.c, menu.c, minibuf.c: Use bool for booleans.
2104 * lread.c (load_each_byte, new_backquote_flag, readchar)
2105 (read_filtered_event, lisp_file_lexically_bound_p)
2106 (safe_to_load_version, Fload, complete_filename_p, openp)
2107 (build_load_history, readevalloop, read_escape, read1)
2108 (string_to_number, read_vector, read_list):
2109 * macros.c (Fstart_kbd_macro):
2110 * marker.c (CONSIDER):
2111 * menu.c (parse_single_submenu, digest_single_submenu)
2112 (find_and_return_menu_selection, Fx_popup_menu):
2113 * minibuf.c (read_minibuf_noninteractive, read_minibuf)
2114 (Ftry_completion):
2115 * nsmenu.m (ns_update_menubar, runMenuAt:forFrame:keymaps:):
2116 (ns_menu_show):
2117 * xmenu.c (set_frame_menubar, create_and_show_popup_menu)
2118 (xmenu_show, xdialog_show):
2119 Use bool for booleans.
2120 * lread.c (safe_to_load_version): Rename from safe_to_load_p,
2121 as it's not a predicate. All uses changed. Omit unnecessary
2122 buffer termination.
2123
2124 2012-10-11 Dmitry Antipov <dmantipov@yandex.ru>
2125
2126 * editfns.c (save_excursion_save): Use nil if mark points to nowhere.
2127 (save_excursion_restore): Do not restore mark if it was not saved.
2128
2129 2012-10-11 Paul Eggert <eggert@cs.ucla.edu>
2130
2131 * marker.c (cached_modiff): EMACS_INT, not int.
2132
2133 * w32select.c (waiting_for_input): Declare by including "keyboard.h"
2134 instead of having a wrong decl.
2135 * nsmenu.m (waiting_for_input): Remove wrong decl.
2136
2137 2012-10-10 Paul Eggert <eggert@cs.ucla.edu>
2138
2139 keyboard.c, keymap.c: Use bool for booleans.
2140 * dispnew.c (sit_for): Distinguish between 3-way display_option
2141 and boolean do_display.
2142 * keyboard.c (single_kboard, this_command_key_count_reset)
2143 (waiting_for_input, echoing, immediate_quit, input_pending)
2144 (interrupt_input, interrupts_deferred, pop_kboard)
2145 (temporarily_switch_to_single_kboard, ignore_mouse_drag_p)
2146 (command_loop_1, adjust_point_for_property)
2147 (safe_run_hooks_error, input_polling_used, read_char):
2148 (help_char_p, readable_events, kbd_buffer_events_waiting)
2149 (kbd_buffer_get_event, timer_check_2, make_lispy_event)
2150 (lucid_event_type_list_p, get_input_pending):
2151 (gobble_input, menu_separator_name_p, menu_bar_item)
2152 (parse_menu_item, parse_tool_bar_item, read_char_x_menu_prompt)
2153 (read_char_minibuf_menu_prompt, access_keymap_keyremap)
2154 (keyremap_step, test_undefined, read_key_sequence)
2155 (detect_input_pending, detect_input_pending_ignore_squeezables)
2156 (detect_input_pending_run_timers, requeued_events_pending_p)
2157 (quit_throw_to_read_char, Fset_input_interrupt_mode):
2158 * keymap.c (get_keymap, keymap_parent, keymap_memberp)
2159 (access_keymap_1, access_keymap, map_keymap, get_keyelt)
2160 (Fdefine_key, Flookup_key, struct accessible_keymaps_data)
2161 (accessible_keymaps_1, Fkey_description, push_key_description):
2162 (shadow_lookup, struct where_is_internal_data)
2163 (where_is_internal, Fwhere_is_internal, where_is_internal_1)
2164 (Fdescribe_buffer_bindings, describe_map_tree, struct describe_map_elt)
2165 (describe_map, describe_vector):
2166 * menu.c (single_menu_item):
2167 * nsmenu.m (ns_update_menubar):
2168 * process.c (wait_reading_process_output):
2169 * search.c (scan_buffer, scan_newline):
2170 Use bool for boolean.
2171 * keyboard.c (timers_run, swallow_events)
2172 (detect_input_pending_run_timers):
2173 * process.c (wait_reading_process_output):
2174 Use unsigned for counter where wraparound-on-overflow is desired,
2175 since unsigned is guaranteed to have that behavior and signed is not.
2176 (read_char): Use ptrdiff_t for string length.
2177 (get_input_pending): Remove first argument, since it was always
2178 the same pointer-to-int (now pointer-to-boolean) &input_pending,
2179 and behave as if it had that value. Return new value of
2180 input_pending. All callers changed.
2181 * keyboard.h (struct kboard): Use unsigned : 1 for boolean member
2182 immediate_echo. Use ptrdiff_t for echo_after_prompt, since it's
2183 a string length.
2184 * keymap.c (push_key_description): Omit last arg, which was always 1.
2185 All callers changed.
2186
2187 * regex.c (immediate_quit) [emacs]: Remove duplicate decl.
2188
2189 2012-10-10 Juanma Barranquero <lekktu@gmail.com>
2190
2191 * makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/indent.$(O))
2192 ($(BLD)/term.$(O)): Update dependencies.
2193
2194 2012-10-10 Dmitry Antipov <dmantipov@yandex.ru>
2195
2196 * alloc.c (mark_object): Use meaningful PVEC_NORMAL_VECTOR.
2197 * lisp.h (enum pvec_type): Adjust comments and omit explicit
2198 initializer for PVEC_NORMAL_VECTOR.
2199
2200 2012-10-10 Paul Eggert <eggert@cs.ucla.edu>
2201
2202 Clean out old termopts cruft.
2203 * termopts.h (flow_control, meta_key): Remove unused decls.
2204 * dispnew.c, indent.c, nsterm.m, term.c, xsettings.c, xsmfns.c:
2205 Don't include termopts.h.
2206
2207 2012-10-10 Dmitry Antipov <dmantipov@yandex.ru>
2208
2209 * alloc.c (gc_sweep): Use pointer-to-a-pointer loop for buffers.
2210
2211 2012-10-10 Paul Eggert <eggert@cs.ucla.edu>
2212
2213 * commands.h (immediate_quit): Remove duplicate decl.
2214
2215 2012-10-09 Jan Djärv <jan.h.d@swipnet.se>
2216
2217 * nsfont.m (Vfonts_in_cache): Remove, not needed as font.c handles
2218 caching.
2219 (nsfont_open): Remove setting of Vfonts_in_cache.
2220 (syms_of_nsfont): Remove initialization of Vfonts_in_cache.
2221
2222 2012-10-09 Eli Zaretskii <eliz@gnu.org>
2223
2224 * w32fns.c (w32_last_error): Change the return value to DWORD, to
2225 match what GetLastError returns. Explain why the function is
2226 needed.
2227
2228 * frame.c (delete_frame): Rename local variable 'tooltip_frame' to
2229 'is_tooltip_frame', to avoid confusion with its global namesake.
2230
2231 2012-10-08 Daniel Colascione <dancol@dancol.org>
2232
2233 * xdisp.c (start_hourglass): Call w32_note_current_window when
2234 HAVE_NTGUI, not just WINDOWSNT, resolving a problem in the cygw32
2235 build that caused Emacs to display the hourglass cursor forever.
2236
2237 * w32fns.c (Fx_display_color_cells): Instead of using NCOLORS,
2238 which is broken under remote desktop, calculate the number of
2239 colors available for a display based on the display's number of
2240 planes and number of bits per pixel per plane. (bug#10397).
2241
2242 2012-10-08 Jan Djärv <jan.h.d@swipnet.se>
2243
2244 * nsfont.m (Vfonts_in_cache): New variable.
2245 (nsfont_open): Use unsignedLongLongValue for cache in case wide ints
2246 are used. Add cached fonts to Vfonts_in_cache.
2247 (syms_of_nsfont): Initialize and staticpro Vfonts_in_cache.
2248
2249 2012-10-08 Juanma Barranquero <lekktu@gmail.com>
2250
2251 * makefile.w32-in (LOCAL_FLAGS): Don't define HAVE_NTGUI, it's now
2252 in nt/config.nt.
2253 (FONT_H): Define after FRAME_H.
2254 ($(BLD)/emacs.$(O), $(BLD)/process.$(O), $(BLD)/w32heap.$(O)):
2255 Update dependencies.
2256
2257 * w32term.c: Remove leftover declaration of keyboard_codepage.
2258
2259 2012-10-08 Eli Zaretskii <eliz@gnu.org>
2260
2261 * makefile.w32-in (FONT_H): Add $(FRAME_H).
2262 (W32TERM_H): Add $(ATIMER_H) and $(FRAME_H).
2263 ($(BLD)/emacs.$(O), $(BLD)/w32console.$(O)): Update dependencies.
2264 (GLOBAL_SOURCES): Add cygw32.c.
2265 ($(BLD)/unexw32.$(O)):
2266 ($(BLD)/w32.$(O)):
2267 ($(BLD)/w32console.$(O)):
2268 ($(BLD)/w32fns.$(O)):
2269 ($(BLD)/w32heap.$(O)):
2270 ($(BLD)/w32menu.$(O)):
2271 ($(BLD)/w32proc.$(O)): Add w32common.h.
2272
2273 * w32fns.c (w32_color_map_lookup, x_to_w32_color): Argument is now
2274 'const char *'.
2275 (x_to_w32_color): Don't modify the argument, modify a copy instead.
2276
2277 2012-10-08 Daniel Colascione <dancol@dancol.org>
2278
2279 * w32term.h (WM_EMACS_BRINGTOTOP, WM_EMACS_INPUT_READY)
2280 (WM_EMACS_END): Change WM_EMACS_BRINGTOTOP from 22 to 21 to close
2281 accidental message numbering hole. Change other messages to
2282 match.
2283
2284 * w32select.h (HAVE_W32SELECT): Remove.
2285
2286 * w32select.c, w32proc.c, w32menu.c, w32console.c, w32.c: Include
2287 w32common.h instead of w32heap.h.
2288
2289 * w32heap.h (ROUND_UP, ROUND_DOWN, get_page_size)
2290 (get_allocation_unit, get_processor_type, get_w32_major_version)
2291 (get_w32_minor_version, sysinfo_cache, osinfo_cache)
2292 (w32_major_version, w32_minor_version, w32_build_number, OS_9X)
2293 (OS_NT, os_subtype, cache_system_info): Move declarations to
2294 w32common.
2295
2296 * w32heap.c: Include w32common.h.
2297 (sysinfo_cache, syspage_mask, osinfo_cache, w32_major_version)
2298 (w32_minor_version, w32_build_number, w32_subtype):
2299 Remove duplicate definitions.
2300
2301 * w32fns.c: Include w32common.h; include w32heap.h only in
2302 WINDOWSNT.
2303
2304 (Fx_file_dialog): Clarify comment on GetOpenFileName structure.
2305 Use `report_file_error' instead of `error' in order to better
2306 inform users of what went wrong. Increase NTGUI_UNICODE file
2307 dialog box file name length to 32k, the maximum allowed by the NT
2308 kernel.
2309
2310 * w32common.h: New file.
2311 (ROUND_UP, ROUND_DOWN, get_page_size)
2312 (get_allocation_unit, get_processor_type, get_w32_major_version)
2313 (get_w32_minor_version, sysinfo_cache, osinfo_cache)
2314 (w32_major_version, w32_minor_version, w32_build_number, OS_9X)
2315 (OS_NT, os_subtype, cache_system_info): Move here.
2316
2317 * unexw32.c, unexcw.c: Include w32common.h.
2318
2319 * emacs.c (main): Use (defined (WINDOWSNT) || defined
2320 HAVE_NTGUI) instead of removed HAVE_W32SELECT to decide whether
2321 to call syms_of_w32select.
2322
2323 * cygw32.h: Remove obsolete EXFUN declarations.
2324
2325 * cygw32.c (Qutf_16_le): Rename to Qutf_16le.
2326
2327 * Makefile.in (SOME_MACHINE_OBJECTS): Reverse accidental removal
2328 of w32inevt.o from SOME_MACHINE_OBJECTS.
2329
2330 2012-10-08 Daniel Colascione <dancol@dancol.org>
2331
2332 * image.c: Permanent fix for JPEG compilation issue --- limit
2333 jpeglib `boolean' redefinition to Cygwin builds.
2334
2335 2012-10-08 Eli Zaretskii <eliz@gnu.org>
2336
2337 * image.c (CHECK_LIB_AVAILABLE): Remove, no longer used.
2338
2339 * emacs.c (DAEMON_MUST_EXEC) [HAVE_NTGUI]: Define this only on
2340 Cygwin.
2341
2342 2012-10-08 Daniel Colascione <dancol@dancol.org>
2343
2344 * xfaces.c, xdisp.c, window.c, w32xfns.c, w32term.h, w32term.c,
2345 w32select.h w32select.c, w32proc.c, w32menu.c, w32inevt.c,
2346 w32help.c, w32font.c, w32font.c, w32fns.c, w32console.c, w32.h,
2347 w32.c, unexw32.c, termhooks.h, process.c, menu.c, keyboard.h,
2348 keyboard.c, image.c, frame.h, frame.c, fontset.c, font.h, font.c,
2349 emacs.c, dispextern.h, cygw32.h, cygw32.c, conf_post.h,
2350 Makefile.in: use HAVE_NTGUI for W32 GUI and WINDOWSNT for the
2351 operating system. defined(HAVE_NTGUI) && !defined(WINDOWSNT) is
2352 now a supported configuration.
2353
2354 * Makefile.in: consolidate image variables into LIBIMAGE; add
2355 W32_OBJ and W32_LIBS. Compile new files.
2356
2357 * conf_post.h:
2358 (_DebPrint) declare tracing facility for W32 debugging. We need
2359 to unify tracing later.
2360
2361 (NTGUI_UNICODE) Define when compiling for Cygwin to allow the
2362 unconditional use of W32 Unicode functions. Cygwin runs only on
2363 100% Unicode operating systems.
2364
2365 * cygw32.c: New file. Define Cygwin-specific facilities.
2366 (Fcygwin_convert_path_to_windows)
2367 (Fcygwin_convert_path_from_windows): New user functions for
2368 accessing Cygwin path-munging routines.
2369
2370 * cygw32.h: New file.
2371 (WCSDATA, to_unicode, from_unicode): Define facilities for storing
2372 UTF-16LE strings temporarily inside non-Lisp-visible string
2373 objects.
2374
2375 (w32_strerror): Just what it says on the tin.
2376
2377 * emacs.c: Make the NS fork-then-exec code for daemon-launching
2378 also run for Cygwin; both systems have the same problem with using
2379 GUI facilities in a forked child. Also call syms_of_cygw32,
2380 syms_of_w32select in correct places.
2381
2382 (DAEMON_MUST_EXEC): new macro defined to signal that a platform
2383 needs fork-then-exec for daemon launching.
2384
2385 * font.h: Include frame.h.
2386
2387 * image.c: Use the image library cache machinery only when we're
2388 compiling for native WINDOWSNT; Cygwin can use shared libraries
2389 like any other Unixlike system.
2390
2391 * keyboard.c: Clarify a comment regarding the input loop.
2392
2393 * menu.c: When NTGUI_UNICODE is defined, use Unicode menu
2394 functions directly instead of trying to detect at runtime that our
2395 host operating system supports them. We make this change for two
2396 reasons: Cygwin lacks support for the multibyte character
2397 conversion functions used by the legacy menu code, and Cygwin
2398 never needs to rely on non-Unicode APIs.
2399
2400 * unexw32.c (hinst): Declare extern.
2401
2402 * w32.c: Change header order;
2403 (w32_strerror): Move to w32fns.c because we need it for
2404 non-WINDOWSNT builds.
2405
2406 * w32.h: Add #error macro to make sure we don't include w32.h for
2407 Cygwin builds. Remove w32select declarations.
2408
2409 * w32console.c (w32_sys_ring_bell, Fset_message_beep): Move to
2410 w32fns.c. w32console.c is WINDOWSNT-only.
2411
2412 * w32fns.c: Include cygw32.h or w32.h depending on CYGWIN; more
2413 NTGUI_UNICODE tweaks. (See above.) Change _snprintf to the more
2414 POSIXy alternative.
2415 (faked_key, sysinfo_cache, osinfo_cahce, syspage_mask)
2416 (w32_major_version, w32_minor_version, w32_build_number)
2417 (os_subtype, sound_type): Define here
2418 (w32_defined_color): Make color parameter const for consistency
2419 with other _defined_color functions.
2420 (w32_createwindow): Unconditionally call w32_init_class instead of
2421 doing so only when hprevinst is non-NULL. Plumbing hprevinst
2422 through the code is complex and unnecessary because class
2423 registration is practically free.
2424 (w32_name_of_message): New EMACSDEBUG-only function.
2425 (Fset_message_beep): Move here
2426 (Fx_open_connection): Require that the display name for Windows be
2427 "w32" for consistency, emacsclient disambiguation, and maybe, one
2428 day, multi-window-system support.
2429 (file_dialog_callback): NTGUI_UNICODE changes; encode and decode
2430 Cygwin files for W32 GUI facilities, since these clearly don't
2431 expect Cygwin names.
2432 (_DebPrint): Define.
2433 (w32_strerror, w32_console_toggle_lock_key, w32_kbd_mods_to_emacs)
2434 (w32_kbd_patch_key, w32_sys_ring_bell): Move here.
2435 (Ssystem_move_file_to_trash): Define only for native WINDOWSNT.
2436 (w32_last_error): Remove.
2437
2438 * w32font.c: Define _strlwr to strlwr for non-WINDOWSNT builds.
2439
2440 * w32heap.c (syspage_mask): Declare here.
2441 (cache_system_info): Remove.
2442
2443 * w32inevt.c (faked_key): Define globally, not statically.
2444 (w32_kbd_mods_to_emacs, w32_kbd_patch_key, faked_key)
2445 (w32_console_toggle_lock_key): Move to w32fns.c.
2446
2447 * w32menu.c: Include setjmp.h. NTGUI_UNICODE changes throughout.
2448
2449 * w32proc.c (_DebPrint): Move to w32fns.c.
2450 * w32select.c: Include string.h, stdio.h for Cygwin.
2451 * w32select.h: New File.
2452
2453 * w32term.c: Include io.h for non-CYGWIN builds; needed for
2454 get_osfhandle.
2455 (w32_message_fd): New variable. Under Cygwin, holds the file
2456 descriptor the system used to tell us about pending thread
2457 messages.
2458
2459 (w32_init_term): Remove incorrect calls to fcntl and init_sigio
2460 that prevented compilation under non-WINDOWSNT systems.
2461
2462 (w32_initialize): Open /dev/windows and assign it to
2463 w32_message_fd. Provide w32 feature.
2464
2465 * w32term.h: Include frame.h, atimer.h. Declare various frame functions.
2466 (WM_EMACS_INPUT_READY): add.
2467 (prepend_msg, w32_message_fd): Declare globally.
2468
2469 * w32xfns.c:
2470 (keyboard_handle): Use only when WINDOWSNT.
2471 (notify_msg_ready): New function. Posts a message to the main
2472 thread's message queue under CYGWIN, which wakes up the main
2473 thread from select(2) by making the /dev/windows file descriptor
2474 ready. Under WINDOWSNT, it sets an event the same way the old
2475 code did.
2476
2477 (post, prepend_msg): Actually call notify_msg_ready instead of
2478 setting the input event directly.
2479
2480 2012-10-07 Eli Zaretskii <eliz@gnu.org>
2481
2482 * ralloc.c (relinquish): If a heap is ready to be relinquished,
2483 but it still has blocs in it, don't return it to the system,
2484 instead of aborting. (Bug#12402)
2485
2486 2012-10-07 Jan Djärv <jan.h.d@swipnet.se>
2487
2488 * nsterm.m (ns_dumpglyphs_image): Only draw slice of image (Bug#12506).
2489
2490 * nsterm.m (ns_update_auto_hide_menu_bar): Remove defintion of
2491 MAC_OS_X_VERSION_10_6.
2492 (syms_of_nsterm): Remove comment about Panther and above for
2493 ns-antialias-text.
2494 * nsterm.h (MAC_OS_X_VERSION_10_3, onTiger): Remove.
2495 (EmacsApp): Remove check for >= MAC_OS_X_VERSION_10_4.
2496 (struct nsfont_info): Remove check for >= MAC_OS_X_VERSION_10_3.
2497
2498 * nsselect.m (ns_string_from_pasteboard): Remove check for >=
2499 MAC_OS_X_VERSION_10_4.
2500
2501 * nsmenu.m (fillWithWidgetValue:): Remove code for <
2502 MAC_OS_X_VERSION_10_2.
2503
2504 * nsimage.m (setPixmapData, getPixelAtX, setAlphaAtX): Remove onTiger.
2505
2506 * nsfns.m (Fns_list_services): Remove comment and check for OSX < 10.4.
2507 (ns_do_applescript): Remove check for >= MAC_OS_X_VERSION_10_4.
2508
2509 * nsterm.m (ns_in_resize): Remove (Bug#12479).
2510 (ns_resize_handle_rect, mouseDown, mouseUp, mouseDragged): Remove.
2511 (ns_clear_frame, sendEvent, windowDidResize, drawRect:):
2512 Remove ns_in_resize check.
2513 (ns_clear_frame_area): Remove resize handle code.
2514
2515 * nsfns.m (ns_in_resize): Remove.
2516 (x_set_icon_name, ns_set_name, ns_set_name_as_filename):
2517 Remove ns_in_resize check.
2518
2519 2012-10-07 Paul Eggert <eggert@cs.ucla.edu>
2520
2521 Improve sys_siglist detection.
2522 * sysdep.c (sys_siglist, init_signals): Use _sys_siglist if it's
2523 defined as a macro, as is done in Solaris.
2524 (sys_siglist_entries): New macro.
2525 (save_strsignal): Use it.
2526 * syssignal.h (safe_strsignal): Now ATTRIBUTE_CONST, to pacify
2527 GCC 4.7.2 on Fedora 17 with the fixed sys_siglist detection.
2528
2529 2012-10-06 Jan Djärv <jan.h.d@swipnet.se>
2530
2531 * nsfns.m (Fx_create_frame): Call x_default_parameter with
2532 fullscreen/Fullscreen.
2533
2534 * nsterm.h (EmacsView): Rename tbar_height to tibar_height.
2535 tobar_height is new.
2536
2537 * nsterm.m (x_make_frame_visible): Check for fullscreen.
2538 (ns_fullscreen_hook): Activate old style fullscreen with a timer.
2539 (ns_term_init): Set activateIgnoringOtherApps if old style fullscreen.
2540 (windowDidResize:): Check for correct window if old style fullscreen.
2541 Capitalize word in comment. Remove incorrect comment.
2542 (initFrameFromEmacs:): tbar_height renamed tibar_height.
2543 (windowDidEnterFullScreen:): Toggle toolbar for fullscreen to fix
2544 error in drawing background.
2545 (toggleFullScreen:): Remove comment. Rearrange calls.
2546 Set toolbar values to zero, save old height in tobar_height.
2547 Restore tool bar height when leaving fullscreen.
2548 (canBecomeMainWindow): New function.
2549
2550 2012-10-06 Paul Eggert <eggert@cs.ucla.edu>
2551
2552 * keyboard.c (read_char): Remove unnecessary 'volatile's and label.
2553
2554 2012-10-05 Eli Zaretskii <eliz@gnu.org>
2555
2556 * w32proc.c (stop_timer_thread): Fix declaration of 'err'.
2557
2558 * w32.c (utime): Open the file with FILE_FLAG_BACKUP_SEMANTICS, so
2559 that time stamps of directories could also be changed.
2560 Don't request the too broad GENERIC_WRITE, only the more restrictive
2561 FILE_WRITE_ATTRIBUTES access rights.
2562
2563 * fileio.c (Fset_file_times): Special-case ignoring errors for
2564 directories only on MSDOS, not on MS-Windows.
2565
2566 2012-10-05 Ikumi Keita <ikumi@ikumi.que.jp> (tiny change)
2567
2568 * minibuf.c (Fcompleting_read): Doc fix. (Bug#12555)
2569
2570 2012-10-04 Eli Zaretskii <eliz@gnu.org>
2571
2572 * w32.c (utime): Test for INVALID_HANDLE_VALUE, not for NULL, to
2573 see whether CreateFile failed.
2574
2575 2012-10-04 Paul Eggert <eggert@cs.ucla.edu>
2576
2577 * profiler.c (handle_profiler_signal): Inhibit pending signals too,
2578 to avoid similar races.
2579 * keyboard.c (pending_signals): Now bool, not int.
2580
2581 Port timers to OpenBSD, plus check for timer failures.
2582 OpenBSD problem reported by Han Boetes.
2583 * profiler.c (setup_cpu_timer): Check for failure of timer_settime
2584 and/or setitimer.
2585 (Fprofiler_cpu_stop): Don't assume HAVE_SETITIMER.
2586 * syssignal.h (HAVE_ITIMERSPEC): New macro. This is for platforms
2587 like OpenBSD, which has timer_settime but does not declare it.
2588 OpenBSD does not define SIGEV_SIGNAL, so use that when deciding
2589 whether to use itimerspec-related primitives. All uses of
2590 HAVE_TIMER_SETTIME replaced with HAVE_ITIMERSPEC.
2591
2592 2012-10-02 Paul Eggert <eggert@cs.ucla.edu>
2593
2594 * profiler.c (handle_profiler_signal): Fix a malloc race
2595 that caused Emacs to hang on Fedora 17 when profiling Lisp.
2596
2597 2012-10-02 Jan Djärv <jan.h.d@swipnet.se>
2598
2599 * nsterm.m (windowDidEnterFullScreen): Remove fprintf.
2600
2601 2012-10-02 Eli Zaretskii <eliz@gnu.org>
2602
2603 * w32proc.c (sys_wait): Declare 'signame' 'const char *', to be
2604 consistent with the change in return value of 'safe_strsignal'.
2605
2606 2012-10-02 Paul Eggert <eggert@cs.ucla.edu>
2607
2608 Prefer plain 'static' to 'static inline' (Bug#12541).
2609 * bidi.c (bidi_get_type, bidi_check_type, bidi_get_category)
2610 (bidi_set_sor_type, bidi_push_embedding_level)
2611 (bidi_pop_embedding_level, bidi_remember_char, bidi_copy_it)
2612 (bidi_cache_reset, bidi_cache_shrink, bidi_cache_fetch_state)
2613 (bidi_cache_search, bidi_cache_ensure_space)
2614 (bidi_cache_iterator_state, bidi_cache_find)
2615 (bidi_peek_at_next_level, bidi_set_paragraph_end)
2616 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
2617 (bidi_explicit_dir_char, bidi_resolve_neutral_1):
2618 Now 'static', not 'static inline'.
2619
2620 Count overruns when profiling; change units to ns.
2621 * profiler.c (handle_profiler_signal): Count sampling intervals, not ms.
2622 Give extra weight to samples after overruns, to attempt to count
2623 the time more accurately.
2624 (setup_cpu_timer): Change sampling interval units from ms to ns, since
2625 the underlying primitives nominally do ns.
2626 (Fprofiler_cpu_start): Document the change. Mention that
2627 the sampling intervals are only approximate.
2628
2629 2012-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
2630
2631 * frame.c (Fmake_terminal_frame): Prefer safer CONSP over !NILP.
2632
2633 * coding.h (ENCODE_FILE, DECODE_FILE, DECODE_SYSTEM): Remove special
2634 case for the special 0 coding-system.
2635
2636 * buffer.c (Fset_buffer_multibyte): Signal an error instead of widening.
2637 (Fmake_overlay): Remove redundant tests.
2638 (fix_start_end_in_overlays): Remove redundant recentering.
2639
2640 2012-10-02 Juanma Barranquero <lekktu@gmail.com>
2641
2642 * makefile.w32-in ($(BLD)/alloc.$(O), $(BLD)/gmalloc.$(O)):
2643 Update dependencies.
2644
2645 2012-10-01 Paul Eggert <eggert@cs.ucla.edu>
2646
2647 Fix a malloc race condition involving strsignal.
2648 A signal can arrive in the middle of a malloc, and Emacs's signal
2649 handler can invoke strsignal, which can invoke malloc, which is
2650 not portable. This race condition bug makes Emacs hang on GNU/Linux.
2651 Fix it by altering the signal handler so that it does not invoke
2652 strsignal.
2653 * emacs.c (shut_down_emacs): Use safe_strsignal, not strsignal.
2654 * process.c (status_message): Use const pointer, in case strsignal
2655 is #defined to safe_strsignal.
2656 * sysdep.c (sys_siglist, init_signals): Always define and
2657 initialize a substitute sys_siglist if the system does not define
2658 one, even if HAVE_STRSIGNAL.
2659 (safe_strsignal): Rename from strsignal. Always define,
2660 using sys_siglist. Return a const pointer.
2661 * syssignal.h (safe_strsignal): New decl.
2662 (strsignal) [!HAVE_STRSIGNAL]: Define in terms of safe_strsignal.
2663
2664 2012-10-01 Eli Zaretskii <eliz@gnu.org>
2665
2666 * w32proc.c (timer_loop): Fix code that waits for timer
2667 expiration, to avoid high CPU usage.
2668
2669 2012-10-01 Stefan Monnier <monnier@iro.umontreal.ca>
2670
2671 * fns.c (check_hash_table, get_key_arg, maybe_resize_hash_table)
2672 (sweep_weak_table): Remove redundant prototypes.
2673
2674 2012-10-01 Fabrice Popineau <fabrice.popineau@gmail.com>
2675
2676 * emacs.c: Move the inclusion of TERM_HEADER after including
2677 windows.h on WINDOWSNT. This avoids compilation problems with
2678 MSVC.
2679
2680 2012-10-01 Eli Zaretskii <eliz@gnu.org>
2681
2682 * unexw32.c (OFFSET_TO_RVA, RVA_TO_OFFSET)
2683 (RVA_TO_SECTION_OFFSET): Encode all macro arguments in parentheses.
2684 (RVA_TO_PTR): Cast the result of RVA_TO_OFFSET to 'unsigned char *',
2685 as the previous version used 'void *'.
2686
2687 * ralloc.c (ROUNDUP): Fix last change.
2688 (MEM_ROUNDUP): Don't cast MEM_ALIGN, it is already of type
2689 'size_t'.
2690
2691 * w32proc.c <disable_itimers>: New static flag.
2692 (init_timers): Initialize it to zero, after creating the critical
2693 sections used by the timer threads.
2694 (term_timers): Set to 1 before deleting the critical sections.
2695 (getitimer, setitimer): If disable_itimers is non-zero, return an
2696 error indication without doing anything. Reported by Fabrice
2697 Popineau <fabrice.popineau@supelec.fr> as part of bug#12544.
2698 (alarm) [HAVE_SETITIMER]: Be more conformant to the expected
2699 return results.
2700 [!HAVE_SETITIMER]: Behave as the previous version that didn't
2701 support timers.
2702
2703 * emacs.c (shut_down_emacs) [WINDOWSNT]: Move the call to
2704 term_ntproc after all the other bookkeeping, to get timers working
2705 as long as possible.
2706
2707 2012-10-01 Paul Eggert <eggert@cs.ucla.edu>
2708
2709 * xdisp.c (syms_of_xdisp): Default message-log-max to 1000, not 100.
2710 Suggested by Juri Linkov in
2711 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00821.html>.
2712
2713 Prefer plain 'static' to 'static inline' (Bug#12541).
2714 With static functions, modern compilers inline pretty well by
2715 themselves; advice from programmers often hurts as much as it helps.
2716 On my host (x86-64, Fedora 17, GCC 4.7.2, default 'configure'),
2717 this change shrinks the text size of the Emacs executable by 1.1%
2718 without affecting CPU significantly in my benchmark.
2719 * alloc.c (mem_find, live_string_p, live_cons_p, live_symbol_p)
2720 (live_float_p, live_misc_p, live_vector_p, live_buffer_p)
2721 (mark_maybe_object, mark_maybe_pointer, bounded_number):
2722 * buffer.c (bset_abbrev_mode, bset_abbrev_table)
2723 (bset_auto_fill_function, bset_auto_save_file_format)
2724 (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
2725 (bset_bidi_display_reordering, bset_buffer_file_coding_system)
2726 (bset_cache_long_line_scans, bset_case_fold_search)
2727 (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
2728 (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
2729 (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
2730 (bset_fringe_indicator_alist, bset_fringes_outside_margins)
2731 (bset_header_line_format, bset_indicate_buffer_boundaries)
2732 (bset_indicate_empty_lines, bset_invisibility_spec)
2733 (bset_left_fringe_width, bset_major_mode, bset_mark)
2734 (bset_minor_modes, bset_mode_line_format, bset_mode_name)
2735 (bset_name, bset_overwrite_mode, bset_pt_marker)
2736 (bset_right_fringe_width, bset_save_length)
2737 (bset_scroll_bar_width, bset_scroll_down_aggressively)
2738 (bset_scroll_up_aggressively, bset_selective_display)
2739 (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
2740 (bset_word_wrap, bset_zv_marker, set_buffer_overlays_before)
2741 (set_buffer_overlays_after):
2742 * category.c (bset_category_table):
2743 * charset.c (read_hex):
2744 * coding.c (produce_composition, produce_charset)
2745 (handle_composition_annotation, handle_charset_annotation)
2746 (char_encodable_p):
2747 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers)
2748 (assign_row, set_frame_matrix_frame, make_current)
2749 (add_row_entry):
2750 * eval.c (set_specpdl_symbol, set_specpdl_old_value):
2751 * fns.c (maybe_resize_hash_table):
2752 * frame.c (fset_buffer_predicate, fset_minibuffer_window):
2753 * gmalloc.c (register_heapinfo):
2754 * image.c (lookup_image_type):
2755 * intervals.c (set_interval_object, set_interval_left)
2756 (set_interval_right, copy_interval_parent, rotate_right)
2757 (rotate_left, balance_possible_root_interval):
2758 * keyboard.c (kset_echo_string, kset_kbd_queue)
2759 (kset_keyboard_translate_table, kset_last_prefix_arg)
2760 (kset_last_repeatable_command, kset_local_function_key_map)
2761 (kset_overriding_terminal_local_map, kset_real_last_command)
2762 (kset_system_key_syms, clear_event, set_prop):
2763 * lread.c (digit_to_number):
2764 * marker.c (attach_marker, live_buffer, set_marker_internal):
2765 * nsterm.m (ns_compute_glyph_string_overhangs):
2766 * process.c (pset_buffer, pset_command)
2767 (pset_decode_coding_system, pset_decoding_buf)
2768 (pset_encode_coding_system, pset_encoding_buf, pset_filter)
2769 (pset_log, pset_mark, pset_name, pset_plist, pset_sentinel)
2770 (pset_status, pset_tty_name, pset_type, pset_write_queue):
2771 * syntax.c (bset_syntax_table, dec_bytepos):
2772 * terminal.c (tset_param_alist):
2773 * textprop.c (interval_has_some_properties)
2774 (interval_has_some_properties_list):
2775 * window.c (wset_combination_limit, wset_dedicated)
2776 (wset_display_table, wset_hchild, wset_left_fringe_width)
2777 (wset_left_margin_cols, wset_new_normal, wset_new_total)
2778 (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
2779 (wset_right_fringe_width, wset_right_margin_cols)
2780 (wset_scroll_bar_width, wset_start, wset_temslot, wset_vchild)
2781 (wset_vertical_scroll_bar_type, wset_window_parameters):
2782 * xdisp.c (wset_base_line_number, wset_base_line_pos)
2783 (wset_column_number_displayed, wset_region_showing)
2784 (window_box_edges, run_window_scroll_functions)
2785 (append_glyph_string_lists, prepend_glyph_string_lists)
2786 (append_glyph_string, set_glyph_string_background_width)
2787 (append_glyph, append_composite_glyph)
2788 (take_vertical_position_into_account):
2789 * xfaces.c (x_create_gc, x_free_gc, merge_face_vectors)
2790 (face_attr_equal_p, lface_equal_p, hash_string_case_insensitive)
2791 (lface_hash, lface_same_font_attributes_p, lookup_face):
2792 * xml.c (libxml2_loaded_p):
2793 * xterm.c (x_set_mode_line_face_gc, x_set_glyph_string_gc)
2794 (x_set_glyph_string_clipping, x_clear_glyph_string_rect):
2795 Now 'static', not 'static inline'.
2796
2797 * bidi.c: Tune.
2798 (bidi_copy_it): Do the whole copy with a single memcpy.
2799 (bidi_char_at_pos): Merge the two STRING_CHAR calls into one.
2800
2801 Revert the FOLLOW-SYMLINKS change for file-attributes.
2802 Doing it right would require several changes to Tramp, and there's
2803 not enough time to get that tested before the freeze today.
2804 * dired.c (directory_files_internal, Ffile_attributes):
2805 Undo last change.
2806
2807 * frame.c (x_report_frame_params): Port better to wider ints.
2808 Do not assume that EMACS_UINT is the same width as uprintmax_t,
2809 or that pointers can be printed in 15 decimal digits.
2810 Avoid GCC warnings if EMACS_UINT is wider than a pointer.
2811
2812 2012-09-30 Fabrice Popineau <fabrice.popineau@supelec.fr>
2813
2814 Support x64 build on MS-Windows.
2815 * w32term.h (SCROLL_BAR_PACK, SCROLL_BAR_UNPACK): Define for x64.
2816 (SET_SCROLL_BAR_W32_WINDOW): Cast ID to intptr_t, for
2817 compatibility with x64.
2818 (x_get_focus_frame): Add prototype.
2819
2820 * w32term.c (w32_draw_underwave): Don't use GCC extensions for
2821 defining an XRectangle structure.
2822
2823 * w32proc.c (RVA_TO_PTR, w32_executable_type): Fix pointer
2824 arithmetics for compatibility with x64.
2825
2826 * w32menu.c (add_menu_item): Use UINT_PTR instead of UINT, for
2827 compatibility with x64.
2828
2829 * w32heap.h: Adjust prototypes and declarations.
2830
2831 * w32heap.c (RVA_TO_PTR, allocate_heap, sbrk, init_heap)
2832 (round_heap): Use DWORD_PTR, ptrdiff_t and size_t instead of
2833 DWORD, long, and unsigned long, for compatibility with x64.
2834 (allocate_heap) [_WIN64]: Reserve 32GB of memory.
2835 (sbrk): Argument is now of type ptrdiff_t.
2836
2837 * w32fns.c (HMONITOR): Condition declaration on _WIN32_WINNT being
2838 less than 0x0500.
2839 (w32_msg_pump): Use WPARAM type for 'result'.
2840
2841 * w32.c (init_environment, get_emacs_configuration): Support AMD64
2842 architecture.
2843 (init_ntproc): Cast arguments of _open_osfhandle to intptr_t, for
2844 compatibility with x64.
2845
2846 * vm-limit.c (lim_data): Now size_t.
2847 (check_memory_limits): Adjust prototypes of real_morecore and
2848 __morecore to receive argument of type ptrdiff_t. Use size_t for
2849 five_percent and data_size.
2850
2851 * unexw32.c: Use DWORD_PTR instead of DWORD for file-scope
2852 variables, for compatibility with x64.
2853 (rva_to_section, offset_to_section, relocate_offset)
2854 (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET)
2855 (PTR_TO_RVA, RVA_TO_PTR, OFFSET_TO_PTR, get_section_info)
2856 (copy_executable_and_dump_data): Use DWORD_PTR instead of DWORD
2857 for compatibility with x64.
2858
2859 * sysdep.c (STDERR_FILENO): Define if not already defined.
2860
2861 * ralloc.c (real_morecore): Argument type is now ptrdiff_t.
2862 (__morecore): Argument type is now ptrdiff_t.
2863 (ROUNDUP, MEM_ROUNDUP): Use size_t instead of 'unsigned long'.
2864 (relinquish): Use ptrdiff_t type for 'excess'.
2865 (r_alloc_sbrk): Argument type is now ptrdiff_t.
2866
2867 * makefile.w32-in (HEAPSIZE): Get value from EMACS_HEAPSIZE.
2868 (bootstrap-temacs-CMD, bootstrap-temacs-SH): Use $(EMACS_PURESIZE)
2869 instead of a literal number.
2870
2871 * gmalloc.c [WINDOWSNT]: Include w32heap.h.
2872 (min): Define only if not already defined.
2873
2874 * frame.c (x_report_frame_params): Use EMACS_UINT for the return
2875 value of FRAME_X_WINDOW, to fit a 64-bit pointer on 64-bit Windows
2876 hosts.
2877
2878 * image.c (x_bitmap_pixmap): Return ptrdiff_t, not int, since
2879 'bitmaps' is a pointer.
2880
2881 * dispextern.h (x_bitmap_pixmap): Adjust prototype.
2882
2883 * alloc.c (gdb_make_enums_visible): Now conditional on __GNUC__.
2884
2885 2012-09-30 Paul Eggert <eggert@cs.ucla.edu>
2886
2887 file-attributes has a new optional arg FOLLOW-SYMLINKS.
2888 * dired.c (directory_files_internal, Ffile_attributes):
2889 New arg follow_symlinks. All uses changed.
2890
2891 2012-09-30 Stefan Monnier <monnier@iro.umontreal.ca>
2892
2893 * .gdbinit (xbacktrace): Adjust to recent "struct backtrace" change.
2894
2895 2012-09-30 Eli Zaretskii <eliz@gnu.org>
2896
2897 Support atimers and CPU profiler via profile.c on MS-Windows.
2898 * w32proc.c (sig_mask, crit_sig): New static variables.
2899 (sys_signal): Support SIGALRM and SIGPROF.
2900 (sigemptyset, sigaddset, sigfillset, sigprocmask)
2901 (pthread_sigmask, setpgrp): Move here from w32.c. sigaddset,
2902 sigfillset, and sigprocmask are no longer no-ops.
2903 (sigismember): New function.
2904 (struct itimer_data): New definition.
2905 (ticks_now, real_itimer, prof_itimer, clocks_min, crit_real)
2906 (crit_prof): New static variables.
2907 (MAX_SINGLE_SLEEP): New definition.
2908 (timer_loop, stop_timer_thread, term_timers, init_timers)
2909 (start_timer_thread, getitimer, setitimer): New functions.
2910 (alarm): No longer a no-op, calls setitimer.
2911
2912 * w32.c (term_ntproc): Call term_timers.
2913 (init_ntproc): Make sure all signals are unblocked at startup, to
2914 erase any traces of dumping. Call init_timers.
2915
2916 * w32fns.c (hourglass_timer, HOURGLASS_ID): Remove.
2917 Windows-specific code to display the hourglass mouse pointer is no
2918 longer used.
2919 (w32_wnd_proc): Remove code that handled the WM_TIMER message due
2920 to hourglass timer expiration.
2921 (start_hourglass, cancel_hourglass, DEFAULT_HOURGLASS_DELAY):
2922 Remove, no longer used.
2923 (w32_note_current_window, show_hourglass, hide_hourglass):
2924 New functions, in support of hourglass cursor display similar to other
2925 window systems.
2926 (syms_of_w32fns): Don't initialize hourglass_timer.
2927
2928 * xdisp.c (start_hourglass, cancel_hourglass): Now used on
2929 WINDOWSNT as well.
2930 (start_hourglass) [WINDOWSNT]: Call w32_note_current_window.
2931
2932 * w32.h (init_timers, term_timers): Add prototypes.
2933
2934 2012-09-30 Kenichi Handa <handa@gnu.org>
2935
2936 * coding.c (decode_coding_ccl, encode_coding_ccl): Pay attention
2937 to the buffer relocation which may be caused by ccl_driver.
2938
2939 2012-09-30 Jan Djärv <jan.h.d@swipnet.se>
2940
2941 * xfns.c (Fx_file_dialog): Update comment.
2942
2943 * w32fns.c (Fx_file_dialog): Update comment.
2944
2945 * nsfns.m (Fns_read_file_name): Add argument DIR_ONLY_P.
2946 Initialize panel name field if OSX >= 10.6.
2947
2948 * fileio.c (Fnext_read_file_uses_dialog_p): Add HAVE_NS.
2949
2950 * nsfns.m (ns_frame_parm_handlers): Add x_set_fullscreen.
2951
2952 * nsterm.m (NEW_STYLE_FS): New define.
2953 (ns_fullscreen_hook, windowWillEnterFullScreen)
2954 (windowDidEnterFullScreen, windowWillExitFullScreen)
2955 (windowDidExitFullScreen, toggleFullScreen, handleFS)
2956 (setFSValue): New functions.
2957 (EmacsFSWindow): New implementation.
2958 (canBecomeKeyWindow): New function for EmacsFSWindow.
2959 (ns_create_terminal): Set fullscreen_hook to ns_fullscreen_hook.
2960 (dealloc): Release nonfs_window if in fullscreen.
2961 (updateFrameSize:): Call windowDidMove to update top/left.
2962 (windowWillResize:toSize:): Check if frame is still maximized.
2963 (initFrameFromEmacs:): Initialize fs_state, fs_before_fs,
2964 next_maximized, maximized_width, maximized_height and nonfs_window.
2965 Call setCollectionBehavior if NEW_STYLE_FS. Initialize bwidth and
2966 tbar_height.
2967 (windowWillUseStandardFrame:defaultFrame:): Update frame parameter
2968 fullscreen. Set maximized_width/height. Act on next_maximized.
2969
2970 * nsterm.h (MAC_OS_X_VERSION_10_7, MAC_OS_X_VERSION_10_8): New.
2971 (EmacsView): Add variables for fullscreen.
2972 (handleFS, setFSValue, toggleFullScreen): New in EmacsView.
2973 (EmacsFSWindow): New interface for fullscreen.
2974
2975 2012-09-30 Juanma Barranquero <lekktu@gmail.com>
2976
2977 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
2978
2979 2012-09-30 Chong Yidong <cyd@gnu.org>
2980
2981 * fns.c (Frandom): Doc fix.
2982
2983 2012-09-30 Martin Rudalics <rudalics@gmx.at>
2984
2985 * window.c (Vwindow_combination_limit): New default value.
2986 (Qwindow_size): New symbol replacing Qtemp_buffer_resize.
2987
2988 2012-09-30 Paul Eggert <eggert@cs.ucla.edu>
2989
2990 * syssignal.h (PROFILER_CPU_SUPPORT): Don't define if PROFILING.
2991 Suggested by Eli Zaretskii in
2992 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00811.html>.
2993
2994 2012-09-30 Eli Zaretskii <eliz@gnu.org>
2995
2996 * profiler.c (Fprofiler_cpu_stop): Use timer_settime only if
2997 HAVE_TIMER_SETTIME is defined.
2998
2999 2012-09-30 Paul Eggert <eggert@cs.ucla.edu>
3000
3001 Profiler improvements: more-accurate timers, overflow checks.
3002 * profiler.c: Don't include stdio.h, limits.h, sys/time.h,
3003 signal.h, setjmp.h. Include systime.h instead.
3004 (saturated_add): New function.
3005 (record_backtrace, current_sample_interval): Use EMACS_INT, not size_t.
3006 (record_backtrace, handle_profiler_signal): Saturate on fixnum overflow.
3007 (profiler_timer, profiler_timer_ok) [HAVE_TIMER_SETTIME]:
3008 New static vars.
3009 (enum profiler_cpu_running): New enum.
3010 (profiler_cpu_running): Now of that enum type, not bool.
3011 All uses changed to store the new value.
3012 (handle_profiler_signal): Rename from sigprof_handler_1,
3013 for consistency with other handlers. Do not check whether
3014 cpu_log is a hash-table if garbage collecting, since it
3015 doesn't matter in that case.
3016 (deliver_profiler_signal): Rename from sigprof_handler,
3017 for consistency with other handlers.
3018 (setup_cpu_timer): New function, with much of what used to be in
3019 Fprofiler_cpu_start. Check for out-of-range argument.
3020 Prefer timer_settime if available, and prefer
3021 thread cputime clocks, then process cputime clocks, then
3022 monotonic clocks, to the old realtime clock. Use make_timeval
3023 to round more-correctly when falling back to setitimer.
3024 (Fprofiler_cpu_start): Use it.
3025 (Fprofiler_cpu_stop): Prefer timer_settime if available.
3026 Don't assume that passing NULL as the 2nd argument of setitimer
3027 is the same as passing a pointer to all-zero storage.
3028 Ignore SIGPROF afterwards.
3029 (malloc_probe): Saturate at MOST_POSITIVE_FIXNUM.
3030 * sysdep.c (emacs_sigaction_init): Also mask out SIGPROF in
3031 non-fatal signal handlers. Ignore SIGPROF on startup.
3032 * syssignal.h (PROFILER_CPU_SUPPORT): Define this macro here, not
3033 in profiler.c, since sysdep.c now uses it.
3034
3035 * sysdep.c (handle_fatal_signal): Bump backtrace size to 40.
3036 Suggested by Eli Zaretskii in
3037 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00796.html>.
3038
3039 2012-09-29 Juanma Barranquero <lekktu@gmail.com>
3040
3041 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
3042
3043 2012-09-29 Stefan Monnier <monnier@iro.umontreal.ca>
3044
3045 * lisp.h (struct backtrace): Remove indirection for `function' field.
3046 * xdisp.c (redisplay_internal):
3047 * profiler.c (record_backtrace, sigprof_handler_1):
3048 * alloc.c (Fgarbage_collect):
3049 * eval.c (interactive_p, Fsignal, eval_sub, Ffuncall, Fbacktrace)
3050 (Fbacktrace_frame): Adjust accordingly.
3051
3052 2012-09-28 Glenn Morris <rgm@gnu.org>
3053
3054 * eval.c (Frun_hook_with_args, Frun_hook_with_args_until_success)
3055 (Frun_hook_with_args_until_failure): Doc fixes.
3056
3057 2012-09-28 Eli Zaretskii <eliz@gnu.org>
3058
3059 * xdisp.c (syms_of_xdisp) <Qredisplay_internal>: Rename from
3060 Qautomatic_redisplay and change the symbol name. All users changed.
3061
3062 2012-09-28 Tomohiro Matsuyama <tomo@cx4a.org>
3063
3064 * profiler.c (sigprof_handler): Fix race condition.
3065
3066 2012-09-28 Glenn Morris <rgm@gnu.org>
3067
3068 * lread.c (lisp_file_lexically_bound_p): Handle #! lines. (Bug#12528)
3069
3070 2012-09-27 Paul Eggert <eggert@cs.ucla.edu>
3071
3072 Check more robustly for timer_settime.
3073 * Makefile.in (LIB_TIMER_TIME): New macro.
3074 (LIBES): Add it.
3075 * atimer.c (alarm_timer, alarm_timer_ok, set_alarm, init_atimer):
3076 Use HAVE_TIMER_SETTIME, not SIGEV_SIGNAL, to decide whether to
3077 call timer_settime.
3078
3079 2012-09-26 Tomohiro Matsuyama <tomo@cx4a.org>
3080
3081 * profiler.c (Fprofiler_cpu_start): Remove unnecessary flag SA_SIGINFO.
3082
3083 2012-09-26 Juanma Barranquero <lekktu@gmail.com>
3084
3085 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
3086
3087 2012-09-26 Paul Eggert <eggert@cs.ucla.edu>
3088
3089 * character.h (MAYBE_UNIFY_CHAR): Remove.
3090 * charset.c, charset.h (maybe_unify_char): Now static.
3091 * charset.c (decode_char): Use maybe_unify_char, not MAYBE_UNIFY_CHAR.
3092 Since this stuff is now private to charset.c, there's no need for
3093 a public macro and no need to inline by hand.
3094
3095 2012-09-26 Tomohiro Matsuyama <tomo@cx4a.org>
3096 Stefan Monnier <monnier@iro.umontreal.ca>
3097 Juanma Barranquero <lekktu@gmail.com>
3098
3099 * profiler.c: New file.
3100 * Makefile.in (base_obj): Add profiler.o.
3101 * makefile.w32-in (OBJ2, GLOBAL_SOURCES): Add profiler.c.
3102 ($(BLD)/profiler.$(O)): New target.
3103 * emacs.c (main): Call syms_of_profiler.
3104 * alloc.c (Qautomatic_gc): New constant.
3105 (MALLOC_PROBE): New macro.
3106 (xmalloc, xzalloc, xrealloc, lisp_malloc, lisp_align_malloc): Use it.
3107 (total_bytes_of_live_objects): New function.
3108 (Fgarbage_collect): Use it. Record itself in backtrace_list.
3109 Call malloc_probe for the memory profiler.
3110 (syms_of_alloc): Define Qautomatic_gc.
3111 * eval.c (eval_sub, Ffuncall): Reorder assignments to avoid
3112 race condition.
3113 (struct backtrace): Move definition...
3114 * lisp.h (struct backtrace): ..here.
3115 (Qautomatic_gc, profiler_memory_running): Declare vars.
3116 (malloc_probe, syms_of_profiler): Declare functions.
3117 * xdisp.c (Qautomatic_redisplay): New constant.
3118 (redisplay_internal): Record itself in backtrace_list.
3119 (syms_of_xdisp): Define Qautomatic_redisplay.
3120
3121 2012-09-25 Eli Zaretskii <eliz@gnu.org>
3122 2012-09-25 Juanma Barranquero <lekktu@gmail.com>
3123
3124 * makefile.w32-in ($(BLD)/callproc.$(O)): Update dependencies.
3125
3126 2012-09-25 Paul Eggert <eggert@cs.ucla.edu>
3127
3128 Prefer POSIX timers if available.
3129 They avoid a race if the timer is too close to the current time.
3130 * atimer.c (alarm_timer, alarm_timer_ok) [SIGEV_SIGNAL]: New static vars.
3131 (set_alarm) [SIGEV_SIGNAL]: Use POSIX timers if available.
3132 (init_atimer) [SIGEV_SIGNAL]: Initialize them.
3133
3134 2012-09-25 Eli Zaretskii <eliz@gnu.org>
3135
3136 * coding.c (CHAR_STRING_ADVANCE_NO_UNIFY): Make it an alias of
3137 CHAR_STRING_ADVANCE.
3138 (STRING_CHAR_ADVANCE_NO_UNIFY): Make it an alias of
3139 STRING_CHAR_ADVANCE.
3140
3141 2012-09-25 Juanma Barranquero <lekktu@gmail.com>
3142
3143 Move Vlibrary_cache to emacs.c and reset before dumping.
3144
3145 * lisp.h (reset_image_types): Declare.
3146 [WINDOWSNT] (Vlibrary_cache): Declare.
3147
3148 * image.c (reset_image_types): New function.
3149
3150 * emacs.c [WINDOWSNT] (Vlibrary_cache): Move from w32.c.
3151 (syms_of_emacs) [WINDOWSNT] <Vlibrary_cache>: Initialize and staticpro.
3152 (Fdump_emacs): Reset Vlibrary_cache and image_types.
3153
3154 * w32.c (Vlibrary_cache): Do not define; moved to emacs.c
3155 (globals_of_w32) <Vlibrary_cache>: Do not initialize.
3156
3157 * w32.h (Vlibrary_cache): Do not declare.
3158
3159 2012-09-25 Eli Zaretskii <eliz@gnu.org>
3160
3161 * w32proc.c (sys_signal): Handle all signals defined by the
3162 MS-Windows runtime, not just SIGCHLD. Actually install the signal
3163 handlers for signals supported by Windows. Don't override
3164 term_ntproc as the handler for SIGABRT.
3165 (sigaction): Rewrite to call sys_signal instead of duplicating its
3166 code.
3167 (sys_kill): Improve commentary.
3168
3169 * w32.c (term_ntproc): Accept (and ignore) one argument, for
3170 consistency with a signature of a signal handler. All callers
3171 changed.
3172 (init_ntproc): Accept an argument DUMPING. If dumping, don't
3173 install term_ntproc as a signal handler for SIGABRT, as that
3174 should be done by the dumped Emacs.
3175
3176 * w32.h (init_ntproc, term_ntproc): Adjust prototypes.
3177
3178 * w32select.c (term_w32select): Protect against repeated
3179 invocation by setting clipboard_owner to NULL after calling
3180 DestroyWindow.
3181
3182 * emacs.c (shut_down_emacs, main): Adapt the calls to init_ntproc
3183 and term_ntproc to their modified signatures.
3184
3185 * character.c (char_string, string_char): Remove calls to
3186 MAYBE_UNIFY_CHAR. See the discussion starting at
3187 http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00433.html
3188 for the details.
3189
3190 2012-09-25 Chong Yidong <cyd@gnu.org>
3191
3192 * xdisp.c (mode_line_inverse_video): Delete obsolete variable.
3193
3194 2012-09-24 Stefan Monnier <monnier@iro.umontreal.ca>
3195
3196 * bytecode.c (exec_byte_code): Signal an error instead of aborting,
3197 when encountering an unknown bytecode.
3198
3199 2012-09-24 Paul Eggert <eggert@cs.ucla.edu>
3200
3201 image.c, indent.c: Use bool for booleans.
3202 * dispextern.h (struct image_type): Members valid_p, load, init
3203 now return bool, not int. All uses changed.
3204 * image.c: Omit unnecessary static decls.
3205 (x_create_bitmap_mask, x_build_heuristic_mask):
3206 Return void, not int, since callers don't care about the return value.
3207 (x_create_bitmap_mask, define_image_type, valid_image_p)
3208 (struct image_keyword, parse_image_spec, image_spec_value)
3209 (check_image_size, image_background)
3210 (image_background_transparent, x_clear_image_1)
3211 (postprocess_image, lookup_image, x_check_image_size)
3212 (x_create_x_image_and_pixmap, xbm_image_p)
3213 (Create_Pixmap_From_Bitmap_Data, xbm_read_bitmap_data)
3214 (xbm_load_image, xbm_file_p, xbm_load, xpm_lookup_color)
3215 (init_xpm_functions, xpm_valid_color_symbols_p, xpm_image_p)
3216 (xpm_load, xpm_load_image, lookup_rgb_color, lookup_pixel_color)
3217 (x_to_xcolors, x_build_heuristic_mask, pbm_image_p, pbm_load)
3218 (png_image_p, init_png_functions, png_load_body, png_load)
3219 (jpeg_image_p, init_jpeg_functions, jpeg_load_body, jpeg_load)
3220 (tiff_image_p, init_tiff_functions, tiff_load, gif_image_p)
3221 (init_gif_functions, gif_load, imagemagick_image_p)
3222 (imagemagick_load_image, imagemagick_load, svg_image_p)
3223 (init_svg_functions, svg_load, svg_load_image, gs_image_p)
3224 (gs_load):
3225 * nsimage.m (ns_load_image):
3226 * nsterm.m (ns_defined_color):
3227 * xfaces.c (tty_lookup_color, tty_defined_color, defined_color):
3228 * xfns.c (x_defined_color):
3229 * xterm.c (x_alloc_lighter_color_for_widget)
3230 (x_alloc_nearest_color_1, x_alloc_nearest_color)
3231 (x_alloc_lighter_color):
3232 * indent.c (disptab_matches_widthtab, current_column)
3233 (scan_for_column, string_display_width, indented_beyond_p)
3234 (compute_motion, vmotion, Fvertical_motion):
3235 Use bool for booleans.
3236
3237 2012-09-24 Chong Yidong <cyd@gnu.org>
3238
3239 * chartab.c (Fset_char_table_default): Obsolete function removed.
3240
3241 2012-09-23 Paul Eggert <eggert@cs.ucla.edu>
3242
3243 Move pid_t related decls out of lisp.h.
3244 * lisp.h, syswait.h (record_child_status_change, wait_for_termination)
3245 (interruptible_wait_for_termination):
3246 Move these decls from lisp.h to syswait.h, since they use pid_t.
3247 Needed on FreeBSD; see Herbert J. Skuhra in
3248 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00571.html>.
3249 * callproc.c: Include syswait.h.
3250
3251 gnutls.c, gtkutil.c: Use bool for boolean.
3252 * gnutls.c (gnutls_global_initialized, init_gnutls_functions)
3253 (emacs_gnutls_handle_error):
3254 * gtkutil.c (xg_check_special_colors, xg_prepare_tooltip)
3255 (xg_hide_tooltip, xg_create_frame_widgets)
3256 (create_dialog, xg_uses_old_file_dialog)
3257 (xg_get_file_with_chooser, xg_get_file_with_selection)
3258 (xg_get_file_name, xg_have_tear_offs, create_menus, xg_create_widget)
3259 (xg_item_label_same_p, xg_update_menubar)
3260 (xg_modify_menubar_widgets, xg_event_is_for_menubar)
3261 (xg_ignore_gtk_scrollbar, xg_set_toolkit_scroll_bar_thumb)
3262 (xg_event_is_for_scrollbar, xg_pack_tool_bar, xg_make_tool_item)
3263 (is_box_type, xg_tool_item_stale_p, xg_update_tool_bar_sizes)
3264 (update_frame_tool_bar, free_frame_tool_bar):
3265 * gtkutil.c, w32term.c, xterm.c (x_wm_set_size_hint):
3266 * nsmenu.m (ns_update_menubar):
3267 * nsmenu.m, w32menu.c, xmenu.c (set_frame_menubar):
3268 * xfns.c (Fx_show_tip) [USE_GTK]:
3269 Use bool for boolean.
3270 * gtkutil.c (xg_update_frame_menubar):
3271 * xmenu.c (update_frame_menubar):
3272 Return void, not int, since caller ignores return value.
3273 * gtkutil.c (xg_change_toolbar_position):
3274 Return void, not 1.
3275
3276 2012-09-23 Juanma Barranquero <lekktu@gmail.com>
3277
3278 * makefile.w32-in (BLOCKINPUT_H): Remove.
3279 (SYSSIGNAL_H): New macro.
3280 ($(BLD)/alloc.$(O), $(BLD)/atimer.$(O), $(BLD)/buffer.$(O))
3281 ($(BLD)/callproc.$(O), $(BLD)/data.$(O), $(BLD)/dired.$(O))
3282 ($(BLD)/dispnew.$(O), $(BLD)/editfns.$(O), $(BLD)/emacs.$(O))
3283 ($(BLD)/eval.$(O), $(BLD)/fileio.$(O), $(BLD)/floatfns.$(O))
3284 ($(BLD)/fns.$(O), $(BLD)/fontset.$(O), $(BLD)/frame.$(O))
3285 ($(BLD)/fringe.$(O), $(BLD)/image.$(O), $(BLD)/insdel.$(O))
3286 ($(BLD)/keyboard.$(O), $(BLD)/keymap.$(O), $(BLD)/lread.$(O))
3287 ($(BLD)/menu.$(O), $(BLD)/w32inevt.$(O), $(BLD)/w32proc.$(O))
3288 ($(BLD)/print.$(O), $(BLD)/process.$(O), $(BLD)/ralloc.$(O))
3289 ($(BLD)/search.$(O), $(BLD)/sound.$(O), $(BLD)/sysdep.$(O))
3290 ($(BLD)/term.$(O), $(BLD)/window.$(O), $(BLD)/xdisp.$(O))
3291 ($(BLD)/xfaces.$(O), $(BLD)/w32fns.$(O), $(BLD)/w32menu.$(O))
3292 ($(BLD)/w32term.$(O), $(BLD)/w32select.$(O), $(BLD)/w32reg.$(O))
3293 ($(BLD)/w32xfns.$(O)): Update dependencies.
3294
3295 2012-09-23 Eli Zaretskii <eliz@gnu.org>
3296
3297 * .gdbinit: Set breakpoint on terminate_due_to_signal, not on
3298 fatal_error_backtrace.
3299
3300 * w32proc.c (sys_kill): Undo last change: don't do anything when
3301 invoked to deliver SIGABRT to our own process. This is now
3302 handled by emacs_raise.
3303
3304 2012-09-23 Juanma Barranquero <lekktu@gmail.com>
3305
3306 * w32term.c (w32_read_socket): Remove leftover reference to
3307 interrupt_input_pending.
3308
3309 2012-09-23 Paul Eggert <eggert@cs.ucla.edu>
3310
3311 Do not use SA_NODEFER.
3312 Problem reported by Dani Moncayo in
3313 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00557.html>.
3314 * alloc.c (die):
3315 * sysdep.c (emacs_abort): Do not reset signal handler.
3316 * emacs.c (terminate_due_to_signal): Reset signal handler here.
3317 * sysdep.c (init_signals): Do not use SA_NODEFER. It wasn't
3318 wanted even on POSIXish hosts, and it doesn't work on Windows.
3319
3320 2012-09-23 Jan Djärv <jan.h.d@swipnet.se>
3321
3322 * xterm.c (x_term_init): Call fixup_locale before and after calling
3323 gtk_init (Bug#12392).
3324
3325 2012-09-23 Chong Yidong <cyd@gnu.org>
3326
3327 * w32.c (w32_delayed_load): Remove LIBRARIES argument; always use
3328 Vdynamic_library_alist.
3329
3330 * gnutls.c (init_gnutls_functions): Caller changed; remove arg.
3331 (Fgnutls_available_p): Caller changed.
3332
3333 * xml.c (init_libxml2_functions, Flibxml_parse_html_region)
3334 (Flibxml_parse_xml_region): Likewise.
3335
3336 * dispextern.h (struct image_type): Remove arg from init function.
3337
3338 * image.c (Finit_image_library, lookup_image_type)
3339 (define_image_type): Remove now-unneeded second arg.
3340 (init_xpm_functions, init_png_functions, init_jpeg_functions)
3341 (init_tiff_functions, init_gif_functions, init_svg_functions):
3342 Arglist and w32_delayed_load calling convention changed.
3343 (gs_type): Remove init_gs_functions; there is no such function.
3344 (valid_image_p, make_image): Fix caller to lookup_image_type.
3345
3346 2012-09-23 Paul Eggert <eggert@cs.ucla.edu>
3347
3348 Simplify and avoid signal-handling races (Bug#12471).
3349 * alloc.c (die):
3350 * sysdep.c (emacs_abort) [HAVE_NTGUI]:
3351 Avoid recursive loop if there's a fatal error in the function itself.
3352 * atimer.c (pending_atimers):
3353 * blockinput.h: Don't include "atimer.h"; no longer needed.
3354 (interrupt_input_pending): Remove. All uses removed.
3355 pending_signals now counts both atimers and ordinary interrupts.
3356 This is less racy than having three separate pending-signal flags.
3357 (block_input, unblock_input, totally_unblock_input, unblock_input_to)
3358 (input_blocked_p):
3359 Rename from their upper-case counterparts BLOCK_INPUT,
3360 UNBLOCK_INPUT, TOTALLY_UNBLOCK_INPUT, UNBLOCK_INPUT_TO,
3361 INPUT_BLOCKED_P, and turn into functions. All uses changed.
3362 This makes it easier to access volatile variables more accurately.
3363 (BLOCK_INPUT_RESIGNAL): Remove. All uses replaced by unblock_input ().
3364 (input_blocked_p): Prefer this to 'interrupt_input_blocked', as
3365 that's more reliable if the code is buggy and sets
3366 interrupt_input_blocked to a negative value. All uses changed.
3367 * atimer.c (deliver_alarm_signal):
3368 Remove. No need to deliver this to the parent; any thread can
3369 handle this signal now. All uses replaced by underlying handler.
3370 * atimer.c (turn_on_atimers):
3371 * dispnew.c (handle_window_change_signal):
3372 * emacs.c (handle_danger_signal):
3373 * keyboard.c (kbd_buffer_get_event):
3374 Don't reestablish signal handler; not needed with sigaction.
3375 * blockinput.h (UNBLOCK_INPUT_TO, TOTALLY_UNBLOCK_INPUT)
3376 (UNBLOCK_INPUT_TO):
3377 Rework to avoid unnecessary accesses to volatile variables.
3378 (UNBLOCK_INPUT_TO): Now a function.
3379 (totally_unblock_input, unblock_input): New decls.
3380 * data.c (handle_arith_signal, deliver_arith_signal): Move to sysdep.c
3381 (init_data): Remove. Necessary stuff now done in init_signal.
3382 * emacs.c, xdisp.c: Include "atimer.h", since we invoke atimer functions.
3383 * emacs.c (handle_fatal_signal, deliver_fatal_signal): Move to sysdep.c.
3384 (fatal_error_code): Remove; no longer needed.
3385 (terminate_due_to_signal): Rename from fatal_error_backtrace, since
3386 it doesn't always backtrace. All uses changed. No need to reset
3387 signal to default, since sigaction and/or die does that for us now.
3388 Use emacs_raise (FOO), not kill (getpid (), FOO).
3389 (main): Check more-accurately whether we're dumping.
3390 Move fatal-error setup to sysdep.c
3391 * floatfns.c: Do not include "syssignal.h"; no longer needed.
3392 * gtkutil.c (xg_get_file_name, xg_get_font):
3393 Remove no-longer-needed signal-mask manipulation.
3394 * keyboard.c, process.c (POLL_FOR_INPUT):
3395 Don't depend on USE_ASYNC_EVENTS, a symbol that is never defined.
3396 * keyboard.c (read_avail_input): Remove.
3397 All uses replaced by gobble_input.
3398 (Ftop_level): Use TOTALLY_UNBLOCK_INPUT rather than open code.
3399 (kbd_buffer_store_event_hold, gobble_input):
3400 (record_asynch_buffer_change) [USABLE_SIGIO]:
3401 (store_user_signal_events):
3402 No need to mess with signal mask.
3403 (gobble_input): If blocking input and there are terminals, simply
3404 set pending_signals to 1 and return. All hooks changed to not
3405 worry about whether input is blocked.
3406 (process_pending_signals): Clear pending_signals before processing
3407 them, in case a signal comes in while we're processing.
3408 By convention callers now test pending_signals before calling us.
3409 (UNBLOCK_INPUT_TO, unblock_input, totally_unblock_input):
3410 New functions, to support changes to blockinput.h.
3411 (handle_input_available_signal): Now extern.
3412 (reinvoke_input_signal): Remove. All uses replaced by
3413 handle_async_input.
3414 (quit_count): Now volatile, since a signal handler uses it.
3415 (handle_interrupt): Now takes bool IN_SIGNAL_HANDLER as arg.
3416 All callers changed. Block SIGINT only if not already blocked.
3417 Clear sigmask reliably, even if Fsignal returns, which it can.
3418 Omit unnecessary accesses to volatile var.
3419 (quit_throw_to_read_char): No need to restore sigmask.
3420 * keyboard.c (gobble_input, handle_user_signal):
3421 * process.c (wait_reading_process_output):
3422 Call signal-handling code rather than killing ourselves.
3423 * lisp.h: Include <float.h>, for...
3424 (IEEE_FLOATING_POINT): New macro, moved here to avoid duplication.
3425 (pending_signals): Now volatile.
3426 (syms_of_data): Now const if IEEE floating point.
3427 (handle_input_available_signal) [USABLE_SIGIO]:
3428 (terminate_due_to_signal, record_child_status_change): New decls.
3429 * process.c (create_process): Avoid disaster if memory is exhausted
3430 while we're processing a vfork, by tightening the critical section
3431 around the vfork.
3432 (send_process_frame, process_sent_to, handle_pipe_signal)
3433 (deliver_pipe_signal): Remove. No longer needed, as Emacs now
3434 ignores SIGPIPE.
3435 (send_process): No need for setjmp/longjmp any more, since the
3436 SIGPIPE stuff is now gone. Instead, report an error if errno
3437 is EPIPE.
3438 (record_child_status_change): Now extern. PID and W are now args.
3439 Return void, not bool. All callers changed.
3440 * sysdep.c (wait_debugging) [(BSD_SYSTEM || HPUX) && !defined (__GNU__)]:
3441 Remove. All uses removed. This bug should be fixed now in a
3442 different way.
3443 (wait_for_termination_1): Use waitpid rather than sigsuspend,
3444 and record the child status change directly. This avoids the
3445 need to futz with the signal mask.
3446 (process_fatal_action): Move here from emacs.c.
3447 (emacs_sigaction_flags): New function, containing
3448 much of what used to be in emacs_sigaction_init.
3449 (emacs_sigaction_init): Use it. Block nonfatal system signals that are
3450 caught by emacs, to make races less likely.
3451 (deliver_process_signal): Rename from handle_on_main_thread.
3452 All uses changed.
3453 (BACKTRACE_LIMIT_MAX): Now at top level.
3454 (thread_backtrace_buffer, threadback_backtrace_pointers):
3455 New static vars.
3456 (deliver_thread_signal, deliver_fatal_thread_signal):
3457 New functions, for more-accurate delivery of thread-specific signals.
3458 (handle_fatal_signal, deliver_fatal_signal): Move here from emacs.c.
3459 (deliver_arith_signal): Handle in this thread, not
3460 in the main thread, since it's triggered by this thread.
3461 (maybe_fatal_sig): New function.
3462 (init_signals): New arg DUMPING so that we can be more accurate
3463 about whether we're dumping. Caller changed.
3464 Treat thread-specific signals differently from process-general signals.
3465 Block all signals while handling fatal error; that's safer.
3466 xsignal from SIGFPE only on non-IEEE hosts, treating it as fatal
3467 on IEEE hosts.
3468 When batch, ignore SIGHUP, SIGINT, SIGTERM if they were already ignored.
3469 Ignore SIGPIPE unless batch.
3470 (emacs_backtrace): Output backtrace for the appropriate thread,
3471 which is not necessarily the main thread.
3472 * syssignal.h: Include <stdbool.h>.
3473 (emacs_raise): New macro.
3474 * xterm.c (x_connection_signal): Remove; no longer needed
3475 now that we use sigaction.
3476 (x_connection_closed): No need to mess with sigmask now.
3477 (x_initialize): No need to reset SIGPIPE handler here, since
3478 init_signals does this for us now.
3479
3480 2012-09-23 Jan Djärv <jan.h.d@swipnet.se>
3481
3482 * nsterm.m (ns_dumpglyphs_image): dr is a new rect to draw image into,
3483 background rect may be larger (Bug#12245).
3484
3485 2012-09-23 Chong Yidong <cyd@gnu.org>
3486
3487 * keyboard.c (timer_check): Avoid quitting during Fcopy_sequence.
3488
3489 2012-09-22 Paul Eggert <eggert@cs.ucla.edu>
3490
3491 * .gdbinit: Just stop at fatal_error_backtrace.
3492 See Stefan Monnier's request in
3493 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00549.html>.
3494 Remove no-longer-used query of system type.
3495
3496 2012-09-22 Chong Yidong <cyd@gnu.org>
3497
3498 * search.c (Freplace_match): Doc fix (Bug#12325).
3499
3500 * minibuf.c (Finternal_complete_buffer): Doc fix (Bug#12391).
3501
3502 * editfns.c (Fline_beginning_position): Doc fix (Bug#12416).
3503 (Fline_end_position): Doc fix.
3504
3505 * cmds.c (Fforward_char, Fbackward_char): Doc fix (Bug#12414).
3506
3507 2012-09-22 Chong Yidong <cyd@gnu.org>
3508
3509 * dispextern.h (struct image_type): Add new slot, storing a type
3510 initialization function.
3511
3512 * image.c (define_image_type): Call the image initializer function
3513 if it is defined. Arguments and return value changed.
3514 (valid_image_p, make_image): Callers changed.
3515 (xbm_type, xpm_type, pbm_type, png_type, jpeg_type, tiff_type)
3516 (gif_type, imagemagick_type, svg_type, gs_type):
3517 Add initialization functions.
3518 (Finit_image_library): Call lookup_image_type.
3519 (CHECK_LIB_AVAILABLE): Macro deleted.
3520 (lookup_image_type): Call define_image_type here, rather than via
3521 Finit_image_library, and without using CHECK_LIB_AVAILABLE.
3522 (syms_of_image): Move define_image_type calls for xbm_type and
3523 pbm_type to lookup_image_type.
3524
3525 2012-09-22 Eli Zaretskii <eliz@gnu.org>
3526
3527 * keyboard.c (timer_check_2): Move calculation of 'timers' and
3528 'idle_timers' from here ...
3529 (timer_check): ... to here. Use Fcopy_sequence to copy the timer
3530 lists, to avoid infloops when the timer does something stupid,
3531 like reinvoke itself with the same or smaller time-out.
3532 (Bug#12447)
3533
3534 2012-09-22 Martin Rudalics <rudalics@gmx.at>
3535
3536 * window.c (Fsplit_window_internal): Handle only Qt value of
3537 Vwindow_combination_limit separately.
3538 (Qtemp_buffer_resize): New symbol.
3539 (Vwindow_combination_limit): New default value.
3540 Rewrite doc-string.
3541
3542 2012-09-22 Eli Zaretskii <eliz@gnu.org>
3543
3544 * xdisp.c (next_overlay_string): Initialize it->end_charpos for
3545 the new overlay string. (Bug#10159)
3546
3547 2012-09-22 Paul Eggert <eggert@cs.ucla.edu>
3548
3549 * emacs.c (shut_down_emacs): Don't assume stderr is buffered,
3550 or that fprintf is async-signal-safe. POSIX doesn't require
3551 either assumption.
3552
3553 2012-09-22 Chong Yidong <cyd@gnu.org>
3554
3555 * buffer.c (Fset_buffer_modified_p): Handle indirect buffers
3556 (Bug#8207).
3557
3558 2012-09-22 Kenichi Handa <handa@gnu.org>
3559
3560 * composite.c (composition_reseat_it): Handle the case that a
3561 grapheme cluster is not covered by a single font (Bug#12352).
3562
3563 2012-09-21 Chong Yidong <cyd@gnu.org>
3564
3565 * image.c (define_image_type): Avoid adding duplicate types to
3566 image_types (Bug#12463). Suggested by Jörg Walter.
3567
3568 2012-09-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3569
3570 * unexmacosx.c: Define LC_DATA_IN_CODE if not defined.
3571 (print_load_command_name): Add case LC_DATA_IN_CODE.
3572 (dump_it) [LC_DATA_IN_CODE]: Call copy_linkedit_data.
3573
3574 2012-09-21 Glenn Morris <rgm@gnu.org>
3575
3576 * eval.c (Frun_hook_with_args_until_success)
3577 (Frun_hook_with_args_until_failure): Doc fixes. (Bug#12393)
3578
3579 2012-09-21 Andreas Schwab <schwab@linux-m68k.org>
3580
3581 * fileio.c (Ffile_selinux_context): Only call freecon when
3582 lgetfilecon succeeded.
3583 (Fset_file_selinux_context): Likewise. (Bug#12444)
3584
3585 2012-09-21 Eli Zaretskii <eliz@gnu.org>
3586
3587 * xdisp.c (try_window_reusing_current_matrix): Under bidi
3588 reordering, locate the cursor by calling set_cursor_from_row; if
3589 that fails, clear the desired glyph matrix before returning a
3590 failure indication to the caller. Fixes leaving garbled display
3591 when fast scrolling with a down-key. (Bug#12403)
3592 (compute_stop_pos_backwards): Fix a typo that caused crashes while
3593 scrolling through multibyte text.
3594
3595 2012-09-20 Stefan Monnier <monnier@iro.umontreal.ca>
3596
3597 * alloc.c (mark_object) <PVEC_WINDOW>: Mark prev/next_buffers *after*
3598 calling mark_vectorlike since that's the one that marks the window.
3599 (mark_discard_killed_buffers): Mark the final cdr.
3600 * window.h (struct window): Move prev/next_buffers to the
3601 non-standard fields.
3602 * window.c (make_window): Initialize prev/next_buffers manually.
3603
3604 2012-09-20 Paul Eggert <eggert@cs.ucla.edu>
3605
3606 Omit unused arg EXPECTED from socket hooks.
3607 * keyboard.c (gobble_input, read_avail_input, tty_read_avail_input):
3608 * nsterm.m (ns_term_init):
3609 * termhooks.h (struct terminal.read_socket_hook):
3610 * w32inevt.c (w32_console_read_socket):
3611 * w32term.c (w32_read_socket):
3612 * xterm.c (XTread_socket):
3613 Omit unused arg EXPECTED. All callers changed.
3614 (store_user_signal_events): Return void, not int, since callers no
3615 longer care about the return value. All uses changed.
3616
3617 2012-09-20 Juanma Barranquero <lekktu@gmail.com>
3618
3619 * w32gui.h (XParseGeometry): Do not declare.
3620
3621 2012-09-19 Paul Eggert <eggert@cs.ucla.edu>
3622
3623 * w32inevt.c (w32_console_read_socket): Return -1 on failure, not 0.
3624 Ignore 'expected'. See Eli Zaretskii in
3625 <http://bugs.gnu.org/12471#8> (last line).
3626
3627 * frame.c (read_integer): Remove. All uses replaced by strtol/strtoul.
3628 (XParseGeometry): Now static. Substitute extremal values for
3629 values that are out of range.
3630
3631 2012-09-19 Jan Djärv <jan.h.d@swipnet.se>
3632
3633 * w32xfns.c (read_integer, XParseGeometry): Move to frame.c.
3634
3635 * nsfns.m (XParseGeometry): Remove.
3636 (Fx_create_frame): Call x_set_offset to correctly interpret
3637 top_pos in geometry.
3638
3639 * frame.c (read_integer, XParseGeometry): Move from w32xfns.c.
3640 (Fx_parse_geometry): If there is a space in string, call
3641 Qns_parse_geometry, otherwise do as on other terms (Bug#12368).
3642
3643 2012-09-17 Eli Zaretskii <eliz@gnu.org>
3644
3645 * search.c (scan_buffer): Use character positions in calls to
3646 region_cache_forward and region_cache_backward, not byte
3647 positions. (Bug#12196)
3648
3649 * w32term.c (w32_read_socket): Set pending_signals to 1, like
3650 xterm.c does. Reported by Daniel Colascione <dancol@dancol.org>.
3651
3652 * ralloc.c (r_alloc_init) [!SYSTEM_MALLOC]: Initialize
3653 __malloc_extra_blocks to 32 instead of 64, like alloc.c did in
3654 emacs_blocked_malloc, now deleted.
3655
3656 2012-09-17 Paul Eggert <eggert@cs.ucla.edu>
3657
3658 Remove no-longer-needed Solaris 2.4 vfork bug workaround.
3659 The workaround was for improving performance on Solaris 2.4, but
3660 is getting in the way now. Emacs will still work if someone is
3661 still running Solaris 2.4 in a museum somewhere; Sun dropped
3662 support for Solaris 2.4 in 2003.
3663 * callproc.c (Fcall_process) [HAVE_WORKING_VFORK]:
3664 * process.c (create_process) [HAVE_WORKING_VFORK]:
3665 Omit now-unnecessary workaround for the Solaris 2.4 vfork bug,
3666 since Emacs no longer uses vfork on that platform.
3667
3668 2012-09-17 Glenn Morris <rgm@gnu.org>
3669
3670 * emacs.c: Use COPYRIGHT.
3671
3672 2012-09-16 Paul Eggert <eggert@cs.ucla.edu>
3673
3674 Remove configure's --without-sync-input option (Bug#12450).
3675 When auditing signal-handling in preparation for cleaning it up,
3676 I found that SYNC_INPUT has race conditions and would be a real
3677 pain to fix. Since it's an undocumented and deprecated
3678 configure-time option, now seems like a good time to remove it.
3679 Also see <http://bugs.gnu.org/11080#16>.
3680 * alloc.c (_bytes_used, __malloc_extra_blocks, _malloc_internal)
3681 (_free_internal) [!DOUG_LEA_MALLOC]: Remove decls.
3682 (alloc_mutex) [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
3683 (malloc_hysteresis):
3684 (check_depth) [XMALLOC_OVERRUN_CHECK]:
3685 (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT):
3686 (__malloc_hook, __realloc_hook, __free_hook, BYTES_USED)
3687 (dont_register_blocks, bytes_used_when_reconsidered)
3688 (bytes_used_when_full, emacs_blocked_free, emacs_blocked_malloc)
3689 (emacs_blocked_realloc, reset_malloc_hooks, uninterrupt_malloc):
3690 [!SYSTEM_MALLOC && !SYNC_INPUT]:
3691 Remove. All uses removed.
3692 (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): Use a different
3693 implementation, one that depends on whether the new macro
3694 XMALLOC_BLOCK_INPUT_CHECK is defined, not on whether SYNC_INPUT
3695 is defined.
3696 * atimer.c (run_timers, handle_alarm_signal):
3697 * keyboard.c (pending_signal, poll_for_input_1, poll_for_input)
3698 (handle_async_input, process_pending_signals)
3699 (handle_input_available_signal, init_keyboard):
3700 * nsterm.m (ns_read_socket):
3701 * process.c (wait_reading_process_output):
3702 * regex.c (immediate_quit, IMMEDIATE_QUIT_CHECK):
3703 * sysdep.c (emacs_sigaction_init) [SA_RESTART]:
3704 (emacs_write):
3705 * xterm.c (XTread_socket):
3706 Assume SYNC_INPUT.
3707 * conf_post.h (SA_RESTART) [IRIX6_5]: Do not #undef.
3708 * eval.c (handling_signal): Remove. All uses removed.
3709 * lisp.h (ELSE_PENDING_SIGNALS): Remove.
3710 All uses replaced with the SYNC_INPUT version.
3711 (reset_malloc_hooks, uninterrupt_malloc, handling_signal):
3712 Remove decls.
3713 * sysdep.c, syssignal.h (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
3714 Now static.
3715
3716 * font.c (Ffont_shape_gstring): Remove unused local.
3717
3718 2012-09-16 Glenn Morris <rgm@gnu.org>
3719
3720 * Makefile.in (clean): No longer run nextstep's clean.
3721
3722 * Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Remove variables.
3723 (ns_frag): Remove.
3724 (ns-app): Move here from ns.mk, and simplify.
3725 (clean): Simplify nextstep entry.
3726 * ns.mk: Remove file.
3727
3728 2012-09-17 Kenichi Handa <handa@gnu.org>
3729
3730 * font.c (Ffont_shape_gstring): Fix previous change; GLYPHs may
3731 not covert the last few charactes.
3732
3733 2012-09-16 Kenichi Handa <handa@gnu.org>
3734
3735 * font.c (Ffont_shape_gstring): Don't adjust grapheme cluster
3736 here, but just check the validity of glyphs in the glyph-string.
3737
3738 2012-09-16 Martin Rudalics <rudalics@gmx.at>
3739
3740 * window.c (Fwindow_parameter, Fset_window_parameter):
3741 Accept any window as argument (Bug#12452).
3742
3743 2012-09-16 Jan Djärv <jan.h.d@swipnet.se>
3744
3745 * nsfns.m (Fx_open_connection): Move initialization of ns_*_types
3746 to ns_term_init to avoid memory leak.
3747
3748 * nsterm.m (ns_update_begin): Initialize bp after lcokFocus, use
3749 explicit retain/release.
3750 (ns_term_init): Only allow one display. Initialize outerpool and
3751 ns_*_types.
3752
3753 2012-09-15 Paul Eggert <eggert@cs.ucla.edu>
3754
3755 Port _setjmp fix to POSIXish hosts as well as Microsoft.
3756 * image.c (_setjmp) [!HAVE__SETJMP]: Restore definition, as
3757 it's needed on POSIXish hosts that lack _setjmp. Attempt to solve
3758 the Microsoft problem in a different way, by altering ../nt/config.nt.
3759
3760 2012-09-15 Eli Zaretskii <eliz@gnu.org>
3761
3762 * w32xfns.c:
3763 * w32uniscribe.c:
3764 * w32term.c:
3765 * w32select.c:
3766 * w32reg.c:
3767 * w32proc.c:
3768 * w32menu.c:
3769 * w32inevt.c:
3770 * w32heap.c:
3771 * w32font.c:
3772 * w32fns.c:
3773 * w32console.c:
3774 * w32.c:
3775 * w16select.c: Remove inclusion of setjmp.h, as it is now included
3776 by lisp.h. This completes removal of setjmp.h inclusion
3777 erroneously announced in the previous commit. (Bug#12446)
3778
3779 * lisp.h [!HAVE__SETJMP, !HAVE_SIGSETJMP]: Make the commentary
3780 more accurate.
3781
3782 * image.c (_setjmp) [!HAVE__SETJMP]: Define only if 'setjmp' is
3783 not defined as a macro. The latter happens on MS-Windows.
3784 (Bug#12446)
3785
3786 2012-09-15 Paul Eggert <eggert@cs.ucla.edu>
3787
3788 Port better to POSIX hosts lacking _setjmp (Bug#12446).
3789 * lisp.h: Include <setjmp.h> here, since we use its symbols here.
3790 Some instances of '#include <setjmp.h>' removed, if the
3791 only reason for the instance was because "lisp.h" was included.
3792 (sys_jmp_buf, sys_setjmp, sys_longjmp): New symbols.
3793 Unless otherwise specified, replace all uses of jmp_buf, _setjmp,
3794 and _longjmp with the new symbols. Emacs already uses _setjmp if
3795 available, so this change affects only POSIXish hosts that have
3796 sigsetjmp but not _setjmp, such as some versions of Solaris and
3797 Unixware. (Also, POSIX-2008 marks _setjmp as obsolescent.)
3798 * image.c (_setjmp, _longjmp) [HAVE_PNG && !HAVE__SETJMP]: New macros.
3799 (png_load_body) [HAVE_PNG]:
3800 (PNG_LONGJMP) [HAVE_PNG && PNG_LIBPNG_VER < 10500]:
3801 (PNG_JMPBUF) [HAVE_PNG && PNG_LIBPNG_VER >= 10500]:
3802 Use _setjmp and _longjmp rather than sys_setjmp and sys_longjmp,
3803 since PNG requires jmp_buf. This is the only exception to the
3804 general rule that we now use sys_setjmp and sys_longjmp.
3805 This exception is OK since this code does not change the signal
3806 mask or longjmp out of a signal handler.
3807
3808 2012-09-14 Paul Eggert <eggert@cs.ucla.edu>
3809
3810 * alloc.c [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
3811 Include "syssignal.h", for 'main_thread'.
3812
3813 2012-09-14 Dmitry Antipov <dmantipov@yandex.ru>
3814
3815 Avoid out-of-range marker position (Bug#12426).
3816 * insdel.c (replace_range, replace_range_2):
3817 Adjust markers before overlays, as suggested by comments.
3818 (insert_1_both, insert_from_buffer_1, adjust_after_replace):
3819 Remove redundant check before calling offset_intervals.
3820
3821 2012-09-14 Martin Rudalics <rudalics@gmx.at>
3822
3823 * xdisp.c (Fformat_mode_line): Unconditionally save/restore
3824 current buffer (Bug#12387).
3825
3826 2012-09-14 Juanma Barranquero <lekktu@gmail.com>
3827
3828 * makefile.w32-in ($(BLD)/alloc.$(O)): Update dependencies.
3829
3830 2012-09-13 Paul Eggert <eggert@cs.ucla.edu>
3831
3832 Use a more backwards-compatible timer format (Bug#12430).
3833 * keyboard.c (decode_timer): Get PSECS from the 8th (origin-0)
3834 vector element, not from the 4th, since PSECS is now at the end.
3835 (Fcurrent_idle_time): Doc fix.
3836
3837 2012-09-13 Dmitry Antipov <dmantipov@yandex.ru>
3838
3839 Function to mark objects and remove killed buffers at once.
3840 * alloc.c (discard_killed_buffers): Rename to ...
3841 (mark_discard_killed buffers) ... new name. Add marking
3842 of remaining objects. Fix comment. Adjust users.
3843 (mark_object): Do not touch frame buffer lists here.
3844 * frame.c (delete_frame): Reset frame buffer lists here.
3845
3846 2012-09-13 Paul Eggert <eggert@cs.ucla.edu>
3847
3848 Better workaround for GNOME bug when --enable-gcc-warnings.
3849 * emacsgtkfixed.c (G_STATIC_ASSERT): Remove, undoing last change.
3850 Instead, disable -Wunused-local-typedefs. See Dmitry Antipov in
3851 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00335.html>.
3852
3853 Simplify SIGIO usage (Bug#12408).
3854 The code that dealt with SIGIO was crufty and confusing, e.g., it
3855 played tricks like "#undef SIGIO" but these tricks were not used
3856 consistently. Simplify mostly by not #undeffing standard symbols,
3857 e.g., use "defined USABLE_SIGIO" (our symbol, which we can define
3858 or not as we please) rather than "defined SIGIO" (standard symbol
3859 that we probably shouldn't #undef).
3860 * conf_post.h [USG5_4]: Do not include <sys/wait.h> here.
3861 Modules that need it can include it.
3862 [USG5_4 && emacs]: Likewise, do not include the streams stuff here.
3863 * dispextern.h (ignore_sigio): New decl.
3864 * emacs.c (shut_down_emacs): Invoke unrequest_sigio
3865 unconditionally, since it's now a no-op if !USABLE_SIGIO.
3866 * emacs.c (shut_down_emacs):
3867 * keyboard.c (kbd_buffer_store_event_hold):
3868 Use ignore_sigio rather than invoking 'signal' directly.
3869 * keyboard.c (USABLE_FIONREAD && USG5_4): Include <sys/filio.h>,
3870 for FIONREAD.
3871 (FIONREAD, SIGIO): Do not #undef.
3872 (tty_read_avail_input): Use #error rather than a syntax error.
3873 * process.c [USG5_4]: Include <sys/stream.h> and <sys/stropts.h>,
3874 for I_PIPE, used by SETUP_SLAVE_PTY.
3875 (DATAGRAM_SOCKETS): Simplify defn, based on USABLE_FIONREAD.
3876 * sysdep.c (croak): Remove; no longer needed. This bit of
3877 temporary code, with Fred N. Fish's comment that it's temporary,
3878 has been in Emacs since at least 1992!
3879 (init_sigio, reset_sigio, request_sigio, unrequest_sigio):
3880 Arrange for them to be no-ops in all cases when ! USABLE_SIGIO.
3881 * syssignal.h (croak): Remove decl.
3882 (SIGIO, SIGPOO, SIGAIO, SIGPTY): Do not #undef; that's too fragile.
3883 * systty.h [!NO_TERMIO]: Do not include <termio.h>; no longer needed
3884 now that we're termios-only.
3885 (FIONREAD, ASYNC) [BROKEN_FIONREAD]: Do not #undef.
3886 * term.c (dissociate_if_controlling_tty): Use #error rather than
3887 a run-time error.
3888
3889 Work around GCC and GNOME bugs when --enable-gcc-warnings.
3890 * emacsgtkfixed.c (G_STATIC_ASSERT): Redefine to use 'verify',
3891 to work around GNOME bug 683906.
3892 * image.c (jpeg_load_body) [HAVE_JPEG && lint]: Pacify gcc -Wclobber.
3893 (struct my_jpeg_error_mgr) [HAVE_JPEG && lint]: New member fp.
3894 This works around GCC bug 54561.
3895
3896 2012-09-12 Paul Eggert <eggert@cs.ucla.edu>
3897
3898 More fixes for 'volatile' and setjmp/longjmp.
3899 * eval.c (Fdefvar, Fcondition_case): Remove unnecessary 'volatile's.
3900 * image.c (struct png_load_context) [HAVE_PNG]: New type.
3901 (png_load_body) [HAVE_PNG]:
3902 (jpeg_load_body) [HAVE_JPEG]:
3903 New function, with most of the old parent function's body.
3904 (png_load) [HAVE_PNG]:
3905 (jpeg_load) [HAVE_JPEG]:
3906 Invoke the new function, to avoid longjmp munging our locals.
3907 (struct my_jpeg_error_mgr) [HAVE_JPEG]: New members cinfo, failure_code.
3908 (my_error_exit) [HAVE_JPEG]: Don't trust 'setjmp' to return 2 when
3909 longjmp is passed 2, as the C standard doesn't guarantee this.
3910 Instead, store the failure code into mgr->failure_code.
3911
3912 2012-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
3913
3914 * keyboard.c (read_char, requeued_events_pending_p, Finput_pending_p)
3915 (Fdiscard_input, quit_throw_to_read_char, init_keyboard)
3916 (syms_of_keyboard): Remove support for unread-command-char.
3917
3918 2012-09-12 Eli Zaretskii <eliz@gnu.org>
3919
3920 * w32proc.c (sys_kill): If PID is our process ID and the signal is
3921 SIGABRT, call emacs_abort. Avoids silently exiting upon assertion
3922 violation. (Bug#12426)
3923
3924 2012-09-12 Paul Eggert <eggert@cs.ucla.edu>
3925
3926 * image.c (jpeg_memory_src): Don't assume string len fits in unsigned.
3927
3928 2012-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
3929
3930 * eval.c: Add `inhibit-debugger'.
3931 (Qinhibit_debugger): New symbol.
3932 (call_debugger): Bind it instead of Qdebug_on_error.
3933 (maybe_call_debugger): Test Vinhibit_debugger.
3934 (syms_of_eval): Define inhibit-debugger.
3935 * xdisp.c (set_message): Don't bind Qinhibit_debug_on_message.
3936 (syms_of_xdisp): Remove inhibit-debug-on-message.
3937
3938 2012-09-11 Paul Eggert <eggert@cs.ucla.edu>
3939
3940 Avoid _setjmp/_longjmp problems with local nonvolatile variables.
3941 If a nonvolatile local variable is written before a _longjmp to
3942 the frame containing the variable, and is read after the _longjmp,
3943 the value read is indeterminate. Some local variables of type
3944 'struct handler' and 'struct catchtag' are used in this way, so
3945 mark each of their slots as volatile if the slot can be set before
3946 _longjmp and read afterwards.
3947 * lisp.h (struct handler): var and chosen_clause are now volatile.
3948 (struct catchtag): val, next, and pdlcount are now volatile.
3949
3950 * bidi.c (bidi_push_it, bidi_pop_it):
3951 * fns.c (copy_hash_table):
3952 * image.c (define_image_type):
3953 * keyboard.c (kbd_buffer_store_event_hold):
3954 * process.c (Fprocess_send_eof):
3955 * xfaces.c (x_create_gc) [HAVE_NS]:
3956 * xgselect.c (xg_select):
3957 Prefer assignment to memcpy when either will do.
3958
3959 * alloc.c (discard_killed_buffers): Tune and simplify a bit.
3960 Use pointer-to-a-pointer to simplify and avoid a NILP check each
3961 time an item is removed. No need to mark this function 'inline';
3962 the compiler knows better than we do.
3963
3964 2012-09-11 Jan Djärv <jan.h.d@swipnet.se>
3965
3966 * nsterm.m (ns_judge_scroll_bars): Pass NO to updateFrameSize.
3967 (updateFrameSize:): Add delay parameter to updateFrameSize, send it
3968 to change_frame_size (Bug#12388).
3969 (windowDidResize:): Pass YES to updateFrameSize.
3970
3971 * nsterm.h: Add delay parameter to updateFrameSize.
3972
3973 2012-09-11 Dmitry Antipov <dmantipov@yandex.ru>
3974
3975 Discard killed buffers from deleted window and frame objects.
3976 This reduces an amount of references to killed buffers and
3977 helps GC to reclaim them faster.
3978 * alloc.c (discard_killed_buffers): New function.
3979 (mark_object): Use it for deleted windows and frames.
3980 (mark_object): If symbol's value is set up for a killed buffer
3981 or deleted frame, restore its global binding.
3982 * data.c (swap_in_global_binding): Add GC notice.
3983 (swap_in_symval_forwarding): Use convenient set_blv_where.
3984 * window.c (wset_next_buffers, wset_prev_buffers): Move ...
3985 * window.h: ... to here.
3986
3987 2012-09-11 Dmitry Antipov <dmantipov@yandex.ru>
3988
3989 Convenient macro to check whether the buffer is live.
3990 * buffer.h (BUFFER_LIVE_P): New macro.
3991 * alloc.c, buffer.c, editfns.c, insdel.c, lread.c, marker.c:
3992 * minibuf.c, print.c, process.c, window.c, xdisp.c: Use it.
3993
3994 2012-09-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3995
3996 * xdisp.c (right_overwritten, right_overwriting): Also handle gstring
3997 composition cases (Bug#12364).
3998
3999 * xterm.c (x_draw_glyph_string): Avoid overwriting inverted left
4000 overhang of succeeding glyphs overlapping box cursor.
4001
4002 * w32term.c (x_draw_glyph_string): Likewise.
4003
4004 2012-09-11 Paul Eggert <eggert@cs.ucla.edu>
4005
4006 Simplify, document, and port floating-point (Bug#12381).
4007 The porting part of this patch fixes bugs on non-IEEE platforms
4008 with frexp, ldexp, logb.
4009 * data.c, lisp.h (Qdomain_error, Qsingularity_error, Qunderflow_error):
4010 Now static.
4011 * floatfns.c: Simplify discussion of functions that Emacs doesn't
4012 support, by removing commented-out code and briefly listing the
4013 C89 functions excluded. The commented-out stuff was confusing
4014 maintenance, e.g., we thought we needed cbrt but it was commented out.
4015 (logb): Remove decl; no longer needed.
4016 (isfinite): New macro, if not already supplied.
4017 (isnan): Don't replace any existing macro.
4018 (Ffrexp, Fldexp): Define even if !HAVE_COPYSIGN, as frexp and ldexp
4019 are present on all C89 platforms.
4020 (Ffrexp): Do not special-case zero, as frexp does the right thing
4021 for that case.
4022 (Flogb): Do not use logb, as it doesn't have the desired meaning
4023 on hosts that use non-base-2 floating point. Instead, stick with
4024 frexp, which is C89 anyway. Do not pass an infinity or a NaN to
4025 frexp, to avoid getting an unspecified result.
4026
4027 * xdisp.c (Qinhibit_debug_on_message): Now static.
4028
4029 2012-09-10 Jan Djärv <jan.h.d@swipnet.se>
4030
4031 * nsterm.m (ns_update_begin): Set clip path to whole view by using
4032 NSBezierPath (Bug#12131).
4033
4034 2012-09-10 Chong Yidong <cyd@gnu.org>
4035
4036 * fns.c (Fdelq, Fdelete): Doc fix.
4037
4038 2012-09-10 Paul Eggert <eggert@cs.ucla.edu>
4039
4040 * lisp.h (XSETINT, XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL)
4041 (XSETFLOAT, XSETMISC): Parenthesize macro bodies.
4042
4043 2012-09-09 Stefan Monnier <monnier@iro.umontreal.ca>
4044
4045 * lisp.h (make_lisp_ptr): New macro to replace XSET.
4046 (XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL, XSETFLOAT, XSETMISC):
4047 Use it.
4048
4049 2012-09-09 Eli Zaretskii <eliz@gnu.org>
4050
4051 * fringe.c (draw_fringe_bitmap_1): Don't reduce the width of the
4052 left fringe if the window has a left margin. This avoids leaving
4053 traces of the cursor because its leftmost pixel is not drawn over.
4054
4055 * dispnew.c (update_window_line): When the left margin area of a
4056 screen line is updated, set the redraw_fringe_bitmaps_p flag of
4057 that screen line. (Bug#12277)
4058
4059 2012-09-09 Paul Eggert <eggert@cs.ucla.edu>
4060
4061 Assume C89 or later for math functions (Bug#12381).
4062 This simplifies the code, and makes it a bit smaller and faster,
4063 and (most important) makes it easier to clean up signal handling
4064 since we can stop worring about floating-point exceptions in
4065 library code. That was a problem before C89, but the problem
4066 went away many years ago on all practical Emacs targets.
4067 * data.c, image.c, lread.c, print.c:
4068 Don't include <math.h>; no longer needed.
4069 * data.c, floatfns.c (IEEE_FLOATING_POINT): Don't worry that it
4070 might be autoconfigured, as that never happens.
4071 * data.c (fmod):
4072 * doprnt.c (DBL_MAX_10_EXP):
4073 * print.c (DBL_DIG):
4074 Remove. C89 or later always defines these.
4075 * floatfns.c (HAVE_MATHERR, FLOAT_CHECK_ERRNO, FLOAT_CHECK_DOMAIN)
4076 (in_float, float_error_arg, float_error_arg2, float_error_fn_name)
4077 (arith_error, domain_error, domain_error2):
4078 Remove all this pre-C89 cruft. Do not include <errno.h> as that's
4079 no longer needed -- we simply return what C returns. All uses removed.
4080 (IN_FLOAT, IN_FLOAT2): Remove. All uses replaced with
4081 the wrapped code.
4082 (FLOAT_TO_INT, FLOAT_TO_INT2, range_error, range_error2):
4083 Remove. All uses expanded, as these macros are no longer used
4084 more than once and are now more trouble than they're worth.
4085 (Ftan): Use tan, not sin / cos.
4086 (Flogb): Assume C89 frexp.
4087 (fmod_float): Assume C89 fmod.
4088 (matherr) [HAVE_MATHERR]: Remove; no longer needed.
4089 (init_floatfns): Remove. All uses removed.
4090
4091 2012-09-08 Jan Djärv <jan.h.d@swipnet.se>
4092
4093 * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Take back
4094 compositeToPoint for OSX < 10.6 (Bug#12390).
4095
4096 2012-09-08 Paul Eggert <eggert@cs.ucla.edu>
4097
4098 * floatfns.c (Ftan): Use tan (x), not (sin (x) / cos (x)).
4099 This produces more-accurate results.
4100
4101 2012-09-08 Jan Djärv <jan.h.d@swipnet.se>
4102
4103 * nsterm.m (updateFrameSize): Call setFrame: on the view when size
4104 changes (Bug#12088).
4105
4106 2012-09-08 Chong Yidong <cyd@gnu.org>
4107
4108 * syntax.c (Fstring_to_syntax): Doc fix.
4109
4110 2012-09-08 Jan Djärv <jan.h.d@swipnet.se>
4111
4112 * nsterm.m (ns_clip_to_row): Remove code that deals with drawing fringe
4113 in the internal border.
4114 (x_set_window_size): Remove static variables and their usage.
4115 (ns_redraw_scroll_bars): Fix NSTRACE arg.
4116 (ns_after_update_window_line, ns_draw_fringe_bitmap):
4117 Remove fringe/internal border adjustment (Bug#11052).
4118 (ns_draw_fringe_bitmap): Make code more like other terms (xterm.c).
4119 (ns_draw_window_cursor): Remove fringe/internal border adjustment.
4120 (ns_fix_rect_ibw): Remove.
4121 (ns_get_glyph_string_clip_rect): Remove call to ns_fix_rect_ibw.
4122 (ns_dumpglyphs_box_or_relief): Ditto.
4123 (ns_maybe_dumpglyphs_background): Remove fringe/internal border
4124 adjustment.
4125 (ns_dumpglyphs_image): Ditto.
4126 (ns_dumpglyphs_stretch): Fix coding style. Remove fringe/internal
4127 border adjustment.
4128 (ns_set_vertical_scroll_bar): Remove variables barOnVeryLeft/Right and
4129 their usage. Add fringe_extended_p and its use as in other terms.
4130 (ns_judge_scroll_bars): Code style fix. Call updateFrameSize if
4131 scroll bar was removed.
4132 (updateFrameSize): New function.
4133 (windowDidResize): Move code to updateFrameSize and call it.
4134
4135 * nsterm.h (EmacsView): Add updateFrameSize.
4136
4137 2012-09-07 Chong Yidong <cyd@gnu.org>
4138
4139 * textprop.c (Fget_text_property): Minor doc fix (Bug#12323).
4140
4141 * data.c (Flocal_variable_if_set_p): Doc fix (Bug#10713).
4142
4143 2012-09-07 Paul Eggert <eggert@cs.ucla.edu>
4144
4145 More signal-handler cleanup (Bug#12327).
4146 * emacs.c (main): Convert three 'signal' calls to 'sigaction' calls.
4147 Problem introduced when merging patches. Noted by Eli Zaretskii in
4148 <http://bugs.gnu.org/12327#67>.
4149 * floatfns.c: Comment fix.
4150 * lisp.h (force_auto_save_soon): Declare regardless of SIGDANGER.
4151 SIGDANGER might not be in scope so "#ifdef SIGDANGER" is not right,
4152 and anyway the declaration is harmless even if SIGDANGER is not defined.
4153 * syssignal.h (SIGIO): Also #undef if (! defined FIONREAD ||
4154 defined BROKEN_FIONREAD). systty.h formerly did this, but other
4155 source files not surprisingly expected syssignal.h to define, or
4156 not define, SIGIO, and it's cleaner to do it that way, for consistency.
4157 Include <sys/ioctl.h>, for FIONREAD.
4158 * systty.h (SIGIO): Do not #undef here; it's now syssignal.h's job.
4159 This eliminates a problem whereby other files mysteriously had
4160 to include "syssignal.h" before including "systty.h" if they
4161 wanted to use "#ifdef SIGIO".
4162
4163 2012-09-07 Eli Zaretskii <eliz@gnu.org>
4164
4165 * w32proc.c (sigaction): New function, emulates Posix 'sigaction'.
4166
4167 * w32.c (sigemptyset): Empty the set.
4168 (sigsetmask, sigmask, sigblock, sigunblock): Remove unused functions.
4169
4170 * alloc.c [ENABLE_CHECKING]: Include signal.h, since we need SIGABRT.
4171
4172 2012-09-07 Dmitry Antipov <dmantipov@yandex.ru>
4173
4174 * alloc.c (mark_buffer): Revert unsafe marking optimization.
4175 (mark_object): Likewise for frame objects.
4176
4177 2012-09-07 Paul Eggert <eggert@cs.ucla.edu>
4178
4179 * syssignal.h (handle_on_main_thread): Always declare,
4180 even if FORWARD_SIGNAL_TO_MAIN_THREAD is not defined.
4181 This ports to platforms without HAVE_PTHREAD.
4182
4183 2012-09-06 Paul Eggert <eggert@cs.ucla.edu>
4184
4185 Signal-handler cleanup (Bug#12327).
4186 Emacs's signal handlers were written in the old 4.2BSD style with
4187 sigblock and sigmask and so forth, and this led to some
4188 inefficiencies and confusion. Rewrite these to use
4189 pthread_sigmask etc. without copying signal sets around. Also,
4190 get rid of the confusing macros 'SIGNAL_THREAD_CHECK' and
4191 'signal', and instead use functions that do not attempt to take
4192 over the system name space. This patch causes Emacs's text
4193 segment to shrink by 0.7% on my platform, Fedora 17 x86-64.
4194 * alloc.c, emacsgtkfixed.c, nsfns.m, widget.c, xmenu.c:
4195 Do not include <signal.h> or "syssignal.h", as these
4196 modules do not use signals.
4197 * atimer.c, callproc.c, data.c, dispnew.c, emacs.c, floatfns.c:
4198 * gtkutil.c, keyboard.c, process.c, sound.c, sysdep.c, term.c, xterm.c:
4199 Do not include <signal.h>, as "syssignal.h" does that for us now.
4200 * atimer.c (sigmask_atimers): New function.
4201 (block_atimers, unblock_atimers): New functions,
4202 replacing the old macros BLOCK_ATIMERS and UNBLOCK_ATIMERS.
4203 All uses replaced.
4204 * conf_post.h [SIGNAL_H_AHB]: Do not include <signal.h>;
4205 no longer needed here.
4206 * emacs.c (main): Inspect existing signal handler with sigaction,
4207 so that there's no need to block and unblock SIGHUP.
4208 * sysdep.c (struct save_signal): New member 'action', replacing
4209 old member 'handler'.
4210 (save_signal_handlers, restore_signal_handlers):
4211 Use sigaction instead of 'signal' to save and restore.
4212 (get_set_sighandler, set_sighandler) [!WINDOWSNT]:
4213 New function. All users of 'signal' modified to use set_sighandler
4214 if they're writeonly, and to use sys_signal if they're read+write.
4215 (emacs_sigaction_init, forwarded_signal): New functions.
4216 (sys_signal): Remove. All uses replaced by calls to sigaction
4217 and emacs_sigaction_init, or by direct calls to 'signal'.
4218 (sys_sigmask) [!__GNUC__]: Remove; no longer needed.
4219 (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove;
4220 all uses replaced by pthread_sigmask etc. calls.
4221 * syssignal.h: Include <signal.h>.
4222 (emacs_sigaction_init, forwarded_signal): New decls.
4223 (SIGMASKTYPE): Remove. All uses replaced by its definiens, sigset_t.
4224 (SIGEMPTYMASK): Remove; all uses replaced by its definiens, empty_mask.
4225 (sigmask, sys_sigmask): Remove; no longer needed.
4226 (sigpause): Remove. All uses replaced by its definiens, sigsuspend.
4227 (sigblock, sigunblock, sigfree):
4228 (sigsetmask) [!defined sigsetmask]:
4229 Remove. All uses replaced by pthread_sigmask.
4230 (signal): Remove. Its remaining uses (with SIG_DFL and SIG_IGN)
4231 no longer need to be replaced, and its typical old uses
4232 are now done via emacs_sigaction_init and sigaction.
4233 (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove decls.
4234 (sys_sigdel): Remove; unused.
4235 (NSIG): Remove a FIXME; the code's fine. Remove an unnecessary ifdef.
4236
4237 2012-09-06 Eli Zaretskii <eliz@gnu.org>
4238
4239 * process.c (CAN_HANDLE_MULTIPLE_CHILDREN): Fix a typo that broke
4240 SIGCHLD handling on systems that don't have WNOHANG. (Bug#12327)
4241
4242 2012-09-06 Dmitry Antipov <dmantipov@yandex.ru>
4243
4244 Explicitly mark buffer_defaults and buffer_local_symbols.
4245 * alloc.c (Fgarbage_collect): Mark buffer_defaults and
4246 mark_local_symbols here.
4247 (mark_object): If GC_CHECK_MARKED_OBJECTS, simplify checking
4248 since special buffers aren't marked here any more.
4249 (allocate_buffer): Chain new buffer with all_buffers here...
4250 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): ...and
4251 not here.
4252 (Vbuffer_defaults, Vbuffer_local_symbols): Remove.
4253 (syms_of_buffer): Remove staticpro of the above.
4254 (init_buffer_once): Set names for buffer_defaults and
4255 buffer_local_symbols.
4256
4257 2012-09-06 Paul Eggert <eggert@cs.ucla.edu>
4258
4259 Use bool for booleans in font-related modules.
4260 * font.c (font_intern_prop, font_style_to_value)
4261 (font_style_symbolic, font_parse_xlfd, font_parse_fcname)
4262 (generate_otf_features, font_check_otf_features, font_check_otf)
4263 (font_match_p, font_list_entities, font_at):
4264 * fontset.c (fontset_id_valid_p, reorder_font_vector
4265 (fontset_find_font, Fset_fontset_font)
4266 (face_suitable_for_char_p) [0]:
4267 * ftfont.c (fc_initialized, ftfont_get_open_type_spec)
4268 (ftfont_open, ftfont_text_extents, ftfont_check_otf):
4269 (m17n_flt_initialized, ftfont_shape_by_flt):
4270 * ftxfont.c (ftxfont_draw_bitmap, ftxfont_draw):
4271 * nsfont.m (nsfont_draw):
4272 * w32font.c (w32font_draw):
4273 * w32term.c (x_draw_glyphless_glyph_string_foreground):
4274 Use bool for booleans.
4275 * font.h: Adjust to above API changes.
4276 (struct font, struct font_driver, struct font_driver_list):
4277 Use bool for booleans.
4278 (struct font): Remove useless member encoding_type.
4279 All users removed.
4280 * fontset.c, xftfont.c: Omit unnecessary static decls.
4281
4282 2012-09-06 Dmitry Antipov <dmantipov@yandex.ru>
4283
4284 * alloc.c (mark_object): Revert window marking code
4285 since it's unsafe for the Fset_window_configuration.
4286
4287 2012-09-05 Paul Eggert <eggert@cs.ucla.edu>
4288
4289 Fix race conditions with signal handlers and errno (Bug#12327).
4290 Be more systematic about preserving errno whenever a signal
4291 handler returns, even if it's not in the main thread. Do this by
4292 renaming signal handlers to distinguish between signal delivery
4293 and signal handling. All uses changed.
4294 * atimer.c (deliver_alarm_signal): Rename from alarm_signal_handler.
4295 * data.c (deliver_arith_signal): Rename from arith_error.
4296 * dispnew.c (deliver_window_change_signal): Rename from
4297 window_change_signal.
4298 * emacs.c (deliver_error_signal): Rename from fatal_error_signal.
4299 (deliver_danger_signal) [SIGDANGER]: Rename from memory_warning_signal.
4300 * keyboard.c (deliver_input_available_signal): Rename from
4301 input_available_signal.
4302 (deliver_user_signal): Rename from handle_user_signal.
4303 (deliver_interrupt_signal): Rename from interrupt_signal.
4304 * process.c (deliver_pipe_signal): Rename from send_process_trap.
4305 (deliver_child_signal): Rename from sigchld_handler.
4306 * atimer.c (handle_alarm_signal):
4307 * data.c (handle_arith_signal):
4308 * dispnew.c (handle_window_change_signal):
4309 * emacs.c (handle_fatal_signal, handle_danger_signal):
4310 * keyboard.c (handle_input_available_signal):
4311 * keyboard.c (handle_user_signal, handle_interrupt_signal):
4312 * process.c (handle_pipe_signal, handle_child_signal):
4313 New functions, with the actual signal-handling code taken from the
4314 original respective signal handlers, sans the sporadic attempts to
4315 preserve errno, since that's now done by handle_on_main_thread.
4316 * atimer.c (alarm_signal_handler): Remove unnecessary decl.
4317 * emacs.c, floatfns.c, lisp.h: Remove unused FLOAT_CATCH_SIGKILL cruft.
4318 * emacs.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
4319 Move to sysdep.c.
4320 (main) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
4321 Move initialization of main_thread to sysdep.c's init_signals.
4322 * process.c (waitpid) [!WNOHANG]: #define to wait; that's good enough for
4323 our usage, and simplifies the mainline code.
4324 (record_child_status_change): New static function, as a helper
4325 for handle_child_signal, and with most of the old child handler's
4326 contents.
4327 (CAN_HANDLE_MULTIPLE_CHILDREN): New constant.
4328 (handle_child_signal): Use the above.
4329 * sysdep.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
4330 Moved here from emacs.c.
4331 (init_signals) [FORWARD_SIGNAL_TO_MAIN_THREAD]: Initialize it;
4332 code moved here from emacs.c's main function.
4333 * sysdep.c, syssignal.h (handle_on_main_thread): New function,
4334 replacing the old SIGNAL_THREAD_CHECK. All uses changed.
4335 This lets callers save and restore errno properly.
4336
4337 2012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
4338
4339 Remove redundant or unused things here and there.
4340 * lisp.h (CYCLE_CHECK, CHAR_TABLE_TRANSLATE): Remove.
4341 * conf_post.h (RE_TRANSLATE): Use char_table_translate.
4342 * editfns.c (Fcompare_buffer_substrings): Likewise.
4343 * frame.h (struct terminal, struct font_driver_list):
4344 Remove redundant declarations.
4345 * window.h (Qleft, Qright): Likewise.
4346
4347 2012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
4348
4349 Do not mark objects from deleted buffers, windows and frames.
4350 * alloc.c (mark_buffer): Mark just the buffer if it is dead.
4351 (mark_object): Likewise for windows and frames.
4352
4353 2012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
4354
4355 * alloc.c (valid_lisp_object_p): Treat killed buffers,
4356 buffer_defaults and buffer_local_symbols as valid objects.
4357 Return special value to denote them.
4358
4359 2012-09-05 Paul Eggert <eggert@cs.ucla.edu>
4360
4361 * fileio.c, filelock.c, floatfns.c, fns.c: Use bool for boolean.
4362 * fileio.c (auto_saving, auto_save_error_occurred, make_temp_name)
4363 (Fexpand_file_name, barf_or_query_if_file_exists, Fcopy_file)
4364 (file_name_absolute_p, Fsubstitute_in_file_name):
4365 (check_executable, check_writable, Ffile_accessible_directory_p)
4366 (Fset_file_selinux_context, Fdefault_file_modes)
4367 (Finsert_file_contents, choose_write_coding_system)
4368 (Fwrite_region, build_annotations, a_write, e_write)
4369 (Fdo_auto_save):
4370 * filelock.c (boot_time_initialized, get_boot_time)
4371 (get_boot_time_1, lock_file_1, within_one_second):
4372 * floatfns.c (in_float):
4373 * fns.c (concat, internal_equal, Frequire, base64_encode_1)
4374 (base64_decode_1, cmpfn_eql, cmpfn_user_defined)
4375 (sweep_weak_table, sweep_weak_hash_tables, secure_hash):
4376 * lisp.h (struct Lisp_Hash_Table.cmpfn):
4377 * window.c (compare_window_configurations):
4378 Use bool for booleans.
4379 * fileio.c (auto_saving_dir_umask, auto_saving_mode_bits)
4380 (Fdefault_file_modes): Now mode_t, not int, for modes.
4381 (Fdo_auto_save): Set a boolean to 1 rather than using ++.
4382 (internal_delete_file): Now returns void, not a (boolean) int,
4383 since nobody was looking at the return value.
4384 * lisp.h, window.h: Adjust to above API changes.
4385
4386 * xdisp.c (set_message): Simplify and reindent last change.
4387
4388 2012-09-05 Juanma Barranquero <lekktu@gmail.com>
4389
4390 * makefile.w32-in ($(BLD)/sysdep.$(O)): Update dependencies.
4391
4392 2012-09-04 Lars Ingebrigtsen <larsi@gnus.org>
4393
4394 * eval.c (call_debugger): Make the function non-static so that we
4395 can call it from set_message.
4396
4397 * xdisp.c (set_message): Implement the new variable `debug-on-message'.
4398 (syms_of_xdisp): Defvar it and `inhibit-debug-on-message'.
4399
4400 2012-09-04 Paul Eggert <eggert@cs.ucla.edu>
4401
4402 Give more-useful info on a fatal error (Bug#12328).
4403 * alloc.c [ENABLE_CHECKING]: Do not include <execinfo.h>.
4404 (die) [ENABLE_CHECKING]: Call fatal_error_backtrace instead
4405 of doing the work ourselves.
4406 * emacs.c (fatal_error_signal): Let fatal_error_backtrace
4407 do most of the work.
4408 (fatal_error_backtrace): New function, taken from the guts
4409 of the old fatal_error_signal, but with a new option to output
4410 a backtrace.
4411 (shut_down_emacs) [!DOS_NT]: Use strsignal to give more-useful
4412 info about the signal than just its number.
4413 * lisp.h (fatal_error_backtrace, emacs_backtrace): New decls.
4414 * sysdep.c: Include <execinfo.h>
4415 (emacs_backtrace): New function, taken partly from the previous
4416 code of the 'die' function.
4417 (emacs_abort): Call fatal_error_backtrace rather than abort.
4418
4419 2012-09-04 Stefan Monnier <monnier@iro.umontreal.ca>
4420
4421 * lread.c (readevalloop): Call internal-macroexpand-for-load to perform
4422 eager (load-time) macro-expansion.
4423 * lisp.mk (lisp): Add macroexp.
4424
4425 2012-09-04 Paul Eggert <eggert@cs.ucla.edu>
4426
4427 Simplify redefinition of 'abort' (Bug#12316).
4428 Do not try to redefine the 'abort' function. Instead, redo
4429 the code so that it calls 'emacs_abort' rather than 'abort'.
4430 This removes the need for the NO_ABORT configure-time macro
4431 and makes it easier to change the abort code to do a backtrace.
4432 * .gdbinit: Just stop at emacs_abort, not at w32_abort or abort.
4433 * emacs.c (abort) [!DOS_NT && !NO_ABORT]:
4434 Remove; sysdep.c's emacs_abort now takes its place.
4435 * lisp.h (emacs_abort): New decl. All calls from Emacs code to
4436 'abort' changed to use 'emacs_abort'.
4437 * msdos.c (dos_abort) [defined abort]: Remove; not used.
4438 (abort) [!defined abort]: Rename to ...
4439 (emacs_abort): ... new name.
4440 * sysdep.c (emacs_abort) [!HAVE_NTGUI]: New function, taking
4441 the place of the old 'abort' in emacs.c.
4442 * w32.c, w32fns.c (abort): Do not #undef.
4443 * w32.c (emacs_abort): Rename from w32_abort.
4444
4445 2012-09-04 Eli Zaretskii <eliz@gnu.org>
4446
4447 * w32uniscribe.c (uniscribe_shape): Reverse the sign of
4448 offsets[j].dv, since the y axis of the screen coordinates points
4449 down, while the y axis of the font definition coordinates points
4450 up. This fixes display of Arabic diacritics such as KASRA and
4451 KASRATAN. (Bug#11860)
4452
4453 2012-09-04 Paul Eggert <eggert@cs.ucla.edu>
4454
4455 Be more systematic about _setjmp vs setjmp.
4456 * alloc.c (test_setjmp, mark_stack):
4457 * image.c (PNG_LONGJMP) [PNG_LIBPNG_VER < 10500]:
4458 (PNG_JMPBUF) [! (PNG_LIBPNG_VER < 10500)]:
4459 (png_load, my_error_exit, jpeg_load):
4460 * process.c (send_process_trap, send_process):
4461 Uniformly prefer _setjmp and _longjmp to setjmp and longjmp.
4462 The underscored versions are up to 30x faster on some hosts.
4463 Formerly, the code used setjmp+longjmp sometimes and
4464 _setjmp+_longjmp at other times, with no particular reason to
4465 prefer setjmp+longjmp.
4466
4467 2012-09-03 Paul Eggert <eggert@cs.ucla.edu>
4468
4469 Fix minor problem found by static checking.
4470 * buffer.c (Fdelete_all_overlays): Return nil.
4471
4472 2012-09-03 Martin Rudalics <rudalics@gmx.at>
4473
4474 * buffer.c (Fdelete_all_overlays): New function.
4475
4476 2012-09-03 Chong Yidong <cyd@gnu.org>
4477
4478 * gtkutil.c: Add extern decl for Qxft.
4479
4480 2012-09-02 Paul Eggert <eggert@cs.ucla.edu>
4481
4482 * emacs.c, eval.c: Use bool for boolean.
4483 * emacs.c (initialized, inhibit_window_system, running_asynch_code):
4484 (malloc_using_checking) [DOUG_LEA_MALLOC]:
4485 (display_arg) [HAVE_X_WINDOWS || HAVE_NS]:
4486 (noninteractive, no_site_lisp, fatal_error_in_progress, argmatch)
4487 (main, decode_env_path, Fdaemon_initialized):
4488 * eval.c (call_debugger, Finteractive_p, interactive_p):
4489 (unwind_to_catch, Fsignal, wants_debugger, skip_debugger)
4490 (maybe_call_debugger, Fbacktrace):
4491 * process.c (read_process_output, exec_sentinel):
4492 Use bool for booleans.
4493 * emacs.c (shut_down_emacs): Omit unused boolean argument NO_X.
4494 All callers changed.
4495 * eval.c (interactive_p): Omit always-true boolean argument
4496 EXCLUDE_SUBRS_P. All callers changed.
4497 * dispextern.h, lisp.h: Reflect above API changes.
4498 * firstfile.c (dummy): Use the address of 'main', whose signature
4499 won't change, instead of the address of 'initialize', whose
4500 signature just changed from int to bool.
4501 * lisp.h (fatal_error_in_progress): New decl of boolean, moved here ...
4502 * msdos.c (fatal_error_in_progress): ... from here.
4503 * xdisp.c (redisplaying_p): Now a boolean. Set it to 1 instead
4504 of incrementing it.
4505 (redisplay_internal, unwind_redisplay): Simply clear
4506 REDISPLAYING_P when unwinding, instead of saving its previous,
4507 always-false value and then restoring it.
4508
4509 Clean up some extern decls.
4510 Mostly, this hoists extern decls out of .c files and into .h files.
4511 That way, we're more likely to catch errors if the interfaces change.
4512 * alloc.c [USE_GTK]: Include "gtkutil.h" so that we need not
4513 declare xg_mark_data.
4514 * dispextern.h (x_frame_parm_handlers):
4515 * font.h (Qxft):
4516 * lisp.h (Qlexical_binding, Qinternal_interpreter_environment)
4517 (Qextra_light, Qlight, Qsemi_light, Qsemi_bold, Qbold, Qextra_bold)
4518 (Qultra_bold, Qoblique, Qitalic):
4519 Move extern decl here from .c file.
4520 * alloc.c (xg_mark_data) [USE_GTK]:
4521 * doc.c (Qclosure):
4522 * eval.c (Qlexical_binding):
4523 * fns.c (time) [!HAVE_UNISTD_H]:
4524 * gtkutil.c (Qxft, Qnormal, Qextra_light, Qlight, Qsemi_light)
4525 (Qsemi_bold, Qbold, Qextra_bold, Qultra_bold, Qoblique, Qitalic):
4526 * image.c (Vlibrary_cache, QCloaded_from) [HAVE_NTGUI]:
4527 * lread.c (Qinternal_interpreter_environment):
4528 * minibuf.c (Qbuffer):
4529 * process.c (QCfamily, QCfilter):
4530 * widget.c (free_frame_faces):
4531 * xfaces.c (free_frame_menubar) [USE_X_TOOLKIT]:
4532 * xfont.c (x_clear_errors):
4533 * xterm.c (x_frame_parm_handlers):
4534 Remove now-redundant extern decls.
4535 * keyboard.c, keyboard.h (ignore_mouse_drag_p) [USE_GTK || HAVE_NS]:
4536 * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic):
4537 Now static.
4538 * xfaces.c: Remove unnecessary static decls.
4539 * xterm.c (updating_frame): Remove decl of nonexistent object.
4540
4541 * Makefile.in (gl-stamp): Don't scan $(SOME_MACHINE_OBJECTS)
4542 when building globals.h, as the objects that are not built on
4543 this host are not needed to compile C files on this host.
4544
4545 2012-09-02 Jan Djärv <jan.h.d@swipnet.se>
4546
4547 * gtkutil.h: Remove prototype for x_wm_set_size_hint.
4548
4549 * frame.h: Add missing prototype for x_wm_set_size_hint.
4550
4551 2012-09-02 Paul Eggert <eggert@cs.ucla.edu>
4552
4553 * doc.c, editfns.c, insdel.c, intervals.c: Use bool for boolean.
4554 * doc.c (read_bytecode_char, get_doc_string, reread_doc_file)
4555 (Fdocumentation, Fdocumentation_property, Fsnarf_documentation)
4556 (Fsubstitute_command_keys):
4557 * editfns.c (region_limit, find_field, Fconstrain_to_field)
4558 (save_excursion_save, save_excursion_restore)
4559 (disassemble_lisp_time, decode_time_components, emacs_nmemftime)
4560 (format_time_string, general_insert_function)
4561 (make_buffer_string, make_buffer_string_both)
4562 (Fsubst_char_in_region, Ftranslate_region_internal, Fformat):
4563 * insdel.c (check_markers, gap_left, adjust_markers_for_insert)
4564 (copy_text, insert_1, insert_1_both, insert_from_string)
4565 (insert_from_string_before_markers, insert_from_string_1)
4566 (insert_from_buffer, insert_from_buffer_1, replace_range)
4567 (replace_range_2, del_range_1, del_range_byte, del_range_both)
4568 (del_range_2, modify_region):
4569 * intervals.c (intervals_equal, balance_possible_root_interval)
4570 (adjust_intervals_for_insertion, merge_properties_sticky)
4571 (graft_intervals_into_buffer, lookup_char_property)
4572 (adjust_for_invis_intang, set_point_both)
4573 (get_property_and_range, compare_string_intervals)
4574 (set_intervals_multibyte_1, set_intervals_multibyte):
4575 * keyboard.c (decode_timer):
4576 Use bool for boolean.
4577 * intervals.h, lisp.h, systime.h: Reflect above API changes.
4578 * editfns.c (struct info): Use 1-bit unsigned bitfields for booleans.
4579
4580 2012-09-02 Chong Yidong <cyd@gnu.org>
4581
4582 * keymap.c (push_key_description): Print M-TAB as C-M-i
4583 (Bug#11758).
4584
4585 2012-09-02 Juanma Barranquero <lekktu@gmail.com>
4586
4587 * makefile.w32-in (CCL_H, W32FONT_H): New macros.
4588 (ATIMER_H, FONT_H, $(BLD)/alloc.$(O), $(BLD)/callproc.$(O))
4589 ($(BLD)/editfns.$(O), $(BLD)/ccl.$(O), $(BLD)/chartab.$(O))
4590 ($(BLD)/coding.$(O), $(BLD)/sysdep.$(O), $(BLD)/fontset.$(O))
4591 ($(BLD)/sysdep.$(O), $(BLD)/w32fns.$(O), $(BLD)/keyboard.$(O))
4592 ($(BLD)/w32term.$(O), $(BLD)/w32menu.$(O), $(BLD)/process.$(O))
4593 ($(BLD)/w32font.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
4594
4595 2012-09-01 Eli Zaretskii <eliz@gnu.org>
4596
4597 * w32uniscribe.c (uniscribe_shape): Handle correctly the case of
4598 more than one grapheme cluster passed to the shaper: compute the
4599 offset adjustment values separately for each cluster. (Bug#11860)
4600
4601 * image.c: Restore mistakenly removed inclusion of w32.h. Without
4602 it, GCC doesn't see prototypes of w32_delayed_load, and complains
4603 about implicit conversions from integer to pointer.
4604
4605 2012-09-01 Daniel Colascione <dancol@dancol.org>
4606
4607 * w32fns.c (x_display_info_for_name): Prevent crash if w32 window
4608 system used too early.
4609
4610 2012-09-01 Paul Eggert <eggert@cs.ucla.edu>
4611
4612 Better seed support for (random).
4613 * emacs.c (main): Call init_random.
4614 * fns.c (Frandom): Set the seed from a string argument, if given.
4615 Remove long-obsolete Gentzel cruft.
4616 * lisp.h, sysdep.c (seed_random): Now takes address and size, not long.
4617 (init_random): New function.
4618
4619 2012-09-01 Daniel Colascione <dancol@dancol.org>
4620
4621 * xterm.h: Add header guards. Declare x_menubar_window_to_frame.
4622 Remove x_set_frame_alpha, x_bitmap_icon, x_make_frame_visible,
4623 x_make_frame_invisible, x_iconify_frame, x_free_frame_resources,
4624 x_wm_set_size_hint, x_query_colors, x_real_positions,
4625 x_set_menu_bar_lines, x_char_width, x_char_height, x_sync,
4626 x_set_tool_bar_lines, x_activate_menubar, and free_frame_menubar,
4627 all of which have been moved to common code.
4628
4629 * xfaces.c: Include TERM_HEADER instead of listing all possible
4630 window-system headers.
4631
4632 * w32xfns.c (x_sync): Correct definition of x_sync (a no-op here)
4633 to match header.
4634
4635 * w32term.h (FRAME_X_WINDOW): Use FRAME_W32_WINDOW instead of
4636 directly accessing frame internals.
4637
4638 * w32font.h: Include font.h. Define syms_of_w32font and
4639 globals_of_w32font.
4640
4641 * process.c: Include TERM_HEADER instead of listing all possible
4642 window-system headers.
4643
4644 * nsterm.h: Remove declarations now in frame.h.
4645 Define FRAME_X_SCREEN, FRAME_X_VISUAL.
4646
4647 * menu.c: Include TERM_HEADER instead of listing all possible
4648 window-system headers.
4649
4650 * keyboard.h: Declare ignore_mouse_drag_p whenever we have a
4651 window system.
4652
4653 * keyboard.c: Include TERM_HEADER instead of listing all possible
4654 window-system headers.
4655
4656 * image.c: Include TERM_HEADER instead of listing all possible
4657 window-system headers. Declare Vlibrary_cache when compiling for
4658 Windows.
4659
4660 * gtkutil.h (xg_list_node_): Include xterm.h to pick up needed
4661 window system declarations.
4662
4663 * frame.h: Move common functions here: set_frame_menubar,
4664 x_set_window_size, x_sync, x_get_focus_frame,
4665 x_set_mouse_position, x_set_mouse_pixel_position,
4666 x_make_frame_visible, x_make_frame_invisible, x_iconify_frame,
4667 x_char_width, x_char_height, x_pixel_width, x_pixel_height,
4668 x_set_frame_alpha, x_set_menu_bar_lines, x_set_tool_bar_lines,
4669 x_activate_menubar, x_real_positions, x_bitmap_icon,
4670 x_set_menu_bar_lines, free_frame_menubar, x_free_frame_resources,
4671 and x_query_colors.
4672
4673 * frame.c: Include TERM_HEADER instead of listing all possible
4674 window-system headers.
4675
4676 * font.c: Include TERM_HEADER instead of listing all possible
4677 window-system headers.
4678
4679 * emacs.c: Include TERM_HEADER.
4680
4681 * dispnew.c: Include TERM_HEADER instead of listing all possible
4682 window-system headers.
4683
4684 * ccl.h: Include character.h.
4685
4686 * Makefile.in: Define WINDOW_SYSTEM_OBJ to hold objects needed for
4687 the current window system; include in list of objects to link into
4688 Emacs.
4689
4690 2012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
4691
4692 Remove mark_ttys function and fix tty_display_info initialization.
4693 * lisp.h (mark_ttys): Remove prototype.
4694 * alloc.c (Fgarbage_collect): Remove redundant (and the only) call
4695 to mark_ttys because all possible values of 'top_frame' slot are
4696 the frames which are reachable from Vframe_list.
4697 * term.c (mark_ttys): Remove.
4698 (init_tty): Safely initialize 'top_frame' slot with Qnil.
4699
4700 2012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
4701
4702 Change struct frame bitfields from unsigned char to unsigned.
4703 * frame.h (struct frame): Change type of 'display_preempted',
4704 'visible', 'iconified', 'has_minibuffer', 'wants_modeline',
4705 'auto_raise', 'auto_lower', 'no_split', 'explicit_name',
4706 'window_sizes_changed', 'mouse_moved' and 'pointer_invisible'
4707 bitfields from unsigned char to unsigned.
4708
4709 2012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
4710
4711 Remove unused member of struct x_output and struct w32_output.
4712 * xterm.h (struct x_output): Remove unused field 'needs_exposure'.
4713 * w32term.h (struct w32_output): Likewise.
4714
4715 2012-08-30 Jan Djärv <jan.h.d@swipnet.se>
4716
4717 * gtkutil.c (x_wm_set_size_hint): Use 1 col for base_width so it
4718 does not become zero (Bug#12234).
4719
4720 2012-08-30 Paul Eggert <eggert@cs.ucla.edu>
4721
4722 * dispnew.c (update_frame_1): Pacify gcc -Wstrict-overflow
4723 for GCC 4.7.1 x86-64.
4724
4725 2012-08-30 Glenn Morris <rgm@gnu.org>
4726
4727 * lread.c (init_lread): For out-of-tree builds, only add the
4728 source directory's site-lisp dir to the load-path if it exists,
4729 consistent with in-tree builds. (Bug#12302)
4730
4731 2012-08-28 Jan Djärv <jan.h.d@swipnet.se>
4732
4733 * nsmenu.m (initWithContentRect:styleMask:backing:defer:): Initialize
4734 button_values to NULL. Call setStykeMask so dialogs get a close button.
4735 (windowShouldClose:): Set window_closed.
4736 (dealloc): New member, free button_values.
4737 (process_dialog:): Make member function. Remove window argument,
4738 replace window with self. Count buttons and allocate and store values
4739 in button_values.
4740 (addButton:value:row:): value is int with the name tag. Call setTag
4741 with tag. Remove return self, declare return value as void.
4742 (addString:row:): Remove return self, declare return value as void.
4743 (addSplit): Remove return self, declare return value as void.
4744 (clicked:): Remove return self, declare return value as void.
4745 Set dialog_return to button_values[seltag]. Code formatting change.
4746 (initFromContents:isQuestion:): Adjust call to process_dialog.
4747 Code formatting change.
4748 (timeout_handler:): Set timer_fired to YES.
4749 (runDialogAt:): Set timer_fired to NO.
4750 Handle click on close button as quit.
4751
4752 * nsterm.h (EmacsDialogPanel): Make timer_fired BOOL.
4753 Add window_closed and button_values. Add void as return value for
4754 add(Button|String|Split). addButton takes int instead of Lisp_Object.
4755 Add process_dialog as new member.
4756
4757 2012-08-28 Eli Zaretskii <eliz@gnu.org>
4758
4759 * ralloc.c (free_bloc): Don't dereference a 'heap' structure if it
4760 is not one of the heaps we manage. (Bug#12242)
4761
4762 2012-08-28 Glenn Morris <rgm@gnu.org>
4763
4764 * eval.c (Fcalled_interactively_p): Doc fix. (Bug#11747)
4765
4766 2012-08-28 Martin Rudalics <rudalics@gmx.at>
4767
4768 * window.c (Fset_window_configuration): Remove handling of
4769 auto-buffer-name window parameter. Install revision of reverted
4770 fix.
4771
4772 2012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
4773
4774 Do not allow to set major mode for a dead buffer.
4775 * buffer.c (Fset_buffer_major_mode): Signal an error
4776 if the buffer is dead.
4777 (Fother_buffer, other_buffer_safely): Remove redundant
4778 nested declaration.
4779
4780 2012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
4781
4782 Always use set_buffer_if_live to restore original buffer at unwind.
4783 * buffer.h (record_unwind_current_buffer): New function.
4784 * bytecode.c, dispnew.c, editfns.c, fileio.c, fns.c, insdel.c:
4785 * keyboard.c, keymap.c, minibuf.c, print.c, process.c, textprop.c:
4786 * undo.c, window.c: Adjust users.
4787 * buffer.c (set_buffer_if_live): Fix comment.
4788
4789 2012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
4790
4791 Fix usage of set_buffer_internal.
4792 * buffer.h (set_buffer_internal): Make it BUFFER_INLINE.
4793 * buffer.c (set_buffer_if_live): Use set_buffer_internal.
4794 * coding.c (decode_coding): Omit redundant test.
4795 * fileio.c (decide_coding_unwind): Likewise.
4796 * fns.c (secure_hash): Likewise.
4797 * insdel.c (modify_region): Likewise.
4798 * keyboard.c (command_loop_1): Likewise.
4799 * print.c (PRINTFINISH): Likewise.
4800 * xdisp.c (run_window_scroll_functions): Use set_buffer_internal.
4801
4802 2012-08-27 Paul Eggert <eggert@cs.ucla.edu>
4803
4804 * dispnew.c: Use bool for boolean.
4805 (frame_garbaged, display_completed, delayed_size_change)
4806 (fonts_changed_p, add_window_display_history)
4807 (add_frame_display_history, verify_row_hash)
4808 (adjust_glyph_matrix, clear_window_matrices, glyph_row_slice_p)
4809 (row_equal_p, realloc_glyph_pool)
4810 (allocate_matrices_for_frame_redisplay)
4811 (showing_window_margins_p)
4812 (adjust_frame_glyphs_for_frame_redisplay)
4813 (build_frame_matrix_from_leaf_window, make_current)
4814 (mirrored_line_dance, mirror_line_dance, update_frame)
4815 (update_window_tree, update_single_window)
4816 (check_current_matrix_flags, update_window, update_text_area)
4817 (update_window_line, set_window_update_flags, scrolling_window)
4818 (update_frame_1, scrolling, buffer_posn_from_coords)
4819 (do_pending_window_change, change_frame_size)
4820 (change_frame_size_1, sit_for):
4821 Use bool for boolean.
4822 (clear_glyph_matrix_rows): Rename from enable_glyph_matrix_rows,
4823 and remove last int (actually boolean) argument, which was always 0.
4824 All callers changed.
4825 * dispextern.h, frame.h, lisp.h: Reflect above API changes.
4826 * dispextern.h (struct composition_it): Use bool for boolean.
4827 (struct glyph_matrix): Don't assume buffer sizes can fit in 'int'.
4828 (struct bidi_it): Use unsigned:1, not int, for boolean prev_was_pdf.
4829 * dired.c (file_name_completion):
4830 Use bool for boolean. (This was missed in an earlier change.)
4831
4832 2012-08-27 Martin Rudalics <rudalics@gmx.at>
4833
4834 * window.c (Fset_window_configuration): Revert first part of
4835 last change.
4836
4837 2012-08-27 Jan Djärv <jan.h.d@swipnet.se>
4838
4839 * nsterm.h (NSPanel): New class variable dialog_return.
4840
4841 * nsmenu.m (initWithContentRect:styleMask:backing:defer:):
4842 Initialize dialog_return.
4843 (windowShouldClose:): Use stop instead of stopModalWithCode.
4844 (clicked:): Ditto, and also set dialog_return (Bug#12258).
4845 (timeout_handler:): Use stop instead of abortModal. Send a dummy
4846 event.
4847 (runDialogAt:): Make ret Lisp_Object. Set it from dialog_return when
4848 modal loop returns.
4849
4850 2012-08-27 Paul Eggert <eggert@cs.ucla.edu>
4851
4852 * composite.c, data.c, dbusbind.c, dired.c: Use bool for booleans.
4853 * composite.c (find_composition, composition_gstring_p)
4854 (composition_reseat_it, find_automatic_composition):
4855 * data.c (let_shadows_buffer_binding_p)
4856 (let_shadows_global_binding_p, set_internal, make_blv)
4857 (Fmake_variable_buffer_local, Fmake_local_variable)
4858 (Fmake_variable_frame_local, arithcompare, cons_to_unsigned)
4859 (cons_to_signed, arith_driver):
4860 * dbusbind.c (xd_in_read_queued_messages):
4861 * dired.c (directory_files_internal, file_name_completion):
4862 Use bool for booleans.
4863 * dired.c (file_name_completion):
4864 * process.h (fd_callback):
4865 Omit int (actually boolean) argument. It wasn't being used.
4866 All uses changed.
4867 * composite.h, lisp.h: Reflect above API changes.
4868
4869 * cmds.c, coding.c: Use bool for booleans.
4870 * cmds.c (move_point, Fself_insert_command):
4871 * coding.h (struct composition status, struct coding_system):
4872 * coding.c (detect_coding_utf_8, encode_coding_utf_8)
4873 (detect_coding_utf_16, encode_coding_utf_16, detect_coding_emacs_mule)
4874 (emacs_mule_char, decode_coding_emacs_mule)
4875 (encode_coding_emacs_mule, detect_coding_iso_2022)
4876 (decode_coding_iso_2022, encode_invocation_designation)
4877 (encode_designation_at_bol, encode_coding_iso_2022)
4878 (detect_coding_sjis, detect_coding_big5, decode_coding_sjis)
4879 (decode_coding_big5, encode_coding_sjis, encode_coding_big5)
4880 (detect_coding_ccl, encode_coding_ccl, decode_coding_raw_text)
4881 (encode_coding_raw_text, detect_coding_charset)
4882 (decode_coding_charset, encode_coding_charset, detect_eol)
4883 (detect_coding, get_translation_table, produce_chars)
4884 (consume_chars, reused_workbuf_in_use)
4885 (make_conversion_work_buffer, code_conversion_save)
4886 (decode_coding_object, encode_coding_object)
4887 (detect_coding_system, char_encodable_p)
4888 (Funencodable_char_position, code_convert_region)
4889 (code_convert_string, code_convert_string_norecord)
4890 (Fset_coding_system_priority):
4891 * fileio.c (Finsert_file_contents):
4892 Use bool for booleans.
4893 * coding.h, lisp.h: Reflect above API changes.
4894 * coding.c: Remove unnecessary static function decls.
4895 (detect_coding): Use unsigned, not signed, to copy an unsigned field.
4896 (decode_coding, encode_coding, decode_coding_gap): Return 'void',
4897 not a boolean 'int', since callers never look at the return value.
4898 (ALLOC_CONVERSION_WORK_AREA): Assume caller returns 'void', not 'int'.
4899 * coding.h (decoding_buffer_size, encoding_buffer_size)
4900 (emacs_mule_string_char): Remove unused extern decls.
4901 (struct iso_2022_spec, struct coding_system):
4902 Use 'unsigned int : 1' for boolean fields, since there's more than one.
4903 (struct emacs_mule_spec): Remove unused field 'full_support'.
4904 All initializations removed.
4905 * cmds.c (internal_self_insert): Don't assume EMACS_INT fits in 'int'.
4906
4907 2012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
4908
4909 Fix spare memory change (Bug#12286).
4910 * alloc.c (mark_maybe_pointer): Handle MEM_TYPE_SPARE.
4911 (valid_lisp_object_p): Likewise.
4912
4913 2012-08-27 Martin Rudalics <rudalics@gmx.at>
4914
4915 * window.c (Fset_window_configuration): Record any window's old
4916 buffer if it's replaced (see Bug#8789). If the new current
4917 buffer doesn't appear in the selected window, go to its old
4918 point (Bug#12208).
4919
4920 2012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
4921
4922 Special MEM_TYPE_SPARE to denote reserved memory.
4923 * alloc.c (enum mem_type): New memory type.
4924 (refill_memory_reserve): Use new type for spare memory.
4925 This prevents live_cons_p and live_string_p from incorrect
4926 detection of uninitialized objects from spare memory as live.
4927
4928 2012-08-26 Paul Eggert <eggert@cs.ucla.edu>
4929
4930 Spelling fixes.
4931 * Makefile.in (.PHONY): versioclean -> versionclean.
4932
4933 Remove unused external symbols.
4934 * data.c (Qcons, Qfloat, Qmisc, Qstring, Qvector):
4935 * window.c (Qwindow_valid_p, decode_valid_window):
4936 Now static, not extern.
4937 * data.c (Qinterval): Remove; unused.
4938 (syms_of_data): Do not define 'interval'.
4939 * lisp.h (Qinteger, Qstring, Qmisc, Qvector, Qfloat, Qcons):
4940 * window.h (decode_valid_window):
4941 Remove decls.
4942
4943 * character.c, charset.c, chartab.c: Use bool for booleans.
4944 * character.c (lisp_string_width, string_count_byte8)
4945 (string_escape_byte8):
4946 * charset.c (charset_map_loaded, load_charset_map, read_hex):
4947 (load_charset_map_from_file, map_charset_chars)
4948 (Fdefine_charset_internal, define_charset_internal)
4949 (Fdeclare_equiv_charset, find_charsets_in_text)
4950 (Ffind_charset_region, char_charset, Fiso_charset):
4951 * chartab.c (sub_char_table_ref, sub_char_table_ref_and_range)
4952 (sub_char_table_set, sub_char_table_set_range)
4953 (char_table_set_range, optimize_sub_char_table)
4954 (map_sub_char_table):
4955 Use bool for boolean.
4956 * character.c (str_to_unibyte): Omit last boolean argument; it was
4957 always 0. All callers changed.
4958 * character.h, charset.h: Adjust to match previous changes.
4959 * character.h (char_printable_p): Remove decl of nonexistent function.
4960 * charset.h (struct charset): Members code_linear_p, iso_chars_96,
4961 ascii_compatible_p, supplementary_p, compact_codes_p, unified_p
4962 are all boolean, so make them single-bit bitfields.
4963
4964 * lisp.h (ASET): Remove attempt to detect side effects.
4965 It was meant to be temporary and it often doesn't work,
4966 because when IDX has side effects the behavior of IDX==IDX
4967 is undefined. See Stefan Monnier in
4968 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00762.html>.
4969
4970 2012-08-26 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
4971
4972 * lisp.h (functionp): New function (extracted from Ffunctionp).
4973 (FUNCTIONP): Use it.
4974 * eval.c (Ffunctionp): Use it.
4975
4976 2012-08-25 Paul Eggert <eggert@cs.ucla.edu>
4977
4978 * xgselect.c (xg_select): Use auto storage for the GPollFD buffer
4979 as that's faster and simpler than static storage. Don't bother
4980 with the g_main_context_query overhead if g_main_context_pending
4981 says no events are pending.
4982 (gfds, gfds_size): Remove these static vars.
4983 (xgselect_initialize): Remove; no longer needed.
4984 All uses and decls removed.
4985
4986 * emacs.c (fatal_error_signal_hook): Remove.
4987 All uses removed. This leftover from old code was always 0.
4988
4989 * casefiddle.c, casetab.c, category.c: Use bool for boolean.
4990 * casefiddle.c (casify_object, casify_region):
4991 * casetab.c (set_case_table):
4992 * category.c, category.h (word_boundary_p):
4993 * category.h (CHAR_HAS_CATEGORY):
4994 Use bool for booleans, instead of int.
4995
4996 2012-08-25 Eli Zaretskii <eliz@gnu.org>
4997
4998 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on $(GNU_LIB)/execinfo.h.
4999
5000 2012-08-25 Paul Eggert <eggert@cs.ucla.edu>
5001
5002 On assertion failure, print backtrace if available.
5003 * alloc.c [ENABLE_CHECKING]: Include <execinfo.h>.
5004 (die) [ENABLE_CHECKING]: Print a backtrace if available.
5005 * Makefile.in (LIB_EXECINFO): New macro.
5006 (LIBES): Use it.
5007
5008 * bytecode.c, callint.c, callproc.c: Use bool for boolean.
5009 * bytecode.c (exec_byte_code):
5010 * callint.c (check_mark, Fcall_interactively):
5011 * callproc.c (Fcall_process, add_env, child_setup, getenv_internal_1)
5012 (getenv_internal, sync_process_alive, call_process_exited):
5013 * lisp.h (USE_SAFE_ALLOCA):
5014 Use bool for booleans, instead of int.
5015 * lisp.h, process.h: Adjust prototypes to match above changes.
5016 * callint.c (Fcall_interactively): Don't assume the mark's
5017 offset fits in 'int'.
5018
5019 2012-08-24 Paul Eggert <eggert@cs.ucla.edu>
5020
5021 * buffer.c, buffer.h: Use bool for boolean.
5022 * buffer.c (reset_buffer_local_variables)
5023 (buffer_lisp_local_variables, Fset_buffer_modified_p)
5024 (Frestore_buffer_modified_p, Fset_buffer_multibyte):
5025 (overlays_at, overlays_in, mouse_face_overlay_overlaps)
5026 (overlay_touches_p, overlay_strings, Foverlay_put)
5027 (report_overlay_modification, call_overlay_mod_hooks):
5028 (mmap_enlarge, mmap_set_vars):
5029 * buffer.h (buffer_has_overlays, uppercasep, lowercasep):
5030 Use bool for booleans, instead of int.
5031 * buffer.c (compact_buffer, mmap_free_1): Return void, not int,
5032 since the 1-or-0 return value is always ignored anyway.
5033 (mmap_initialized_p):
5034 * buffer.h (struct buffer_text.inhibit_shrinking): Now bool, not int.
5035 * buffer.h, lisp.h: Adjust prototypes to match above changes.
5036
5037 2012-08-23 Paul Eggert <eggert@cs.ucla.edu>
5038
5039 * bidi.c: Use bool for boolean.
5040 This is a bit more readable, and makes the text segment of bidi.o
5041 0.4% smaller on my platform (GCC 4.7.1 x86-64, Fedora 15).
5042 Presumably it's faster too.
5043 (bidi_initialized, bidi_ignore_explicit_marks_for_paragraph_level):
5044 Now bool.
5045 (bidi_cache_find_level_change, bidi_cache_iterator_state)
5046 (bidi_unshelve_cache, bidi_init_it, bidi_count_bytes)
5047 (bidi_char_at_pos, bidi_fetch_char, bidi_paragraph_init)
5048 (bidi_explicit_dir_char, bidi_level_of_next_char)
5049 (bidi_find_other_level_edge, bidi_move_to_visually_next):
5050 Use bool for booleans, instead of int.
5051 * dispextern.h (bidi_init_it, bidi_paragraph_init)
5052 (bidi_unshelve_cache): Adjust decls to match code.
5053
5054 2012-08-23 Martin Rudalics <rudalics@gmx.at>
5055
5056 * keyboard.c (Fposn_at_x_y): Do not allow internal window as
5057 argument.
5058
5059 2012-08-23 Paul Eggert <eggert@cs.ucla.edu>
5060
5061 * atimer.c, atimer.h (turn_on_atimers): Use bool for boolean.
5062 * atimer.h: Include <stdbool.h>.
5063
5064 2012-08-22 Dan Nicolaescu <dann@gnu.org>
5065
5066 * frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_NS_P): Change to
5067 compile time tests instead of run time tests on systems that do
5068 not use them.
5069 (FRAME_MAC_P): Remove leftover from deleted code.
5070 * frame.c (syms_of_frame): Remove leftover from deleted code.
5071
5072 2012-08-22 Jan Djärv <jan.h.d@swipnet.se>
5073
5074 * nsterm.m (insertText:): Don't clear modifiers if code is space.
5075
5076 2012-08-22 Paul Eggert <eggert@cs.ucla.edu>
5077
5078 * fontset.c (FONTSET_ADD): Return void, not Lisp_Object.
5079 Otherwise, the compiler complains about (A?B:C) where B is void
5080 and C is Lisp_Object. This fixes an incompatibility with Sun C 5.12.
5081 (fontset_add): Return void, for FONTSET_ADD.
5082
5083 2012-08-21 Paul Eggert <eggert@cs.ucla.edu>
5084
5085 * alloc.c: Use bool for booleans.
5086 (gc_in_progress, abort_on_gc)
5087 (setjmp_tested_p) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
5088 (dont_register_blocks) [GC_MALLOC_CHECK]:
5089 (suppress_checking) [ENABLE_CHECKING]: Now bool, not int.
5090 (check_string_bytes, make_specified_string, memory_full)
5091 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
5092 (live_misc_p, live_vector_p, live_buffer_p, mark_maybe_object)
5093 (mark_stack, valid_pointer_p, make_pure_string)
5094 (Fgarbage_collect, survives_gc_p, gc_sweep):
5095 Use bool for booleans, instead of int.
5096 (test_setjmp) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
5097 Remove unused local.
5098 * alloc.c (PURE_POINTER_P):
5099 * lisp.h (STRING_MULTIBYTE): Document that it returns a boolean.
5100 * editfns.c (Fformat):
5101 * fileio.c (Fexpand_file_name, Fsubstitute_in_file_name)
5102 (Fdo_auto_save):
5103 * fns.c (sweep_weak_table):
5104 * lisp.h (suppress_checking, push_message, survives_gc_p)
5105 (make_pure_string, gc_in_progress, abort_on_gc):
5106 * lread.c (readchar, read1):
5107 * print.c (Fprin1_to_string):
5108 * xdisp.c (push_message):
5109 Use bool for booleans affected directly or indirectly by
5110 alloc.c's changes.
5111
5112 Make recently-introduced setters macros.
5113 * fontset.c (set_fontset_id, set_fontset_name, set_fontset_ascii)
5114 (set_fontset_base, set_fontset_frame, set_fontset_nofont_face)
5115 (set_fontset_default, set_fontset_fallback): Rename from their
5116 upper-case counterparts, and make them functions rather than macros.
5117 This is more consistent with the other recently-introduced setters.
5118 These don't need to be inline, since they're local.
5119
5120 2012-08-21 Jan Djärv <jan.h.d@swipnet.se>
5121
5122 * nsterm.m (fd_handler:): Alloc and release a NSAutoreleasePool in
5123 the loop (Bug#12247).
5124
5125 2012-08-21 Paul Eggert <eggert@cs.ucla.edu>
5126
5127 * lisp.h (vcopy): Use memcpy rather than our own loop.
5128 This fixes a performance regression introduced by the recent
5129 addition of vcopy. This means 'vcopy' will need to be modified
5130 for a copying collector, but that's OK. Also, tighten the
5131 checking in the assertion.
5132
5133 2012-08-21 Eli Zaretskii <eliz@gnu.org>
5134
5135 * w32uniscribe.c (uniscribe_shape): Fix producing gstring
5136 components for RTL text (Bug#11860). Adjust X-OFFSET of each
5137 non-base glyph for the width of the base character, according to
5138 what x_draw_composite_glyph_string_foreground expects.
5139 Generate WADJUST value according to composition_gstring_width's
5140 expectations, to produce correct width of the composed character.
5141 Reverse the sign of the DU offset produced by ScriptPlace.
5142
5143 2012-08-21 Paul Eggert <eggert@cs.ucla.edu>
5144
5145 * dbusbind.c (xd_remove_watch): Do not assume C99 comments.
5146
5147 2012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
5148
5149 Avoid direct writes to contents member of struct Lisp_Vector.
5150 * lisp.h (vcopy): New function to copy data into vector.
5151 * dispnew.c (Fframe_or_buffer_changed_p): Use AREF and ASET.
5152 * fns.c (Ffillarray): Use ASET.
5153 * keyboard.c (timer_check_2): Use AREF and ASET.
5154 (append_tool_bar_item, Frecent_keys): Use vcopy.
5155 * lread.c (read_vector): Use ASET.
5156 * msdos.c (Frecent_doskeys): Use vcopy.
5157 * xface.c (Finternal_copy_lisp_face): Use vcopy.
5158 (Finternal_merge_in_global_face): Use ASET and vcopy.
5159 * xfont.c (xfont_list_pattern): Likewise.
5160
5161 2012-08-21 Martin Rudalics <rudalics@gmx.at>
5162
5163 * window.c (Fwindow_point): For the selected window always return
5164 the position of its buffer's point.
5165 (Fset_window_point): For the selected window always go in its
5166 buffer to the specified position.
5167
5168 2012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
5169
5170 Setter macros for fontsets.
5171 * fontset.c (SET_FONTSET_ID, SET_FONTSET_NAME, SET_FONTSET_ASCII)
5172 (SET_FONTSET_BASE, SET_FONTSET_FRAME, SET_FONTSET_NOFONT_FACE)
5173 (SET_FONTSET_DEFAULT, SET_FONTSET_FALLBACK): New macros.
5174 Adjust users.
5175
5176 2012-08-20 Glenn Morris <rgm@gnu.org>
5177
5178 * Makefile.in (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
5179 Don't assume that `ln -f' works.
5180
5181 2012-08-20 Eli Zaretskii <eliz@gnu.org>
5182
5183 * .gdbinit: Use "set $dummy = ..." to avoid warnings from GDB 7.5
5184 and later about non-assignments with no effect. See discussion at
5185 http://sourceware.org/ml/gdb-patches/2012-08/msg00518.html for
5186 details.
5187
5188 2012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
5189
5190 Inline setter functions for Lisp_Objects slots of struct specbinding.
5191 * eval.c (set_specpdl_symbol, set_specpdl_old_value): New functions.
5192 Adjust users.
5193
5194 2012-08-20 Martin Rudalics <rudalics@gmx.at>
5195
5196 * window.c (select_window): Always make selected window's buffer
5197 current.
5198
5199 2012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
5200
5201 Use AREF and ASET for docstrings of category tables.
5202 * category.h (CATEGORY_DOCSTRING): Use AREF.
5203 (SET_CATEGORY_DOCSTRING): Use ASET.
5204 * category.c (Fdefine_category): Use SET_CATEGORY_DOCSTRING.
5205
5206 2012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
5207
5208 Inline setter functions for hash table members.
5209 * lisp.h (set_hash_key, set_hash_value, set_hash_next)
5210 (set_hash_hash, set_hash_index): Rename with _slot suffix.
5211 (set_hash_key_and_value, set_hash_index, set_hash_next)
5212 (set_hash_hash): New functions.
5213 * charset.c, fns.c: Adjust users.
5214
5215 2012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
5216
5217 Inline getter and setter functions for per-buffer values.
5218 * buffer.h (per_buffer_default, set_per_buffer_default)
5219 (per_buffer_value, set_per_buffer_value): New functions.
5220 (PER_BUFFER_VALUE, PER_BUFFER_DEFAULT): Remove.
5221 * buffer.c, data.c: Adjust users.
5222
5223 2012-08-20 Juanma Barranquero <lekktu@gmail.com>
5224
5225 * makefile.w32-in ($(BLD)/vm-limit.$(O)): Update dependencies.
5226
5227 2012-08-19 Paul Eggert <eggert@cs.ucla.edu>
5228
5229 Rely on <config.h> + <unistd.h> to declare 'environ',
5230 as gnulib does this if the system doesn't.
5231 * callproc.c, editfns.c, process.c (environ) [!USE_CRT_DLL]:
5232 Remove declaration. MS-Windows declares it on stdlib.h which is
5233 included by conf_post.h.
5234 * emacs.c (environ) [DOUG_LEA_MALLOC]:
5235 * vm-limit.c (environ) [ORDINARY_LINK]: Remove decl.
5236 * vm-limit.c: Include <unistd.h>, for 'environ'.
5237
5238 * unexaix.c, unexcoff.c: Include "mem-limits.h".
5239 (start_of_data): Remove decl; mem-limits.h provides it.
5240
5241 * xdisp.c (handle_invisible_prop): Make it a bit faster
5242 and avoid a gcc -Wmaybe-uninitialized diagnostic.
5243
5244 2012-08-19 Chong Yidong <cyd@gnu.org>
5245
5246 * xdisp.c (handle_invisible_prop): Fix ellipses at overlay string
5247 ends (Bug#3874).
5248
5249 2012-08-19 Andreas Schwab <schwab@linux-m68k.org>
5250
5251 * .gdbinit: Use call instead of set when calling a function in the
5252 inferior.
5253
5254 * data.c (set_internal): Don't use set_blv_found.
5255 (Fkill_local_variable): Likewise.
5256
5257 2012-08-18 Alp Aker <alp.tekin.aker@gmail.com>
5258
5259 * nsfont.m (ns_ascii_average_width): Ensure the string
5260 ascii_printable is initialized with a null-terminated character
5261 array. Otherwise, it can contain undesired extra characters.
5262
5263 2012-08-18 Paul Eggert <eggert@cs.ucla.edu>
5264
5265 port new setting code to Sun C 5.8 2005/10/13
5266 * chartab.c, lisp.h (char_table_set, char_table_set_range):
5267 Return void, not Lisp_Object. Otherwise, the compiler
5268 complains about (A?B:C) where B is void and C is Lisp_Object
5269 when compiling CHAR_TABLE_SET, due to the recent change to
5270 the API of sub_char_table_set_contents.
5271
5272 2012-08-18 Chong Yidong <cyd@gnu.org>
5273
5274 * xdisp.c (handle_invisible_prop): Obey TEXT_PROP_MEANS_INVISIBLE
5275 for the string case (Bug#3874).
5276
5277 2012-08-18 Paul Eggert <eggert@cs.ucla.edu>
5278
5279 * buffer.h (BSET): Remove (Bug#12215).
5280 Replace all uses with calls to new setter functions.
5281 (bset_bidi_paragraph_direction, bset_case_canon_table)
5282 (bset_case_eqv_table, bset_directory, bset_display_count)
5283 (bset_display_time, bset_downcase_table)
5284 (bset_enable_multibyte_characters, bset_filename, bset_keymap)
5285 (bset_last_selected_window, bset_local_var_alist)
5286 (bset_mark_active, bset_point_before_scroll, bset_read_only)
5287 (bset_truncate_lines, bset_undo_list, bset_upcase_table)
5288 (bset_width_table):
5289 * buffer.c (bset_abbrev_mode, bset_abbrev_table)
5290 (bset_auto_fill_function, bset_auto_save_file_format)
5291 (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
5292 (bset_bidi_display_reordering, bset_buffer_file_coding_system)
5293 (bset_cache_long_line_scans, bset_case_fold_search)
5294 (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
5295 (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
5296 (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
5297 (bset_fringe_indicator_alist, bset_fringes_outside_margins)
5298 (bset_header_line_format, bset_indicate_buffer_boundaries)
5299 (bset_indicate_empty_lines, bset_invisibility_spec)
5300 (bset_left_fringe_width, bset_major_mode, bset_mark)
5301 (bset_minor_modes, bset_mode_line_format, bset_mode_name)
5302 (bset_name, bset_overwrite_mode, bset_pt_marker)
5303 (bset_right_fringe_width, bset_save_length)
5304 (bset_scroll_bar_width, bset_scroll_down_aggressively)
5305 (bset_scroll_up_aggressively, bset_selective_display)
5306 (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
5307 (bset_word_wrap, bset_zv_marker):
5308 * category.c (bset_category_table):
5309 * syntax.c (bset_syntax_table):
5310 New setter functions.
5311
5312 * process.h (PSET): Remove (Bug#12215).
5313 Replace all uses with calls to new setter functions.
5314 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
5315 (PROCESS_INLINE): New macro.
5316 (pset_childp): New setter function.
5317 (pset_gnutls_cred_type) [HAVE_GNUTLS]: New setter function.
5318 * process.c (PROCESS_INLINE):
5319 Define to EXTERN_INLINE, so that the corresponding functions
5320 are compiled into code.
5321 (pset_buffer, pset_command, pset_decode_coding_system)
5322 (pset_decoding_buf, pset_encode_coding_system)
5323 (pset_encoding_buf, pset_filter, pset_log, pset_mark, pset_name)
5324 (pset_plist, pset_sentinel, pset_status, pset_tty_name)
5325 (pset_type, pset_write_queue): New setter functions.
5326
5327 * window.h (WSET): Remove (Bug#12215).
5328 Replace all uses with calls to new setter functions.
5329 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
5330 (WINDOW_INLINE): New macro.
5331 (wset_buffer, wset_frame, wset_left_col, wset_next, wset_prev)
5332 (wset_redisplay_end_trigger, wset_top_line, wset_total_cols)
5333 (wset_total_lines, wset_vertical_scroll_bar)
5334 (wset_window_end_pos, wset_window_end_valid)
5335 (wset_window_end_vpos): New setter functions.
5336 * window.c (WINDOW_INLINE):
5337 Define to EXTERN_INLINE, so that the corresponding functions
5338 are compiled into code.
5339 (wset_combination_limit, wset_dedicated, wset_display_table)
5340 (wset_hchild, wset_left_fringe_width, wset_left_margin_cols)
5341 (wset_new_normal, wset_new_total, wset_next_buffers)
5342 (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
5343 (wset_prev_buffers, wset_right_fringe_width)
5344 (wset_right_margin_cols, wset_scroll_bar_width, wset_start)
5345 (wset_temslot, wset_vchild, wset_vertical_scroll_bar_type)
5346 (wset_window_parameters):
5347 * xdisp.c (wset_base_line_number, wset_base_line_pos)
5348 (wset_column_number_displayed, wset_region_showing):
5349 New setter functions.
5350
5351 * termhooks.h (TSET): Remove (Bug#12215).
5352 Replace all uses with calls to new setter functions.
5353 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
5354 (TERMHOOKS_INLINE): New macro.
5355 (tset_charset_list, tset_selection_alist): New setter functions.
5356 * terminal.c (TERMHOOKS_INLINE):
5357 Define to EXTERN_INLINE, so that the corresponding functions
5358 are compiled into code.
5359 (tset_param_alist): New setter function.
5360
5361 2012-08-17 Paul Eggert <eggert@cs.ucla.edu>
5362
5363 * keyboard.h (KSET): Remove (Bug#12215).
5364 Replace all uses with calls to new setter functions.
5365 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
5366 (KEYBOARD_INLINE): New macro.
5367 (kset_default_minibuffer_frame, kset_defining_kbd_macro)
5368 (kset_input_decode_map, kset_last_command, kset_last_kbd_macro)
5369 (kset_prefix_arg, kset_system_key_alist, kset_window_system):
5370 New setter functions.
5371 * keyboard.c (KEYBOARD_INLINE):
5372 Define to EXTERN_INLINE, so that the corresponding functions
5373 are compiled into code.
5374 (kset_echo_string, kset_kbd_queue)
5375 (kset_keyboard_translate_table, kset_last_prefix_arg)
5376 (kset_last_repeatable_command, kset_local_function_key_map)
5377 (kset_overriding_terminal_local_map, kset_real_last_command)
5378 (kset_system_key_syms): New setter functions.
5379
5380 * frame.h (FSET): Remove (Bug#12215).
5381 Replace all uses with calls to new setter functions.
5382 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
5383 (FRAME_INLINE): New macro.
5384 (fset_buffer_list, fset_buried_buffer_list, fset_condemned_scroll_bars)
5385 (fset_current_tool_bar_string, fset_desired_tool_bar_string)
5386 (fset_face_alist, fset_focus_frame, fset_icon_name, fset_menu_bar_items)
5387 (fset_menu_bar_vector, fset_menu_bar_window, fset_name)
5388 (fset_param_alist, fset_root_window, fset_scroll_bars)
5389 (fset_selected_window, fset_title, fset_tool_bar_items)
5390 (fset_tool_bar_position, fset_tool_bar_window): New functions.
5391 * frame.c (FRAME_INLINE):
5392 Define to EXTERN_INLINE, so that the corresponding functions
5393 are compiled into code.
5394 (fset_buffer_predicate, fset_minibuffer_window): New setter functions.
5395
5396 A few more naming-convention fixes for getters and setters.
5397 * buffer.c (set_buffer_overlays_before): Move here from buffer.h,
5398 and rename from buffer_overlays_set_before.
5399 (set_buffer_overlays_after): Move here from buffer.h, and rename
5400 from buffer_overlays_set_after.
5401 * buffer.h (buffer_intervals): Rename from buffer_get_intervals.
5402 All uses changed.
5403 (set_buffer_intervals): Rename from buffer_set_intervals.
5404 * intervals.c (set_interval_object): Move here from intervals.h,
5405 and rename from interval_set_object.
5406 (set_interval_left): Move here from intervals.h, and rename from
5407 interval_set_left.
5408 (set_interval_right): Move here from intervals.h, and rename from
5409 interval_set_right.
5410 (copy_interval_parent): Move here from intervals.h, and rename from
5411 interval_copy_parent.
5412 * intervals.h (set_interval_parent): Rename from interval_set_parent.
5413 (set_interval_plist): Rename from interval_set_plist.
5414 Return void, not Lisp_Object, since no caller uses the result.
5415 * lisp.h (string_intervals): Rename from string_get_intervals.
5416 (set_string_intervals): Rename from string_set_intervals.
5417
5418 * lisp.h (set_char_table_extras): Rename from char_table_set_extras.
5419 (set_char_table_contents): Rename from char_table_set_contents.
5420 (set_sub_char_table_contents): Rename from sub_char_table_set_contents.
5421 All uses changed. See the end of
5422 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00549.html>.
5423
5424 * lisp.h (CSET): Remove (Bug#12215).
5425 (set_char_table_ascii, set_char_table_defalt, set_char_table_parent)
5426 (set_char_table_purpose): New functions,
5427 replacing CSET. All uses changed. For example, replace
5428 "CSET (XCHAR_TABLE (char_table), parent, parent);" with
5429 "set_char_table_parent (char_table, parent);".
5430 The old version was confusing because it used the same name
5431 'parent' for two different things.
5432
5433 2012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
5434
5435 Functions to get and set Lisp_Object fields of buffer-local variables.
5436 * lisp.h (blv_found, set_blv_found, blv_value, set_blv_value)
5437 (set_blv_where, set_blv_defcell, set_blv_valcell): New functions.
5438 (BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): Remove.
5439 * data.c, eval.c, frame.c: Adjust users.
5440
5441 2012-08-17 Chong Yidong <cyd@gnu.org>
5442
5443 * xfaces.c (merge_face_vectors): If the target font specfies a
5444 font spec, make the font's attributes take precedence over
5445 directly-specified attributes.
5446 (merge_face_ref): Recognize :font.
5447
5448 2012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
5449
5450 Do not use memcpy for copying intervals.
5451 * intervals.c (reproduce_interval): New function.
5452 (reproduce_tree, reproduce_tree_obj): Use it.
5453 (reproduce_tree_obj): Remove prototype.
5454
5455 2012-08-17 Paul Eggert <eggert@cs.ucla.edu>
5456
5457 * lisp.h (duration_to_sec_usec): Remove unused decl.
5458
5459 2012-08-17 Alp Aker <alp.tekin.aker@gmail.com>
5460
5461 * nsfont.m (ns_ascii_average_width): Send initWithFormat selector
5462 to an allocated instance of NSString, not to the class itself.
5463
5464 2012-08-17 Juanma Barranquero <lekktu@gmail.com>
5465
5466 * makefile.w32-in (C_CTYPE_H): New macro.
5467 (LISP_H, $(BLD)/ccl.$(O), $(BLD)/doc.$(O), $(BLD)/w32console.$(O)):
5468 ($(BLD)/fontset.$(O), $(BLD)/frame.$(O), $(BLD)/composite.$(O)):
5469 ($(BLD)/sysdep.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
5470
5471 2012-08-16 Paul Eggert <eggert@cs.ucla.edu>
5472
5473 Use ASCII tests for character types.
5474 * category.c, dispnew.c, doprnt.c, editfns.c, syntax.c, term.c:
5475 * xfns.c, xterm.c:
5476 Don't include <ctype.h>; was not needed.
5477 * charset.c, doc.c, fileio.c, font.c, frame.c, gtkutil.c, image.c:
5478 * sysdep.c, xfaces.c:
5479 Include <c-ctype.h> instead of <ctype.h>.
5480 * nsterm.m: Include <c-ctype.h>.
5481 * charset.c (read_hex):
5482 * doc.c (Fsnarf_documentation):
5483 * fileio.c (IS_DRIVE) [WINDOWSNT]:
5484 (DRIVE_LETTER) [DOS_NT]:
5485 (Ffile_name_directory, Fexpand_file_name)
5486 (Fsubstitute_in_file_name):
5487 * font.c (font_parse_xlfd, font_parse_fcname):
5488 * frame.c (x_set_font_backend):
5489 * gtkutil.c (xg_get_font):
5490 * image.c (xbm_scan, xpm_scan, pbm_scan_number):
5491 * nsimage.m (hexchar):
5492 * nsterm.m (ns_xlfd_to_fontname):
5493 * sysdep.c (system_process_attributes):
5494 * xfaces.c (hash_string_case_insensitive):
5495 Use C-locale tests instead of locale-specific tests for character
5496 types, since we want the ASCII interpretation here, not the
5497 interpretation suitable for whatever happens to be the current locale.
5498
5499 2012-08-16 Martin Rudalics <rudalics@gmx.at>
5500
5501 Consistently check windows for validity/liveness
5502 (Bug#11984, Bug#12025, Bug#12026).
5503 * lisp.h (CHECK_VALID_WINDOW): New macro.
5504 * window.c (decode_window): Rename to decode_live_window.
5505 (decode_valid_window, Fwindow_valid_p): New functions.
5506 (Fwindow_frame, Fframe_root_window, Fwindow_minibuffer_p)
5507 (Fframe_first_window, Fframe_selected_window, Fwindow_parent)
5508 (Fwindow_top_child, Fwindow_left_child, Fwindow_next_sibling)
5509 (Fwindow_prev_sibling, Fwindow_combination_limit)
5510 (Fset_window_combination_limit, Fwindow_use_time)
5511 (Fwindow_total_height, Fwindow_total_width, Fwindow_new_total)
5512 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_left_column)
5513 (Fwindow_top_line, Fwindow_body_height, Fwindow_body_width)
5514 (Fwindow_hscroll, Fset_window_hscroll)
5515 (Fwindow_redisplay_end_trigger)
5516 (Fset_window_redisplay_end_trigger, Fwindow_edges)
5517 (Fwindow_pixel_edges, Fwindow_absolute_pixel_edges)
5518 (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
5519 (Fcoordinates_in_window_p, Fwindow_point, Fwindow_start)
5520 (Fwindow_end, Fset_window_point, Fset_window_start)
5521 (Fpos_visible_in_window_p, Fwindow_line_height)
5522 (Fwindow_dedicated_p, Fset_window_dedicated_p)
5523 (Fwindow_prev_buffers, Fset_window_prev_buffers)
5524 (Fwindow_next_buffers, Fwindow_parameters, Fwindow_parameter)
5525 (Fset_window_parameter, Fwindow_display_table)
5526 (Fset_window_display_table, Fdelete_other_windows_internal)
5527 (Fset_window_buffer, Fset_window_new_total)
5528 (Fset_window_new_normal, Fdelete_window_internal)
5529 (Fwindow_text_height, Fset_window_margins, Fwindow_margins)
5530 (Fset_window_fringes, Fwindow_fringes, Fset_window_scroll_bars)
5531 (Fwindow_scroll_bars): Check whether argument window is a valid or
5532 live window. Update doc-strings.
5533 (syms_of_window): New symbol Qwindow_valid_p.
5534 * keyboard.c (Fposn_at_x_y): Check whether argument
5535 frame_or_window denotes a valid window.
5536
5537 2012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
5538
5539 Fix previous char table change.
5540 * lisp.h (CHAR_TABLE_SET): Use sub_char_table_set_contents.
5541 * chartab.c (optimize_sub_char_table): Likewise.
5542
5543 2012-08-16 Chong Yidong <cyd@gnu.org>
5544
5545 * gtkutil.c (xg_get_font): Demand an Xft font (Bug#3228).
5546
5547 * xfont.c (xfont_open):
5548 * xftfont.c (xftfont_open): Set the font's max_width field.
5549
5550 * nsfont.m (nsfont_open): Similar to the Xft backend, set
5551 min_width to space_width and average_width to the average over
5552 printable ASCII characters.
5553 (ns_char_width): Code cleanup.
5554 (ns_ascii_average_width): New utility function.
5555
5556 * font.h (struct font): Update comments.
5557
5558 2012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
5559
5560 Simple interface to set Lisp_Object fields of character tables.
5561 * lisp.h (CSET): New macro.
5562 (char_table_set_extras, char_table_set_contents)
5563 (sub_char_table_set_contents): New function.
5564 * casetab.c, category.c, chartab.c, fns.c, fontset.c, search.c:
5565 * syntax.c: Adjust users.
5566
5567 2012-08-16 Stefan Monnier <monnier@iro.umontreal.ca>
5568
5569 * eval.c (eval_sub): Bind lexical-binding.
5570 * lread.c (Qlexical_binding): Make non-static.
5571
5572 2012-08-15 Jan Djärv <jan.h.d@swipnet.se>
5573
5574 * nsmenu.m (popupSession): Remove.
5575 (pop_down_menu): Remove endModalSession.
5576 (timeout_handler:): New method.
5577 (runDialogAt:): Get next timeout. Start a NSTimer with that timeout.
5578 Call runModalForWindow. Check timer_fired when it returns.
5579 If not set, cancel timer and break out of loop.
5580 Otherwise loop again, with a new timeout.
5581
5582 * nsterm.m: Include fcntl.h if present.
5583 (fd_entry, t_readfds, inNsSelect): Remove.
5584 (select_writefds, select_valid, select_timeout, selfds)
5585 (select_mutex, apploopnr): Add.
5586 (EV_TRAILER): Call kbd_buffer_store_event_hold only if q_event_ptr.
5587 Otherwise call kbd_buffer_store_event.
5588 (ns_send_appdefined): Remove release of fd_entry.
5589 (ns_read_socket): Always send appdefined. Remove inNsSelect check.
5590 Increment and decrement apploopnr.
5591 (ns_select): If no file descriptors, just do a NSTimer.
5592 Otherwise copy read/write masks and start select thread (fd_handler).
5593 Start main loop and wait for application defined event.
5594 Inform select thread to stop selecting after main loop is exited.
5595 (ns_term_init): Create selfds pipe and set non-blocking.
5596 Initialize select_mutex. Start the select thread (fd_handler).
5597 (fd_handler:): Loop forever, wait for info from the main thread
5598 to either start or stop selecting. When select returns, send
5599 and appdefined event.
5600 (sendScrollEventAtLoc:fromEvent:): Check if q_event_ptr is set.
5601 If not call kbd_buffer_store_event.
5602
5603 * nsterm.h (EmacsApp): fd_handler takes id argument.
5604 (EmacsDialogPanel): Add timer_fired and timeout_handler.
5605
5606 * gtkutil.c (xg_mark_data): Use FRAME_X_P.
5607
5608 2012-08-15 Eli Zaretskii <eliz@gnu.org>
5609
5610 * region-cache.c (move_cache_gap): Update gap_len using the actual
5611 growth of the boundaries array. Do not change cache_len.
5612 (Bug#12196)
5613
5614 2012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
5615
5616 Generalize and cleanup font subsystem checks.
5617 * font.h (FONT_DEBUG, font_assert): Remove.
5618 * font.c, fontset.c, w32font.c, xfont.c, xftfont.c:
5619 Change font_assert to eassert. Use eassert where appropriate.
5620
5621 2012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
5622
5623 * gtkutil.c (xg_get_font): Use pango_units_to_double.
5624
5625 2012-08-15 Chong Yidong <cyd@gnu.org>
5626
5627 * gtkutil.c (xg_get_font): Rename from xg_get_font_name.
5628 When using the new font chooser, use gtk_font_chooser_get_font_desc to
5629 extract the font descriptor instead of just the font name.
5630 In that case, return a font spec instead of a string.
5631 (x_last_font_name): Move to this file from xfns.c.
5632
5633 * xfns.c (Fx_select_font): The return value can also be a font
5634 spec. Move x_last_font_name management to gtkutil.c.
5635
5636 * xfaces.c: Make font weight and style symbols non-static.
5637
5638 2012-08-15 Stefan Monnier <monnier@iro.umontreal.ca>
5639
5640 * minibuf.c (read_minibuf): Ignore caller's inhibit-read-only
5641 (bug#12117).
5642
5643 2012-08-14 Stefan Monnier <monnier@iro.umontreal.ca>
5644
5645 * alloc.c (Fgarbage_collect): Use plural form consistently.
5646
5647 2012-08-14 Eli Zaretskii <eliz@gnu.org>
5648
5649 * keyboard.c (command_loop_1): Reset ignore_mouse_drag_p flag each
5650 iteration through the command loop. Fixes a problem whereby mouse
5651 movements are ignored until the first mouse click.
5652
5653 2012-08-14 Paul Eggert <eggert@cs.ucla.edu>
5654
5655 Use bool, not int, for Lisp booleans.
5656 This is more natural, and on my platform (GCC 4.7.1 x86-64) it
5657 makes Emacs a bit smaller and presumably a bit faster.
5658 * lisp.h: Include <stdbool.h>.
5659 (struct Lisp_Boolfwd, defvar_bool):
5660 * lread.c (defvar_bool): Use bool, not int, for Lisp booleans.
5661 * regex.c [!emacs]: Include <stdbool.h>.
5662 (false, true): Remove; <stdbool.h> does this for us now.
5663
5664 2012-08-14 Chong Yidong <cyd@gnu.org>
5665
5666 * character.c (Fcharacterp): Doc fix (Bug#12076).
5667
5668 * data.c (Findirect_variable): Doc fix (Bug#11040).
5669
5670 * chartab.c (Fmap_char_table): Doc fix (Bug#12061).
5671
5672 * editfns.c (Fformat): Doc fix (Bug#12059).
5673 (Fsave_current_buffer): Doc fix (Bug#11542).
5674
5675 2012-08-14 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
5676
5677 * keyboard.c (access_keymap_keyremap): Accept anonymous functions
5678 (bug#12022).
5679
5680 2012-08-14 Martin Rudalics <rudalics@gmx.at>
5681
5682 * frame.c (make_frame_without_minibuffer, make_minibuffer_frame)
5683 (delete_frame, Fmake_frame_invisible, Ficonify_frame):
5684 * minibuf.c (choose_minibuf_frame, read_minibuf):
5685 * w32fns.c (x_create_tip_frame):
5686 * xfns.c (x_create_tip_frame): Call set_window_buffer instead of
5687 Fset_window_buffer (Bug#11984, Bug#12025, Bug#12026).
5688
5689 2012-08-14 Paul Eggert <eggert@cs.ucla.edu>
5690
5691 * intervals.c (offset_intervals): Remove obsolete comment.
5692
5693 2012-08-14 Andreas Schwab <schwab@linux-m68k.org>
5694
5695 * gtkutil.c (find_rtl_image, update_frame_tool_bar): Use NILP.
5696
5697 2012-08-14 Gergely Risko <gergely@risko.hu>
5698
5699 * coding.c (decode_coding): Record buffer modification before
5700 disabling undo_list (Bug#11773).
5701
5702 2012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
5703
5704 Revert and cleanup some recent overlay changes.
5705 * buffer.h (enum overlay_type): Remove.
5706 (buffer_get_overlays, buffer_set_overlays): Likewise.
5707 (buffer_set_overlays_before, buffer_set_overlays_after):
5708 New function. Adjust users.
5709 (unchain_both): Add eassert.
5710
5711 2012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
5712
5713 * gtkutil.c (update_frame_tool_bar): Use EQ where appropriate.
5714
5715 2012-08-14 Paul Eggert <eggert@cs.ucla.edu>
5716
5717 * gtkutil.c (xg_mark_data): Don't assume C99.
5718
5719 2012-08-13 Jan Djärv <jan.h.d@swipnet.se>
5720
5721 * gtkutil.c (xg_frame_tb_info): New struct.
5722 (TB_INFO_KEY): New define.
5723 (xg_free_frame_widgets): Free xg_frame_tb_info for frame if present.
5724 (xg_mark_data): Mark Lisp_Objects in xg_frame_tb_info.
5725 (xg_create_tool_bar): Allocate and initialize a xg_frame_tb_info
5726 if not present.
5727 (update_frame_tool_bar): Return early if data in xg_frame_tb_info
5728 is up to date. Otherwise store new data.
5729 (free_frame_tool_bar): Free xg_frame_tb_info if present.
5730
5731 2012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
5732
5733 Use KSET for write access to Lisp_Object members of struct kboard.
5734 * keyboard.h (KSET): New macro.
5735 * callint.c, category.c, frame.c, keyboard.c, keyboard.h, macros.c:
5736 * msdos.c, nsfns.m, nsterm.m, term.c, w32fns.c, w32term.c, xfns.c:
5737 * xterm.c: Adjust users.
5738
5739 2012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
5740
5741 Use BSET for write access to Lisp_Object members of struct buffer.
5742 * buffer.h (BSET): New macro.
5743 * buffer.c, casetab.c, cmds.c, coding.c, data.c, editfns.c:
5744 * fileio.c, frame.c, indent.c, insdel.c, intervals.c, keymap.c:
5745 * minibuf.c, print.c, process.c, syntax.c, undo.c, w32fns.c:
5746 * window.c, xdisp.c, xfns.c: Adjust users.
5747
5748 2012-08-11 BT Templeton <bpt@hcoop.net> (tiny change)
5749
5750 * lread.c (syms_of_lread): Initialize Vlexical_binding.
5751
5752 2012-08-11 Jan Djärv <jan.h.d@swipnet.se>
5753
5754 * nsterm.m (not_in_argv): New function.
5755 (application:openFile, application:openTempFile:):
5756 (application:openFileWithoutUI:, application:openFiles:): Open file
5757 if not_in_argv returns non-zero (bug#12171).
5758
5759 * gtkutil.c (gtk_font_chooser_dialog_new, GTK_FONT_CHOOSER)
5760 (gtk_font_chooser_set_font, gtk_font_chooser_get_font):
5761 Define for Gtk+ versions less than 3.2.
5762 (xg_get_font_name): Use those functions/macros here.
5763 Reported by Frans Oilinki <moilinki@gmail.com>.
5764
5765 2012-08-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
5766
5767 * unexmacosx.c (copy_data_segment): Copy initialized data in
5768 statically linked libraries from input file rather than memory.
5769
5770 * unexmacosx.c (print_load_command_name): Add cases LC_MAIN,
5771 LC_SOURCE_VERSION, and LC_DYLIB_CODE_SIGN_DRS.
5772 (dump_it) [LC_DYLIB_CODE_SIGN_DRS]: Call copy_linkedit_data.
5773
5774 2012-08-10 Glenn Morris <rgm@gnu.org>
5775
5776 * conf_post.h (IF_LINT, lint_assume): Move here from lisp.h.
5777 * lisp.h (IF_LINT, lint_assume): Move to conf_post.h.
5778
5779 2012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
5780
5781 Fix last change to allow compilation with low optimization levels.
5782 * intervals.c (INTERVALS_INLINE): Define to EXTERN_INLINE.
5783 Reported by Jan Djärv <jan.h.d@swipnet.se>.
5784
5785 2012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
5786
5787 Use common inline syntax in intervals.h.
5788 * intervals.h (INTERVALS_INLINE): New macro.
5789 Change all users from LISP_INLINE.
5790
5791 2012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
5792
5793 Define Qnone once for all platforms.
5794 * frame.c (Qnone): Define here.
5795 (syms_of_frame): DEFSYM it.
5796 * lisp.h (Qnone): New declaration.
5797 * nsfns.m, nsterm.h, nsterm.m, w32fns.c, w32font.c:
5798 * xfns.c: Remove duplication. Adjust users.
5799
5800 2012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
5801
5802 Remove unused macros from intervals.h.
5803 * intervals.h (MERGE_INSERTIONS, DISPLAY_INVISIBLE_GLYPH): Remove.
5804 * intervals.c: Adjust comment.
5805
5806 2012-08-10 Eli Zaretskii <eliz@gnu.org>
5807
5808 * w32fns.c <w32_unicode_gui>: New static variable.
5809 (globals_of_w32fns): Initialize it according to os_subtype.
5810 (w32_init_class, w32_msg_pump, w32_wnd_proc): Use it instead of
5811 testing os_subtype.
5812
5813 2012-08-10 Joakim Hårsman <joakim.harsman@gmail.com> (tiny change)
5814 Eli Zaretskii <eliz@gnu.org>
5815
5816 Fix bug #10299 with Unicode characters sent by customized
5817 keyboards created by MSKLC.
5818 * w32fns.c (INIT_WINDOW_CLASS): New macro.
5819 (w32_init_class): Use it to initialize the Emacs class with either
5820 ANSI or Unicode API calls.
5821 (w32_msg_pump): Call GetMessageW and DispatchMessageW on NT and
5822 later.
5823 (w32_wnd_proc): If the character code sent by WM_CHAR or
5824 WM_SYSCHAR is above 255, post a WM_UNICHAR message, not the
5825 original message. Call DefWindowProcW on NT and later.
5826
5827 2012-08-10 Glenn Morris <rgm@gnu.org>
5828
5829 * Makefile.in (config_h): Fix conf_post.h out-of-tree build location.
5830
5831 * lisp.h (DIRECTORY_SEP): Let configure set it.
5832
5833 2012-08-09 Dmitry Antipov <dmantipov@yandex.ru>
5834
5835 Use TSET for write access to Lisp_Object slots of struct terminal.
5836 * termhooks.h (TSET): New macro.
5837 * coding.c, terminal.c, xselect.c: Adjust users.
5838
5839 2012-08-08 Stefan Monnier <monnier@iro.umontreal.ca>
5840
5841 * xdisp.c (safe_eval_handler): Remove prototype. Receive args describing
5842 the failing expression, include them in the error message.
5843 * eval.c (internal_condition_case_n): Pass nargs and args to hfun.
5844 * lisp.h (internal_condition_case_n): Update declaration.
5845
5846 2012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
5847
5848 Inline functions to examine and change buffer overlays.
5849 * buffer.c (unchain_both): New function.
5850 * buffer.h (buffer_get_overlays, buffer_set_overlays):
5851 (buffer_has_overlays): New function.
5852 (enum overlay_type): New enum.
5853 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c:
5854 * insdel.c, intervals.c, print.c, xdisp.c: Adjust users.
5855
5856 2012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
5857
5858 Inline functions to examine and change buffer intervals.
5859 * alloc.c (mark_interval_tree): Remove.
5860 (MARK_INTERVAL_TREE): Simplify.
5861 (UNMARK_BALANCE_INTERVALS): Remove. Adjust users.
5862 * intervals.c (buffer_balance_intervals): New function.
5863 (graft_intervals_into_buffer): Adjust indentation.
5864 (set_intervals_multibyte): Simplify.
5865 * buffer.h (BUF_INTERVALS): Remove.
5866 (buffer_get_intervals, buffer_set_intervals): New function.
5867 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c, insdel.c:
5868 * intervals.c, textprop.c: Adjust users.
5869
5870 2012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
5871
5872 Inline functions to examine and change string intervals.
5873 * lisp.h (STRING_INTERVALS, STRING_SET_INTERVALS): Remove.
5874 (string_get_intervals, string_set_intervals): New function.
5875 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
5876 * lread.c, print.c, textprop.c: Adjust users.
5877
5878 2012-08-08 Glenn Morris <rgm@gnu.org>
5879
5880 * lisp.mk (lisp): Remove language/persian.elc.
5881
5882 2012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
5883
5884 Cleanup intervals.
5885 * intervals.h (NULL_INTERVAL, DEFAULT_INTERVAL): Remove.
5886 (NULL_INTERVAL_P): Likewise. Adjust users.
5887 (FRONT_STICKY_P, END_NONSTICKY_P, FRONT_NONSTICKY_P):
5888 Adjust comment. Move under #if 0.
5889 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
5890 * print.c, syntax.c, textprop.c, xdisp.c: Adjust users.
5891
5892 2012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
5893
5894 Check total length of intervals with eassert.
5895 * intervals.h (CHECK_TOTAL_LENGTH): Remove.
5896 * intervals.c: Change all users to eassert.
5897
5898 2012-08-07 Eli Zaretskii <eliz@gnu.org>
5899
5900 * .gdbinit (xframe, xwindow, nextcons, xcar, xcdr, xlist):
5901 Rename fields to match removal of FGET and WGET and disuse of
5902 INTERNAL_FIELD in Lisp_Cons.
5903
5904 2012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
5905
5906 Revert and cleanup Lisp_Cons, Lisp_Misc and Lisp_Symbol things.
5907 * lisp.h (struct Lisp_Symbol): Change xname to meaningful
5908 name since all xname users are fixed long time ago. Do not
5909 use INTERNAL_FIELD.
5910 (set_symbol_name, set_symbol_function, set_symbol_plist):
5911 (set_symbol_next, set_overlay_plist): New function.
5912 (struct Lisp_Cons): Do not use INTERNAL_FIELD.
5913 (struct Lisp_Overlay): Likewise.
5914 (CVAR, MVAR, SVAR): Remove.
5915 * alloc.c, buffer.c, buffer.h, bytecode.c, cmds.c, data.c:
5916 * doc.c, eval.c, fns.c, keyboard.c, lread.c, nsselect.m:
5917 * xterm.c: Adjust users.
5918 * .gdbinit: Change to use name field of struct Lisp_Symbol
5919 where appropriate.
5920
5921 2012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
5922
5923 Basic functions to set Lisp_Object and pointer slots of intervals.
5924 * intervals.h (interval_set_parent, interval_set_object):
5925 (interval_set_left, interval_set_right, interval_set_plist):
5926 (interval_copy_parent): New function.
5927 (SET_INTERVAL_OBJECT, SET_INTERVAL_PARENT, INTERVAL_PTR_SIZE): Remove.
5928 (RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE):
5929 Adjust indentation.
5930 (INTERVAL_SIZE): Remove. Adjust users.
5931 * alloc.c, intervals.c, lread.c, textprop.c: Use new functions.
5932
5933 2012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
5934
5935 Drop PGET and revert read access to Lisp_Objects slots of Lisp_Process.
5936 * process.h (PGET): Remove.
5937 (struct Lisp_Process): Do not use INTERNAL_FIELD.
5938 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
5939
5940 2012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
5941
5942 Drop WGET and revert read access to Lisp_Objects slots of struct window.
5943 * window.h (WGET): Remove.
5944 (struct window): Do not use INTERNAL_FIELD.
5945 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
5946 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
5947 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
5948 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
5949 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
5950 Adjust users.
5951
5952 2012-08-07 Chong Yidong <cyd@gnu.org>
5953
5954 * window.c (Fwindow_edges, Fwindow_pixel_edges)
5955 (Fwindow_absolute_pixel_edges, Fdelete_other_windows_internal)
5956 (Fdelete_window_internal): Signal an error if the window is not on
5957 a live frame (Bug#12025).
5958
5959 2012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
5960
5961 Drop FGET and revert read access to Lisp_Objects slots of struct frame.
5962 * frame.h (FGET): Remove.
5963 (struct frame): Do not use INTERNAL_FIELD.
5964 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
5965 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
5966 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
5967 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
5968
5969 2012-08-06 Juanma Barranquero <lekktu@gmail.com>
5970
5971 * w32.c: Silence compiler warnings.
5972 (map_w32_filename): Remove unused variable `is_fat'.
5973 (chase_symlinks): Add parentheses around expression.
5974
5975 2012-08-06 Glenn Morris <rgm@gnu.org>
5976
5977 * sysdep.c: Respect BROKEN_GETWD.
5978
5979 * dispnew.c (GNU_LIBRARY_PENDING_OUTPUT_COUNT, PENDING_OUTPUT_COUNT):
5980 Let configure handle it.
5981 (stdio_ext.h) [DISPNEW_NEEDS_STDIO_EXT]: Include it.
5982
5983 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
5984
5985 Use GCALIGNMENT where appropriate.
5986 * alloc.c (XMALLOC_HEADER_ALIGNMENT, roundup_size):
5987 (union aligned_Lisp_Symbol, union aligned_Lisp_Misc):
5988 (mark_maybe_pointer, pure_alloc): Change to use GCALIGNMENT.
5989
5990 2012-08-06 Eli Zaretskii <eliz@gnu.org>
5991
5992 * w32menu.c (set_frame_menubar, initialize_frame_menubar):
5993 Don't use FRAME_MENU_BAR_ITEMS as an lvalue.
5994
5995 2012-08-06 Stefan Monnier <monnier@iro.umontreal.ca>
5996
5997 * buffer.h (struct buffer): Revert `indirections' to a simple int;
5998 that should be sufficient for everyone.
5999
6000 2012-08-06 Jan Djärv <jan.h.d@swipnet.se>
6001
6002 * keyboard.c (timer_check_2): Add break so timer_check returns next
6003 timeout.
6004
6005 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
6006
6007 Fix Windows build errors introduced after converting to WGET and WSET.
6008 * w32term.c (w32_set_vertical_scroll_bar): Change to use WSET.
6009 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
6010
6011 2012-08-06 Jan Djärv <jan.h.d@swipnet.se>
6012
6013 * nsterm.m (ns_frame_rehighlight): Use FSET.
6014
6015 * nsmenu.m (ns_update_menubar): Use FSET.
6016
6017 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
6018
6019 Separate read and write access to Lisp_Object slots of Lisp_Process.
6020 * process.h (PGET, PSET): New macros similar to AREF and ASET.
6021 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
6022
6023 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
6024
6025 Separate read and write access to Lisp_Object slots of struct window.
6026 * window.h (WGET, WSET): New macros similar to AREF and ASET.
6027 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
6028 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
6029 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
6030 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
6031 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
6032 Adjust users.
6033
6034 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
6035
6036 Fix Windows build errors introduced after converting to FGET and FSET.
6037 * w32term.c (x_frame_rehighlight, x_scroll_bar_create):
6038 (w32_condemn_scroll_bars, w32_redeem_scroll_bar):
6039 (w32_judge_scroll_bars): Change to use FSET.
6040 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
6041
6042 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
6043
6044 Fix replacement typo.
6045 * window.c (replace_window): Set root_window instead of
6046 selected_window. This fixes a total window subsystem
6047 malfunction reported by Bastien Guerry <bzg@gnu.org>.
6048
6049 2012-08-06 Glenn Morris <rgm@gnu.org>
6050
6051 * lisp.mk (lisp): Add language/persian.elc.
6052
6053 2012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
6054
6055 Separate read and write access to Lisp_Object slots of struct frame.
6056 * frame.h (FGET, FSET): New macros similar to AREF and ASET.
6057 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
6058 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
6059 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
6060 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
6061
6062 2012-08-05 Andreas Schwab <schwab@linux-m68k.org>
6063
6064 * emacs.c (decode_env_path): Only use defaulted if WINDOWSNT.
6065
6066 2012-08-05 Dmitry Antipov <dmantipov@yandex.ru>
6067
6068 Generalize common compile-time constants.
6069 * lisp.h (header_size, bool_header_size, word_size): Now here.
6070 (struct Lisp_Vector): Add comment.
6071 (struct Lisp_Bool_Vector): Move up to define handy constants.
6072 (VECSIZE, PSEUDOVECSIZE): Simplify.
6073 (SAFE_ALLOCA_LISP): Use new constant. Adjust indentation.
6074 * buffer.c, buffer.h, bytecode.c, callint.c, eval.c, fns.c:
6075 * font.c, fontset.c, keyboard.c, keymap.c, macros.c, menu.c:
6076 * msdos.c, w32menu.c, w32term.h, window.c, xdisp.c, xfaces.c:
6077 * xfont.c, xmenu.c: Use word_size where appropriate.
6078
6079 2012-08-05 Lawrence Mitchell <wence@gmx.li>
6080
6081 * search.c (Freplace_match): Treat \? in the replacement text
6082 literally (Bug#8161).
6083
6084 2012-08-05 Chong Yidong <cyd@gnu.org>
6085
6086 * term.c (Vsuspend_tty_functions, Vresume_tty_functions):
6087 * frame.c (Vdelete_frame_functions):
6088 * emacs.c (Vkill_emacs_hook): Doc fix.
6089
6090 2012-08-04 Eli Zaretskii <eliz@gnu.org>
6091
6092 * xfns.c (x_set_menu_bar_lines): Fix compilation error in
6093 --with-x-toolkit=no builds.
6094 Reported by Carsten Mattner <carstenmattner@gmail.com>.
6095
6096 2012-08-04 Chong Yidong <cyd@gnu.org>
6097
6098 * syntax.c (Fmodify_syntax_entry): Doc fix.
6099
6100 2012-08-04 Eli Zaretskii <eliz@gnu.org>
6101
6102 Fix startup warnings about ../site-lisp on MS-Windows. (Bug#11959)
6103 * w32.c (init_environment): Change the default values of many
6104 environment variables in dflt_envvars[] to NULL, to avoid pushing
6105 them into environment when they were not already defined.
6106 Remove the code that deletes site-lisp subdirectories from the default
6107 value of EMACSLOADPATH, as it is no longer needed.
6108 (check_windows_init_file): Now external, not static.
6109 Use Vload_path as is, without adding anything, as this function is now
6110 called when Vload_path is already set up.
6111
6112 * w32.h (check_windows_init_file): Add prototype.
6113
6114 * emacs.c (init_cmdargs) [WINDOWSNT]: When running from the build
6115 directory, ignore the /*/i386/ tail in Vinvocation_directory, for
6116 compatibility with Posix platforms.
6117 (main): Move the call to check_windows_init_file to here from
6118 w32.c.
6119 (decode_env_path) [WINDOWSNT]: Expand the %emacs_dir%/ prefix, if
6120 any, in the DEFALT argument into the root of the Emacs build or
6121 installation tree, as appropriate.
6122
6123 * callproc.c (init_callproc_1): Call decode_env_path instead of
6124 doing its equivalent by hand.
6125 (init_callproc): Replace DOS_NT condition with MSDOS, thus letting
6126 the code that sets Vexec_path run on MS-Windows.
6127
6128 * lread.c (init_lread): Add comments to #ifdef's.
6129
6130 * msdos.c (dos_set_window_size, IT_update_begin)
6131 (IT_frame_up_to_date, IT_set_frame_parameters): Use FVAR and WVAR
6132 instead of direct references.
6133
6134 2012-08-04 Paul Eggert <eggert@cs.ucla.edu>
6135
6136 Export DEFAULT_REHASH_* to GDB.
6137 * lisp.h (DEFAULT_REHASH_THRESHOLD, DEFAULT_REHASH_SIZE):
6138 Now constants, not macros.
6139
6140 2012-08-03 Paul Eggert <eggert@cs.ucla.edu>
6141
6142 Remove unnecessary casts involving pointers.
6143 These casts are no longer needed now that we assume C89 or later,
6144 since they involve casting to or from void *.
6145 * alloc.c (make_pure_string, make_pure_c_string, pure_cons)
6146 (make_pure_float, make_pure_vector):
6147 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP):
6148 * macros.c (Fstart_kbd_macro):
6149 * menu.c (find_and_return_menu_selection):
6150 * minibuf.c (read_minibuf_noninteractive):
6151 * sysdep.c (closedir):
6152 * xdisp.c (x_produce_glyphs):
6153 * xfaces.c (compare_fonts_by_sort_order):
6154 * xfns.c (x_real_positions, select_visual):
6155 * xselect.c (x_stop_queuing_selection_requests)
6156 (x_get_window_property, x_get_window_property_as_lisp_data):
6157 * xterm.c (x_set_frame_alpha, x_find_modifier_meanings):
6158 Remove unnecessary pointer casts.
6159 * alloc.c (record_xmalloc): New function.
6160 * lisp.h (record_xmalloc): New decl.
6161 (SAFE_ALLOCA): Now takes just one arg -- the size -- and acts
6162 more like a function. This is because the pointer cast is not
6163 needed. All uses changed.
6164 * print.c (print_string, print_error_message): Avoid length recalc.
6165
6166 Improve fix for macroexp crash with debugging (Bug#12118).
6167 * lisp.h (ASET) [ENABLE_CHECKING]: Pay attention to
6168 ARRAY_MARK_FLAG when checking subscripts, because ASET is
6169 not supposed to be invoked from the garbage collector.
6170 See Andreas Schwab in <http://bugs.gnu.org/12118#25>.
6171 (gc_aset): New function, which is like ASET but can be
6172 used in the garbage collector.
6173 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
6174 (set_hash_index): Use it instead of ASET.
6175
6176 2012-08-03 Eli Zaretskii <eliz@gnu.org>
6177
6178 Support symlinks on latest versions of MS-Windows.
6179 * w32.c: Include winioctl.h and aclapi.h.
6180 (is_symlink, chase_symlinks, enable_privilege, restore_privilege)
6181 (revert_to_self): Forward declarations of static functions.
6182 <static BOOL g_b_init_get_security_info>:
6183 <g_b_init_create_symbolic_link>: New static flags.
6184 (globals_of_w32): Initialize them to zero.
6185 (GetSecurityInfo_Proc, CreateSymbolicLink_Proc): New typedefs.
6186 (map_w32_filename): Improve commentary. Simplify switch.
6187 (SYMBOLIC_LINK_FLAG_DIRECTORY): Define if not defined in system
6188 headers (most versions of MinGW w32api don't).
6189 (get_security_info, create_symbolic_link)
6190 (get_file_security_desc_by_handle, is_symlink, chase_symlinks):
6191 New functions.
6192 (sys_access, sys_chmod): Call 'chase_symlinks' to resolve symlinks
6193 in the argument file name.
6194 (sys_access): Call unc_volume_file_attributes only if
6195 GetFileAttributes fails with network-related error codes.
6196 (sys_rename): Diagnose renaming of a symlink when the user doesn't
6197 have the required privileges.
6198 (get_file_security_desc_by_name): Rename from
6199 get_file_security_desc.
6200 (stat_worker): New function, with most of the guts of 'stat', and
6201 with addition of handling of symlinks and support for 'lstat'.
6202 If possible, get file's attributes and security information by
6203 handle, not by name. Produce S_IFLNK bit for symlinks, when
6204 called from 'lstat'.
6205 (stat, lstat): New functions, call 'stat_worker'.
6206 (symlink, readlink, careadlinkat): Rewritten to create and resolve
6207 symlinks when the underlying filesystem supports them.
6208
6209 2012-08-02 Paul Eggert <eggert@cs.ucla.edu>
6210
6211 Fix macroexp crash on Windows with debugging (Bug#12118).
6212 * lisp.h (ASET) [ENABLE_CHECKING]: Ignore ARRAY_MARK_FLAG when
6213 checking subscripts; problem introduced with the recent
6214 "ASET (a, i, v)" rather than "AREF (a, i) = v" patch.
6215 (ARRAY_MARK_FLAG): Now a macro as well as a constant,
6216 since it's used in non-static inline functions now.
6217
6218 * xfaces.c (face_at_buffer_position, face_for_overlay_string):
6219 Don't assume buffer size fits in 'int'. Remove unused local.
6220
6221 Use C99-style 'extern inline' if available.
6222 * buffer.h (BUFFER_INLINE):
6223 * category.h (CATEGORY_INLINE):
6224 * character.h (CHARACTER_INLINE):
6225 * charset.h (CHARSET_INLINE):
6226 * composite.h (COMPOSITE_INLINE):
6227 * dispextern.h (DISPEXTERN_INLINE):
6228 * lisp.h (LISP_INLINE):
6229 * systime.h (SYSTIME_INLINE):
6230 New macro, replacing 'static inline' in this header.
6231 * buffer.h, category.h, character.h, charset.h, composite.h:
6232 * dispextern.h, lisp.h, systime.h:
6233 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
6234 * alloc.c (LISP_INLINE):
6235 * buffer.c (BUFFER_INLINE):
6236 * category.c (CATEGORY_INLINE):
6237 * character.c (CHARACTER_INLINE):
6238 * charset.c (CHARSET_INLINE):
6239 * composite.c (COMPOSITE_INLINE):
6240 * dispnew.c (DISPEXTERN_INLINE):
6241 * sysdep.c (SYSTIME_INLINE):
6242 Define to EXTERN_INLINE, so that the corresponding functions
6243 are compiled into code.
6244 * conf_post.h (INLINE, EXTERN_INLINE, INLINE_HEADER_BEGIN)
6245 (INLINE_HEADER_END): New macros.
6246 * lisp.h (PSEUDOVECTOR_FLAG): Now a macro as well as a constant,
6247 since it's used in non-static inline functions now.
6248 (VALMASK) [!USE_LSB_TAG]: Likewise.
6249
6250 2012-08-02 Glenn Morris <rgm@gnu.org>
6251
6252 * s/: Remove empty directory.
6253
6254 * s/ms-w32.h: Move to ../nt/inc.
6255 * makefile.w32-in (TAGS, TAGS-gmake, MS_W32_H):
6256 Update for new ms-w32.h location.
6257
6258 2012-08-02 Paul Eggert <eggert@cs.ucla.edu>
6259
6260 Port to Solaris 8.
6261 * syswait.h (WRETCODE): Remove, consistently with ../configure.ac.
6262
6263 2012-08-02 Glenn Morris <rgm@gnu.org>
6264
6265 * nsterm.m (ns_exec_path, ns_load_path): Use SEPCHAR rather than
6266 hard-coding the path separator.
6267
6268 2012-08-01 Paul Eggert <eggert@cs.ucla.edu>
6269
6270 Use "ASET (a, i, v)" rather than "AREF (a, i) = v".
6271 This how ASET and AREF are supposed to work, and makes
6272 it easier to think about future improvements. See
6273 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00026.html>.
6274 * charset.h (set_charset_attr): New function.
6275 All lvalue-style uses of CHARSET_DECODER etc. changed to use it.
6276 * lisp.h (ASET): Rewrite so as not to use AREF in an lvalue style.
6277 (aref_addr): New function. All uses of &AREF(...) changed.
6278 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
6279 (set_hash_index): New functions. All lvalue-style uses of
6280 HASH_KEY etc. changed.
6281 * keyboard.c (set_prop): New function. All lvalue-style uses
6282 of PROP changed.
6283
6284 2012-08-01 Alp Aker <alp.tekin.aker@gmail.com>
6285
6286 * nsterm.m (ns_set_vertical_scroll_bar, ns_redeem_scroll_bar)
6287 (EmacsWindow-accessibilityAttributeValue, EmacsScroller-initFrame:)
6288 (EmacsScroller-dealloc): Adjust to use WVAR. (Bug#12114)
6289 * nsfns.m (ns_set_name_as_filename): Likewise.
6290 * nsmenu.m (ns_update_menubar): Likewise.
6291 * nsselect.m (symbol_to_nsstring): Adjust to use SVAR.
6292
6293 2012-08-01 Eli Zaretskii <eliz@gnu.org>
6294
6295 * .gdbinit (xcar, xcdr, xlist, xwindow, nextcons, xprintsym):
6296 Adapt to latest changes in field names of the corresponding Lisp
6297 objects.
6298
6299 * xdisp.c (try_window_id): Use WVAR in IF_DEBUG code.
6300
6301 2012-08-01 Glenn Morris <rgm@gnu.org>
6302
6303 * s/msdos.h: Remove file.
6304 * conf_post.h [MSDOS]: New section, moved from s/msdos.h.
6305 * Makefile.in (S_FILE): Remove.
6306 (config_h): Remove S_FILE.
6307
6308 2012-08-01 Juanma Barranquero <lekktu@gmail.com>
6309
6310 * s/ms-w32.h (DEVICE_SEP, IS_DIRECTORY_SEP, IS_ANY_SEP):
6311 Remove; moved to nt/config.nt.
6312
6313 2012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
6314
6315 Use INTERNAL_FIELD for conses and overlays.
6316 * lisp.h (struct Lisp_Cons): Use INTERNAL_FIELD.
6317 Remove obsolete comment.
6318 (MVAR): New macro.
6319 (struct Lisp_Overlay): Use INTERNAL_FIELD.
6320 * alloc.c, buffer.c, buffer.h, fns.c: Adjust users.
6321
6322 2012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
6323
6324 Use INTERNAL_FIELD for symbols.
6325 * lisp.h (SVAR): New macro. Adjust users.
6326 * alloc.c, bytecode.c, cmds.c, data.c, doc.c, eval.c:
6327 * fns.c, keyboard.c, lread.c, xterm.c: Users changed.
6328
6329 2012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
6330
6331 Use INTERNAL_FIELD for processes.
6332 * process.h (PVAR): New macro. Adjust style.
6333 (struct Lisp_Process): Change Lisp_Object members to INTERNAL_FIELD.
6334 * print.c, process.c, sysdep.c, w32.c, xdisp.c: Users changed.
6335
6336 2012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
6337
6338 Use INTERNAL_FIELD for windows.
6339 * window.h (WVAR): New macro.
6340 (struct window): Change Lisp_Object members to INTERNAL_FIELD.
6341 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
6342 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
6343 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, nsterm.m, print.c:
6344 * textprop.c, w32fns.c, w32menu.c, w32term.c, window.c, xdisp.c:
6345 * xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
6346
6347 2012-08-01 Paul Eggert <eggert@cs.ucla.edu>
6348
6349 * coding.h (CODING_ATTR_FLUSHING): Remove; unused and wouldn't work.
6350
6351 2012-08-01 Glenn Morris <rgm@gnu.org>
6352
6353 * lisp.h (IS_DIRECTORY_SEP, IS_DEVICE_SEP, IS_ANY_SEP):
6354 Move to configure.ac.
6355
6356 2012-08-01 Juanma Barranquero <lekktu@gmail.com>
6357
6358 * makefile.w32-in (CONFIG_H): Update dependencies.
6359 (CONF_POST_H): New macro.
6360
6361 * s/ms-w32.h (SEPCHAR, NULL_DEVICE): Remove; moved to nt/config.nt.
6362
6363 2012-07-31 Glenn Morris <rgm@gnu.org>
6364
6365 * Makefile.in (S_FILE): No longer set by configure.
6366
6367 * conf_post.h (config_opsysfile): Move earlier, so that WINDOWSNT
6368 is available.
6369 (alloca.h) [WINDOWSNT]: Don't include it on MS Windows.
6370
6371 * process.h (NULL_DEVICE):
6372 * emacs.c (SEPCHAR):
6373 * editfns.c (USER_FULL_NAME): Let configure set them.
6374
6375 * s/README, s/template.h: Remove files.
6376
6377 * conf_post.h [HPUX]: Undefine HAVE_RANDOM and HAVE_RINT.
6378
6379 * conf_post.h (AMPERSAND_FULL_NAME, subprocesses):
6380 Move to configure.ac.
6381
6382 2012-07-31 Eli Zaretskii <eliz@gnu.org>
6383
6384 * .gdbinit (xframe): Adapt to introduction of FVAR and the
6385 resulting renaming of 'struct frame' members.
6386
6387 * w32menu.c (w32_menu_show): Revert bogus introduction of FVAR.
6388
6389 * fontset.c (dump_fontset): Fix compilation with ENABLE_CHECKING
6390 after introduction of FVAR.
6391
6392 2012-07-31 Jan Djärv <jan.h.d@swipnet.se>
6393
6394 * nsmenu.m (update_frame_tool_bar): Change key from NSObject* to id.
6395
6396 * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Use drawInRect
6397 instead of compositeToPoint.
6398 (applicationShouldTerminate): Pass NS String literal to NSRunAlertPanel.
6399
6400 * nsfns.m, nsmenu.m, nsterm.m: Adopt to struct frame/FVAR changes.
6401
6402 2012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
6403
6404 Generalize INTERNAL_FIELD between buffers, keyboards and frames.
6405 * lisp.h (INTERNAL_FIELD): New macro.
6406 * buffer.h (BUFFER_INTERNAL_FIELD): Remove.
6407 (BVAR): Change to use INTERNAL_FIELD.
6408 * keyboard.h (KBOARD_INTERNAL_FIELD): Likewise.
6409 (KVAR): Change to use INTERNAL_FIELD.
6410 * frame.h (FVAR): New macro.
6411 (struct frame): Use INTERNAL_FIELD for all Lisp_Object fields.
6412 * alloc.c, buffer.c, data.c, dispnew.c, dosfns.c, eval.c, frame.c:
6413 * fringe.c, gtkutil.c, minibuf.c, nsfns.m, nsterm.m, print.c:
6414 * term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
6415 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
6416
6417 2012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
6418
6419 Miscellaneous fixes for non-default X toolkits.
6420 * xfns.c (Fx_file_dialog): Change to SSDATA to avoid warnings.
6421 * xterm.c (x_frame_of_widget): Remove redundant prototype.
6422 Move under #ifdef USE_LUCID.
6423 (x_create_toolkit_scroll_bar): Adjust scroll_bar_name
6424 definition and usage to avoid warnings.
6425
6426 2012-07-31 Jan Djärv <jan.h.d@swipnet.se>
6427
6428 * nsterm.m (openFiles): Fix previous checkin.
6429
6430 2012-07-31 Paul Eggert <eggert@cs.ucla.edu>
6431
6432 * indent.c (compute_motion): Remove unused local.
6433
6434 2012-07-31 Glenn Morris <rgm@gnu.org>
6435
6436 * s/usg5-4-common.h (wait3, WRETCODE): Let configure set them.
6437
6438 * conf_post.h [USG5_4]:
6439 Move remaining contents of s/usg5-4-common.h here.
6440 * s/usg5-4-common.h: Remove file.
6441
6442 * conf_post.h [IRIX6_5]: Move remaining contents of s/irix6-5.h here.
6443 * s/irix6-5.h: Remove file.
6444
6445 * conf_post.h [DARWIN_OS]: Move remaining contents of s/darwin.h here.
6446 * s/darwin.h: Remove file.
6447
6448 * conf_post.h [HPUX]: Move random, srandom here from s/hpux10-20.h.
6449 * s/hpux10-20.h: Remove file, which is now empty.
6450
6451 2012-07-30 Glenn Morris <rgm@gnu.org>
6452
6453 * conf_post.h: New, split from configure.ac's AH_BOTTOM.
6454 * Makefile.in (config_h): Add conf_post.h.
6455 * makefile.w32-in (CONFIG_H): Add conf_post.h.
6456
6457 2012-07-30 Jan Djärv <jan.h.d@swipnet.se>
6458
6459 * nsterm.m (ns_do_open_file): New variable.
6460 (ns_term_init): Set ns_do_open_file to YES after run returns.
6461 (openFile, openTempFile, openFileWithoutUI, openFiles):
6462 Open files only if ns_do_open_file.
6463
6464 2012-07-30 Paul Eggert <eggert@cs.ucla.edu>
6465
6466 * lisp.h (SWITCH_ENUM_CAST): Remove. All uses removed.
6467 This no-op macro hasn't been needed for many years.
6468 * src/regex.c (SWITCH_ENUM_CAST) [!emacs]: Likewise.
6469
6470 Export DIRECTORY_SEP, TYPEMASK, VALMASK to GDB.
6471 * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]: Add lsb_bits.
6472 * lisp.h (enum lsb_bits) [USE_LSB_TAG]: New enum, for
6473 gdb_make_enums_visible.
6474 (TYPEMASK, VALMASK) [USE_LSB_TAGS]: Now enum constants, not macros.
6475 (DIRECTORY_SEP): Now a constant, not a macro.
6476
6477 2012-07-30 Eli Zaretskii <eliz@gnu.org>
6478
6479 * w32fns.c (w32_wnd_proc): Pass w32_keyboard_codepage to
6480 w32_kbd_patch_key as the 2nd arg. (Bug#12082)
6481
6482 * w32term.c <w32_keyboard_codepage>: Renamed from
6483 keyboard_codepage and now external. All users changed.
6484
6485 * w32term.h: Add declaration of w32_keyboard_codepage.
6486
6487 * w32inevt.c (w32_kbd_patch_key): Accept an additional argument --
6488 the codepage to translate keys to Unicode. If this argument is
6489 -1, use the value returned by GetConsoleCP. All callers changed.
6490
6491 2012-07-30 Paul Eggert <eggert@cs.ucla.edu>
6492
6493 Update .PHONY listings in makefiles.
6494 * Makefile.in (.PHONY): Add all, mostlyclean, clean,
6495 bootstrap-clean, distclean, maintainer-clean, versioclean,
6496 extraclean, frc.
6497
6498 * lisp.h (STRING_BYTES_BOUND): Cast entire result to ptrdiff_t.
6499 This is a bit clearer. Fix some commentary typos.
6500
6501 2012-07-30 Glenn Morris <rgm@gnu.org>
6502
6503 * s/netbsd.h: Let configure include signal.h if needed.
6504 Remove file, which is now empty.
6505
6506 * s/usg5-4-common.h (_longjmp, _setjmp, TIOCSIGSEND):
6507 Let configure set them.
6508 * s/irix6-5.h (_longjmp, _setjmp, TIOCSIGSEND):
6509 No more need to undefine.
6510
6511 2012-07-30 Andreas Schwab <schwab@linux-m68k.org>
6512
6513 * keymap.c (Fkey_description): Don't remove 0x80 bit from
6514 non-single-byte char when adding meta modifier. (Bug#12090)
6515
6516 2012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
6517
6518 Convert safe_call to use variable number of arguments.
6519 * xdisp.c (safe_call): Convert to use varargs. Adjust users.
6520 (safe_call2): Fix comment.
6521 * lisp.h (safe_call): Adjust prototype.
6522 * coding.c (encode_coding_object): Change to use safe_call2.
6523 * xfaces.c (merge_face_heights): Change to use safe_call1.
6524
6525 2012-07-30 Glenn Morris <rgm@gnu.org>
6526
6527 * s/aix4-2.h (sigmask): No need to undefine it, since syssignal.h
6528 does that unconditionally. Remove file, which is now empty.
6529
6530 * s/freebsd.h, s/gnu-linux.h, s/sol2-6.h, s/unixware.h:
6531 Remove empty files.
6532
6533 2012-07-30 Paul Eggert <eggert@cs.ucla.edu>
6534
6535 Export to GDB most of lisp.h's remaining object-like macros.
6536 * lisp.h (min, max): Move earlier, because they're used earlier now.
6537 (INTMASK, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK)
6538 (CHAR_TABLE_STANDARD_SLOTS, CHARTAB_SIZE_BITS_0)
6539 (CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2, CHARTAB_SIZE_BITS_3)
6540 (DEFAULT_HASH_SIZE, COMPILED_ARGLIST, COMPILED_BYTECODE)
6541 (COMPILED_CONSTANTS, COMPILED_STACK_DEPTH, COMPILED_DOC_STRING)
6542 (COMPILED_INTERACTIVE, CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT)
6543 (CHAR_CTL, CHAR_META, CHAR_MODIFIER_MASK, CHARACTERBITS)
6544 (MANY, UNEVALLED, FLOAT_TO_STRING_BUFSIZE, MAX_ALLOCA):
6545 Now constants, for GDB. They need not be macros.
6546 (MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM, STRING_BYTES_BOUND):
6547 Now constants, for GDB, as well as macros, for static initializers.
6548 (CHAR_TABLE_STANDARD_SLOTS, CHAR_TABLE_EXTRA_SLOTS):
6549 Move to after the definition of struct Lisp_Char_Table,
6550 since the former now needs that type defined.
6551 (enum CHARTAB_SIZE_BITS, enum CHAR_TABLE_STANDARD_SLOTS)
6552 (enum DEFAULT_HASH_SIZE, enum Lisp_Compiled, enum char_bits)
6553 (enum maxargs, enum FLOAT_TO_STRING_BUFSIZE, enum MAX_ALLOCA):
6554 New enums, for gdb_make_enums_visible.
6555 (GLYPH_MODE_LINE_FACE): Remove; unused.
6556 * alloc.c (STRING_BYTES_MAX): Now a constant, not a macro.
6557 (gdb_make_enums_visible): Add enum CHARTAB_SIZE_BITS, enum
6558 CHAR_TABLE_STANDARD_SLOTS, enum char_bits, enum DEFAULT_HASH_SIZE,
6559 enum FLOAT_TO_STRING_BUFSIZE, enum Lisp_Bits, enum Lisp_Compiled,
6560 enum maxargs, enum MAX_ALLOCA.
6561 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): Remove.
6562 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Remove;
6563 no longer needed, now that they are done in lisp.h.
6564
6565 2012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
6566
6567 Cleanup string bytes checking.
6568 * alloc.c (GC_STRING_BYTES, CHECK_STRING_BYTES): Remove. Convert
6569 all users to STRING_BYTES or string_bytes if GC_CHECK_STRING_BYTES.
6570 (check_string_bytes): Define to empty if not GC_CHECK_STRING_BYTES.
6571 (check_sblock, compact_small_strings): Simplify.
6572
6573 2012-07-29 Paul Eggert <eggert@cs.ucla.edu>
6574
6575 * lisp.h (LISP_INT_TAG, LISP_INT1_TAG, LISP_STRING_TAG): Remove.
6576 These macros are confusing and no longer need to be defined, as
6577 the enum values now suffice. All uses replaced with definiens.
6578 (Lisp_Int1, Lisp_String): Define directly; this is clearer.
6579
6580 2012-07-29 Juanma Barranquero <lekktu@gmail.com>
6581
6582 * makefile.w32-in (LISP_H, $(BLD)/emacs.$(O), $(BLD)/w32inevt.$(O))
6583 ($(BLD)/w32console.$(O)): Update dependencies.
6584
6585 2012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
6586
6587 Remove HIDE_LISP_IMPLEMENTATION and cleanup cons free list check.
6588 * lisp.h (HIDE_LISP_IMPLEMENTATION): Remove as useless for a long
6589 time. Adjust users.
6590 (CHECK_CONS_LIST): Remove. Convert all users to check_cons_list.
6591
6592 2012-07-29 Jan Djärv <jan.h.d@swipnet.se>
6593
6594 * lread.c (init_lread): Remove if-statement in ifdef HAVE_NS before
6595 setting sitelisp (Bug#12010).
6596
6597 2012-07-29 Eli Zaretskii <eliz@gnu.org>
6598
6599 * w32heap.h (OS_9X): Rename from OS_WINDOWS_95.
6600
6601 * w32heap.c (cache_system_info):
6602 * w32.c (sys_rename):
6603 * w32proc.c (find_child_console, sys_kill): All users changed.
6604
6605 2012-07-29 Paul Eggert <eggert@cs.ucla.edu>
6606
6607 * alloc.c (Fgarbage_collect): Indent as per usual Emacs style.
6608
6609 2012-07-29 Eli Zaretskii <eliz@gnu.org>
6610
6611 * makefile.w32-in (LISP_H): Add $(NT_INC)/stdalign.h.
6612
6613 2012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
6614
6615 Cleanup statistics calculation in Fgarbage_collect.
6616 * alloc.c (Fgarbage_collect): Rename t1 to meaningful start.
6617 Fix zombies percentage calculation. Simplify elapsed time calculation.
6618
6619 2012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
6620
6621 Generalize marker debugging code under MARKER_DEBUG and use eassert.
6622 * insdel.c (CHECK_MARKERS, check_markers_debug_flag): Remove.
6623 (gap_left, gap_right, adjust_markers_for_delete, insert_1_both)
6624 (insert_from_string_1, insert_from_gap, insert_from_buffer_1)
6625 (replace_range, replace_range_2, del_range_2): Change to eassert.
6626 * marker.c (byte_char_debug_check): Adjust style.
6627
6628 2012-07-29 Paul Eggert <eggert@cs.ucla.edu>
6629
6630 Don't use the abbreviation "win" to refer to Windows (Bug#10421).
6631 * regex.c (MAX_BUF_SIZE): Remove some incorrect and
6632 long-ago-commented-out code that talks about "WIN32".
6633 * w32heap.h (OS_WINDOWS_95): Rename from OS_WIN95.
6634 All uses changed.
6635
6636 2012-07-28 Paul Eggert <eggert@cs.ucla.edu>
6637
6638 Use Gnulib stdalign module (Bug#9772, Bug#9960).
6639 * alloc.c (XMALLOC_BASE_ALIGNMENT, GC_POINTER_ALIGNMENT, pure_alloc):
6640 Simplify by using alignof.
6641 (pure_alloc) [! USE_LSB_TAG]: Don't over-align EMACS_INT values.
6642 * lisp.h: Include <stdalign.h>.
6643 (GCALIGNMENT): New macro and constant.
6644 (DECL_ALIGN): Remove. All uses replaced by alignas (GCALIGNMENT).
6645 (USE_LSB_TAG): ifdef on alignas, not on DECL_ALIGN.
6646 (stdalign): New macro, if not already defined.
6647
6648 2012-07-28 Eli Zaretskii <eliz@gnu.org>
6649
6650 Fix non-ASCII input in non-GUI frames on MS-Windows. (Bug#12055)
6651 * w32inevt.c: Include w32inevt.h.
6652 (w32_read_console_input): New inline function, calls either
6653 ReadConsoleInputA or ReadConsoleInputW, depending on the value of
6654 w32_console_unicode_input.
6655 (fill_queue): Call w32_read_console_input instead of ReadConsoleInput.
6656 (w32_kbd_patch_key, key_event): Use the codepage returned by
6657 GetConsoleCP, rather than the ANSI codepage returned by GetLocaleInfo.
6658 (key_event): use uChar.UnicodeChar only if
6659 w32_console_unicode_input is non-zero.
6660
6661 * w32console.c: Include w32heap.h.
6662 <w32_console_unicode_input>: New global variable.
6663 (initialize_w32_display): Set w32_console_unicode_input to 1 on NT
6664 family of Windows, zero otherwise.
6665
6666 * w32inevt.h: Declare w32_console_unicode_input.
6667
6668 * xdisp.c (init_iterator): Don't reference tip_frame in a build
6669 --without-x. (Bug#11742)
6670
6671 2012-07-27 Paul Eggert <eggert@cs.ucla.edu>
6672
6673 Adjust GDB to reflect pvec_type changes (Bug#12036).
6674 * .gdbinit (xvectype, xpr, xbacktrace): Adjust to reflect the
6675 2012-07-04 changes to pseudovector representation.
6676 Problem reported by Eli Zaretskii in <http://bugs.gnu.org/12036#30>.
6677
6678 2012-07-27 Michael Albinus <michael.albinus@gmx.de>
6679
6680 * dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Canonicalize session
6681 bus address.
6682 (xd_close_bus, Fdbus_init_bus): Handle reference counter properly.
6683
6684 2012-07-27 Eli Zaretskii <eliz@gnu.org>
6685
6686 * alloc.c (listn): Fix the order the arguments are consed onto the
6687 list.
6688
6689 * lisp.h (enum constype): Use CONSTYPE_HEAP and CONSTYPE_PURE for
6690 enumeration constants, as PURE and HEAP are too general, and clash
6691 with other headers and sources, such as gmalloc.c and the
6692 MS-Windows system headers. All users changed.
6693
6694 2012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
6695
6696 Revert last save_excursion_save and save_excursion_restore changes.
6697 * alloc.c, editfns.c, marker.c, lisp.h: Revert.
6698 Lots of crashes reported by Chong Yidong <cyd@gnu.org>.
6699
6700 2012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
6701
6702 Fix recently-introduced typos in Windows port.
6703 Reported by Martin Rudalics <rudalics@gmx.at>.
6704 * w32.c (init_environment): Replace comma with semicolon.
6705 * w32fns.c (syms_of_w32fns): Add missing parenthesis.
6706
6707 2012-07-27 Paul Eggert <eggert@cs.ucla.edu>
6708
6709 Improve GDB symbol export (Bug#12036).
6710 * .gdbinit (xgetptr, xgetint, xgettype): Set $bugfix in different
6711 arms of an 'if', not using conditional expressions; otherwise GDB
6712 complains about the types in the unevaluated arm when the argument
6713 is an integer literal.
6714 (xgetint): Simplify expression.
6715 * alloc.c (gdb_make_enums_visible): New constant. This ports to
6716 GCC 3.4.2 the export of symbols to GDB. Problem reported by Eli
6717 Zaretskii in <http://bugs.gnu.org/12036#13>.
6718 * lisp.h (PUBLISH_TO_GDB): Remove. All uses removed. No longer
6719 needed now that we have gdb_make_enums_visible.
6720 (enum CHECK_LISP_OBJECT_TYPE, enum Lisp_Bits, enum More_Lisp_Bits)
6721 (enum enum_USE_LSB_TAG):
6722 New enum types, packaging up enums that need to be exported to GDB.
6723
6724 2012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
6725
6726 Utility function to make a list from specified amount of objects.
6727 * lisp.h (enum constype): New datatype.
6728 (listn): New prototype.
6729 * alloc.c (listn): New function.
6730 (Fmemory_use_count, syms_of_alloc): Use it.
6731 * buffer.c (syms_of_buffer): Likewise.
6732 * callint.c (syms_of_callint): Likewise.
6733 * charset.c (define_charset_internal): Likewise.
6734 * coding.c (syms_of_coding): Likewise.
6735 * keymap.c (syms_of_keymap): Likewise.
6736 * search.c (syms_of_search): Likewise.
6737 * syntax.c (syms_of_syntax): Likewise.
6738 * w32.c (init_environment): Likewise.
6739 * w32fns.c (Fw32_battery_status, syms_of_w32fns): Likewise.
6740 * xdisp.c (syms_of_xdisp): Likewise.
6741 * xfns.c (syms_of_xfns): Likewise.
6742
6743 2012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
6744
6745 Fast save_excursion_save and save_excursion_restore.
6746 * lisp.h (struct Lisp_Excursion): New data type.
6747 (PVEC_EXCURSION): New pseudovector type.
6748 (XEXCURSION, XSETEXCURSION, EXCURSIONP): Convenient macros
6749 to deal with it. Adjust comments.
6750 (init_marker, attach_marker): New prototype.
6751 (unchain_marker): Adjust prototype.
6752 * marker.c (attach_marker): Change to global.
6753 (init_marker): New function.
6754 * alloc.c (Fmake_marker, build_marker): Use it.
6755 (build_marker): More easserts.
6756 (mark_object): Handle struct Lisp_Excursion.
6757 * editfns.c (save_excursion_save, save_excursion_restore):
6758 Reimplement to use struct Lisp_Excursion. Add comments.
6759
6760 2012-07-26 Paul Eggert <eggert@cs.ucla.edu>
6761
6762 Fix export of symbols to GDB (Bug#12036).
6763 * alloc.c (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL)
6764 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Move these here from
6765 emacs.c, as this is a more-suitable home. Had this been done earlier
6766 the fix for 12036 would have avoided some of the problems noted in
6767 <http://bugs.gnu.org/12036#13> by Eli Zaretskii, as the scope problems
6768 would have been more obvious.
6769 * emacs.c: Do not include <verify.h>; no longer needed.
6770 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS)
6771 (gdb_GCTYPEBITS, gdb_USE_LSB_TAG)
6772 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
6773 Remove; now done in lisp.h.
6774 * lisp.h (PUBLISH_TO_GDB): New macro.
6775 (GCTYPEBITS, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE, enum pvec_type)
6776 (DATA_SEG_BITS): Use it.
6777 (GCTYPEBITS, USE_LSB_TAG): Now also an enum, for GDB.
6778 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Now just an enum, for GDB.
6779 * mem-limits.h (EXCEEDS_LISP_PTR): Redo so that DATA_SEG_BITS need
6780 not be usable in #if. This simplifies things.
6781
6782 2012-07-26 Juanma Barranquero <lekktu@gmail.com>
6783
6784 * makefile.w32-in ($(BLD)/emacs.$(O)): Update dependencies.
6785
6786 2012-07-26 Paul Eggert <eggert@cs.ucla.edu>
6787
6788 Simplify export of symbols to GDB (Bug#12036).
6789 * .gdbinit (xgetptr, xgetint, xgettype): Don't use "set $bugfix =
6790 $bugfix.i", as this doesn't work (with GDB 7.4.1, anyway).
6791 (xgetptr, xgetint, xgettype, xcoding, xcharset, xprintbytestr):
6792 Adjust to changes in lisp.h and emacs.c, by using
6793 CHECK_LISP_OBJECT_TYPE rather than gdb_use_struct, VALMASK instead
6794 of $valmask, DATA_SEG_BITS instead of gdb_data_seg_bits,
6795 INTTYPEBITS instead of gdb_gctypebits - 1, USE_LSB_TAG instead of
6796 gdb_use_lsb, (1 << GCTYPEBITS) - 1 instead of $tagmask, VALBITS
6797 instead of gdb_valbits.
6798 (xvectype, xvector, xpr, xprintstr, xbacktrace): Similarly, use
6799 PSEUDOVECTOR_FLAG instead of PVEC_FLAG, and ARRAY_MARK_FLAG
6800 instead of gdb_array_mark_flag.
6801 (xboolvector): Get size from $->size, not $->header.size.
6802 Use BOOL_VECTOR_BITS_PER_CHAR rather than mystery constants.
6803 (xreload, hook-run, hookpost-run): Remove.
6804 * emacs.c: Include <verify.h>.
6805 (gdb_use_lsb, gdb_use_struct, gdb_valbits, gdb_gctypebits)
6806 (gdb_data_seg_bits, PVEC_FLAG, gdb_array_mark_flag, gdb_pvec_type):
6807 Remove.
6808 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS, gdb_GCTYPEBITS)
6809 (gdb_USE_LSB_TAG): New enum constants.
6810 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
6811 Also define these as enum constants, so they're visible to GDB.
6812 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): New macros.
6813 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Also define these
6814 as constants, so they're visible to GDB.
6815 * lisp.h (VALBITS, INTTYPEBITS, FIXNUM_BITS, PSEUDOVECTOR_SIZE_BITS)
6816 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK, BOOL_VECTOR_BITS_PER_CHAR):
6817 Now enum constants, not macros, so they're visible to GDB.
6818 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Default to 0, as this is
6819 more convenient now. All uses changed.
6820 (VALMASK) [USE_LSB_TAG]: Also define in this case.
6821 * mem-limits.h (EXCEEDS_LISP_PTR): Adjust to DATA_SEG_BITS change.
6822
6823 2012-07-26 Dmitry Antipov <dmantipov@yandex.ru>
6824
6825 Explicitly free restriction data that are not needed anymore.
6826 * editfns.c (save_restriction_restore): Free restriction data.
6827
6828 2012-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
6829
6830 * eval.c (Fautoload_do_load): Rename from do_autoload, export to Lisp,
6831 add argument, tune behavior, and adjust all callers.
6832
6833 2012-07-25 Paul Eggert <eggert@cs.ucla.edu>
6834
6835 Use typedef for EMACS_INT, EMACS_UINT.
6836 * lisp.h, s/ms-w32.h (EMACS_INT, EMACS_UINT): Use typedefs rather
6837 than macros. This simplifies debugging in the usual case, since
6838 it lets GDB show addresses as 'EMACS_INT *' rather than 'long int *'
6839 and it allows expressions involving EMACS_INT casts.
6840 * .gdbinit (xreload): Simplify by using EMACS_INT cast.
6841
6842 2012-07-25 Jan Djärv <jan.h.d@swipnet.se>
6843
6844 * nsterm.m (ns_read_socket): Return early if there is a modal
6845 window (Bug#12043).
6846
6847 2012-07-25 Martin Rudalics <rudalics@gmx.at>
6848
6849 * frame.c (Fredirect_frame_focus): In doc-string don't mention
6850 that FOCUS-FRAME can be omitted.
6851
6852 2012-07-25 Dmitry Antipov <dmantipov@yandex.ru>
6853
6854 Adjust buffer text indirection counters at the end of Fkill_buffer.
6855 * buffer.c (Fkill_buffer): Adjust indirection counters when the
6856 buffer is definitely dead. This should really fix an issue reported
6857 by Christoph Scholtes again. (Bug#12007).
6858 (init_buffer_once): Initialize indirection counters of
6859 buffer_defaults and buffer_local_symbols (for sanity and safety).
6860
6861 2012-07-24 Eli Zaretskii <eliz@gnu.org>
6862
6863 * xdisp.c (init_iterator): Don't compute dimensions of truncation
6864 and continuation glyphs on tooltip frames, leave them at zero.
6865 Avoids continued lines in tooltips. (Bug#11832)
6866
6867 2012-07-24 Dmitry Antipov <dmantipov@yandex.ru>
6868
6869 Simplify copy_overlay.
6870 * buffer.c (copy_overlay): Simplify. Use build_marker.
6871 * lisp.h (struct Lisp_Overlay): Restore comment with minor tweaks.
6872
6873 2012-07-23 Eli Zaretskii <eliz@gnu.org>
6874
6875 * print.c (print_object): Don't crash when a frame's name is nil
6876 or invalid. (Bug#12025)
6877
6878 * window.c (decode_any_window): Disable CHECK_LIVE_FRAME test, as
6879 it signals an error when a tooltip frame is being created.
6880
6881 2012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
6882
6883 Cleanup miscellaneous objects allocation and initialization.
6884 * alloc.c (allocate_misc): Change to static. Add argument to
6885 specify the subtype. Adjust comment and users.
6886 (build_overlay): New function.
6887 * buffer.c (copy_overlays, Fmake_overlay): Use it.
6888 * lisp.h (struct Lisp_Overlay): Remove obsolete comment.
6889 (allocate_misc): Remove prototype.
6890 (build_overlay): Add prototype.
6891
6892 2012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
6893
6894 Swap buffer text indirection counters in Fbuffer_swap_text.
6895 * buffer.c (Fbuffer_swap_text): Swap indirections too.
6896 This avoids crash reported by Christoph Scholtes at
6897 http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-07/msg00785.html.
6898
6899 2012-07-22 Jan Djärv <jan.h.d@swipnet.se>
6900
6901 * nsmenu.m (Popdown_data): New struct.
6902 (pop_down_menu): p->pointer is Popdown_data. Release the pool and
6903 free Popdown_data.
6904 (ns_popup_dialog): Use NSAutoreleasePool and pass it to pop_down_menu.
6905 (initWithContentRect): Make imgView and contentView non-static
6906 and autorelease them. Also autorelease img and matrix (Bug#12005).
6907 (dealloc): Remove (Bug#12005).
6908
6909 2012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
6910
6911 Adjust consing_since_gc when objects are explicitly freed.
6912 * alloc.c (GC_DEFAULT_THRESHOLD): New macro.
6913 (Fgarbage_collect): Use it. Change minimum to 1/10 of default.
6914 (free_cons, free_misc): Subtract object size from consing_since_gc.
6915
6916 2012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
6917
6918 Simplify and cleanup markers positioning code.
6919 * marker.c (attach_marker): More useful eassert.
6920 (live_buffer, set_marker_internal): New function.
6921 (Fset_marker, set_marker_restricted): Use set_marker_internal.
6922 (set_marker_both, set_marker_restricted_both): Use live_buffer.
6923
6924 2012-07-22 Paul Eggert <eggert@cs.ucla.edu>
6925
6926 * buffer.h (struct buffer.indirections): Now ptrdiff_t, not int,
6927 as it's limited by the amount of memory, not by INT_MAX.
6928
6929 2012-07-21 Eli Zaretskii <eliz@gnu.org>
6930
6931 * keyboard.c (keys_of_keyboard): Bind language-change to 'ignore'
6932 in special-event-map. See the discussion at
6933 http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00417.html
6934 for the reasons.
6935
6936 * w32menu.c (add_menu_item): Cast to ULONG_PTR when assigning
6937 info.dwItemData. Fixes crashes on 64-bit Windows.
6938 Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
6939
6940 2012-07-21 Jan Djärv <jan.h.d@swipnet.se>
6941
6942 * nsterm.m (accessibilityAttributeValue): New function. (Bug#11134).
6943 (conversationIdentifier): Return value is NSInteger.
6944 * nsterm.m (accessibilityAttributeValue): Surround with NS_IMPL_COCOA.
6945
6946 2012-07-21 Chong Yidong <cyd@gnu.org>
6947
6948 * window.c (decode_any_window): Signal an error if the window is
6949 on a dead frame (Bug#11984).
6950
6951 2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
6952
6953 Add indirection counting to speed up Fkill_buffer.
6954 * buffer.h (struct buffer): New member.
6955 * buffer.c (Fget_buffer_create): Set indirection counter to 0.
6956 (Fmake_indirect_buffer): Set indirection counter to -1, increment
6957 base buffer indirection counter.
6958 (compact_buffer): If ENABLE_CHECKING, verify indirection counters.
6959 (Fkill_buffer): Adjust indirection counters as needed, don't walk
6960 through buffer list if indirection counter is 0.
6961
6962 2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
6963
6964 Extend the value returned by Fgarbage_collect with heap statistics.
6965 * alloc.c (Qheap): New symbol.
6966 (syms_of_alloc): DEFSYM it.
6967 (Fgarbage_collect): If DOUG_LEA_MALLOC, add mallinfo data.
6968 (Fmemory_free): Remove.
6969 (syms_of_alloc): Don't defsubr it.
6970 * buffer.c (Fcompact_buffer): Remove.
6971 (syms_of_buffer): Don't defsubr it.
6972
6973 2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
6974
6975 Make maybe_gc inline.
6976 Verify that inlining is always possible (GCC 4.7.1, -O3 -Winline).
6977 * lisp.h (consing_since_gc, gc_relative_threshold)
6978 (memory_full_cons_threshold): Revert declaration.
6979 (maybe_gc): Remove prototype, define as inline.
6980 * alloc.c: Remove old commented-out code.
6981 (consing_since_gc, gc_relative_threshold)
6982 (memory_full_cons_threshold): Revert to global.
6983 (maybe_gc): Remove.
6984
6985 2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
6986
6987 Simple wrapper for make_unibyte_string, adjust font_open_by_name.
6988 * lisp.h (build_unibyte_string): New function.
6989 * dosfns.c, fileio.c, fns.c, ftfont.c, process.c:
6990 * sysdep.c, w32fns.c, xfns.c: Use it.
6991 * font.c (font_open_by_name): Change 2nd and 3rd args to the only arg
6992 of type Lisp_Object to avoid redundant calls to make_unibyte_string.
6993 Adjust users accordingly.
6994 * font.h (font_open_by_name): Adjust prototype.
6995
6996 2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
6997
6998 Cleanup calls to Fgarbage_collect.
6999 * lisp.h (maybe_gc): New prototype.
7000 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
7001 Remove declarations.
7002 * alloc.c (maybe_gc): New function.
7003 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
7004 Make them static.
7005 * bytecode.c (MAYBE_GC): Use maybe_gc.
7006 * eval.c (eval_sub, Ffuncall): Likewise.
7007 * keyboard.c (read_char): Likewise. Adjust call to maybe_gc
7008 to avoid dependency from auto-save feature.
7009
7010 2012-07-19 Paul Eggert <eggert@cs.ucla.edu>
7011
7012 * buffer.h (FOR_EACH_BUFFER): Rename from 'for_each_buffer'.
7013 (FOR_EACH_PER_BUFFER_OBJECT_AT): Rename from
7014 'for_each_per_buffer_object_at'.
7015 All uses changed. It's better to use upper-case for macros that
7016 cannot be implemented as functions, to give the reader a clue
7017 that they're special.
7018
7019 2012-07-19 Stefan Monnier <monnier@iro.umontreal.ca>
7020
7021 * alloc.c (Fgarbage_collect): Tweak docstring.
7022
7023 2012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
7024
7025 Tweak the value returned from Fgarbage_collect again.
7026 * alloc.c (Fgarbage_collect): New return value, as confirmed in
7027 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00418.html.
7028 Adjust documentation.
7029 (total_vector_bytes): Rename to total_vector_slots, adjust
7030 accounting.
7031 (total_free_vector_bytes): Rename to total_free_vector_slots,
7032 adjust accounting.
7033 (Qstring_bytes, Qvector_slots): New symbols.
7034 (syms_of_alloc): DEFSYM them.
7035
7036 2012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
7037
7038 Buffer compaction primitive which may be used from Lisp.
7039 * buffer.c (compact_buffer, Fcompact_buffer): New function.
7040 (syms_of_buffer): Register Fcompact_buffer.
7041 * alloc.c (Fgarbage_collect): Use compact_buffer.
7042 * buffer.h (compact_buffer): New prototype.
7043 (struct buffer_text): New member.
7044
7045 2012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
7046
7047 New macro to iterate over all buffers, miscellaneous cleanups.
7048 * lisp.h (all_buffers): Remove declaration.
7049 * buffer.h (all_buffers): Add declaration, with comment.
7050 (for_each_buffer): New macro.
7051 * alloc.c (Fgarbage_collect, mark_object): Use it.
7052 * buffer.c (Fkill_buffer, Fbuffer_swap_text, Fset_buffer_multibyte)
7053 (init_buffer): Likewise.
7054 * data.c (Fset_default): Likewise.
7055 * coding.c (code_conversion_restore): Remove redundant check
7056 for dead buffer.
7057 * buffer.c (Fkill_buffer): Likewise. Remove obsolete comment.
7058
7059 2012-07-18 Andreas Schwab <schwab@linux-m68k.org>
7060
7061 Fix bug that created negative-length intervals.
7062 * intervals.c (merge_interval_right, merge_interval_left):
7063 Do not zero out this interval if it is absorbed by its children,
7064 as this interval's total length doesn't change in that case. See
7065 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00403.html>.
7066
7067 2012-07-18 Paul Eggert <eggert@cs.ucla.edu>
7068
7069 * alloc.c (Fmake_bool_vector): Fix off-by-8 bug
7070 when invoking (make-bool-vector N t) and N is a positive
7071 multiple of 8 -- the last 8 bits were mistakenly cleared.
7072
7073 Remove some struct layout assumptions in bool vectors.
7074 * alloc.c (bool_header_size): New constant.
7075 (header_size, word_size): Move earlier, as they're now used earlier.
7076 Use 'word_size' in a few more places, where it's appropriate.
7077 (Fmake_bool_vector, sweep_vectors): Don't assume that there is no
7078 padding before the data member of a bool vector.
7079 (sweep_vectors): Use PSEUDOVECTOR_TYPEP, in an eassert, rather
7080 than doing the check by hand with an abort ().
7081
7082 2012-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
7083
7084 * eval.c (Fdefvar): Don't check constants since we only set the var if
7085 it's not yet defined anyway (bug#11904).
7086
7087 * lisp.h (last_undo_boundary): Declare new var.
7088 * keyboard.c (command_loop_1): Set it.
7089 * cmds.c (Fself_insert_command): Use it to only remove boundaries that
7090 were auto-added by the command loop (bug#11774).
7091
7092 2012-07-18 Andreas Schwab <schwab@linux-m68k.org>
7093
7094 * w32font.c (Qsymbol): Remove local definition.
7095 (syms_of_w32font): Don't DEFSYM it.
7096
7097 2012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
7098
7099 Fix sweep_vectors to handle large bool vectors correctly.
7100 * alloc.c (sweep_vectors): Account total_vector_bytes for
7101 bool vectors larger than VBLOCK_BYTES_MAX.
7102
7103 2012-07-18 Chong Yidong <cyd@gnu.org>
7104
7105 * frame.c (x_set_frame_parameters): Revert bogus change introduced
7106 in 2012-05-25 commit by Paul Eggert (Bug#11738).
7107
7108 2012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
7109
7110 Return more descriptive data from Fgarbage_collect.
7111 Suggested by Stefan Monnier in
7112 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00369.html.
7113 * alloc.c (bounded_number): New function.
7114 (total_buffers, total_vectors): New variable.
7115 (total_string_size): Rename to total_string_bytes, adjust users.
7116 (total_vector_size): Rename to total_vector_bytes, adjust users.
7117 (sweep_vectors): Account total_vectors and total_vector_bytes.
7118 (Fgarbage_collect): New return value. Adjust documentation.
7119 (gc_sweep): Account total_buffers.
7120 (Fmemory_free, Fmemory_use_counts): Use bounded_number.
7121 (VECTOR_SIZE): Remove.
7122 * data.c (Qfloat, Qvector, Qsymbol, Qstring, Qcons): Make global.
7123 (Qinterval, Qmisc): New symbols.
7124 (syms_of_data): Initialize them.
7125 * lisp.h (Qinterval, Qsymbol, Qstring, Qmisc, Qvector, Qfloat)
7126 (Qcons, Qbuffer): New declarations.
7127
7128 2012-07-17 Paul Eggert <eggert@cs.ucla.edu>
7129
7130 * alloc.c (Fmemory_free): Account for memory-free's own storage.
7131 Round up, not down. Improve doc.
7132
7133 2012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
7134
7135 Restore old code in allocate_string_data to avoid Faset breakage.
7136 Reported by Julien Danjou <julien@danjou.info> in
7137 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00371.html.
7138 * alloc.c (allocate_string_data): Restore old code with minor
7139 adjustments, fix comment to explain this subtle issue.
7140
7141 2012-07-17 Eli Zaretskii <eliz@gnu.org>
7142
7143 Remove FILE_SYSTEM_CASE.
7144 * s/msdos.h (FILE_SYSTEM_CASE): Don't define.
7145
7146 * fileio.c (FILE_SYSTEM_CASE): Don't define.
7147 (Ffile_name_directory, Fexpand_file_name): Don't use FILE_SYSTEM_CASE.
7148 Fixes problems on MS-DOS with Vtemp_file_name_pattern when
7149 call-process-region passes it through expand-file-name.
7150
7151 * dired.c (file_name_completion): Don't use FILE_SYSTEM_CASE.
7152
7153 2012-07-17 Andreas Schwab <schwab@linux-m68k.org>
7154
7155 Fix crash when creating indirect buffer (Bug#11917)
7156 * buffer.c (buffer_lisp_local_variables): Add argument CLONE.
7157 Don't handle unbound variables specially if non-zero.
7158 (Fbuffer_local_variables): Pass zero.
7159 (clone_per_buffer_values): Pass non-zero.
7160
7161 2012-07-17 Andreas Schwab <schwab@linux-m68k.org>
7162
7163 * gnutls.c (emacs_gnutls_handshake): Revert last change. Add QUIT
7164 to make the loop interruptible.
7165
7166 2012-07-17 Andreas Schwab <schwab@linux-m68k.org>
7167
7168 * gnutls.c (emacs_gnutls_handshake): Only retry if
7169 GNUTLS_E_INTERRUPTED.
7170
7171 2012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
7172
7173 Cleanup and convert miscellaneous checks to eassert.
7174 * alloc.c (mark_interval): Fix comment, partially rephrase
7175 old comment from intervals.h (see below).
7176 * intervals.c (find_interval, adjust_intervals_for_insertion)
7177 (delete_interval, adjust_intervals_for_deletion)
7178 (graft_intervals_into_buffer, temp_set_point_both, copy_intervals):
7179 Convert to eassert.
7180 (adjust_intervals_for_insertion, make_new_interval):
7181 Remove obsolete and unused code.
7182 * intervals.h (struct interval): Remove obsolete comment.
7183 * textprotp.c (erase_properties): Remove unused code.
7184 (Fadd_text_properties, set_text_properties_1, Fremove_text_properties)
7185 (Fremove_list_of_text_properties): Convert to eassert.
7186
7187 2012-07-17 Chong Yidong <cyd@gnu.org>
7188
7189 * editfns.c (Finsert_char): Doc fix.
7190
7191 2012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
7192
7193 Fix previous change to make Fmemory_free always accurate.
7194 * alloc.c (make_interval): Update total_free_intervals.
7195 (make_float): Likewise for total_free_floats.
7196 (free_cons, Fcons): Likewise for total_free_conses.
7197 (SETUP_ON_FREE_LIST, allocate_vector_from_block):
7198 Likewise for total_free_vector_bytes.
7199 (Fmake_symbol): Likewise for total_free_symbols.
7200 (bytes_free): Remove.
7201
7202 2012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
7203
7204 Simple free memory accounting feature.
7205 * alloc.c (bytes_free, total_free_vector_bytes): New variable.
7206 (sweep_vectors): Accumulate size of free vectors.
7207 (Fgarbage_collect): Setup bytes_free.
7208 (Fmemory_free): New function.
7209 (syms_of_alloc): Register it.
7210
7211 2012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
7212
7213 Cleanup overlays checking.
7214 * buffer.h (OVERLAY_VALID): Remove as useless synonym of OVERLAYP.
7215 * buffer.c (overlay_touches_p, recenter_overlay_lists): Change to
7216 eassert and OVERLAYP.
7217 (sort_overlays): Change to use OVERLAYP.
7218
7219 2012-07-16 René Kyllingstad <Rene@Kyllingstad.com> (tiny change)
7220
7221 * editfns.c (Finsert_char): Make it interactive, and make the
7222 second arg optional. Copy interactive spec and docstring from
7223 ucs-insert.
7224
7225 2012-07-17 Paul Eggert <eggert@cs.ucla.edu>
7226
7227 * floatfns.c (Fabs): Do not wrap fabs inside IN_FLOAT (Bug#11913).
7228 Unlike the other wrapped functions, fabs has an unspecified
7229 effect on errno.
7230
7231 2012-07-16 Jan Djärv <jan.h.d@swipnet.se>
7232
7233 * nsterm.m (keyDown): Interpret flags without left/right bits
7234 as the left key (Bug#11670).
7235
7236 2012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
7237
7238 Remove empty and useless init functions.
7239 * lisp.h (init_character_once, init_fns, init_image)
7240 (init_filelock, init_sound): Remove prototype.
7241 * character.c (init_character_once): Remove.
7242 * filelock.c (init_filelock): Likewise.
7243 * fns.c (init_fns): Likewise.
7244 * image.c (init_image): Likewise.
7245 * sound.c (init_sound): Likewise.
7246 * emacs.c (main): Adjust accordingly.
7247
7248 2012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
7249
7250 * gtkutil.h: Tiny cleanups.
7251 (use_old_gtk_file_dialog): Remove useless declaration.
7252 (xg_uses_old_file_dialog): Add suggested const attribute.
7253
7254 2012-07-15 Eli Zaretskii <eliz@gnu.org>
7255
7256 * bidi.c (MAX_STRONG_CHAR_SEARCH): New macro.
7257 (bidi_paragraph_init): Use it to limit search forward for a strong
7258 directional character in abnormally large paragraphs full of
7259 neutral or weak characters. (Bug#11943)
7260
7261 2012-07-15 Stefano Facchini <stefano.facchini@gmail.com> (tiny change)
7262
7263 * gtkutil.c (xg_create_tool_bar): Apply "primary-toolbar" style to
7264 the toolbar (Bug#9451).
7265 (xg_make_tool_item): Give the widget event box a transparent
7266 background.
7267
7268 2012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
7269
7270 Cleanup basic allocation variables and functions.
7271 * alloc.c (ignore_warnings, init_intervals, init_float)
7272 (init_cons, init_symbol, init_marker): Remove.
7273 (interval_block_index): Initialize to INTERVAL_BLOCK_SIZE.
7274 (float_block_index): Initialize to FLOAT_BLOCK_SIZE.
7275 (cons_block_index): Initialize to CONS_BLOCK_SIZE.
7276 (symbol_block_size): Initialize to SYMBOL_BLOCK_SIZE.
7277 (marker_block_index): Initialize to MARKER_BLOCK_SIZE.
7278 (staticidx, init_alloc_once, init_strings, free_ablock):
7279 Remove redundant initialization.
7280 * fns.c (init_weak_hash_tables): Remove.
7281 * lisp.h (init_weak_hash_tables): Remove prototype.
7282
7283 2012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
7284
7285 Use zero_vector where appropriate.
7286 * alloc.c (zero_vector): Define as Lisp_Object. Adjust users
7287 accordingly.
7288 * lisp.h (zero_vector): New declaration.
7289 * font.c (null_vector): Remove.
7290 (syms_of_font): Remove initialization and staticpro.
7291 (font_list_entities, font_find_for_lface): Change to use zero_vector.
7292 * keymap.c (Faccessible_keymaps): Likewise.
7293
7294 2012-07-15 Leo Liu <sdl.web@gmail.com>
7295
7296 * fringe.c: Fix typo in comments.
7297
7298 2012-07-14 Leo Liu <sdl.web@gmail.com>
7299
7300 * fringe.c: Add a new bitmap exclamation-mark.
7301
7302 2012-07-14 Eli Zaretskii <eliz@gnu.org>
7303
7304 * gmalloc.c (GMALLOC_INHIBIT_VALLOC): Don't reference.
7305
7306 * s/msdos.h (BSD_SYSTEM, DATA_START, GC_SETJMP_WORKS, HAVE_MOUSE)
7307 (HAVE_MENUS): Don't define, defined by editing config.in with
7308 msdos/sed2v2.inp.
7309 (GMALLOC_INHIBIT_VALLOC): Don't define.
7310 (MODE_LINE_BINARY_TEXT): Remove, not used anymore.
7311
7312 2012-07-14 Juanma Barranquero <lekktu@gmail.com>
7313
7314 * s/ms-w32.h (GC_SETJMP_WORKS, GC_MARK_STACK): Set in nt/config.nt.
7315
7316 2012-07-14 Glenn Morris <rgm@gnu.org>
7317
7318 * s/aix4-2.h, s/freebsd.h, s/gnu-linux.h, s/hpux10-20.h:
7319 * s/irix6-5.h, s/netbsd.h, s/sol2-6.h, s/unixware.h:
7320 Let configure set GC_SETJMP_WORKS, GC_MARK_STACK.
7321
7322 2012-07-13 Glenn Morris <rgm@gnu.org>
7323
7324 * s/gnu-linux.h (GC_MARK_SECONDARY_STACK): Let configure set it.
7325
7326 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Let configure set it.
7327 * s/irix6-5.h (SETUP_SLAVE_PTY): No more need to unset it.
7328
7329 2012-07-13 Jan Djärv <jan.h.d@swipnet.se>
7330
7331 * nsterm.m (uRect): Only define if NS_IMPL_GNUSTEP.
7332 (x_free_frame_resources): Pass x_free_frame_resources to NSTRACE.
7333 (ns_lisp_to_color, ns_string_to_lispmod, ns_term_init)
7334 (ns_term_shutdown, requestService, initFrameFromEmacs): Use SSDATA
7335 where appropriate.
7336 (ns_exec_path, ns_load_path, changeFont): Put () around assignment used
7337 as boolean expression.
7338 (x_set_window_size): Remove unused variable toolbar.
7339 (ns_get_color_default, ns_mod_to_lisp): Remove.
7340 (ns_mouse_position): Remove unused variables xchar and ychar.
7341 (ns_compute_glyph_string_overhangs): Remove unused variable face.
7342 (ns_set_vertical_scroll_bar): Remove unused variable count.
7343 (ns_delete_terminal): Remove unused variable i.
7344 (ns_term_init): Remove unused variables r, g and b.
7345 (mouseDown): Remove unused variable window.
7346 (windowDidResize): Move definition of theWindow inside NS_IMPL_GNUSTEP.
7347 (initFrameFromEmacs): Remove unused variable vbextra.
7348 (mouseEntered): Remove unused variables p and dpyinfo.
7349 (mouseExited): Remove unused variables p and r.
7350 (ns_define_frame_cursor, ns_clear_frame_area)
7351 (ns_draw_window_cursor, ns_initialize_display_info): Make static.
7352 (menuDown): Assign [sender tag] to variable and cast the variable.
7353
7354 * nsterm.h (menuDown): Add id as type to argument sender.
7355 (ns_display_info_for_name): Add Lisp_Object argument.
7356 (ns_term_init): Add Lisp_Object argument.
7357 (ns_map_event_to_object): Add void argument.
7358 (ns_string_from_pasteboard, ns_string_to_pasteboard): Add correct
7359 prototype with arguments and only declare if __OBJC__.
7360 (nxatoms_of_nsselect): Add void argument.
7361 (ns_lisp_to_cursor_type): Add Lisp_Object argument.
7362 (ns_alloc_autorelease_pool): Add void argument.
7363 (ns_release_autorelease_pool): Add void* argument.
7364 (ns_get_defaults_value): Add const char* argument.
7365
7366 * nsmenu.m (ns_update_menubar, ns_menu_show, process_dialog)
7367 (initFromContents): Use SSDATA where appropriate.
7368 (ns_update_menubar): Add braces to ambigous if-else.
7369 (initWithTitle): Put () around assignment in if statement.
7370 (ns_menu_show): Remove unused variables window and keymap.
7371 (update_frame_tool_bar): Remove unused variable selected_p.
7372 (initWithContentRect): Remove unused variable this_cmd_name.
7373
7374 * nsimage.m (ns_load_image, allocInitFromFile): Use SSDATA where
7375 appropriate.
7376 (setXBMColor): Remove unused variable len.
7377 (setPixmapData): Put () around assignment in loop statement.
7378
7379 * nsfont.m (ns_get_family, ns_lang_to_script, ns_otf_to_script)
7380 (ns_registry_to_script, ns_get_req_script, nsfont_open): Use SSDATA
7381 where appropriate.
7382 (ns_get_covering_families, ns_findfonts, nsfont_list_family): Put ()
7383 around assignment in loop statement.
7384 (nsfont_open): Remove unused variable i.
7385 (nsfont_open): Remove unused variable len.
7386 (nsfont_draw): Remove unused variable cs.
7387
7388 * nsfns.m (x_set_icon_name, ns_set_name_internal)
7389 (ns_set_name_as_filename, ns_implicitly_set_icon_type)
7390 (x_set_icon_type, ns_lisp_to_cursor_type, Fns_read_file_name)
7391 (Fns_get_resource, Fns_set_resource, Fx_open_connection)
7392 (Fns_font_name, Fns_perform_service)
7393 (Fns_convert_utf8_nfd_to_nfc, ns_do_applescript)
7394 (Fns_do_applescript, Fx_show_tip): Use SSDATA where appropriate.
7395 (ns_set_name): Remove unused variable view.
7396 (x_set_menu_bar_lines): Remove unused variable olines.
7397 (x_set_tool_bar_lines): Remove unused variable root_window.
7398 (Fns_list_colors): Put () around assignment in while statement.
7399 (Fns_perform_service): Remove unused variable len.
7400 (Fns_display_usable_bounds): Remove unused variable top.
7401 (syms_of_nsfns): Remove unused variable i.
7402
7403 * nsmenu.m (ns_update_menubar): Exchange place of argument 2 and 3 to
7404 memcpy (Bug#11907).
7405
7406 2012-07-13 Kalle Kankare <kalle.kankare@iki.fi> (tiny change)
7407
7408 * image.c (Fimagemagick_types): Initialize ex with GetExceptionInfo
7409 and free it with DestroyExceptionInfo (Bug#11558).
7410
7411 2012-07-13 Juanma Barranquero <lekktu@gmail.com>
7412
7413 * s/ms-w32.h (FIRST_PTY_LETTER, HAVE_SOCKETS): Move to nt/config.nt.
7414 (HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE___BUILTIN_UNWIND_INIT):
7415 Set here, not in nt/config.nt.
7416
7417 2012-07-13 Eli Zaretskii <eliz@gnu.org>
7418
7419 * xdisp.c (move_it_in_display_line_to): On GUI terminals, allow
7420 cursor overflow into the last glyph on display line when the right
7421 fringe is off. (Bug#11832)
7422
7423 2012-07-13 Paul Eggert <eggert@cs.ucla.edu>
7424
7425 * xdisp.c (produce_special_glyphs): Now static.
7426 * dispextern.h (produce_special_glyphs): Remove decl.
7427
7428 2012-07-13 Glenn Morris <rgm@gnu.org>
7429
7430 * s/bsd-common.h, s/cygwin.h: Remove empty files.
7431 * s/freebsd.h, s/netbsd.h: Do not include bsd-common.h.
7432
7433 * s/usg5-4-common.h (USG, USG5):
7434 * s/template.h (USG5, USG, HPUX, BSD4_2, BSD_SYSTEM):
7435 * s/sol2-6.h (SOLARIS2):
7436 * s/irix6-5.h (IRIX6_5):
7437 * s/hpux10-20.h (USG, USG5, HPUX):
7438 * s/gnu-linux.h (USG, GNU_LINUX):
7439 * s/freebsd.h (BSD_SYSTEM):
7440 * s/darwin.h (BSD4_2, BSD_SYSTEM, DARWIN_OS):
7441 * s/cygwin.h (CYGWIN):
7442 * s/bsd-common.h (BSD_SYSTEM, BSD4_2):
7443 * s/aix4-2.h (USG, USG5, _AIX): Move "system type" macros to configure.
7444
7445 2012-07-13 BT Templeton <bpt@hcoop.net> (tiny change)
7446
7447 * nsfont.m (ns_charset_covers): Don't abort if no bitmap (Bug#11853).
7448
7449 2012-07-13 Glenn Morris <rgm@gnu.org>
7450
7451 * s/usg5-4-common.h (NSIG_MINIMUM): Let configure set it.
7452
7453 * s/gnu-linux.h, s/irix6-5.h: Let configure set ULIMIT_BREAK_VALUE.
7454
7455 * process.c (init_process_emacs): Replace MIN_PTY_KERNEL_VERSION.
7456 * s/darwin.h (MIN_PTY_KERNEL_VERSION): Remove single-use macro.
7457
7458 2012-07-12 Glenn Morris <rgm@gnu.org>
7459
7460 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Move to configure.
7461
7462 * process.c (init_process_emacs): Rename from init_process.
7463 The old name is also the name of a Mach system call.
7464 * lisp.h, emacs.c: Update for this name change.
7465 * nsgui.h, sysselect.h, s/darwin.h: Remove workaround that is no
7466 longer needed.
7467
7468 2012-07-12 Eli Zaretskii <eliz@gnu.org>
7469
7470 * xdisp.c (insert_left_trunc_glyphs): Fix incorrect size in
7471 memmove call that removes glyphs covered by the left truncation
7472 glyph. Improve commentary.
7473 (display_line): Fix display of continuation glyphs on GUI frames
7474 when the right fringe is turned off and variable-size fonts are
7475 used in the window. Move the code that appends a stretch glyph to
7476 produce_special_glyphs, so that it could be used for truncation
7477 and continuation glyphs alike.
7478 (produce_special_glyphs) [HAVE_WINDOW_SYSTEM]: Produce a stretch
7479 glyph of a suitably computed width, to align the special glyphs at
7480 the window margin. Code moved from display_line. (Bug#11832)
7481
7482 2012-07-12 Glenn Morris <rgm@gnu.org>
7483
7484 * s/aix4-2.h, s/hpux10-20.h: Let configure set NO_EDITRES.
7485
7486 * s/gnu-linux.h, s/hpux10-20.h:
7487 Do not unconditionally define HAVE_XRMSETDATABASE.
7488
7489 * s/gnu-linux.h (UNIX98_PTYS): Let configure set it.
7490
7491 2012-07-12 Paul Eggert <eggert@cs.ucla.edu>
7492
7493 Fix typos that broke OS X build.
7494 Reported by Randal L. Schwartz in
7495 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00225.html>.
7496 * nsterm.m (ns_timeout): Add missing local decl.
7497 (ns_get_color): snprintf -> sprintf, to fix typo.
7498
7499 2012-07-12 Glenn Morris <rgm@gnu.org>
7500
7501 * src/s/aix4-2.h, src/s/cygwin.h, src/s/darwin.h:
7502 * src/s/gnu-linux.h, src/s/hpux10-20.h, src/s/irix6-5.h:
7503 * src/s/sol2-6.h, src/s/unixware.h, src/s/usg5-4-common.h:
7504 Move PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF to configure.
7505
7506 * s/cygwin.h, s/darwin.h, s/gnu-linux.h, s/irix6-5.h:
7507 Move PTY_OPEN to configure.
7508
7509 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
7510 * s/gnu-linux.h, s/hpux10-20.h, s/irix6-5.h, s/template.h:
7511 * s/usg5-4-common.h: Move FIRST_PTY_LETTER, PTY_ITERATION to configure.
7512
7513 2012-07-12 Dmitry Antipov <dmantipov@yandex.ru>
7514
7515 Use empty_unibyte_string where applicable.
7516 * keyboard.c (parse_tool_bar_item): Use empty_unibyte_string.
7517 * lread.c (read1): Likewise.
7518 * xsettings.c (syms_of_xsettings): Likewise.
7519
7520 2012-07-12 Glenn Morris <rgm@gnu.org>
7521
7522 * s/cygwin.h (G_SLICE_ALWAYS_MALLOC):
7523 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN):
7524 * s/irix6-5.h (SETPGRP_RELEASES_CTTY, PREFER_VSUSP):
7525 * s/hpux10-20.h (RUN_TIME_REMAP):
7526 * s/bsd-common.h (TABDLY): Move to configure.
7527
7528 * s/hpux10-20.h, s/sol2-6.h: Move XOS_NEEDS_TIME_H to configure.
7529
7530 * s/bsd-common.h, s/darwin.h: Move TAB3 to configure.
7531
7532 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
7533 (BROKEN_SIGPOLL, BROKEN_GET_CURRENT_DIR_NAME): Let configure set them.
7534
7535 * s/darwin.h (NO_ABORT, NO_MATHERR): Let configure set them.
7536
7537 * s/bsd-common.h, s/cygwin.h, s/gnu-linux.h, s/irix6-5.h:
7538 * s/template.h: Move NARROWPROTO to configure.
7539
7540 2012-07-11 Glenn Morris <rgm@gnu.org>
7541
7542 * s/gnu-linux.h, s/sol2-6.h: No longer define POSIX,
7543 unused since 2011-01-17 change to systty.h.
7544
7545 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h, s/gnu-linux.h:
7546 * s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
7547 Move HAVE_PTYS and HAVE_SOCKETS to configure.
7548
7549 2012-07-11 Paul Eggert <eggert@cs.ucla.edu>
7550
7551 * s/sol2-6.h (HAVE_LIBKSTAT): Remove. (Bug#11914)
7552
7553 2012-07-11 Glenn Morris <rgm@gnu.org>
7554
7555 * s/darwin.h, s/gnu-linux.h, s/template.h:
7556 Move INTERRUPT_INPUT to configure.
7557
7558 2012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
7559
7560 Minor adjustments to interning code.
7561 * lisp.h (intern, intern_c_string): Redefine as static inline
7562 wrappers for intern_1 and intern_c_string_1, respectively.
7563 (intern_1, intern_c_string_1): Rename prototypes.
7564 * lread.c (intern_1, intern_c_string_1, oblookup):
7565 Simplify Vobarray checking.
7566 * font.c (font_intern_prop): Likewise. Adjust comment.
7567 * w32font.c (intern_font_name): Likewise.
7568
7569 2012-07-11 Andreas Schwab <schwab@linux-m68k.org>
7570
7571 * gnutls.c (Fgnutls_boot): Properly parse :keylist argument.
7572
7573 * coding.c (Fdefine_coding_system_internal): Use XCAR/XCDR instead
7574 of Fcar/Fcdr if possible.
7575 * font.c (check_otf_features): Likewise.
7576 * fontset.c (Fnew_fontset): Likewise.
7577 * gnutls.c (Fgnutls_boot): Likewise.
7578 * minibuf.c (read_minibuf): Likewise.
7579 * msdos.c (IT_set_frame_parameters): Likewise.
7580 * xmenu.c (Fx_popup_dialog): Likewise.
7581 * w32menu.c (Fx_popup_dialog): Likewise.
7582
7583 2012-07-11 Glenn Morris <rgm@gnu.org>
7584
7585 * s/bsd-common.h, s/cygwin.h: No need to undefine INTERRUPT_INPUT,
7586 since nothing has defined it on these platforms.
7587
7588 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/gnu-linux.h:
7589 * s/irix6-5.h: Move SIGNALS_VIA_CHARACTERS to configure.
7590
7591 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
7592 * s/gnu-linux.h, s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
7593 Move CLASH_DETECTION to configure.
7594
7595 * s/gnu.h: Remove file, which is now empty.
7596
7597 * s/gnu.h, s/gnu-linux.h:
7598 Move GNU_LIBRARY_PENDING_OUTPUT_COUNT to configure.
7599
7600 2012-07-11 John Wiegley <johnw@newartisans.com>
7601
7602 * alloc.c (mark_memory): Guard the "no_address_safety_analysis"
7603 function attribute, so we only use it if it exists in the
7604 compiler.
7605
7606 2012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
7607
7608 Avoid call to strlen in fast_c_string_match_ignore_case.
7609 * search.c (fast_c_string_match_ignore_case): Change to use
7610 length argument. Adjust users accordingly.
7611 * lisp.h (fast_c_string_match_ignore_case): Adjust prototype.
7612
7613 2012-07-11 Paul Eggert <eggert@cs.ucla.edu>
7614
7615 Assume mkdir, rmdir.
7616 * sysdep.c (mkdir) [!HAVE_MKDIR]: Remove.
7617 * sysdep.c (rmdir) [!HAVE_RMDIR]: Remove.
7618
7619 Assume rename.
7620 * sysdep.c (rename) [!HAVE_RENAME]: Remove.
7621
7622 Assume perror.
7623 * s/hpux10-20.h (HAVE_PERROR): Remove.
7624 * sysdep.c (perror) [HPUX && !HAVE_PERROR]:
7625 Remove dummy definition, as this problem was obsolete long ago.
7626
7627 Assume strerror.
7628 * sysdep.c (strerror) [!HAVE_STRERROR && !WINDOWSNT]: Remove.
7629
7630 2012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
7631
7632 Avoid calls to strlen in font processing functions.
7633 * font.c (font_parse_name, font_parse_xlfd, font_parse_fcname)
7634 (font_open_by_name): Change to use length argument.
7635 Adjust users accordingly.
7636 * font.h (font_open_by_name, font_parse_xlfd, font_unparse_xlfd):
7637 Adjust prototypes.
7638 * xfont.c (xfont_decode_coding_xlfd, font_unparse_xlfd):
7639 Change to return ptrdiff_t.
7640 (xfont_list_pattern, xfont_match): Use length returned by
7641 xfont_decode_coding_xlfd.
7642 * xfns.c (x_default_font_parameter): Omit useless xstrdup.
7643
7644 2012-07-11 Glenn Morris <rgm@gnu.org>
7645
7646 * s/darwin.h, s/freebsd.h, s/netbsd.h:
7647 Move DONT_REOPEN_PTY to configure.
7648
7649 * sound.c (DEFAULT_SOUND_DEVICE) [!WINDOWSNT]:
7650 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Let configure set it.
7651
7652 2012-07-10 Paul Eggert <eggert@cs.ucla.edu>
7653
7654 Remove "#define unix" that is no longer needed (Bug#11905).
7655 * s/aix4-2.h (unix): Remove; no longer needed.
7656
7657 EMACS_TIME simplification (Bug#11875).
7658 This replaces macros (which typically do not work in GDB)
7659 with functions, typedefs and enums, making the code easier to debug.
7660 The functional style also makes code easier to read and maintain.
7661 * systime.h: Include <sys/time.h> on all hosts, not just if
7662 WINDOWSNT, since 'struct timeval' is needed in general.
7663 (EMACS_TIME): Now a typedef, not a macro.
7664 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): Now constants,
7665 not macros.
7666 (EMACS_SECS, EMACS_NSECS, EMACS_TIME_SIGN, EMACS_TIME_VALID_P)
7667 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE, EMACS_TIME_EQ)
7668 (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT)
7669 (EMACS_TIME_LE): Now functions, not macros.
7670 (EMACS_SET_SECS, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS)
7671 (EMACS_SET_USECS, EMACS_SET_SECS_USECS): Remove these macros,
7672 which are not functions. All uses rewritten to use:
7673 (make_emacs_time): New function.
7674 (EMACS_SECS_ADDR, EMACS_SET_INVALID_TIME, EMACS_GET_TIME)
7675 (EMACS_ADD_TIME, EMACS_SUB_TIME): Remove these macros, which are
7676 not functions. All uses rewritten to use the following, respectively:
7677 (emacs_secs_addr, invalid_emacs_time, get_emacs_time)
7678 (add_emacs_time, sub_emacs_time): New functions.
7679 * atimer.c: Don't include <sys/time.h>, as "systime.h" does this.
7680 * fileio.c (Fcopy_file):
7681 * xterm.c (XTflash): Get the current time closer to when it's used.
7682 * makefile.w32-in ($(BLD)/atimer.$(O)): Update dependencies.
7683
7684 * bytecode.c (targets): Suppress -Woverride-init warnings.
7685
7686 Simplify by avoiding confusing use of strncpy etc.
7687 * doc.c (Fsnarf_documentation):
7688 * fileio.c (Ffile_name_directory, Fsubstitute_in_file_name):
7689 * frame.c (Fmake_terminal_frame):
7690 * gtkutil.c (get_utf8_string):
7691 * lread.c (openp):
7692 * nsmenu.m (ns_update_menubar):
7693 * regex.c (regerror):
7694 Prefer memcpy to strncpy and strncat when either will do.
7695 * fileio.c (Fsubstitute_in_file_name):
7696 * keyboard.c (MULTI_LETTER_MOD, parse_modifiers_uncached)
7697 (menu_separator_name_p):
7698 * nsmenu.m (ns_update_menubar):
7699 Prefer memcmp to strncmp when either will do.
7700 * nsterm.m: Include <ftoastr.h>.
7701 (ns_get_color):
7702 * s/gnu-linux.h, s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF):
7703 Prefer snprintf to strncpy.
7704 * nsterm.m (ns_term_init):
7705 * widget.c (set_frame_size) [0]: Prefer xstrdup to xmalloc + strncpy.
7706 * nsterm.m (ns_term_init):
7707 Avoid the need for strncpy, by using build_string or
7708 make_unibyte_string directly. Use dtoastr, not snprintf.
7709 * process.c (Fmake_network_process): Diagnose service names that
7710 are too long, rather than silently truncating them or creating
7711 non-null-terminated names.
7712 (Fnetwork_interface_info): Likewise, for interface names.
7713 * sysdep.c (system_process_attributes) [GNU_LINUX]:
7714 Prefer sprintf to strncat.
7715 * xdisp.c (debug_method_add) [GLYPH_DEBUG]:
7716 Prefer vsnprintf to vsprintf + strncpy.
7717
7718 2012-07-10 Glenn Morris <rgm@gnu.org>
7719
7720 * dispnew.c (PENDING_OUTPUT_COUNT) [!__GNU_LIBRARY__]:
7721 Clarify fallback case.
7722
7723 2012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
7724
7725 Use XCAR and XCDR instead of Fcar and Fcdr where possible.
7726 * callint.c, coding.c, doc.c, editfns.c, eval.c, font.c, fontset.c,
7727 * frame.c, gnutls.c, minibuf.c, msdos.c, textprop.c, w32fns.c,
7728 * w32menu.c, window.c, xmenu.c: Change to use XCAR and XCDR
7729 where argument type is known to be a Lisp_Cons.
7730
7731 2012-07-10 Tom Tromey <tromey@redhat.com>
7732
7733 * bytecode.c (BYTE_CODE_THREADED): New macro.
7734 (BYTE_CODES): New macro. Replaces all old byte-code defines.
7735 (enum byte_code_op): New type.
7736 (CASE, NEXT, FIRST, CASE_DEFAULT, CASE_ABORT): New macros.
7737 (exec_byte_code): Use them. Use token threading when applicable.
7738
7739 2012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
7740
7741 Optimize pure C strings initialization.
7742 * lisp.h (make_pure_string): Fix prototype.
7743 (build_pure_c_string): New function, defined as static inline. This
7744 provides a better opportunity to optimize away calls to strlen when
7745 the function is called with compile-time constant argument.
7746 * alloc.c (make_pure_c_string): Fix comment. Change to add nchars
7747 argument, adjust users accordingly. Use build_pure_c_string where
7748 appropriate.
7749 * buffer.c, coding.c, data.c, dbusbind.c, fileio.c, fontset.c, frame.c,
7750 * keyboard.c, keymap.c, lread.c, search.c, syntax.c, w32fns.c, xdisp.c,
7751 * xfaces.c, xfns.c, xterm.c: Use build_pure_c_string where appropriate.
7752
7753 2012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
7754
7755 Avoid calls to strlen in miscellaneous functions.
7756 * buffer.c (init_buffer): Use precalculated len, adjust if needed.
7757 * font.c (Ffont_xlfd_name): Likewise. Change to call make_string.
7758 * lread.c (openp): Likewise.
7759
7760 2012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
7761
7762 Avoid calls to strlen in path processing functions.
7763 * fileio.c (file_name_as_directory): Add comment. Change to add
7764 srclen argument and return the length of result. Adjust users
7765 accordingly.
7766 (directory_file_name): Fix comment. Change to add srclen argument,
7767 swap 1st and 2nd arguments to obey the common convention.
7768 Adjust users accordingly.
7769 * filelock.c (fill_in_lock_file_name): Avoid calls to strlen.
7770
7771 2012-07-10 Glenn Morris <rgm@gnu.org>
7772
7773 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/netbsd.h, s/unixware.h:
7774 Move PENDING_OUTPUT_COUNT definition to configure.
7775
7776 * s/irix6-5.h (DATA_START, DATA_SEG_BITS):
7777 * s/hpux10-20.h (DATA_SEG_BITS, DATA_START):
7778 * s/gnu.h (DATA_START): Move definitions to configure.
7779
7780 * s/irix6-5.h (SETUP_SLAVE_PTY, PTY_NAME_SPRINTF): Drop ifdef guards.
7781 We include usg5-4-common.h, which defines them both.
7782
7783 * s/gnu.h: Don't include fcntl.h (every file in Emacs that uses
7784 O_RDONLY already includes it).
7785
7786 Stop ns builds setting the EMACSLOADPATH environment variable.
7787 * nsterm.m (ns_load_path): Rename from ns_init_paths.
7788 Now it does not set EMACSLOADPATH, just returns the load-path string.
7789 * nsterm.h: Update accordingly.
7790 * lread.c [HAVE_NS]: Include nsterm.h.
7791 (init_lread) [HAVE_NS]: Use ns_load_path.
7792 * emacs.c (main) [HAVE_NS]: No longer call ns_init_paths.
7793
7794 2012-07-09 Glenn Morris <rgm@gnu.org>
7795
7796 * s/gnu.h (SIGNALS_VIA_CHARACTERS): No need to define it here,
7797 since the included bsd-common.h does so.
7798
7799 Stop ns builds setting the EMACSPATH environment variable.
7800 * nsterm.m (ns_exec_path): New function, split from ns_init_paths.
7801 (ns_init_paths): Do not set EMACSPATH.
7802 * nsterm.h (ns_exec_path): Add it.
7803 * callproc.c (init_callproc_1, init_callproc) [HAVE_NS]:
7804 Use ns_exec_path.
7805
7806 * nsterm.m, nsterm.h (ns_etc_directory): Fix type, empty return.
7807
7808 2012-07-09 Paul Eggert <eggert@cs.ucla.edu>
7809
7810 * process.c (wait_reading_process_output): 'waitchannels' was unset
7811 when read_kbd || !NILP (wait_for_cell); fix this.
7812
7813 Add GCC-style 'const' attribute to functions that can use it.
7814 * character.h (char_resolve_modifier_mask):
7815 * keyboard.h (make_ctrl_char):
7816 * lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe)
7817 (init_character_once, next_almost_prime, init_fns, init_image)
7818 (flush_pending_output, init_sound):
7819 * mem-limits.h (start_of_data):
7820 * menu.h (finish_menu_items):
7821 Add ATTRIBUTE_CONST.
7822 * emacs.c (DEFINE_DUMMY_FUNCTION):
7823 Declare the dummy function with ATTRIBUTE_CONST.
7824 * lisp.h (Fbyteorder, Fmax_char, Fidentity):
7825 Add decls with ATTRIBUTE_CONST.
7826
7827 Minor improvements to make_formatted_string.
7828 * alloc.c (make_formatted_string): Prefer int to ptrdiff_t
7829 where int is good enough, as vsprintf returns an int.
7830 * lisp.h (make_formatted_string): Add ATTRIBUTE_FORMAT_PRINTF.
7831
7832 2012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
7833
7834 Use make_formatted_string to avoid double length calculation.
7835 * lisp.h (make_formatted_string): New prototype.
7836 * alloc.c (make_formatted_string): New function.
7837 * buffer.c (Fgenerate_new_buffer_name): Use it.
7838 * dbusbind.c (syms_of_dbusbind): Likewise.
7839 * editfns.c (Fcurrent_time_zone): Likewise.
7840 * filelock.c (get_boot_time): Likewise.
7841 * frame.c (make_terminal_frame, set_term_frame_name)
7842 (x_report_frame_params): Likewise.
7843 * image.c (gs_load): Likewise.
7844 * minibuf.c (get_minibuffer): Likewise.
7845 * msdos.c (dos_set_window_size): Likewise.
7846 * process.c (make_process): Likewise.
7847 * xdisp.c (ensure_echo_area_buffers): Likewise.
7848 * xsettings.c (apply_xft_settings): Likewise.
7849
7850 2012-07-09 Glenn Morris <rgm@gnu.org>
7851
7852 Stop ns builds polluting the environment with EMACSDATA, EMACSDOC.
7853 * nsterm.m (ns_etc_directory): New function, split from ns_init_paths.
7854 (ns_init_paths): Do not set EMACSDATA, EMACSDOC.
7855 * nsterm.h (ns_etc_directory): Add it.
7856 * callproc.c [HAVE_NS]: Include nsterm.h.
7857 (init_callproc_1, init_callproc) [HAVE_NS]: Use ns_etc_directory.
7858
7859 2012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
7860
7861 Move marker debugging code under MARKER_DEBUG.
7862 * marker.c (MARKER_DEBUG): Move marker debugging code under
7863 #ifdef MARKER_DEBUG because byte_char_debug_check is too slow
7864 for bootstrap with --enable-checking (~3x slowdown reported
7865 by Juanma Barranquero <lekktu@gmail.com>).
7866 (verify_bytepos): Move under #ifdef MARKER_DEBUG.
7867
7868 2012-07-08 Paul Eggert <eggert@cs.ucla.edu>
7869
7870 * systime.h (EMACS_SUB_TIME): Clarify behavior with unsigned time_t.
7871 See <http://bugs.gnu.org/11825#29>.
7872
7873 2012-07-08 Eli Zaretskii <eliz@gnu.org>
7874
7875 * xdisp.c (fill_glyphless_glyph_string): If the face of the glyph
7876 has no font, use the frame's font. (Bug#11813)
7877 (display_line): Add commentary about displaying truncation glyphs
7878 on GUI frames.
7879 (produce_special_glyphs): Move here from term.c.
7880
7881 * term.c (produce_special_glyphs): Move to xdisp.c.
7882
7883 * dispextern.h (produce_special_glyphs): Move prototype to xdisp.c
7884 section.
7885
7886 2012-07-07 Andreas Schwab <schwab@linux-m68k.org>
7887
7888 * xdisp.c (display_line): Avoid warning about implicit declaration
7889 of FRAME_FONT.
7890
7891 * frame.c (get_frame_param): Define only if HAVE_WINDOW_SYSTEM.
7892
7893 * lisp.h: Remove empty conditional.
7894
7895 2012-07-07 Paul Eggert <eggert@cs.ucla.edu>
7896
7897 * lread.c (load_path_check): Now static.
7898
7899 Fix some minor --with-ns problems found by static checking.
7900 * frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]:
7901 (x_set_font) [!HAVE_X_WINDOWS]:
7902 * image.c (xpm_load_image) [HAVE_NS]:
7903 (x_to_xcolors) [!HAVE_X_WINDOWS && !HAVE_NTGUI]:
7904 (x_disable_image) [!HAVE_NS && !HAVE_NTGUI]:
7905 Remove unused local.
7906 (Fx_parse_geometry) [HAVE_NS]: Don't return garbage.
7907 (xpm_load_image) [HAVE_NS && !HAVE_XPM]: Remove unused label.
7908 * image.c (x_create_bitmap_from_file) [HAVE_NS]:
7909 (xpm_load_image, xpm_load) [HAVE_NS && !HAVE_XPM]:
7910 * nsselect.m (symbol_to_nsstring, ns_string_to_pasteboard_internal):
7911 * xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]:
7912 Fix pointer signedness problem.
7913 * xfaces.c (FRAME_X_FONT_TABLE):
7914 * xterm.h (FRAME_X_FONT_TABLE): Remove unused, incompatible macros.
7915
7916 2012-07-07 Glenn Morris <rgm@gnu.org>
7917
7918 * lread.c (load_path_check): New function, split from init_lread.
7919 (init_lread): Reorganize. Motivation:
7920 If EMACSLOADPATH is set, check/warn about that rather than the
7921 defaults, which we are not going to use. Hence we can remove
7922 the turn_off_warning and WINDOWSNT || HAVE_NS tests.
7923 Don't warn if site-lisp directories are missing.
7924 If not installed, start from a blank load-path, since
7925 PATH_LOADSEARCH refers to the eventual installation directories.
7926
7927 2012-07-07 Eli Zaretskii <eliz@gnu.org>
7928
7929 Support truncation and continuation glyphs on GUI frames, when
7930 fringes are disabled. (Bug#11832)
7931 * xdisp.c (init_iterator): Get dimensions of truncation and
7932 continuation glyphs even if on GUI frames.
7933 Adjust it->last_visible_x on GUI frames when the left or right fringes,
7934 or both, are absent.
7935 (start_display, move_it_in_display_line_to): Handle the case of a
7936 GUI frame without a fringe to display continuation or truncation
7937 glyphs.
7938 (insert_left_trunc_glyphs): Support GUI frames: make sure
7939 truncation glyphs overwrite enough glyphs from the current line to
7940 have sufficient space in pixels.
7941 (display_line): Support truncation and continuation glyphs on GUI
7942 frames. If some spare pixels are left on the line after inserting
7943 the truncation glyphs, fill that space with a stretch glyph of a
7944 suitably computed width.
7945
7946 * term.c (produce_special_glyphs): Call PRODUCE_GLYPHS, not
7947 produce_glyphs, to support GUI sessions.
7948
7949 2012-07-07 Paul Eggert <eggert@cs.ucla.edu>
7950
7951 * sysdep.c (ULLONG_MAX): Define if not already defined (Bug#11781).
7952
7953 * sysdep.c (list_system_processes): Port to NetBSD-current (Bug#11797).
7954
7955 Do not require float-time's arg to fit in time_t (Bug#11825).
7956 This works better on hosts where time_t is unsigned, and where
7957 float-time is applied to the (negative) difference between two times.
7958 * editfns.c (decode_time_components): Last arg is now double *,
7959 not int *, and means to store all the result as a double, without
7960 worrying about whether the seconds part fits in time_t.
7961 All callers changed.
7962 (lisp_time_argument): Remove last int * arg, as it's no longer needed.
7963 All callers changed.
7964 (Ffloat_time): Do not fail merely because the specified time falls
7965 outside of time_t range.
7966
7967 2012-07-07 Glenn Morris <rgm@gnu.org>
7968
7969 * s/darwin.h (HAVE_RES_INIT, HAVE_LIBRESOLV):
7970 * s/hpux10-20.h (HAVE_RINT, HAVE_RANDOM):
7971 * s/unixware.h (HAVE_GETWD): Move undefs to configure (effectively).
7972
7973 2012-07-07 Juanma Barranquero <lekktu@gmail.com>
7974
7975 * makefile.w32-in (DISPEXTERN_H, $(BLD)/regex.$(O)):
7976 Update dependencies.
7977
7978 * s/ms-w32.h [_MSC_VER]: Remove strcasecmp, strncasecmp.
7979
7980 2012-07-06 Paul Eggert <eggert@cs.ucla.edu>
7981
7982 Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786).
7983 * dispextern.h, nsfns.m, nsterm.m: Include <c-strcase.h>.
7984 * dispextern.h (xstrcasecmp): Rewrite using c_strcasecmp.
7985 * nsfns.m (x_get_string_resource): Use c_strncasecmp, not strncasecmp.
7986 * nsterm.m (ns_default): Use c_strcasecmp, not strcasecmp.
7987 * xfaces.c (xstrcasecmp) [!HAVE_STRCASECMP]: Remove.
7988
7989 * xfont.c (compare_font_names): Redo to omit the need for casts.
7990
7991 2012-07-06 Andreas Schwab <schwab@linux-m68k.org>
7992
7993 * xfns.c (Fx_change_window_property): Doc fix.
7994 * w32fns.c (Fx_change_window_property): Doc fix.
7995
7996 * w32fns.c (Fx_window_property): Accept the same arguments as the
7997 X Windows version. Doc fix.
7998 * xfns.c (Fx_window_property): Doc fix. (Bug#11870)
7999
8000 2012-07-06 Juanma Barranquero <lekktu@gmail.com>
8001 Eli Zaretskii <eliz@gnu.org>
8002
8003 * s/ms-w32.h: Settings not specific to Windows moved to nt/config.nt.
8004 Windows-specific code from nt/config.nt moved here.
8005 Obsolete settings removed.
8006
8007 2012-07-06 Paul Eggert <eggert@cs.ucla.edu>
8008
8009 * process.c: Avoid unnecessary calls to gettime.
8010 (wait_reading_process_output): Don't get the time of day
8011 when gobbling data immediately and not waiting, as there's no need
8012 for it in that case. This removes a FIXME.
8013
8014 2012-07-06 Jan Djärv <jan.h.d@swipnet.se>
8015
8016 * gtkutil.c (xg_event_is_for_scrollbar): Assign gwin when HAVE_GTK3
8017 is defined (Bug#11768).
8018
8019 2012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
8020
8021 Fix marker debugging code.
8022 * marker.c (byte_char_debug_check): Do not perform the check
8023 if buffer is not multibyte.
8024 (buf_charpos_to_bytepos, buf_bytepos_to_charpos):
8025 Call byte_char_debug_check with correct arguments.
8026
8027 2012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
8028
8029 Compile marker debugging code only if ENABLE_CHECKING is defined.
8030 * marker.c (byte_char_debug_check, count_markers):
8031 Use only if ENABLE_CHECKING is defined.
8032 (byte_debug_flag): Remove.
8033 (CONSIDER, buf_charpos_to_bytepos, buf_bytepos_to_charpos):
8034 Always call byte_char_debug_check if ENABLE_CHECKING is defined.
8035
8036 2012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
8037
8038 Avoid code repetition in marker-related functions.
8039 * marker.c (attach_marker): New function.
8040 (Fset_marker, set_marker_restricted, set_marker_both)
8041 (set_marker_restricted_both): Use it.
8042 (Fset_marker, set_marker_restricted, Fbuffer_has_markers_at):
8043 Consistently rename charno to charpos.
8044 (marker_position): Add eassert.
8045 (marker_byte_position): Convert to eassert.
8046
8047 2012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
8048
8049 Simplify list operations in unchain_overlay and unchain_marker.
8050 * buffer.c (unchain_overlay): Simplify. Add comment.
8051 * marker.c (unchain_marker): Simplify. Fix comments.
8052
8053 2012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
8054
8055 Introduce fast path for the widely used marker operation.
8056 * alloc.c (build_marker): New function.
8057 * lisp.h (build_marker): New prototype.
8058 * buffer.c (clone_per_buffer_values, Fmake_indirect_buffer): Use it.
8059 * composite.c (autocmp_chars): Likewise.
8060 * editfns.c (buildmark): Remove.
8061 (Fpoint_marker, Fpoint_min_marker, Fpoint_max_marker)
8062 (save_restriction_save): Use build_marker.
8063 * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise.
8064 * window.c (save_window_save): Likewise.
8065
8066 2012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
8067
8068 Do not use Fdelete_overlay in delete_all_overlays
8069 to avoid redundant calls to unchain_overlay.
8070 * buffer.c (drop_overlay): New function.
8071 (delete_all_overlays, Fdelete_overlay): Use it.
8072 * minibuf.c (get_minibuffer): Fix comment.
8073
8074 2012-07-06 Paul Eggert <eggert@cs.ucla.edu>
8075
8076 Port to OpenBSD 5.1 amd64.
8077 * sysdep.c [BSD_SYSTEM]: Include <sys/param.h> before <sys/sysctl.h>.
8078 This is needed for OpenBSD, and should be harmless on all BSD systems.
8079 Also, include <sys/sysctl.h>, as it should be available on all
8080 BSD_SYSTEM hosts given that we're already calling sysctl in that case.
8081 (list_system_processes) [__OpenBSD__]: Use DARWIN_OS style mib, but
8082 use p_pid member, not kp_proc.pid.
8083
8084 2012-07-06 Glenn Morris <rgm@gnu.org>
8085
8086 * Makefile.in (emacs$(EXEEXT)): Don't check for load-path shadows.
8087
8088 2012-07-05 Paul Eggert <eggert@cs.ucla.edu>
8089
8090 More xmalloc and related cleanup.
8091 * alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c:
8092 * callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c:
8093 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c:
8094 * font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c:
8095 * gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c:
8096 * nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c:
8097 * regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c:
8098 * sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c:
8099 * xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c:
8100 * xterm.c:
8101 Omit needless casts involving void * pointers and allocation.
8102 Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))",
8103 as the former is more robust if P's type is changed.
8104 Prefer xzalloc to xmalloc + memset 0.
8105 Simplify malloc-or-realloc to realloc.
8106 Don't worry about xmalloc returning a null pointer.
8107 Prefer xstrdup to xmalloc + strcpy.
8108 * editfns.c (Fmessage_box): Grow message_text by at least 80 when
8109 growing it.
8110 * keyboard.c (apply_modifiers_uncached): Prefer local array to
8111 alloca of a constant.
8112
8113 2012-07-05 Eli Zaretskii <eliz@gnu.org>
8114
8115 * xdisp.c (display_line): Fix horizontal pixel coordinates when
8116 hscroll is larger than the line width. Fixes long and futile
8117 looping inside extend_face_to_end_of_line (on a TTY) producing
8118 glyphs that are not needed and thrown away.
8119
8120 2012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
8121
8122 * marker.c (set_marker_restricted_both): Simplify by using
8123 clip_to_bounds.
8124
8125 2012-07-05 Paul Eggert <eggert@cs.ucla.edu>
8126
8127 * editfns.c (region_limit): Simplify by using clip_to_bounds.
8128
8129 2012-07-05 Jan Djärv <jan.h.d@swipnet.se>
8130
8131 * gtkutil.c (gtk_scrollbar_new, gtk_box_new): Define when HAVE_GTK3 is
8132 not defined (Bug#11768).
8133 (xg_create_frame_widgets): Use gtk_plug_new_for_display (Bug#11768).
8134 (xg_create_frame_widgets, create_dialog, xg_get_file_with_chooser)
8135 (make_widget_for_menu_item, xg_make_tool_item): Use gtk_box_new
8136 followed by gtk_box_set_homogeneous (Bug#11768).
8137 (xg_update_menu_item): Use GTK_IS_BOX (Bug#11768).
8138 (update_theme_scrollbar_width, xg_create_scroll_bar):
8139 Use gtk_scrollbar_new (Bug#11768).
8140 (xg_event_is_for_scrollbar): Use Gdk Device functions for HAVE_GTK3.
8141 (is_box_type): New function (Bug#11768).
8142 (xg_tool_item_stale_p): Call is_box_type.
8143 (xg_initialize): Get settings by calling gtk_settings_get_for_screen
8144 with default display (Bug#11768).
8145
8146 2012-07-05 Eli Zaretskii <eliz@gnu.org>
8147
8148 * xdisp.c (window_hscroll_limited): New function.
8149 (pos_visible_p, init_iterator): Use it to avoid overflow of pixel
8150 coordinates when window's hscroll is set to insanely large
8151 values. (Bug#11857)
8152
8153 2012-07-05 Juanma Barranquero <lekktu@gmail.com>
8154
8155 * makefile.w32-in ($(BLD)/dired.$(O), $(BLD)/fileio.$(O)): Fix typo.
8156 ($(BLD)/terminal.$(O), $(BLD)/syntax.$(O)): Update dependencies.
8157
8158 2012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
8159
8160 Cleanup xmalloc.
8161 * lisp.h (xzalloc): New prototype. Omit needless casts.
8162 * alloc.c (xzalloc): New function. Omit needless casts.
8163 * charset.c: Omit needless casts. Convert all calls to
8164 xmalloc with following memset to xzalloc.
8165 * dispnew.c: Likewise.
8166 * fringe.c: Likewise.
8167 * image.c: Likewise.
8168 * sound.c: Likewise.
8169 * term.c: Likewise.
8170 * w32fns.c: Likewise.
8171 * w32font.c: Likewise.
8172 * w32term.c: Likewise.
8173 * xfaces.c: Likewise.
8174 * xfns.c: Likewise.
8175 * xterm.c: Likewise.
8176 * atimer.c: Omit needless casts.
8177 * buffer.c: Likewise.
8178 * callproc.c: Likewise.
8179 * ccl.c: Likewise.
8180 * coding.c: Likewise.
8181 * composite.c: Likewise.
8182 * doc.c: Likewise.
8183 * doprnt.c: Likewise.
8184 * editfns.c: Likewise.
8185 * emacs.c: Likewise.
8186 * eval.c: Likewise.
8187 * filelock.c: Likewise.
8188 * fns.c: Likewise.
8189 * gtkutil.c: Likewise.
8190 * keyboard.c: Likewise.
8191 * lisp.h: Likewise.
8192 * lread.c: Likewise.
8193 * minibuf.c: Likewise.
8194 * msdos.c: Likewise.
8195 * print.c: Likewise.
8196 * process.c: Likewise.
8197 * region-cache.c: Likewise.
8198 * search.c: Likewise.
8199 * sysdep.c: Likewise.
8200 * termcap.c: Likewise.
8201 * terminal.c: Likewise.
8202 * tparam.c: Likewise.
8203 * w16select.c: Likewise.
8204 * w32.c: Likewise.
8205 * w32reg.c: Likewise.
8206 * w32select.c: Likewise.
8207 * w32uniscribe.c: Likewise.
8208 * widget.c: Likewise.
8209 * xdisp.c: Likewise.
8210 * xmenu.c: Likewise.
8211 * xrdb.c: Likewise.
8212 * xselect.c: Likewise.
8213
8214 2012-07-05 Paul Eggert <eggert@cs.ucla.edu>
8215
8216 * fileio.c (time_error_value): Check the right error number.
8217 Problem reported by Troels Nielsen in
8218 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00095.html>.
8219
8220 2012-07-04 Paul Eggert <eggert@cs.ucla.edu>
8221
8222 * window.c (set_window_hscroll): Revert the 100000 hscroll limit.
8223 This should be fixed in a better way; see Eli Zaretskii in
8224 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00088.html>.
8225 (HSCROLL_MAX): Remove; this is now internal to set_window_hscroll.
8226
8227 * fileio.c (time_error_value): Rename from special_mtime.
8228 The old name's problems were noted by Eli Zaretskii in
8229 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00087.html>.
8230
8231 * emacs.c (gdb_pvec_type): Change it back to enum pvec_type.
8232 This variable's comment says Emacs needs at least one GDB-visible
8233 symbol of type enum pvec_type, to work around GDB problems.
8234 The symbol's value doesn't matter.
8235
8236 * alloc.c (PSEUDOVECTOR_NBYTES): Remove stray ';'
8237 that causes compilation to fail on pre-C99 compilers.
8238
8239 2012-07-04 Juanma Barranquero <lekktu@gmail.com>
8240
8241 * s/ms-w32.h (LISP_FLOAT_TYPE, HAVE_MEMCMP, HAVE_MEMCPY)
8242 (HAVE_MEMMOVE, HAVE_MEMSET): Don't set, obsolete.
8243
8244 2012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
8245
8246 * buffer.c (init_buffer_once): Fix initialization of
8247 headers for buffer_defaults and buffer_local_symbols.
8248 Reported by Juanma Barranquero <lekktu@gmail.com>.
8249
8250 2012-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
8251
8252 Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
8253 * lisp.h (enum pvec_type): Use fewer bits.
8254 (PSEUDOVECTOR_SIZE_BITS): New constant.
8255 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it.
8256 (XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to
8257 change in pvec_type.
8258 (PSEUDOVECTOR_TYPEP): New macro.
8259 (TYPED_PSEUDOVECTORP): Use it.
8260 * fns.c (internal_equal): Adapt code to extract pvectype.
8261 * emacs.c (gdb_pvec_type): Update type.
8262 * alloc.c (PSEUDOVECTOR_NBYTES): New macro.
8263 (VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK).
8264 (VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE).
8265 (SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE.
8266 (sweep_vectors): Use it. Use local var `total_bytes' instead of
8267 abusing vector->header.next.nbytes.
8268 (live_vector_p): Use PVEC_TYPE.
8269 (mark_object): Adapt code to extract pvectype. Use switch.
8270
8271 2012-07-04 Paul Eggert <eggert@cs.ucla.edu>
8272
8273 * doprnt.c (doprnt): Don't assume string length fits in 'int'.
8274 Tighten new eassert a bit.
8275
8276 2012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
8277
8278 Fix compilation with --enable-gcc-warnings and -O1
8279 optimization level.
8280 * doprnt.c (doprnt): Change type of tem to int, initialize
8281 to avoid compiler warning. Add eassert.
8282 * search.c (simple_search): Initialize match_byte to avoid
8283 compiler warning. Add eassert.
8284
8285 2012-07-04 Paul Eggert <eggert@cs.ucla.edu>
8286
8287 Avoid weird behavior with large horizontal scrolls.
8288 Without this change, for example, large hscroll values would
8289 mess up Emacs's display on Fedora 15 x86, presumably due to
8290 overflows in int calculations in the display code.
8291 Also, if buffers had long lines, Emacs would freeze.
8292 * window.c (HSCROLL_MAX): Reduce to 100000, and make it visible to GDB.
8293 (set_window_hscroll): New function, containing the old guts of
8294 Fset_window_hscroll. Return the clipped value.
8295 (Fset_window_hscroll, Fscroll_left, Fscroll_right): Use it.
8296 This avoids the need to check against PTRDIFF_MAX.
8297
8298 * buffer.c (Fgenerate_new_buffer_name): Fix sprintf format mismatch.
8299
8300 2012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
8301
8302 * buffer.c (Fgenerate_new_buffer_name): Fix type mismatch.
8303
8304 2012-07-04 Paul Eggert <eggert@cs.ucla.edu>
8305
8306 * regex.c: Suppress GCC warning on RHEL 6. (Bug#11207)
8307 Conditionalize the pragmas on GCC 4.5 or later, not GCC 4.3 or later,
8308 since GCC 4.4.6 issues a bogus warning for them.
8309
8310 Fix bugs in file timestamp newness comparisons.
8311 * fileio.c (Ffile_newer_than_file_p):
8312 * lread.c (Fload): Use full timestamp resolution of files,
8313 not just the 1-second resolution, so that files that are only
8314 slightly newer still count as newer.
8315 * fileio.c (Ffile_newer_than_file_p): Don't assume file
8316 timestamps fit in 'int'; this fixes a Y2038 bug on most hosts.
8317
8318 2012-07-03 Paul Eggert <eggert@cs.ucla.edu>
8319
8320 * fileio.c: Improve handling of file time marker. (Bug#11852)
8321 (special_mtime): New function.
8322 (Finsert_file_contents, Fverify_visited_file_modtime):
8323 Use it to set special mtime values consistently.
8324
8325 2012-07-03 Andreas Schwab <schwab@linux-m68k.org>
8326
8327 * fileio.c (Finsert_file_contents): Properly handle st_mtime
8328 marker for non-existing file. (Bug#11852)
8329
8330 2012-07-03 Glenn Morris <rgm@gnu.org>
8331
8332 * lisp.h (Fread_file_name): Restore EXFUN (it's not a normal DEFUN
8333 and did not make it into globals.h).
8334
8335 2012-07-03 Tom Tromey <tromey@redhat.com>
8336
8337 * window.c (Fset_window_margins, Fset_window_fringes)
8338 (Fset_window_scroll_bars, Fset_window_vscroll): No longer static.
8339 * textprop.c (Fprevious_property_change): No longer static.
8340 * syntax.c (Fsyntax_table_p): No longer static.
8341 * process.c (Fget_process, Fprocess_datagram_address): No longer
8342 static.
8343 * keymap.c (Flookup_key, Fcopy_keymap): No longer static.
8344 * keyboard.c (Fcommand_execute): No longer static.
8345 Remove EXFUN.
8346 * insdel.c (Fcombine_after_change_execute): No longer static.
8347 * image.c (Finit_image_library): No longer static.
8348 * fileio.c (Fmake_symbolic_link): No longer static.
8349 * eval.c (Ffetch_bytecode): No longer static.
8350 * editfns.c (Fuser_full_name): No longer static.
8351 * doc.c (Fdocumentation_property, Fsnarf_documentation):
8352 No longer static.
8353 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer
8354 static.
8355 * dired.c (Ffile_attributes): No longer static.
8356 * composite.c (Fcomposition_get_gstring): No longer static.
8357 * callproc.c (Fgetenv_internal): No longer static.
8358
8359 * ccl.h: Remove EXFUNs.
8360 * buffer.h: Remove EXFUNs.
8361 * dispextern.h: Remove EXFUNs.
8362 * intervals.h: Remove EXFUNs.
8363 * fontset.h: Remove EXFUN.
8364 * font.h: Remove EXFUNs.
8365 * dosfns.c (system_process_attributes): Remove EXFUN.
8366 * keymap.h: Remove EXFUNs.
8367 * lisp.h: Remove EXFUNs.
8368 * w32term.h: Remove EXFUNs.
8369 * window.h: Remove EXFUNs.
8370 * xsettings.h: Remove EXFUN.
8371 * xterm.h: Remove EXFUN.
8372
8373 2012-07-03 Glenn Morris <rgm@gnu.org>
8374
8375 * lisp.h (Frandom): Make it visible to C.
8376 * buffer.c (Fgenerate_new_buffer_name): Speed up finding a new
8377 buffer for invisible buffers. (Bug#1229)
8378
8379 2012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
8380
8381 Fix block vector allocation code to allow VECTOR_BLOCK_SIZE
8382 values which aren't power of 2.
8383 * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro.
8384 Verify its value and the value of VECTOR_BLOCK_SIZE. Adjust users
8385 accordingly.
8386
8387 2012-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
8388
8389 * lisp.h (Lisp_Misc, Lisp_Fwd): Move around to group better.
8390
8391 * alloc.c (mark_object): Revert part of last patch to use `switch'.
8392
8393 2012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
8394
8395 * alloc.c (allocate_vector_block): Remove redundant
8396 calls to mallopt if DOUG_LEA_MALLOC is defined.
8397 (allocate_vectorlike): If DOUG_LEA_MALLOC is defined,
8398 avoid calls to mallopt if zero_vector is returned.
8399
8400 2012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
8401
8402 * alloc.c (check_string_bytes): If GC_CHECK_STRING_BYTES
8403 is enabled, avoid dereferencing NULL current_sblock if
8404 running undumped.
8405
8406 2012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
8407
8408 Cleanup basic buffer management.
8409 * buffer.h (struct buffer): Change layout to use generic vector
8410 marking code. Fix some comments. Change type of 'clip_changed'
8411 to bitfield. Remove unused #ifndef old.
8412 (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): Remove.
8413 (GET_OVERLAYS_AT): Fix indentation.
8414 (for_each_per_buffer_object_at): New macro.
8415 * buffer.c (clone_per_buffer_values, reset_buffer_local_variables)
8416 (Fbuffer_local_variables): Use it.
8417 (init_buffer_once, syms_of_buffer): Remove unused #ifndef old.
8418 * alloc.c (allocate_buffer): Adjust to match new layout of
8419 struct buffer. Fix comment.
8420 (mark_overlay): New function.
8421 (mark_buffer): Use it. Use mark_vectorlike to mark normal
8422 Lisp area of struct buffer.
8423 (mark_object): Use it. Adjust marking of misc objects
8424 and related comments.
8425
8426 2012-07-02 Paul Eggert <eggert@cs.ucla.edu>
8427
8428 * alloc.c (mark_object): Remove "#ifdef GC_CHECK_MARKED_OBJECTS"
8429 wrapper that is not needed because the wrapped code is a no-op (zero
8430 machine instructions) when GC_CHECK_MARKED_OBJECTS is not defined.
8431 This avoids a -Wunused-macros diagnostic with GCC 4.7.1 x86-64.
8432
8433 2012-07-02 Dmitry Antipov <dmantipov@yandex.ru>
8434
8435 * alloc.c (mark_buffer): Simplify. Remove prototype.
8436 (mark_object): Add comment. Reorganize marking of vector-like
8437 objects. Use CHECK_LIVE for all vector-like objects except buffers
8438 and subroutines when GC_CHECK_MARKED_OBJECTS is defined.
8439 Avoid redundant calls to mark_vectorlike for bool vectors.
8440
8441 2012-06-30 Glenn Morris <rgm@gnu.org>
8442
8443 * nsterm.m (ns_init_paths): Ignore site-lisp if --no-site-lisp.
8444
8445 * epaths.in (PATH_SITELOADSEARCH): New.
8446 * lread.c (init_lread): Use PATH_SITELOADSEARCH.
8447 This is rather than relying on --enable-locallisppath elements
8448 having "site-lisp" in their names. (Bug#10208#25, 11658)
8449
8450 2012-06-30 Eli Zaretskii <eliz@gnu.org>
8451
8452 * w32proc.c (sys_select): Accept and ignore one more argument.
8453
8454 * w32.c (emacs_gnutls_pull): Call select with one more argument.
8455
8456 * sysselect.h [DOS_NT]: Don't include sys/select.h.
8457 (pselect) [!MS_DOS]: Redirect to sys_select.
8458
8459 * sysdep.c: Don't include dos.h and dosfns.h.
8460
8461 * process.c (sys_select):
8462 * msdos.c (sys_select): Accept one more argument and ignore it.
8463
8464 * msdos.c (event_timestamp, sys_select): Use gnulib's gettime;
8465 adapt data types and code to that.
8466
8467 * dosfns.c:
8468 * msdos.c (gettime, settime): Define away the prototypes in dos.h,
8469 which clashes with the gnulib function of the same name.
8470
8471 2012-06-30 Andreas Schwab <schwab@linux-m68k.org>
8472
8473 * font.c (font_style_to_value, font_style_symbolic)
8474 (font_prop_validate_style): Add type checks for values in
8475 font_style_table.
8476
8477 * lisp.h (CHECK_RANGED_INTEGER): Make value to check the first
8478 argument.
8479 * character.c, charset.c, menu.c, process.c, window.c: Adjust all
8480 uses.
8481
8482 2012-06-29 Eli Zaretskii <eliz@gnu.org>
8483
8484 * xdisp.c (try_window_id): Undo last change.
8485
8486 * w32.c (getwd): Adjust commentary about startup_dir.
8487 (init_environment): Always call sys_access, even in non-MSVC
8488 builds. Don't chdir to the directory of the Emacs executable.
8489 This undoes code from 1997 which was justified by the need to
8490 "avoid conflicts when removing and renaming directories". But its
8491 downside was that every relative file name was being interpreted
8492 relative to the directory of the Emacs executable, which can never
8493 be TRT. In particular, it broke sys_access when called with
8494 relative file names.
8495 (sys_access): Map GetLastError to errno.
8496
8497 2012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
8498
8499 * window.h (struct window): Change type of 'fringes_outside_margins'
8500 to bitfield. Fix comment. Adjust users accordingly.
8501 (struct window): Change type of 'window_end_bytepos' to ptrdiff_t.
8502 Adjust comment.
8503 * xdisp.c (try_window_id): Change type of 'first_vpos' and 'vpos'
8504 to ptrdiff_t.
8505
8506 2012-06-29 Andreas Schwab <schwab@linux-m68k.org>
8507
8508 * gnutls.c (emacs_gnutls_handshake):
8509 Add QUIT to make the loop interruptible.
8510
8511 2012-06-29 Glenn Morris <rgm@gnu.org>
8512
8513 * charset.c (init_charset): Make lack of etc/charsets fatal.
8514
8515 2012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
8516
8517 * editfns.c (region_limit): Fix type mismatch.
8518
8519 2012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
8520
8521 * nsfns.m: Fix GLYPH_DEBUG usage assuming that it may be
8522 undefined. Convert from xassert to eassert.
8523 * nsmenu.m: Convert from xassert to eassert.
8524 * nsterm.m: Likewise.
8525
8526 2012-06-28 Stefan Monnier <monnier@iro.umontreal.ca>
8527
8528 * editfns.c (region_limit): Clip to narrowing (bug#11770).
8529
8530 2012-06-28 Paul Eggert <eggert@cs.ucla.edu>
8531
8532 Avoid integer overflow on scroll-left and scroll-right.
8533 * window.c (HSCROLL_MAX): New macro.
8534 (Fscroll_left, Fscroll_right): Avoid undefined behavior on integer
8535 overflow when requested scroll falls outside ptrdiff_t range.
8536
8537 2012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
8538
8539 * window.h (struct window): Change type of 'hscroll',
8540 'min_hscroll' and 'last_point' from Lisp_Object to ptrdiff_t,
8541 'last_modified' and 'last_overlay_modified' to EMACS_INT.
8542 Adjust users accordingly.
8543 * xdisp.c (try_cursor_movement): Replace type check with eassert.
8544 * window.c (Fscroll_left, Fscroll_right): Change type of 'hscroll'
8545 from EMACS_INT to ptrdiff_t.
8546 (make_window): Omit redundant initialization.
8547
8548 2012-06-28 Juanma Barranquero <lekktu@gmail.com>
8549
8550 * makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies.
8551
8552 2012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
8553
8554 * window.h (struct window): Change type of 'use_time' and
8555 'sequence_number' from Lisp_Object to int.
8556 * frame.c (make_frame): Adjust users accordingly.
8557 * print.c (print_object): Likewise.
8558 * window.c (select_window, Fwindow_use_time, make_parent_window)
8559 (make_window): Likewise.
8560
8561 2012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
8562
8563 * dispextern.h (GLYPH_DEBUG): Now defined in config.h if
8564 enabled with --enable-checking=[all,glyphs] configure option.
8565 Fix GLYPH_DEBUG usage assuming that it may be undefined,
8566 adjust comments accordingly.
8567 * dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be
8568 undefined, adjust comments accordingly.
8569 * image.c: Likewise.
8570 * scroll.c: Likewise.
8571 * w32fns.c: Likewise.
8572 * w32term.c: Likewise.
8573 * xdisp.c: Likewise.
8574 * xfaces.c: Likewise.
8575 * xfns.c: Likewise.
8576 * xterm.c: Likewise.
8577
8578 2012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
8579
8580 Generalize run-time debugging checks.
8581 * dispextern.h (XASSERTS): Remove.
8582 * fontset.c (xassert): Remove.
8583 Convert from xassert to eassert.
8584 * alloc.c: Convert from xassert to eassert.
8585 * bidi.c: Likewise.
8586 * dispnew.c: Likewise.
8587 * fns.c: Likewise.
8588 * fringe.c: Likewise.
8589 * ftfont.c: Likewise.
8590 * gtkutil.c: Likewise.
8591 * image.c: Likewise.
8592 * keyboard.c: Likewise.
8593 * menu.c: Likewise.
8594 * process.c: Likewise.
8595 * scroll.c: Likewise.
8596 * sound.c: Likewise.
8597 * term.c: Likewise.
8598 * w32console.c: Likewise.
8599 * w32fns.c: Likewise.
8600 * w32term.c: Likewise.
8601 * window.c: Likewise.
8602 * xdisp.c: Likewise.
8603 * xfaces.c: Likewise.
8604 * xfns.c: Likewise.
8605 * xselect.c: Likewise.
8606 * xterm.c: Likewise.
8607
8608 2012-06-27 Stefan Monnier <monnier@iro.umontreal.ca>
8609
8610 * fns.c (maybe_resize_hash_table): Output message when growing the
8611 purify-hashtable.
8612
8613 2012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
8614
8615 * alloc.c (allocate_string_data): Remove dead code.
8616 * xsettings.c (XSETTINGS_FONT_NAME): Move under HAVE_XFT to
8617 avoid GCC warning about unused macro.
8618
8619 2012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
8620
8621 * alloc.c (allocate_string): Omit intervals initialization.
8622 * alloc.c (make_uninit_multibyte_string): Initialize intervals
8623 as in make_pure_string and make_pure_c_string.
8624
8625 2012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
8626
8627 * alloc.c (allocate_string): Fix last change.
8628
8629 2012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
8630
8631 * alloc.c (allocate_string): Remove two redundant calls
8632 to memset, add explicit initialization where appropriate.
8633
8634 2012-06-27 Glenn Morris <rgm@gnu.org>
8635
8636 * lisp.mk (lisp): Remove paths.elc.
8637
8638 2012-06-27 Chong Yidong <cyd@gnu.org>
8639
8640 * doc.c (Fsubstitute_command_keys): Fix punctuation.
8641
8642 2012-06-26 John Wiegley <johnw@newartisans.com>
8643
8644 * unexmacosx.c (copy_data_segment): Add two section names used
8645 on Mac OS X Lion: __mod_init_func and __mod_term_func.
8646
8647 * alloc.c (mark_memory): Do not check with -faddress-sanitizer
8648 when building with Clang.
8649
8650 2012-06-26 Stefan Monnier <monnier@iro.umontreal.ca>
8651
8652 * eval.c (Fapply): Allow calling it with a single argument.
8653
8654 2012-06-26 Eli Zaretskii <eliz@gnu.org>
8655
8656 * s/ms-w32.h (strcasecmp, strncasecmp) [_MSC_VER]: Redirect to
8657 _stricmp and _strnicmp.
8658 (HAVE_STRCASECMP, HAVE_STRNCASECMP): Define to 1.
8659
8660 2012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
8661
8662 * alloc.c (allocate_window): Zero out non-Lisp part of newly
8663 allocated window.
8664 (allocate_process): Likewise for new process.
8665 (allocate_terminal): Change to use offsetof.
8666 (allocate_frame): Likewise.
8667 * frame.c (make_frame): Omit redundant initialization.
8668 * window.c (make_parent_window): Use memset.
8669 (make_window): Omit redundant initialization.
8670 * process.c (make_process): Omit redundant initialization.
8671 * terminal.c (create_terminal): Likewise.
8672
8673 2012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
8674
8675 * term.c (delete_tty): Remove redundant call to memset.
8676
8677 2012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
8678
8679 * alloc.c: Remove build_string.
8680 * lisp.h: Define build_string as static inline. This provides
8681 a better opportunity to optimize away calls to strlen when the
8682 function is called with compile-time constant argument.
8683 * image.c (imagemagick_error): Convert to build_string.
8684 * w32proc.c (sys_spawnve): Likewise.
8685 * xterm.c (x_term_init): Likewise.
8686
8687 2012-06-26 Paul Eggert <eggert@cs.ucla.edu>
8688
8689 Use sprintf return value instead of invoking strlen on result.
8690 In the old days this wasn't portable, since some sprintf
8691 implementations returned char *. But they died out years ago and
8692 Emacs already assumes sprintf returns int.
8693 Similarly for float_to_string.
8694 This patch speeds up (number-to-string 1000) by 3% on Fedora 15 x86-64.
8695 * ccl.c (ccl_driver):
8696 * character.c (string_escape_byte8):
8697 * data.c (Fnumber_to_string):
8698 * doprnt.c (doprnt):
8699 * print.c (print_object):
8700 * xdisp.c (message_dolog):
8701 * xfns.c (syms_of_xfns):
8702 Use sprintf or float_to_string result to avoid need to call strlen.
8703 * data.c (Fnumber_to_string):
8704 Use make_unibyte_string, since the string must be ASCII.
8705 * lisp.h, print.c (float_to_string): Now returns int length.
8706 * term.c (produce_glyphless_glyph):
8707 Use sprintf result rather than recomputing it.
8708
8709 Clean out last vestiges of the old HAVE_CONFIG_H stuff.
8710 * Makefile.in (ALL_CFLAGS):
8711 * makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H.
8712 * gmalloc.c, regex.c: Include <config.h> unconditionally.
8713
8714 2012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
8715
8716 * dispextern.h (xstrcasecmp): Define to library function
8717 strcasecmp if available.
8718 * xfaces.c: Do not use xstrcasecmp if strcasecmp is available.
8719
8720 2012-06-25 Andreas Schwab <schwab@linux-m68k.org>
8721
8722 * keyboard.c (menu_bar_items, menu_bar_item, read_key_sequence):
8723 Avoid comma operator.
8724 * menu.c (push_submenu_start, push_submenu_end)
8725 (push_left_right_boundary, push_menu_pane): Likewise.
8726 * msdos.c (dos_rawgetc): Likewise.
8727
8728 2012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
8729
8730 * xfns.c (xic_create_fontsetname): Remove redundant calls
8731 to memset.
8732
8733 2012-06-25 Paul Eggert <eggert@cs.ucla.edu>
8734
8735 * gtkutil.c (get_utf8_string): Remove redundant assignment.
8736 sprintf already null-terminates its output.
8737
8738 * xfns.c (x_window): Remove redundant cast.
8739
8740 2012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
8741
8742 * xmenu.c (xmenu_show, xdialog_show): Explicit cast from
8743 `const char *' to `char *' to avoid compiler warning.
8744
8745 2012-06-24 Paul Eggert <eggert@cs.ucla.edu>
8746
8747 * xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string
8748 instead of truncating it to 63 (admittedly a generous limit).
8749
8750 * process.c: Fix spelling and caps in comments.
8751
8752 2012-06-24 Dan Nicolaescu <dann@ics.uci.edu>
8753
8754 * emacs.c (setpgrp): Remove definition, unused.
8755 * sysdep.c (setpgrp): Remove definition, not used in this file.
8756
8757 2012-06-24 Juanma Barranquero <lekktu@gmail.com>
8758
8759 * makefile.w32-in: Update dependencies.
8760
8761 2012-06-24 Eli Zaretskii <eliz@gnu.org>
8762
8763 * makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h.
8764 (SYSTIME_H): Add nt/inc/sys/time.h.
8765
8766 * systime.h [WINDOWSNT]: Include sys/time.h.
8767
8768 * s/ms-w32.h (struct timespec): Definition moved from
8769 nt/inc/sys/time.h. Suggested by Paul Eggert <eggert@cs.ucla.edu>.
8770
8771 2012-06-24 Paul Eggert <eggert@cs.ucla.edu>
8772
8773 Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
8774 * buffer.h (buffer_slot_type_mismatch):
8775 * data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
8776 * eval.c (unwind_to_catch):
8777 * image.c (my_png_error, my_error_exit):
8778 * keyboard.c (quit_throw_to_read_char, user_error)
8779 (Fexit_recursive_edit, Fabort_recursive_edit):
8780 * lisp.h (die, args_out_of_range, args_out_of_range_3)
8781 (wrong_type_argument, buffer_overflow, __executable_start)
8782 (memory_full, buffer_memory_full, string_overflow, Fthrow)
8783 (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error)
8784 (error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs)
8785 (fatal):
8786 (child_setup) [!DOS_NT]:
8787 * lread.c (end_of_file_error, invalid_syntax):
8788 * process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
8789 * puresize.h (pure_write_error):
8790 * search.c (matcher_overflow):
8791 * sound.c (sound_perror, alsa_sound_perror):
8792 * sysdep.c, syssignal.h (croak):
8793 * term.c (maybe_fatal, vfatal):
8794 * textprop.c (text_read_only):
8795 * undo.c (user_error):
8796 * unexmacosx.c (unexec_error):
8797 * xterm.c (x_ins_del_lines, x_delete_glyphs):
8798 Use _Noreturn rather than NO_RETURN.
8799 No need for separate decl merely because of _Noreturn.
8800 * sound.c (sound_warning, parse_sound):
8801 Remove unnecessary forward decls.
8802
8803 2012-06-24 Paul Eggert <eggert@cs.ucla.edu>
8804
8805 Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000).
8806 * lisp.h (WAIT_READING_MAX): New macro.
8807 * dispnew.c (Fsleep_for, sit_for):
8808 * keyboard.c (kbd_buffer_get_event):
8809 * process.c (Faccept_process_output):
8810 Use it to avoid bogus compiler warnings with obsolescent GCC versions.
8811 This improves on the previous patch, which introduced a bug
8812 when time_t is unsigned and as wide as intmax_t.
8813 See <http://bugs.gnu.org/9000#51>.
8814
8815 2012-06-23 Eli Zaretskii <eliz@gnu.org>
8816
8817 * dispnew.c (sit_for, Fsleep_for):
8818 * keyboard.c (kbd_buffer_get_event):
8819 * process.c (Faccept_process_output): Avoid compiler warnings when
8820 comparing a 32-bit time_t with a 64-bit INTMAX_MAX.
8821
8822 2012-06-23 Juanma Barranquero <lekktu@gmail.com>
8823
8824 * makefile.w32-in: Update dependencies.
8825
8826 * w32.c (ltime): Add return type and declare static.
8827 (w32_get_internal_run_time): Remove usused variable `time_100ns'.
8828
8829 2012-06-23 Paul Eggert <eggert@cs.ucla.edu>
8830
8831 * sysdep.c [__FreeBSD__]: Fix more recently-introduced typos.
8832 Privately reported by Herbert J. Skuhra.
8833 (make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST.
8834 All uses changed.
8835 (system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time,
8836 not make_lisp_timeval, when the argument is of type EMACS_TIME.
8837
8838 2012-06-23 Eli Zaretskii <eliz@gnu.org>
8839
8840 * w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in
8841 last argument of make_unibyte_string.
8842
8843 * keyboard.c (kbd_buffer_get_event): Include the codepage and the
8844 language ID in the event parameters.
8845
8846 * w32term.c (w32_read_socket): Put the new keyboard codepage into
8847 event.code, not the obscure "character set ID".
8848
8849 2012-06-23 Chong Yidong <cyd@gnu.org>
8850
8851 * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select.
8852
8853 2012-06-23 Eli Zaretskii <eliz@gnu.org>
8854
8855 Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu.
8856 * w32.c (fdutimens): New function.
8857
8858 * w32proc.c (sys_select): Adapt to change in the EMACS_TIME type.
8859
8860 * s/ms-w32.h (pselect): Redirect to sys_select.
8861
8862 * sysselect.h [WINDOWSNT]: Don't include sys/select.h.
8863
8864 * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko
8865 in the logic of incrementing and decrementing the value of
8866 use_relocatable_buffers.
8867
8868 2012-06-23 Paul Eggert <eggert@cs.ucla.edu>
8869
8870 * sysdep.c [__FreeBSD__]: Fix recently-introduced typos.
8871 Privately reported by Herbert J. Skuhra.
8872 [__FreeBSD__]: Remove "*/" typo after "#include".
8873 (timeval_to_EMACS_TIME) [__FreeBSD__]: New static function.
8874 (TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro.
8875 (TIMEVAL, system_process_attributes) [__FreeBSD__]:
8876 Don't assume EMACS_TIME and struct timeval are the same type.
8877
8878 2012-06-22 Paul Eggert <eggert@cs.ucla.edu>
8879
8880 Support higher-resolution time stamps (Bug#9000).
8881 The time stamps are only nanosecond-resolution at the C level,
8882 since that's the best that any real-world system supports now.
8883 But they are picosecond-resolution at the Lisp level, as that's
8884 easy, and leaves room for future OS improvements.
8885
8886 * Makefile.in (LIB_CLOCK_GETTIME): New macro.
8887 (LIBES): Use it.
8888
8889 * alloc.c (Fgarbage_collect): Port to higher-res time stamps.
8890 Don't get current time unless it's needed.
8891
8892 * atimer.c: Include <sys/time.h> unconditionally, since gnulib
8893 now provides it if it's absent.
8894 (start_atimer): Port to higher-res time stamps.
8895 Check for time stamp overflow. Don't get current time more
8896 often than is needed.
8897
8898 * buffer.h (struct buffer): Buffer modtime now has high resolution.
8899 Include systime.h, not time.h.
8900 (NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros.
8901
8902 * dired.c: Include stat-time.h.
8903 (Ffile-attributes): File times now have higher resolution.
8904
8905 * dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h.
8906 (struct image): Timestamp now has higher resolution.
8907
8908 * dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always
8909 has at least microseconds now. All uses removed.
8910 (update_frame, update_single_window, update_window, update_frame_1)
8911 (Fsleep_for, sit_for): Port to higher-resolution time stamps.
8912 (duration_to_sec_usec): Remove; no longer needed.
8913
8914 * editfns.c (time_overflow): Now extern.
8915 (Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument)
8916 (float-time, Fformat_time_string, Fcurrent_time_string)
8917 (Fcurrent_time_zone): Accept and generate higher-resolution
8918 time stamps.
8919 (make_time_tail, make_lisp_time, dissassemble_lisp_time)
8920 (decode_time_components, lisp_seconds_argument): New functions.
8921 (make_time): Now static.
8922 (lisp_time_argument): Now returns EMACS_TIME. New arg ppsec.
8923 Report an error if the time is invalid, rather than having the caller
8924 do that.
8925
8926 * fileio.c: Include <stat-time.h>
8927 (Fcopy_file): Copy higher-resolution time stamps.
8928 Prefer to set the time stamp via a file descriptor if that works.
8929 (Fset_file_times, Finsert_file_contents, Fwrite_region)
8930 (Fverify_visited_file_modtime, Fclear_visited_file_modtime)
8931 (Fvisited_file_modtime, Fset_visited_file_modtime):
8932 Support higher-resolution time stamps.
8933
8934 * fns.c (Frandom): Use nanoseconds, not microseconds, for seed.
8935
8936 * gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps.
8937
8938 * image.c (prepare_image_for_display, clear_image_cache)
8939 (lookup_image): Port to higer-resolution time stamps.
8940
8941 * keyboard.c (start_polling, bind_polling_period):
8942 Check for time stamp overflow.
8943 (read_char, kbd_buffer_get_event, timer_start_idle)
8944 (timer_stop_idle, timer_resume_idle, timer_check_2, timer_check)
8945 (Fcurrent_idle_time, init_keyboard, set_waiting_for_input):
8946 Port to higher-resolution time stamps. Do not assume time_t is signed.
8947 (decode_timer): New function. Timers are now vectors of length 9,
8948 not 8, to accommodate the picosecond component.
8949 (timer_check_2): Use it.
8950
8951 * nsterm.m (select_timeout, timeval_subtract): Remove.
8952 (ns_timeout): Use Emacs's facilities for time stamp arithmetic,
8953 as they're a bit more accurate and handle overflow better.
8954 (ns_select): Change prototype to be compatible with pselect.
8955 (ns_select, ns_term_shutdown): Port to ns-resolution time stamps.
8956 * nsterm.h (ns_select): Adjust prototype.
8957
8958 * msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes
8959 us-resolution time stamps.
8960 (sys_select): Use the new EMACS_TIME_SIGN macro instead.
8961
8962 * lread.c (read_filtered_event): Port to ns-resolution time stamps.
8963
8964 * lisp.h (time_overflow): New decl.
8965 (wait_reading_process_output): First arg is now intmax_t, not int,
8966 to accommodate larger waits.
8967
8968 * process.h (struct Lisp_Process.read_output_delay):
8969 Now counts nanoseconds, not microseconds.
8970 * process.c (ADAPTIVE_READ_BUFFERING): Don't worry about
8971 EMACS_HAS_USECS.
8972 (READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output)
8973 (wait_reading_process_output):
8974 Port to ns-resolution time stamps.
8975 (Faccept_process_output, wait_reading_process_output):
8976 Check for time stamp overflow. Do not assume time_t is signed.
8977 (select_wrapper): Remove; we now use pselect.
8978 (Fprocess_attributes): Now generates ns-resolution time stamps.
8979
8980 * sysdep.c: Include utimens.h. Don't include utime.h
8981 or worry about struct utimbuf; gnulib does that for us now.
8982 (gettimeofday): Remove; gnulib provides a substitute.
8983 (make_timeval): New function.
8984 (set_file_times): Now sets ns-resolution time stamps.
8985 New arg FD; all uses changed.
8986 (time_from_jiffies, ltime_from_jiffies, get_up_time)
8987 (system_process_attributes):
8988 Now returns ns-resolution time stamp. All uses changed.
8989 Check for time stamp overflow.
8990
8991 * sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib
8992 provides a substitute now.
8993
8994 * systime.h: Include timespec.h rather than sys/time.h and time.h,
8995 since it guarantees struct timespec.
8996 (EMACS_TIME): Now struct timespec, so that we can support
8997 ns-resolution time stamps.
8998 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros.
8999 (EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now.
9000 (EMACS_USECS): Remove.
9001 (EMACS_SET_USECS): The underlying time stamp now has ns resolution,
9002 so multiply the arg by 1000 before storing it.
9003 (EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS):
9004 New macros.
9005 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME):
9006 Port to ns-resolution time stamps.
9007 (EMACS_TIME_NEG_P): Remove; replaced by....
9008 (EMACS_TIME_SIGN): New macro.
9009 (EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P)
9010 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros.
9011 (set_file_times, make_time, lisp_time_argument): Adjust signature.
9012 (make_timeval, make_lisp_time, decode_time_components): New decls.
9013 (EMACS_TIME_CMP): Remove; no longer used. Plus, it was buggy, in
9014 that it mishandled time_t overflow. You can't compare by subtracting!
9015 (EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE)
9016 (EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp.
9017
9018 * term.c: Include <sys/time.h>.
9019 (timeval_to_Time): New function, for proper overflow wraparound.
9020 (term_mouse_position, term_mouse_click): Use it.
9021
9022 * undo.c (record_first_change): Support higher-resolution time stamps
9023 in the undo buffer.
9024 (Fprimitive_undo): Use them when restoring time stamps.
9025
9026 * w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull)
9027 (w32_get_internal_run_time):
9028 Port to higher-resolution Emacs time stamps.
9029 (ltime): Now accepts single 64-bit integer, as that's more convenient
9030 for callers.
9031
9032 * xdisp.c (start_hourglass): Port to ns-resolution time stamps.
9033
9034 * xgselect.c, xgselect.h (xg_select): Add sigmask argument,
9035 for compatibility with pselect. Support ns-resolution time stamps.
9036
9037 * xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps.
9038
9039 * xselect.c (wait_for_property_change, x_get_foreign_selection):
9040 Check for time stamp overflow, and support ns-resolution time stamps.
9041
9042 * xterm.c: Don't include sys/time.h; gnulib does that for us now.
9043 Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set.
9044 (timeval_subtract): Remove; no longer needed.
9045 (XTflash, XTring_bell, x_wait_for_event):
9046 Port to ns-resolution time stamps. Don't assume time_t is signed.
9047
9048 2012-06-22 Chong Yidong <cyd@gnu.org>
9049
9050 * xdisp.c (x_consider_frame_title): Revert last change.
9051
9052 2012-06-22 Eli Zaretskii <eliz@gnu.org>
9053
9054 * alloc.c (NSTATICS): Enlarge to 0x650. Otherwise, Emacs compiled
9055 with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER
9056 aborts in staticpro during startup. (Without -DBYTE_CODE_METER,
9057 staticidx goes up to 1597 out of 1600 = 0x640.)
9058
9059 2012-06-20 Paul Eggert <eggert@cs.ucla.edu>
9060
9061 * fileio.c (Fdefault_file_modes): Block input while fiddling with umask.
9062 Otherwise, the umask might be mistakenly 0 while handling input signals.
9063
9064 2012-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
9065
9066 * minibuf.c (Fread_string): Bind minibuffer-completion-table.
9067
9068 2012-06-19 Dmitry Antipov <dmantipov@yandex.ru>
9069
9070 * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c:
9071 * font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c:
9072 * print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct
9073 access to `contents' member of Lisp_Vector objects with AREF and ASET
9074 where appropriate.
9075
9076 2012-06-19 Chong Yidong <cyd@gnu.org>
9077
9078 * frame.c (delete_frame): When selecting a frame on a different
9079 text terminal, do not alter the terminal's top-frame.
9080
9081 * xdisp.c (format_mode_line_unwind_data): Record the target
9082 frame's selected window and its terminal's top-frame.
9083 (unwind_format_mode_line): Restore them.
9084 (x_consider_frame_title, display_mode_line, Fformat_mode_line):
9085 Callers changed.
9086 (x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM,
9087 since tty frames can be explicitly named.
9088 (prepare_menu_bars): Likewise.
9089
9090 * term.c (Ftty_top_frame): New function.
9091
9092 2012-06-18 Paul Eggert <eggert@cs.ucla.edu>
9093
9094 Port byte-code-meter to modern targets.
9095 * bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume
9096 !CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG. Problem with
9097 CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in
9098 <http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00282.html>.
9099 (METER_1, METER_2): Simplify.
9100
9101 2012-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
9102
9103 * data.c (Fdefalias): Return `symbol' (bug#11686).
9104
9105 2012-06-18 Martin Rudalics <rudalics@gmx.at>
9106
9107 * buffer.c (Fkill_buffer): Don't throw an error when the buffer
9108 gets killed during executing of this function (Bug#11665).
9109 Try to always return Qt when the buffer has been actually killed.
9110 (Vkill_buffer_query_functions): In doc-string say that functions
9111 run by this hook should not change the current buffer.
9112
9113 2012-06-18 Paul Eggert <eggert@cs.ucla.edu>
9114
9115 Fix recently-introduced process.c problems found by static checking.
9116 * process.c (write_queue_push, write_queue_pop, send_process):
9117 Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets.
9118 (write_queue_pop): Fix pointer signedness problem.
9119 (send_process): Remove unused local.
9120
9121 2012-06-17 Chong Yidong <cyd@gnu.org>
9122
9123 * xdisp.c (redisplay_internal): No need to redisplay terminal
9124 frames that are not on top.
9125
9126 2012-06-17 Troels Nielsen <bn.troels@gmail.com>
9127
9128 * process.c (make_process): Initialize write_queue.
9129 (write_queue_push, write_queue_pop): New functions.
9130 (send_process): Use them to maintain correct ordering of process
9131 writes (Bug#10815).
9132
9133 2012-06-17 Paul Eggert <eggert@cs.ucla.edu>
9134
9135 * lisp.h (eassert): Assume C89 or later.
9136 This removes the need for CHECK.
9137 (CHECK): Remove. Its comments about always evaluating its
9138 argument were confusing, as 'eassert' typically does not evaluate
9139 its argument.
9140
9141 * coding.c (produce_chars): Use ptrdiff_t, not int.
9142
9143 * xterm.c (x_draw_underwave): Check for integer overflow.
9144 This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64.
9145
9146 2012-06-17 Jan Djärv <jan.h.d@swipnet.se>
9147
9148 * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't
9149 referenced (Bug#11583).
9150
9151 2012-06-16 Aurelien Aptel <aurelien.aptel@gmail.com>
9152
9153 Implement wave-style variant of underlining.
9154 * dispextern.h (face_underline_type): New enum.
9155 (face): Add field for underline type.
9156 * nsterm.m (ns_draw_underwave): New function.
9157 (ns_draw_text_decoration): Use it.
9158 * w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave):
9159 New functions.
9160 (x_draw_glyph_string): Use them.
9161 * xfaces.c (Qline, Qwave): New Lisp objects.
9162 (check_lface_attrs, merge_face_ref)
9163 (Finternal_set_lisp_face_attribute, realize_x_face):
9164 Handle wave-style underline face attributes.
9165 * xterm.c (x_draw_underwave): New function.
9166 (x_draw_glyph_string): Use it.
9167
9168 2012-06-16 Juanma Barranquero <lekktu@gmail.com>
9169
9170 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O))
9171 ($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O))
9172 ($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O))
9173 ($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O))
9174 ($(BLD)/w32select.$(O)): Update dependencies.
9175
9176 2012-06-16 Andreas Schwab <schwab@linux-m68k.org>
9177
9178 * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.
9179 (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
9180 * character.c (_fetch_multibyte_char_p): Remove.
9181 * alloc.c: Include "character.h" before "buffer.h".
9182 * bidi.c: Likewise.
9183 * buffer.c: Likewise.
9184 * bytecode.c: Likewise.
9185 * callint.c: Likewise.
9186 * callproc.c: Likewise.
9187 * casefiddle.c: Likewise.
9188 * casetab.c: Likewise.
9189 * category.c: Likewise.
9190 * cmds.c: Likewise.
9191 * coding.c: Likewise.
9192 * composite.c: Likewise.
9193 * dired.c: Likewise.
9194 * dispnew.c: Likewise.
9195 * doc.c: Likewise.
9196 * dosfns.c: Likewise.
9197 * editfns.c: Likewise.
9198 * emacs.c: Likewise.
9199 * fileio.c: Likewise.
9200 * filelock.c: Likewise.
9201 * font.c: Likewise.
9202 * fontset.c: Likewise.
9203 * fringe.c: Likewise.
9204 * indent.c: Likewise.
9205 * insdel.c: Likewise.
9206 * intervals.c: Likewise.
9207 * keyboard.c: Likewise.
9208 * keymap.c: Likewise.
9209 * lread.c: Likewise.
9210 * macros.c: Likewise.
9211 * marker.c: Likewise.
9212 * minibuf.c: Likewise.
9213 * nsfns.m: Likewise.
9214 * nsmenu.m: Likewise.
9215 * print.c: Likewise.
9216 * process.c: Likewise.
9217 * regex.c: Likewise.
9218 * region-cache.c: Likewise.
9219 * search.c: Likewise.
9220 * syntax.c: Likewise.
9221 * term.c: Likewise.
9222 * textprop.c: Likewise.
9223 * undo.c: Likewise.
9224 * unexsol.c: Likewise.
9225 * w16select.c: Likewise.
9226 * w32fns.c: Likewise.
9227 * w32menu.c: Likewise.
9228 * window.c: Likewise.
9229 * xdisp.c: Likewise.
9230 * xfns.c: Likewise.
9231 * xmenu.c: Likewise.
9232 * xml.c: Likewise.
9233 * xselect.c: Likewise.
9234
9235 2012-06-16 Eli Zaretskii <eliz@gnu.org>
9236
9237 * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end.
9238 If all the glyphs of the glyph row came from strings, and we have no
9239 cursor positioning clues, put the cursor on the first glyph of the
9240 row.
9241 (handle_face_prop): Use chunk-relative overlay string index when
9242 indexing into it->string_overlays array. (Bug#11653)
9243 (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not
9244 the rightmost. (Bug#11720)
9245
9246 2012-06-16 Andreas Schwab <schwab@linux-m68k.org>
9247
9248 * category.h (CHAR_HAS_CATEGORY): Define as inline.
9249 (CATEGORY_MEMBER): Enforce 1/0 value.
9250 * category.c (_temp_category_set): Remove.
9251
9252 2012-06-16 Eli Zaretskii <eliz@gnu.org>
9253
9254 * window.c (Fdelete_other_windows_internal)
9255 (Fdelete_window_internal): Don't access frame's mouse highlight
9256 info of the initial frame. (Bug#11677)
9257
9258 2012-06-14 Paul Eggert <eggert@cs.ucla.edu>
9259
9260 * .gdbinit (xgetint): Fix recently-introduced paren typo.
9261 Assume USE_2_TAGS_FOR_INTS.
9262 (xreload): Adjust $tagmask width to match recent lisp.h change.
9263
9264 Simplify lisp.h in minor ways that should not affect code.
9265 * lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined.
9266 (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P)
9267 (LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number):
9268 Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined.
9269 (INTTYPEBITS): New macro, for clarity.
9270 (INTMASK, MOST_POSITIVE_FIXNUM): Use it.
9271 (LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P):
9272 Simplify now that USE_LSB_TAG is always defined.
9273 (TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast.
9274 (make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler.
9275
9276 2012-06-13 Juanma Barranquero <lekktu@gmail.com>
9277
9278 * makefile.w32-in ($(BLD)/data.$(O)): Update dependencies.
9279
9280 2012-06-13 Glenn Morris <rgm@gnu.org>
9281
9282 * s/bsd-common.h (BSD4_3):
9283 * s/usg5-4-common.h (USG5_4): No longer define; unused.
9284
9285 2012-06-13 Andreas Schwab <schwab@linux-m68k.org>
9286
9287 * lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
9288 instead of union.
9289 (XLI, XIL): Define.
9290 (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG):
9291 Use them.
9292 * emacs.c (gdb_use_struct): Rename from gdb_use_union.
9293 * .gdbinit: Check gdb_use_struct instead of gdb_use_union.
9294 * alloc.c (widen_to_Lisp_Object): Remove.
9295 (mark_memory): Use XIL instead of widen_to_Lisp_Object.
9296 * frame.c (delete_frame): Remove outdated comment.
9297 * w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
9298 USE_LISP_UNION_TYPE.
9299 (Fw32_unregister_hot_key): Likewise.
9300 (Fw32_toggle_lock_key): Likewise.
9301 * w32menu.c (add_menu_item): Likewise.
9302 (w32_menu_display_help): Use XIL instead of checking
9303 USE_LISP_UNION_TYPE.
9304 * w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
9305 (init_heap): Likewise.
9306 * w32term.c (w32_read_socket): Update comment.
9307
9308 2012-06-13 Glenn Morris <rgm@gnu.org>
9309
9310 * s/usg5-4-common.h, src/s/unixware.h:
9311 Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04).
9312
9313 * s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04).
9314
9315 2012-06-13 Paul Eggert <eggert@cs.ucla.edu>
9316
9317 USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604)
9318 * alloc.c (make_number) [!defined make_number]:
9319 Remove, as lisp.h always defines this now.
9320 (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
9321 (roundup_size): Verify that it is a power of 2.
9322 * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
9323 * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
9324 * lisp.h (USE_LSB_TAG): Allow the builder to compile with
9325 -DUSE_LSB_TAG=0, to override the automatically-selected default.
9326 USE_LSB_TAG now is always defined to be either 0 or 1.
9327 All uses changed.
9328 (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
9329 code works fine either way, and efficiency is not a concern here,
9330 as the union type is for debugging, not for production.
9331 (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
9332 Use an inline function on all platforms when using the union type,
9333 since this is simpler and 'static inline' can be used portably
9334 within Emacs now.
9335 (LISP_INITIALLY_ZERO): New macro.
9336 (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
9337 (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
9338
9339 2012-06-12 Glenn Morris <rgm@gnu.org>
9340
9341 * s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files.
9342
9343 * s/gnu-linux.h (HAVE_PROCFS): Move to configure.
9344
9345 * s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h:
9346 Move BROKEN_SIGIO to configure.
9347
9348 * s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h:
9349 Move NO_TERMIO to configure.
9350
9351 2012-06-12 Chong Yidong <cyd@gnu.org>
9352
9353 * image.c (imagemagick_load_image): Use MagickFlattenImage if
9354 MagickMergeImageLayers is undefined. Use pixel pusher loop if
9355 MagickExportImagePixels is undefined.
9356
9357 2012-06-12 Paul Eggert <eggert@cs.ucla.edu>
9358
9359 * image.c (imagemagick_load_image): Remove unused label.
9360
9361 2012-06-11 Glenn Morris <rgm@gnu.org>
9362
9363 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
9364 * s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h:
9365 * s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h:
9366 * s/usg5-4-common.h: Move SYSTEM_TYPE to configure.
9367
9368 2012-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
9369
9370 * alloc.c (make_byte_code): New function.
9371 (Fmake_byte_code): Use it. Don't purify here.
9372 * lread.c (read1): Use it as well to avoid extra allocation.
9373
9374 2012-06-11 Chong Yidong <cyd@gnu.org>
9375
9376 * image.c (imagemagick_load_image): Implement transparency.
9377
9378 2012-06-10 Andreas Schwab <schwab@linux-m68k.org>
9379
9380 * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly
9381 account for preceding backslashes. (Bug#11663)
9382
9383 2012-06-09 Chong Yidong <cyd@gnu.org>
9384
9385 * term.c: Support italics in capable terminals (Bug#9652).
9386 (no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
9387 (turn_on_face): Output using TS_enter_italic_mode if available.
9388 Don't handle unused blinking and alt-charset cases.
9389 (turn_off_face): Handle italic case; discard unused tty_blinking_p
9390 and tty_alt_charset_p cases.
9391 (tty_capable_p, init_tty): Support italics.
9392
9393 * termchar.h (struct tty_display_info): Add field for italics.
9394 Remove unused blink field.
9395
9396 * xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
9397 Handle slant.
9398
9399 * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
9400 (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
9401 tty_alt_charset_p. Add tty_italic_p.
9402
9403 2012-06-09 Michael Albinus <michael.albinus@gmx.de>
9404
9405 * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and
9406 dbus_type_is_basic if available.
9407 (xd_extract_signed, xd_extract_unsigned): Rename from
9408 extract_signed and extract_unsigned, respectively. Adapt callers.
9409
9410 2012-06-09 Chong Yidong <cyd@gnu.org>
9411
9412 * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066).
9413
9414 * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive
9415 case (Bug#9752).
9416
9417 2012-06-08 Paul Eggert <eggert@cs.ucla.edu>
9418
9419 * xdisp.c (vmessage): Treat frame message as multibyte.
9420 Without this change, (let ((§ 1)) (make-variable-buffer-local '§))
9421 would generate the diagnostic "Making \302\247 buffer-local while
9422 let-bound!".
9423
9424 2012-06-08 Eli Zaretskii <eliz@gnu.org>
9425
9426 * dispnew.c (showing_window_margins_p): Undo last change, which
9427 was done due to an inadvertent commit.
9428 (adjust_frame_glyphs_for_frame_redisplay): Do call
9429 showing_window_margins_p.
9430
9431 2012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
9432
9433 * eval.c (Fmake_var_non_special): New primitive.
9434 (syms_of_eval): Defsubr it.
9435 * lread.c (syms_of_lread): Mark `values' as lexically scoped.
9436
9437 2012-06-08 Juanma Barranquero <lekktu@gmail.com>
9438
9439 * dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused
9440 function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org).
9441
9442 2012-06-08 Eli Zaretskii <eliz@gnu.org>
9443
9444 * alloc.c (allocate_vectorlike): Fix last change.
9445
9446 2012-06-08 Dmitry Antipov <dmantipov@yandex.ru>
9447
9448 Block-based vector allocation of small vectors.
9449 * lisp.h (struct vectorlike_header): New field `nbytes',
9450 adjust comment accordingly.
9451 * alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
9452 to denote vector blocks. Adjust users (live_vector_p,
9453 mark_maybe_pointer, valid_lisp_object_p) accordingly.
9454 (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
9455 (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES),
9456 (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX),
9457 (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST),
9458 (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
9459 (roundup_size): New constant.
9460 (struct vector_block): New data type.
9461 (vector_blocks, vector_free_lists, zero_vector): New variables.
9462 (all_vectors): Rename to `large_vectors'.
9463 (allocate_vector_from_block, init_vectors, allocate_vector_from_block)
9464 (sweep_vectors): New functions.
9465 (allocate_vectorlike): Return `zero_vector' as the only vector of
9466 0 items. Allocate new vector from block if vector size is less than
9467 or equal to VBLOCK_BYTES_MAX.
9468 (Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
9469 (init_alloc_once): Add call to init_vectors.
9470
9471 2012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
9472
9473 * eval.c (Fmacroexpand): Stop if the macro returns the same form.
9474
9475 2012-06-07 Paul Eggert <eggert@cs.ucla.edu>
9476
9477 * doprnt.c (doprnt): Truncate multibyte char correctly.
9478 Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP)
9479 would mishandle a string argument "Xc" if X was a multibyte
9480 character of length 2: it would truncate after X's first byte
9481 rather than including all of X.
9482
9483 2012-06-06 Chong Yidong <cyd@gnu.org>
9484
9485 * buffer.c (word_wrap): Doc fix.
9486
9487 2012-06-04 Paul Eggert <eggert@cs.ucla.edu>
9488
9489 * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall.
9490
9491 2012-06-03 Glenn Morris <rgm@gnu.org>
9492
9493 * xdisp.c (tool-bar-style): Doc fix.
9494
9495 2012-06-03 Ulrich Müller <ulm@gentoo.org>
9496
9497 * Makefile.in (PAXCTL): Define.
9498 (temacs$(EXEEXT)): Disable memory randomization for the temacs
9499 binary via PaX flags if the paxctl utility is available.
9500 (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
9501 Restore PaX flags to their default. (Bug#11398)
9502
9503 2012-06-03 Chong Yidong <cyd@gnu.org>
9504
9505 * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
9506 buffer (Bug#11226).
9507
9508 2012-06-03 Chong Yidong <cyd@gnu.org>
9509
9510 * xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
9511 (note_mode_line_or_margin_highlight): If there is no help echo,
9512 use mode-line-default-help-echo. Handle the case where the mouse
9513 position is past the end of the mode line string.
9514
9515 * buffer.c (buffer_local_value_1): New function, split from
9516 Fbuffer_local_value; can return Qunbound.
9517 (Fbuffer_local_value): Use it.
9518 (Vmode_line_format): Docstring tweaks.
9519
9520 2012-06-02 Paul Eggert <eggert@cs.ucla.edu>
9521
9522 * sysdep.c (system_process_attributes): Improve comment.
9523
9524 2012-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
9525
9526 * keyboard.c: Export real-this-command to Elisp.
9527 (syms_of_keyboard): Rename real_this_command to Vreal_this_command
9528 and DEFVAR it. Update all users.
9529
9530 2012-06-02 Paul Eggert <eggert@cs.ucla.edu>
9531
9532 * minibuf.c (Fassoc_string): Remove duplicate declaration.
9533
9534 * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
9535 Convert pctcpu and pctmem to Lisp float properly.
9536 Let the compiler fold better, as 100.0/0x8000 is exact.
9537
9538 2012-06-02 Andreas Schwab <schwab@linux-m68k.org>
9539
9540 * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
9541 cons_block.
9542
9543 2012-06-01 Paul Eggert <eggert@cs.ucla.edu>
9544
9545 * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change.
9546
9547 2012-06-01 Dmitry Antipov <dmantipov@yandex.ru>
9548
9549 For a 'struct window', replace some Lisp_Object fields to
9550 bitfields where appropriate, remove unused fields.
9551 * window.h (struct window): Remove unused 'last_mark_x' and
9552 'last_mark_y' fields. Rename 'mini_p' field to 'mini',
9553 change its type from Lisp_Object to bitfield.
9554 Change type of 'force_start', 'optional_new_start',
9555 'last_had_star', 'update_mode_line' and 'start_at_line_beg'
9556 fields from Lisp_Object to bitfield. Adjust users accordingly.
9557
9558 2012-05-31 Paul Eggert <eggert@cs.ucla.edu>
9559
9560 Pacify gcc -Wdouble-precision when using Xaw.
9561 * xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb)
9562 [HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]:
9563 Use 'float' consistently, rather than 'float' in most places
9564 and 'double' in a couple of places.
9565
9566 2012-05-31 Eli Zaretskii <eliz@gnu.org>
9567
9568 * xdisp.c (handle_stop): Detect whether we have overlay strings
9569 loaded by testing it->current.overlay_string_index to be
9570 non-negative, instead of checking whether n_overlay_strings is
9571 positive. (Bug#11587)
9572
9573 2012-05-31 Chong Yidong <cyd@gnu.org>
9574
9575 * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169).
9576
9577 * doc.c (Fsubstitute_command_keys): Doc fix.
9578
9579 2012-05-31 Eli Zaretskii <eliz@gnu.org>
9580
9581 * search.c (search_buffer): Remove calls to
9582 r_alloc_inhibit_buffer_relocation, as it is now called by
9583 maybe_unify_char, which was the cause of relocation of buffer text
9584 in bug#11519.
9585
9586 2012-05-31 Eli Zaretskii <eliz@gnu.org>
9587
9588 * charset.c (maybe_unify_char): Inhibit relocation of buffer text
9589 for the duration of call to load_charset, to avoid problems with
9590 callers of maybe_unify_char that access buffer text through C
9591 pointers.
9592
9593 * ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and
9594 decrement the inhibition flag, instead of just setting or
9595 resetting it.
9596
9597 2012-05-31 Paul Eggert <eggert@cs.ucla.edu>
9598
9599 Remove obsolete '#define static' cruft.
9600 * s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef.
9601 This #undef was "temporary" in 2000; it is no longer needed
9602 now that '#define static' has gone away.
9603 * xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height)
9604 (gray_bitmap_bits): Remove; no longer needed.
9605 All uses replaced with definiens.
9606 * xterm.c: Include "bitmaps/gray.xbm".
9607
9608 2012-05-30 Paul Eggert <eggert@cs.ucla.edu>
9609
9610 Clean up __executable_start, monstartup when --enable-profiling.
9611 The following changes affect the code only when profiling.
9612 * dispnew.c (__executable_start): Rename from safe_bcopy.
9613 Define only on platforms that need it.
9614 * emacs.c: Include <sys/gmon.h> when profiling.
9615 (_mcleanup): Remove decl, since <sys/gmon.h> does it now.
9616 (__executable_start): Remove decl, since lisp.h does it now.
9617 (safe_bcopy): Remove decl; no longer has that name.
9618 (main): Coalesce #if into single bit of code, for simplicity.
9619 Cast pointers to uintptr_t, since standard libraries want integers
9620 and not pointers.
9621 * lisp.h (__executable_start): New decl.
9622
9623 2012-05-31 Glenn Morris <rgm@gnu.org>
9624
9625 * image.c (Fimagemagick_types): Doc fix.
9626
9627 2012-05-30 Jim Meyering <meyering@redhat.com>
9628
9629 * callproc.c (Fcall_process_region): Include directory component
9630 in mkstemp error message (Bug#11586).
9631
9632 2012-05-30 Paul Eggert <eggert@cs.ucla.edu>
9633
9634 * alloc.c, lisp.h (make_pure_vector): Now static.
9635
9636 2012-05-30 Stefan Monnier <monnier@iro.umontreal.ca>
9637
9638 * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
9639 Move to byte-run.el.
9640 (Fautoload): Do the hash-doc more carefully.
9641 * data.c (Fdefalias): Purify definition, except for keymaps.
9642 (Qdefun): Move from eval.c.
9643 * lisp.h (Qdefun): Remove.
9644 * lread.c (read1): Tiny simplification.
9645
9646 2012-05-29 Troels Nielsen <bn.troels@gmail.com>
9647
9648 Do not create empty overlays with the evaporate property (Bug#9642).
9649 * buffer.c (Fmove_overlay): Reinstate the earlier fix for
9650 Bug#9642, but explicitly check that the buffer the overlay would
9651 be moved to is live and rearrange lines to make sure that errors
9652 will not put the overlay in an inconsistent state.
9653 (Fdelete_overlay): Cosmetics.
9654
9655 2012-05-28 Eli Zaretskii <eliz@gnu.org>
9656
9657 * w32term.c (my_bring_window_to_top): New function.
9658 (x_raise_frame): Use handle returned by DeferWindowPos, which
9659 could be different from the original one.
9660 Call my_bring_window_to_top instead of my_set_foreground_window.
9661 (Bug#11513)
9662
9663 * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
9664 by calling BringWindowToTop.
9665
9666 * w32term.h (WM_EMACS_BRINGTOTOP): New message.
9667 (WM_EMACS_END): Increase by one.
9668
9669 2012-05-28 Paul Eggert <eggert@cs.ucla.edu>
9670
9671 * bidi.c (bidi_mirror_char): Put eassert before conversion to int.
9672 This avoids undefined behavior that might cause the eassert
9673 to not catch an out-of-range value.
9674
9675 2012-05-28 Juanma Barranquero <lekktu@gmail.com>
9676
9677 * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)):
9678 Update dependencies.
9679
9680 2012-05-27 Eli Zaretskii <eliz@gnu.org>
9681
9682 * bidi.c (bidi_mirror_char): Fix last change.
9683
9684 2012-05-27 Andreas Schwab <schwab@linux-m68k.org>
9685
9686 * unexmacosx.c (copy_data_segment): Truncate after 16 characters
9687 when referring to sectname field in printf format.
9688
9689 2012-05-27 Paul Eggert <eggert@cs.ucla.edu>
9690
9691 * lisp.h [REL_ALLOC]: Omit duplicate prototypes.
9692 Only r_alloc_inhibit_buffer_relocation needed to be added;
9693 the others were already declared.
9694
9695 * bidi.c (bidi_mirror_char): Don't possibly truncate the integer
9696 before checking whether it's out of range. Put the check inside
9697 eassert. See
9698 <http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00485.html>.
9699
9700 2012-05-27 Ken Brown <kbrown@cornell.edu>
9701
9702 * callproc.c (Fcall_process): Restore a line that was accidentally
9703 commented out in the 2011-02-13 change (bug#11547).
9704
9705 2012-05-27 Eli Zaretskii <eliz@gnu.org>
9706
9707 * lisp.h [REL_ALLOC]: Add prototypes for external functions
9708 defined on ralloc.c.
9709
9710 * buffer.c [REL_ALLOC]: Remove prototypes of
9711 r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free,
9712 they are now on lisp.h.
9713
9714 * ralloc.c (r_alloc_inhibit_buffer_relocation): New function.
9715
9716 * search.c (search_buffer): Use it to inhibit relocation of buffer
9717 text while re_search_2 is doing its job, because re_search_2 is
9718 passed C pointers to buffer text. (Bug#11519)
9719
9720 * msdos.c (internal_terminal_init) <Vwindow_system_version>:
9721 Update value to 24.
9722
9723 * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator
9724 state after an additional call to move_it_in_display_line_to, keep
9725 the values of it->max_ascent and it->max_descent found for the
9726 entire line.
9727 (pos_visible_p): Revert the comparison against bottom_y to what it
9728 was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb.
9729 (Bug#11464)
9730
9731 2012-05-26 Paul Eggert <eggert@cs.ucla.edu>
9732
9733 Fix coding-related core dumps with gcc -ftrapv.
9734 The code was computing A - B, where A and B are pointers, and B is
9735 random garbage. This can lead to core dumps on platforms that
9736 have special pointer registers, and it also leads to core dumps on
9737 x86-64 when compiled with gcc -ftrapv. The fix is to compute
9738 A - B only when B is initialized properly.
9739 * coding.c (coding_set_source, coding_set_destination): Return void.
9740 (coding_change_source, coding_change_destinations): New functions,
9741 with the old behaviors of coding_set_source and coding_set_destination.
9742 All callers that need an offset changed to use these new functions.
9743
9744 2012-05-26 Glenn Morris <rgm@gnu.org>
9745
9746 * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791)
9747
9748 2012-05-26 Eli Zaretskii <eliz@gnu.org>
9749
9750 Extend mouse support on W32 text-mode console.
9751 * xdisp.c (draw_row_with_mouse_face):
9752 Call tty_draw_row_with_mouse_face for WINDOWSNT as well.
9753
9754 * w32console.c: Include window.h.
9755 (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face):
9756 New functions.
9757 (initialize_w32_display): Initialize mouse-highlight data.
9758
9759 * w32inevt.c: Include termchar.h and window.h.
9760 (do_mouse_event): Support mouse-autoselect-window. When the mouse
9761 moves, call note_mouse_highlight. If help_echo changed, call
9762 gen_help_event to produce help-echo message in the echo area.
9763 Call clear_mouse_face if mouse_face_hidden is set in the mouse
9764 highlight info.
9765
9766 2012-05-26 Paul Eggert <eggert@cs.ucla.edu>
9767
9768 * lread.c (read1): Simplify slightly to avoid an overflow warning
9769 with GCC 4.7.0 on x86-64.
9770
9771 2012-05-26 Eli Zaretskii <eliz@gnu.org>
9772
9773 * bidi.c (bidi_mirror_char): Revert last change: an int is
9774 definitely wide enough here.
9775
9776 2012-05-25 Paul Eggert <eggert@cs.ucla.edu>
9777
9778 Fix integer width and related bugs (Bug#9874).
9779 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
9780 (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE)
9781 (string_bytes, check_sblock, allocate_string_data):
9782 (compact_small_strings, Fmake_bool_vector, make_string)
9783 (make_unibyte_string, make_multibyte_string)
9784 (make_string_from_bytes, make_specified_string)
9785 (allocate_vectorlike, Fmake_vector, find_string_data_in_pure)
9786 (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy)
9787 (mark_vectorlike):
9788 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
9789 (allocate_pseudovector):
9790 Use int, not EMACS_INT, where int is wide enough.
9791 (inhibit_garbage_collection, Fgarbage_collect):
9792 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
9793 * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where
9794 int might not be wide enough.
9795 (bidi_cache_search, bidi_cache_find, bidi_init_it)
9796 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
9797 (bidi_at_paragraph_end, bidi_find_paragraph_start)
9798 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
9799 (bidi_level_of_next_char, bidi_move_to_visually_next):
9800 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
9801 * buffer.c (copy_overlays, Fgenerate_new_buffer_name)
9802 (Fkill_buffer, Fset_buffer_major_mode)
9803 (advance_to_char_boundary, Fbuffer_swap_text)
9804 (Fset_buffer_multibyte, overlays_at, overlays_in)
9805 (overlay_touches_p, struct sortvec, record_overlay_string)
9806 (overlay_strings, recenter_overlay_lists)
9807 (adjust_overlays_for_insert, adjust_overlays_for_delete)
9808 (fix_start_end_in_overlays, fix_overlays_before, modify_overlay)
9809 (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change)
9810 (Foverlay_recenter, last_overlay_modification_hooks_used)
9811 (report_overlay_modification, evaporate_overlays, enlarge_buffer_text):
9812 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
9813 (validate_region): Omit unnecessary test for b <= e,
9814 since that's guaranteed by the previous test.
9815 (adjust_overlays_for_delete): Avoid pos + length overflow.
9816 (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist)
9817 (report_overlay_modification):
9818 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
9819 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change):
9820 Omit pointer cast, which isn't needed anyway, and doesn't work
9821 after the EMACS_INT -> ptrdiff_t change.
9822 (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow.
9823 * buffer.h: Adjust decls to match defn changes elsewhere.
9824 (struct buffer_text, struct buffer):
9825 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
9826 Use EMACS_INT, not int, where int might not be wide enough.
9827 * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t,
9828 not int, to avoid needless 32-bit limit on 64-bit hosts.
9829 (exec_byte_code): Use tighter memory-full test, one that checks
9830 for alloca overflow. Don't compute the address of the object just
9831 before an array, as that's not portable. Use EMACS_INT, not
9832 ptrdiff_t or int, where ptrdiff_t or int might not be wide enough.
9833 * callint.c (Fcall_interactively):
9834 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
9835 * callproc.c (call_process_kill, Fcall_process):
9836 Don't assume pid_t fits into an Emacs fixnum.
9837 (call_process_cleanup, Fcall_process, child_setup):
9838 Don't assume pid_t fits into int.
9839 (call_process_cleanup, Fcall_process, delete_temp_file)
9840 (Fcall_process_region):
9841 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
9842 (Fcall_process): Simplify handling of volatile integers.
9843 Use int, not EMACS_INT, where int will do.
9844 * casefiddle.c (casify_object, casify_region, operate_on_word)
9845 (Fupcase_word, Fdowncase_word, Fcapitalize_word):
9846 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
9847 (casify_object): Avoid integer overflow when overallocating buffer.
9848 * casetab.c (set_identity, shuffle): Prefer int to unsigned when
9849 either works. Use lint_assume to convince GCC 4.6.1 that it's OK.
9850 * category.c (Fchar_category_set): Don't assume fixnum fits in int.
9851 * category.h (CATEGORYP): Don't assume arg is nonnegative.
9852 * ccl.c (GET_CCL_INT): Remove; no longer needed, since the
9853 integers are now checked earlier. All uses replaced with XINT.
9854 (ccl_driver):
9855 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
9856 For CCL_MapSingle, check that content and value are in int range.
9857 (ccl_driver, Fregister_code_conversion_map):
9858 Check that Vcode_version_map_vector is a vector.
9859 (resolve_symbol_ccl_program): Check that vector header is in range.
9860 Always copy the vector, so that we can check its contents reliably
9861 now rather than having to recheck each instruction as it's being
9862 executed. Check that vector words fit in 'int'.
9863 (ccl_get_compiled_code, Fregister_ccl_program)
9864 (Fregister_code_conversion_map): Use ptrdiff_t, not int, for
9865 program indexes, to avoid needless 32-bit limit on 64-bit hosts.
9866 (Fccl_execute, Fccl_execute_on_string): Check that initial reg
9867 contents are in range.
9868 (Fccl_execute_on_string): Check that status is in range.
9869 * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int.
9870 * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers):
9871 Accept and return EMACS_INT, not int, because callers can pass values
9872 out of 'int' range.
9873 (c_string_width, strwidth, lisp_string_width, chars_in_text)
9874 (multibyte_chars_in_text, parse_str_as_multibyte)
9875 (str_as_multibyte, count_size_as_multibyte, str_to_multibyte)
9876 (str_as_unibyte, str_to_unibyte, string_count_byte8)
9877 (string_escape_byte8, Fget_byte):
9878 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
9879 (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to
9880 avoid mishandling large integers.
9881 * character.h: Adjust decls to match defn changes elsewhere.
9882 * charset.c (load_charset_map_from_file, find_charsets_in_text)
9883 (Ffind_charset_region):
9884 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
9885 (load_charset_map_from_file): Redo idx calculation to avoid overflow.
9886 (load_charset_map_from_vector, Fdefine_charset_internal):
9887 Don't assume fixnum fits in int.
9888 (load_charset_map_from_vector, Fmap_charset_chars):
9889 Remove now-unnecessary CHECK_NATNUMs.
9890 (Fdefine_charset_internal): Check ranges here, more carefully.
9891 Don't rely on undefined behavior with signed left shift overflow.
9892 Don't assume unsigned int fits into fixnum, or that fixnum fits
9893 into unsigned int. Don't require max_code to be a valid fixnum;
9894 that's not true for gb10830 4-byte on a 32-bit host. Allow
9895 invalid_code to be a cons, for the same reason. Require code_offset
9896 to be a character. Avoid int overflow if max_char is close
9897 to INT_MAX.
9898 (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned;
9899 this is intended anyway and avoids some undefined behavior.
9900 (load_charset_map): Pass unsigned, not int, as 2nd arg of
9901 INDEX_TO_CODE_POINT, as that's what it expects.
9902 (Funify_charset, encode_char): Don't stuff unsigned vals into int vars.
9903 * charset.h (DECODE_CHAR): Return int, not unsigned;
9904 this is what was intended anyway, and it avoids undefined behavior.
9905 (CHARSET_OFFSET): Remove unused macro, instead of fixing its
9906 integer-overflow issues.
9907 (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts.
9908 Formerly, it returned EMACS_INT on 64-bit hosts in the common case
9909 where the argument is EMACS_INT, and this behavior is not intended.
9910 * chartab.c (Fmake_char_table, Fset_char_table_range)
9911 (uniprop_get_decoder, uniprop_get_encoder):
9912 Don't assume fixnum fits in int.
9913 * cmds.c (move_point): New function, that does the gist of
9914 Fforward_char and Fbackward_char, but does so while checking
9915 for integer overflow more accurately.
9916 (Fforward_char, Fbackward_char): Use it.
9917 (Fforward_line, Fend_of_line, internal_self_insert)
9918 (internal_self_insert):
9919 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
9920 Fix a FIXME, by checking for integer overflow when calculating
9921 target_clm and actual_clm.
9922 * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR)
9923 (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P)
9924 (ASSURE_DESTINATION, coding_alloc_by_realloc)
9925 (coding_alloc_by_making_gap, alloc_destination)
9926 (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16)
9927 (encode_coding_utf_16, detect_coding_emacs_mule)
9928 (decode_coding_emacs_mule, encode_coding_emacs_mule)
9929 (detect_coding_iso_2022, decode_coding_iso_2022)
9930 (encode_invocation_designation, encode_designation_at_bol)
9931 (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
9932 (decode_coding_sjis, decode_coding_big5, encode_coding_sjis)
9933 (encode_coding_big5, detect_coding_ccl, decode_coding_ccl)
9934 (encode_coding_ccl, encode_coding_raw_text)
9935 (detect_coding_charset, decode_coding_charset)
9936 (encode_coding_charset, detect_eol, decode_eol, produce_chars)
9937 (produce_composition, produce_charset, produce_annotation)
9938 (decode_coding, handle_composition_annotation)
9939 (handle_charset_annotation, consume_chars, decode_coding_gap)
9940 (decode_coding_object, encode_coding_object, detect_coding_system)
9941 (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region)
9942 (code_convert_region, code_convert_string)
9943 (Fdefine_coding_system_internal)
9944 (coding_set_source, coding_set_destination):
9945 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
9946 (setup_iso_safe_charsets, consume_chars, Funencodable_char_position)
9947 (Fdefine_coding_system_internal):
9948 Don't assume fixnums fit in int.
9949 (decode_coding_gap, decode_coding_object, encode_coding_object)
9950 (Fread_coding_system, Fdetect_coding_region)
9951 (Funencodable_char_position, Fcheck_coding_systems_region)
9952 (get_translation, handle_composition_annotation, consume_chars):
9953 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
9954 (consume_chars): Rewrite to not calculate an address outside buffer.
9955 (Ffind_operation_coding_system): NATNUMP can eval its arg twice.
9956 Don't access memory outside of the args array.
9957 (Fdefine_coding_system_internal): Check for charset-id overflow.
9958 (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned
9959 result of ENCODE_CHAR.
9960 * coding.h: Adjust decls to match defn changes elsewhere.
9961 (struct coding_system):
9962 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
9963 * composite.c (get_composition_id, find_composition)
9964 (run_composition_function, update_compositions)
9965 (compose_text, composition_gstring_put_cache)
9966 (composition_gstring_p, composition_gstring_width)
9967 (fill_gstring_header, fill_gstring_body, autocmp_chars)
9968 (composition_compute_stop_pos, composition_reseat_it)
9969 (composition_update_it, struct position_record)
9970 (find_automatic_composition, composition_adjust_point)
9971 (Fcomposition_get_gstring, Ffind_composition_internal):
9972 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
9973 (update_compositions):
9974 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
9975 * composite.h: Adjust decls to match defn changes elsewhere.
9976 (struct composition):
9977 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
9978 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
9979 Do not attempt to compute the address of the object just before a
9980 buffer; this is not portable.
9981 (Faref, Faset):
9982 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
9983 (Faset): Use int, not EMACS_INT, where int is wide enough.
9984 (Fstring_to_number): Don't assume fixnums fit in int.
9985 (Frem): Don't assume arg is nonnegative.
9986 * dbusbind.c (xd_append_arg): Check for integers out of range.
9987 (Fdbus_call_method): Don't overflow the timeout int.
9988 (extract_signed, extract_unsigned): New functions.
9989 (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned.
9990 (xd_get_connection_references): Return ptrdiff_t, not int.
9991 All uses changed.
9992 (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal)
9993 (xd_read_message_1):
9994 Use int, not unsigned, where the dbus API uses int.
9995 (Fdbus_message_internal): Don't overflow mtype.
9996 (syms_of_dbusbind): Allocate right-sized buffer for integers.
9997 * dired.c (directory_files_internal, file_name_completion, scmp)
9998 (file_name_completion_stat):
9999 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10000 (file_name_completion): Don't overflow matchcount.
10001 (file_name_completion_stat): Use SAFE_ALLOCA, not alloca.
10002 * dispextern.h: Adjust decls to match defn changes elsewhere.
10003 (struct text_pos, struct glyph, struct bidi_saved_info)
10004 (struct bidi_string_data, struct bidi_it, struct composition_it)
10005 (struct it):
10006 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10007 (struct display_pos, struct composition_it, struct it):
10008 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10009 * dispnew.c (increment_matrix_positions)
10010 (increment_row_positions, mode_line_string)
10011 (marginal_area_string):
10012 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10013 (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p):
10014 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10015 (duration_to_sec_usec): New function, to check for overflow better.
10016 (Fsleep_for, sit_for): Use it.
10017 * doc.c (get_doc_string, store_function_docstring):
10018 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10019 (get_doc_string, Fsnarf_documentation):
10020 Use int, not EMACS_INT, where int is wide enough.
10021 (get_doc_string):
10022 Use SAFE_ALLOCA, not alloca.
10023 Check for overflow when converting EMACS_INT to off_t.
10024 * doprnt.c (doprnt):
10025 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10026 * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid):
10027 Don't assume uid_t fits into fixnum.
10028 (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field)
10029 (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
10030 (Ffield_end, Fconstrain_to_field, Fline_beginning_position)
10031 (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before)
10032 (general_insert_function)
10033 (Finsert_char, make_buffer_string, make_buffer_string_both)
10034 (update_buffer_properties, Fbuffer_substring)
10035 (Fbuffer_substring_no_properties, Fcompare_buffer_substrings)
10036 (Fsubst_char_in_region, check_translation)
10037 (Ftranslate_region_internal, save_restriction_restore, Fformat)
10038 (transpose_markers, Ftranspose_regions):
10039 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10040 (clip_to_bounds): Move to lisp.h as an inline function).
10041 (Fconstrain_to_field): Don't assume integers are nonnegative.
10042 (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer):
10043 (Fsubst_char_in_region, Fsave_restriction):
10044 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10045 (Femacs_pid): Don't assume pid_t fits into fixnum.
10046 (lo_time): Use int, not EMACS_INT, when int suffices.
10047 (lisp_time_argument): Check for usec out of range.
10048 (Fencode_time): Don't assume fixnum fits in int.
10049 (Fuser_login_name, Fuser_full_name): Signal an error
10050 if a uid argument is out of range, rather than relying on
10051 undefined behavior.
10052 (Fformat_time_string): Remove now-unnecessary check.
10053 lisp_time_argument checks for out-of-range usec now.
10054 Use ptrdiff_t, not size_t, where ptrdiff_t will do.
10055 * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT.
10056 (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT.
10057 (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT.
10058 (init_cmdargs, Fdump_emacs):
10059 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10060 (Fkill_emacs): Don't assume fixnum fits in int; instead, take just
10061 the bottom (typically) 32 bits of the fixnum.
10062 * eval.c (specpdl_size, call_debugger):
10063 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10064 (when_entered_debugger, Fbacktrace_debug):
10065 Don't assume fixnum can fit in int.
10066 (Fdefvaralias, Fdefvar): Do not attempt to compute the address of
10067 the object just before a buffer; this is not portable.
10068 (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda)
10069 (grow_specpdl, unbind_to):
10070 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10071 (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum.
10072 (grow_specpdl): Simplify allocation by using xpalloc.
10073 (Fprog1, Fprog2): Don't assume list length fits in int. Simplify.
10074 * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file)
10075 (Finsert_file_contents, Fwrite_region, Fdo_auto_save):
10076 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10077 (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents)
10078 (a_write, e_write):
10079 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10080 (Fcopy_file, non_regular_nbytes, read_non_regular)
10081 (Finsert_file_contents):
10082 Use int, not EMACS_INT, where int is wide enough.
10083 (READ_BUF_SIZE): Verify that it fits in int.
10084 (Finsert_file_contents): Check that counts are in proper range,
10085 rather than assuming fixnums fit into ptrdiff_t etc.
10086 Don't assume fixnums fit into int.
10087 * floatfns.c (Fexpt): Avoid undefined signed * signed overflow.
10088 * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat)
10089 (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
10090 (string_char_to_byte, string_byte_to_char)
10091 (string_make_multibyte, string_to_multibyte)
10092 (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte)
10093 (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties)
10094 (substring_both, Fdelete, internal_equal, Ffillarray)
10095 (Fclear_string, mapcar1)
10096 (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
10097 (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
10098 (larger_vector, make_hash_table, maybe_resize_hash_table)
10099 (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table)
10100 (Fmaphash, secure_hash):
10101 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10102 (concat): Check for string index and length overflow.
10103 (Fmapconcat): Don't assume fixnums fit into ptrdiff_t.
10104 (Frequire):
10105 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10106 (larger_vector): New API (vec, incr_min, size_max) replaces old
10107 one (vec, new_size, init). This catches size overflow.
10108 INIT was removed because it was always Qnil.
10109 All callers changed.
10110 (INDEX_SIZE_BOUND): New macro, which calculates more precisely
10111 the upper bound on a hash table index size.
10112 (make_hash_table, maybe_resize_hash_table): Use it.
10113 (secure_hash): Computer start_byte and end_byte only after
10114 they're known to be in ptrdiff_t range.
10115 * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring)
10116 (Ffont_get_glyphs, Ffont_at):
10117 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10118 (font_style_to_value, font_prop_validate_style, font_expand_wildcards)
10119 (Flist_fonts, Fopen_font):
10120 Don't assume fixnum can fit in int.
10121 (check_gstring): Don't assume index can fit in int.
10122 (font_match_p): Check that fixnum is a character, not a nonnegative
10123 fixnum, since the later code needs to stuff it into an int.
10124 (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca.
10125 (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid
10126 conversion overflow issues.
10127 (Fopen_font): Check for integer out of range.
10128 (Ffont_get_glyphs): Don't assume index can fit in int.
10129 * font.h: Adjust decls to match defn changes elsewhere.
10130 * fontset.c (reorder_font_vector): Redo score calculation to avoid
10131 integer overflow.
10132 (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not
10133 printmax_t, where ptrdiff_t is wide enough.
10134 (Finternal_char_font):
10135 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10136 * frame.c (Fset_mouse_position, Fset_mouse_pixel_position)
10137 (Fset_frame_height, Fset_frame_width, Fset_frame_size)
10138 (Fset_frame_position, x_set_frame_parameters)
10139 (x_set_line_spacing, x_set_border_width)
10140 (x_set_internal_border_width, x_set_alpha, x_figure_window_size):
10141 Check that fixnums are in proper range for system types.
10142 (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters):
10143 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10144 (Fmodify_frame_parameters): Don't assume fixnum fits in int.
10145 Use SAFE_ALLOCA_LISP, not alloca.
10146 * frame.h (struct frame): Use intptr_t, not EMACS_INT, where
10147 intptr_t is wide enough.
10148 * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap)
10149 (Fdefine_fringe_bitmap): Don't assume fixnum fits in int.
10150 (Ffringe_bitmaps_at_pos): Don't assume index fits in int.
10151 Check for fixnum out of range.
10152 * ftfont.c (ftfont_list): Don't assume index fits in int.
10153 Check that fixnums are in proper range for system types.
10154 (ftfont_shape_by_flt):
10155 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10156 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
10157 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10158 (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot):
10159 Check that fixnums are in proper range for system types.
10160 * gnutls.h: Adjust decls to match defn changes elsewhere.
10161 * gtkutil.c (xg_dialog_run):
10162 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10163 (update_frame_tool_bar):
10164 Check that fixnums are in proper range for system types.
10165 * image.c (parse_image_spec): Redo count calculation to avoid overflow.
10166 (lookup_image): Check that fixnums are in range for system types.
10167 * indent.c (last_known_column, last_known_column_point):
10168 (current_column_bol_cache):
10169 (skip_invisible, current_column, check_display_width):
10170 (check_display_width, scan_for_column, current_column_1)
10171 (Findent_to, Fcurrent_indentation, position_indentation)
10172 (indented_beyond_p, Fmove_to_column, compute_motion):
10173 (Fcompute_motion, Fvertical_motion):
10174 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10175 (last_known_column_modified): Use EMACS_INT, not int.
10176 (check_display_width):
10177 (Fcompute_motion):
10178 Check that fixnums and floats are in proper range for system types.
10179 (compute_motion): Don't assume index or fixnum fits in int.
10180 (compute_motion, Fcompute_motion):
10181 Use int, not EMACS_INT, when it is wide enough.
10182 (vmotion): Omit local var start_hpos that is always 0; that way
10183 we don't need to worry about overflow in expressions involving it.
10184 * indent.h: Adjust decls to match defn changes elsewhere.
10185 (struct position):
10186 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10187 Use int, not EMACS_INT, where int is wide enough.
10188 Remove unused members ovstring_chars_done and tab_offset;
10189 all uses removed.
10190 * insdel.c (move_gap, move_gap_both, gap_left, gap_right)
10191 (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point)
10192 (adjust_markers_for_replace, make_gap_larger, make_gap_smaller)
10193 (make_gap, copy_text, insert, insert_and_inherit)
10194 (insert_before_markers, insert_before_markers_and_inherit)
10195 (insert_1, count_combining_before, count_combining_after)
10196 (insert_1_both, insert_from_string)
10197 (insert_from_string_before_markers, insert_from_string_1)
10198 (insert_from_gap, insert_from_buffer, insert_from_buffer_1)
10199 (adjust_after_replace, adjust_after_insert, replace_range)
10200 (replace_range_2, del_range, del_range_1, del_range_byte)
10201 (del_range_both, del_range_2, modify_region)
10202 (prepare_to_modify_buffer, signal_before_change)
10203 (signal_after_change, Fcombine_after_change_execute):
10204 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10205 * intervals.c (traverse_intervals, rotate_right, rotate_left)
10206 (balance_an_interval, split_interval_right, split_interval_left)
10207 (find_interval, next_interval, update_interval)
10208 (adjust_intervals_for_insertion, delete_node, delete_interval)
10209 (interval_deletion_adjustment, adjust_intervals_for_deletion)
10210 (static_offset_intervals, offset_intervals)
10211 (merge_interval_right, merge_interval_left, make_new_interval)
10212 (graft_intervals_into_buffer, temp_set_point_both)
10213 (temp_set_point, set_point, adjust_for_invis_intang)
10214 (set_point_both, move_if_not_intangible, get_property_and_range)
10215 (get_local_map, copy_intervals, copy_intervals_to_string)
10216 (compare_string_intervals, set_intervals_multibyte_1):
10217 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10218 * intervals.h: Adjust decls to match defn changes elsewhere.
10219 (struct interval):
10220 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10221 * keyboard.c (this_command_key_count, this_single_command_key_start)
10222 (before_command_key_count, before_command_echo_length, echo_now)
10223 (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse)
10224 (command_loop_1, safe_run_hooks, read_char, timer_check_2)
10225 (menu_item_eval_property, read_key_sequence, Fread_key_sequence)
10226 (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs):
10227 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10228 (last_non_minibuf_size, last_point_position, echo_truncate)
10229 (command_loop_1, adjust_point_for_property, read_char, gen_help_event)
10230 (make_lispy_position, make_lispy_event, parse_modifiers_uncached)
10231 (parse_modifiers, modify_event_symbol, Fexecute_extended_command)
10232 (stuff_buffered_input):
10233 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10234 (last_auto_save, command_loop_1, read_char):
10235 Use EMACS_INT, not int, to avoid integer overflow.
10236 (record_char): Avoid overflow in total_keys computation.
10237 (parse_modifiers_uncached): Redo index calculation to avoid overflow.
10238 * keyboard.h: Adjust decls to match defn changes elsewhere.
10239 * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1)
10240 (Fkey_description, Fdescribe_vector, Flookup_key):
10241 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10242 (click_position): New function, to check that positions are in range.
10243 (Fcurrent_active_maps):
10244 (describe_command):
10245 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10246 (Faccessible_keymaps, Fkey_description):
10247 (preferred_sequence_p):
10248 Don't assume fixnum can fit into int.
10249 (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca.
10250 Check for integer overflow in size calculations.
10251 (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to
10252 avoid mishandling large integers.
10253 * lisp.h: Adjust decls to match defn changes elsewhere.
10254 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String)
10255 (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table)
10256 (struct Lisp_Marker):
10257 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10258 (clip_to_bounds): Now an inline function, moved here from editfns.c.
10259 (GLYPH_CODE_P): Check for overflow in system types, subsuming the
10260 need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves.
10261 All callers changed.
10262 (GLYPH_CODE_CHAR, GLYPH_CODE_FACE):
10263 Assume the arg has valid form, since it always does.
10264 (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide
10265 unsigned integer system type.
10266 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros.
10267 (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA):
10268 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10269 (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum.
10270 (duration_to_sec_usec): New decl.
10271 * lread.c (read_from_string_index, read_from_string_index_byte)
10272 (read_from_string_limit, readchar, unreadchar, openp)
10273 (read_internal_start, read1, oblookup):
10274 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10275 (Fload, readevalloop, Feval_buffer, Feval_region):
10276 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10277 (openp): Check for out-of-range argument to 'access'.
10278 (read1): Use int, not EMACS_INT, where int is wide enough.
10279 Don't assume fixnum fits into int.
10280 Fix off-by-one error that can read outside a buffer.
10281 (read_filtered_event): Use duration_to_sec_usec
10282 to do proper overflow checking on durations.
10283 * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow
10284 in size calculation.
10285 (Fexecute_kbd_macro):
10286 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10287 * marker.c (cached_charpos, cached_bytepos, CONSIDER)
10288 (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos)
10289 (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted)
10290 (set_marker_both, set_marker_restricted_both, marker_position)
10291 (marker_byte_position, Fbuffer_has_markers_at):
10292 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10293 (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int.
10294 * menu.c (ensure_menu_items): Rename from grow_menu_items.
10295 It now merely ensures that the menu is large enough, without
10296 necessarily growing it, as this avoids some integer overflow issues.
10297 All callers changed.
10298 (keymap_panes, parse_single_submenu, Fx_popup_menu):
10299 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10300 (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int.
10301 Use SAFE_ALLOCA_LISP, not alloca.
10302 (find_and_return_menu_selection): Avoid unnecessary casts of pointers
10303 to EMACS_INT. Check that fixnums are in proper range for system types.
10304 * minibuf.c (minibuf_prompt_width, string_to_object)
10305 (Fminibuffer_contents, Fminibuffer_contents_no_properties)
10306 (Fminibuffer_completion_contents, Ftry_completion, Fall_completions):
10307 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10308 (get_minibuffer, read_minibuf_unwind):
10309 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10310 (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil;
10311 this simplifies overflow checking. All callers changed.
10312 (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions)
10313 (Ftest_completion):
10314 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10315 * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long.
10316 (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame):
10317 Check that fixnums are in proper range for system types.
10318 (Fx_create_frame, Fx_show_tip):
10319 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10320 * nsfont.m (ns_findfonts, nsfont_list_family):
10321 Don't assume fixnum fits in long.
10322 * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
10323 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10324 (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is
10325 wide enough.
10326 * nsselect.m (ns_get_local_selection, clean_local_selection_data):
10327 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10328 * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte)
10329 (PRINTDECLARE, PRINTPREPARE):
10330 (strout, print_string):
10331 (print, print_preprocess, print_check_string_charset_prop)
10332 (print_object):
10333 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10334 (PRINTDECLARE):
10335 (temp_output_buffer_setup, Fprin1_to_string, print_object):
10336 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10337 (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough.
10338 (printchar, strout): Use xpalloc to catch size calculation overflow.
10339 (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion.
10340 (print_error_message): Use SAFE_ALLOCA, not alloca.
10341 (print_object): Use int, not EMACS_INT, where int is wide enough.
10342 (print_depth, new_backquote_output, print_number_index):
10343 Use ptrdiff_t, not int, where int might not be wide enough.
10344 * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT.
10345 (Fset_process_window_size, Fformat_network_address)
10346 (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process)
10347 (sigchld_handler):
10348 Check that fixnums are in proper range for system types.
10349 (Fsignal_process): Simplify by avoiding a goto.
10350 Check for process-ids out of pid_t range rather than relying on
10351 undefined behavior.
10352 (process_tick, update_tick): Use EMACS_INT, not int.
10353 (Fformat_network_address, read_process_output, send_process)
10354 (Fprocess_send_region, status_notify):
10355 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10356 (Fformat_network_address, Fmake_serial_process, Fmake_network_process)
10357 (wait_reading_process_output, read_process_output, exec_sentinel):
10358 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10359 (conv_lisp_to_sockaddr): Don't assume fixnums fit into int.
10360 (Faccept_process_output): Use duration_to_sec_usec to do proper
10361 overflow checking on durations.
10362 (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal):
10363 Don't assume pid_t fits in int.
10364 * process.h (struct Lisp_Process): Members tick and update_tick
10365 are now of type EMACS_INT, not int.
10366 * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts
10367 configured --with-wide-int.
10368 * scroll.c (calculate_scrolling, calculate_direct_scrolling)
10369 (line_ins_del): Use int, not EMACS_INT, where int is wide enough.
10370 * search.c (looking_at_1, string_match_1):
10371 (fast_string_match, fast_c_string_match_ignore_case)
10372 (fast_string_match_ignore_case, fast_looking_at, scan_buffer)
10373 (scan_newline, find_before_next_newline, search_command)
10374 (trivial_regexp_p, search_buffer, simple_search, boyer_moore)
10375 (set_search_regs, wordify):
10376 (Freplace_match):
10377 (Fmatch_data):
10378 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10379 (string_match_1, search_buffer, set_search_regs):
10380 (Fmatch_data):
10381 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10382 (wordify): Check for overflow in size calculation.
10383 (Freplace_match): Avoid potential buffer overflow in search_regs.start.
10384 (Fset_match_data): Don't assume fixnum fits in ptrdiff_t.
10385 Check that fixnums are in proper range for system types.
10386 * sound.c (struct sound_device)
10387 (wav_play, au_play, vox_write, alsa_period_size, alsa_write):
10388 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10389 (Fplay_sound_internal):
10390 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10391 * syntax.c (struct lisp_parse_state, find_start_modiff)
10392 (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward):
10393 (Fparse_partial_sexp):
10394 Don't assume fixnums can fit in int.
10395 (struct lisp_parse_state, find_start_pos, find_start_value)
10396 (find_start_value_byte, find_start_begv)
10397 (update_syntax_table, char_quoted, dec_bytepos)
10398 (find_defun_start, prev_char_comend_first, back_comment):
10399 (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment)
10400 (scan_lists, Fbackward_prefix_chars, scan_sexps_forward):
10401 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10402 (Finternal_describe_syntax_value): Check that match_lisp is a
10403 character, not an integer, since the code stuffs it into int.
10404 (scan_words, scan_sexps_forward):
10405 Check that fixnums are in proper range for system types.
10406 (Fforward_word):
10407 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10408 (scan_sexps_forward):
10409 Use CHARACTERP, not INTEGERP, since the value must fit into int.
10410 (Fparse_partial_sexp): Fix doc; element 8 is not ignored.
10411 * syntax.h: Adjust decls to match defn changes elsewhere.
10412 (struct gl_state_s):
10413 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10414 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not
10415 MOST_POSITIVE_FIXNUM.
10416 * sysdep.c (wait_for_termination_1, wait_for_termination)
10417 (interruptible_wait_for_termination, mkdir):
10418 Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit.
10419 (emacs_read, emacs_write):
10420 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10421 (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT,
10422 and double all fit in int.
10423 * term.c (set_tty_color_mode):
10424 Check that fixnums are in proper range for system types.
10425 * termhooks.h (struct input_event):
10426 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10427 * textprop.c (validate_interval_range, interval_of)
10428 (Fadd_text_properties, set_text_properties_1)
10429 (Fremove_text_properties, Fremove_list_of_text_properties)
10430 (Ftext_property_any, Ftext_property_not_all)
10431 (copy_text_properties, text_property_list, extend_property_ranges)
10432 (verify_interval_modification):
10433 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10434 (Fnext_single_char_property_change)
10435 (Fprevious_single_char_property_change):
10436 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10437 (copy_text_properties):
10438 Check for integer overflow in index calculation.
10439 * undo.c (last_boundary_position, record_point, record_insert)
10440 (record_delete, record_marker_adjustment, record_change)
10441 (record_property_change):
10442 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10443 (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int.
10444 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10445 * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
10446 (Fx_hide_tip, Fx_file_dialog):
10447 * w32menu.c (set_frame_menubar):
10448 Use ptrdiff_t, not int, for consistency with rest of code.
10449 * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos)
10450 (select_window, Fdelete_other_windows_internal)
10451 (window_scroll_pixel_based, window_scroll_line_based)
10452 (Frecenter, Fset_window_configuration):
10453 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10454 (Fset_window_hscroll, run_window_configuration_change_hook)
10455 (set_window_buffer, temp_output_buffer_show, scroll_command)
10456 (Fscroll_other_window, Frecenter):
10457 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10458 (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right):
10459 Don't assume fixnum fits in int.
10460 (Fset_window_scroll_bars):
10461 Check that fixnums are in proper range for system types.
10462 * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead)
10463 (string_pos, c_string_pos, number_of_chars, init_iterator)
10464 (in_ellipses_for_invisible_text_p, init_from_display_pos)
10465 (compute_stop_pos, next_overlay_change, compute_display_string_pos)
10466 (compute_display_string_end, handle_face_prop)
10467 (face_before_or_after_it_pos, handle_invisible_prop)
10468 (handle_display_prop, handle_display_spec, handle_single_display_spec)
10469 (display_prop_intangible_p, string_buffer_position_lim)
10470 (string_buffer_position, handle_composition_prop, load_overlay_strings)
10471 (get_overlay_strings_1, get_overlay_strings)
10472 (iterate_out_of_display_property, forward_to_next_line_start)
10473 (back_to_previous_visible_line_start, reseat, reseat_to_string)
10474 (get_next_display_element, set_iterator_to_next)
10475 (get_visually_first_element, compute_stop_pos_backwards)
10476 (handle_stop_backwards, next_element_from_buffer)
10477 (move_it_in_display_line_to, move_it_in_display_line)
10478 (move_it_to, move_it_vertically_backward, move_it_by_lines)
10479 (add_to_log, message_dolog, message_log_check_duplicate)
10480 (message2, message2_nolog, message3, message3_nolog
10481 (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1)
10482 (current_message_1, truncate_echo_area, truncate_message_1)
10483 (set_message, set_message_1, store_mode_line_noprop)
10484 (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos)
10485 (text_outside_line_unchanged_p, check_point_in_composition)
10486 (reconsider_clip_changes)
10487 (redisplay_internal, set_cursor_from_row, try_scrolling)
10488 (try_cursor_movement, set_vertical_scroll_bar, redisplay_window)
10489 (redisplay_window, find_last_unchanged_at_beg_row)
10490 (find_first_unchanged_at_end_row, row_containing_pos, try_window_id)
10491 (trailing_whitespace_p, find_row_edges, display_line)
10492 (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction)
10493 (display_mode_element, store_mode_line_string)
10494 (pint2str, pint2hrstr, decode_mode_spec)
10495 (display_count_lines, display_string, draw_glyphs)
10496 (x_produce_glyphs, x_insert_glyphs)
10497 (rows_from_pos_range, mouse_face_from_buffer_pos)
10498 (fast_find_string_pos, mouse_face_from_string_pos)
10499 (note_mode_line_or_margin_highlight, note_mouse_highlight):
10500 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10501 (safe_call, init_from_display_pos, handle_fontified_prop)
10502 (handle_single_display_spec, load_overlay_strings)
10503 (with_echo_area_buffer, setup_echo_area_for_printing)
10504 (display_echo_area, echo_area_display)
10505 (x_consider_frame_title, prepare_menu_bars, update_menu_bar)
10506 (update_tool_bar, hscroll_window_tree, redisplay_internal)
10507 (redisplay_window, dump_glyph_row, display_mode_line)
10508 (Fformat_mode_line, decode_mode_spec, on_hot_spot_p):
10509 (handle_display_spec, display_prop_string_p):
10510 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10511 (handle_single_display_spec, build_desired_tool_bar_string)
10512 (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix)
10513 (get_specified_cursor_type):
10514 Check that fixnums are in proper range for system types.
10515 (struct overlay_entry, resize_mini_window, Fdump_glyph_row)
10516 (Flookup_image_map):
10517 Don't assume fixnums fit in int.
10518 (compare_overlay_entries):
10519 Avoid mishandling comparisons due to subtraction overflow.
10520 (load_overlay_strings): Use SAFE_NALLOCA, not alloca.
10521 (last_escape_glyph_face_id, last_glyphless_glyph_face_id):
10522 (handle_tool_bar_click):
10523 Use int, not unsigned, since we prefer signed and the signedness
10524 doesn't matter here.
10525 (get_next_display_element, next_element_from_display_vector):
10526 Use int, not EMACS_INT, when int is wide enough.
10527 (start_hourglass): Use duration_to_sec_usec to do proper
10528 overflow checking on durations.
10529 * xfaces.c (Fbitmap_spec_p):
10530 Check that fixnums are in proper range for system types.
10531 (compare_fonts_by_sort_order):
10532 Avoid mishandling comparisons due to subtraction overflow.
10533 (Fx_family_fonts, realize_basic_faces):
10534 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10535 (Fx_family_fonts):
10536 Don't assume fixnum fits in int.
10537 Use SAFE_ALLOCA_LISP, not alloca.
10538 (merge_face_heights): Remove unnecessary cast to EMACS_INT.
10539 (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID.
10540 (face_at_buffer_position, face_for_overlay_string)
10541 (face_at_string_position):
10542 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10543 (merge_faces): Use int, not EMACS_INT, where int is wide enough.
10544 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify)
10545 (Fx_show_tip):
10546 Check that fixnums are in proper range for system types.
10547 (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
10548 (Fx_hide_tip, Fx_file_dialog, Fx_select_font):
10549 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10550 (Fx_change_window_property): Don't assume fixnums fit in int.
10551 * xfont.c (xfont_chars_supported):
10552 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10553 * xmenu.c (Fx_popup_dialog, set_frame_menubar)
10554 (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
10555 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10556 * xml.c (parse_region):
10557 * xrdb.c (magic_file_p):
10558 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
10559 * xselect.c (TRACE1): Don't assume pid_t promotes to int.
10560 (x_get_local_selection, x_reply_selection_request)
10561 (x_handle_selection_request, wait_for_property_change):
10562 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10563 (selection_data_to_lisp_data): Use short, not EMACS_INT, where
10564 short is wide enough.
10565 (x_send_client_event): Don't assume fixnum fits in int.
10566 * xterm.c (x_x_to_emacs_modifiers):
10567 Don't assume EMACS_INT overflows nicely into int.
10568 (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values
10569 may come from Lisp.
10570 (handle_one_xevent): NATNUMP can eval its arg twice.
10571 (x_connection_closed):
10572 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
10573 * xterm.h: Adjust decls to match defn changes elsewhere.
10574 (struct scroll_bar): Use struct vectorlike_header
10575 rather than rolling our own approximation.
10576 (SCROLL_BAR_VEC_SIZE): Remove; not used.
10577
10578 2012-05-25 Glenn Morris <rgm@gnu.org>
10579
10580 * lisp.mk (lisp): Update for more files being compiled now.
10581
10582 2012-05-25 Stefan Monnier <monnier@iro.umontreal.ca>
10583
10584 * lread.c: Remove `read_pure' which makes no difference.
10585 (read_pure): Remove var.
10586 (unreadpure): Remove function.
10587 (readevalloop): Don't call read_list with -1 flag.
10588 (read1, read_vector): Don't test read_pure any more.
10589 (read_list): Simplify.
10590
10591 * fileio.c, character.h: Minor style tweaks.
10592
10593 2012-05-24 Dmitry Antipov <dmantipov@yandex.ru>
10594
10595 * window.h (clip_changed): Remove useless declaration.
10596
10597 2012-05-22 Juanma Barranquero <lekktu@gmail.com>
10598
10599 * makefile.w32-in: Follow-up to 2012-05-22T16:20:27Z!eggert@cs.ucla.edu.
10600 (TAGS, TAGS-gmake, CONFIG_H): Remove further references to m/intel386.h.
10601
10602 2012-05-22 Paul Eggert <eggert@cs.ucla.edu>
10603
10604 Remove src/m/*.
10605 This directory predates autoconf and is no longer needed nowadays.
10606 Move its few remaining bits of functionality to where they're needed.
10607 * m/README, m/alpha.h, m/amdx86-64.h, m/ia64.h, m/ibmrs6000.h:
10608 * m/ibms390x.h, m/intel386.h, m/m68k.h, m/macppc.h, m/sparc.h:
10609 * m/template.h: Remove.
10610 * Makefile.in (M_FILE): Remove. All uses removed.
10611 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS):
10612 * lisp.h (USE_LSB_TAG):
10613 * mem-limits.h (EXCEEDS_LISP_PTR):
10614 Use VAL_MAX, not VALBITS, in #if.
10615 * lisp.h (EMACS_INT_MAX): New macro, useful in #if.
10616 (EMACS_UINT): Define unconditionally now.
10617 (BITS_PER_CHAR, BITS_PER_SHORT, BITS_PER_INT, BITS_PER_LONG)
10618 (BITS_PER_EMACS_INT): New constants, replacing
10619 what used to be in config.h, but not useful in #if.
10620 (GCTYPEBITS, VALBITS): Define unconditionally, since m/* files don't
10621 define them any more.
10622 (VAL_MAX): New macro.
10623 (VALMASK): Use it.
10624 * puresize.h (PURESIZE_RATIO): Use EMACS_INT_MAX, not
10625 BITS_PER_EMACS_INT, in #if.
10626 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
10627 (BROKEN_SIGPOLL): Move here from m/ibmrs6000.h, which was removed.
10628 * s/gnu-linux.h (ULIMIT_BREAK_VALUE) [__i386__]:
10629 * s/ms-w32.h (DATA_START):
10630 Move here from removed file m/intel386.h.
10631 * s/gnu.h (NLIST_STRUCT): Remove undef; 'configure' does this.
10632 * s/irix6-5.h (_LP64): Remove; lisp.h no longer needs this.
10633
10634 2012-05-21 Paul Eggert <eggert@cs.ucla.edu>
10635
10636 Assume C89 or later.
10637 * alloc.c, buffer.c, lisp.h: Replace POINTER_TYPE with void.
10638 * alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc)
10639 (xrealloc):
10640 * buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts.
10641 * editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL):
10642 * textprop.c, tparam.c (NULL): Remove.
10643 * ralloc.c, vm-limit.c (POINTER): Assume void * works.
10644 * regex.c (SIGN_EXTEND_CHAR): Assume signed char works.
10645 * regex.h (_RE_ARGS): Remove. All uses rewritten to use prototypes.
10646 * unexelf.c (ElfBitsW): Assume c89 preprocessor or better.
10647 * xterm.c (input_signal_count): Assume volatile works.
10648
10649 2012-05-21 Ken Brown <kbrown@cornell.edu>
10650
10651 * xgselect.c (xg_select): Fix first argument in call to 'select'
10652 (bug#11508).
10653
10654 2012-05-20 Ken Brown <kbrown@cornell.edu>
10655
10656 * gmalloc.c (_free_internal_nolock, _realloc_internal_nolock)
10657 [CYGWIN]: Cast ptr to (char *) before comparing to _heapbase.
10658
10659 2012-05-19 Ken Brown <kbrown@cornell.edu>
10660
10661 * xfns.c (x_in_use): Remove `static' qualifier.
10662 * xterm.h (x_in_use): Declare.
10663 * xgselect.c: Include xterm.h.
10664 (xg_select): Test `x_in_use' instead of `inhibit_window_system'
10665 and `display_arg' (bug#9754).
10666
10667 2012-05-19 Paul Eggert <eggert@cs.ucla.edu>
10668
10669 * s/ms-w32.h (HAVE_GETDOMAINNAME): Remove; not needed.
10670
10671 * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed.
10672 * s/ms-w32.h (HAVE_FTIME): Remove; not needed.
10673
10674 2012-05-18 Eli Zaretskii <eliz@gnu.org>
10675
10676 Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows.
10677
10678 * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font.
10679 (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c.
10680
10681 * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken
10682 reference to image_cache->refcount.
10683 (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE.
10684
10685 2012-05-17 Juri Linkov <juri@jurta.org>
10686
10687 * search.c (Fword_search_regexp, Fword_search_backward)
10688 (Fword_search_forward, Fword_search_backward_lax)
10689 (Fword_search_forward_lax): Move functions to isearch.el
10690 (bug#10145, bug#11381).
10691
10692 2012-05-16 Paul Eggert <eggert@cs.ucla.edu>
10693
10694 * xgselect.c (xg_select): Just invoke 'select' if -nw (Bug#9754).
10695
10696 2012-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
10697
10698 * lread.c (init_obarray): Declare Qt and Qnil as special.
10699
10700 2012-05-14 Glenn Morris <rgm@gnu.org>
10701
10702 * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec").
10703 Put "libexec" before "bin", for the sake of init_callproc_1.
10704
10705 2012-05-14 Paul Eggert <eggert@cs.ucla.edu>
10706
10707 * keyboard.c (kbd_buffer_get_event) [!HAVE_DBUS]: Omit unused local.
10708
10709 * unexaix.c: Port to more-recent AIX compilers.
10710 (report_error, report_error_1, make_hdr, copy_sym)
10711 (mark_x, adjust_lnnoptrs, unrelocate_symbols):
10712 Make arguments const char *, not char *, to avoid violations of C
10713 standard and to fix some AIX warnings reported by Gilles Pion.
10714
10715 2012-05-14 Eli Zaretskii <eliz@gnu.org>
10716
10717 * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we
10718 already have overlays loaded.
10719 (handle_single_display_spec): Before returning without displaying
10720 fringe bitmap, synchronize the bidi iterator with the main display
10721 iterator, by calling iterate_out_of_display_property.
10722 (iterate_out_of_display_property): Detect buffer iteration by
10723 testing that it->string is a Lisp string.
10724 (get_next_display_element): When the current object is exhausted,
10725 and there's something on it->stack, call set_iterator_to_next to
10726 proceed with what's on the stack, instead of returning zero.
10727 (set_iterator_to_next): If called at the end of a Lisp string,
10728 proceed to consider_string_end without incrementing string
10729 position. Don't increment display vector index past the end of
10730 the display vector. (Bug#11417)
10731 (pos_visible_p): Don't report a position visible when move_it_to
10732 stopped at the last line of window, which happens to be scanned
10733 backwards by the bidi iteration. (Bug#11464)
10734
10735 2012-05-14 Eli Zaretskii <eliz@gnu.org>
10736
10737 * xdisp.c (handle_single_display_spec): Return 1 for left-margin
10738 and right-margin display specs even if the spec is invalid or we
10739 are on a TTY, and thus unable to display on the fringes.
10740 That's because the text with the property will not be displayed anyway,
10741 so we need to signal to the caller that this is a "replacing"
10742 display spec. This fixes display when the spec is invalid or we
10743 are on a TTY.
10744
10745 2012-05-14 Paul Eggert <eggert@cs.ucla.edu>
10746
10747 * unexaix.c (make_hdr): Fix typo in prototype.
10748 This bug broke the build on AIX. Problem reported by Gilles Pion.
10749
10750 2012-05-14 Michael Albinus <michael.albinus@gmx.de>
10751
10752 * keyboard.c (kbd_buffer_get_event): Read special events also in
10753 batch mode. (Bug#11415)
10754
10755 2012-05-12 Glenn Morris <rgm@gnu.org>
10756
10757 * ns.mk: Update for ns_appbindir no longer having trailing "/".
10758
10759 2012-05-12 Eli Zaretskii <eliz@gnu.org>
10760
10761 * lisp.mk (lisp): Add newcomment.elc.
10762
10763 2012-05-12 Glenn Morris <rgm@gnu.org>
10764
10765 * Makefile.in (MKDIR_P): New, set by configure.
10766 * ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P.
10767
10768 2012-05-11 Paul Eggert <eggert@cs.ucla.edu>
10769
10770 Remove unused function hourglass_started.
10771 * dispextern.h (hourglass_started):
10772 * w32fns.c (hourglass_started):
10773 * xdisp.c (hourglass_started): Remove.
10774
10775 2012-05-10 Juanma Barranquero <lekktu@gmail.com>
10776
10777 * makefile.w32-in ($(BLD)/gmalloc.$(O), $(BLD)/w32menu.$(O)):
10778 Update dependencies.
10779
10780 2012-05-10 Paul Eggert <eggert@cs.ucla.edu>
10781
10782 * xgselect.c (xg_select): Put maxfds+1 into a var.
10783 This is slightly clearer, and pacifies Ubuntu 12.04 gcc.
10784
10785 * sound.c (DEFAULT_ALSA_SOUND_DEVICE): Define only if HAVE_ALSA.
10786
10787 2012-05-10 Dave Abrahams <dave@boostpro.com>
10788
10789 * filelock.c (syms_of_filelock): New boolean create-lockfiles.
10790 (lock_file): If create_lockfiles is 0, do nothing. (Bug#11227)
10791
10792 2012-05-09 Michael Albinus <michael.albinus@gmx.de>
10793
10794 * dbusbind.c (xd_registered_buses): New internal Lisp object.
10795 Rename all occurrences of Vdbus_registered_buses to xd_registered_buses.
10796 (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
10797 Initialize xd_registered_buses.
10798
10799 2012-05-09 Paul Eggert <eggert@cs.ucla.edu>
10800
10801 Untag more efficiently if USE_LSB_TAG.
10802 This is based on a proposal by YAMAMOTO Mitsuharu in
10803 <http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg01876.html>.
10804 For an admittedly artificial (nth 8000 longlist) benchmark on
10805 Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks
10806 Emacs's overall text size by 1%.
10807 * lisp.h (XUNTAG): New macro.
10808 (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW)
10809 (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR)
10810 (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it.
10811 * eval.c (Fautoload):
10812 * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT):
10813 * frame.h (XFRAME): Use XUNTAG.
10814
10815 Port recent dbusbind.c changes to 32-bit --with-wide-int.
10816 * dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal):
10817 Remove unportable assumptions about print widths of types like
10818 dbus_uint32_t.
10819 (xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to
10820 intptr_t when converting between pointer and integer, to avoid GCC
10821 warnings about wrong width.
10822
10823 2012-05-09 Eli Zaretskii <eliz@gnu.org>
10824
10825 * w32proc.c (new_child): Force Windows to reserve only 64KB of
10826 stack for each reader_thread, instead of defaulting to 8MB
10827 determined by the linker. This avoids failures in creating
10828 subprocesses on Windows 7, see the discussion in this thread:
10829 http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html.
10830
10831 2012-05-07 Jérémy Compostella <jeremy.compostella@gmail.com>
10832
10833 Fix up display of the *Minibuf-0* buffer in the mini window.
10834 * keyboard.c (read_char): Don't clear the echo area if there's no
10835 message to clear.
10836 * xdisp.c (redisplay_internal): Redisplay the mini window (with the
10837 contents of *Minibuf-0*) if there's no message displayed in its stead.
10838
10839 2012-05-07 Michael Albinus <michael.albinus@gmx.de>
10840
10841 * dbusbind.c (XD_DEBUG_MESSAGE): Don't print message twice in
10842 batch mode.
10843
10844 2012-05-06 Chong Yidong <cyd@gnu.org>
10845
10846 * lisp.mk (lisp): Update.
10847
10848 2012-05-05 Jim Meyering <meyering@redhat.com>
10849
10850 * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372).
10851
10852 2012-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
10853
10854 * data.c (PUT_ERROR): New macro.
10855 (syms_of_data): Use it. Add new error type `user-error'.
10856 * undo.c (user_error): New function.
10857 (Fprimitive_undo): Use it.
10858 * print.c (print_error_message): Adjust print style for `user-error'.
10859 * keyboard.c (user_error): New function.
10860 (Fexit_recursive_edit, Fabort_recursive_edit): Use it.
10861
10862 2012-05-03 Paul Eggert <eggert@cs.ucla.edu>
10863
10864 Do not limit current-time-string to years 1000..9999.
10865 * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
10866 (Fcurrent_time_string): Support any year that is supported by the
10867 underlying localtime representation. Don't use asctime, as it
10868 has undefined behavior for years outside the range -999..9999.
10869
10870 2012-05-02 Paul Eggert <eggert@cs.ucla.edu>
10871
10872 Fix race conditions involving setenv, gmtime, localtime, asctime.
10873 Without this fix, interrupts could mess up code that uses these
10874 nonreentrant functions, since setting TZ invalidates existing
10875 tm_zone or tzname values, and since most of these functions return
10876 pointers to static storage.
10877 * editfns.c (format_time_string, Fdecode_time, Fencode_time)
10878 (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
10879 Grow the critical sections to include not just invoking
10880 localtime/gmtime, but also accessing these functions' results
10881 including their tm_zone values if any, and any related TZ setting.
10882 (format_time_string): Last arg is now struct tm *, not struct tm **,
10883 so that the struct tm is saved in the critical section.
10884 All callers changed. Simplify allocation of initial buffer, partly
10885 motivated by the fact that memory allocation needs to be outside
10886 the critical section.
10887
10888 2012-05-02 Dmitry Antipov <dmantipov@yandex.ru>
10889
10890 * intervals.c (adjust_intervals_for_insertion): Initialize `newi'
10891 with RESET_INTERVAL.
10892
10893 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
10894 Remove duplicated buffer name initialization.
10895
10896 2012-05-02 Jim Meyering <jim@meyering.net>
10897
10898 * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373).
10899
10900 * xfns.c (x_window): Use xstrdup (Bug#11375).
10901
10902 2012-05-02 Eli Zaretskii <eliz@gnu.org>
10903
10904 * xdisp.c (pos_visible_p): If already at a newline from the
10905 display string before the 'while' loop, don't walk back the glyphs
10906 from it3.glyph_row. Solves assertion violation when the display
10907 string begins with a newline (egg.el). (Bug#11367)
10908
10909 2012-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
10910
10911 * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings):
10912 Move to simple.el.
10913
10914 2012-05-01 Glenn Morris <rgm@gnu.org>
10915
10916 * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in
10917 s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h),
10918 and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10).
10919 All were removed before 23.1.
10920
10921 * dispnew.c: Remove HAVE_LIBNCURSES test;
10922 it is always true on relevant platforms.
10923
10924 * Makefile.in (LD_SWITCH_X_SITE_RPATH):
10925 Rename from LD_SWITCH_X_SITE_AUX_RPATH.
10926
10927 * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used.
10928
10929 2012-04-30 Andreas Schwab <schwab@linux-m68k.org>
10930
10931 * .gdbinit (xpr): Remove checks for no longer existing misc types.
10932 (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal):
10933 Remove.
10934
10935 2012-04-28 Paul Eggert <eggert@cs.ucla.edu>
10936
10937 Do not avoid creating empty evaporating overlays (Bug#9642).
10938 * buffer.c (Fmove_overlay): Revert the change of 2012-04-23.
10939 That is, do not delete an evaporating overlay if it becomes
10940 empty after its bounds are adjusted to fit within its buffer.
10941 This fix caused other problems, and I'm reverting it until we get
10942 to the bottom of them.
10943
10944 2012-04-27 Chong Yidong <cyd@gnu.org>
10945
10946 * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
10947
10948 2012-04-27 Eli Zaretskii <eliz@gnu.org>
10949
10950 * xdisp.c (pos_visible_p): If the window start position is beyond
10951 ZV, start the display from buffer beginning. Prevents assertion
10952 violation in init_iterator when the minibuffer window is scrolled
10953 via the scroll bar.
10954
10955 * window.c (window_scroll_pixel_based): Likewise.
10956
10957 2012-04-27 Chong Yidong <cyd@gnu.org>
10958
10959 * keymap.c (where_is_internal): Doc fix (Bug#10872).
10960
10961 2012-04-27 Glenn Morris <rgm@gnu.org>
10962
10963 * fileio.c (Fcopy_file, Fset_file_selinux_context):
10964 Ignore ENOTSUP failures from setfilecon functions. (Bug#11245)
10965
10966 2012-04-27 Eli Zaretskii <eliz@gnu.org>
10967
10968 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers):
10969 Don't overrun array limits of glyph row's used[] array. (Bug#11288)
10970
10971 2012-04-26 Eli Zaretskii <eliz@gnu.org>
10972
10973 * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
10974 display element, check also the underlying string or buffer
10975 character. (Bug#11341)
10976
10977 * w32menu.c: Include w32heap.h.
10978 (add_menu_item): If the call to AppendMenuW (via
10979 unicode_append_menu) fails, disable Unicode menus only if we are
10980 running on Windows 9X/Me.
10981
10982 2012-04-24 Andreas Schwab <schwab@linux-m68k.org>
10983
10984 * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS.
10985 (xgetint): Add missing shift for LSB tags.
10986
10987 2012-04-24 Martin Rudalics <rudalics@gmx.at>
10988
10989 * keyboard.c (read_char): Don't wipe echo area for select window
10990 events: These might get delayed via `mouse-autoselect-window'
10991 (Bug#11304).
10992
10993 2012-04-24 Juanma Barranquero <lekktu@gmail.com>
10994
10995 * gnutls.c (init_gnutls_functions): Protect against (unlikely)
10996 manipulation of :loaded-from data.
10997
10998 2012-04-23 Juanma Barranquero <lekktu@gmail.com>
10999
11000 * gnutls.c (init_gnutls_functions): The value of :loaded-from is
11001 now a cons (bug#11311).
11002
11003 2012-04-23 Paul Eggert <eggert@cs.ucla.edu>
11004
11005 Do not create empty overlays with the evaporate property (Bug#9642).
11006 * buffer.c (Fmove_overlay): Delete an evaporating overlay
11007 if it becomes empty after its bounds are adjusted to fit within
11008 its buffer. Without this fix, in a nonempty buffer (let ((o
11009 (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1))
11010 yields an empty overlay that has the evaporate property, which is
11011 not supposed to happen.
11012
11013 Fix minor GTK3 problems found by static checking.
11014 * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
11015 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
11016 (struct _EmacsFixedClass, emacs_fixed_get_type):
11017 Move decls here from emacsgtkfixed.h, since they needn't be public.
11018 (emacs_fixed_get_type): Now static.
11019 (emacs_fixed_class_init): Omit unused local.
11020 (emacs_fixed_child_type): Remove; unused.
11021 * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
11022 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
11023 (struct _EmacsFixedClass): Move to emacsgtkfixed.c.
11024 (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS)
11025 (EMACS_FIXED_GET_CLASS): Remove; unused.
11026 * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local.
11027
11028 * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO.
11029 Problem reported by Juanma Barranquero for Windows -Wunused-function.
11030
11031 2012-04-22 Paul Eggert <eggert@cs.ucla.edu>
11032
11033 Modernize and clean up gmalloc.c to assume C89 (Bug#9119).
11034 * gmalloc.c (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t)
11035 (__malloc_size_t, __malloc_ptrdiff_t):
11036 Remove. All uses removed, replaced by the definiens if needed,
11037 since we can assume C89 or better now.
11038 Include <stdint.h>, for PTRDIFF_MAX, uintptr_t.
11039 (protect_malloc_state, align, get_contiguous_space)
11040 (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
11041 (malloc_atfork_handler_child, malloc_enable_thread)
11042 (malloc_initialize_1, __malloc_initialize, morecore_nolock)
11043 (_malloc_internal_nolock, _malloc_internal, malloc, _malloc)
11044 (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree)
11045 (special_realloc, _realloc_internal_nolock, _realloc_internal)
11046 (realloc, calloc, __default_morecore, memalign, valloc, checkhdr)
11047 (freehook, mallochook, reallochook, mabort, mcheck, mprobe):
11048 Define using prototypes, not old style.
11049 (align, _malloc_internal_nolock, _free_internal_nolock, memalign):
11050 Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long.
11051 (align): Don't assume that signed integer overflow wraps around.
11052 Omit unused local var.
11053 (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock)
11054 (_free_internal_nolock, memalign, mallochook, reallochook):
11055 Omit no-longer-needed casts.
11056 (valloc): Use getpagesize, not __getpagesize.
11057 (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit.
11058 (struct hdr): The 'magic' member is now size_t, not unsigned long.
11059
11060 * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed.
11061
11062 2012-04-22 Michael Albinus <michael.albinus@gmx.de>
11063
11064 Move functions from C to Lisp. Make non-blocking method calls
11065 the default. Implement further D-Bus standard interfaces.
11066
11067 * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare.
11068 (QCdbus_request_name_allow_replacement)
11069 (QCdbus_request_name_replace_existing)
11070 (QCdbus_request_name_do_not_queue)
11071 (QCdbus_request_name_reply_primary_owner)
11072 (QCdbus_request_name_reply_in_queue)
11073 (QCdbus_request_name_reply_exists)
11074 (QCdbus_request_name_reply_already_owner): Move to dbus.el.
11075 (QCdbus_registered_serial, QCdbus_registered_method)
11076 (QCdbus_registered_signal): New Lisp objects.
11077 (XD_DEBUG_MESSAGE): Use sizeof.
11078 (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING)
11079 (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT)
11080 (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH)
11081 (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros.
11082 (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL.
11083 (xd_signature, xd_append_arg): Allow float for integer types.
11084 (xd_get_connection_references): New function.
11085 (xd_get_connection_address): Rename from xd_initialize.
11086 Return cached address.
11087 (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS.
11088 (xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp
11089 level.
11090 (Fdbus_init_bus): New optional arg PRIVATE. Cache address.
11091 Return number of refcounts.
11092 (Fdbus_get_unique_name): Make stronger parameter check.
11093 (Fdbus_message_internal): New defun.
11094 (Fdbus_call_method, Fdbus_call_method_asynchronously)
11095 (Fdbus_method_return_internal, Fdbus_method_error_internal)
11096 (Fdbus_send_signal, Fdbus_register_service)
11097 (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el.
11098 (xd_read_message_1): Obey new structure of Vdbus_registered_objects.
11099 (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses.
11100 (Vdbus_compiled_version, Vdbus_runtime_version)
11101 (Vdbus_message_type_invalid, Vdbus_message_type_method_call)
11102 (Vdbus_message_type_method_return, Vdbus_message_type_error)
11103 (Vdbus_message_type_signal): New defvars.
11104 (Vdbus_registered_buses, Vdbus_registered_objects_table):
11105 Adapt docstring.
11106
11107 2012-04-22 Paul Eggert <eggert@cs.ucla.edu>
11108
11109 Fix GC_MALLOC_CHECK debugging output on 64-bit hosts.
11110 * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]:
11111 Do not assume ptrdiff_t is the same width as 'int'.
11112
11113 * alloc.c: Handle unusual debugging option combinations.
11114 (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK,
11115 since the two debugging options are incompatible.
11116 (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS
11117 is defined.
11118 (mem_init, mem_insert, mem_insert_fixup):
11119 Define if GC_MARK_STACK || GC_MALLOC_CHECK.
11120 (NEED_MEM_INSERT): Remove; no longer needed.
11121
11122 2012-04-22 Leo Liu <sdl.web@gmail.com>
11123
11124 * sysdep.c (list_system_processes): Support Darwin (Bug#5725).
11125
11126 2012-04-22 Paul Eggert <eggert@cs.ucla.edu>
11127
11128 * sysdep.c [__FreeBSD__]: Minor cleanups.
11129 (list_system_processes, system_process_attributes) [__FreeBSD__]:
11130 Use Emacs indenting style more consistently. Avoid some casts.
11131 Use 'double' consistently rather than mixing 'float' and 'double'.
11132
11133 2012-04-21 Eduard Wiebe <usenet@pusto.de>
11134
11135 * sysdep.c (list_system_processes, system_process_attributes):
11136 Add implementation for FreeBSD (Bug#5243).
11137
11138 2012-04-21 Andreas Schwab <schwab@linux-m68k.org>
11139
11140 * lisp.mk (lisp): Update.
11141
11142 2012-04-20 Paul Eggert <eggert@cs.ucla.edu>
11143
11144 * keyboard.c (process_pending_signals): Define only if SYNC_INPUT.
11145 It is never used otherwise.
11146
11147 2012-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
11148
11149 * print.c (print_preprocess): Only check print_depth if print-circle
11150 is nil.
11151 (print_object): Check for cycles even when print-circle is nil and
11152 print-gensym is t, but only check print_depth if print-circle is nil.
11153
11154 2012-04-20 Chong Yidong <cyd@gnu.org>
11155
11156 * process.c (wait_reading_process_output): If EIO occurs on a pty,
11157 set the status to "failed" and ensure that sentinel is run.
11158
11159 2012-04-20 Glenn Morris <rgm@gnu.org>
11160
11161 * process.c (Fset_process_inherit_coding_system_flag)
11162 (Fset_process_query_on_exit_flag): Doc fix (mention return value).
11163 (Fmake_network_process, Fmake_serial_process): Doc fix.
11164
11165 2012-04-20 Eli Zaretskii <eliz@gnu.org>
11166
11167 * xdisp.c (string_buffer_position_lim): Limit starting position to
11168 BEGV.
11169 (set_cursor_from_row): If called for a mode-line or header-line
11170 row, return zero immediately.
11171 (try_cursor_movement): If inside continuation line, don't back up
11172 farther than the first row after the header line, if any.
11173 Don't consider the header-line row as "partially visible", even if
11174 MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261)
11175
11176 2012-04-20 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
11177
11178 * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n"
11179 (bug#11238).
11180
11181 2012-04-20 Teodor Zlatanov <tzz@lifelogs.com>
11182 2012-04-18 Paul Eggert <eggert@cs.ucla.edu>
11183
11184 configure: new option --enable-gcc-warnings (Bug#11207)
11185 * Makefile.in (C_WARNINGS_SWITCH): Remove.
11186 (WARN_CFLAGS, WERROR_CFLAGS): New macros.
11187 (ALL_CFLAGS): Use new macros rather than old.
11188 * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904.
11189 * regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore
11190 -Wunused-but-set-variable, -Wunused-function, -Wunused-macros,
11191 -Wunused-result, -Wunused-variable. This should go away once
11192 the Emacs and Gnulib regex code is merged.
11193 (xmalloc, xrealloc): Now static.
11194
11195 2012-04-17 Paul Eggert <eggert@cs.ucla.edu>
11196
11197 * dired.c (Fsystem_groups): Remove unused local.
11198
11199 2012-04-17 Glenn Morris <rgm@gnu.org>
11200
11201 * dired.c (Fsystem_users): Doc fix.
11202
11203 2012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
11204
11205 * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900)
11206 (syms_of_dired): Add them.
11207
11208 2012-04-16 Paul Eggert <eggert@cs.ucla.edu>
11209
11210 Fix minor alloc.c problems found by static checking.
11211 * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]:
11212 New extern decls, to avoid calling undeclared functions.
11213 (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT)
11214 && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined
11215 GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used.
11216 (NEED_MEM_INSERT): New macro.
11217 (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused.
11218 Remove one incorrect comment and fix another.
11219
11220 Fix minor ralloc.c problems found by static checking.
11221 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
11222 * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
11223 (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
11224 (r_alloc_sbrk): Now static.
11225
11226 Improve ralloc.c interface checking.
11227 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
11228 * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
11229 (r_alloc_free) [REL_ALLOC]: Move decls from here ...
11230 * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
11231 [REL_ALLOC]: ... to here, to check interface.
11232 * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
11233 Remove decls. This fixes an "It stinks!".
11234
11235 * alloc.c (which_symbols): Fix alignment issue / type clash.
11236
11237 2012-04-15 Andreas Schwab <schwab@linux-m68k.org>
11238
11239 * lisp.h (struct Lisp_Symbol): Remove explicit padding.
11240 (struct Lisp_Misc_Any): Likewise.
11241 (struct Lisp_Free): Likewise.
11242 * alloc.c (union aligned_Lisp_Symbol): Define.
11243 (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
11244 aligned_Lisp_Symbol instead of struct Lisp_Symbol.
11245 (union aligned_Lisp_Misc): Define.
11246 (MARKER_BLOCK_SIZE, struct marker_block): Use union
11247 aligned_Lisp_Misc instead of union Lisp_Misc.
11248 (Fmake_symbol, allocate_misc, gc_sweep): Adjust.
11249
11250 2012-04-14 Paul Eggert <eggert@cs.ucla.edu>
11251
11252 Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
11253 * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
11254 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
11255 * s/netbsd.h, s/sol2-6.h:
11256 Remove definition of GC_MARK_STACK, since the default now works.
11257 * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
11258 Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
11259 no longer the default.
11260 * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
11261
11262 2012-04-14 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
11263
11264 * lread.c (lisp_file_lexically_bound_p):
11265 Fix hang at ";-*-\n" (bug#11238).
11266
11267 2012-04-14 Eli Zaretskii <eliz@gnu.org>
11268
11269 * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
11270 "unchanged" if its end.pos is beyond ZV. (Bug#11199)
11271
11272 2012-04-14 Jan Djärv <jan.h.d@swipnet.se>
11273
11274 * nsterm.m (constrainFrameRect): Always constrain when there is only
11275 one screen (Bug#10962).
11276
11277 2012-04-13 Ken Brown <kbrown@cornell.edu>
11278
11279 * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor.
11280
11281 2012-04-13 Reuben Thomas <rrt@sc3d.org>
11282
11283 * indent.c (Fmove_to_column): Change interactive spec (Bug#739).
11284
11285 2012-04-11 Daniel Colascione <dancol@dancol.org>
11286
11287 * s/cygwin.h: The vfork the #define in cygwin.h was protecting
11288 against is gone. It's better to use vfork now so that when Cygwin
11289 gains a new, working vfork, we use it automatically (bug#10398).
11290
11291 2012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
11292
11293 * window.c (save_window_save): Obey window-point-insertion-type.
11294
11295 2012-04-11 Glenn Morris <rgm@gnu.org>
11296
11297 * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM.
11298
11299 2012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
11300
11301 * alloc.c (lisp_align_malloc): Remove unneeded prototype.
11302
11303 2012-04-10 Jason S. Cornez <jcornez@ravenpack.com> (tiny change)
11304
11305 * keyboard.c: Override inhibit-quit after the third C-g (bug#6585).
11306 (force_quit_count): New var.
11307 (handle_interrupt): Use it.
11308
11309 2012-04-10 Juanma Barranquero <lekktu@gmail.com>
11310
11311 * w32.c (w32_delayed_load): Record the full path of the library
11312 being loaded (bug#10424).
11313
11314 2012-04-09 Glenn Morris <rgm@gnu.org>
11315
11316 * doc.c (Fsnarf_documentation): Check variables, functions are bound,
11317 not just in the obarray, before snarfing them. (Bug#11036)
11318
11319 * Makefile.in ($(leimdir)/leim-list.el):
11320 Pass EMACS rather than BUILT_EMACS.
11321
11322 2012-04-09 Teodor Zlatanov <tzz@lifelogs.com>
11323
11324 * process.c (make_process):
11325 * process.h: Add integer `gnutls_handshakes_tried' member to
11326 process struct.
11327
11328 * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit.
11329 Add convenience `GNUTLS_LOG2i' macro.
11330
11331 * gnutls.c (gnutls_log_function2i): Convenience log function.
11332 (emacs_gnutls_read): Use new log functions,
11333 `gnutls_handshakes_tried' process member, and
11334 `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake
11335 attempts per process (connection).
11336
11337 2012-04-09 Chong Yidong <cyd@gnu.org>
11338
11339 * eval.c (Fuser_variable_p, user_variable_p_eh)
11340 (lisp_indirect_variable): Functions deleted.
11341 (Fdefvar): Caller changed.
11342
11343 * callint.c (Finteractive, Fcall_interactively):
11344 * minibuf.c (Fread_variable): Callers changed.
11345
11346 2012-04-09 Eli Zaretskii <eliz@gnu.org>
11347
11348 * xdisp.c (set_cursor_from_row): If the display string appears in
11349 the buffer at position that is closer to point than the position
11350 after the display string, display the cursor on the first glyph of
11351 the display string. Fixes cursor display when a 'display' text
11352 property immediately follows invisible text. (Bug#11094)
11353
11354 2012-04-09 Paul Eggert <eggert@cs.ucla.edu>
11355
11356 composite.c: use 'double' consistently
11357 * composite.c (get_composition_id): Use 'double' consistently
11358 instead of converting 'float' to 'double' and vice versa; this is
11359 easier to understand and avoids a GCC warning.
11360
11361 2012-04-09 Glenn Morris <rgm@gnu.org>
11362
11363 * Makefile.in: Generate leim-list with bootstrap-emacs, in
11364 preparation for dumping it with emacs. (Bug#4789)
11365 (leimdir): New variable.
11366 ($(leimdir)/leim-list.el): New rule.
11367 (emacs$(EXEEXT)): Depend on leim-list.el.
11368
11369 * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821)
11370 (Fget_buffer_create): Don't call Qucs_set_table_for_input.
11371 (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input.
11372
11373 2012-04-08 Andreas Schwab <schwab@linux-m68k.org>
11374
11375 * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure
11376 proper alignment.
11377
11378 2012-04-07 Juanma Barranquero <lekktu@gmail.com>
11379
11380 * xml.c (init_libxml2_functions) [WINDOWSNT]:
11381 Remove unused local variable.
11382
11383 2012-04-07 Paul Eggert <eggert@cs.ucla.edu>
11384
11385 Avoid unnecessary pointer scanning in garbage collection (Bug#10780).
11386 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro.
11387 (mark_memory): Mark Lisp_Objects only if pointers might hide in
11388 objects, as mark_maybe_pointer will catch them otherwise.
11389 (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed.
11390 * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise.
11391
11392 2012-04-07 Paul Eggert <eggert@cs.ucla.edu>
11393
11394 Fix typo that broke non-Windows builds.
11395 * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'.
11396
11397 2012-04-07 Eli Zaretskii <eliz@gnu.org>
11398
11399 Support building on MS-Windows with libxml2.
11400
11401 * makefile.w32-in (OBJ2): Add xml.$(O).
11402 (GLOBAL_SOURCES): Add xml.c.
11403 ($(BLD)/xml.$(O)): New dependency list.
11404
11405 * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros.
11406 (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement)
11407 (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion)
11408 [!WINDOWSNT]: New macros.
11409 (init_libxml2_functions, libxml2_loaded_p): New functions.
11410 (parse_region): Call fn_xmlCheckVersion instead of using the macro
11411 LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros.
11412 (xml_cleanup_parser): New function, export for fn_xmlCleanupParser.
11413 Calls xmlCleanupParser only if libxml2 was loaded (or statically
11414 linked in).
11415 (Flibxml_parse_html_region, Flibxml_parse_xml_region):
11416 Call init_libxml2_functions before calling libxml2 functions.
11417 (syms_of_xml) <Qlibxml2_dll>: DEFSYM it.
11418
11419 * emacs.c: Don't include libxml/parser.h.
11420 (shut_down_emacs): Call xml_cleanup_parser, instead of calling
11421 xmlCleanupParser directly.
11422
11423 * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser.
11424
11425 2012-04-07 Eli Zaretskii <eliz@gnu.org>
11426
11427 * indent.c (Fvertical_motion): If there is a display string at
11428 point, use it.vpos to compute how many lines to backtrack after
11429 move_it_to point. (Bug#11133)
11430
11431 2012-04-06 Eli Zaretskii <eliz@gnu.org>
11432
11433 * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR):
11434 * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments
11435 about subtle differences between FETCH_CHAR* and STRING_CHAR*
11436 macros related to unification of CJK characters. For the details,
11437 see the discussion following the message here:
11438 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14.
11439
11440 2012-04-04 Chong Yidong <cyd@gnu.org>
11441
11442 * keyboard.c (Vdelayed_warnings_list): Doc fix.
11443
11444 2012-04-01 Eli Zaretskii <eliz@gnu.org>
11445
11446 * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA
11447 instead of alloca. (Bug#11138)
11448
11449 2012-04-01 Andreas Schwab <schwab@linux-m68k.org>
11450
11451 * w32menu.c (is_simple_dialog): Properly check lisp types.
11452 (Bug#11141)
11453
11454 2012-03-31 Eli Zaretskii <eliz@gnu.org>
11455
11456 * xdisp.c (move_it_by_lines): When DVPOS is positive, and the
11457 position we get to after a call to move_it_to fails the
11458 IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position
11459 only if we wind up in a string from display property. (Bug#11063)
11460
11461 * window.c (Fdelete_other_windows_internal): Invalidate the row
11462 and column information about mouse highlight, so that redisplay
11463 restores it after reallocating the glyph matrices. (Bug#7464)
11464
11465 * xdisp.c (set_cursor_from_row): If `cursor' property on a display
11466 string comes from a `display' text property, use the buffer
11467 position of that property as if we actually saw that position in
11468 the row's glyphs.
11469 (move_it_by_lines): Remove the assertion that
11470 "it->current_x == 0 && it->hpos == 0" which can be legitimately
11471 violated when there's a before-string at the beginning of a line.
11472 (Bug#11063)
11473
11474 2012-03-30 Eli Zaretskii <eliz@gnu.org>
11475
11476 * xdisp.c (append_space_for_newline): If the default face was
11477 remapped, use the remapped face for the appended newline.
11478 (extend_face_to_end_of_line): Use the remapped default face for
11479 extending the face to the end of the line.
11480 (display_line): Call extend_face_to_end_of_line when the default
11481 face was remapped. (Bug#11068)
11482
11483 2012-03-29 Eli Zaretskii <eliz@gnu.org>
11484
11485 * s/ms-w32.h: Discourage from defining HAVE_GETCWD.
11486
11487 2012-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
11488
11489 * keyboard.c (safe_run_hooks_error): Don't unquote strings.
11490
11491 2012-03-27 Glenn Morris <rgm@gnu.org>
11492
11493 * search.c (Fword_search_backward_lax, Fword_search_forward_lax):
11494 Doc fixes.
11495
11496 2012-03-26 Kenichi Handa <handa@m17n.org>
11497
11498 * dispextern.h (struct glyph): Fix previous change. Change the
11499 bit length of glyphless.ch to 25 (Bug#11082).
11500
11501 2012-03-26 Chong Yidong <cyd@gnu.org>
11502
11503 * keyboard.c (Vselection_inhibit_update_commands): New variable.
11504 (command_loop_1): Use it; inhibit selection update for
11505 handle-select-window too (Bug#8996).
11506
11507 2012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
11508
11509 * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code.
11510
11511 2012-03-25 Kenichi Handa <handa@m17n.org>
11512
11513 * dispextern.h (struct glyph): Change the bit length of
11514 glyphless.ch to 22 to make the member glyphless fit in 32 bits.
11515
11516 2012-03-24 Eli Zaretskii <eliz@gnu.org>
11517
11518 * s/ms-w32.h (tzname): Include time.h before redirecting to
11519 _tzname. Fixes the MSVC build. (Bug#9960)
11520
11521 2012-03-24 Andreas Schwab <schwab@linux-m68k.org>
11522
11523 * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6
11524 characters.
11525
11526 * xterm.c (XTread_socket): Only modify handling_signal if
11527 !SYNC_INPUT. (Bug#11080)
11528
11529 2012-03-23 Eli Zaretskii <eliz@gnu.org>
11530
11531 * bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of
11532 FETCH_MULTIBYTE_CHAR followed by CHAR_BYTES. Prevents crashes
11533 when fetching a multibyte character consumes more bytes than
11534 CHAR_BYTES returns, due to unification of CJK characters in
11535 string_char. (Bug#11073)
11536
11537 2012-03-23 Troels Nielsen <bn.troels@gmail.com> (tiny change)
11538
11539 * process.c (wait_reading_process_output): Handle pty disconnect
11540 by refraining from sending oneself a SIGCHLD (bug#10933).
11541
11542 2012-03-22 Chong Yidong <cyd@gnu.org>
11543
11544 * dispextern.h (struct it): New member string_from_prefix_prop_p.
11545
11546 * xdisp.c (push_prefix_prop): Rename from push_display_prop.
11547 Mark string as coming from a prefix property.
11548 (handle_face_prop): Use default face for prefix strings (Bug#4281).
11549 (pop_it, reseat_1): Save and restore string_from_prefix_prop_p.
11550
11551 2012-03-21 Chong Yidong <cyd@gnu.org>
11552
11553 * xfaces.c (Vface_remapping_alist): Doc fix.
11554
11555 2012-03-20 Eli Zaretskii <eliz@gnu.org>
11556
11557 * w32proc.c (Fw32_set_console_codepage)
11558 (Fw32_set_console_output_codepage, Fw32_get_codepage_charset):
11559 Doc fixes.
11560
11561 2012-03-20 Chong Yidong <cyd@gnu.org>
11562
11563 * dispnew.c (Fredisplay, Vredisplay_preemption_period): Update doc
11564 to reflect default non-nil value of redisplay-dont-pause.
11565
11566 2012-03-19 Kenichi Handa <handa@m17n.org>
11567
11568 * ftfont.c (ftfont_drive_otf): Mask bits of character code to make
11569 it fit in a valid range (Bug#11003).
11570
11571 2012-03-18 Eli Zaretskii <eliz@gnu.org>
11572
11573 * xdisp.c (cursor_row_p): Even if the glyph row ends in a string
11574 that is not from display property, accept the row as a "cursor
11575 row" if one of the string's character has a non-nil `cursor'
11576 property. Fixes cursor positioning when there are newlines in
11577 overlay strings, e.g. in icomplete.el. (Bug#11035)
11578
11579 2012-03-12 Paul Eggert <eggert@cs.ucla.edu>
11580
11581 * buffer.c (compare_overlays): Don't assume args differ (Bug#6830).
11582
11583 2012-03-12 Chong Yidong <cyd@gnu.org>
11584
11585 * eval.c (inhibit_lisp_code): Rename from
11586 inhibit_window_configuration_change_hook; move from window.c.
11587
11588 * xfns.c (unwind_create_frame_1, Fx_create_frame):
11589 * window.c (run_window_configuration_change_hook)
11590 (syms_of_window): Callers changed.
11591
11592 2012-03-11 Chong Yidong <cyd@gnu.org>
11593
11594 * keymap.c (Fkey_description): Doc fix (Bug#9700).
11595
11596 * editfns.c (Fconstrain_to_field): Doc fix (Bug#9452).
11597
11598 2012-03-10 Chong Yidong <cyd@gnu.org>
11599
11600 * frame.c (other_visible_frames): Don't assume the selected frame
11601 is visible (Bug#10955).
11602
11603 2012-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
11604
11605 * buffer.c (compare_overlays): Avoid qsort's instability (bug#6830).
11606
11607 2012-03-08 Jan Djärv <jan.h.d@swipnet.se>
11608
11609 * gtkutil.c (x_wm_set_size_hint): Use one row in call to
11610 FRAME_TEXT_LINES_TO_PIXEL_HEIGHT so base_height is greater than
11611 zero (Bug#10954).
11612
11613 2012-03-03 Glenn Morris <rgm@gnu.org>
11614
11615 * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes.
11616
11617 2012-03-02 Eli Zaretskii <eliz@gnu.org>
11618
11619 * xdisp.c (try_window_reusing_current_matrix): Don't move cursor
11620 position past the first glyph_row that ends at ZV. (Bug#10902)
11621 (redisplay_window, next_element_from_string): Fix typos in
11622 comments.
11623 (redisplay_window): Pass to move_it_vertically the margin in
11624 pixels, not in screen lines.
11625
11626 2012-03-02 Glenn Morris <rgm@gnu.org>
11627
11628 * buffer.c (buffer-list-update-hook): Doc fix.
11629
11630 2012-02-29 Eli Zaretskii <eliz@gnu.org>
11631
11632 * xdisp.c (get_overlay_strings_1): Under bidi redisplay, call
11633 push_it before setting up the iterator for the first overlay
11634 string, even if we have an empty string loaded.
11635 (next_overlay_string): If there's an empty string on the iterator
11636 stack, pop the stack. (Bug#10903)
11637
11638 2012-02-25 Paul Eggert <eggert@cs.ucla.edu>
11639
11640 Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780).
11641 Suggested by Stefan Monnier in
11642 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00692.html>.
11643 * alloc.c (widen_to_Lisp_Object): New static function.
11644 (mark_memory): Also mark Lisp_Objects by fetching pointer words
11645 and widening them to Lisp_Objects. This would work even if
11646 USE_LSB_TAG is defined and wide integers are used, which might
11647 happen in a future version of Emacs.
11648
11649 2012-02-25 Chong Yidong <cyd@gnu.org>
11650
11651 * fileio.c (Ffile_selinux_context, Fset_file_selinux_context):
11652 Doc fix.
11653
11654 * xselect.c (Fx_selection_exists_p): Doc fix.
11655 (x_clipboard_manager_save_all): Print an informative message
11656 before saving to clipboard manager.
11657
11658 2012-02-24 Chong Yidong <cyd@gnu.org>
11659
11660 * keyboard.c (process_special_events): Handle all X selection
11661 requests in kbd_buffer, not just the next one (Bug#8869).
11662
11663 2012-02-23 Chong Yidong <cyd@gnu.org>
11664
11665 * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook
11666 call when setting menu-bar-lines and tool-bar-lines parameters.
11667 (unwind_create_frame_1): New helper function.
11668
11669 * window.c (inhibit_window_configuration_change_hook): New var.
11670 (run_window_configuration_change_hook): Obey it.
11671 (syms_of_window): Initialize it.
11672
11673 2012-02-22 Chong Yidong <cyd@gnu.org>
11674
11675 * xterm.c (x_draw_image_relief): Add missing type check for
11676 Vtool_bar_button_margin (Bug#10743).
11677
11678 2012-02-21 Chong Yidong <cyd@gnu.org>
11679
11680 * fileio.c (Vfile_name_handler_alist): Doc fix.
11681
11682 * buffer.c (Fget_file_buffer): Protect against invalid file
11683 handler return value.
11684
11685 2012-02-20 Paul Eggert <eggert@cs.ucla.edu>
11686
11687 * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long'
11688 when computing $valmask.
11689
11690 Fix crash due to non-contiguous EMACS_INT (Bug#10780).
11691 * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it.
11692 (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0.
11693 It's useless in that case, and it can cause problems on hosts
11694 that allocate halves of EMACS_INT values separately.
11695 Reported by Dan Horák. Diagnosed by Andreas Schwab in
11696 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10780#30>.
11697 * mem-limits.h (EXCEEDS_LISP_PTR): Define to 0 on hosts where
11698 UINTPTR_MAX >> VALBITS == 0. This is required by the above change;
11699 it avoids undefined behavior on hosts where shifting right by more
11700 than the word width has undefined behavior.
11701
11702 2012-02-19 Chong Yidong <cyd@gnu.org>
11703
11704 * fileio.c (Ffile_name_directory, Ffile_name_nondirectory)
11705 (Funhandled_file_name_directory, Ffile_name_as_directory)
11706 (Fdirectory_file_name, Fexpand_file_name)
11707 (Fsubstitute_in_file_name): Protect against invalid file handler
11708 return values (Bug#10845).
11709
11710 2012-02-18 Eli Zaretskii <eliz@gnu.org>
11711
11712 * .gdbinit (pitx): Fix incorrect references to fields of the
11713 iterator stack.
11714
11715 2012-02-17 Chong Yidong <cyd@gnu.org>
11716
11717 * syntax.c (Fscan_lists): Doc fix (Bug#10833).
11718
11719 2012-02-15 Paul Eggert <eggert@cs.ucla.edu>
11720
11721 * image.c (MAX_IMAGE_SIZE): Increase from 6.0 to 10.0; see
11722 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00540.html>.
11723
11724 2012-02-15 Chong Yidong <cyd@gnu.org>
11725
11726 * eval.c (Fdefvar, Fdefconst): Doc fix; note that the variable is
11727 marked as special. Also, starting docstrings with * is obsolete.
11728
11729 2012-02-13 Andreas Schwab <schwab@linux-m68k.org>
11730
11731 * gnutls.c (emacs_gnutls_write): Fix last change.
11732
11733 2012-02-13 Lars Ingebrigtsen <larsi@gnus.org>
11734
11735 * gnutls.c (emacs_gnutls_write): Set errno appropriately for
11736 send_process.
11737
11738 2012-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
11739
11740 * keymap.c (Fsingle_key_description): Handle char ranges.
11741
11742 2012-02-12 Chong Yidong <cyd@gnu.org>
11743
11744 * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here,
11745 as that creates a dangerous corner case.
11746
11747 * window.c (Fdelete_window_internal): Invalidate the mouse
11748 highlight (Bug#9904).
11749
11750 2012-02-12 Glenn Morris <rgm@gnu.org>
11751
11752 * xselect.c (Fx_own_selection_internal)
11753 (Fx_get_selection_internal, Fx_disown_selection_internal)
11754 (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes.
11755 * nsselect.m (Fx_own_selection_internal)
11756 (Fx_disown_selection_internal, Fx_selection_exists_p)
11757 (Fx_selection_owner_p, Fx_get_selection_internal):
11758 Sync docs and argument specs with the xselect.c versions.
11759
11760 2012-02-11 Lars Ingebrigtsen <larsi@gnus.org>
11761
11762 * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails.
11763
11764 2012-02-11 Eli Zaretskii <eliz@gnu.org>
11765
11766 * w32select.c (Fx_selection_exists_p): Sync doc string and
11767 argument list with xselect.c. (Bug#10783)
11768
11769 * w16select.c (Fx_selection_exists_p): Sync doc string and
11770 argument list with xselect.c. (Bug#10783)
11771
11772 2012-02-10 Glenn Morris <rgm@gnu.org>
11773
11774 * fns.c (Fsecure_hash): Doc fix.
11775
11776 2012-02-09 Kenichi Handa <handa@m17n.org>
11777
11778 * coding.c (produce_chars): Fix updating of src_end (Bug#10701).
11779
11780 2012-02-07 Chong Yidong <cyd@gnu.org>
11781
11782 * buffer.c (Fbuffer_local_variables)
11783 (buffer_lisp_local_variables): Handle unbound vars correctly;
11784 don't let Qunbound leak into Lisp.
11785
11786 2012-02-07 Glenn Morris <rgm@gnu.org>
11787
11788 * image.c (Fimagemagick_types): Doc fix.
11789
11790 * image.c (imagemagick-render-type): Change it from a lisp object
11791 to an integer. Move the doc here from the lisp manual.
11792 Treat all values not equal to 0 the same.
11793
11794 2012-02-06 Chong Yidong <cyd@gnu.org>
11795
11796 * doc.c (store_function_docstring): Avoid applying docstring of
11797 alias to base function (Bug#2603).
11798
11799 2012-02-04 Andreas Schwab <schwab@linux-m68k.org>
11800
11801 * .gdbinit (pp1, pv1): Remove redundant defines.
11802 (pr): Use pp.
11803
11804 2012-02-04 Chong Yidong <cyd@gnu.org>
11805
11806 * nsterm.m: Declare a global (Bug#10694).
11807
11808 2012-02-04 Eli Zaretskii <eliz@gnu.org>
11809
11810 * w32.c (get_emacs_configuration_options):
11811 Include --enable-checking, if specified, in the return value.
11812
11813 2012-02-04 Martin Rudalics <rudalics@gmx.at>
11814
11815 * dispnew.c (change_frame_size_1): Calculate new_frame_total_cols
11816 after rounding frame sizes. (Bug#9723)
11817
11818 2012-02-04 Eli Zaretskii <eliz@gnu.org>
11819
11820 * keyboard.c (adjust_point_for_property): Don't position point
11821 before BEGV. (Bug#10696)
11822
11823 2012-02-03 Paul Eggert <eggert@cs.ucla.edu>
11824
11825 Handle overflow when computing char display width (Bug#9496).
11826 * character.c (char_width): Return EMACS_INT, not int.
11827 (char_width, c_string_width): Check for overflow when
11828 computing the width; this is possible now that individual
11829 characters can have unbounded width. Problem introduced
11830 by merge from Emacs 23 on 2012-01-19.
11831
11832 2012-02-02 Michael Albinus <michael.albinus@gmx.de>
11833
11834 * dbusbind.c (Fdbus_register_method): Mention the return value
11835 :ignore in the docstring.
11836
11837 2012-02-02 Glenn Morris <rgm@gnu.org>
11838
11839 * callproc.c (Fcall_process, Fcall_process_region): Doc fix.
11840
11841 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
11842 Unconditionally set to t. (Bug#10673)
11843 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
11844 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
11845 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Doc fix.
11846
11847 2012-02-02 Kenichi Handa <handa@m17n.org>
11848
11849 (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is
11850 0, do not call append_composite_glyph.
11851
11852 2012-02-02 Kenichi Handa <handa@m17n.org>
11853
11854 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to
11855 NULL (Bug#6988).
11856 (x_produce_glyphs): If the component of a composition is a null
11857 string, set it->pixel_width to 1 to avoid zero-width glyph.
11858
11859 2012-02-01 Eli Zaretskii <eliz@gnu.org>
11860
11861 * ralloc.c (resize_bloc, r_alloc_sbrk): Don't call memmove if its
11862 first 2 arguments are identical. This makes inserting large
11863 output from a subprocess an order of magnitude faster on
11864 MS-Windows, where all sbrk'ed memory is always contiguous.
11865
11866 2012-01-31 Glenn Morris <rgm@gnu.org>
11867
11868 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
11869 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
11870 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
11871
11872 2012-01-29 Glenn Morris <rgm@gnu.org>
11873
11874 * gnutls.c (syms_of_gnutls): More doc (from etc/NEWS).
11875
11876 2012-01-28 Samuel Thibault <sthibault@debian.org> (tiny change)
11877
11878 * s/gnu.h: Define POSIX_SIGNALS (Bug#10552).
11879
11880 2012-01-28 Chong Yidong <cyd@gnu.org>
11881
11882 * minibuf.c (syms_of_minibuf): Doc fix (Bug#10550).
11883
11884 2012-01-26 Chong Yidong <cyd@gnu.org>
11885
11886 * keyboard.c (Vecho_keystrokes): Document zero value (Bug#10503).
11887
11888 * search.c (Fsearch_forward, Fsearch_backward): Document negative
11889 repeat counts (Bug#10507).
11890
11891 2012-01-26 Glenn Morris <rgm@gnu.org>
11892
11893 * lread.c (syms_of_lread): Doc fix.
11894
11895 2012-01-25 HIROSHI OOTA <nil@mad.dog.cx> (tiny change)
11896
11897 * coding.c (encode_designation_at_bol): Change return value to
11898 EMACS_INT.
11899
11900 2012-01-25 Chong Yidong <cyd@gnu.org>
11901
11902 * eval.c (Fuser_variable_p): Doc fix; mention custom-variable-p.
11903
11904 2012-01-21 Chong Yidong <cyd@gnu.org>
11905
11906 * floatfns.c (Fcopysign): Make the second argument non-optional,
11907 since nil is not allowed anyway.
11908
11909 2012-01-21 Andreas Schwab <schwab@linux-m68k.org>
11910
11911 * process.c (read_process_output): Use p instead of XPROCESS (proc).
11912 (send_process): Likewise.
11913
11914 2012-01-19 Martin Rudalics <rudalics@gmx.at>
11915
11916 * window.c (save_window_save, Fcurrent_window_configuration)
11917 (Vwindow_persistent_parameters): Do not use Qstate.
11918 Rewrite doc-strings.
11919
11920 2012-01-19 Kenichi Handa <handa@m17n.org>
11921
11922 * character.c (char_width): New function.
11923 (Fchar_width, c_string_width, lisp_string_width):
11924 Use char_width (Bug#9496).
11925
11926 2012-01-16 Martin Rudalics <rudalics@gmx.at>
11927
11928 * window.c (Vwindow_persistent_parameters): New variable.
11929 (Fset_window_configuration, save_window_save): Handle persistent
11930 window parameters.
11931
11932 2012-01-14 Eli Zaretskii <eliz@gnu.org>
11933
11934 * w32fns.c (signal_user_input): Don't do a QUIT, to avoid
11935 thrashing the stack of the thread. (Bug#9087)
11936
11937 2012-01-12 Paul Eggert <eggert@cs.ucla.edu>
11938
11939 * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses.
11940
11941 2012-01-11 Eli Zaretskii <eliz@gnu.org>
11942
11943 * xdisp.c (rows_from_pos_range): Handle the case where the
11944 highlight ends on a newline. (Bug#10464)
11945 (mouse_face_from_buffer_pos): Fix off-by-one error in calculating
11946 he end column for display of highlight that ends on a newline
11947 before a R2L line.
11948
11949 2012-01-11 Glenn Morris <rgm@gnu.org>
11950
11951 * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs
11952 from load-path also when installation-directory is nil. (Bug#10208)
11953
11954 2012-01-10 Glenn Morris <rgm@gnu.org>
11955
11956 * emacs.c (syms_of_emacs) <installation-directory>: Doc fix.
11957
11958 * epaths.in (PATH_LOADSEARCH, PATH_EXEC, PATH_DATA, PATH_DOC):
11959 Update template values to be closer to their typical values these days.
11960
11961 2012-01-09 Eli Zaretskii <eliz@gnu.org>
11962
11963 * xdisp.c (rows_from_pos_range): Accept additional argument
11964 DISP_STRING, and accept any glyph in a row whose object is that
11965 string as eligible for mouse highlight. Fixes mouse highlight of
11966 display strings from overlays. (Bug#10464)
11967
11968 2012-01-07 Paul Eggert <eggert@cs.ucla.edu>
11969
11970 emacs: fix an auto-save permissions race condition (Bug#10400)
11971 * fileio.c (auto_saving_dir_umask): New static var.
11972 (Fmake_directory_internal): Use it.
11973 (do_auto_save_make_dir): Set it, instead of invoking chmod after
11974 creating the directory. The old code temporarily assigns
11975 too-generous permissions to the directory.
11976 (do_auto_save_eh): Clear it.
11977 (Fdo_auto_save): Catch all errors, not just file errors, so
11978 that the var is always cleared.
11979
11980 2012-01-07 Eli Zaretskii <eliz@gnu.org>
11981
11982 * search.c (scan_buffer): Pass character positions to
11983 know_region_cache, not byte positions. (Bug#6540)
11984
11985 2012-01-07 LynX <_LynX@bk.ru> (tiny change)
11986
11987 * w32.c (sys_rename): Report EXDEV when rename of a directory
11988 fails because the target is on another logical disk. (Bug#10284)
11989
11990 2012-01-07 David Benjamin <davidben@mit.edu> (tiny change)
11991
11992 * xterm.c (x_embed_request_focus): New function.
11993
11994 * xterm.h: Add prototype.
11995
11996 * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977).
11997
11998 2012-01-05 Glenn Morris <rgm@gnu.org>
11999
12000 * emacs.c (emacs_copyright): Update short copyright year to 2012.
12001
12002 2012-01-01 Eli Zaretskii <eliz@gnu.org>
12003
12004 * gnutls.c (init_gnutls_functions): Load gnutls_check_version.
12005 Load gnutls_transport_set_lowat only if GnuTLS version is below
12006 2.11.1.
12007 (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
12008 GnuTLS versions below 2.11.1.
12009
12010 2011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
12011
12012 * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning
12013 to the doc string advising against its use for altering the way
12014 windows are scrolled.
12015
12016 2011-12-28 Kenichi Handa <handa@m17n.org>
12017
12018 * coding.c (Fdefine_coding_system_internal): Make an utf-8 base
12019 coding-system ASCII compatible only when it does not produce BOM
12020 on encoding (Bug#10383).
12021
12022 2011-12-26 Jan Djärv <jan.h.d@swipnet.se>
12023
12024 * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus
12025 can scroll.
12026 (create_and_show_popup_menu): Always use menu_position_func for
12027 Gtk3 (Bug#10361).
12028
12029 2011-12-24 Andreas Schwab <schwab@linux-m68k.org>
12030
12031 * callint.c (Fcall_interactively): Don't truncate prompt string.
12032
12033 2011-12-23 Eli Zaretskii <eliz@gnu.org>
12034
12035 * xdisp.c (handle_invisible_prop): Handle correctly an invisible
12036 property that ends at ZV, so that the bidi iteration could be
12037 resumed from there (after widening). (Bug#10360)
12038
12039 2011-12-22 Jan Djärv <jan.h.d@swipnet.se>
12040
12041 * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc.
12042
12043 2011-12-21 Jan Djärv <jan.h.d@swipnet.se>
12044
12045 * nsterm.m (x_free_frame_resources):
12046 Release f->output_data.ns->miniimage.
12047 (ns_index_color): Fix indentation. Do not retain
12048 color_table->colors[i].
12049
12050 * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree
12051 before returning.
12052
12053 * nsfns.m (x_set_background_color): Assign return value from
12054 ns_index_color to face-background instead of NSColor*.
12055 (ns_implicitly_set_icon_type): Fix indentation.
12056 Change assignment in for loop to comparison.
12057
12058 * emacs.c (ns_pool): New variable.
12059 (main): Assign ns_pool.
12060 (Fkill_emacs): Call ns_release_autorelease_pool.
12061
12062 * nsfont.m (ns_spec_to_descriptor): Fix indentation,
12063 autorelease fdesc, release fdAttrs and tdict.
12064 (ns_get_covering_families): Release charset.
12065 (ns_findfonts): Release NSFontDescriptor created with new.
12066 (ns_uni_to_glyphs): Fix indentation.
12067 (setString): Release attrStr before assigning new value.
12068
12069 2011-12-18 Jan Djärv <jan.h.d@swipnet.se>
12070
12071 * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5
12072 and NS_IMPL_COCOA.
12073 (trackingNotification): Surround with ifdef NS_IMPL_COCOA.
12074 (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA.
12075
12076 2011-12-18 David Reitter <reitter@cmu.edu>
12077
12078 * nsterm.m (ns_term_init): Subscribe for notifications
12079 NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification
12080 to method trackingNotification in EmacsMenu.
12081
12082 * nsmenu.m (trackingMenu): New variable.
12083 (trackingNotification): New method (from Aquamacs).
12084 (menuNeedsUpdate): Expand comment and return if trackingMenu is 0,
12085 from Aquamacs (Bug#7030).
12086
12087 2011-12-18 Jan Djärv <jan.h.d@swipnet.se>
12088
12089 * nsselect.m (CUT_BUFFER_SUPPORT): Remove define.
12090 (symbol_to_nsstring): Fix indentation.
12091 (ns_symbol_to_pb): New function.
12092 (Fns_get_selection_internal): Rename from Fns_get_cut_buffer_internal.
12093 (Fns_rotate_cut_buffers_internal): Remove.
12094 (Fns_store_selection_internal): Rename from
12095 Fns_store_cut_buffer_internal.
12096 (ns_get_foreign_selection, Fx_own_selection_internal)
12097 (Fx_disown_selection_internal, Fx_selection_exists_p)
12098 (Fns_get_selection_internal, Fns_store_selection_internal):
12099 Use ns_symbol_to_pb and check if return value is nil.
12100 (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr
12101 Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal
12102 renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal
12103 renamed to Sns_store_selection_internal.
12104 (ns_handle_selection_request): Move code to Fx_own_selection_internal
12105 and remove this function.
12106 (ns_handle_selection_clear): Remove, never used.
12107 (Fx_own_selection_internal): Move code from ns_handle_selection_request
12108 here.
12109
12110 2011-12-17 Ken Brown <kbrown@cornell.edu>
12111
12112 * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or
12113 GID is unknown (Bug#10257).
12114
12115 2011-12-17 Paul Eggert <eggert@cs.ucla.edu>
12116
12117 * s/gnu-linux.h: Fix mark_memory typo (Bug#10286).
12118 (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory,
12119 which caused a build failure on GNU/Linux IA-64. This problem was
12120 introduced by my 2011-10-07 patch.
12121
12122 2011-12-15 Juri Linkov <juri@jurta.org>
12123
12124 * image.c (imagemagick_error): New function. (Bug#10112)
12125 (imagemagick_load_image): Comment out `MagickSetResolution' call.
12126 Use `imagemagick_error' where ImageMagick functions return
12127 `MagickFalse'.
12128 (Fimagemagick_types): Add `Fnreverse' to return the list in the
12129 proper order.
12130
12131 2011-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
12132
12133 * xftfont.c (xftfont_draw): Use the font metrics of s->font to
12134 fill background (Bug#8992).
12135
12136 2011-12-13 Martin Rudalics <rudalics@gmx.at>
12137
12138 * window.c (Vwindow_combination_resize)
12139 (Vwindow_combination_limit): Use t instead of non-nil in
12140 doc-strings.
12141 (Vrecenter_redisplay): Add first sentence of doc-string on
12142 separate line.
12143 (Frecenter): Fix doc-string typo.
12144
12145 2011-12-11 Kenichi Handa <handa@m17n.org>
12146
12147 * coding.c (Funencodable_char_position): Pay attention to the
12148 buffer text relocation (Bug#9389).
12149
12150 2011-12-10 Jan Djärv <jan.h.d@swipnet.se>
12151
12152 * xterm.c (x_term_init): Move call to gdk_window_add_filter before
12153 gtk_init (Bug#10100).
12154
12155 2011-12-10 Eli Zaretskii <eliz@gnu.org>
12156
12157 * xdisp.c (RECORD_MAX_MIN_POS): Use IT->cmp_it.charpos only if
12158 IT->string is nil. (Bug#10263)
12159
12160 2011-12-10 Jan Djärv <jan.h.d@swipnet.se>
12161
12162 * nsterm.h (x_free_frame_resources): Declare.
12163
12164 * nsfns.m (ns_get_defaults_value): New function (Bug#10103).
12165 (Fns_get_resource, x_get_string_resource): Call ns_get_defaults_value.
12166
12167 * nsterm.h (ns_get_defaults_value): Declare.
12168
12169 * nsterm.m (ns_default): Call ns_get_defaults_value.
12170
12171 2011-12-09 Eli Zaretskii <eliz@gnu.org>
12172
12173 * xdisp.c (try_scrolling): Don't set scroll_down_p if dy is zero.
12174 (Bug#10170)
12175
12176 2011-12-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
12177
12178 * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case
12179 that where the value of an _OBJC_* symbol points to is in the .bss
12180 section (Bug#10240).
12181
12182 2011-12-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
12183
12184 * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end)
12185 after the loop to call ccl_driver at least once (Bug#8619).
12186
12187 2011-12-08 Kenichi Handa <handa@m17n.org>
12188
12189 * ftfont.c (get_adstyle_property): Fix previous change
12190 (Bug#10233).
12191
12192 2011-12-07 Juanma Barranquero <lekktu@gmail.com>
12193
12194 * w32.c (init_environment): If no_site_lisp, remove site-lisp
12195 dirs from the default value of EMACSLOADPATH (bug#10208).
12196
12197 2011-12-07 Glenn Morris <rgm@gnu.org>
12198
12199 * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in
12200 installation and source directories as well. (Bug#10208)
12201
12202 2011-12-06 Chong Yidong <cyd@gnu.org>
12203
12204 * minibuf.c (Fread_from_minibuffer): Doc fix (Bug#10228).
12205
12206 2011-12-06 Glenn Morris <rgm@gnu.org>
12207
12208 * process.c (start_process_unwind): Treat any pid <= 0, except -2,
12209 as an error, not just -1. (Bug#10217)
12210
12211 2011-12-05 Chong Yidong <cyd@gnu.org>
12212
12213 * keyboard.c (process_special_events): New function.
12214 (swallow_events, Finput_pending_p): Use it (Bug#10195).
12215
12216 2011-12-05 Paul Eggert <eggert@cs.ucla.edu>
12217
12218 * coding.c (encode_designation_at_bol): Don't use uninitialized
12219 local variable (Bug#9318).
12220
12221 2011-12-05 Kenichi Handa <handa@m17n.org>
12222
12223 * ftfont.c (get_adstyle_property): If the font is not BDF nor PCF,
12224 return Qnil (Bug#8046, Bug#10193).
12225
12226 2011-12-05 Kenichi Handa <handa@m17n.org>
12227
12228 * coding.c (encode_designation_at_bol): New args charbuf_end and
12229 dst. Return the number of produced bytes. Callers changed.
12230 (coding_set_source): Return how many bytes coding->source was
12231 relocated.
12232 (coding_set_destination): Return how many bytes
12233 coding->destination was relocated.
12234 (CODING_DECODE_CHAR, CODING_ENCODE_CHAR, CODING_CHAR_CHARSET)
12235 (CODING_CHAR_CHARSET_P): Adjust for the avove changes.
12236
12237 2011-12-05 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
12238
12239 * coding.c (CODING_CHAR_CHARSET_P): New macro.
12240 (encode_coding_emacs_mule, encode_coding_iso_2022): Use the above
12241 macro (Bug#9318).
12242
12243 2011-12-05 Andreas Schwab <schwab@linux-m68k.org>
12244
12245 The following changes are to fix Bug#9318.
12246
12247 * coding.c (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET): New macros.
12248 (encode_coding_emacs_mule, ENCODE_ISO_CHARACTER)
12249 (encode_coding_iso_2022, encode_coding_sjis)
12250 (encode_coding_big5, encode_coding_charset): Use the above macros.
12251
12252 2011-12-05 Juanma Barranquero <lekktu@gmail.com>
12253
12254 * lisp.h (process_quit_flag): Fix external declaration.
12255
12256 2011-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
12257
12258 Don't macro-inline non-performance-critical code.
12259 * eval.c (process_quit_flag): New function.
12260 * lisp.h (QUIT): Use it.
12261
12262 2011-12-04 Jan Djärv <jan.h.d@swipnet.se>
12263
12264 * nsfns.m (get_geometry_from_preferences): New function.
12265 (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103).
12266
12267 2011-12-04 Andreas Schwab <schwab@linux-m68k.org>
12268
12269 * emacs.c (Qkill_emacs): Define.
12270 (syms_of_emacs): Initialize it.
12271 * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set
12272 Qquit_flag to `kill-emacs' instead.
12273 (quit_throw_to_read_char): Add parameter `from_signal'.
12274 All callers changed. Call Fkill_emacs if requested and safe.
12275 * lisp.h (QUIT): Call Fkill_emacs if requested.
12276
12277 2011-12-03 Jan Djärv <jan.h.d@swipnet.se>
12278
12279 * widget.c (update_wm_hints): Return if wmshell is null.
12280 (widget_update_wm_size_hints): New function.
12281
12282 * widget.h (widget_update_wm_size_hints): Declare.
12283
12284 * xterm.c (x_wm_set_size_hint): If USE_X_TOOLKIT, call
12285 widget_update_wm_size_hints (Bug#10104).
12286
12287 2011-12-03 Eli Zaretskii <eliz@gnu.org>
12288
12289 * xdisp.c (handle_invisible_prop): If the invisible text ends just
12290 before a newline, prepare the bidi iterator for consuming the
12291 newline, and keep the current paragraph direction. (Bug#10183)
12292 (redisplay_window): Don't let `margin' become negative. (Bug#10192)
12293
12294 2011-12-02 Juri Linkov <juri@jurta.org>
12295
12296 * search.c (Fword_search_regexp): New Lisp function created from
12297 `wordify'. Change type of arg `lax' from `int' to `Lisp_Object'.
12298 (Fword_search_backward, Fword_search_forward)
12299 (Fword_search_backward_lax, Fword_search_forward_lax):
12300 Use `Fword_search_regexp' instead of `wordify'. Doc fix.
12301 (syms_of_search): Define `Sword_search_regexp'. (Bug#10145)
12302
12303 2011-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
12304
12305 * fileio.c (Finsert_file_contents): Move after-change-function call
12306 to before the "handled:" label, since all "goto handled" appear in
12307 cases where the *-change-functions have already been properly called
12308 (bug#10117).
12309
12310 2011-12-01 Andreas Schwab <schwab@linux-m68k.org>
12311
12312 * keyboard.c (interrupt_signal): Don't call kill-emacs when
12313 waiting for input. (Bug#10169)
12314
12315 2011-11-30 Eli Zaretskii <eliz@gnu.org>
12316
12317 * dispnew.c (adjust_glyph_matrix): Remove the assertion that
12318 verifies glyph row's hash code--we have just reallocated the
12319 glyphs, so their contents can be complete garbage. (Bug#10164)
12320
12321 2011-11-30 Juanma Barranquero <lekktu@gmail.com>
12322
12323 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Add missing check.
12324
12325 2011-11-30 Eli Zaretskii <eliz@gnu.org>
12326
12327 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's
12328 attributes are tested _before_ calling verify_row_hash, to protect
12329 against GCC re-ordering of the tests. (Bug#10164)
12330
12331 2011-11-29 Jan Djärv <jan.h.d@swipnet.se>
12332
12333 * xterm.h (struct x_output): net_wm_state_hidden_seen is new.
12334
12335 * xterm.c (handle_one_xevent): Only set async_visible and friends
12336 if net_wm_state_hidden_seen is non-zero (Bug#10002)
12337 (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
12338 _NET_WM_STATE_HIDDEN is in NET_WM_STATE.
12339
12340 2011-11-28 Paul Eggert <eggert@cs.ucla.edu>
12341
12342 Remove GCPRO-related macros that exist only to avoid shadowing locals.
12343 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR)
12344 (GCPRO6_VAR, UNGCPRO_VAR): Remove. See
12345 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
12346 All uses changed to use GCPRO1 etc.
12347 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO):
12348 Revert to old implementation (i.e., before 2011-03-11).
12349
12350 2011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
12351
12352 * dispnew.c (scrolling_window): Truncate overlaps in copy destination
12353 of scroll runs so as to avoid assigning disabled bogus rows and
12354 unnecessary graphics copy operations.
12355
12356 2011-11-27 Eli Zaretskii <eliz@gnu.org>
12357
12358 * s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define.
12359 (snprintf) [_MSC_VER]: Redirect to _snprintf.
12360 (strtoll) [_MSC_VER]: Redirect to _strtoi64.
12361 (malloc, free, realloc, calloc): Redirect to e_* only when
12362 compiling Emacs.
12363
12364 * lisp.h (GCTYPEBITS): Move before first use.
12365 (ALIGN_GCTYPEBITS) [_MSC_VER]: Define.
12366 (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in
12367 this macro definition.
12368
12369 * s/ms-w32.h (tzname): Redirect to _tzname for all values of
12370 _MSC_VER.
12371
12372 2011-11-27 Jan Djärv <jan.h.d@swipnet.se>
12373
12374 * gtkutil.c (xg_create_frame_widgets):
12375 Call gtk_window_set_has_resize_grip (FALSE) if that function is
12376 present with Gtk+ 2.0.
12377
12378 2011-11-26 Paul Eggert <eggert@cs.ucla.edu>
12379
12380 * fileio.c (Finsert_file_contents): Undo previous change; see
12381 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
12382
12383 2011-11-26 Paul Eggert <eggert@cs.ucla.edu>
12384
12385 Rename locals to avoid shadowing.
12386 * fileio.c (Finsert_file_contents):
12387 Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing.
12388 * process.c (wait_reading_process_output):
12389 Rename inner 'proc' to 'p' to avoid shadowing.
12390 Indent for consistency with usual Emacs style.
12391
12392 2011-11-25 Eli Zaretskii <eliz@gnu.org>
12393
12394 * xdisp.c (redisplay_window): If cursor row is not fully visible
12395 after recentering, and scroll-conservatively is set to a large
12396 number, scroll window by a few more lines to make the cursor fully
12397 visible and out of scroll-margin. (Bug#10105)
12398 (start_display): Don't move to the next line if the display should
12399 start at a newline that is part of a display vector or an overlay
12400 string. (Bug#10119)
12401
12402 2011-11-24 Juri Linkov <juri@jurta.org>
12403
12404 * image.c (imagemagick_load_image): Move `MagickSetResolution' down
12405 after the `MagickPingImage' call. (Bug#10112)
12406
12407 2011-11-23 Chong Yidong <cyd@gnu.org>
12408
12409 * window.c (Fcoordinates_in_window_p): Accept only live windows.
12410
12411 2011-11-23 Martin Rudalics <rudalics@gmx.at>
12412
12413 * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before
12414 making another buffer current. (Bug#10114)
12415
12416 2011-11-23 Glenn Morris <rgm@gnu.org>
12417
12418 * font.c (font_find_for_lface) [HAVE_NS]: Ignore case. (Bug#2526)
12419
12420 2011-11-23 Chong Yidong <cyd@gnu.org>
12421
12422 * xdisp.c (compute_stop_pos): Check validity of end_charpos before
12423 using it (Bug#5984).
12424
12425 2011-11-22 Eli Zaretskii <eliz@gnu.org>
12426
12427 * dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode-
12428 and header-lines, as they don't have one computed for them.
12429 (Bug#10098)
12430
12431 * .gdbinit (prow): Make displayed values more self-explaining.
12432 Add row's hash code.
12433
12434 2011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
12435
12436 * process.c (wait_reading_process_output): Fix asynchrounous
12437 GnuTLS socket handling on some versions of the GnuTLS library.
12438 (wait_reading_process_output): Add comment and URL.
12439
12440 2011-11-21 Jan Djärv <jan.h.d@swipnet.se>
12441
12442 * xterm.c (x_clear_frame): Reinstate the XClearWindow call.
12443
12444 2011-11-21 Chong Yidong <cyd@gnu.org>
12445
12446 * window.c (Fnext_window, Fprevious_window): Doc fix.
12447
12448 2011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
12449
12450 * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup.
12451
12452 2011-11-20 Juanma Barranquero <lekktu@gmail.com>
12453
12454 * nsfont.m (syms_of_nsfont) <ns-reg-to-script>: Fix typo.
12455
12456 2011-11-20 Martin Rudalics <rudalics@gmx.at>
12457
12458 * window.c (Fset_window_combination_limit): Rename argument
12459 STATUS to LIMIT.
12460 (Vwindow_combination_limit): Remove "status" from doc-string.
12461
12462 2011-11-20 Andreas Schwab <schwab@linux-m68k.org>
12463
12464 * m/ibms390.h: Remove.
12465 * m/ibms390x.h: Don't include "ibms390.h".
12466
12467 2011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
12468
12469 * fileio.c (Finsert_file_contents): Add missing gcpro1 variable.
12470 Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
12471
12472 2011-11-20 Juanma Barranquero <lekktu@gmail.com>
12473
12474 * casetab.c (Fset_case_table):
12475 * charset.c (Fcharset_after): Fix typos.
12476
12477 2011-11-20 Paul Eggert <eggert@cs.ucla.edu>
12478
12479 Standardize on VIRT_ADDR_VARIES behavior (Bug#10042).
12480 Otherwise, valgrind does not work on some platforms.
12481 Problem reported by Andreas Schwab in
12482 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
12483 * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
12484 is set, removing the need for VIRT_ADDRESS_VARIES.
12485 (PURE_P): Use a more-efficient implementation that needs just one
12486 comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
12487 number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
12488 to 4 (xorl, subq, cmpq, setbe).
12489 * alloc.c (pure): Always extern now, since that's the
12490 VIRT_ADDR_VARIES behavior.
12491 (PURE_POINTER_P): Use a single comparison, not two, for
12492 consistency with the new puresize.h.
12493 * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
12494 * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
12495 Remove VIRT_ADDR_VARIES no longer needed.
12496
12497 2011-11-19 Eli Zaretskii <eliz@gnu.org>
12498
12499 * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
12500 (erase_phys_cursor, update_window_cursor, show_mouse_face)
12501 (cursor_in_mouse_face_p): If the cursor position is out of bounds,
12502 behave as if the cursor position were at the window margin.
12503
12504 * window.c (get_phys_cursor_glyph): If the window is hscrolled,
12505 and the cursor position is out of bounds, behave as if the cursor
12506 position were at the window margin. (Bug#10075)
12507
12508 2011-11-18 Chong Yidong <cyd@gnu.org>
12509
12510 * window.c (Fwindow_combination_limit): Make first argument
12511 non-optional, since it is meaningless for live windows like the
12512 selected window.
12513
12514 2011-11-18 Dmitry Antipov <dmantipov@yandex.ru>
12515
12516 * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs.
12517
12518 2011-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
12519
12520 * intervals.c: Fix grafting over the whole buffer (bug#10071).
12521 (graft_intervals_into_buffer): Simplify.
12522
12523 2011-11-18 Eli Zaretskii <eliz@gnu.org>
12524
12525 * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
12526 hash values of the two rows.
12527 (copy_row_except_pointers): Preserve the used[] arrays and the
12528 hash values of the two rows. (Bug#10035)
12529 (add_row_entry): Add xassert to verify that ROW's hash code is valid.
12530
12531 * xdisp.c (row_hash): New function, body extracted from
12532 compute_line_metrics.
12533 (compute_line_metrics): Call row_hash, instead of computing the
12534 hash code inline.
12535
12536 * dispnew.c (verify_row_hash): Call row_hash for computing the
12537 hash code of a row, instead of duplicating code from xdisp.c.
12538
12539 * dispextern.h (row_hash): Add prototype.
12540
12541 2011-11-18 Tassilo Horn <tassilo@member.fsf.org>
12542
12543 * frame.c (delete_frame): Don't delete the terminal when the last
12544 X frame is closed if emacs is built with GTK toolkit.
12545
12546 2011-11-17 Juanma Barranquero <lekktu@gmail.com>
12547
12548 * window.c (syms_of_window) <window-combination-resize>: Fix typo.
12549
12550 2011-11-17 Martin Rudalics <rudalics@gmx.at>
12551
12552 * window.c (Vwindow_splits): Rename to
12553 Vwindow_combination_resize. Suggested by Juri Linkov.
12554 (Fsplit_window_internal): Use Vwindow_combination_resize instead
12555 of Vwindow_splits.
12556
12557 2011-11-16 Juanma Barranquero <lekktu@gmail.com>
12558
12559 * nsfns.m (Fns_font_name):
12560 * window.c (syms_of_window) <window-combination-limit>: Fix typos.
12561
12562 2011-11-16 Martin Rudalics <rudalics@gmx.at>
12563
12564 * window.h (window): Rename slot "nest" to "combination_limit".
12565 * window.c (Fwindow_nest): Rename to Fwindow_combination_limit.
12566 (Fset_window_nest): Rename to Fset_window_combination_limit.
12567 (Vwindow_nest): Rename to Vwindow_combination_limit.
12568 (recombine_windows, make_parent_window, make_window)
12569 (Fsplit_window_internal, saved_window)
12570 (Fset_window_configuration, save_window_save): Rename all
12571 occurrences of window_nest to window_combination_limit.
12572
12573 2011-11-15 Juanma Barranquero <lekktu@gmail.com>
12574
12575 * image.c (imagemagick_load_image): Fix typo.
12576
12577 2011-11-14 Eli Zaretskii <eliz@gnu.org>
12578
12579 * xdisp.c (display_line): Move the call to
12580 highlight_trailing_whitespace before the call to
12581 compute_line_metrics, since the latter needs to see the final
12582 faces of all the glyphs to compute ROW's hash value.
12583 Fixes assertion violations in row_equal_p. (Bug#10035)
12584
12585 2011-11-14 Juanma Barranquero <lekktu@gmail.com>
12586
12587 * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0,
12588 just return (bug#10044).
12589
12590 2011-11-12 Eli Zaretskii <eliz@gnu.org>
12591
12592 * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
12593 with user-defined heap size. Bump the default size of the temacs
12594 heap to 27MB, to avoid memory warning when running temacs.
12595 ($(TEMACS)): Use HEAPSIZE instead of a hardcoded value.
12596
12597 * dispnew.c (scrolling_window): Fix incorrect indices in accessing
12598 current_matrix and desired_matrix. (Bug#9990)
12599 (verify_row_hash) [XASSERTS]: New function.
12600 (adjust_glyph_matrix, row_equal_p): Use it in xassert to verify
12601 that the hash value of glyph rows is correct.
12602
12603 2011-11-12 Martin Rudalics <rudalics@gmx.at>
12604
12605 * window.h (window): Remove splits slot.
12606 * window.c (Fwindow_splits, Fset_window_splits): Remove.
12607 (Fdelete_other_windows_internal, make_parent_window)
12608 (make_window, Fsplit_window_internal, Fdelete_window_internal)
12609 (Fset_window_configuration, save_window_save): Don't deal with
12610 split status of windows.
12611 (saved_window): Remove splits slot.
12612 (Vwindow_splits): Rewrite doc-string.
12613
12614 2011-11-11 Jan Djärv <jan.h.d@swipnet.se>
12615
12616 * xfns.c (unwind_create_frame):
12617 * nsfns.m (unwind_create_frame):
12618 * w32fns.c (unwind_create_frame): Use Fmemq to check if frame is in
12619 Vframe_list (Bug#9999).
12620
12621 2011-11-11 Dmitry Antipov <dmantipov@yandex.ru>
12622
12623 * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext.
12624
12625 2011-11-11 Kenichi Handa <handa@m17n.org>
12626
12627 * callproc.c (Fcall_process): Set the member dst_multibyte of
12628 process_coding.
12629
12630 2011-11-11 Johan Bockgård <bojohan@gnu.org>
12631
12632 * xdisp.c (fill_composite_glyph_string): Always set s->face, to
12633 avoid a crash (bug#9496).
12634
12635 2011-11-09 Chong Yidong <cyd@gnu.org>
12636
12637 * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
12638 (Fwindow_inside_absolute_pixel_edges): Only allow live windows.
12639
12640 2011-11-08 Paul Eggert <eggert@cs.ucla.edu>
12641
12642 * s/gnu.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS (Bug#9926).
12643
12644 2011-11-08 Paul Eggert <eggert@cs.ucla.edu>
12645
12646 Avoid some portability problems by eschewing 'extern inline' functions.
12647 The trivial performance wins aren't worth the portability hassles; see
12648 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>
12649 et seq.
12650 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
12651 (window_box_width, window_box_left, window_box_left_offset)
12652 (window_box_right, window_box_right_offset): Undo previous change,
12653 by removing the "extern"s.
12654 * intervals.c (adjust_intervals_for_insertion)
12655 (adjust_intervals_for_deletion): Undo previous change,
12656 making these static again.
12657 (offset_intervals, temp_set_point_both, temp_set_point)
12658 (copy_intervals_to_string): No longer inline.
12659 * xdisp.c (window_text_bottom_y, window_box_width)
12660 (window_box_height, window_box_left_offset)
12661 (window_box_right_offset, window_box_left, window_box_right)
12662 (window_box): No longer inline.
12663
12664 2011-11-08 Chong Yidong <cyd@gnu.org>
12665
12666 * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix.
12667 (Fwindow_body_height, Fwindow_body_width): Move from Lisp.
12668 Signal an error if not a live window.
12669 (Fwindow_total_width, Fwindow_total_height): Move from Lisp.
12670 (Fwindow_total_size, Fwindow_body_size): Move to Lisp.
12671
12672 2011-11-07 Juanma Barranquero <lekktu@gmail.com>
12673
12674 * lisp.h (syms_of_abbrev): Remove declaration.
12675 Reported by CHENG Gao <chenggao@royau.me>.
12676
12677 2011-11-07 Eli Zaretskii <eliz@gnu.org>
12678
12679 * w32.c (check_windows_init_file): Don't look for term/w32-win.el
12680 if Vpurify_flag is non-nil. Fixes a crash when running w32 build
12681 of temacs in GUI mode.
12682
12683 2011-11-07 Martin Rudalics <rudalics@gmx.at>
12684
12685 * window.h: Declare delete_all_child_windows instead of
12686 delete_all_subwindows.
12687 * window.c (Fwindow_nest, Fset_window_nest)
12688 (Fset_window_new_total, Fset_window_new_normal)
12689 (Fwindow_resize_apply): Don't use term subwindow in doc-strings.
12690 (delete_all_subwindows): Rename to delete_all_child_windows.
12691 (Fdelete_other_windows_internal, Fset_window_configuration):
12692 Call delete_all_child_windows instead of delete_all_subwindows.
12693 * frame.c (delete_frame): Call delete_all_child_windows instead
12694 of delete_all_subwindows.
12695
12696 2011-11-07 Paul Eggert <eggert@cs.ucla.edu>
12697
12698 * alloc.c (DEADP): New macro, for porting to GNU/Hurd (Bug#9926).
12699 This is also needed for porting to any host where GC_MARK_STACK is
12700 not GC_MAKE_GCPROS_NOOPS.
12701 (which_symbols): Use it.
12702
12703 2011-11-07 Kenichi Handa <handa@m17n.org>
12704
12705 * coding.c (coding_set_destination): Check coding->src_pos only
12706 when coding->src_object is a buffer (bug#9910).
12707
12708 * process.c (send_process): Set the member src_multibyte of coding
12709 to 0 (bug#9911) when sending a unibyte text.
12710
12711 * callproc.c (Fcall_process): Set the member src_multibyte of
12712 process_coding to 0 (bug#9912).
12713
12714 2011-11-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
12715
12716 * xmenu.c (cleanup_widget_value_tree): New function.
12717 (xmenu_show, xdialog_show): Use it in record_unwind_protect instead of
12718 calling free_menubar_widget_value_tree directly (Bug#9830).
12719
12720 2011-11-06 Paul Eggert <eggert@cs.ucla.edu>
12721
12722 Fix some portability problems with 'inline'.
12723 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
12724 (window_box_width, window_box_left, window_box_left_offset)
12725 (window_box_right, window_box_right_offset): Declare extern.
12726 Otherwise, these inline functions do not conform to C99 and
12727 are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in
12728 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
12729 * intervals.c (adjust_intervals_for_insertion)
12730 (adjust_intervals_for_deletion): Now extern, because otherwise the
12731 extern inline functions 'offset_intervals' couldn't refer to it.
12732 (static_offset_intervals): Remove.
12733 (offset_intervals): Rewrite using the old contents of
12734 static_offset_intervals. The old version didn't conform to C99
12735 because an extern inline function contained a reference to an
12736 identifier with static linkage.
12737
12738 2011-11-06 Andreas Schwab <schwab@linux-m68k.org>
12739
12740 * keyboard.c (interrupt_signal): Don't call kill-emacs while in
12741 GC.
12742
12743 2011-11-06 Eli Zaretskii <eliz@gnu.org>
12744
12745 * xdisp.c (init_iterator, reseat_to_string): Don't set the
12746 iterator's bidi_p flag if Vpurify_flag is non-nil. (Bug#9963)
12747 (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
12748 return Qleft_to_right.
12749
12750 2011-11-06 Chong Yidong <cyd@gnu.org>
12751
12752 * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window)
12753 (Fminibuffer_window, Fwindow_buffer, Fwindow_splits)
12754 (Fset_window_splits, Fwindow_nest, Fset_window_nest)
12755 (Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size)
12756 (Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line)
12757 (Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars)
12758 (Fwindow_vscroll): Doc fix.
12759 (Fwindow_top_child, Fwindow_left_child): Eliminate a nil default
12760 argument, since it makes no sense to pass a live window and for
12761 consistency with window-child.
12762
12763 2011-11-05 Christoph Scholtes <cschol2112@googlemail.com>
12764
12765 * makefile.w32-in ($(TEMACS), (gl-stamp)): Use $(THISDIR) to
12766 support MSVC.
12767
12768 2011-11-05 Jason Rumney <jasonr@gnu.org>
12769
12770 * w32font.c (font_matches_spec): Filter out non-Japanese kana fonts.
12771 (add_font_entity_to_list): Filter out non-Japanese Shift-JIS
12772 fonts (Bug#6029).
12773 (add_font_entity_to_list): Fix logic errors in mixed boolean and
12774 bitwise arithmetic preventing use of unicode-sip and non-truetype
12775 opentype fonts.
12776
12777 2011-11-05 Eli Zaretskii <eliz@gnu.org>
12778
12779 * s/ms-w32.h (fstat, stat, utime): Move redirections to
12780 "emacs"-only part.
12781
12782 * w32fns.c (x_create_tip_frame, Fx_create_frame): Rearrange
12783 initialization code to keep similarity to xfns.c after changes
12784 from 2011-11-05.
12785
12786 2011-11-05 Jan Djärv <jan.h.d@swipnet.se>
12787
12788 * nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG.
12789 (unwind_create_frame): New function (Bug#9943).
12790 (Fx_create_frame): Restructure code to be more similar to the one in
12791 xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943).
12792 Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943).
12793 Move terminal->reference_count++ just before making the frame official
12794 (Bug#9943).
12795
12796 * nsterm.m (x_free_frame_resources): New function.
12797 (x_destroy_window): Move code to x_free_frame_resources.
12798
12799 * xfns.c (unwind_create_frame): Fix comment.
12800 (Fx_create_frame, x_create_tip_frame):
12801 Move terminal->reference_count++ just before making the frame
12802 official. Move initialization of image_cache_refcount and
12803 dpyinfo_refcount before calling init_frame_faces (Bug#9943).
12804
12805 2011-11-05 Eli Zaretskii <eliz@gnu.org>
12806
12807 Support MSVC build with newer versions of Visual Studio.
12808 * makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as
12809 Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on
12810 nt/gmake.defs.
12811
12812 * lisp.h (ENUM_BF): New macro, for enumerated types in bitfields,
12813 which are not supported by MSVC.
12814 (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay)
12815 (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in
12816 bitfields.
12817 (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated
12818 types in bitfields.
12819 (DEFUN) [_MSC_VER]: Define in a different way for MSVC.
12820
12821 * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
12822
12823 2011-11-05 Fabrice Popineau <fabrice.popineau@supelec.fr> (tiny change)
12824
12825 Support MSVC build with newer versions of Visual Studio.
12826 * w32.c: Don't include w32api.h for MSVC.
12827 (init_environment) [_MSC_VER]: Call sys_access, not _access.
12828
12829 * s/ms-w32.h <sigset_t, ssize_t> [_MSC_VER]: Typedefs for MSVC.
12830 [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h.
12831 (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins.
12832 (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the
12833 e_* cousins.
12834 (alloca) [_MSC_VER]: Define to _alloca.
12835
12836 * lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC.
12837
12838 * regex.c <re_char> [_MSC_VER]: A separate definition for MSVC.
12839
12840 2011-11-04 Eli Zaretskii <eliz@gnu.org>
12841
12842 * xdisp.c (note_mouse_highlight): If either of
12843 previous/next-single-property-change returns nil, treat that as
12844 the beginning or the end of the buffer. (Bug#9955)
12845
12846 2011-11-04 Jan Djärv <jan.h.d@swipnet.se>
12847
12848 * gtkutil.c (xg_make_tool_item): Add callbacks if one of wimage or
12849 label is not null (Bug#9951).
12850 (xg_tool_item_stale_p): Handle the fact that wimage and/or wlbl
12851 may be NULL.
12852
12853 2011-11-04 Eli Zaretskii <eliz@gnu.org>
12854
12855 * window.c (Fwindow_body_size): Mention in the doc string that the
12856 return value is in frame's canonical units. (Bug#9949)
12857
12858 2011-11-03 Eli Zaretskii <eliz@gnu.org>
12859
12860 * xdisp.c (note_mouse_highlight): Initialize `area'. (Bug#9947)
12861
12862 * w32fns.c (unwind_create_frame): If needed, free the glyph
12863 matrices of the partially constructed frame. (Bug#9943)
12864 * xfns.c (unwind_create_frame): Likewise.
12865
12866 2011-11-01 Eli Zaretskii <eliz@gnu.org>
12867
12868 * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment.
12869 Don't stop backward scan on the continuation glyph, even though
12870 its CHARPOS is positive.
12871 (mouse_face_from_buffer_pos, note_mouse_highlight):
12872 Rename cover_string to disp_string.
12873
12874 2011-11-01 Martin Rudalics <rudalics@gmx.at>
12875
12876 * window.c (temp_output_buffer_show): Don't use
12877 Vtemp_buffer_show_specifiers.
12878 (Vtemp_buffer_show_specifiers): Remove unused variable.
12879
12880 2011-10-30 Eli Zaretskii <eliz@gnu.org>
12881
12882 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented
12883 past the beginning of the current glyph matrix.
12884
12885 2011-10-30 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
12886
12887 * xterm.c: Include X11/Xproto.h if HAVE_GTK3.
12888 (x_error_handler): Ignore BadMatch for X_SetInputFocus for
12889 HAVE_GTK3 (Bug#9869).
12890
12891 * gtkutil.c (xg_win_to_widget, xg_event_is_for_menubar): Initialize
12892 type to GDK_NOTHING so valgrind does not complain (Bug#9901).
12893
12894 * xterm.h (x_display_info): Add Xatom_net_wm_state_hidden (Bug#9893).
12895
12896 * xterm.c: Declare x_handle_net_wm_state to return int.
12897 (handle_one_xevent): Check if we are iconified but don't have
12898 _NET_WM_STATE_HIDDEN. If do, treat as deiconify (Bug#9893).
12899 (get_current_wm_state): Return non-zero if not hidden,
12900 check for _NET_WM_STATE_HIDDEN (Bug#9893).
12901 (do_ewmh_fullscreen): Ignore return value from get_current_wm_state.
12902 (x_handle_net_wm_state): Return what get_current_wm_state returns.
12903 (x_term_init): Initialize dpyinfo->Xatom_net_wm_state_hidden.
12904
12905 2011-10-29 Paul Eggert <eggert@cs.ucla.edu>
12906
12907 * alloc.c (which_symbols): Declare EXTERNALLY_VISIBLE,
12908 so that this new function doesn't get optimized away by a
12909 whole-program optimizer. Make the 2nd arg EMACS_INT, not int.
12910
12911 2011-10-29 Andreas Schwab <schwab@linux-m68k.org>
12912
12913 * frame.h (MOUSE_HL_INFO): Remove excess parens.
12914
12915 2011-10-29 Eli Zaretskii <eliz@gnu.org>
12916
12917 Fix the `xbytecode' command.
12918 * .gdbinit (xprintbytestr): New command.
12919 (xwhichsymbols): Rename from `which'; all callers changed.
12920 (xbytecode): Print the byte-code string as well.
12921
12922 2011-10-29 Kim Storm <storm@cua.dk>
12923
12924 * alloc.c (which_symbols): New function.
12925
12926 2011-10-29 Andreas Schwab <schwab@linux-m68k.org>
12927
12928 * minibuf.c (read_minibuf_noninteractive): Allow reading empty
12929 line. (Bug#9903)
12930
12931 2011-10-29 Glenn Morris <rgm@gnu.org>
12932
12933 * process.c (wait_reading_process_output): Revert 2009-08-30 change.
12934 Not clear what it was for, and it causes various bugs. (Bug#9839)
12935
12936 2011-10-28 Eli Zaretskii <eliz@gnu.org>
12937
12938 * xdisp.c (note_mouse_highlight): Initialize `part', to avoid a
12939 possible random value that matches one of those tested as
12940 condition to clear the mouse face.
12941
12942 2011-10-28 Chong Yidong <cyd@gnu.org>
12943
12944 * xdisp.c (note_mouse_highlight): Fix use of uninitialized var.
12945
12946 2011-10-28 Dan Nicolaescu <dann@ics.uci.edu>
12947
12948 * window.c (make_window): Initialize phys_cursor_on_p.
12949
12950 2011-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
12951
12952 * lisp.h (struct Lisp_Symbol): Update comments.
12953
12954 2011-10-28 Juanma Barranquero <lekktu@gmail.com>
12955
12956 * w32font.c (w32_load_unicows_or_gdi32): Add missing return.
12957
12958 2011-10-28 Eli Zaretskii <eliz@gnu.org>
12959
12960 Fix Emacs on Windows 9X (bug#8562). Thanks to oslsachem
12961 <oslsachem@gmail.com> for helping to debug this.
12962
12963 * w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w)
12964 (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w)
12965 (g_b_init_get_glyph_outline_w): New static variables.
12966 (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc)
12967 (GetGlyphOutlineW_Proc): New typedefs.
12968 (w32_load_unicows_or_gdi32, get_outline_metrics_w)
12969 (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font):
12970 New functions.
12971 (w32font_open_internal, compute_metrics):
12972 Call get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w
12973 instead of calling the "wide" APIs directly.
12974
12975 * emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font.
12976
12977 * w32.h (syms_of_w32font): Add prototype.
12978
12979 2011-10-27 Juanma Barranquero <lekktu@gmail.com>
12980
12981 * window.c (Fframe_root_window, Fframe_first_window, Fwindow_end)
12982 (Fframe_selected_window, Ftemp_output_buffer_show, Fnext_window)
12983 (Fdelete_window_internal, Fwindow_parameters): Fix typos in docstrings.
12984 (Fmove_to_window_line): Doc fix.
12985
12986 2011-10-27 Chong Yidong <cyd@gnu.org>
12987
12988 * process.c (make_process): Set gnutls_state to NULL.
12989
12990 * gnutls.c (emacs_gnutls_deinit): Deinit the gnutls_state if it is
12991 non-NULL, regardless of GNUTLS_INITSTAGE.
12992 (Fgnutls_boot): Cleanups. Call emacs_gnutls_deinit if we signal
12993 an error. Set process slots as soon as we allocate them.
12994
12995 * gnutls.h (GNUTLS_LOG, GNUTLS_LOG2): Fix macros.
12996
12997 2011-10-27 Chong Yidong <cyd@gnu.org>
12998
12999 * gnutls.c (emacs_gnutls_deinit): New function.
13000 Deallocate credentials structures as well as calling gnutls_deinit.
13001 (Fgnutls_deinit, Fgnutls_boot): Use it.
13002
13003 * process.c (make_process): Initialize GnuTLS credentials to NULL.
13004 (deactivate_process): Call emacs_gnutls_deinit.
13005
13006 2011-10-27 Juanma Barranquero <lekktu@gmail.com>
13007
13008 * image.c (x_create_x_image_and_pixmap):
13009 * w32.c (sys_rename, w32_delayed_load):
13010 * w32font.c (fill_in_logfont):
13011 * w32reg.c (x_get_string_resource): Silence compiler warnings.
13012
13013 2011-10-26 Juanma Barranquero <lekktu@gmail.com>
13014
13015 * w32fns.c (w32_default_color_map): New function,
13016 extracted from Fw32_default_color_map.
13017 (Fw32_default_color_map, Fx_open_connection): Use it. (Bug#9785)
13018
13019 2011-10-25 Paul Eggert <eggert@cs.ucla.edu>
13020
13021 * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2).
13022
13023 2011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
13024
13025 * keyboard.c (test_undefined): New function (bug#9751).
13026 (read_key_sequence): Use it to detect when a key is bound to `undefined'.
13027
13028 2011-10-25 Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
13029
13030 * sysdep.c (init_sys_modes): Fix the check for the controlling
13031 terminal (Bug#6649).
13032
13033 2011-10-20 Eli Zaretskii <eliz@gnu.org>
13034
13035 * dispextern.h (struct bidi_it): New member next_en_type.
13036
13037 * bidi.c (bidi_line_init): Initialize the next_en_type member.
13038 (bidi_resolve_explicit_1): When next_en_pos is valid for the
13039 current character, check also for next_en_type being WEAK_EN.
13040 (bidi_resolve_weak): Don't enter the expensive loop if the current
13041 position is before next_en_pos. Record the bidi type of the first
13042 non-ET, non-BN character we find, in addition to its position.
13043 (bidi_level_of_next_char): Invalidate next_en_type when
13044 next_en_pos is over-stepped.
13045
13046 2011-10-20 Paul Eggert <eggert@cs.ucla.edu>
13047
13048 Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794)
13049 * editfns.c: Rewrite current-time-zone so that it invokes
13050 the equivalent of (format-time-string "%Z") to get the time zone name.
13051 This fixes a bug when the time zone name contains characters that
13052 need converting from the system time locale to Emacs internal format.
13053 This fixes a shortcoming that I introduced in my 1999-10-19 patch:
13054 that patch fixed format-time-string to do the conversion, but
13055 I forgot to fix current-time-zone.
13056 (format_time_string): New function, containing most of
13057 what Fformat_time_string used to contain.
13058 (Fformat_time_string): Rewrite in terms of format_time_string.
13059 This doesn't change this function's behavior.
13060 (current-time-zone): Rewrite to use format_time_string.
13061 This fixes the bug reported by Michael Schierl in
13062 <http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00334.html>.
13063 Jason Rumney's 2007-06-07 change worked around this bug, but
13064 didn't fix it.
13065 * systime.h (tzname, timezone): Remove no-longer-used declarations.
13066
13067 2011-10-19 Eli Zaretskii <eliz@gnu.org>
13068
13069 * xdisp.c (start_display): If the character at POS is displayed
13070 via a display vector, reset IT->current.dpvec_index to zero.
13071 (try_window_reusing_current_matrix): If a line ends in a display
13072 vector or the next line starts in a display vector, continue
13073 redrawing the window even though the character position of
13074 start_row was reached.
13075 (Bug#9771, part 2)
13076
13077 2011-10-18 Chong Yidong <cyd@gnu.org>
13078
13079 * xdisp.c (get_next_display_element): Handle U+2010 and U+2011
13080 with nobreak-char-display too.
13081
13082 2011-10-18 Eli Zaretskii <eliz@gnu.org>
13083
13084 Fix part 3 of bug#9771.
13085 * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1.
13086 (bidi_resolve_neutral): Don't enter the expensive loop looking for
13087 non-neutral characters if the current character is a paragraph
13088 separator (a.k.a. Newline). This avoids running the same
13089 expensive loop twice, once when we consume the preceding newline
13090 and the other time when the line actually needs to be displayed.
13091 Avoid the loop when we see neutrals on the base embedding level
13092 following a character whose directionality is the same as the
13093 paragraph's. This avoids running the expensive loop when a line
13094 ends in a long sequence of neutrals, like control characters.
13095 Add assertion against STRONG_AL type. Slightly rearrange code
13096 that determines the type of a neutral given the first non-neutral
13097 that follows it.
13098 (bidi_level_of_next_char): Set next_en_pos to zero when
13099 invalidating its info.
13100
13101 2011-10-17 Eli Zaretskii <eliz@gnu.org>
13102
13103 * xdisp.c (push_display_prop): Determine whether to record string
13104 or buffer position by IT->string, not by IT->method. Allow
13105 GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4)
13106 (move_it_vertically_backward): Don't look for character position
13107 immediately after the newline when in a continuation line.
13108 (Bug#9771, part 1)
13109
13110 2011-10-15 Martin Rudalics <rudalics@gmx.at>
13111
13112 * window.c (coordinates_in_window): Rewrite and delabelize
13113 vertical border check. (Bug#5357) (Bug#9618)
13114
13115 2011-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
13116
13117 * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained
13118 errors in XSetWindowBorder (bug#9310).
13119
13120 2011-10-13 Dmitry Antipov <dmantipov@yandex.ru>
13121
13122 * editfns.c (Fset_time_zone_rule): Replace free with xfree to
13123 avoid crash when xmalloc overrun checking is enabled.
13124
13125 2011-10-13 Eli Zaretskii <eliz@gnu.org>
13126
13127 * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
13128 itb.paragraph_dir to NEUTRAL_DIR. Fixes an occasional incorrect
13129 cursor motion with <left> and <right> arrow keys.
13130
13131 * bidi.c (bidi_init_it): Don't initialize paragraph_dir here, as
13132 some callers set that themselves.
13133
13134 2011-10-12 Eli Zaretskii <eliz@gnu.org>
13135
13136 * xdisp.c (find_row_edges): Handle the case where ROW comes from a
13137 display string and the previous row comes from the same string and
13138 is empty. (Bug#9739) (Bug#9738)
13139
13140 2011-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
13141
13142 * doc.c (get_doc_string): Encode file name (bug#9735).
13143
13144 2011-10-12 Eli Zaretskii <eliz@gnu.org>
13145
13146 * bidi.c (bidi_level_of_next_char):
13147 * xdisp.c (get_visually_first_element): Remove old incorrect
13148 comments regarding the Unicode Line Separator character.
13149
13150 * bidi.c (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR.
13151
13152 2011-10-12 Dmitry Antipov <dmantipov@yandex.ru>
13153
13154 * alloc.c (Fgc_status): Do not access beyond zombies array
13155 boundary if nzombies > MAX_ZOMBIES.
13156 * alloc.c (dump_zombies): Add missing format specifier.
13157
13158 2011-10-12 Paul Eggert <eggert@cs.ucla.edu>
13159
13160 * xdisp.c (set_cursor_from_row): Simplify conditionals,
13161 to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow.
13162
13163 * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff.
13164 Some packages use them to denote characters with modifiers.
13165
13166 2011-10-11 Andreas Schwab <schwab@linux-m68k.org>
13167
13168 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR)
13169 (GCPRO5_VAR, GCPRO6_VAR, UNGCPRO_VAR): Add whitespace to avoid
13170 matching a pp-number. Rename parameter var to var1.
13171
13172 2011-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
13173
13174 * minibuf.c (Finternal_complete_buffer): Fix last change (bug#9709).
13175
13176 2011-10-08 Glenn Morris <rgm@gnu.org>
13177
13178 * callint.c (Fcall_interactively): Give a more explicit error for the
13179 'c' case with a non-character input. (Bug#8479)
13180
13181 2011-10-08 Eli Zaretskii <eliz@gnu.org>
13182
13183 * xdisp.c (hscroll_window_tree): Support hscroll in right-to-left
13184 lines.
13185 (set_cursor_from_row): Fix cursor positioning in mixed L2R+R2L
13186 lines that are hscrolled on the left.
13187
13188 * dispnew.c (buffer_posn_from_coords): Account for a possible
13189 presence of header-line. (Bug#4426)
13190
13191 2011-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
13192
13193 * buffer.c (syms_of_buffer) <enable-multibyte-characters>:
13194 Don't advertise functionality which we discourage or doesn't work.
13195
13196 2011-10-07 Paul Eggert <eggert@cs.ucla.edu>
13197
13198 * alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__
13199 or sizeof. __alignof__ gives the wrong answer on Fedora x86-64
13200 with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int;
13201 this makes Emacs dump core during garbage collection on rare
13202 occasions. sizeof is obviously inferior to offsetof here, so
13203 stick with offsetof.
13204 (GC_POINTER_ALIGNMENT): New macro.
13205 (mark_memory): Omit 3rd (offset) arg; caller changed.
13206 Don't assume EMACS_INT alignment is the same as pointer alignment.
13207
13208 2011-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
13209
13210 * keyboard.c (read_key_sequence_remapped): New var.
13211 (read_key_sequence): Compute remapping in the right buffer.
13212 (command_loop_1): Use read_key_sequence's remapping directly.
13213
13214 2011-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
13215
13216 * dired.c (file_name_completion): Don't expand file name.
13217 (Ffile_name_completion, Ffile_name_all_completions): Expand file name
13218 before checking file name handler.
13219
13220 * minibuf.c (Finternal_complete_buffer): Only show internal buffers if
13221 they've been requested explicitly (bug#9591).
13222
13223 2011-10-01 Andreas Schwab <schwab@linux-m68k.org>
13224
13225 * keymap.c (Fsingle_key_description): Use make_specified_string
13226 instead of build_string to build string from push_key_description.
13227 (Bug#5193)
13228
13229 2011-09-30 Paul Eggert <eggert@cs.ucla.edu>
13230
13231 * buffer.h (struct buffer): Use time_t, not int, for a time stamp.
13232 This fixes a Y2038 bug on 64-bit hosts.
13233 * buffer.c (reset_buffer):
13234 * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved)
13235 (Fclear_buffer_auto_save_failure):
13236 Use 0, not -1, to represent an unset failure time, since time_t
13237 might not be signed.
13238
13239 Remove dependency on glibc malloc internals.
13240 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
13241 Move back here from lisp.h, but with their new implementations.
13242 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
13243 (XMALLOC_OVERRUN_SIZE_SIZE): Move these new lisp.h macros here.
13244 * charset.c (charset_table_init): New static var.
13245 (syms_of_charset): Use it instead of xmalloc. This removes a
13246 dependency on glibc malloc internals. See Eli Zaretskii's comment in
13247 <http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00815.html>.
13248 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
13249 Move back to alloc.c.
13250 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
13251 (XMALLOC_OVERRUN_SIZE_SIZE): Move to alloc.c.
13252
13253 2011-09-30 Jan Djärv <jan.h.d@swipnet.se>
13254
13255 * nsterm.m (windowDidResize): Call x_set_window_size only when
13256 ns_in_resize is true. Otherwise set pixelwidth/height and
13257 call change_frame_size (Bug#9628).
13258
13259 2011-09-30 Paul Eggert <eggert@cs.ucla.edu>
13260
13261 Port --enable-checking=all to Fedora 14 x86-64.
13262 * charset.c (syms_of_charset): Also account for glibc malloc's
13263 internal overhead when calculating the initial malloc maximum.
13264
13265 Port --enable-checking=all to Fedora 14 x86.
13266 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
13267 Move to lisp.h.
13268 (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc)
13269 (overrun_check_realloc, overrun_check_free):
13270 Use XMALLOC_OVERRUN_SIZE_SIZE, not sizeof (size_t).
13271 That way, xmalloc returns a properly-aligned pointer even if
13272 XMALLOC_OVERRUN_CHECK is defined. The old debugging code happened
13273 to align OK on typical 64-bit hosts, but not on Fedora 14 x86.
13274 * charset.c (syms_of_charset): Take XMALLOC_OVERRUN_CHECK_OVERHEAD
13275 into account when calculating the initial malloc maximum.
13276 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
13277 Move here from alloc.c, so that charset.c can use it too.
13278 Properly align; the old code wasn't right for common 32-bit hosts
13279 when configured with --enable-checking=all.
13280 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
13281 (XMALLOC_OVERRUN_SIZE_SIZE): New macros.
13282
13283 2011-09-29 Eli Zaretskii <eliz@gnu.org>
13284
13285 * sysdep.c (snprintf) [!EOVERFLOW]: If EOVERFLOW is not defined,
13286 use EDOM.
13287
13288 2011-09-28 Eli Zaretskii <eliz@gnu.org>
13289
13290 * xdisp.c (compute_display_string_end): If there's no display
13291 string at CHARPOS, return -1.
13292
13293 * bidi.c (bidi_fetch_char): When compute_display_string_end
13294 returns a negative value, treat the character as a normal
13295 character not covered by a display string. (Bug#9624)
13296
13297 2011-09-28 Juanma Barranquero <lekktu@gmail.com>
13298
13299 * lread.c (Fread_from_string): Fix typo in docstring.
13300
13301 2011-09-27 Eli Zaretskii <eliz@gnu.org>
13302
13303 * xdisp.c (handle_invisible_prop): If invisible text ends on a
13304 newline, reseat the iterator instead of bidi-iterating there one
13305 character at a time. (Bug#9610)
13306 (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past
13307 TO_CHARPOS if the bidi iterator is at base embedding level.
13308
13309 2011-09-27 Andreas Schwab <schwab@linux-m68k.org>
13310
13311 * lread.c (readevalloop): Use correct code for NBSP.
13312 (read1): Likewise. (Bug#9608)
13313
13314 2011-09-25 Michael Albinus <michael.albinus@gmx.de>
13315
13316 * dbusbind.c (Fdbus_register_signal): When service is not
13317 registered, use nil in Vdbus_registered_objects_table. (Bug#9581)
13318
13319 2011-09-25 Glenn Morris <rgm@gnu.org>
13320
13321 * buffer.c (truncate-lines): Doc fix.
13322
13323 2011-09-24 Chong Yidong <cyd@stupidchicken.com>
13324
13325 * window.c (Fwindow_prev_buffers, Fset_window_prev_buffers)
13326 (Fset_window_next_buffers): Doc fix.
13327
13328 2011-09-24 Glenn Morris <rgm@gnu.org>
13329
13330 * minibuf.c (read_minibuf): Disable line truncation. (Bug#5715)
13331
13332 2011-09-24 Paul Eggert <eggert@cs.ucla.edu>
13333
13334 Fix minor problems found by static checking.
13335 * xdisp.c (string_from_display_spec): Don't assume vecsize fits in int.
13336 * indent.c (Fvertical_motion): Fix == vs = typo.
13337
13338 2011-09-24 Eli Zaretskii <eliz@gnu.org>
13339
13340 * dispnew.c (syms_of_display) <redisplay-dont-pause>:
13341 Default value is now t. Doc fix.
13342
13343 * indent.c (Fvertical_motion): Compute and apply the overshoot
13344 logic when moving up, not only when moving down. Fix the
13345 confusing name and values of the it_overshoot_expected variable;
13346 logic changes accordingly. (Bug#9254) (Bug#9549)
13347
13348 * xdisp.c (pos_visible_p): Produce correct pixel coordinates when
13349 CHARPOS is covered by a display string which includes newlines.
13350 (move_it_vertically_backward): Avoid inflooping when START_CHARPOS
13351 is covered by a display string with embedded newlines.
13352
13353 2011-09-24 Michael Albinus <michael.albinus@gmx.de>
13354
13355 * dbusbind.c (Fdbus_register_signal): Add match rule to
13356 Vdbus_registered_objects_table. (Bug#9581)
13357 (Fdbus_register_method, Vdbus_registered_objects_table):
13358 Fix docstring.
13359
13360 2011-09-24 Jim Meyering <meyering@redhat.com>
13361
13362 do not ignore write error for any output size
13363 The previous change was incomplete.
13364 While it makes emacs --batch detect the vast majority of stdout
13365 write failures, errors were still ignored whenever the output size is
13366 k * (BUFSIZ+1) - 4. E.g., on a system with BUFSIZ of 4096,
13367 $ emacs --batch --eval '(print (format "%4093d" 0))' > /dev/full \
13368 && echo FAIL: ignored write error
13369 FAIL: ignored write error
13370 $ emacs --batch --eval '(print (format "%20481d" 0))' > /dev/full \
13371 && echo FAIL: ignored write error
13372 FAIL: ignored write error
13373 * emacs.c (Fkill_emacs): Also test ferror. (Bug#9574)
13374
13375 2011-09-23 Andreas Schwab <schwab@linux-m68k.org>
13376
13377 * emacs.c (Fkill_emacs): In noninteractive mode exit
13378 non-successfully if a write error occurred on stdout. (Bug#9574)
13379
13380 2011-09-21 Eli Zaretskii <eliz@gnu.org>
13381
13382 * xdisp.c (pop_it): Allow it->object that is a cons cell to pass
13383 the xassert test.
13384
13385 * dispextern.h (struct it): Update the comment documenting what
13386 can it->OBJECT be.
13387
13388 2011-09-20 Eli Zaretskii <eliz@gnu.org>
13389
13390 * xdisp.c (set_cursor_from_row): If the row ends in a newline from
13391 a display string, extend search for cursor position to end of row.
13392 (find_row_edges): If the row ends in a newline from a display
13393 string, increment its MATRIX_ROW_END_CHARPOS by one. (Bug#9549)
13394 Handle the case of a display string with multiple newlines.
13395 (Fcurrent_bidi_paragraph_direction): Fix search for previous
13396 non-empty line. Fixes confusing cursor motion with arrow keys at
13397 the beginning of a line that starts with whitespace.
13398
13399 2011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
13400
13401 * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is
13402 (bug#9493).
13403
13404 2011-09-18 Chong Yidong <cyd@stupidchicken.com>
13405
13406 * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as
13407 boolean (Bug#9154).
13408
13409 2011-09-18 Eli Zaretskii <eliz@gnu.org>
13410
13411 * xdisp.c (display_line): Record maximum and minimum buffer
13412 positions even if no glyphs were produced (e.g., by a zero-width
13413 stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record
13414 buffer positions that will be removed from the glyph row because
13415 they don't fit.
13416 (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the
13417 column is beyond frame width: don't subtract 1 "pixel" when
13418 computing width of the stretch.
13419 (reseat_at_next_visible_line_start): Undo the change made on
13420 2011-09-17 that saved paragraph information and restored it after
13421 the call to `reseat'. (Bug#9545)
13422
13423 2011-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
13424
13425 * xdisp.c (expose_window): Save original value of phys_cursor_on_p
13426 and turn window cursor on if cleared (Bug#9415).
13427
13428 2011-09-18 Andreas Schwab <schwab@linux-m68k.org>
13429
13430 * search.c (boyer_moore): Take unibyte characters from pattern
13431 literally. (Bug#9458)
13432
13433 2011-09-18 Eli Zaretskii <eliz@gnu.org>
13434
13435 * xdisp.c (reseat_at_next_visible_line_start): Fix last change.
13436
13437 2011-09-18 Paul Eggert <eggert@cs.ucla.edu>
13438
13439 Fix minor problem found by static checking.
13440 * xdisp.c (reseat_at_next_visible_line_start): Mark locals as
13441 initialized, to pacify gcc -Wuninitialized.
13442
13443 * fileio.c: Report proper errno when syscall falls.
13444 (Finsert_file_contents): Save and restore errno,
13445 so that report_file_error outputs the correct diagnostic.
13446 (Fwrite_region) [CLASH_DETECTION]: Likewise.
13447
13448 2011-09-18 Eli Zaretskii <eliz@gnu.org>
13449
13450 * .gdbinit (pgx): Fix references to fields of `struct glyph'.
13451
13452 2011-09-17 Eli Zaretskii <eliz@gnu.org>
13453
13454 * xdisp.c (produce_stretch_glyph): Another fix for changes made on
13455 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530)
13456
13457 2011-09-17 Eli Zaretskii <eliz@gnu.org>
13458
13459 * xdisp.c (reseat_at_next_visible_line_start): Keep information
13460 about the current paragraph and restore it after the call to reseat.
13461
13462 * bidi.c (MAX_PARAGRAPH_SEARCH): New macro.
13463 (bidi_find_paragraph_start): Search back for paragraph beginning
13464 at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE.
13465 (bidi_move_to_visually_next): Only trigger paragraph-related
13466 computations when the last character is a newline or at EOB, not
13467 just any NEUTRAL_B. (Bug#9470)
13468
13469 * xdisp.c (set_cursor_from_row): Don't invoke special treatment of
13470 truncated lines if point is covered by a display string. (Bug#9524)
13471
13472 2011-09-16 Paul Eggert <eggert@cs.ucla.edu>
13473
13474 * xselect.c: Relax test for outgoing X longs (Bug#9498).
13475 (cons_to_x_long): New function.
13476 (lisp_data_to_selection_data): Use it. Correct the test for
13477 short-versus-long data; it was negated. Break out of vector
13478 loop, for efficiency, when a long datum is discovered.
13479
13480 2011-09-16 Stefan Monnier <monnier@iro.umontreal.ca>
13481
13482 * eval.c (Fquote): Document its non-consing behavior (bug#9482).
13483
13484 2011-09-16 Eli Zaretskii <eliz@gnu.org>
13485
13486 * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see
13487 GCC PR/17406) by declaring this function with external scope.
13488
13489 2011-09-15 Paul Eggert <eggert@cs.ucla.edu>
13490
13491 * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514).
13492 Don't mishandle (length (format "%%")) and (format "%4000s%%" "").
13493
13494 2011-09-15 Andreas Schwab <schwab@linux-m68k.org>
13495
13496 * editfns.c (Fformat): Correctly handle text properties on "%%".
13497
13498 2011-09-15 Eli Zaretskii <eliz@gnu.org>
13499
13500 * xterm.c (x_draw_composite_glyph_string_foreground):
13501 * w32term.c (x_draw_composite_glyph_string_foreground):
13502 * term.c (encode_terminal_code):
13503 * composite.c (composition_update_it, get_composition_id):
13504 * xdisp.c (get_next_display_element)
13505 (fill_composite_glyph_string): Add comments about special meaning
13506 of TAB characters in a composition.
13507
13508 2011-09-15 Paul Eggert <eggert@cs.ucla.edu>
13509
13510 * editfns.c (Fformat): Fix off-by-1 bug for "%%b" (Bug#9514).
13511 This occurs when processing a multibyte format.
13512 Problem reported by Wolfgang Jenker.
13513
13514 2011-09-15 Johan Bockgård <bojohan@gnu.org>
13515
13516 * xdisp.c (try_cursor_movement): Only check for exact match if
13517 cursor hpos found by set_cursor_from_row is valid. (Bug#9495)
13518
13519 2011-09-14 Paul Eggert <eggert@cs.ucla.edu>
13520
13521 Remove unused external symbols.
13522 * dispextern.h (calc_pixel_width_or_height): Remove decl.
13523 * xdisp.c (calc_pixel_width_or_height): Now static.
13524 * doprnt.c (exprintf) [! (HAVE_X_WINDOWS && USE_X_TOOLKIT)]: Remove.
13525 * indent.c (check_display_width):
13526 * w32term.c: Fix comment to match code.
13527 * xterm.c, xterm.h (x_catching_errors): Remove.
13528
13529 2011-09-14 Paul Eggert <eggert@cs.ucla.edu>
13530
13531 * xselect.c: Use signed conversions more consistently (Bug#9498).
13532 (selection_data_to_lisp_data): Assume incoming selection data are
13533 signed integers, not unsigned. This is to be consistent with
13534 outgoing selection data, which was modified to use signed integers
13535 in as part of the fix to Bug#9196 in response to Jan D.'s comment
13536 in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9196#32> that X11
13537 expects long, not unsigned long.
13538
13539 2011-09-14 Eli Zaretskii <eliz@gnu.org>
13540
13541 * xdisp.c (try_window_reusing_current_matrix): Fix incorrect
13542 computation of loop end. Reported by Johan Bockgård
13543 <bojohan@gnu.org>.
13544
13545 2011-09-13 Chong Yidong <cyd@stupidchicken.com>
13546
13547 * frame.c (Fother_visible_frames_p): Function deleted.
13548
13549 2011-09-12 Eli Zaretskii <eliz@gnu.org>
13550
13551 * indent.c (compute_motion): Process display vector front to back
13552 rather than the other way around. (Bug#2496)
13553
13554 2011-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
13555
13556 * fileio.c (Finsert_file_contents): Don't assume beg_offset is 0.
13557
13558 2011-09-11 Chong Yidong <cyd@stupidchicken.com>
13559
13560 * minibuf.c (Fread_from_minibuffer): Doc fix.
13561
13562 2011-09-11 Eli Zaretskii <eliz@gnu.org>
13563
13564 * xdisp.c (produce_stretch_glyph): Fix a typo made in changes from
13565 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9475)
13566
13567 2011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
13568
13569 * fileio.c (Fvisited_file_modtime): Document `(-1 65535)' as a
13570 value for non-existent files.
13571
13572 2011-09-11 Eli Zaretskii <eliz@gnu.org>
13573
13574 * fileio.c (Finsert_file_contents): If the file cannot be opened,
13575 set its "size" to -1. This will set the modtime_size field of
13576 the corresponding buffer to -1, which is what
13577 verify-visited-file-modtime expects for files that do not exist.
13578 (Bug#9139)
13579
13580 2011-09-11 Paul Eggert <eggert@cs.ucla.edu>
13581
13582 * keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls
13583 here ...
13584 * lisp.h: ... from here. push_key_description is no longer
13585 defined in keyboard.c, so its declaration should not be in
13586 lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE
13587 logically belongs with push_key_description.
13588
13589 2011-09-10 Paul Eggert <eggert@cs.ucla.edu>
13590
13591 * buffer.h: Include <sys/types.h> instead of <time.h>.
13592 Otherwise, off_t wasn't defined on FreeBSD 9.0-BETA2 i386.
13593 Problem reported by Herbert J. Skuhra.
13594
13595 2011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
13596
13597 * xml.c (parse_region): Make the parsing work for
13598 non-comment-starting XML files again (bug#9144).
13599
13600 2011-09-10 Andreas Schwab <schwab@linux-m68k.org>
13601
13602 * image.c (gif_load): Fix calculation of bottom and right corner.
13603 (Bug#9468)
13604
13605 2011-09-10 Eli Zaretskii <eliz@gnu.org>
13606
13607 * xdisp.c (MAX_DISP_SCAN): Decrease to 250. Prevents sluggish
13608 redisplay in small windows.
13609
13610 2011-09-09 Eli Zaretskii <eliz@gnu.org>
13611
13612 * frame.c (x_report_frame_params): Cast to avoid compiler warnings.
13613
13614 2011-09-08 Martin Rudalics <rudalics@gmx.at>
13615
13616 * window.c (Fset_window_prev_buffers, Fset_window_next_buffers):
13617 Operate on live windows only.
13618
13619 2011-09-08 Juanma Barranquero <lekktu@gmail.com>
13620
13621 * emacs.c (my_heap_start): #ifdef to avoid warnings when unused.
13622
13623 2011-09-07 Eli Zaretskii <eliz@gnu.org>
13624
13625 * xdisp.c (move_it_in_display_line_to): Call RESTORE_IT on ppos_it
13626 only under bidi iteration.
13627
13628 2011-09-07 Jan Djärv <jan.h.d@swipnet.se>
13629
13630 * gtkutil.c (xg_make_tool_item): Insert comment about eventbox.
13631
13632 2011-09-06 Paul Eggert <eggert@cs.ucla.edu>
13633
13634 isnan: Fix porting problem to Solaris 10 with bundled gcc.
13635 Without this fix, the command to link temacs failed due to an
13636 undefined symbol __builtin_isnan. This is because
13637 /usr/include/iso/math_c99.h #defines isnan(x) to
13638 __builtin_isnan(x), but the bundled gcc, which identifies itself
13639 as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have
13640 a __builtin_isnan.
13641 * floatfns.c (isnan): #undef, and then #define to a clone of
13642 what's in data.c.
13643 (Fisnan): Always define, since it's always available now.
13644 (syms_of_floatfns): Always define isnan at the Lisp level.
13645
13646 2011-09-06 Paul Eggert <eggert@cs.ucla.edu>
13647
13648 * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169).
13649
13650 2011-09-06 Paul Eggert <eggert@cs.ucla.edu>
13651
13652 * fileio.c: Fix bugs with large file offsets (Bug#9428).
13653 The previous code assumed that file offsets (off_t values) fit in
13654 EMACS_INT variables, which is not true on typical 32-bit hosts.
13655 The code messed up by falsely reporting buffer overflow in cases
13656 such as (insert-file-contents "big" nil 1 2) into an empty buffer
13657 when "big" contains more than 2**29 bytes, even though this
13658 inserts just one byte and does not overflow the buffer.
13659 (Finsert_file_contents): Store file offsets as off_t
13660 values, not as EMACS_INT values. Check for overflow when
13661 converting between EMACS_INT and off_t. When checking for
13662 buffer overflow or for overlap, take the offsets into account.
13663 Don't use EMACS_INT for small values where int suffices.
13664 When checking for overlap, fix a typo: ZV was used where
13665 ZV_BYTE was intended.
13666 (Fwrite_region): Don't assume off_t fits into 'long'.
13667 * buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT.
13668
13669 2011-09-05 Michael Albinus <michael.albinus@gmx.de>
13670
13671 * dbusbind.c (xd_signature_cat): Rename from signature_cat.
13672
13673 2011-09-04 Paul Eggert <eggert@cs.ucla.edu>
13674
13675 sprintf-related integer and memory overflow issues (Bug#9412).
13676
13677 * doprnt.c (doprnt): Support printing ptrdiff_t and intmax_t values.
13678 (esprintf, exprintf, evxprintf): New functions.
13679 * keyboard.c (command_loop_level): Now EMACS_INT, not int.
13680 (cmd_error): Kbd macro iterations count is now EMACS_INT, not int.
13681 (modify_event_symbol): Do not assume that the length of
13682 name_alist_or_stem is safe to alloca and fits in int.
13683 (Fexecute_extended_command): Likewise for function name and binding.
13684 (Frecursion_depth): Wrap around reliably on integer overflow.
13685 * keymap.c (push_key_description): First arg is now EMACS_INT, not int,
13686 since some callers pass EMACS_INT values.
13687 (Fsingle_key_description): Don't crash if symbol name contains more
13688 than MAX_ALLOCA bytes.
13689 * minibuf.c (minibuf_level): Now EMACS_INT, not int.
13690 (get_minibuffer): Arg is now EMACS_INT, not int.
13691 * lisp.h (get_minibuffer, push_key_description): Reflect API changes.
13692 (esprintf, exprintf, evxprintf): New decls.
13693 * window.h (command_loop_level, minibuf_level): Reflect API changes.
13694
13695 * dbusbind.c (signature_cat): New function.
13696 (xd_signature, Fdbus_register_signal):
13697 Do not overrun buffer; instead, report string overflow.
13698
13699 * dispnew.c (add_window_display_history): Don't overrun buffer.
13700 Truncate instead; this is OK since it's just a log.
13701
13702 * editfns.c (Fcurrent_time_zone): Don't overrun buffer
13703 even if the time zone offset is outlandishly large.
13704 Don't mishandle offset == INT_MIN.
13705
13706 * emacs.c (main) [NS_IMPL_COCOA]: Don't overrun buffer
13707 when creating daemon; the previous buffer-overflow check was incorrect.
13708
13709 * eval.c (verror): Simplify by rewriting in terms of evxprintf,
13710 which has the guts of the old verror function.
13711
13712 * filelock.c (lock_file_1, lock_file): Don't blindly alloca long name;
13713 use SAFE_ALLOCA instead. Use esprintf to avoid int-overflow issues.
13714
13715 * font.c: Include <float.h>, for DBL_MAX_10_EXP.
13716 (font_unparse_xlfd): Don't blindly alloca long strings.
13717 Don't assume XINT result fits in int, or that XFLOAT_DATA * 10
13718 fits in int, when using sprintf. Use single snprintf to count
13719 length of string rather than counting it via multiple sprintfs;
13720 that's simpler and more reliable.
13721 (font_unparse_fcname): Use it to avoid sprintf buffer overrun.
13722 (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not
13723 sprintf, in case result does not fit in int.
13724
13725 * fontset.c (num_auto_fontsets): Now printmax_t, not int.
13726 (fontset_from_font): Print it.
13727
13728 * frame.c (tty_frame_count): Now printmax_t, not int.
13729 (make_terminal_frame, set_term_frame_name): Print it.
13730 (x_report_frame_params): In X, window IDs are unsigned long,
13731 not signed long, so print them as unsigned.
13732 (validate_x_resource_name): Check for implausibly long names,
13733 and don't assume name length fits in 'int'.
13734 (x_get_resource_string): Don't blindly alloca invocation name;
13735 use SAFE_ALLOCA. Use esprintf, not sprintf, in case result does
13736 not fit in int.
13737
13738 * gtkutil.c: Include <float.h>, for DBL_MAX_10_EXP.
13739 (xg_check_special_colors, xg_set_geometry):
13740 Make sprintf buffers a bit bigger, to avoid potential buffer overrun.
13741
13742 * lread.c (dir_warning): Don't blindly alloca buffer; use SAFE_ALLOCA.
13743 Use esprintf, not sprintf, in case result does not fit in int.
13744
13745 * macros.c (executing_kbd_macro_iterations): Now EMACS_INT, not int.
13746 (Fend_kbd_macro): Don't mishandle MOST_NEGATIVE_FIXNUM by treating
13747 it as a large positive number.
13748 (Fexecute_kbd_macro): Don't assume repeat count fits in int.
13749 * macros.h (executing_kbd_macro_iterations): Now EMACS_INT, not int.
13750
13751 * nsterm.m ((NSSize)windowWillResize): Use esprintf, not sprintf,
13752 in case result does not fit in int.
13753
13754 * print.c (float_to_string): Detect width overflow more reliably.
13755 (print_object): Make sprintf buffer a bit bigger, to avoid potential
13756 buffer overrun. Don't assume list length fits in 'int'. Treat
13757 print length of 0 as 0, not as infinity; to be consistent with other
13758 uses of print length in this function. Don't overflow print length
13759 index. Don't assume hash table size fits in 'long', or that
13760 vectorlike size fits in 'unsigned long'.
13761
13762 * process.c (make_process): Use printmax_t, not int, to format
13763 process-name gensyms.
13764
13765 * sysdep.c (snprintf) [! HAVE_SNPRINTF]: New function.
13766
13767 * term.c (produce_glyphless_glyph): Make sprintf buffer a bit bigger
13768 to avoid potential buffer overrun.
13769
13770 * xfaces.c (x_update_menu_appearance): Don't overrun buffer
13771 if X resource line is longer than 512 bytes.
13772
13773 * xfns.c (x_window): Make sprintf buffer a bit bigger
13774 to avoid potential buffer overrun.
13775
13776 * xterm.c (x_io_error_quitter): Don't overrun sprintf buffer.
13777
13778 * xterm.h (x_check_errors): Add ATTRIBUTE_FORMAT_PRINTF.
13779
13780 2011-09-04 Paul Eggert <eggert@cs.ucla.edu>
13781
13782 Integer overflow fixes for scrolling, etc.
13783 Without these, Emacs silently mishandles large integers sometimes.
13784 For example, "C-u 4294967297 M-x recenter" was treated as if
13785 it were "C-u 1 M-x recenter" on a typical 64-bit host.
13786
13787 * xdisp.c (try_window_id): Check Emacs fixnum range before
13788 converting to 'int'.
13789
13790 * window.c (window_scroll_line_based, Frecenter):
13791 Check that an Emacs fixnum is in range before assigning it to 'int'.
13792 (Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for
13793 values converted from Emacs fixnums.
13794 (Frecenter): Don't wrap around a line count if it is out of 'int'
13795 range; instead, treat it as an extreme value.
13796 (Fset_window_configuration, compare_window_configurations):
13797 Use ptrdiff_t, not int, for index that might exceed 2 GiB.
13798
13799 * search.c (Freplace_match): Use ptrdiff_t, not int, for indexes
13800 that can exceed INT_MAX. Check that EMACS_INT value is in range
13801 before assigning it to the (possibly-narrower) index.
13802 (match_limit): Don't assume that a fixnum can fit in 'int'.
13803
13804 * print.c (print_object): Use ptrdiff_t, not int, for index that can
13805 exceed INT_MAX.
13806
13807 * indent.c (position_indentation): Now takes ptrdiff_t, not int.
13808 (Fvertical_motion): Don't wrap around LINES values that don't fit
13809 in 'int'. Instead, treat them as extreme values. This is good
13810 enough for windows, which can't have more than INT_MAX lines anyway.
13811
13812 2011-09-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
13813
13814 * Require libxml/parser.h to avoid compilation warning.
13815
13816 * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
13817
13818 * xml.c (parse_region): Don't call xmlCleanupParser after parsing,
13819 since this reportedly can destroy thread storage.
13820
13821 2011-08-30 Chong Yidong <cyd@stupidchicken.com>
13822
13823 * syntax.c (find_defun_start): Update all cache variables if
13824 exiting early (Bug#9401).
13825
13826 2011-08-30 Eli Zaretskii <eliz@gnu.org>
13827
13828 * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings.
13829
13830 * xdisp.c (produce_stretch_glyph): No longer static, compiled also
13831 when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY
13832 frames. Call tty_append_glyph in the TTY case. (Bug#9402)
13833
13834 * term.c (tty_append_glyph): New function.
13835 (produce_stretch_glyph): Static function and its prototype deleted.
13836
13837 * dispextern.h (produce_stretch_glyph, tty_append_glyph):
13838 Add prototypes.
13839
13840 2011-08-29 Paul Eggert <eggert@cs.ucla.edu>
13841
13842 * image.c (parse_image_spec): Check for nonnegative, not for positive,
13843 when checking :margin (Bug#9390).
13844 (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR):
13845 Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
13846 so that the name doesn't mislead. All uses changed.
13847
13848 2011-08-28 Johan Bockgård <bojohan@gnu.org>
13849
13850 * term.c (init_tty) [HAVE_GPM]: Move mouse settings after
13851 set_tty_hooks.
13852
13853 2011-08-27 Eli Zaretskii <eliz@gnu.org>
13854
13855 * xdisp.c (move_it_to): Don't bail out early when reaching
13856 position beyond to_charpos, if we are scanning backwards.
13857 (move_it_vertically_backward): When DY == 0, make sure we get to
13858 the first character in the line after the newline.
13859
13860 2011-08-27 Paul Eggert <eggert@cs.ucla.edu>
13861
13862 * ccl.c: Improve and simplify overflow checking (Bug#9196).
13863 (ccl_driver): Do not generate an out-of-range pointer.
13864 (Fccl_execute_on_string): Remove unnecessary check for
13865 integer overflow, noted by Stefan Monnier in
13866 <http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00979.html>.
13867 Remove a FIXME that didn't need fixing.
13868 Simplify the newly-introduced buffer reallocation code.
13869
13870 2011-08-27 Juanma Barranquero <lekktu@gmail.com>
13871
13872 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h.
13873
13874 2011-08-26 Paul Eggert <eggert@cs.ucla.edu>
13875
13876 Integer and memory overflow issues (Bug#9196).
13877
13878 * doc.c (get_doc_string): Rework so that
13879 get_doc_string_buffer_size is the actual buffer size, rather than
13880 being 1 less than the actual buffer size; this makes xpalloc more
13881 convenient.
13882
13883 * image.c (x_allocate_bitmap_record, cache_image):
13884 * xselect.c (Fx_register_dnd_atom):
13885 Simplify previous changes by using xpalloc.
13886
13887 * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT,
13888 since either will do and ptrdiff_t is convenient with xpalloc.
13889
13890 * charset.c (charset_table_size)
13891 (struct charset_sort_data.priority): Now ptrdiff_t.
13892 (charset_compare): Don't overflow if priorities differ greatly.
13893 (Fsort_charsets): Don't assume list length fits in int.
13894 Check for size-calculation overflow when allocating sort data.
13895 (syms_of_charset): Allocate an initial charset table that is
13896 just under 64 KiB, to avoid problems with glibc malloc and mmap.
13897
13898 * cmds.c (internal_self_insert): Check for size-calculation overflow.
13899
13900 * composite.h (struct composition.glyph_len): Now int, not unsigned.
13901 The actual value is always <= INT_MAX, and leaving it unsigned made
13902 overflow checking harder.
13903
13904 * dispextern.h (struct glyph_matrix.rows_allocated)
13905 (struct face_cache.size): Now ptrdiff_t, for convenience in use
13906 with xpalloc. The values are still always <= INT_MAX.
13907
13908 * indent.c (compute_motion): Adjust to region_cache_forward sig change.
13909
13910 * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls.
13911 (SAFE_NALLOCA): New macro.
13912
13913 * region-cache.c (struct boundary.pos, find_cache_boundary)
13914 (move_cache_gap, insert_cache_boundary, delete_cache_boundaries)
13915 (set_cache_region, invalidate_region_cache)
13916 (revalidate_region_cache, know_region_cache, region_cache_forward)
13917 (region_cache_backward, pp_cache):
13918 Use ptrdiff_t, not EMACS_INT, since either will do. This is needed
13919 so that ptrdiff_t * can be passed to xpalloc.
13920 (struct region_cache): Similarly, for gap_start, gap_len, cache_len,
13921 beg_unchanged, end_unchanged, buffer_beg, buffer_end members.
13922 (pp_cache): Don't assume cache_len fits in int.
13923 * region-cache.h: Adjust extern decls to match.
13924
13925 * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not
13926 EMACS_INT, since either will do, for xpalloc.
13927
13928 * alloc.c: Include verify.h, and check that int fits in ptrdiff_t.
13929 (xnmalloc, xnrealloc, xpalloc): New functions.
13930
13931 * bidi.c (bidi_shelve_header_size): New constant.
13932 (bidi_cache_ensure_space, bidi_shelve_cache): Use it.
13933 (bidi_cache_ensure_space): Avoid integer overflow when allocating.
13934
13935 * bidi.c (bidi_cache_shrink):
13936 * buffer.c (overlays_at, overlays_in, record_overlay_string)
13937 (overlay_strings):
13938 Don't update size of array until after memory allocation succeeds,
13939 because xmalloc/xrealloc may not return.
13940 (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help
13941 now that we have proper integer overflow checking.
13942 (record_overlay_string, overlay_strings): Catch overflows when
13943 calculating size of overlay_str_buf.
13944
13945 * callproc.c (Fcall_process): Check for size overflow when
13946 calculating size of args2.
13947 (child_setup): Avoid overflow by using size_t rather than ptrdiff_t.
13948 Normally we prefer signed values, but sticking with ptrdiff_t would
13949 require adding more-complicated checks.
13950
13951 * ccl.c (Fccl_execute_on_string): Check for memory overflow.
13952 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
13953 Redo buffer-overflow calculations to avoid integer overflow.
13954 Add a FIXME comment where memory seems to be over-allocated.
13955
13956 * character.c (Fstring): Check for size-calculation overflow.
13957
13958 * coding.c (produce_chars): Redo buffer-overflow calculations to avoid
13959 unnecessary integer overflow. Check for size overflow.
13960 (encode_coding_object): Don't update size until xmalloc succeeds.
13961
13962 * composite.c (get_composition_id): Check for overflow in glyph
13963 length calculations.
13964
13965 Integer and memory overflow fixes for display code.
13966 * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int.
13967 * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool)
13968 (scrolling_window): Check for overflow in size calculations.
13969 (line_draw_cost, realloc_glyph_pool, add_row_entry):
13970 Don't assume glyph table len fits in int.
13971 (struct row_entry.bucket, row_entry_pool_size, row_entry_idx)
13972 (row_table_size): Now ptrdiff_t, not int.
13973 (scrolling_window): Avoid overflow in size calculations.
13974 Don't update size until allocation succeeds.
13975 * fns.c (concat): Check for overflow in size calculations.
13976 (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT.
13977 * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
13978 (NEXT_ALMOST_PRIME_LIMIT): New constant.
13979
13980 * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int.
13981 (get_doc_string): Check for size calculation overflow.
13982 Don't update size until allocation succeeds.
13983 (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not
13984 EMACS_INT, where ptrdiff_t will do.
13985 (Fsubstitute_command_keys): Check for string overflow.
13986
13987 * editfns.c (set_time_zone_rule): Don't assume environment length
13988 fits in int.
13989 (message_length): Now ptrdiff_t, not int.
13990 (Fmessage_box): Don't update size until allocation succeeds.
13991 Don't assume message length fits in int.
13992 (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do.
13993
13994 * emacs.c (main): Do not reallocate argv, since there is a null at
13995 the end that can be overwritten, and this way there's no need to
13996 worry about size-calculation overflow.
13997 (sort_args): Check for size-calculation overflow.
13998
13999 * eval.c (init_eval_once, grow_specpdl): Don't update size until
14000 alloc succeeds.
14001 (call_debugger, grow_specpdl): Redo calculations to avoid overflow.
14002
14003 * frame.c (set_menu_bar_lines, x_set_frame_parameters)
14004 (x_set_scroll_bar_width, x_figure_window_size):
14005 Check for integer overflow.
14006 (x_set_alpha): Do not assume XINT fits in int.
14007
14008 * frame.h (struct frame): Use int, not EMACS_INT, where int works.
14009 This is for the members text_lines, text_cols, total_lines, total_cols,
14010 where the system imposes an 'int' limit.
14011
14012 * fringe.c (Fdefine_fringe_bitmap):
14013 Don't update size until alloc works.
14014
14015 * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring)
14016 (ftfont_shape_by_flt): Check for integer overflow in size calculations.
14017
14018 * gtkutil.c (get_utf8_string, xg_store_widget_in_map):
14019 Check for size-calculation overflow.
14020 (get_utf8_string): Use ptrdiff_t, not size_t, where either will
14021 do, as we prefer signed integers.
14022 (id_to_widget.max_size, id_to_widget.used)
14023 (xg_store_widget_in_map, xg_remove_widget_from_map)
14024 (xg_get_widget_from_map, xg_get_scroll_id_for_window)
14025 (xg_remove_scroll_bar, xg_update_scrollbar_pos):
14026 Use and return ptrdiff_t, not int.
14027 (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int.
14028 * gtkutil.h: Change prototypes to match the above.
14029
14030 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these
14031 are duplicate now that they've been promoted to lisp.h.
14032 (x_allocate_bitmap_record, x_alloc_image_color)
14033 (make_image_cache, cache_image, xpm_load):
14034 Don't update size until alloc is done.
14035 (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors)
14036 (x_detect_edges):
14037 Check for size calculation overflow.
14038 (ct_colors_allocated_max): New constant.
14039 (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid
14040 overflow.
14041
14042 * keyboard.c (read_char, menu_bar_items, tool_bar_items)
14043 (read_char_x_menu_prompt, read_char_minibuf_menu_width)
14044 (read_char_minibuf_menu_prompt, follow_key, read_key_sequence):
14045 Use ptrdiff_t, not int, to count maps.
14046 (read_char_minibuf_menu_prompt): Check for overflow in size
14047 calculations. Don't update size until allocation succeeds.
14048 Redo calculations to avoid overflow.
14049 * keyboard.h: Change prototypes to match the above.
14050
14051 * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int,
14052 to count maps.
14053 (current_minor_maps): Check for size calculation overflow.
14054 * keymap.h: Change prototypes to match the above.
14055
14056 * lread.c (read1, init_obarray): Don't update size until alloc done.
14057
14058 * macros.c (Fstart_kbd_macro): Don't update size until alloc done.
14059 (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
14060
14061 * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):
14062 Now ptrdiff_t, not int.
14063 * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes.
14064 (ns_draw_fringe_bitmap): Rewrite to avoid overflow.
14065
14066 * process.c (Fnetwork_interface_list): Check for overflow
14067 in size calculation.
14068
14069 * region-cache.c (move_cache_gap): Check for size calculation overflow.
14070
14071 * scroll.c (do_line_insertion_deletion_costs): Check for size calc
14072 overflow. Don't bother calling xmalloc when xrealloc will do.
14073
14074 * search.c (Freplace_match): Check for size calculation overflow.
14075 (Fset_match_data): Don't assume list lengths fit in 'int'.
14076
14077 * sysdep.c (system_process_attributes): Use ptrdiff_t, not int,
14078 for command line length. Do not attempt to address one before the
14079 beginning of an array, as that's not portable.
14080
14081 * term.c (max_frame_lines): Remove; unused.
14082 (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t,
14083 not int.
14084 (encode_terminal_code, calculate_costs): Check for size
14085 calculation overflow.
14086 (encode_terminal_code): Use ptrdiff_t, not int, to record glyph
14087 table lengths and related sizes. Don't update size until alloc
14088 done. Redo calculations to avoid overflow.
14089 (calculate_costs): Don't bother calling xmalloc when xrealloc will do.
14090
14091 * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of
14092 subtracting pointers.
14093 (gobble_line): Check for overflow more carefully. Don't update size
14094 until alloc done.
14095
14096 * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes.
14097 Don't update size until alloc done.
14098 Redo size calculations to avoid overflow.
14099 Check for size calculation overflow.
14100 (main) [DEBUG]: Fix typo in invoking tparam1.
14101
14102 * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title):
14103 Use ptrdiff_t, not int, for sizes.
14104 (store_mode_line_noprop_char): Don't update size until alloc done.
14105
14106 * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face):
14107 Use ptrdiff_t, not int, for sizes.
14108 (Finternal_make_lisp_face, cache_face):
14109 Check for size calculation overflow.
14110 (cache_face): Treat size calculation overflows as if they were
14111 memory exhaustion (the usual treatment), rather than aborting.
14112
14113 * xfns.c (x_encode_text, x_set_name_internal)
14114 (Fx_change_window_property): Use ptrdiff_t, not int, to count
14115 sizes, since they can exceed INT_MAX in size. Check for size
14116 calculation overflow.
14117
14118 * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc.
14119 (xg_select): Check for size calculation overflow.
14120 Don't update size until alloc done.
14121
14122 * xrdb.c (get_environ_db): Don't assume path length fits in int,
14123 as sprintf is limited to int lengths.
14124
14125 * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX)
14126 (X_LONG_MIN): New macros.
14127 Use them to make the following changes clearer.
14128 (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer.
14129 This change doesn't affect the value now, but it may help remind
14130 future maintainers not to raise the value too much later.
14131 (SELECTION_QUANTUM): Remove, replacing with ...
14132 (selection_quantum): ... new function, which avoids overflow.
14133 All uses changed.
14134 (struct selection_data.size): Now ptrdiff_t, not int, to avoid
14135 assumption that selection length fits in 'int'.
14136 (x_reply_selection_request, x_handle_selection_request)
14137 (x_get_window_property, receive_incremental_selection)
14138 (x_get_window_property_as_lisp_data, selection_data_to_lisp_data)
14139 (lisp_data_to_selection_data, clean_local_selection_data):
14140 Use ptrdiff_t, not int, to record length of selection.
14141 (x_reply_selection_request, x_get_window_property)
14142 (receive_incremental_selection, x_property_data_to_lisp):
14143 Redo calculations to avoid overflow.
14144 (x_reply_selection_request): When sending hint, ceiling it at
14145 X_LONG_MAX rather than relying on wraparound overflow to send
14146 something.
14147 (x_get_window_property, receive_incremental_selection)
14148 (lisp_data_to_selection_data, x_property_data_to_lisp):
14149 Check for size-calculation overflow.
14150 (x_get_window_property, receive_incremental_selection)
14151 (lisp_data_to_selection_data, Fx_register_dnd_atom):
14152 Don't store size until memory allocation succeeds.
14153 (x_get_window_property): Plug memory leak on memory exhaustion.
14154 Don't double-block input; malloc is safe here. Don't assume 2**34
14155 - 4 fits in unsigned long. Add an xassert to check
14156 XGetWindowProperty overflow. Be more careful about overflow
14157 calculations, and distinguish size from memory overflow better.
14158 (receive_incremental_selection): When tracing, don't assume
14159 unsigned int is less than INT_MAX.
14160 (x_selection_data_to_lisp_data): Remove unnecessary (and in theory
14161 harmful) conversions of unsigned short to int.
14162 (lisp_data_to_selection_data): Don't assume that integers
14163 in the range -65535 through -1 fit in an X unsigned short.
14164 Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into
14165 result parameters unless successful. Rely on cons_to_unsigned
14166 to report problems with elements; the old code wasn't right anyway.
14167 (x_check_property_data): Check for int overflow; we cannot use
14168 a wider type due to X limits.
14169 (x_handle_dnd_message): Use unsigned int, to avoid int overflow.
14170
14171 * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow.
14172
14173 * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent)
14174 (x_term_init): Check for size calculation overflow.
14175 (x_color_cells): Don't store size until memory allocation succeeds.
14176 (handle_one_xevent): Use ptrdiff_t, not int, for byte counts.
14177 Don't assume alloca size is less than MAX_ALLOCA.
14178 (x_term_init): Don't assume length fits in int (sprintf is limited
14179 to int size).
14180
14181 Use ptrdiff_t for composition IDs.
14182 * character.c (lisp_string_width):
14183 * composite.c (composition_table_size, n_compositions)
14184 (get_composition_id, composition_gstring_from_id):
14185 * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id):
14186 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING):
14187 * window.c (Frecenter):
14188 Use ptrdiff_t, not int, for composition IDs.
14189 * composite.c (get_composition_id): Check for integer overflow.
14190 * composite.h: Adjust prototypes to match the above changes.
14191
14192 Use ptrdiff_t for hash table indexes.
14193 * category.c (hash_get_category_set):
14194 * ccl.c (ccl_driver):
14195 * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
14196 * coding.c (coding_system_charset_list, detect_coding_system):
14197 * coding.h (struct coding_system.id):
14198 * composite.c (get_composition_id, gstring_lookup_cache):
14199 * fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
14200 * image.c (xpm_get_color_table_h):
14201 * lisp.h (hash_lookup, hash_put):
14202 * minibuf.c (Ftest_completion):
14203 Use ptrdiff_t for hash table indexes, not int (which is too
14204 narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
14205 32-bit --with-wide-int hosts).
14206
14207 * charset.c (Fdefine_charset_internal): Check for integer overflow.
14208 Add a FIXME comment about memory leaks.
14209 (syms_of_charset): Don't assume xmalloc returns.
14210
14211 Don't assume that stated character widths fit in int.
14212 * character.c (Fchar_width, c_string_width, lisp_string_width):
14213 * character.h (CHAR_WIDTH):
14214 * indent.c (MULTIBYTE_BYTES_WIDTH):
14215 Use sanitize_char_width to avoid undefined and/or bad behavior
14216 with outlandish widths.
14217 * character.h (sanitize_tab_width): Rename from sanitize_width,
14218 now that we have two such functions. All uses changed.
14219 (sanitize_char_width): New inline function.
14220
14221 Don't assume that tab-width fits in int.
14222 * character.h (sanitize_width): New inline function.
14223 (SANE_TAB_WIDTH): New macro.
14224 (ASCII_CHAR_WIDTH): Use it.
14225 * indent.c (sane_tab_width): Remove. All uses replaced by
14226 SANE_TAB_WIDTH (current_buffer).
14227 * xdisp.c (init_iterator): Use SANE_TAB_WIDTH.
14228
14229 * fileio.c: Integer overflow issues with file modes.
14230 (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
14231
14232 * charset.c (read_hex): New arg OVERFLOW. All uses changed.
14233 Remove unreachable code.
14234 (read_hex, load_charset_map_from_file): Check for integer overflow.
14235
14236 * xterm.c: Don't go over XClientMessageEvent limit.
14237 (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed.
14238 (x_send_scroll_bar_event): Likewise. Check that the size does not
14239 exceed limits imposed by XClientMessageEvent, as well as the usual
14240 ptrdiff_t and size_t limits.
14241
14242 * keyboard.c: Overflow, signedness and related fixes.
14243 (make_lispy_movement): Use same integer type in forward decl
14244 that is used in the definition.
14245 (read_key_sequence, keyremap_step):
14246 Change bufsize argument back to int, undoing my 2011-03-30 change.
14247 We prefer signed types, and int is wide enough here.
14248 (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less
14249 than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow
14250 larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string
14251 length, not size_t. Use ptrdiff_t for index, not int.
14252 (keyremap_step, read_key_sequence): Redo bufsize check to avoid
14253 possibility of integer overflow.
14254
14255 Overflow, signedness and related fixes for images.
14256
14257 * dispextern.h (struct it.stack[0].u.image.image_id)
14258 (struct_it.image_id, struct image.id, struct image_cache.size)
14259 (struct image_cache.used, struct image_cache.ref_count):
14260 * gtkutil.c (update_frame_tool_bar):
14261 * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p)
14262 (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image)
14263 (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image):
14264 * nsmenu.m (update_frame_tool_bar):
14265 * xdisp.c (calc_pixel_width_or_height):
14266 * xfns.c (image_cache_refcount):
14267 Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits
14268 on typical 64-bit hosts.
14269
14270 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
14271 (x_bitmap_pixmap, x_create_x_image_and_pixmap):
14272 Omit unnecessary casts to int.
14273 (parse_image_spec): Check that integers fall into 'int' range
14274 when the callers expect that.
14275 (image_ascent): Redo ascent calculation to avoid int overflow.
14276 (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages.
14277 (lookup_image): Remove unnecessary tests.
14278 (xbm_image_p): Locals are now of int, not EMACS_INT,
14279 since parse_image_check makes sure they fit into int.
14280 (png_load, gif_load, svg_load_image):
14281 Prefer int to unsigned where either will do.
14282 (tiff_handler): New function, combining the cores of the
14283 old tiff_error_handler and tiff_warning_handler.
14284 This function is rewritten to use vsnprintf and thereby avoid
14285 stack buffer overflows. It uses only the features of vsnprintf
14286 that are common to both POSIX and native Microsoft.
14287 (tiff_error_handler, tiff_warning_handler): Use it.
14288 (tiff_load, gif_load, imagemagick_load_image):
14289 Don't assume :index value fits in 'int'.
14290 (gif_load): Omit unnecessary cast to double, and avoid double-rounding.
14291 (imagemagick_load_image): Check that crop parameters fit into
14292 the integer types that MagickCropImage accepts. Don't assume
14293 Vimagemagick_render_type has a nonnegative value. Don't assume
14294 size_t fits in 'long'.
14295 (gs_load): Use printmax_t to print the widest integers possible.
14296 Check for integer overflow when computing image height and width.
14297
14298 2011-08-26 Eli Zaretskii <eliz@gnu.org>
14299
14300 * xdisp.c (redisplay_window): Don't force window start if point
14301 will be invisible in the resulting window. (Bug#9324)
14302
14303 2011-08-25 Eli Zaretskii <eliz@gnu.org>
14304
14305 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when
14306 the display spec is of the form `(space ...)'.
14307 (handle_display_spec): Return the value returned by
14308 handle_single_display_spec, not just 1 or zero.
14309 (handle_single_display_spec): If the display spec is of the form
14310 `(space ...)', and specifies display in the text area, return 2
14311 rather than 1.
14312 (try_cursor_movement): Check for the need to scroll more
14313 accurately, and prefer exact match for point under bidi.
14314 Don't advance `row' beyond the last row of the window.
14315
14316 * dispextern.h (struct bidi_it): Rename the disp_prop_p member
14317 into disp_prop; all users changed.
14318
14319 * bidi.c (bidi_fetch_char): If compute_display_string_pos returns
14320 DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character
14321 for the text covered by the display property.
14322
14323 2011-08-25 Chong Yidong <cyd@stupidchicken.com>
14324
14325 * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer.
14326 Change return value to nil.
14327 (Frecord_buffer): Delete unused function.
14328
14329 2011-08-24 Eli Zaretskii <eliz@gnu.org>
14330
14331 * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte
14332 buffers, return left-to-right.
14333 (set_cursor_from_row): Consider candidate row a win if its glyph
14334 represents a newline and point is on that newline. Fixes cursor
14335 positioning on the newline at EOL of R2L text within L2R
14336 paragraph, and vice versa.
14337 (try_cursor_movement): Check continued rows, in addition to
14338 continuation rows. Fixes unwarranted scroll when point enters a
14339 continued line of R2L text within an L2R paragraph, or vice versa.
14340 (cursor_row_p): Consider the case of point being equal to
14341 MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving
14342 from the end of a short line to the beginning of a continued line
14343 of R2L text within L2R paragraph.
14344 (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for
14345 composed characters.
14346
14347 * bidi.c (bidi_check_type): Use xassert.
14348 (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p
14349 members.
14350
14351 2011-08-23 Eli Zaretskii <eliz@gnu.org>
14352
14353 * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of
14354 a character.
14355
14356 2011-08-23 Chong Yidong <cyd@stupidchicken.com>
14357
14358 * nsfont.m (ns_otf_to_script): Fix typo.
14359
14360 2011-08-22 Kenichi Handa <handa@m17n.org>
14361
14362 * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a
14363 extra slot even if the purpose is char-code-property-table.
14364
14365 2011-08-23 Eli Zaretskii <eliz@gnu.org>
14366
14367 * xdisp.c (redisplay_window): When computing centering_position,
14368 account for the height of the header line. (Bug#8874)
14369
14370 * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos
14371 instead of CHAR_TO_BYTE. Fixes a crash when a completion
14372 candidate is selected by the mouse, and that candidate has a
14373 composed character under the mouse.
14374
14375 * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel
14376 coordinates reported by pos-visible-in-window-p for a composed
14377 character in column zero.
14378
14379 2011-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
14380
14381 * cmds.c (Fself_insert_command): Mention post-self-insert-hook.
14382
14383 2011-08-22 Eli Zaretskii <eliz@gnu.org>
14384
14385 * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition,
14386 consider it a hit if to_charpos is anywhere in the range of the
14387 composed buffer positions.
14388
14389 2011-08-22 Chong Yidong <cyd@stupidchicken.com>
14390
14391 * image.c (gif_load): Don't assume that each subimage has the same
14392 dimensions as the base image. Handle disposal method that is
14393 "undefined" by the gif spec (Bug#9335).
14394
14395 2011-08-20 Chong Yidong <cyd@stupidchicken.com>
14396
14397 * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329).
14398 (Fcondition_case): Document `debug' symbol in error handler.
14399
14400 2011-08-19 Eli Zaretskii <eliz@gnu.org>
14401
14402 * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
14403 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
14404 from an Org mode buffer to a Speedbar frame.
14405
14406 * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
14407 a composition, take its buffer position from IT->cmp_it.charpos.
14408 Fixes cursor positioning at the beginning of a line that begins
14409 with a composed character.
14410
14411 2011-08-18 Eli Zaretskii <eliz@gnu.org>
14412
14413 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
14414 character bidirectional type, use STRONG_L instead. Fixes crashes
14415 in a buffer produced by `describe-categories'.
14416
14417 * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p
14418 members before the level stack, so they would be saved and
14419 restored when copying iterator state. Fixes incorrect reordering
14420 around TABs covered by display properties.
14421
14422 2011-08-18 Andreas Schwab <schwab@linux-m68k.org>
14423
14424 * process.c (Fnetwork_interface_list): Correctly determine buffer size.
14425
14426 2011-08-17 Chong Yidong <cyd@stupidchicken.com>
14427
14428 * eval.c (internal_condition_case, internal_condition_case_1)
14429 (internal_condition_case_2, internal_condition_case_n):
14430 Remove unnecessary aborts (Bug#9081).
14431
14432 2011-08-17 Eli Zaretskii <eliz@gnu.org>
14433
14434 * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file
14435 has no `load' handler, try opening the file locally. (Bug#9311)
14436
14437 2011-08-16 Ken Brown <kbrown@cornell.edu>
14438
14439 * gmalloc.c: Expand comment.
14440
14441 2011-08-16 Eli Zaretskii <eliz@gnu.org>
14442
14443 * xdisp.c (set_cursor_from_row): Don't accept a previous candidate
14444 if it fails the cursor_row_p test. Fixes cursor positioning at ZV.
14445
14446 2011-08-16 Ken Brown <kbrown@cornell.edu>
14447
14448 Fix memory allocation problems in Cygwin build (Bug#9273).
14449
14450 * unexcw.c ( __malloc_initialized): Declare external variable.
14451 (fixup_executable): Force the dumped emacs to reinitialize malloc.
14452
14453 * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo):
14454 New variables.
14455 (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the
14456 dumped emacs.
14457 (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage
14458 in the static heap.
14459 [CYGWIN] (special_realloc): New function.
14460 (_realloc_internal_nolock) [CYGWIN]: Use the new function on
14461 requests to realloc storage in the static heap.
14462
14463 2011-08-15 Paul Eggert <eggert@cs.ucla.edu>
14464
14465 * bidi.c (bidi_initialize): Remove unused local.
14466
14467 2011-08-15 Eli Zaretskii <eliz@gnu.org>
14468
14469 * bidimirror.h:
14470 * biditype.h: Remove file.
14471 * makefile.w32-in ($(BLD)/bidi.$(O)):
14472 * deps.mk (bidi.o): Remove biditype.h and bidimirror.h.
14473
14474 * dispextern.h: Fix a typo in the comment to bidi_type_t.
14475
14476 * chartab.c: Improve commentary for the uniprop_table API.
14477
14478 * bidi.c (bidi_paragraph_init): Support zero value of
14479 bidi_ignore_explicit_marks_for_paragraph_level.
14480 (bidi_initialize): Use uniprop_table instead of including
14481 biditype.h and bidimirror.h.
14482
14483 * xdisp.c (move_it_in_display_line_to): Don't reset pixel
14484 coordinates of the iterator when restoring from ppos_it.
14485 (Bug#9296)
14486
14487 2011-08-14 Kenichi Handa <handa@m17n.org>
14488
14489 * process.c (create_process): Call setup_process_coding_systems
14490 after the pid of the process is set to -1 (Bug#8162).
14491
14492 2011-08-14 Eli Zaretskii <eliz@gnu.org>
14493
14494 * xdisp.c (move_it_in_display_line_to): Don't invoke
14495 IT_RESET_X_ASCENT_DESCENT when iterator position was restored from
14496 ppos_it. Fixes vertical cursor motion when line beginning is
14497 covered by an image. (Bug#9296)
14498
14499 2011-08-14 Jan Djärv <jan.h.d@swipnet.se>
14500
14501 * nsterm.h (ns_run_ascript): Declare.
14502 (NSAPP_DATA2_RUNASSCRIPT): Define.
14503
14504 * nsfns.m (as_script, as_result, as_status): New static variables.
14505 (ns_run_ascript): New function.
14506 (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined
14507 event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start
14508 the event loop. Get status from as_status (Bug#7276).
14509
14510 * nsterm.m (sendEvent): If event is NSApplicationDefined and
14511 data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit
14512 the event loop (Bug#7276).
14513
14514 2011-08-14 Andreas Schwab <schwab@linux-m68k.org>
14515
14516 * gnutls.c (QCgnutls_bootprop_priority)
14517 (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist)
14518 (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks)
14519 (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname)
14520 (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags)
14521 (QCgnutls_bootprop_verify_hostname_error)
14522 (QCgnutls_bootprop_callbacks_verify): Rename from
14523 Qgnutls_bootprop_..., all uses changed.
14524
14525 * xfaces.c (QCignore_defface): Rename from Qignore_defface, all
14526 uses changed.
14527
14528 2011-08-14 Paul Eggert <eggert@cs.ucla.edu>
14529
14530 * xfaces.c (Qframe_set_background_mode): Now static.
14531 * dispextern.h (Qframe_set_background_mode): Remove decl.
14532
14533 * process.c (Fnetwork_interface_info): Declare local only if needed.
14534
14535 2011-08-13 Jan Djärv <jan.h.d@swipnet.se>
14536
14537 * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477).
14538 (Fnetwork_interface_list): Allocate in increments of bytes instead
14539 of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting
14540 bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct
14541 sockaddr.
14542 (struct ifflag_def): notrailers is smart on OSX.
14543 (Fnetwork_interface_info): Handle case when ifr_flags is negative.
14544 Get hardware address with getifaddrs if available.
14545
14546 2011-08-12 Eli Zaretskii <eliz@gnu.org>
14547
14548 * xdisp.c (iterate_out_of_display_property): xassert that
14549 IT->position is set to within IT->object's boundaries. Break from
14550 the loop as soon as EOB is reached; avoids infloops in redisplay
14551 when IT->position is set up wrongly due to some bug.
14552 Set IT->current to match the bidi iterator unconditionally.
14553 (push_display_prop): Allow GET_FROM_STRING as IT->method on
14554 entry. Force push_it to save on the stack the current
14555 buffer/string position, to be restored by pop_it. Fix flags in
14556 the iterator structure wrt the object coming from a display
14557 property, as `line-prefix' and `wrap-prefix' are not ``replacing''
14558 properties. (Bug#9284)
14559
14560 2011-08-09 Andreas Schwab <schwab@linux-m68k.org>
14561
14562 * fontset.c (fontset_get_font_group): Add proper type checks.
14563 (Bug#9172)
14564
14565 2011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14566
14567 * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS
14568 and LC_VERSION_MIN_MACOSX.
14569 (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function.
14570 (dump_it) [LC_FUNCTION_STARTS]: Use it.
14571
14572 2011-08-08 Eli Zaretskii <eliz@gnu.org>
14573
14574 * xdisp.c (forward_to_next_line_start): Allow to use the
14575 no-display-properties-and-no-overlays under bidi display.
14576 Set disp_pos in the bidi iterator to avoid searches for display
14577 properties and overlays.
14578
14579 2011-08-08 Chong Yidong <cyd@stupidchicken.com>
14580
14581 * editfns.c (Fset_time_zone_rule): Document relationship with the
14582 setenv function.
14583
14584 * ftfont.c (ftfont_pattern_entity): Copy the extras argument to
14585 the font entity extracted from the cache (Bug#8109).
14586
14587 2011-08-07 Chong Yidong <cyd@stupidchicken.com>
14588
14589 * composite.c (autocmp_chars): Don't reset point. That is done by
14590 restore_point_unwind (Bug#5984).
14591
14592 2011-08-07 Juri Linkov <juri@jurta.org>
14593
14594 * editfns.c (Fformat_time_string): Doc fix, add tag `usage:'
14595 to show the arg `TIME' instead of `TIMEVAL'.
14596
14597 2011-08-06 Eli Zaretskii <eliz@gnu.org>
14598
14599 * xdisp.c (set_cursor_from_row): Fix cursor positioning when a
14600 display property strides EOL and includes a newline, as in
14601 longlines-mode. (Bug#9254)
14602 (move_it_in_display_line_to): Fix vertical-motion in a buffer with
14603 word-wrap under bidirectional display. (Bug#9224)
14604
14605 * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE
14606 is non-zero, even if the data buffer is NULL. Fixes a crash in
14607 vertical-motion with longlines-mode. (Bug#9254)
14608
14609 2011-08-05 Eli Zaretskii <eliz@gnu.org>
14610
14611 * bidi.c <bidi_cache_total_alloc>: Now static.
14612 (bidi_initialize): Initialize bidi_cache_total_alloc.
14613
14614 * xdisp.c (display_line): Release buffer allocated for shelved bidi
14615 cache. (Bug#9221)
14616
14617 * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total
14618 amount allocated this far in `bidi_cache_total_alloc'.
14619 (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if
14620 non-zero, only free the data buffer without restoring the cache
14621 contents. All callers changed.
14622
14623 * dispextern.h (bidi_unshelve_cache): Update prototype.
14624
14625 * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to)
14626 (move_it_in_display_line, move_it_to)
14627 (move_it_vertically_backward, move_it_by_lines): Replace the call
14628 to xfree to an equivalent call to bidi_unshelve_cache.
14629 (move_it_in_display_line_to): Fix logic of returning
14630 MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224)
14631
14632 2011-08-05 Eli Zaretskii <eliz@gnu.org>
14633
14634 * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that
14635 came from a string character with a `cursor' property. (Bug#9229)
14636
14637 2011-08-04 Jan Djärv <jan.h.d@swipnet.se>
14638
14639 * Makefile.in (LIB_PTHREAD): New variable.
14640 (LIBES): Add LIB_PTHREAD (Bug#9216).
14641
14642 * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h:
14643 Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
14644
14645 2011-08-04 Andreas Schwab <schwab@linux-m68k.org>
14646
14647 * regex.c (re_iswctype): Remove some redundant boolean conversions.
14648
14649 2011-08-04 Jan Djärv <jan.h.d@swipnet.se>
14650
14651 * xterm.c (x_find_topmost_parent): New function.
14652 (x_set_frame_alpha): Find topmost parent window with
14653 x_find_topmost_parent and set the property there also (bug#9181).
14654 (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify.
14655
14656 2011-08-04 Paul Eggert <eggert@cs.ucla.edu>
14657
14658 * callproc.c (Fcall_process): Avoid vfork clobbering
14659 the local vars buffer, coding_systems, current_dir.
14660
14661 2011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
14662
14663 * keymap.c (Fmake_composed_keymap): Move to subr.el.
14664
14665 2011-08-03 Paul Eggert <eggert@cs.ucla.edu>
14666
14667 * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE
14668 so that it is not optimized away.
14669
14670 * xdisp.c (compute_display_string_pos): Remove unused local.
14671
14672 2011-08-02 Eli Zaretskii <eliz@gnu.org>
14673
14674 Fix slow cursor motion and scrolling in large buffers with
14675 selective display, like Org Mode buffers. (Bug#9218)
14676
14677 * dispextern.h (struct bidi_it): New member disp_prop_p.
14678
14679 * xdisp.c: Remove one-slot cache of display string positions.
14680 (compute_display_string_pos): Accept an additional argument
14681 DISP_PROP_P; callers changed. Scan at most 5K characters forward
14682 for a display string or property. If found, set DISP_PROP_P
14683 non-zero.
14684
14685 * bidi.c (bidi_fetch_char): Accept an additional argument
14686 DISP_PROP_P, and pass it to compute_display_string_pos.
14687 Only handle text covered by a display string if DISP_PROP_P is returned
14688 non-zero. All callers of bidi_fetch_char changed.
14689
14690 2011-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
14691
14692 * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
14693
14694 2010-12-03 Don March <don@ohspite.net>
14695
14696 * keymap.c (Fdefine_key): Fix non-prefix key error message when
14697 last character M-[char] is translated to ESC [char] (bug#7541).
14698
14699 2011-08-02 Kenichi Handa <handa@m17n.org>
14700
14701 * lisp.h (uniprop_table): Extern it.
14702
14703 * chartab.c (uniprop_table): Make it non-static.
14704
14705 2011-08-01 Eli Zaretskii <eliz@gnu.org>
14706
14707 * xdisp.c (forward_to_next_line_start): Accept additional argument
14708 BIDI_IT_PREV, and store into it the state of the bidi iterator had
14709 on the newline.
14710 (reseat_at_next_visible_line_start): Use the bidi iterator state
14711 returned by forward_to_next_line_start to restore the state of
14712 it->bidi_it after backing up to previous newline. (Bug#9212)
14713
14714 2011-07-30 Andreas Schwab <schwab@linux-m68k.org>
14715
14716 * regex.c (re_comp): Protoize.
14717 (re_exec): Fix return type.
14718 (regexec): Fix type of `ret'. (Bug#9203)
14719
14720 2011-07-28 Paul Eggert <eggert@cs.ucla.edu>
14721
14722 * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189).
14723 This is needed if max-image-size is a floating-point number.
14724
14725 2011-07-28 Andreas Schwab <schwab@linux-m68k.org>
14726
14727 * print.c (print_object): Print empty symbol as ##.
14728
14729 * lread.c (read1): Read ## as empty symbol.
14730
14731 2011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
14732
14733 * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when
14734 setting frame foreground color (Bug#9175).
14735 (x_set_background_color): Likewise.
14736
14737 * nsmenu.m (-setText): Size tooltip dimensions precisely to
14738 contents (Bug#9176).
14739 (EmacsTooltip -init): Remove bezels and add shadows to
14740 tooltip windows.
14741
14742 * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
14743 or scroll bar (Bug#8470).
14744
14745 * nsfont.m (nsfont_open): Remove assignment to voffset and
14746 unnecessary vars hshink, expand, hd, full_height, min_height.
14747 (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913).
14748
14749 * nsterm.h (nsfont_info): Remove voffset field.
14750
14751 2011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
14752
14753 Implement strike-through and overline on NextStep (Bug#8863).
14754
14755 * nsfont.m (nsfont_open): Use underline position provided by font,
14756 instead of hard-coded value of 2.
14757 (nsfont_draw): Call ns_draw_text_decoration instead.
14758
14759 * nsterm.h: Add declaration for ns_draw_text_decoration.
14760
14761 * nsterm.m (ns_draw_text_decoration): New function for drawing
14762 underline, overline, and strike-through.
14763 (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to
14764 ns_draw_text_decoration. Change treatment of cursor drawing to
14765 accommodate underlining, etc.
14766
14767 2011-07-28 Eli Zaretskii <eliz@gnu.org>
14768
14769 * buffer.c (init_buffer_once): Set bidi-display-reordering to t by
14770 default.
14771
14772 2011-07-28 Paul Eggert <eggert@cs.ucla.edu>
14773
14774 * alloc.c (memory_full) [!SYNC_INPUT]: Fix signal-related race.
14775 Without this fix, if a signal arrives just after memory fills up,
14776 'malloc' might be invoked reentrantly.
14777
14778 * image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1.
14779 In other words, assume that every image size is allowed, on non-X
14780 hosts. This assumption is probably wrong, but it lets Emacs compile.
14781
14782 2011-07-28 Andreas Schwab <schwab@linux-m68k.org>
14783
14784 * regex.c (re_iswctype): Convert return values to boolean.
14785
14786 2011-07-28 Eli Zaretskii <eliz@fencepost.gnu.org>
14787
14788 * xdisp.c (compute_display_string_pos): Don't use cached display
14789 string position if the buffer had its restriction changed.
14790 (Bug#9184)
14791
14792 2011-07-28 Paul Eggert <eggert@cs.ucla.edu>
14793
14794 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
14795
14796 2011-07-28 Paul Eggert <eggert@cs.ucla.edu>
14797
14798 Integer signedness and overflow and related fixes. (Bug#9079)
14799
14800 * bidi.c: Integer size and overflow fixes.
14801 (bidi_cache_size, bidi_cache_idx, bidi_cache_last_idx)
14802 (bidi_cache_start, bidi_cache_fetch_state, bidi_cache_search)
14803 (bidi_cache_find_level_change, bidi_cache_ensure_space)
14804 (bidi_cache_iterator_state, bidi_cache_find, bidi_cache_start_stack)
14805 (bidi_find_other_level_edge):
14806 Use ptrdiff_t instead of EMACS_INT where either will do.
14807 This works better on 32-bit hosts configured --with-wide-int.
14808 (bidi_cache_ensure_space): Check for size-calculation overflow.
14809 Use % rather than repeated addition, for better worst-case speed.
14810 Don't set bidi_cache_size until after xrealloc returns, because it
14811 might not return.
14812 (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow.
14813 (bidi_cache_ensure_space): Also check that the bidi cache size
14814 does not exceed that of the largest Lisp string or buffer. See Eli
14815 Zaretskii in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#29>.
14816
14817 * alloc.c (__malloc_size_t): Remove.
14818 All uses replaced by size_t. See Andreas Schwab's note
14819 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#8>.
14820
14821 * image.c: Improve checking for integer overflow.
14822 (check_image_size): Assume that f is nonnull, since
14823 it is always nonnull in practice. This is one less thing to
14824 worry about when checking for integer overflow later.
14825 (x_check_image_size): New function, which checks for integer
14826 overflow issues inside X.
14827 (x_create_x_image_and_pixmap, xbm_read_bitmap_data): Use it.
14828 This removes the need for a memory_full check.
14829 (xbm_image_p): Rewrite to avoid integer multiplication overflow.
14830 (Create_Pixmap_From_Bitmap_Data, xbm_load): Use x_check_image_size.
14831 (xbm_read_bitmap_data): Change locals back to 'int', since
14832 their values must fit in 'int'.
14833 (xpm_load_image, png_load, tiff_load):
14834 Invoke x_create_x_image_and_pixmap earlier,
14835 to avoid much needless work if the image is too large.
14836 (tiff_load): Treat overly large images as if
14837 x_create_x_image_and_pixmap failed, not as malloc failures.
14838 (gs_load): Use x_check_image_size.
14839
14840 * gtkutil.c: Omit integer casts.
14841 (xg_get_pixbuf_from_pixmap): Remove unnecessary cast.
14842 (xg_set_toolkit_scroll_bar_thumb): Rewrite to avoid need for cast.
14843
14844 * image.c (png_load): Don't assume height * row_bytes fits in 'int'.
14845
14846 * xfaces.c (Fbitmap_spec_p): Fix integer overflow bug.
14847 Without this fix, (bitmap-spec-p '(34359738368 1 "x"))
14848 would wrongly return t on a 64-bit host.
14849
14850 * dispnew.c (init_display): Use *_RANGE_OVERFLOW macros.
14851 The plain *_OVERFLOW macros run afoul of GCC bug 49705
14852 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705>
14853 and therefore cause GCC to emit a bogus diagnostic in some cases.
14854
14855 * image.c: Integer signedness and overflow and related fixes.
14856 This is not an exhaustive set of fixes, but it's time to
14857 record what I've got.
14858 (lookup_pixel_color, check_image_size): Remove redundant decls.
14859 (check_image_size): Don't assume that arbitrary EMACS_INT values
14860 fit in 'int', or that arbitrary 'double' values fit in 'int'.
14861 (x_alloc_image_color, x_create_x_image_and_pixmap, png_load)
14862 (tiff_load, imagemagick_load_image):
14863 Check for overflow in size calculations.
14864 (x_create_x_image_and_pixmap): Remove unnecessary test for
14865 xmalloc returning NULL; that can't happen.
14866 (xbm_read_bitmap_data): Don't assume sizes fit into 'int'.
14867 (xpm_color_bucket): Use better integer hashing function.
14868 (xpm_cache_color): Don't possibly over-allocate memory.
14869 (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory)
14870 (gif_memory_source):
14871 Use ptrdiff_t, not int or size_t, to record sizes.
14872 (png_load): Don't assume values greater than 2**31 fit in 'int'.
14873 (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when
14874 either works, as we prefer signed integers.
14875 (tiff_read_from_memory, tiff_write_from_memory):
14876 Return tsize_t, not size_t, since that's what the TIFF API wants.
14877 (tiff_read_from_memory): Don't fail simply because the read would
14878 go past EOF; instead, return a short read.
14879 (tiff_load): Omit no-longer-needed casts.
14880 (Fimagemagick_types): Don't assume size fits into 'int'.
14881
14882 Improve hashing quality when configured --with-wide-int.
14883 * fns.c (hash_string): New function, taken from sxhash_string.
14884 Do not discard information about ASCII character case; this
14885 discarding is no longer needed.
14886 (sxhash-string): Use it. Change sig to match it. Caller changed.
14887 * lisp.h: Declare it.
14888 * lread.c (hash_string): Remove, since we now use fns.c's version.
14889 The fns.c version returns a wider integer if --with-wide-int is
14890 specified, so this should help the quality of the hashing a bit.
14891
14892 * emacs.c: Integer overflow minor fix.
14893 (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed.
14894 Define only if GNU_LINUX.
14895 (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.
14896
14897 * dispnew.c: Integer signedness and overflow fixes.
14898 Remove unnecessary forward decls, that were a maintenance hassle.
14899 (history_tick): Now uprintmax_t, so it's more likely to avoid overflow.
14900 All uses changed.
14901 (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer)
14902 (scrolling_window): Use ptrdiff_t, not int, for byte count.
14903 (prepare_desired_row, line_draw_cost):
14904 Use int, not unsigned, where either works.
14905 (save_current_matrix, restore_current_matrix):
14906 Use ptrdiff_t, not size_t, where either works.
14907 (init_display): Check for overflow more accurately, and without
14908 relying on undefined behavior.
14909
14910 * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide):
14911 Remove, replacing with the new symbols in lisp.h. All uses changed.
14912 * fileio.c (make_temp_name):
14913 * filelock.c (lock_file_1, lock_file):
14914 * xdisp.c (message_dolog):
14915 Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts.
14916 Use pMd etc. instead.
14917 * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros,
14918 replacing the pWIDE etc. symbols removed from editfns.c.
14919
14920 * keyboard.h (num_input_events): Now uintmax_t.
14921 This is (very slightly) less likely to mess up due to wraparound.
14922 All uses changed.
14923
14924 * buffer.c: Integer signedness fixes.
14925 (alloc_buffer_text, enlarge_buffer_text):
14926 Use ptrdiff_t rather than size_t when either will do, as we prefer
14927 signed integers.
14928
14929 * alloc.c: Integer signedness and overflow fixes.
14930 Do not impose an arbitrary 32-bit limit on malloc sizes when debugging.
14931 (__malloc_size_t): Default to size_t, not to int.
14932 (pure_size, pure_bytes_used_before_overflow, stack_copy_size)
14933 (Fgarbage_collect, mark_object_loop_halt, mark_object):
14934 Prefer ptrdiff_t to size_t when either would do, as we prefer
14935 signed integers.
14936 (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro.
14937 (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer):
14938 Now const. Initialize with values that are in range even if char
14939 is signed.
14940 (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ...
14941 (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed.
14942 These functions do the right thing with sizes > 2**32.
14943 (check_depth): Now ptrdiff_t, not int.
14944 (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
14945 Adjust to new way of storing sizes. Check for size overflow bugs
14946 in rest of code.
14947 (STRING_BYTES_MAX): Adjust to new overheads. The old code was
14948 slightly wrong anyway, as it missed one instance of
14949 XMALLOC_OVERRUN_CHECK_OVERHEAD.
14950 (refill_memory_reserve): Omit needless cast to size_t.
14951 (mark_object_loop_halt): Mark as externally visible.
14952
14953 * xselect.c: Integer signedness and overflow fixes.
14954 (Fx_register_dnd_atom, x_handle_dnd_message):
14955 Use ptrdiff_t, not size_t, since we prefer signed.
14956 (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow.
14957 * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for
14958 x_dnd_atoms_size and x_dnd_atoms_length.
14959
14960 * doprnt.c: Prefer signed to unsigned when either works.
14961 * eval.c (verror):
14962 * doprnt.c (doprnt):
14963 * lisp.h (doprnt):
14964 * xdisp.c (vmessage):
14965 Use ptrdiff_t, not size_t, when using or implementing doprnt,
14966 since the sizes cannot exceed ptrdiff_t bounds anyway, and we
14967 prefer signed arithmetic to avoid comparison confusion.
14968 * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow,
14969 but is a bit tricky.
14970
14971 Assume freestanding C89 headers, string.h, stdlib.h.
14972 * data.c, doprnt.c, floatfns.c, print.c:
14973 Include float.h unconditionally.
14974 * gmalloc.c: Assume C89-at-least behavior for preprocessor,
14975 limits.h, stddef.h, string.h. Use memset instead of 'flood'.
14976 * regex.c: Likewise for stddef.h, string.h.
14977 (ISASCII): Remove; can assume it returns 1 now. All uses removed.
14978 * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef.
14979 * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H)
14980 (STDC_HEADERS): Remove obsolete defines.
14981 * sysdep.c: Include limits.h unconditionally.
14982
14983 Assume support for memcmp, memcpy, memmove, memset.
14984 * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
14985 * regex.c (memcmp, memcpy):
14986 Remove; we assume C89 now.
14987
14988 * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
14989 (__malloc_safe_bcopy): Remove; no longer needed.
14990
14991 * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes.
14992 Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
14993 well either way, and we prefer signed to unsigned.
14994
14995 2011-07-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
14996
14997 * gnutls.c (emacs_gnutls_read): Don't message anything if the peer
14998 closes the connection while we're reading (bug#9182).
14999
15000 2011-07-25 Jan Djärv <jan.h.d@swipnet.se>
15001
15002 * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons
15003 are specified (Bug#9168).
15004
15005 2011-07-25 Paul Eggert <eggert@cs.ucla.edu>
15006
15007 * bidi.c (bidi_dump_cached_states): Fix printf format mismatch.
15008 Found by GCC static checking and --with-wide-int on a 32-bit host.
15009
15010 2011-07-25 Eli Zaretskii <eliz@gnu.org>
15011
15012 * xdisp.c (compute_display_string_pos): Fix logic of caching
15013 previous display string position. Initialize cached_prev_pos to
15014 -1. Fixes slow-down at the beginning of a buffer.
15015
15016 2011-07-24 Eli Zaretskii <eliz@gnu.org>
15017
15018 * xfaces.c (check_lface_attrs) [HAVE_WINDOW_SYSTEM]: Allow `nil'
15019 for attrs[LFACE_FONTSET_INDEX].
15020
15021 2011-07-23 Paul Eggert <eggert@cs.ucla.edu>
15022
15023 * xml.c (parse_region): Remove unused local
15024 that was recently introduced.
15025
15026 2011-07-23 Eli Zaretskii <eliz@gnu.org>
15027
15028 * xfns.c (unwind_create_frame) [GLYPH_DEBUG]: Adapt to changes in
15029 2008-02-22T17:42:09Z!monnier@iro.umontreal.ca.
15030
15031 * xdisp.c (move_it_in_display_line_to): Record the best matching
15032 position for TO_CHARPOS while scanning the line, and restore it on
15033 exit if none of the characters scanned was an exact match.
15034 Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay
15035 when exact match is impossible due to invisible text, and the
15036 lines are truncated.
15037
15038 2011-07-23 Jan Djärv <jan.h.d@swipnet.se>
15039
15040 * nsterm.m (initFrameFromEmacs): Set NSTitledWindowMask in styleMask
15041 for OSX >= 10.7.
15042
15043 2011-07-22 Eli Zaretskii <eliz@gnu.org>
15044
15045 Fix a significant slow-down of cursor motion with C-n, C-p,
15046 C-f/C-b, and C-v/M-v that couldn't keep up with keyboard
15047 auto-repeat under bidi redisplay in fontified buffers.
15048 * xdisp.c (compute_stop_pos_backwards): New function.
15049 (next_element_from_buffer): Call compute_stop_pos_backwards to
15050 find a suitable prev_stop when we find ourselves before
15051 base_level_stop.
15052 (reseat): Don't look for prev_stop, as that could mean a very long
15053 run.
15054 <cached_disp_pos, cached_disp_buffer, cached_disp_modiff>
15055 <cached_disp_overlay_modiff>: Cache for last found display string
15056 position.
15057 (compute_display_string_pos): Return the cached position if asked
15058 about the same buffer in the same area of character positions, and
15059 the buffer wasn't changed since the time the display string
15060 position was cached.
15061
15062 2011-07-22 Eli Zaretskii <eliz@gnu.org>
15063
15064 * xdisp.c (rows_from_pos_range): Don't ignore glyphs whose object
15065 is an integer, which is important for empty lines. (Bug#9149)
15066
15067 2011-07-22 Chong Yidong <cyd@stupidchicken.com>
15068
15069 * frame.c (Fmodify_frame_parameters): In tty case, update the
15070 default face if necessary (Bug#4238).
15071
15072 2011-07-21 Chong Yidong <cyd@stupidchicken.com>
15073
15074 * editfns.c (Fstring_to_char): No need to explain what a character
15075 is in the docstring (Bug#6576).
15076
15077 2011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
15078
15079 * xml.c (parse_region): Make sure we always return a tree.
15080
15081 2011-07-20 HAMANO Kiyoto <khiker.mail@gmail.com>
15082
15083 * xml.c (parse_region): If a document contains only comments,
15084 return that, too.
15085
15086 2011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
15087
15088 * xml.c (make_dom): Return comments, too.
15089
15090 2011-07-19 Paul Eggert <eggert@cs.ucla.edu>
15091
15092 Port to OpenBSD.
15093 See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html
15094 and the surrounding thread.
15095 * minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar
15096 rather than fgets, and retry after EINTR. Otherwise, 'emacs
15097 --batch -f byte-compile-file' fails on OpenBSD if an inactivity
15098 timer goes off.
15099 * s/openbsd.h (BROKEN_SIGIO): Define.
15100 * unexelf.c (unexec) [__OpenBSD__]:
15101 Don't update the .mdebug section of the Alpha COFF symbol table.
15102
15103 2011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
15104
15105 * lread.c (syms_of_lread): Clarify when `lexical-binding' is used
15106 (bug#8460).
15107
15108 2011-07-18 Paul Eggert <eggert@cs.ucla.edu>
15109
15110 * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
15111 This fixes some race conditions on the permissions of any newly
15112 created file.
15113
15114 * alloc.c (valid_pointer_p): Use pipe, not open.
15115 This fixes some permissions issues when debugging.
15116
15117 * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)
15118 If fchown fails to set both uid and gid, try to set just gid,
15119 as that is sometimes allowed. Adjust the file's mode to eliminate
15120 setuid or setgid bits that are inappropriate if fchown fails.
15121
15122 2011-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
15123
15124 * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ
15125 to compare Lisp_Objects.
15126 * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to
15127 global_gnutls_log_level, don't mistake it for a Lisp_Object.
15128 (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses.
15129
15130 2011-07-17 Andreas Schwab <schwab@linux-m68k.org>
15131
15132 * lread.c (read_integer): Unread even EOF character.
15133 (read1): Likewise. Properly record start position of symbol.
15134
15135 * lread.c (read1): Read `#:' as empty uninterned symbol if no
15136 symbol character follows.
15137
15138 2011-07-17 Paul Eggert <eggert@cs.ucla.edu>
15139
15140 * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002)
15141 This works around a problem with the previous change to Fcopy_file.
15142 Recent glibc declares fchown with __attribute__((warn_unused_result)),
15143 and without this change, GCC might complain about discarding
15144 fchown's return value.
15145
15146 2011-07-16 Juanma Barranquero <lekktu@gmail.com>
15147
15148 * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059).
15149
15150 2011-07-16 Paul Eggert <eggert@cs.ucla.edu>
15151
15152 * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002)
15153
15154 2011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
15155
15156 * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since
15157 it's used from the C level.
15158
15159 * process.c: Use the same condition for POLL_FOR_INPUT in both
15160 keyboard.c and process.c (bug#1858).
15161
15162 2011-07-09 Lawrence Mitchell <wence@gmx.li>
15163
15164 * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable.
15165 (Fgnutls_boot): Use it.
15166
15167 2011-07-15 Andreas Schwab <schwab@linux-m68k.org>
15168
15169 * doc.c (Fsubstitute_command_keys): Revert last change.
15170
15171 2011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
15172
15173 * doc.c (Fsubstitute_command_keys): Clarify that \= really only
15174 quotes the next character, and doesn't affect other longer
15175 sequences (bug#8935).
15176
15177 * lread.c (syms_of_lread): Clarify that is isn't only
15178 `eval-buffer' and `eval-defun' that's affected by
15179 `lexical-binding' (bug#8460).
15180
15181 2011-07-15 Eli Zaretskii <eliz@gnu.org>
15182
15183 * xdisp.c (move_it_in_display_line_to): Fix vertical motion with
15184 bidi redisplay when a line includes both an image and is truncated.
15185
15186 2011-07-14 Paul Eggert <eggert@cs.ucla.edu>
15187
15188 Fix minor problems found by static checking.
15189 * bidi.c (bidi_cache_size): Now EMACS_INT, not size_t.
15190 (elsz): Now a signed constant, not a size_t var. We prefer signed
15191 types to unsigned, to avoid integer comparison confusion. Without
15192 this change, GCC 4.6.1 with -Wunsafe-loop-optimizations complains
15193 "cannot optimize loop, the loop counter may overflow", a symptom
15194 of the confusion.
15195 * indent.c (Fvertical_motion): Mark locals as initialized.
15196 * xdisp.c (reseat_to_string): Fix pointer signedness issue.
15197
15198 2011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
15199
15200 * search.c (Fre_search_backward): Mention `case-fold-search' in
15201 all the re_search_* functions (bug#8138).
15202
15203 * keyboard.c (Fopen_dribble_file): Document when the file is
15204 closed (bug#8056).
15205
15206 2011-07-14 Eli Zaretskii <eliz@gnu.org>
15207
15208 * bidi.c (bidi_dump_cached_states): Fix format of displaying
15209 bidi_cache_idx.
15210
15211 Support bidi reordering of display and overlay strings.
15212 * xdisp.c (compute_display_string_pos)
15213 (compute_display_string_end): Accept additional argument STRING.
15214 (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL.
15215 (reseat_to_string): Initialize bidi_it->string.s and
15216 bidi_it->string.schars.
15217 (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to
15218 NULL (avoids a crash in bidi_paragraph_init).
15219 Initialize itb.string.lstring.
15220 (init_iterator): Call bidi_init_it only of a valid
15221 buffer position was specified. Initialize paragraph_embedding to
15222 L2R.
15223 (reseat_to_string): Initialize the bidi iterator.
15224 (display_string): If we need to ignore text properties of
15225 LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The
15226 original value of -1 will not work with bidi.)
15227 (compute_display_string_pos): First arg is now struct
15228 `text_pos *'; all callers changed. Support display properties on
15229 Lisp strings.
15230 (compute_display_string_end): Support display properties on Lisp
15231 strings.
15232 (init_iterator, reseat_1, reseat_to_string): Initialize the
15233 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS
15234 when iterating on a string not from display properties).
15235 (compute_display_string_pos, compute_display_string_end):
15236 Fix calculation of the object to scan. Fixes an error when using
15237 arrow keys.
15238 (next_element_from_buffer): Don't abort when IT_CHARPOS is before
15239 base_level_stop; instead, set base_level_stop to BEGV.
15240 Fixes crashes in vertical-motion.
15241 (next_element_from_buffer): Improve commentary for when
15242 the iterator is before prev_stop.
15243 (init_iterator): Initialize bidi_p from the default value of
15244 bidi-display-reordering, not from buffer-local value. Use the
15245 buffer-local value only if initializing for buffer iteration.
15246 (handle_invisible_prop): Support invisible properties on strings
15247 that are being bidi-reordered.
15248 (set_iterator_to_next): Support bidi reordering of C strings and
15249 Lisp strings.
15250 (next_element_from_string): Support bidi reordering of Lisp
15251 strings.
15252 (handle_stop_backwards): Support Lisp strings as well.
15253 (display_string): Support display of R2L glyph rows.
15254 Use IT_STRING_CHARPOS when displaying from a Lisp string.
15255 (init_iterator): Don't initialize it->bidi_p for strings
15256 here.
15257 (reseat_to_string): Initialize it->bidi_p for strings here.
15258 (next_element_from_string, next_element_from_c_string)
15259 (next_element_from_buffer): Add xassert's for correspondence
15260 between IT's object being iterated and it->bidi_it.string
15261 structure.
15262 (face_before_or_after_it_pos): Support bidi iteration.
15263 (next_element_from_c_string): Handle the case of the first string
15264 character that is not the first one in the visual order.
15265 (get_visually_first_element): New function, refactored from common
15266 parts of next_element_from_buffer, next_element_from_string, and
15267 next_element_from_c_string.
15268 (tool_bar_lines_needed, redisplay_tool_bar)
15269 (display_menu_bar): Force left-to-right direction. Add a FIXME
15270 comment for making that be controlled by a user option.
15271 (push_it, pop_it): Save and restore the state of the
15272 bidi iterator. Save and restore the bidi_p flag.
15273 (pop_it): Iterate out of display property for string iteration as
15274 well.
15275 (iterate_out_of_display_property): Support iteration over strings.
15276 (handle_single_display_spec): Set up it->bidi_it for iteration
15277 over a display string, and call bidi_init_it.
15278 (handle_single_display_spec, next_overlay_string)
15279 (get_overlay_strings_1, push_display_prop): Set up the bidi
15280 iterator for displaying display or overlay strings.
15281 (forward_to_next_line_start): Don't use the shortcut if
15282 bidi-iterating.
15283 (back_to_previous_visible_line_start): If handle_display_prop
15284 pushed the iterator stack, restore the internal state of the bidi
15285 iterator by calling bidi_pop_it same number of times.
15286 (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero,
15287 and we are bidi-iterating, don't decrement the iterator position;
15288 instead, set the first_elt flag in the bidi iterator, to produce
15289 the same effect.
15290 (reseat_1): Remove redundant setting of string_from_display_prop_p.
15291 (push_display_prop): xassert that we are iterating a buffer.
15292 (push_it, pop_it): Save and restore paragraph_embedding member.
15293 (handle_single_display_spec, next_overlay_string)
15294 (get_overlay_strings_1, reseat_1, reseat_to_string)
15295 (push_display_prop): Set up the `unibyte' member of bidi_it.string
15296 correctly. Don't assume unibyte strings are not bidi-reordered.
15297 (compute_display_string_pos)
15298 (compute_display_string_end): Fix handling the case of C string.
15299 (push_it, pop_it): Save and restore from_disp_prop_p.
15300 (handle_single_display_spec, push_display_prop): Set the
15301 from_disp_prop_p flag.
15302 (get_overlay_strings_1): Reset the from_disp_prop_p flag.
15303 (pop_it): Call iterate_out_of_display_property only if we are
15304 popping after iteration over a string that came from a display
15305 property. Fix a typo in popping stretch info. Add an assertion
15306 for verifying that the iterator position is in sync with the bidi
15307 iterator.
15308 (handle_single_display_spec, get_overlay_strings_1)
15309 (push_display_prop): Fix initialization of paragraph direction for
15310 string when that of the parent object is not yet determined.
15311 (reseat_1): Call bidi_init_it to resync the bidi
15312 iterator with IT's position. (Bug#7616)
15313 (find_row_edges): If ROW->start.pos gives position
15314 smaller than min_pos, use it as ROW->minpos. (Bug#7616)
15315 (handle_stop, back_to_previous_visible_line_start, reseat_1):
15316 Reset the from_disp_prop_p flag.
15317 (SAVE_IT, RESTORE_IT): New macros.
15318 (pos_visible_p, face_before_or_after_it_pos)
15319 (back_to_previous_visible_line_start)
15320 (move_it_in_display_line_to, move_it_in_display_line)
15321 (move_it_to, move_it_vertically_backward, move_it_by_lines)
15322 (try_scrolling, redisplay_window, display_line): Use them when
15323 saving a temporary copy of the iterator and restoring it back.
15324 (back_to_previous_visible_line_start, reseat_1)
15325 (init_iterator): Empty the bidi cache "stack".
15326 (move_it_in_display_line_to): If iterator ended up at
15327 EOL, but we never saw any buffer positions smaller than
15328 to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor
15329 motion in bidi-reordered lines.
15330 (move_it_in_display_line_to): Record prev_method and prev_pos
15331 immediately before the call to set_iterator_to_next. Fixes cursor
15332 motion in bidi-reordered lines with stretch glyphs and strings
15333 displayed in margins. (Bug#8133) (Bug#8867)
15334 Return MOVE_POS_MATCH_OR_ZV only if iterator position is past
15335 TO_CHARPOS.
15336 (pos_visible_p): Support positions in bidi-reordered lines.
15337 Save and restore bidi cache.
15338
15339 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int.
15340 (bidi_paragraph_info): Delete unused struct.
15341 (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT.
15342 (bidi_cache_start): New variable.
15343 (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not
15344 to zero.
15345 (bidi_cache_fetch_state, bidi_cache_search)
15346 (bidi_cache_find_level_change, bidi_cache_iterator_state)
15347 (bidi_cache_find, bidi_peek_at_next_level)
15348 (bidi_level_of_next_char, bidi_find_other_level_edge)
15349 (bidi_move_to_visually_next): Compare cache index with
15350 bidi_cache_start rather than with zero.
15351 (bidi_fetch_char): Accept new argument STRING; all callers
15352 changed. Support iteration over a string. Support strings with
15353 display properties. Support unibyte strings. Fix the type of
15354 `len' according to what STRING_CHAR_AND_LENGTH expects.
15355 (bidi_paragraph_init, bidi_resolve_explicit_1)
15356 (bidi_resolve_explicit, bidi_resolve_weak)
15357 (bidi_level_of_next_char, bidi_move_to_visually_next):
15358 Support iteration over a string.
15359 (bidi_set_sor_type, bidi_resolve_explicit_1)
15360 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
15361 can now be zero (for strings); special values 0 and -1 were
15362 changed to -1 and -2, respectively.
15363 (bidi_char_at_pos): New function.
15364 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak):
15365 Call it instead of FETCH_MULTIBYTE_CHAR.
15366 (bidi_move_to_visually_next): Abort if charpos or bytepos were not
15367 initialized to valid values.
15368 (bidi_init_it): Don't initialize charpos and bytepos with invalid
15369 values.
15370 (bidi_level_of_next_char): Allow the sentinel "position" to pass
15371 the test for valid cached positions. Fix the logic for looking up
15372 the sentinel state in the cache. GCPRO the Lisp string we are
15373 iterating.
15374 (bidi_push_it, bidi_pop_it): New functions.
15375 (bidi_initialize): Initialize the bidi cache start stack pointer.
15376 (bidi_cache_ensure_space): New function, refactored from part of
15377 bidi_cache_iterator_state. Don't assume the required size is just
15378 one BIDI_CACHE_CHUNK away.
15379 (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE.
15380 (bidi_count_bytes, bidi_char_at_pos): New functions.
15381 (bidi_cache_search): Don't assume bidi_cache_last_idx is
15382 always valid if bidi_cache_idx is valid.
15383 (bidi_cache_find_level_change): xassert that bidi_cache_last_idx
15384 is valid if it's going to be used.
15385 (bidi_shelve_cache, bidi_unshelve_cache): New functions.
15386 (bidi_cache_fetch_state, bidi_cache_search)
15387 (bidi_cache_find_level_change, bidi_cache_ensure_space)
15388 (bidi_cache_iterator_state, bidi_cache_find)
15389 (bidi_find_other_level_edge, bidi_cache_start_stack):
15390 All variables related to cache indices are now EMACS_INT.
15391
15392 * dispextern.h (struct bidi_string_data): New structure.
15393 (struct bidi_it): New member `string'. Make flag members be 1-bit
15394 fields, and put them last in the struct.
15395 (compute_display_string_pos, compute_display_string_end):
15396 Update prototypes.
15397 (bidi_push_it, bidi_pop_it): Add prototypes.
15398 (struct iterator_stack_entry): New members bidi_p,
15399 paragraph_embedding, and from_disp_prop_p.
15400 (struct it): Member bidi_p is now a bit field 1 bit wide.
15401 (bidi_shelve_cache, bidi_unshelve_cache):
15402 Declare prototypes.
15403
15404 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
15405 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
15406 and vector-like objects.
15407
15408 * dispnew.c (buffer_posn_from_coords): Save and restore the bidi
15409 cache around display iteration.
15410
15411 * window.c (Fwindow_end, window_scroll_pixel_based)
15412 (displayed_window_lines, Frecenter): Save and restore the bidi
15413 cache around display iteration.
15414
15415 2011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
15416
15417 * editfns.c (Fdelete_region): Clarify the use of the named
15418 parameters (bug#6788).
15419
15420 2011-07-14 Martin Rudalics <rudalics@gmx.at>
15421
15422 * indent.c (Fvertical_motion): Set and restore w->pointm when
15423 saving and restoring the window's buffer (Bug#9006).
15424
15425 2011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
15426
15427 * editfns.c (Fstring_to_char): Clarify just what is returned
15428 (bug#6576). Text by Eli Zaretskii.
15429
15430 2011-07-13 Juanma Barranquero <lekktu@gmail.com>
15431
15432 * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059).
15433
15434 2011-07-13 Eli Zaretskii <eliz@gnu.org>
15435
15436 * buffer.c (mmap_find): Fix a typo.
15437
15438 2011-07-13 Johan Bockgård <bojohan@gnu.org>
15439
15440 Fix execution of x selection hooks.
15441 * xselect.c (Qx_lost_selection_functions)
15442 (Qx_sent_selection_functions): New vars.
15443 (syms_of_xselect): DEFSYM them.
15444 (x_handle_selection_request): Pass Qx_sent_selection_functions
15445 rather than Vx_sent_selection_functions to Frun_hook_with_args.
15446 (x_handle_selection_clear,x_clear_frame_selections):
15447 Pass Qx_lost_selection_functions rather than
15448 Vx_lost_selection_functions to Frun_hook_with_args.
15449
15450 2011-07-13 Paul Eggert <eggert@cs.ucla.edu>
15451
15452 * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking.
15453 The old code sometimes used this field without initializing it.
15454
15455 * alloc.c (gc_sweep): Don't read past end of array.
15456 In theory, the old code could also have corrupted Emacs internals,
15457 though it'd be very unlikely.
15458
15459 2011-07-12 Andreas Schwab <schwab@linux-m68k.org>
15460
15461 * character.c (Fcharacterp): Don't advertise optional ignored
15462 argument. (Bug#4026)
15463
15464 2011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
15465
15466 * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier
15467 key" (bug#4257).
15468
15469 * window.c (Fset_window_start): Doc fix (bug#4199).
15470 (Fset_window_hscroll): Ditto.
15471
15472 2011-07-12 Paul Eggert <eggert@cs.ucla.edu>
15473
15474 Fix minor new problems caught by GCC 4.6.1.
15475 * term.c (init_tty): Remove unused local.
15476 * xsettings.c (store_monospaced_changed): Define this function only
15477 if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's
15478 not used otherwise.
15479
15480 2011-07-12 Chong Yidong <cyd@stupidchicken.com>
15481
15482 * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300).
15483
15484 2011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
15485
15486 * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows
15487 are the mini-buffer and the echo area (bug#3320).
15488
15489 * term.c (init_tty): Remove support for supdup, c10 and perq
15490 terminals, which are no longer supported (bug#1482).
15491
15492 2011-07-10 Johan Bockgård <bojohan@gnu.org>
15493
15494 * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check.
15495
15496 2011-07-10 Jan Djärv <jan.h.d@swipnet.se>
15497
15498 * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event
15499 for non-popups (Bug#3642).
15500
15501 2011-07-10 Andreas Schwab <schwab@linux-m68k.org>
15502
15503 * alloc.c (reset_malloc_hooks): Protoize.
15504 * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge)
15505 (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise.
15506 * cm.c (losecursor): Likewise.
15507 * data.c (fmod): Likewise.
15508 * dispnew.c (swap_glyphs_in_rows): Likewise.
15509 * emacs.c (memory_warning_signal): Likewise.
15510 * floatfns.c (float_error): Likewise.
15511 * font.c (check_gstring, check_otf_features, otf_tag_symbol)
15512 (otf_open, font_otf_capability, generate_otf_features)
15513 (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
15514 Likewise.
15515 * image.c (pbm_read_file): Likewise.
15516 * indent.c (string_display_width): Likewise.
15517 * intervals.c (check_for_interval, search_for_interval)
15518 (inc_interval_count, count_intervals, root_interval)
15519 (adjust_intervals_for_insertion, make_new_interval): Likewise.
15520 * lread.c (defalias): Likewise.
15521 * ralloc.c (r_alloc_check): Likewise.
15522 * regex.c (set_image_of_range_1, set_image_of_range)
15523 (regex_grow_registers): Likewise.
15524 * sysdep.c (strerror): Likewise.
15525 * termcap.c (valid_filename_p, tprint, main): Likewise.
15526 * tparam.c (main): Likewise.
15527 * unexhp9k800.c (run_time_remap, save_data_space)
15528 (update_file_ptrs, read_header, write_header, calculate_checksum)
15529 (copy_file, copy_rest, display_header): Likewise.
15530 * widget.c (mark_shell_size_user_specified, create_frame_gcs):
15531 Likewise.
15532 * xdisp.c (check_it): Likewise.
15533 * xfaces.c (register_color, unregister_color, unregister_colors):
15534 Likewise.
15535 * xfns.c (print_fontset_result): Likewise.
15536 * xrdb.c (member, fatal, main): Likewise.
15537
15538 2011-07-10 Paul Eggert <eggert@cs.ucla.edu>
15539
15540 Fix minor problems found by static checking (Bug#9031).
15541 * chartab.c (char_table_set_range, map_sub_char_table):
15542 Remove unused locals.
15543 (uniprop_table): Now static.
15544 * composite.c (_work_char): Remove unused static var.
15545
15546 2011-07-09 Juanma Barranquero <lekktu@gmail.com>
15547
15548 * chartab.c (uniprop_table_uncompress): Remove unused local variable.
15549
15550 2011-07-09 Jan Djärv <jan.h.d@swipnet.se>
15551
15552 * gtkutil.c (qttip_cb): Remove code without function.
15553
15554 2011-07-09 Eli Zaretskii <eliz@gnu.org>
15555
15556 * w32.c (pthread_sigmask): New stub.
15557
15558 2011-07-08 Paul Eggert <eggert@cs.ucla.edu>
15559
15560 Use pthread_sigmask, not sigprocmask (Bug#9010).
15561 sigprocmask is portable only for single-threaded applications, and
15562 Emacs can be multi-threaded when it uses GTK.
15563 * Makefile.in (LIB_PTHREAD_SIGMASK): New macro.
15564 (LIBES): Use it.
15565 * callproc.c (Fcall_process):
15566 * process.c (create_process):
15567 * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask):
15568 Use pthread_sigmask, not sigprocmask.
15569
15570 2011-07-08 Jan Djärv <jan.h.d@swipnet.se>
15571
15572 * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget.
15573 (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was
15574 wrong (Bug#8591).
15575
15576 2011-07-08 Jan Djärv <jan.h.d@swipnet.se>
15577
15578 * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment.
15579 Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591).
15580 (xg_hide_tooltip): Fix comment.
15581
15582 * nsterm.m (initFrameFromEmacs): Don't use ns_return_types
15583 in registerServicesMenuSendTypes.
15584 (validRequestorForSendType): Don't check ns_return_types.
15585
15586 * nsfns.m (Fx_open_connection): Put NSStringPboardType into
15587 ns_return_type.
15588
15589 2011-07-08 Jason Rumney <jasonr@gnu.org>
15590
15591 * w32term.c (x_make_frame_visible): Use SH_SHOWNORMAL rather than
15592 SH_SHOW for hidden windows (Bug#5482).
15593
15594 * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using
15595 frame struct members of non-existent frames (Bug#6284).
15596
15597 2011-07-08 Jan Djärv <jan.h.d@swipnet.se>
15598
15599 * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and
15600 variable firstTime not needed on OSX >= 10.6.
15601 (setPosition): setFloatValue:knobProportion: is deprecated on OSX
15602 >= 10.5. Use setKnobProportion, setDoubleValue.
15603
15604 * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4)
15605 (MAC_OS_X_VERSION_10_5): Define if not defined.
15606 (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6.
15607 (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6.
15608 (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6.
15609
15610 * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods
15611 cString and lossyCString on OSX >= 10.4.
15612
15613 * nsmenu.m (fillWithWidgetValue): Don't use deprecated method
15614 sizeToFit on OSX >= 10.2.
15615
15616 * nsimage.m (allocInitFromFile): Don't use deprecated method
15617 bestRepresentationForDevice on OSX >= 10.6.
15618
15619 * nsfns.m (check_ns_display_info): Cast to long and use %ld in error
15620 to avoid warning.
15621
15622 * emacs.c: Declare unexec_init_emacs_zone.
15623
15624 * nsgui.h: Fix compiler warning about gnulib redefining verify.
15625
15626 * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842).
15627
15628 * nsmenu.m (ns_update_menubar): Remove useless setDelegate call
15629 on svcsMenu (Bug#8842).
15630
15631 * nsfns.m (Fx_open_connection): Remove NSStringPboardType from
15632 ns_return_types.
15633 (Fns_list_services): Just return Qnil on 10.6, code not working there.
15634
15635 * nsterm.m (QUTF8_STRING): Declare.
15636 (initFrameFromEmacs): Call registerServicesMenuSendTypes.
15637 (validRequestorForSendType): Return type is (id).
15638 Change indexOfObjectIdenticalTo to indexOfObject.
15639 Check if we have local selection before returning self (Bug#8842).
15640 (writeSelectionToPasteboard): Put local selection into paste board
15641 if we have a local selection (Bug#8842).
15642 (syms_of_nsterm): DEFSYM QUTF8_STRING.
15643
15644 * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m.
15645 (ns_get_local_selection): Declare.
15646
15647 2011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
15648
15649 * keymap.c (describe_map_tree): Don't insert a double newline at
15650 the end of the buffer (bug#1169) and return whether we inserted
15651 something.
15652
15653 * callint.c (Fcall_interactively): Change "reading args" to
15654 "providing args" to try to clarify what it does (bug#1010).
15655
15656 2011-07-07 Kenichi Handa <handa@m17n.org>
15657
15658 * composite.c (composition_compute_stop_pos): Ignore a static
15659 composition starting before CHARPOS (Bug#8915).
15660
15661 * xdisp.c (handle_composition_prop): Likewise.
15662
15663 2011-07-07 Eli Zaretskii <eliz@gnu.org>
15664
15665 * term.c (produce_glyphs) <xassert>: Allow IT_GLYPHLESS in it->what.
15666 (Bug#9015)
15667
15668 2011-07-07 Kenichi Handa <handa@m17n.org>
15669
15670 * character.h (unicode_category_t): New enum type.
15671
15672 * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types.
15673 (Qchar_code_property_table): New variable.
15674 (UNIPROP_TABLE_P, UNIPROP_GET_DECODER)
15675 (UNIPROP_COMPRESSED_FORM_P): New macros.
15676 (char_table_ascii): Uncompress the compressed values.
15677 (sub_char_table_ref): New arg is_uniprop. Callers changed.
15678 Uncompress the compressed values.
15679 (sub_char_table_ref_and_range): Likewise.
15680 (char_table_ref_and_range): Uncompress the compressed values.
15681 (sub_char_table_set): New arg is_uniprop. Callers changed.
15682 Uncompress the compressed values.
15683 (sub_char_table_set_range): Args changed. Callers changed.
15684 (char_table_set_range): Adjuted for the above change.
15685 (map_sub_char_table): Delete args default_val and parent. Add arg
15686 top. Give decoded values to a Lisp function.
15687 (map_char_table): Adjust for the above change. Give decoded
15688 values to a Lisp function. Gcpro more variables.
15689 (uniprop_table_uncompress)
15690 (uniprop_decode_value_run_length): New functions.
15691 (uniprop_decoder, uniprop_decoder_count): New variables.
15692 (uniprop_get_decoder, uniprop_encode_value_character)
15693 (uniprop_encode_value_run_length, uniprop_encode_value_numeric):
15694 New functions.
15695 (uniprop_encoder, uniprop_encoder_count): New variables.
15696 (uniprop_get_encoder, uniprop_table)
15697 (Funicode_property_table_internal, Fget_unicode_property_internal)
15698 (Fput_unicode_property_internal): New functions.
15699 (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr
15700 Sunicode_property_table_internal, Sget_unicode_property_internal,
15701 and Sput_unicode_property_internal. Defvar_lisp
15702 char-code-property-alist.
15703
15704 * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of
15705 Vunicode_category_table.
15706
15707 * font.c (font_range): Adjust for the change of
15708 Vunicode_category_table.
15709
15710 2011-07-07 Dan Nicolaescu <dann@ics.uci.edu>
15711
15712 * m/iris4d.h: Remove file, move contents ...
15713 * s/irix6-5.h: ... here.
15714
15715 2011-07-06 Paul Eggert <eggert@cs.ucla.edu>
15716
15717 Remove unportable assumption about struct layout (Bug#8884).
15718 * alloc.c (mark_buffer):
15719 * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables)
15720 (clone_per_buffer_values): Don't assume that
15721 sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
15722 This isn't true in general, and it's particularly not true
15723 if Emacs is configured with --with-wide-int.
15724 * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
15725 New macros, used in the buffer.c change.
15726
15727 2011-07-05 Jan Djärv <jan.h.d@swipnet.se>
15728
15729 * xsettings.c: Use both GConf and GSettings if both are available.
15730 (store_config_changed_event): Add comment.
15731 (dpyinfo_valid, store_font_name_changed, map_tool_bar_style)
15732 (store_tool_bar_style_changed): New functions.
15733 (store_monospaced_changed): Add comment. Call dpyinfo_valid.
15734 (struct xsettings): Move font inside HAVE_XFT.
15735 (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
15736 (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT.
15737 Move inside HAVE_XFT.
15738 (something_changed_gsettingsCB): Rename from something_changedCB.
15739 Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
15740 also.
15741 (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
15742 (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
15743 (something_changed_gconfCB): Rename from something_changedCB.
15744 Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
15745 (parse_settings): Move check for font inside HAVE_XFT.
15746 (read_settings, apply_xft_settings): Add comment.
15747 (read_and_apply_settings): Add comment. Call map_tool_bar_style and
15748 store_tool_bar_style_changed. Move check for font inside HAVE_XFT and
15749 call store_font_name_changed.
15750 (xft_settings_event): Add comment.
15751 (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE
15752 and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT.
15753 (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE
15754 and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT.
15755 (xsettings_initialize): Call init_gsettings last.
15756 (xsettings_get_system_font, xsettings_get_system_normal_font):
15757 Add comment.
15758
15759 2011-07-05 Paul Eggert <eggert@cs.ucla.edu>
15760
15761 Random fixes. E.g., (random) never returned negative values.
15762 * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the
15763 subseconds part to the entropy, as that's a bit more random.
15764 Prefer signed to unsigned, since the signedness doesn't matter and
15765 in general we prefer signed. When given a limit, use a
15766 denominator equal to INTMASK + 1, not to VALMASK + 1, because the
15767 latter isn't right if USE_2_TAGS_FOR_INTS.
15768 * sysdep.c (get_random): Return a value in the range 0..INTMASK,
15769 not 0..VALMASK. Don't discard "excess" bits that random () returns.
15770
15771 2011-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
15772
15773 * textprop.c (text_property_stickiness):
15774 Obey Vtext_property_default_nonsticky.
15775 (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky.
15776 * w32fns.c (syms_of_w32fns):
15777 * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default.
15778
15779 2011-07-04 Paul Eggert <eggert@cs.ucla.edu>
15780
15781 * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR.
15782 This is more efficient than Ffile_directory_p and avoids a minor race.
15783
15784 2011-07-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
15785
15786 * buffer.c (Foverlay_put): Say what the return value is
15787 (bug#7835).
15788
15789 * fileio.c (barf_or_query_if_file_exists): Check first if the file
15790 is a directory before asking whether to use the file name
15791 (bug#7564).
15792 (barf_or_query_if_file_exists): Make the "File is a directory"
15793 error be more correct.
15794
15795 * fns.c (Frequire): Remove the mention of the .gz files, since
15796 that's installation-specific, but keep the mention of
15797 `get-load-suffixes'.
15798
15799 2011-07-04 Paul Eggert <eggert@cs.ucla.edu>
15800
15801 * editfns.c (Fformat_time_string): Don't assume strlen fits in int.
15802 Report string overflow if the output is too long.
15803
15804 2011-07-04 Juanma Barranquero <lekktu@gmail.com>
15805
15806 * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
15807 (syms_of_gnutls): Remove duplicate DEFSYM for
15808 Qgnutls_bootprop_verify_hostname_error, an error for
15809 Qgnutls_bootprop_verify_error (which is no longer used).
15810
15811 * eval.c (find_handler_clause): Remove parameters `sig' and `data',
15812 unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed.
15813 Also (re)move comments that are misplaced or no longer relevant.
15814
15815 2011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
15816
15817 * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813).
15818
15819 2011-07-03 Chong Yidong <cyd@stupidchicken.com>
15820
15821 * xfaces.c (Finternal_merge_in_global_face): Modify the foreground
15822 and background color parameters if they have been changed.
15823
15824 2011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
15825
15826 * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659).
15827
15828 2011-07-03 Paul Eggert <eggert@cs.ucla.edu>
15829
15830 * xsettings.c (SYSTEM_FONT): Define only when used.
15831 No need to define when HAVE_GSETTINGS || !HAVE_XFT.
15832
15833 * keymap.c (access_keymap_1): Now static.
15834
15835 2011-07-02 Chong Yidong <cyd@stupidchicken.com>
15836
15837 * keyboard.c (command_loop_1): If a down-mouse event is unbound,
15838 leave any prefix arg for the up event (Bug#1586).
15839
15840 2011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
15841
15842 * lread.c (syms_of_lread): Mention single symbols defined by
15843 `defvar' or `defconst' (bug#7154).
15844
15845 * fns.c (Frequire): Mention .el.gz files (bug#7314).
15846 (Frequire): Mention get-load-suffixes.
15847
15848 2011-07-02 Martin Rudalics <rudalics@gmx.at>
15849
15850 * window.h (window): Remove clone_number slot.
15851 * window.c (Fwindow_clone_number, Fset_window_clone_number):
15852 Remove.
15853 (make_parent_window, make_window, saved_window)
15854 (Fset_window_configuration, save_window_save): Don't deal with
15855 clone numbers.
15856 * buffer.c (Qclone_number): Remove declaration.
15857 (sort_overlays, overlay_strings): Don't deal with clone numbers.
15858
15859 2011-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
15860
15861 Add multiple inheritance to keymaps.
15862 * keymap.c (Fmake_composed_keymap): New function.
15863 (Fset_keymap_parent): Simplify.
15864 (fix_submap_inheritance): Remove.
15865 (access_keymap_1): New function extracted from access_keymap to handle
15866 embedded parents and handle lists of maps.
15867 (access_keymap): Use it.
15868 (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
15869 (Fcopy_keymap): Handle embedded parents.
15870 (Fcommand_remapping, define_as_prefix): Simplify.
15871 (Fkey_binding): Simplify.
15872 (syms_of_keymap): Move minibuffer-local-completion-map,
15873 minibuffer-local-filename-completion-map,
15874 minibuffer-local-must-match-map, and
15875 minibuffer-local-filename-must-match-map to Elisp.
15876 (syms_of_keymap): Defsubr make-composed-keymap.
15877 * keyboard.c (menu_bar_items): Use map_keymap_canonical.
15878 (parse_menu_item): Trivial simplification.
15879
15880 2011-07-01 Glenn Morris <rgm@gnu.org>
15881
15882 * Makefile.in (SETTINGS_LIBS): Fix typo.
15883
15884 2011-07-01 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
15885
15886 * coding.c (Fencode_coding_string): Record the last coding system
15887 used, as the function doc string says (bug#8738).
15888
15889 2011-07-01 Jan Djärv <jan.h.d@swipnet.se>
15890
15891 * xsettings.c (store_monospaced_changed): Take new font as arg and
15892 check for change against current_mono_font.
15893 (EMACS_TYPE_SETTINGS): Remove this and related defines.
15894 (emacs_settings_constructor, emacs_settings_get_property)
15895 (emacs_settings_set_property, emacs_settings_class_init)
15896 (emacs_settings_init, gsettings_obj): Remove.
15897 (something_changedCB): New function for HAVE_GSETTINGS.
15898 (something_changedCB): HAVE_GCONF: Call store_monospaced_changed
15899 with value as argument.
15900 (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
15901 g_settings_new (Bug#8967). Do not create gsettings_obj.
15902 Remove calls to g_settings_bind. Connect something_changedCB to
15903 "changed".
15904
15905 * xgselect.c: Add defined (HAVE_GSETTINGS).
15906 (xgselect_initialize): Ditto.
15907
15908 * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h
15909 (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
15910 xg_select.
15911
15912 2011-07-01 Paul Eggert <eggert@cs.ucla.edu>
15913
15914 * eval.c (struct backtrace): Simplify and port the data structure.
15915 Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
15916 signed bit field, as this assumption is not portable and it makes
15917 Emacs crash when compiled with Sun C 5.8 on sparc. Do not use
15918 "char debug_on_exit : 1" as this is not portable either; instead,
15919 use the portable "unsigned int debug_on_exit : 1". Remove unused
15920 member evalargs. Remove obsolete comments about cc bombing out.
15921
15922 2011-06-30 Jan Djärv <jan.h.d@swipnet.se>
15923
15924 * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS.
15925 Let HAVE_GSETTINGS override HAVE_GCONF.
15926 (store_monospaced_changed): New function.
15927 (EMACS_SETTINGS): A new type derived from GObject to handle
15928 GSettings notifications.
15929 (emacs_settings_constructor, emacs_settings_get_property)
15930 (emacs_settings_set_property, emacs_settings_class_init):
15931 New functions.
15932 (gsettings_client, gsettings_obj): New variables.
15933 (GSETTINGS_SCHEMA): New define.
15934 (something_changedCB): Call store_monospaced_changed.
15935 (init_gsettings): New function.
15936 (xsettings_initialize): Call init_gsettings.
15937 (syms_of_xsettings): Initialize gsettings_client, gsettings_obj
15938 to NULL.
15939
15940 * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from
15941 GCONF_CFLAGS/LIBS.
15942
15943 2011-06-29 Martin Rudalics <rudalics@gmx.at>
15944
15945 * window.c (resize_root_window, grow_mini_window)
15946 (shrink_mini_window): Rename Qresize_root_window to
15947 Qwindow_resize_root_window and Qresize_root_window_vertically to
15948 Qwindow_resize_root_window_vertically.
15949
15950 2011-06-28 Paul Eggert <eggert@cs.ucla.edu>
15951
15952 * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var.
15953
15954 2011-06-27 Juanma Barranquero <lekktu@gmail.com>
15955
15956 * makefile.w32-in: Redesign dependencies so they reflect more
15957 clearly which files are directly included by each source file,
15958 and not through other includes.
15959
15960 2011-06-27 Martin Rudalics <rudalics@gmx.at>
15961
15962 * buffer.c (Qclone_number): Declare static and DEFSYM it.
15963 (sort_overlays, overlay_strings): When an overlay's clone number
15964 matches the window's clone number process the overlay even if
15965 the overlay's window property doesn't match the current window.
15966
15967 * window.c (Fwindow_vchild): Rename to Fwindow_top_child.
15968 (Fwindow_hchild): Rename to Fwindow_left_child.
15969 (Fwindow_next): Rename to Fwindow_next_sibling.
15970 (Fwindow_prev): Rename to Fwindow_prev_sibling.
15971 (resize_window_check): Rename to window_resize_check.
15972 (resize_window_apply): Rename to window_resize_apply.
15973 (Fresize_window_apply): Rename to Fwindow_resize_apply.
15974 (Fdelete_other_windows_internal, resize_frame_windows)
15975 (Fsplit_window_internal, Fdelete_window_internal)
15976 (grow_mini_window, shrink_mini_window)
15977 (Fresize_mini_window_internal): Fix callers accordingly.
15978
15979 2011-06-26 Jan Djärv <jan.h.d@swipnet.se>
15980
15981 * emacsgtkfixed.h: State that this is only used with Gtk+3.
15982 (emacs_fixed_set_min_size): Remove.
15983 (emacs_fixed_new): Take frame as argument.
15984
15985 * emacsgtkfixed.c: State that this is only used with Gtk+3.
15986 (_EmacsFixedPrivate): Remove minwidth/height.
15987 Add struct frame *f.
15988 (emacs_fixed_init): Initialize priv->f.
15989 (get_parent_class, emacs_fixed_set_min_size): Remove.
15990 (emacs_fixed_new): Set priv->f to argument.
15991 (emacs_fixed_get_preferred_width)
15992 (emacs_fixed_get_preferred_height): Use min_width/height from
15993 frames size_hint to set minimum and natural (Bug#8919).
15994 (XSetWMSizeHints, XSetWMNormalHints): Override these functions
15995 and use min_width/height from frames size_hint to set
15996 min_width/height (Bug#8919).
15997
15998 * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new.
15999 (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size.
16000 Fix indentation.
16001
16002 2011-06-26 Eli Zaretskii <eliz@gnu.org>
16003
16004 * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling
16005 bidi_at_paragraph_end, since fast_looking_at doesn't like to be
16006 called at ZV.
16007
16008 2011-06-26 Chong Yidong <cyd@stupidchicken.com>
16009
16010 * process.c (wait_reading_process_output): Bypass select if
16011 waiting for a cell while ignoring keyboard input, and input is
16012 pending. Suggested by Jan Djärv (Bug#8869).
16013
16014 2011-06-25 Paul Eggert <eggert@cs.ucla.edu>
16015
16016 Use gnulib's dup2 module instead of rolling our own.
16017 * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this.
16018
16019 2011-06-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
16020
16021 * dispnew.c (scrolling_window): Before scrolling, turn off a
16022 mouse-highlight in the window being scrolled.
16023
16024 2011-06-24 Juanma Barranquero <lekktu@gmail.com>
16025
16026 Move DEFSYM to lisp.h and use everywhere.
16027
16028 * character.h (DEFSYM): Move declaration...
16029 * lisp.h (DEFSYM): ...here.
16030
16031 * gnutls.c:
16032 * minibuf.c:
16033 * w32menu.c:
16034 * w32proc.c:
16035 * w32select.c: Don't include character.h.
16036
16037 * alloc.c (syms_of_alloc):
16038 * buffer.c (syms_of_buffer):
16039 * bytecode.c (syms_of_bytecode):
16040 * callint.c (syms_of_callint):
16041 * casefiddle.c (syms_of_casefiddle):
16042 * casetab.c (init_casetab_once):
16043 * category.c (init_category_once, syms_of_category):
16044 * ccl.c (syms_of_ccl):
16045 * cmds.c (syms_of_cmds):
16046 * composite.c (syms_of_composite):
16047 * dbusbind.c (syms_of_dbusbind):
16048 * dired.c (syms_of_dired):
16049 * dispnew.c (syms_of_display):
16050 * doc.c (syms_of_doc):
16051 * editfns.c (syms_of_editfns):
16052 * emacs.c (syms_of_emacs):
16053 * eval.c (syms_of_eval):
16054 * fileio.c (syms_of_fileio):
16055 * fns.c (syms_of_fns):
16056 * frame.c (syms_of_frame):
16057 * fringe.c (syms_of_fringe):
16058 * insdel.c (syms_of_insdel):
16059 * keymap.c (syms_of_keymap):
16060 * lread.c (init_obarray, syms_of_lread):
16061 * macros.c (syms_of_macros):
16062 * msdos.c (syms_of_msdos):
16063 * print.c (syms_of_print):
16064 * process.c (syms_of_process):
16065 * search.c (syms_of_search):
16066 * sound.c (syms_of_sound):
16067 * syntax.c (init_syntax_once, syms_of_syntax):
16068 * terminal.c (syms_of_terminal):
16069 * textprop.c (syms_of_textprop):
16070 * undo.c (syms_of_undo):
16071 * w32.c (globals_of_w32):
16072 * window.c (syms_of_window):
16073 * xdisp.c (syms_of_xdisp):
16074 * xfaces.c (syms_of_xfaces):
16075 * xfns.c (syms_of_xfns):
16076 * xmenu.c (syms_of_xmenu):
16077 * xsettings.c (syms_of_xsettings):
16078 * xterm.c (syms_of_xterm): Use DEFSYM.
16079
16080 2011-06-24 Teodor Zlatanov <tzz@lifelogs.com>
16081
16082 * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h.
16083
16084 2011-06-23 Paul Eggert <eggert@cs.ucla.edu>
16085
16086 Integer and buffer overflow fixes (Bug#8873).
16087
16088 * print.c (printchar, strout): Check for string overflow.
16089 (PRINTPREPARE, printchar, strout):
16090 Don't set size unless allocation succeeds.
16091
16092 * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int,
16093 for sizes. Check for string overflow more accurately.
16094 Simplify newline removal at end; this suppresses a GCC 4.6.0 warning.
16095
16096 * macros.c: Integer and buffer overflow fixes.
16097 * keyboard.h (struct keyboard.kbd_macro_bufsize):
16098 * macros.c (Fstart_kbd_macro, store_kbd_macro_char):
16099 Use ptrdiff_t, not int, for sizes.
16100 Don't increment bufsize until after realloc succeeds.
16101 Check for size-calculation overflow.
16102 (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result.
16103
16104 * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
16105
16106 * lread.c: Integer overflow fixes.
16107 (read_integer): Radix is now EMACS_INT, not int,
16108 to improve quality of diagnostics for out-of-range radices.
16109 Calculate buffer size correctly for out-of-range radices.
16110 (read1): Check for integer overflow in radices, and in
16111 read-circle numbers.
16112 (read_escape): Avoid int overflow.
16113 (Fload, openp, read_buffer_size, read1)
16114 (substitute_object_recurse, read_vector, read_list, map_obarray):
16115 Use ptrdiff_t, not int, for sizes.
16116 (read1): Use EMACS_INT, not int, for sizes.
16117 Check for size overflow.
16118
16119 * image.c (cache_image): Check for size arithmetic overflow.
16120
16121 * lread.c: Integer overflow issues.
16122 (saved_doc_string_size, saved_doc_string_length)
16123 (prev_saved_doc_string_size, prev_saved_doc_string_length):
16124 Now ptrdiff_t, not int.
16125 (read1): Don't assume doc string length fits in int. Check for
16126 out-of-range doc string lengths.
16127 (read_list): Don't assume file position fits in int.
16128 (read_escape): Check for hex character overflow.
16129
16130 2011-06-22 Leo Liu <sdl.web@gmail.com>
16131
16132 * minibuf.c (Fcompleting_read_default, Vcompleting_read_function):
16133 Move to minibuffer.el.
16134
16135 2011-06-22 Paul Eggert <eggert@cs.ucla.edu>
16136
16137 Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
16138 The following patches are for when GLYPH_DEBUG && !XASSERT.
16139 * dispextern.h (trace_redisplay_p, dump_glyph_string):
16140 * dispnew.c (flush_stdout):
16141 * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph):
16142 Mark as externally visible.
16143 * dispnew.c (check_window_matrix_pointers): Now static.
16144 * dispnew.c (window_to_frame_vpos):
16145 * xfns.c (unwind_create_frame):
16146 * xterm.c (x_check_font): Remove unused local.
16147 * scroll.c (CHECK_BOUNDS):
16148 * xfaces.c (cache_fache): Rename local to avoid shadowing.
16149 * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static.
16150 * xdisp.c (check_window_end): Now a no-op if !XASSERTS.
16151 (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos)
16152 (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos):
16153 Now static.
16154 (debug_method_add): Use va_list and vsprintf rather than relying
16155 on undefined behavior with wrong number of arguments.
16156 (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
16157 Don't assume ptrdiff_t and EMACS_INT are the same width as int.
16158 In this code, it's OK to assume C99 behavior for ptrdiff_t formats
16159 since we're not interested in debugging glyphs with old libraries.
16160 * xfaces.c (cache_face): Move debugging code earlier; this pacifies
16161 GCC 4.6.0's static checking.
16162
16163 2011-06-22 Paul Eggert <eggert@cs.ucla.edu>
16164
16165 Integer overflow and signedness fixes (Bug#8873).
16166 A few related buffer overrun fixes, too.
16167
16168 * font.c (font_score): Use EMACS_INT, not int, to store XINT value.
16169
16170 * dispextern.h (struct face.stipple):
16171 * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
16172 (x_bitmap_mask, x_allocate_bitmap_record)
16173 (x_create_bitmap_from_data, x_create_bitmap_from_file)
16174 (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask)
16175 (x_create_bitmap_from_xpm_data):
16176 * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last):
16177 * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size)
16178 (.bitmaps_last):
16179 * xfaces.c (load_pixmap):
16180 * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap):
16181 * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size)
16182 (.bitmaps_last, struct x_output.icon_bitmap):
16183 Use ptrdiff_t, not int, for bitmap indexes.
16184 (x_allocate_bitmap_record): Check for size overflow.
16185 * dispextern.h, lisp.h: Adjust to API changes elsewhere.
16186
16187 Use ptrdiff_t, not int, for overlay counts.
16188 * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT):
16189 * editfns.c (overlays_around, get_pos_property):
16190 * textprop.c (get_char_property_and_overlay):
16191 * xdisp.c (next_overlay_change, note_mouse_highlight):
16192 * xfaces.c (face_at_buffer_position):
16193 * buffer.c (OVERLAY_COUNT_MAX): New macro.
16194 (overlays_at, overlays_in, sort_overlays, Foverlays_at)
16195 (Fnext_overlay_change, Fprevious_overlay_change)
16196 (mouse_face_overlay_overlaps, Foverlays_in):
16197 Use ptrdiff_t, not int, for sizes.
16198 (overlays_at, overlays_in): Check for size-calculation overflow.
16199
16200 * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int.
16201
16202 * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen.
16203 (x_session_initialize): Do not assume string length fits in int.
16204
16205 * xsettings.c (apply_xft_settings): Fix potential buffer overrun.
16206 This is unlikely, but can occur if DPI is outlandish.
16207
16208 * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
16209 * xselect.c (Fx_get_atom_name): Avoid need for strlen.
16210
16211 * xrdb.c: Don't assume strlen fits in int; avoid some strlens.
16212 * xrdb.c (magic_file_p, search_magic_path):
16213 Omit last arg SUFFIX; it was always 0. All callers changed.
16214 (magic_file_p): Use ptrdiff_t, not int. Check for size overflow.
16215
16216 * xfont.c (xfont_match): Avoid need for strlen.
16217
16218 * xfns.c: Don't assume strlen fits in int.
16219 (xic_create_fontsetname, x_window): Use ptrdiff_t, not int.
16220
16221 * xdisp.c (message_log_check_duplicate): Return intmax_t,
16222 not unsigned long, as we prefer signed integers. All callers changed.
16223 Detect integer overflow in repeat count.
16224 (message_dolog): Don't assume print length fits in 39 bytes.
16225 (display_mode_element): Don't assume strlen fits in int.
16226
16227 * termcap.c: Don't assume sizes fit in int and never overflow.
16228 (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes.
16229 (gobble_line): Check for size-calculation overflow.
16230
16231 * minibuf.c (Fread_buffer):
16232 * lread.c (intern, intern_c_string):
16233 * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]:
16234 Don't assume string length fits in int.
16235
16236 * keyboard.c (parse_tool_bar_item):
16237 * gtkutil.c (style_changed_cb): Avoid need for strlen.
16238
16239 * font.c: Don't assume string length fits in int.
16240 (font_parse_xlfd, font_parse_fcname, font_unparse_fcname):
16241 Use ptrdiff_t, not int.
16242 (font_intern_prop): Don't assume string length fits in int.
16243 Don't assume integer property fits in fixnum.
16244 * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int.
16245
16246 * filelock.c: Fix some buffer overrun and integer overflow issues.
16247 (get_boot_time): Don't assume gzip command string fits in 100 bytes.
16248 Reformulate so as not to need the command string.
16249 Invoke gzip -cd rather than gunzip, as it's more portable.
16250 (lock_info_type, lock_file_1, lock_file):
16251 Don't assume pid_t and time_t fit in unsigned long.
16252 (LOCK_PID_MAX): Remove; we now use more-reliable bounds.
16253 (current_lock_owner): Prefer signed type for sizes.
16254 Use memcpy, not strncpy, where memcpy is what is really wanted.
16255 Don't assume (via atoi) that time_t and pid_t fit in int.
16256 Check for time_t and/or pid_t out of range, e.g., via a network share.
16257 Don't alloca where an auto var works fine.
16258
16259 * fileio.c: Fix some integer overflow issues.
16260 (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name):
16261 Don't assume string length fits in int.
16262 (directory_file_name): Don't assume string length fits in long.
16263 (make_temp_name): Don't assume pid fits in int, or that its print
16264 length is less than 20.
16265
16266 * data.c (Fsubr_name): Rewrite to avoid a strlen call.
16267
16268 * coding.c (make_subsidiaries): Don't assume string length fits in int.
16269
16270 * callproc.c (child_setup): Rewrite to avoid two strlen calls.
16271
16272 * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT.
16273 We prefer signed integers, even for size calculations.
16274
16275 * emacs.c: Don't assume string length fits in 'int'.
16276 (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int.
16277 (main): Don't invoke strlen when not needed.
16278
16279 * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string.
16280 (XD_DEBUG_MESSAGE): Don't waste a byte.
16281
16282 * callproc.c (getenv_internal_1, getenv_internal)
16283 (Fgetenv_internal):
16284 * buffer.c (init_buffer): Don't assume string length fits in 'int'.
16285
16286 * lread.c (invalid_syntax): Omit length argument.
16287 All uses changed. This doesn't fix a bug, but it simplifies the
16288 code away from its former Hollerith-constant appearance, and it's
16289 one less 'int' to worry about when looking at integer-overflow issues.
16290 (string_to_number): Simplify 2011-04-26 change by invoking xsignal1.
16291
16292 * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr).
16293 This didn't break anything, but it didn't help either.
16294 It's confusing to put a bogus integer in a place where the actual
16295 value does not matter.
16296 (LIST_END_P): Remove unused macro and its bogus comment.
16297 (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT.
16298
16299 * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT.
16300 This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE,
16301 implementation.
16302 (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT.
16303 We prefer signed types, and the value cannot exceed the EMACS_INT
16304 range anyway (because otherwise the length would not be representable).
16305 (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t,
16306 not EMACS_UINT and EMACS_INT, when converting pointer to integer.
16307 This avoids a GCC warning when WIDE_EMACS_INT.
16308
16309 * indent.c (sane_tab_width): New function.
16310 (current_column, scan_for_column, Findent_to, position_indentation)
16311 (compute_motion): Use it. This is just for clarity.
16312 (Fcompute_motion): Don't assume hscroll and tab offset fit in int.
16313
16314 * image.c (xbm_image_p): Don't assume stated width, height fit in int.
16315
16316 * lisp.h (lint_assume): New macro.
16317 * composite.c (composition_gstring_put_cache):
16318 * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0.
16319
16320 * editfns.c, insdel.c:
16321 Omit unnecessary forward decls, to simplify future changes.
16322
16323 * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths.
16324
16325 * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'.
16326
16327 * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'.
16328 Use much-faster test for byte-length change.
16329 Don't assume string byte-length fits in 'int'.
16330 Check that character arg fits in 'int'.
16331 (mapcar1): Declare byte as byte, for clarity.
16332
16333 * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
16334
16335 * fns.c (concat): Catch string overflow earlier.
16336 Do not rely on integer wraparound.
16337
16338 * dispextern.h (struct it.overlay_strings_charpos)
16339 (struct it.selective): Now EMACS_INT, not int.
16340 * xdisp.c (forward_to_next_line_start)
16341 (back_to_previous_visible_line_start)
16342 (reseat_at_next_visible_line_start, next_element_from_buffer):
16343 Don't arbitrarily truncate the value of 'selective' to int.
16344
16345 * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0.
16346
16347 * composite.c: Don't truncate sizes to 'int'.
16348 (composition_gstring_p, composition_reseat_it)
16349 (composition_adjust_point): Use EMACS_INT, not int.
16350 (get_composition_id, composition_gstring_put_cache): Use EMACS_INT,
16351 not EMACS_UINT, for indexes.
16352
16353 * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT.
16354
16355 * buffer.c: Include <verify.h>.
16356 (struct sortvec.priority, struct sortstr.priority):
16357 Now EMACS_INT, not int.
16358 (compare_overlays, cmp_for_strings): Avoid subtraction overflow.
16359 (struct sortstr.size, record_overlay_string)
16360 (struct sortstrlist.size, struct sortlist.used):
16361 Don't truncate size to int.
16362 (record_overlay_string): Check for size-calculation overflow.
16363 (init_buffer_once): Check at compile-time, not run-time.
16364
16365 2011-06-22 Jim Meyering <meyering@redhat.com>
16366
16367 Don't leak an XBM-image-sized buffer
16368 * image.c (xbm_load): Free the image buffer after using it.
16369
16370 2011-06-21 Paul Eggert <eggert@cs.ucla.edu>
16371
16372 Port to Sun C.
16373 * composite.c (find_automatic_composition): Omit needless 'return 0;'
16374 that Sun C diagnosed.
16375 * fns.c (secure_hash): Fix pointer signedness issue.
16376 * intervals.c (static_offset_intervals): New function.
16377 (offset_intervals): Use it.
16378
16379 2011-06-21 Leo Liu <sdl.web@gmail.com>
16380
16381 * deps.mk (fns.o):
16382 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and
16383 sha512.h.
16384
16385 * fns.c (secure_hash): Rename from crypto_hash_function and change
16386 the first arg to accept symbols.
16387 (Fsecure_hash): New primitive.
16388 (syms_of_fns): New symbols.
16389
16390 2011-06-20 Deniz Dogan <deniz@dogan.se>
16391
16392 * process.c (Fset_process_buffer): Clarify return value in
16393 docstring.
16394
16395 2011-06-18 Chong Yidong <cyd@stupidchicken.com>
16396
16397 * dispnew.c (add_window_display_history): Use BVAR.
16398
16399 * xdisp.c (debug_method_add): Use BVAR.
16400 (check_window_end, dump_glyph_matrix, dump_glyph)
16401 (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C.
16402
16403 * xfaces.c (check_lface_attrs, check_lface, dump_realized_face):
16404 Likewise.
16405
16406 * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache
16407 check till after the cache is created in init_frame_faces.
16408
16409 2011-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
16410
16411 * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup.
16412
16413 2011-06-16 Paul Eggert <eggert@cs.ucla.edu>
16414
16415 * lisp.h: Include <limits.h>, for INT_MAX, LONG_MAX, LLONG_MAX.
16416 Without this, prin1 mishandles Lisp_Misc_Save_Value printing on
16417 hosts with pre-C99 libraries, because pD is wrongly defined to "t".
16418
16419 Improve buffer-overflow checking (Bug#8873).
16420 * fileio.c (Finsert_file_contents):
16421 * insdel.c (insert_from_buffer_1, replace_range, replace_range_2):
16422 Remove the old (too-loose) buffer overflow checks.
16423 They weren't needed, since make_gap checks for buffer overflow.
16424 * insdel.c (make_gap_larger): Catch buffer overflows that were missed.
16425 The old code merely checked for Emacs fixnum overflow, and relied
16426 on undefined (wraparound) behavior. The new code avoids undefined
16427 behavior, and also checks for ptrdiff_t and/or size_t overflow.
16428
16429 * editfns.c (Finsert_char): Don't dump core with very negative counts.
16430 Tune. Don't use wider integers than needed. Don't use alloca.
16431 Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test.
16432
16433 * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing.
16434
16435 * insdel.c, lisp.h (buffer_overflow): New function.
16436 (insert_from_buffer_1, replace_range, replace_range_2):
16437 * insdel.c (make_gap_larger):
16438 * editfns.c (Finsert_char):
16439 * fileio.c (Finsert_file_contents): Use it, to normalize wording.
16440
16441 * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed.
16442
16443 2011-06-15 Paul Eggert <eggert@cs.ucla.edu>
16444
16445 Integer overflow and signedness fixes (Bug#8873, Bug#8828).
16446
16447 * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772.
16448 (GET_CCL_RANGE, IN_INT_RANGE): Use it.
16449
16450 * fileio.c: Don't assume EMACS_INT fits in off_t.
16451 (emacs_lseek): New static function.
16452 (Finsert_file_contents, Fwrite_region): Use it.
16453 Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate.
16454
16455 * fns.c (Fload_average): Don't assume 100 * load average fits in int.
16456
16457 * fns.c: Don't overflow int when computing a list length.
16458 * fns.c (QUIT_COUNT_HEURISTIC): New constant.
16459 (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted
16460 truncation on 64-bit hosts. Check for QUIT every
16461 QUIT_COUNT_HEURISTIC entries rather than every other entry; that's
16462 faster and is responsive enough.
16463 (Flength): Report an error instead of overflowing an integer.
16464 (Fsafe_length): Return a float if the value is not representable
16465 as a fixnum. This shouldn't happen except in contrived situations.
16466 (Fnthcdr, Fsort): Don't assume list length fits in int.
16467 (Fcopy_sequence): Don't assume vector length fits in int.
16468
16469 * alloc.c: Check that resized vectors' lengths fit in fixnums.
16470 (header_size, word_size): New constants.
16471 (allocate_vectorlike): Don't check size overflow here.
16472 (allocate_vector): Check it here instead, since this is the only
16473 caller of allocate_vectorlike that could cause overflow.
16474 Check that the new vector's length is representable as a fixnum.
16475
16476 * fns.c (next_almost_prime): Don't return a multiple of 3 or 5.
16477 The previous code was bogus. For example, next_almost_prime (32)
16478 returned 39, which is undesirable as it is a multiple of 3; and
16479 next_almost_prime (24) returned 25, which is a multiple of 5 so
16480 why was the code bothering to check for multiples of 7?
16481
16482 * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length.
16483
16484 * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now.
16485
16486 Variadic C functions now count arguments with ptrdiff_t.
16487 This partly undoes my 2011-03-30 change, which replaced int with size_t.
16488 Back then I didn't know that the Emacs coding style prefers signed int.
16489 Also, in the meantime I found a few more instances where arguments
16490 were being counted with int, which may truncate counts on 64-bit
16491 machines, or EMACS_INT, which may be unnecessarily wide.
16492 * lisp.h (struct Lisp_Subr.function.aMANY)
16493 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
16494 Arg counts are now ptrdiff_t, not size_t.
16495 All variadic functions and their callers changed accordingly.
16496 (struct gcpro.nvars): Now size_t, not size_t. All uses changed.
16497 * bytecode.c (exec_byte_code): Check maxdepth for overflow,
16498 to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
16499 * callint.c (Fcall_interactively): Check arg count for overflow,
16500 to avoid potential buffer overrun. Use signed char, not 'int',
16501 for 'varies' array, so that we needn't bother to check its size
16502 calculation for overflow.
16503 * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
16504 * eval.c (apply_lambda):
16505 * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
16506 (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
16507 (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
16508
16509 * callint.c (Fcall_interactively): Don't use index var as event count.
16510
16511 * vm-limit.c (check_memory_limits): Fix incorrect extern function decls.
16512 * mem-limits.h (SIZE): Remove; no longer used.
16513
16514 * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works.
16515
16516 Remove unnecessary casts.
16517 * xterm.c (x_term_init):
16518 * xfns.c (x_set_border_pixel):
16519 * widget.c (create_frame_gcs): Remove casts to unsigned long etc.
16520 These aren't needed now that we assume ANSI C.
16521
16522 * sound.c (Fplay_sound_internal): Remove cast to unsigned long.
16523 It's more likely to cause problems (due to unsigned overflow)
16524 than to cure them.
16525
16526 * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts.
16527
16528 * unexelf.c (unexec): Don't assume BSS addr fits in unsigned.
16529
16530 * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned.
16531
16532 * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX.
16533
16534 * lisp.h (CHAR_TABLE_SET): Omit now-redundant test.
16535
16536 * lread.c (Fload): Don't compare a possibly-garbage time_t value.
16537
16538 GLYPH_CODE_FACE returns EMACS_INT, not int.
16539 * dispextern.h (merge_faces):
16540 * xfaces.c (merge_faces):
16541 * xdisp.c (get_next_display_element, next_element_from_display_vector):
16542 Don't assume EMACS_INT fits in int.
16543
16544 * character.h (CHAR_VALID_P): Remove unused parameter.
16545 * fontset.c, lisp.h, xdisp.c: All uses changed.
16546
16547 * editfns.c (Ftranslate_region_internal): Omit redundant test.
16548
16549 * fns.c (concat): Minor tuning based on overflow analysis.
16550 This doesn't fix any bugs. Use int to hold character, instead
16551 of constantly refetching from Emacs object. Use XFASTINT, not
16552 XINT, for value known to be a character. Don't bother comparing
16553 a single byte to 0400, as it's always less.
16554
16555 * floatfns.c (Fexpt):
16556 * fileio.c (make_temp_name): Omit unnecessary cast to unsigned.
16557
16558 * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT
16559 for characters.
16560
16561 * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives.
16562
16563 * data.c (Faset): If ARRAY is a string, check that NEWELT is a char.
16564 Without this fix, on a 64-bit host (aset S 0 4294967386) would
16565 incorrectly succeed when S was a string, because 4294967386 was
16566 truncated before it was used.
16567
16568 * chartab.c (Fchar_table_range): Use CHARACTERP to check range.
16569 Otherwise, an out-of-range integer could cause undefined behavior
16570 on a 64-bit host.
16571
16572 * composite.c: Use int, not EMACS_INT, for characters.
16573 (fill_gstring_body, composition_compute_stop_pos): Use int, not
16574 EMACS_INT, for values that are known to be in character range.
16575 This doesn't fix any bugs but is the usual style inside Emacs and
16576 may generate better code on 32-bit machines.
16577
16578 Make sure a 64-bit char is never passed to ENCODE_CHAR.
16579 This is for reasons similar to the recent CHAR_STRING fix.
16580 * charset.c (Fencode_char): Check that character arg is actually
16581 a character. Pass an int to ENCODE_CHAR.
16582 * charset.h (ENCODE_CHAR): Verify that the character argument is no
16583 wider than 'int', as a compile-time check to prevent future regressions
16584 in this area.
16585
16586 * character.c (char_string): Remove unnecessary casts.
16587
16588 Make sure a 64-bit char is never passed to CHAR_STRING.
16589 Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform,
16590 by silently ignoring the top 32 bits, allowing some values
16591 that were far too large to be valid characters.
16592 * character.h: Include <verify.h>.
16593 (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character
16594 arguments are no wider than unsigned, as a compile-time check
16595 to prevent future regressions in this area.
16596 * data.c (Faset):
16597 * editfns.c (Fchar_to_string, general_insert_function, Finsert_char)
16598 (Fsubst_char_in_region):
16599 * fns.c (concat):
16600 * xdisp.c (decode_mode_spec_coding):
16601 Adjust to CHAR_STRING's new requirement.
16602 * editfns.c (Finsert_char, Fsubst_char_in_region):
16603 * fns.c (concat): Check that character args are actually
16604 characters. Without this test, these functions did the wrong
16605 thing with wildly out-of-range values on 64-bit hosts.
16606
16607 Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts.
16608 These casts should not be needed on 32-bit hosts, either.
16609 * keyboard.c (read_char):
16610 * lread.c (Fload): Remove casts to unsigned.
16611
16612 * lisp.h (UNSIGNED_CMP): New macro.
16613 This fixes comparison bugs on 64-bit hosts.
16614 (ASCII_CHAR_P): Use it.
16615 * casefiddle.c (casify_object):
16616 * character.h (ASCII_BYTE_P, CHAR_VALID_P)
16617 (SINGLE_BYTE_CHAR_P, CHAR_STRING):
16618 * composite.h (COMPOSITION_ENCODE_RULE_VALID):
16619 * dispextern.h (FACE_FROM_ID):
16620 * keyboard.c (read_char): Use UNSIGNED_CMP.
16621
16622 * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t,
16623 not to EMACS_INT, to avoid GCC warning.
16624
16625 * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals.
16626
16627 * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast.
16628 The cast incorrectly truncated 64-bit byte offsets to 32 bits, and
16629 isn't needed on 32-bit machines.
16630
16631 * buffer.c (Fgenerate_new_buffer_name):
16632 Use EMACS_INT for count, not int.
16633 (advance_to_char_boundary): Return EMACS_INT, not int.
16634
16635 * data.c (Qcompiled_function): Now static.
16636
16637 * window.c (window_body_lines): Now static.
16638
16639 * image.c (gif_load): Rename local to avoid shadowing.
16640
16641 * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow.
16642 (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member.
16643 * alloc.c (make_save_value): Integer argument is now of type
16644 ptrdiff_t, not int.
16645 (mark_object): Use ptrdiff_t, not int.
16646 * lisp.h (pD): New macro.
16647 * print.c (print_object): Use it.
16648
16649 * alloc.c: Use EMACS_INT, not int, to count objects.
16650 (total_conses, total_markers, total_symbols, total_vector_size)
16651 (total_free_conses, total_free_markers, total_free_symbols)
16652 (total_free_floats, total_floats, total_free_intervals)
16653 (total_intervals, total_strings, total_free_strings):
16654 Now EMACS_INT, not int. All uses changed.
16655 (Fgarbage_collect): Compute overall total using a double, so that
16656 integer overflow is less likely to be a problem. Check for overflow
16657 when converting back to an integer.
16658 (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks)
16659 (n_vectors, n_symbol_blocks, n_marker_blocks): Remove.
16660 These were 'int' variables that could overflow on 64-bit hosts;
16661 they were never used, so remove them instead of repairing them.
16662 (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'.
16663 (inhibit_garbage_collection): Set gc_cons_threshold to max value.
16664 Previously, this ceilinged at INT_MAX, but that doesn't work on
16665 64-bit machines.
16666 (allocate_pseudovector): Don't use EMACS_INT when int would do.
16667
16668 * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int.
16669 (allocate_vectorlike): Check for ptrdiff_t overflow.
16670 (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT
16671 when a (possibly-narrower) signed value would do just as well.
16672 We prefer using signed arithmetic, to avoid comparison confusion.
16673
16674 * alloc.c: Catch some string size overflows that we were missing.
16675 (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0,
16676 for convenience in STRING_BYTES_MAX.
16677 (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h.
16678 The definition here is exact; the one in lisp.h was approximate.
16679 (allocate_string_data): Check for string overflow. This catches
16680 some instances we weren't catching before. Also, it catches
16681 size_t overflow on (unusual) hosts where SIZE_MAX <= min
16682 (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits
16683 and ptrdiff_t and EMACS_INT are both 64 bits.
16684
16685 * character.c, coding.c, doprnt.c, editfns.c, eval.c:
16686 All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND.
16687 * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX.
16688
16689 * character.c (string_escape_byte8): Fix nbytes/nchars typo.
16690
16691 * alloc.c (Fmake_string): Check for out-of-range init.
16692
16693 2011-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
16694
16695 * eval.c (Fdefvaralias): Also mark the target as variable-special-p.
16696
16697 2011-06-14 Jan Djärv <jan.h.d@swipnet.se>
16698
16699 * xfns.c (x_set_scroll_bar_default_width): Remove argument to
16700 xg_get_default_scrollbar_width.
16701
16702 * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3.
16703 (int_gtk_range_get_value): Move to the scroll bar part of the file.
16704 (style_changed_cb): Call update_theme_scrollbar_width and call
16705 x_set_scroll_bar_default_width and xg_frame_set_char_size for
16706 all frames (Bug#8505).
16707 (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505).
16708 Call gtk_window_set_resizable if HAVE_GTK3.
16709 (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width
16710 and height if HAVE_GTK3 (Bug#8505).
16711 (scroll_bar_width_for_theme): New variable.
16712 (update_theme_scrollbar_width): New function.
16713 (xg_get_default_scrollbar_width): Move code to
16714 update_theme_scrollbar_width, just return scroll_bar_width_for_theme.
16715 (xg_initialize): Call update_theme_scrollbar_width.
16716
16717 * gtkutil.h (xg_get_default_scrollbar_width): Remove argument.
16718
16719 * emacsgtkfixed.c, emacsgtkfixed.h: New files.
16720
16721 2011-06-12 Martin Rudalics <rudalics@gmx.at>
16722
16723 * frame.c (make_frame): Call other_buffer_safely instead of
16724 other_buffer.
16725
16726 * window.c (temp_output_buffer_show): Call display_buffer with
16727 second argument Vtemp_buffer_show_specifiers and reset latter
16728 immediately after the call.
16729 (Vtemp_buffer_show_specifiers): New variable.
16730 (auto_window_vscroll_p, next_screen_context_lines)
16731 (Vscroll_preserve_screen_position): Remove leading asterisks from
16732 doc-strings.
16733
16734 2011-06-12 Paul Eggert <eggert@cs.ucla.edu>
16735
16736 Fix minor problems found by GCC 4.6.0 static checking.
16737 * buffer.c (Qclone_number): Remove for now, as it's unused.
16738 (record_buffer, Funrecord_buffer): Rename local to avoid shadowing.
16739 (record_buffer): Remove unused local.
16740 * frame.c (other_visible_frames, frame_buffer_list): Now static.
16741 (set_frame_buffer_list): Remove; unused.
16742 * frame.h (other_visible_frames): Remove decl.
16743 * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF.
16744 * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls.
16745 (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only
16746 if HAVE_GPM.
16747 * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF.
16748 * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
16749 Define only if HAVE_GPM.
16750 * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static.
16751 (update_hints_inhibit): Remove; never set. All uses removed.
16752 * widgetprv.h (emacsFrameClassRec): Remove decl.
16753 * window.c (delete_deletable_window): Now returns void, since it
16754 wasn't returning anything.
16755 (compare_window_configurations): Remove unused locals.
16756 * xfns.c (x_set_scroll_bar_default_width): Remove unused locals.
16757 * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF.
16758 (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers
16759 the same widths as pointers. This follows up on the 2011-05-06 patch.
16760 * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID.
16761 * xterm.h: Likewise.
16762 (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF.
16763
16764 2011-06-12 Juanma Barranquero <lekktu@gmail.com>
16765
16766 * makefile.w32-in: Update dependencies.
16767 (LISP_H): Add lib/intprops.h.
16768
16769 2011-06-11 Chong Yidong <cyd@stupidchicken.com>
16770
16771 * image.c (gif_load): Add animation frame delay to the metadata.
16772 (syms_of_image): Use DEFSYM. New symbol `delay'.
16773
16774 2011-06-11 Martin Rudalics <rudalics@gmx.at>
16775
16776 * window.c (delete_deletable_window): Re-add.
16777 (Fset_window_configuration): Rewrite to handle dead buffers and
16778 consequently deletable windows.
16779 (window_tree, Fwindow_tree): Remove. Supply functionality in
16780 window.el.
16781 (compare_window_configurations): Simplify code.
16782
16783 2011-06-11 Andreas Schwab <schwab@linux-m68k.org>
16784
16785 * image.c (imagemagick_load_image): Fix type mismatch.
16786 (Fimagemagick_types): Likewise.
16787
16788 * window.h (replace_buffer_in_windows): Declare.
16789
16790 2011-06-11 Martin Rudalics <rudalics@gmx.at>
16791
16792 * buffer.c: New Lisp objects Qbuffer_list_update_hook and
16793 Qclone_number. Remove external declaration of Qdelete_window.
16794 (Fbuffer_list): Rewrite doc-string. Minor restructuring of
16795 code.
16796 (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer):
16797 Run Qbuffer_list_update_hook if allowed.
16798 (Fother_buffer): Rewrite doc-string. Major rewrite for new
16799 buffer list implementation.
16800 (other_buffer_safely): New function.
16801 (Fkill_buffer): Replace call to replace_buffer_in_all_windows by
16802 calls to replace_buffer_in_windows and
16803 replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook
16804 if allowed.
16805 (record_buffer): Inhibit quitting and rewrite using quittable
16806 functions. Run Qbuffer_list_update_hook if allowed.
16807 (Frecord_buffer, Funrecord_buffer): New functions.
16808 (switch_to_buffer_1, Fswitch_to_buffer): Remove.
16809 Move switch-to-buffer to window.el.
16810 (bury-buffer): Move to window.el.
16811 (Vbuffer_list_update_hook): New variable.
16812
16813 * lisp.h (other_buffer_safely): Add prototype in buffer.c
16814 section.
16815
16816 * window.h (resize_frame_windows): Move up in code.
16817 (Fwindow_frame): Remove EXFUN.
16818 (replace_buffer_in_all_windows): Remove prototype.
16819 (replace_buffer_in_windows_safely): Add prototype.
16820
16821 * window.c: Declare Qdelete_window static again. Move down
16822 declaration of select_count.
16823 (Fnext_window, Fprevious_window): Rewrite doc-strings.
16824 (Fother_window): Move to window.el.
16825 (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER
16826 cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case.
16827 (Fdelete_windows_on, Freplace_buffer_in_windows): Move to
16828 window.el.
16829 (replace_buffer_in_windows): Implement by calling
16830 Qreplace_buffer_in_windows.
16831 (replace_buffer_in_all_windows): Remove with some functionality
16832 moved into replace_buffer_in_windows_safely.
16833 (replace_buffer_in_windows_safely): New function.
16834 (select_window_norecord, select_frame_norecord): Move in front
16835 of run_window_configuration_change_hook. Remove now obsolete
16836 declarations.
16837 (Fset_window_buffer): Rewrite doc-string.
16838 Call Qrecord_window_buffer.
16839 (keys_of_window): Move binding for other-window to window.el.
16840
16841 2011-06-11 Chong Yidong <cyd@stupidchicken.com>
16842
16843 * dispextern.h (struct image): Replace data member, whose int_val
16844 and ptr_val fields were not used by anything, with a single
16845 lisp_val object.
16846
16847 * image.c (Fimage_metadata, make_image, mark_image, tiff_load)
16848 (gif_clear_image, gif_load, imagemagick_load_image)
16849 (gs_clear_image, gs_load): Callers changed.
16850
16851 2011-06-10 Paul Eggert <eggert@cs.ucla.edu>
16852
16853 * buffer.h: Include <time.h>, for time_t.
16854 Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra.
16855
16856 Fix minor problems found by static checking.
16857
16858 * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't.
16859
16860 Make identifiers static if they are not used in other modules.
16861 * data.c (Qcompiled_function, Qframe, Qvector):
16862 * image.c (QimageMagick, Qsvg):
16863 * minibuf.c (Qmetadata):
16864 * window.c (resize_window_check, resize_root_window): Now static.
16865 * window.h (resize_window_check, resize_root_window): Remove decls.
16866
16867 * window.c (window_deletion_count, delete_deletable_window):
16868 Remove; unused.
16869 (window_body_lines): Now static.
16870 (Fdelete_other_windows_internal): Mark vars as initialized.
16871 Make sure 'resize_failed' is initialized.
16872 (run_window_configuration_change_hook): Rename local to avoid shadowing.
16873 (resize_window_apply): Remove unused local.
16874 * window.h (delete_deletable_window): Remove decl.
16875
16876 * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing.
16877 (imagemagick_load_image): Fix pointer signedness problem by changing
16878 last arg from unsigned char * to char *. All uses changed.
16879 Also, fix a local for similar reasons.
16880 Remove unused locals. Remove locals to avoid shadowing.
16881 (fn_rsvg_handle_free): Remove; unused.
16882 (svg_load, svg_load_image): Fix pointer signedness problem.
16883 (imagemagick_load_image): Don't use garbage pointer image_wand.
16884
16885 * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals.
16886
16887 2011-06-10 Chong Yidong <cyd@stupidchicken.com>
16888
16889 * image.c (gif_load): Fix omitted cast error introduced by
16890 2011-06-06 change.
16891
16892 2011-06-10 Martin Rudalics <rudalics@gmx.at>
16893
16894 * window.h (resize_proportionally, orig_total_lines)
16895 (orig_top_line): Remove from window structure.
16896 (set_window_height, set_window_width, change_window_heights)
16897 (Fdelete_window): Remove prototypes.
16898 (resize_frame_windows): Remove duplicate declaration.
16899
16900 2011-06-10 Eli Zaretskii <eliz@gnu.org>
16901
16902 * window.h (resize_frame_windows, resize_window_check)
16903 (delete_deletable_window, resize_root_window)
16904 (resize_frame_windows): Declare prototypes.
16905
16906 * window.c (resize_window_apply): Make definition be "static" to
16907 match the prototype.
16908
16909 2011-06-10 Martin Rudalics <rudalics@gmx.at>
16910
16911 * window.c: Remove declarations of Qwindow_size_fixed,
16912 window_min_size_1, window_min_size_2, window_min_size,
16913 size_window, window_fixed_size_p, enlarge_window, delete_window.
16914 Remove static from declaration of Qdelete_window, it's
16915 temporarily needed by Fbury_buffer.
16916 (replace_window): Don't assign orig_top_line and
16917 orig_total_lines.
16918 (Fdelete_window, delete_window): Remove. Window deletion is
16919 handled by window.el.
16920 (window_loop): Remove DELETE_OTHER_WINDOWS case.
16921 Replace Fdelete_window calls with calls to Qdelete_window.
16922 (Fdelete_other_windows): Remove. Deleting other windows is
16923 handled by window.el.
16924 (window_fixed_size_p): Remove. Fixed-sizeness of windows is
16925 handled in window.el.
16926 (window_min_size_2, window_min_size_1, window_min_size): Remove.
16927 Window minimum sizes are handled in window.el.
16928 (shrink_windows, size_window, set_window_height)
16929 (set_window_width, change_window_heights, window_height)
16930 (window_width, CURBEG, CURSIZE, enlarge_window)
16931 (adjust_window_trailing_edge, Fadjust_window_trailing_edge)
16932 (Fenlarge_window, Fshrink_window): Remove. Window resizing is
16933 handled in window.el.
16934 (make_dummy_parent): Rename to make_parent_window and give it a
16935 second argument horflag.
16936 (make_window): Don't set resize_proportionally any more.
16937 (Fsplit_window): Remove. Windows are split in window.el.
16938 (save_restore_action, save_restore_orig_size)
16939 (shrink_window_lowest_first, save_restore_orig_size): Remove.
16940 Resize mini windows in window.el.
16941 (grow_mini_window, shrink_mini_window): Implement by calling
16942 Qresize_root_window_vertically, resize_window_check and
16943 resize_window_apply.
16944 (saved_window, Fset_window_configuration, save_window_save):
16945 Do not handle orig_top_line, orig_total_lines, and
16946 resize_proportionally.
16947 (window_min_height, window_min_width): Move to window.el.
16948 (keys_of_window): Move bindings for delete-other-windows,
16949 split-window, delete-window and enlarge-window to window.el.
16950
16951 * buffer.c: Temporarily extern Qdelete_window.
16952 (Fbury_buffer): Temporarily call Qdelete_window instead of
16953 Fdelete_window (Fbury_buffer will move to window.el soon).
16954
16955 * frame.c (set_menu_bar_lines_1): Remove code handling
16956 orig_top_line and orig_total_lines.
16957
16958 * dispnew.c (adjust_frame_glyphs_initially): Don't use
16959 set_window_height but set heights directly.
16960 (change_frame_size_1): Use resize_frame_windows.
16961
16962 * xdisp.c (init_xdisp): Don't use set_window_height but set
16963 heights directly.
16964
16965 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
16966 Use resize_frame_windows instead of change_window_heights and run
16967 run_window_configuration_change_hook.
16968
16969 * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows
16970 instead of change_window_heights and run
16971 run_window_configuration_change_hook.
16972
16973 2011-06-09 Martin Rudalics <rudalics@gmx.at>
16974
16975 * window.c (replace_window): Rename second argument REPLACEMENT to
16976 NEW. New third argument SETFLAG. Rewrite.
16977 (delete_window, make_dummy_parent): Call replace_window with
16978 third argument 1.
16979 (window_list_1): Move down in code.
16980 (run_window_configuration_change_hook): Move set_buffer part
16981 before select_frame_norecord part in order to unwind correctly.
16982 Rename count1 to count.
16983 (recombine_windows, delete_deletable_window, resize_root_window)
16984 (Fdelete_other_windows_internal)
16985 (Frun_window_configuration_change_hook, make_parent_window)
16986 (resize_window_check, resize_window_apply, Fresize_window_apply)
16987 (resize_frame_windows, Fsplit_window_internal)
16988 (Fdelete_window_internal, Fresize_mini_window_internal):
16989 New functions.
16990 (syms_of_window): New variables Vwindow_splits and Vwindow_nest.
16991
16992 2011-06-08 Martin Rudalics <rudalics@gmx.at>
16993
16994 * window.h (window): Add some new members to window structure -
16995 normal_lines, normal_cols, new_total, new_normal, clone_number,
16996 splits, nest, prev_buffers, next_buffers.
16997 (WINDOW_TOTAL_SIZE): Move here from window.c.
16998 (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here.
16999
17000 * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p):
17001 Remove.
17002 (make_dummy_parent): Set new members of windows structure.
17003 (make_window): Move down in code. Handle new members of window
17004 structure.
17005 (Fwindow_clone_number, Fwindow_splits, Fset_window_splits)
17006 (Fwindow_nest, Fset_window_nest, Fwindow_new_total)
17007 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers)
17008 (Fset_window_prev_buffers, Fwindow_next_buffers)
17009 (Fset_window_next_buffers, Fset_window_clone_number):
17010 New functions.
17011 (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start)
17012 (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p):
17013 Doc-string fixes.
17014 (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter):
17015 Argument WINDOW can be now internal window too.
17016 (Fwindow_use_time): Move up in code.
17017 (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES.
17018 Rewrite doc-string.
17019 (Fset_window_configuration, saved_window)
17020 (Fcurrent_window_configuration, save_window_save): Handle new
17021 members of window structure.
17022 (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH)
17023 (MIN_SAFE_WINDOW_HEIGHT): Move to window.h.
17024 (syms_of_window): New Lisp objects Qrecord_window_buffer,
17025 Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows,
17026 Qget_mru_window, Qresize_root_window,
17027 Qresize_root_window_vertically, Qsafe, Qabove, Qbelow,
17028 Qauto_buffer_name; staticpro them.
17029
17030 2011-06-07 Martin Rudalics <rudalics@gmx.at>
17031
17032 * window.c (Fwindow_total_size, Fwindow_left_column)
17033 (Fwindow_top_line, window_body_lines, Fwindow_body_size)
17034 (Fwindow_list_1): New functions.
17035 (window_box_text_cols): Replace with window_body_cols.
17036 (Fwindow_width, Fscroll_left, Fscroll_right):
17037 Use window_body_cols instead of window_box_text_cols.
17038 (delete_window, Fset_window_configuration):
17039 Call delete_all_subwindows with window as argument.
17040 (delete_all_subwindows): Take a window as argument and not a
17041 structure. Rewrite.
17042 (window_loop): Remove handling of GET_LRU_WINDOW and
17043 GET_LARGEST_WINDOW.
17044 (Fget_lru_window, Fget_largest_window): Move to window.el.
17045
17046 * window.h: Extern window_body_cols instead of
17047 window_box_text_cols. delete_all_subwindows now takes a
17048 Lisp_Object as argument.
17049
17050 * indent.c (compute_motion, Fcompute_motion):
17051 Use window_body_cols instead of window_box_text_cols.
17052
17053 * frame.c (delete_frame): Call delete_all_subwindows with root
17054 window as argument.
17055
17056 2011-06-07 Daniel Colascione <dan.colascione@gmail.com>
17057
17058 * fns.c (Fputhash): Document return value.
17059
17060 2011-06-06 Chong Yidong <cyd@stupidchicken.com>
17061
17062 * image.c (gif_load): Implement gif89a spec "no disposal" method.
17063
17064 2011-06-06 Paul Eggert <eggert@cs.ucla.edu>
17065
17066 Cons<->int and similar integer overflow fixes (Bug#8794).
17067
17068 Check for overflow when converting integer to cons and back.
17069 * charset.c (Fdefine_charset_internal, Fdecode_char):
17070 Use cons_to_unsigned to catch overflow.
17071 (Fencode_char): Use INTEGER_TO_CONS.
17072 * composite.h (LGLYPH_CODE): Use cons_to_unsigned.
17073 (LGLYPH_SET_CODE): Use INTEGER_TO_CONS.
17074 * data.c (long_to_cons, cons_to_long): Remove.
17075 (cons_to_unsigned, cons_to_signed): New functions.
17076 These signal an error for invalid or out-of-range values.
17077 * dired.c (Ffile_attributes): Use INTEGER_TO_CONS.
17078 * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER.
17079 * font.c (Ffont_variation_glyphs):
17080 * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS.
17081 * lisp.h: Include <intprops.h>.
17082 (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros.
17083 (cons_to_signed, cons_to_unsigned): New decls.
17084 (long_to_cons, cons_to_long): Remove decls.
17085 * undo.c (record_first_change): Use INTEGER_TO_CONS.
17086 (Fprimitive_undo): Use CONS_TO_INTEGER.
17087 * xfns.c (Fx_window_property): Likewise.
17088 * xselect.c: Include <limits.h>.
17089 (x_own_selection, selection_data_to_lisp_data):
17090 Use INTEGER_TO_CONS.
17091 (x_handle_selection_request, x_handle_selection_clear)
17092 (x_get_foreign_selection, Fx_disown_selection_internal)
17093 (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER.
17094 (lisp_data_to_selection_data): Use cons_to_unsigned.
17095 (x_fill_property_data): Use cons_to_signed.
17096 Report values out of range.
17097
17098 Check for buffer and string overflow more precisely.
17099 * buffer.h (BUF_BYTES_MAX): New macro.
17100 * lisp.h (STRING_BYTES_MAX): New macro.
17101 * alloc.c (Fmake_string):
17102 * character.c (string_escape_byte8):
17103 * coding.c (coding_alloc_by_realloc):
17104 * doprnt.c (doprnt):
17105 * editfns.c (Fformat):
17106 * eval.c (verror):
17107 Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM,
17108 since they may not be the same number.
17109 * editfns.c (Finsert_char):
17110 * fileio.c (Finsert_file_contents):
17111 Likewise for BUF_BYTES_MAX.
17112
17113 * image.c: Use ptrdiff_t, not int, for sizes.
17114 (slurp_file): Switch from int to ptrdiff_t.
17115 All uses changed.
17116 (slurp_file): Check that file size fits in both size_t (for
17117 malloc) and ptrdiff_t (for sanity and safety).
17118
17119 * fileio.c (Fverify_visited_file_modtime): Avoid time overflow
17120 if b->modtime has its maximal value.
17121
17122 * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits.
17123
17124 Don't assume time_t can fit into int.
17125 * buffer.h (struct buffer.modtime): Now time_t, not int.
17126 * fileio.c (Fvisited_file_modtime): No need for time_t cast now.
17127 * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value.
17128
17129 Minor fixes for signed vs unsigned integers.
17130 * character.h (MAYBE_UNIFY_CHAR):
17131 * charset.c (maybe_unify_char):
17132 * keyboard.c (read_char, reorder_modifiers):
17133 XINT -> XFASTINT, since the integer must be nonnegative.
17134 * ftfont.c (ftfont_spec_pattern):
17135 * keymap.c (access_keymap, silly_event_symbol_error):
17136 XUINT -> XFASTINT, since the integer must be nonnegative.
17137 (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT,
17138 since it makes no difference and we prefer signed.
17139 * keyboard.c (record_char): Use XUINT when all the neighbors do.
17140 (access_keymap): NATNUMP -> INTEGERP, since the integer must be
17141 nonnegative.
17142
17143 2011-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
17144
17145 * window.h (Fwindow_frame): Declare.
17146
17147 2011-06-06 Paul Eggert <eggert@cs.ucla.edu>
17148
17149 * alloc.c: Simplify handling of large-request failures (Bug#8800).
17150 (SPARE_MEMORY): Always define.
17151 (LARGE_REQUEST): Remove.
17152 (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST.
17153
17154 2011-06-06 Martin Rudalics <rudalics@gmx.at>
17155
17156 * lisp.h: Move EXFUNS for Fframe_root_window,
17157 Fframe_first_window and Fset_frame_selected_window to window.h.
17158
17159 * window.h: Move EXFUNS for Fframe_root_window,
17160 Fframe_first_window and Fset_frame_selected_window here from
17161 lisp.h.
17162
17163 * frame.c (Fwindow_frame, Fframe_first_window)
17164 (Fframe_root_window, Fframe_selected_window)
17165 (Fset_frame_selected_window): Move to window.c.
17166 (Factive_minibuffer_window): Move to minibuf.c.
17167 (Fother_visible_frames_p): New function.
17168
17169 * minibuf.c (Factive_minibuffer_window): Move here from frame.c.
17170
17171 * window.c (decode_window, decode_any_window): Move up in code.
17172 (Fwindowp, Fwindow_live_p): Rewrite doc-strings.
17173 (inhibit_frame_unsplittable): Remove unused variable.
17174 (Fwindow_buffer): Move up and rewrite doc-string.
17175 (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next)
17176 (Fwindow_prev): New functions.
17177 (Fwindow_frame): Move here from frame.c. Accept any window as
17178 argument.
17179 (Fframe_root_window, Fframe_first_window)
17180 (Fframe_selected_window): Move here from frame.c. Accept frame
17181 or arbitrary window as argument. Update doc-strings.
17182 (Fminibuffer_window): Move up in code.
17183 (Fwindow_minibuffer_p): Move up in code and simplify.
17184 (Fset_frame_selected_window): Move here from frame.c.
17185 Marginal rewrite.
17186 (Fselected_window, select_window, Fselect_window): Move up in
17187 code. Minor doc-string fixes.
17188
17189 2011-06-06 Paul Eggert <eggert@cs.ucla.edu>
17190
17191 * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800).
17192 Do not assume that spare memory exists; that assumption is valid
17193 only if SYSTEM_MALLOC.
17194 (LARGE_REQUEST): New macro, so that the issue of large requests
17195 is separated from the issue of spare memory.
17196
17197 2011-06-05 Andreas Schwab <schwab@linux-m68k.org>
17198
17199 * editfns.c (Fformat): Correctly handle zero flag with hexadecimal
17200 format. (Bug#8806)
17201
17202 * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning.
17203
17204 * xfns.c (x_set_scroll_bar_default_width): Move declarations
17205 before statements.
17206
17207 2011-06-05 Jan Djärv <jan.h.d@swipnet.se>
17208
17209 * gtkutil.c (xg_get_default_scrollbar_width): New function.
17210
17211 * gtkutil.h: Declare xg_get_default_scrollbar_width.
17212
17213 * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get
17214 min width by calling x_set_scroll_bar_default_width (Bug#8505).
17215
17216 2011-06-05 Juanma Barranquero <lekktu@gmail.com>
17217
17218 * xdisp.c (single_display_spec_intangible_p): Remove declaration.
17219
17220 2011-06-04 Chong Yidong <cyd@stupidchicken.com>
17221
17222 * xselect.c (x_clipboard_manager_save): Remove redundant arg.
17223 (x_clipboard_manager_save): Add return value.
17224 (x_clipboard_manager_error_1, x_clipboard_manager_error_2):
17225 New error handlers.
17226 (x_clipboard_manager_save_frame, x_clipboard_manager_save_all):
17227 Obey Vx_select_enable_clipboard_manager. Catch errors in
17228 x_clipboard_manager_save (Bug#8779).
17229 (Vx_select_enable_clipboard_manager): New variable.
17230 (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790).
17231
17232 2011-06-04 Dan Nicolaescu <dann@ics.uci.edu>
17233
17234 * emacs.c (main): Warn when starting a GTK emacs in daemon mode.
17235
17236 2011-06-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
17237
17238 * fringe.c (update_window_fringes): Don't update overlay arrow bitmap
17239 in the current matrix if keep_current_p is non-zero.
17240
17241 2011-06-04 Eli Zaretskii <eliz@gnu.org>
17242
17243 * bidi.c (bidi_level_of_next_char): Fix last change.
17244
17245 2011-06-03 Eli Zaretskii <eliz@gnu.org>
17246
17247 Support bidi reordering of text covered by display properties.
17248
17249 * bidi.c (bidi_copy_it): Use offsetof instead of emulating it.
17250 (bidi_fetch_char, bidi_fetch_char_advance): New functions.
17251 (bidi_cache_search, bidi_cache_iterator_state)
17252 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
17253 (bidi_level_of_next_char, bidi_move_to_visually_next):
17254 Support character positions inside a run of characters covered by a
17255 display string.
17256 (bidi_paragraph_init, bidi_resolve_explicit_1)
17257 (bidi_level_of_next_char): Call bidi_fetch_char and
17258 bidi_fetch_char_advance instead of FETCH_CHAR and
17259 FETCH_CHAR_ADVANCE.
17260 (bidi_init_it): Initialize new members.
17261 (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro
17262 definitions.
17263 (bidi_explicit_dir_char): Lookup character type in bidi_type_table,
17264 instead of using explicit *_CHAR codes.
17265 (bidi_resolve_explicit, bidi_resolve_weak):
17266 Use FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of
17267 bidirectional text is supported only in multibyte buffers.
17268 (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
17269 it to initialize the frame_window_p member of struct bidi_it.
17270 (bidi_cache_iterator_state, bidi_resolve_explicit_1)
17271 (bidi_resolve_explicit, bidi_resolve_weak)
17272 (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if
17273 bidi_it->nchars is non-positive.
17274 (bidi_level_of_next_char): Don't try to lookup the cache for the
17275 next/previous character if nothing is cached there yet, or if we
17276 were just reseat()'ed to a new position.
17277
17278 * xdisp.c (set_cursor_from_row): Set start and stop points
17279 according to the row's direction when priming the loop that looks
17280 for the glyph on which to display cursor.
17281 (single_display_spec_intangible_p): Function deleted.
17282 (display_prop_intangible_p): Reimplement to call
17283 handle_display_spec instead of single_display_spec_intangible_p.
17284 Accept 3 additional arguments needed by handle_display_spec.
17285 This fixes incorrect cursor motion across display property with complex
17286 values: lists, `(when COND...)' forms, etc.
17287 (single_display_spec_string_p): Support property values that are
17288 lists with the argument STRING its top-level element.
17289 (display_prop_string_p): Fix the condition for processing a
17290 property that is a list to be consistent with handle_display_spec.
17291 (handle_display_spec): New function, refactored from the
17292 last portion of handle_display_prop.
17293 (compute_display_string_pos): Accept additional argument
17294 FRAME_WINDOW_P. Call handle_display_spec to determine whether the
17295 value of a `display' property is a "replacing spec".
17296 (handle_single_display_spec): Accept 2 additional arguments BUFPOS
17297 and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from
17298 the display property, but just return a value indicating whether
17299 the display property will replace the characters it covers.
17300 (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
17301 frame_window_p members of struct bidi_it.
17302 (compute_display_string_pos, compute_display_string_end):
17303 New functions.
17304 (push_it): Accept second argument POSITION, where pop_it should
17305 jump to continue iteration.
17306 (reseat_1): Initialize bidi_it.disp_pos.
17307
17308 * keyboard.c (adjust_point_for_property): Adjust the call to
17309 display_prop_intangible_p to its new signature.
17310
17311 * dispextern.h (struct bidi_it): New member frame_window_p.
17312 (bidi_init_it): Update prototypes.
17313 (display_prop_intangible_p): Update prototype.
17314 (compute_display_string_pos, compute_display_string_end):
17315 Declare prototypes.
17316 (struct bidi_it): New members nchars and disp_pos. ch_len is now
17317 EMACS_INT.
17318
17319 2011-06-02 Paul Eggert <eggert@cs.ucla.edu>
17320
17321 Malloc failure behavior now depends on size of allocation.
17322 * alloc.c (buffer_memory_full, memory_full): New arg NBYTES.
17323 * lisp.h: Change signatures accordingly.
17324 * alloc.c, buffer.c, editfns.c, menu.c, minibuf.c, xterm.c:
17325 All callers changed. (Bug#8762)
17326
17327 * gnutls.c: Use Emacs's memory allocators.
17328 Without this change, the gnutls library would invoke malloc etc.
17329 directly, which causes problems on non-SYNC_INPUT hosts, and which
17330 runs afoul of improving memory_full behavior. (Bug#8761)
17331 (fn_gnutls_global_set_mem_functions): New macro or function pointer.
17332 (emacs_gnutls_global_init): Use it to specify xmalloc, xrealloc,
17333 xfree instead of the default malloc, realloc, free.
17334 (Fgnutls_boot): No need to check for memory allocation failure,
17335 since xmalloc does that for us.
17336
17337 Remove arbitrary limit of 2**31 entries in hash tables. (Bug#8771)
17338 * category.c (hash_get_category_set):
17339 * ccl.c (ccl_driver):
17340 * charset.c (Fdefine_charset_internal):
17341 * charset.h (struct charset.hash_index):
17342 * composite.c (get_composition_id, gstring_lookup_cache)
17343 (composition_gstring_put_cache):
17344 * composite.h (struct composition.hash_index):
17345 * dispextern.h (struct image.hash):
17346 * fns.c (next_almost_prime, larger_vector, cmpfn_eql)
17347 (cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
17348 (hashfn_equal, hashfn_user_defined, make_hash_table)
17349 (maybe_resize_hash_table, hash_lookup, hash_put)
17350 (hash_remove_from_table, hash_clear, sweep_weak_table, SXHASH_COMBINE)
17351 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector)
17352 (Fsxhash, Fgethash, Fputhash, Fmaphash):
17353 * image.c (make_image, search_image_cache, lookup_image)
17354 (xpm_put_color_table_h):
17355 * lisp.h (struct Lisp_Hash_Table):
17356 * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
17357 * print.c (print): Use 'EMACS_UINT' and 'EMACS_INT'
17358 for hashes and hash indexes, instead of 'unsigned' and 'int'.
17359 * alloc.c (allocate_vectorlike):
17360 Check for overflow in vector size calculations.
17361 * ccl.c (ccl_driver):
17362 Check for overflow when converting EMACS_INT to int.
17363 * fns.c, image.c: Remove unnecessary static decls that would otherwise
17364 need to be updated by these changes.
17365 * fns.c (make_hash_table, maybe_resize_hash_table):
17366 Check for integer overflow with large hash tables.
17367 (make_hash_table, maybe_resize_hash_table, Fmake_hash_table):
17368 Prefer the faster XFLOAT_DATA to XFLOATINT where either will do.
17369 (SXHASH_REDUCE): New macro.
17370 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector):
17371 Use it instead of discarding useful hash info with large hash values.
17372 (sxhash_float): New function.
17373 (sxhash): Use it. No more need for "& INTMASK" due to above changes.
17374 * lisp.h (FIXNUM_BITS): New macro, useful for SXHASH_REDUCE etc.
17375 (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK):
17376 Rewrite to use FIXNUM_BITS, as this simplifies things.
17377 (next_almost_prime, larger_vector, sxhash, hash_lookup, hash_put):
17378 Adjust signatures to match updated version of code.
17379 (consing_since_gc): Now EMACS_INT, since a single hash table can
17380 use more than INT_MAX bytes.
17381
17382 2011-06-01 Dan Nicolaescu <dann@ics.uci.edu>
17383
17384 Make it possible to build with GCC-4.6+ -O2 -flto.
17385
17386 * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE.
17387
17388 2011-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
17389
17390 * minibuf.c (get_minibuffer, read_minibuf_unwind):
17391 Call minibuffer-inactive-mode.
17392
17393 2011-05-31 Juanma Barranquero <lekktu@gmail.com>
17394
17395 * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)):
17396 Update dependencies.
17397
17398 2011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
17399
17400 * data.c (init_data): Remove code for UTS, this system is not
17401 supported anymore.
17402
17403 2011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
17404
17405 Don't force ./temacs to start in terminal mode.
17406
17407 * frame.c (make_initial_frame): Initialize faces in all cases, not
17408 only when CANNOT_DUMP is defined.
17409 * dispnew.c (init_display): Remove CANNOT_DUMP condition.
17410
17411 2011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
17412
17413 * dispnew.c (add_window_display_history): Use const for the string
17414 pointer. Remove declaration, not needed.
17415
17416 2011-05-31 Paul Eggert <eggert@cs.ucla.edu>
17417
17418 Use 'inline', not 'INLINE'.
17419 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00914.html>
17420 * alloc.c, fontset.c (INLINE): Remove.
17421 * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
17422 * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
17423 * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
17424 * gmalloc.c (register_heapinfo): Use inline unconditionally.
17425 * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
17426
17427 2011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
17428
17429 Make it possible to run ./temacs.
17430
17431 * callproc.c (set_initial_environment): Remove CANNOT_DUMP code,
17432 syms_of_callproc does the same thing. Remove test for
17433 "initialized", do it in the caller.
17434 * emacs.c (main): Avoid calling set_initial_environment when dumping.
17435
17436 2011-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
17437
17438 * minibuf.c (Finternal_complete_buffer): Return `category' metadata.
17439 (read_minibuf): Use get_minibuffer.
17440 (syms_of_minibuf): Use DEFSYM.
17441 (Qmetadata): New var.
17442 * data.c (Qbuffer): Don't make it static.
17443 (syms_of_data): Use DEFSYM.
17444
17445 2011-05-31 Paul Eggert <eggert@cs.ucla.edu>
17446
17447 * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751)
17448 (CCL_CODE_MIN): New macro.
17449
17450 2011-05-30 Paul Eggert <eggert@cs.ucla.edu>
17451
17452 * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests.
17453
17454 * eval.c (Qdebug): Now static.
17455 * lisp.h (Qdebug): Remove decl. This reverts a part of the
17456 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of
17457 2011-04-14T06:48:41Z!eggert@cs.ucla.edu.
17458
17459 2011-05-29 Chong Yidong <cyd@stupidchicken.com>
17460
17461 * image.c: Various fixes to ImageMagick code comments.
17462 (Fimagemagick_types): Doc fix.
17463
17464 2011-05-29 Paul Eggert <eggert@cs.ucla.edu>
17465
17466 Minor fixes prompted by GCC 4.6.0 warnings.
17467
17468 * xselect.c (converted_selections, conversion_fail_tag): Now static.
17469
17470 * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h".
17471 (x_clipboard_manager_save_all): Move extern decl to ...
17472 * xterm.h: ... here, so that it can be checked for consistency.
17473
17474 2011-05-29 Chong Yidong <cyd@stupidchicken.com>
17475
17476 * xselect.c (x_clipboard_manager_save_frame)
17477 (x_clipboard_manager_save_all): New functions.
17478 (Fx_clipboard_manager_save): Lisp function deleted.
17479
17480 * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all.
17481 * frame.c (delete_frame): Call x_clipboard_manager_save_frame.
17482
17483 * xterm.h: Update prototype.
17484
17485 2011-05-28 William Xu <william.xwl@gmail.com>
17486
17487 * nsterm.m (ns_term_shutdown): Synchronize user defaults before
17488 exiting (Bug#8239).
17489
17490 2011-05-28 Jim Meyering <meyering@redhat.com>
17491
17492 Avoid a sign-extension bug in crypto_hash_function.
17493 * fns.c (to_uchar): Define.
17494 (crypto_hash_function): Use it to convert some newly-signed
17495 variables to unsigned, to avoid sign-extension bugs. For example,
17496 without this change, (md5 "truc") would evaluate to
17497 45723a2aff78ff4fff7fff1114760e62 rather than the expected
17498 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in
17499 https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html.
17500
17501 2011-05-27 Paul Eggert <eggert@cs.ucla.edu>
17502
17503 Integer overflow fixes.
17504
17505 * dbusbind.c: Serial number integer overflow fixes.
17506 (CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
17507 (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
17508 to hold a serial number that is too large for a fixnum.
17509 (Fdbus_method_return_internal, Fdbus_method_error_internal):
17510 Check for serial numbers out of range. Decode any serial number
17511 that was so large that it became a float. (Bug#8722)
17512
17513 * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
17514 (Fdbus_call_method, Fdbus_call_method_asynchronously):
17515 Use XFASTINT rather than XUINT when numbers are nonnegative.
17516 (xd_append_arg, Fdbus_method_return_internal):
17517 (Fdbus_method_error_internal): Likewise. Also, for unsigned
17518 arguments, check that Lisp number is nonnegative, rather than
17519 silently wrapping negative numbers around. (Bug#8722)
17520 (xd_read_message_1): Don't assume dbus_uint32_t can fit in int.
17521 (Bug#8722)
17522
17523 * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT.
17524
17525 * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'.
17526
17527 ccl: Add integer overflow checks.
17528 * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
17529 (IN_INT_RANGE): New macros.
17530 (ccl_driver): Use them to check for integer overflow when
17531 decoding a CCL program. Many of the new checks are whether XINT (x)
17532 fits in int; it doesn't always, on 64-bit hosts. The new version
17533 doesn't catch all possible integer overflows, but it's an
17534 improvement. (Bug#8719)
17535
17536 * alloc.c (make_event_array): Use XINT, not XUINT.
17537 There's no need for unsigned here.
17538
17539 * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t
17540 This follows up to the 2011-05-06 change that substituted uintptr_t
17541 for EMACS_INT. This case wasn't caught back then.
17542
17543 Rework Fformat to avoid integer overflow issues.
17544 * editfns.c: Include <float.h> unconditionally, as it's everywhere
17545 now (part of C89). Include <verify.h>.
17546 (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed.
17547 (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns.
17548 (Fformat): Avoid the prepass trying to compute sizes; it was only
17549 approximate and thus did not catch overflow reliably. Instead, walk
17550 through the format just once, formatting and computing sizes as we go,
17551 checking for integer overflow at every step, and allocating a larger
17552 buffer as needed. Keep track separately whether the format is
17553 multibyte. Keep only the most-recently calculated precision, rather
17554 than them all. Record whether each argument has been converted to
17555 string. Use EMACS_INT, not int, for byte and char and arg counts.
17556 Support field widths and precisions larger than INT_MAX. Avoid
17557 sprintf's undefined behavior with conversion specifications such as %#d
17558 and %.0c. Fix bug with strchr succeeding on '\0' when looking for
17559 flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when
17560 formatting out-of-range floating point numbers with int
17561 formats. (Bug#8668)
17562
17563 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
17564
17565 * data.c: Avoid integer truncation in expressions involving floats.
17566 * data.c: Include <intprops.h>.
17567 (arith_driver): When there's an integer overflow in an expression
17568 involving floating point, convert the integers to floating point
17569 so that the resulting value does not suffer from catastrophic
17570 integer truncation. For example, on a 64-bit host (* 4
17571 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
17572 Do not rely on undefined behavior after integer overflow.
17573
17574 merge count_size_as_multibyte, parse_str_to_multibyte
17575 * character.c, character.h (count_size_as_multibyte):
17576 Rename from parse_str_to_multibyte; all uses changed.
17577 Check for integer overflow.
17578 * insdel.c, lisp.h (count_size_as_multibyte): Remove,
17579 since it's now a duplicate of the other. This is more of
17580 a character than a buffer op, so better that it's in character.c.
17581 * fns.c, print.c: Adjust to above changes.
17582
17583 2011-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
17584
17585 * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup.
17586
17587 2011-05-27 Paul Eggert <eggert@cs.ucla.edu>
17588
17589 * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
17590 (x_handle_selection_request, frame_for_x_selection): Remove unused vars.
17591 (x_clipboard_manager_save): Now static.
17592 (Fx_clipboard_manager_save): Rename local to avoid shadowing.
17593
17594 * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings.
17595 (crypto_hash_function): Now static.
17596 Fix pointer signedness problems. Avoid unnecessary initializations.
17597
17598 2011-05-27 Chong Yidong <cyd@stupidchicken.com>
17599
17600 * termhooks.h (Vselection_alist): Make it terminal-local.
17601
17602 * terminal.c (create_terminal): Initialize it.
17603
17604 * xselect.c: Support for clipboard managers.
17605 (Vselection_alist): Move to termhooks.h as terminal-local var.
17606 (LOCAL_SELECTION): New macro.
17607 (x_atom_to_symbol): Handle x_display_info_for_display fail case.
17608 (symbol_to_x_atom): Remove gratuitous arg.
17609 (x_handle_selection_request, lisp_data_to_selection_data)
17610 (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
17611 (x_own_selection, x_get_local_selection, x_convert_selection):
17612 New arg, specifying work frame. Use terminal-local Vselection_alist.
17613 (some_frame_on_display): Delete unused function.
17614 (Fx_own_selection_internal, Fx_get_selection_internal)
17615 (Fx_disown_selection_internal, Fx_selection_owner_p)
17616 (Fx_selection_exists_p): New optional frame arg.
17617 (frame_for_x_selection, Fx_clipboard_manager_save): New functions.
17618 (x_handle_selection_clear): Don't treat other terminals with the
17619 same keyboard specially. Use the terminal-local Vselection_alist.
17620 (x_clear_frame_selections): Use Frun_hook_with_args.
17621
17622 * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.
17623
17624 * xterm.h: Add support for those atoms.
17625
17626 2011-05-26 Chong Yidong <cyd@stupidchicken.com>
17627
17628 * xselect.c: ICCCM-compliant handling of MULTIPLE targets.
17629 (converted_selections, conversion_fail_tag): New global variables.
17630 (x_selection_request_lisp_error): Free the above.
17631 (x_get_local_selection): Remove unnecessary code.
17632 (x_reply_selection_request): Args changed; handle arbitrary array
17633 of converted selections stored in converted_selections.
17634 Separate the XChangeProperty and SelectionNotify steps.
17635 (x_handle_selection_request): Rewrite to handle MULTIPLE target.
17636 (x_convert_selection): New function.
17637 (x_handle_selection_event): Simplify.
17638 (x_get_foreign_selection): Don't ignore incoming requests while
17639 waiting for an answer; this will fail when we implement
17640 SAVE_TARGETS, and seems unnecessary anyway.
17641 (selection_data_to_lisp_data): Recognize ATOM_PAIR type.
17642 (Vx_sent_selection_functions): Doc fix.
17643
17644 2011-05-26 Leo Liu <sdl.web@gmail.com>
17645
17646 * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699)
17647
17648 2011-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
17649
17650 * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.
17651
17652 * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
17653 for fringe update if it has periodic bitmap.
17654 (row_equal_p): Also compare left_fringe_offset, right_fringe_offset,
17655 and fringe_bitmap_periodic_p.
17656
17657 * fringe.c (get_fringe_bitmap_data): New function.
17658 (draw_fringe_bitmap_1, update_window_fringes): Use it.
17659 (update_window_fringes): Record periodicity of fringe bitmap in glyph
17660 row. Mark glyph row for fringe update if periodicity changed.
17661
17662 * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
17663 for fringe update unless it has periodic bitmap.
17664
17665 2011-05-25 Kenichi Handa <handa@m17n.org>
17666
17667 * xdisp.c (get_next_display_element): Set correct it->face_id for
17668 a static composition.
17669
17670 2011-05-24 Leo Liu <sdl.web@gmail.com>
17671
17672 * deps.mk (fns.o):
17673 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h.
17674
17675 * fns.c (crypto_hash_function, Fsha1): New function.
17676 (Fmd5): Use crypto_hash_function.
17677 (syms_of_fns): Add Ssha1.
17678
17679 2011-05-22 Paul Eggert <eggert@cs.ucla.edu>
17680
17681 * gnutls.c: Remove unused macros.
17682 (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
17683 (fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
17684 Remove macros that are defined and never used.
17685 Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
17686
17687 2011-05-22 Chong Yidong <cyd@stupidchicken.com>
17688
17689 * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
17690 (Fx_get_selection_internal): Minor cleanup.
17691 (Fx_own_selection_internal): Rename arguments for consistency with
17692 select.el.
17693
17694 2011-05-22 Paul Eggert <eggert@cs.ucla.edu>
17695
17696 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure.
17697
17698 2011-05-22 Chong Yidong <cyd@stupidchicken.com>
17699
17700 * xselect.c (syms_of_xselect): Include character.h; use DEFSYM.
17701
17702 2011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
17703
17704 * dispnew.c (scrolling_window): Don't exclude the case that the
17705 last enabled row in the desired matrix touches the bottom boundary.
17706
17707 2011-05-21 Glenn Morris <rgm@gnu.org>
17708
17709 * Makefile.in ($(etc)/DOC): Make second command line even shorter.
17710 (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
17711 and add some more files.
17712
17713 2011-05-20 Eli Zaretskii <eliz@gnu.org>
17714
17715 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
17716 report_file_error introduced by the change from 2011-05-07.
17717
17718 2011-05-20 Paul Eggert <eggert@cs.ucla.edu>
17719
17720 * systime.h (Time): Define only if emacs is defined.
17721 This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
17722 where the include path doesn't have X11/X.h by default. See
17723 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
17724
17725 2011-05-20 Kenichi Handa <handa@m17n.org>
17726
17727 * composite.c (find_automatic_composition): Fix previous change.
17728
17729 2011-05-20 Glenn Morris <rgm@gnu.org>
17730
17731 * lisp.mk: New file, split from Makefile.in.
17732 * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
17733 (shortlisp): Remove.
17734 ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.
17735
17736 2011-05-19 Glenn Morris <rgm@gnu.org>
17737
17738 * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
17739 (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
17740 (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
17741 (lisp): Set the order to that of loadup.el.
17742 (shortlisp): Make it a copy of $lisp.
17743 (SOME_MACHINE_LISP): Remove.
17744 ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
17745 Use just $shortlisp, not $SOME_MACHINE_LISP too.
17746
17747 2011-05-18 Kenichi Handa <handa@m17n.org>
17748
17749 * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
17750 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
17751 (find_automatic_composition): Mostly rewrite for efficiency.
17752
17753 2011-05-18 Juanma Barranquero <lekktu@gmail.com>
17754
17755 * makefile.w32-in: Update dependencies.
17756
17757 2011-05-18 Christoph Scholtes <cschol2112@googlemail.com>
17758
17759 * menu.c: Include limits.h (fixes the MS-Windows build broken by
17760 2011-06-18T18:49:19Z!cyd@stupidchicken.com).
17761
17762 2011-05-18 Paul Eggert <eggert@cs.ucla.edu>
17763
17764 Fix some integer overflow issues, such as string length overflow.
17765
17766 * insdel.c (count_size_as_multibyte): Check for string overflow.
17767
17768 * character.c (lisp_string_width): Check for string overflow.
17769 Use EMACS_INT, not int, for string indexes and lengths; in
17770 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
17771 the resulting string length overflows an EMACS_INT; instead,
17772 report a string overflow if no precision given. When checking for
17773 precision exhaustion, use a check that cannot possibly have
17774 integer overflow. (Bug#8675)
17775 * character.h (lisp_string_width): Adjust to new signature.
17776
17777 * alloc.c (string_overflow): New function.
17778 (Fmake_string): Use it. This doesn't change behavior, but saves
17779 a few bytes and will simplify future changes.
17780 * character.c (string_escape_byte8): Likewise.
17781 * lisp.h (string_overflow): New decl.
17782
17783 Fixups, following up to the user-interface timestamp change.
17784 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
17785 for UI timestamps, instead of unsigned long.
17786 * msdos.c (mouse_get_pos): Likewise.
17787 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
17788 * w32gui.h (Time): Define by including "systime.h" rather than by
17789 declaring it ourselves. (Bug#8664)
17790
17791 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
17792 * image.c (clear_image_cache): Likewise.
17793
17794 * term.c (term_mouse_position): Don't assume time_t wraparound.
17795
17796 Be more systematic about user-interface timestamps.
17797 Before, the code sometimes used 'Time', sometimes 'unsigned long',
17798 and sometimes 'EMACS_UINT', to represent these timestamps.
17799 This change causes it to use 'Time' uniformly, as that's what X uses.
17800 This makes the code easier to follow, and makes it easier to catch
17801 integer overflow bugs such as Bug#8664.
17802 * frame.c (Fmouse_position, Fmouse_pixel_position):
17803 Use Time, not unsigned long, for user-interface timestamps.
17804 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
17805 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
17806 * keyboard.h (last_event_timestamp): Likewise.
17807 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
17808 * menu.h (xmenu_show): Likewise.
17809 * term.c (term_mouse_position): Likewise.
17810 * termhooks.h (struct input_event.timestamp): Likewise.
17811 (struct terminal.mouse_position_hook): Likewise.
17812 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
17813 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
17814 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
17815 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
17816 what it was before.
17817 * menu.h, termhooks.h: Include "systime.h", for Time.
17818
17819 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
17820 Don't assume that the difference between two unsigned long values
17821 can fit into an integer. At this point, we know button_down_time
17822 <= event->timestamp, so the difference must be nonnegative, so
17823 there's no need to cast the result if double-click-time is
17824 nonnegative, as it should be; check that it's nonnegative, just in
17825 case. This bug is triggered when events are more than 2**31 ms
17826 apart (about 25 days). (Bug#8664)
17827
17828 * xselect.c (last_event_timestamp): Remove duplicate decl.
17829 (x_own_selection): Remove needless cast to unsigned long.
17830
17831 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
17832 that always fit in int. Use a sentinel instead of a counter, to
17833 avoid a temp and to allay GCC's concerns about possible int overflow.
17834 * frame.h (struct frame): Use int for menu_bar_items_used
17835 instead of EMACS_INT, since it always fits in int.
17836
17837 * menu.c (grow_menu_items): Check for int overflow.
17838
17839 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
17840
17841 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
17842 Before, the code was not consistent. These values cannot exceed
17843 2**31 - 1 so there's no need to make them unsigned.
17844 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
17845 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
17846 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
17847 as modifiers.
17848 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
17849
17850 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
17851 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
17852 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
17853 presumably because the widths might not match.
17854
17855 * window.c (size_window): Avoid needless test at loop start.
17856
17857 2011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
17858
17859 * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
17860
17861 2011-05-12 Drew Adams <drew.adams@oracle.com>
17862
17863 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
17864
17865 2011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
17866
17867 * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
17868 `width' to `bar_area_x' and `bar_area_width', respectively.
17869 (x_scroll_run): Take account of fringe background extension.
17870
17871 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
17872 Rename local vars `left' and `width' to `bar_area_x' and
17873 `bar_area_width', respectively.
17874 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
17875 background extension.
17876
17877 2011-05-10 Jim Meyering <meyering@redhat.com>
17878
17879 * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
17880
17881 2011-05-10 Juanma Barranquero <lekktu@gmail.com>
17882
17883 * image.c (Finit_image_library): Return t for built-in image types,
17884 like pbm and xbm. (Bug#8640)
17885
17886 2011-05-09 Andreas Schwab <schwab@linux-m68k.org>
17887
17888 * w32menu.c (set_frame_menubar): Fix submenu allocation.
17889
17890 2011-05-07 Eli Zaretskii <eliz@gnu.org>
17891
17892 * w32console.c (Fset_screen_color): Doc fix.
17893 (Fget_screen_color): New function.
17894 (syms_of_ntterm): Defsubr it.
17895
17896 * callproc.c (call_process_cleanup) [MSDOS]: Don't close and
17897 unlink the temporary file if Fcall_process didn't create it in the
17898 first place.
17899 (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the
17900 child process will be redirected to a file specified with `:file'.
17901 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
17902 cue to call_process_cleanup not to close that handle.
17903
17904 2011-05-07 Ben Key <bkey76@gmail.com>
17905
17906 * makefile.w32-in: The bootstrap-temacs rule now makes use of
17907 one of two shell specific rules, either bootstrap-temacs-CMD or
17908 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
17909 to the previous implementation of the bootstrap-temacs rule.
17910 The bootstrap-temacs-CMD rule is similar to the previous
17911 implementation of the bootstrap-temacs rule except that it
17912 makes use of the ESC_CFLAGS variable instead of the CFLAGS
17913 variable.
17914
17915 These changes, along with some changes to nt/configure.bat,
17916 nt/gmake.defs, and nt/nmake.defs, are required to extend my
17917 earlier fix to add support for --cflags and --ldflags options
17918 that include quotes so that it works whether make uses cmd or
17919 sh as the shell.
17920
17921 2011-05-06 Michael Albinus <michael.albinus@gmx.de>
17922
17923 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
17924 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
17925 is a constant.
17926 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
17927 a string. Handle both cases.
17928 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
17929 (Fdbus_register_method): Use Qinvalid_function.
17930
17931 2011-05-06 Juanma Barranquero <lekktu@gmail.com>
17932
17933 * makefile.w32-in: Update dependencies.
17934 (LISP_H): Add inttypes.h and stdin.h.
17935 (PROCESS_H): Add unistd.h.
17936
17937 2011-05-06 Eli Zaretskii <eliz@gnu.org>
17938
17939 * lread.c: Include limits.h (fixes the MS-Windows build broken by
17940 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
17941
17942 2011-05-06 Paul Eggert <eggert@cs.ucla.edu>
17943
17944 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
17945
17946 * term.c (vfatal): Remove stray call to va_end.
17947 It's not needed and the C Standard doesn't allow it here anyway.
17948
17949 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
17950 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
17951
17952 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
17953 bytes.
17954
17955 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
17956
17957 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
17958
17959 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
17960
17961 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
17962
17963 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
17964
17965 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
17966 * charset.c (Fdefine_charset_internal): Don't initialize
17967 charset.code_space[15]. The value was garbage, on hosts with
17968 32-bit int (Bug#8600).
17969
17970 * lread.c (read_integer): Be more consistent with string-to-number.
17971 Use string_to_number to do the actual conversion; this avoids
17972 rounding errors and fixes some other screwups. Without this fix,
17973 for example, #x1fffffffffffffff was misread as -2305843009213693952.
17974 (digit_to_number): Move earlier, for benefit of read_integer.
17975 Return -1 if the digit is out of range for the base, -2 if it is
17976 not a digit in any supported base. (Bug#8602)
17977
17978 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
17979
17980 * dispnew.c (scrolling_window): Return 1 if we scrolled,
17981 to match comment at start of function. This also removes a
17982 GCC warning about overflow in a 32+64-bit port.
17983
17984 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
17985
17986 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
17987 Reported by Stefan Monnier in
17988 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
17989 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
17990 Use SYMBOLP-guarded XSYMBOL, not XPNTR.
17991
17992 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
17993 (EMACS_UINTPTR): Likewise, with uintptr_t.
17994
17995 * lisp.h: Prefer 64-bit EMACS_INT if available.
17996 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
17997 on 32-bit hosts that have 64-bit int, so that they can access
17998 large files.
17999 However, temporarily disable this change unless the temporary
18000 symbol WIDE_EMACS_INT is defined.
18001
18002 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
18003
18004 Prefer intptr_t/uintptr_t for integers the same widths as pointers.
18005 This removes an assumption that EMACS_INT and long are the same
18006 width as pointers. The assumption is true for Emacs porting targets
18007 now, but we want to make other targets possible.
18008 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
18009 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
18010 In the rest of the code, change types of integers that hold casted
18011 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
18012 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
18013 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
18014 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
18015 No need to cast type when ORing.
18016 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
18017 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
18018 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
18019 assume EMACS_INT is the same width as char *.
18020 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
18021 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
18022 Remove no-longer-needed casts.
18023 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
18024 (xg_tool_bar_help_callback, xg_make_tool_item):
18025 Use EMACS_INTPTR to hold an integer
18026 that will be cast to void *; this can avoid a GCC warning
18027 if EMACS_INT is not the same width as void *.
18028 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
18029 * xdisp.c (display_echo_area_1, resize_mini_window_1):
18030 (current_message_1, set_message_1):
18031 Use a local to convert to proper width without a cast.
18032 * xmenu.c (dialog_selection_callback): Likewise.
18033
18034 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
18035 Also, don't assume VALBITS / RAND_BITS is less than 5,
18036 and don't rely on undefined behavior when shifting a 1 left into
18037 the sign bit.
18038 * lisp.h (get_random): Change signature to match.
18039
18040 * lread.c (hash_string): Use size_t, not int, for hash computation.
18041 Normally we prefer signed values; but hashing is special, because
18042 it's better to use unsigned division on hash table sizes so that
18043 the remainder is nonnegative. Also, size_t is the natural width
18044 for hashing into memory. The previous code used 'int', which doesn't
18045 retain enough info to hash well into very large tables.
18046 (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
18047
18048 * dbusbind.c: Don't possibly lose pointer info when converting.
18049 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
18050 Use XPNTR rather than XHASH, so that the high-order bits of
18051 the pointer aren't lost when converting through void *.
18052
18053 * eval.c (Fautoload): Don't double-shift a pointer.
18054
18055 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
18056
18057 2011-05-06 Juanma Barranquero <lekktu@gmail.com>
18058
18059 * gnutls.c (DEF_GNUTLS_FN):
18060 * image.c (DEF_IMGLIB_FN): Make function pointers static.
18061
18062 2011-05-05 Andreas Schwab <schwab@linux-m68k.org>
18063
18064 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
18065 marker. (Bug#8610)
18066
18067 2011-05-05 Eli Zaretskii <eliz@gnu.org>
18068
18069 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
18070 New version that can reserve upto 2GB of heap space.
18071
18072 2011-05-05 Chong Yidong <cyd@stupidchicken.com>
18073
18074 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
18075
18076 2011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
18077
18078 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
18079 `gnutls_certificate_set_x509_key_file'.
18080
18081 2011-05-05 Juanma Barranquero <lekktu@gmail.com>
18082
18083 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
18084 Update dependencies.
18085
18086 2011-05-04 Juanma Barranquero <lekktu@gmail.com>
18087
18088 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
18089 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
18090 Remove unused parameter `fildes'.
18091 * process.c (read_process_output, send_process): Don't pass it.
18092
18093 2011-05-04 Juanma Barranquero <lekktu@gmail.com>
18094
18095 Fix previous change: the library cache is defined in w32.c.
18096 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
18097 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
18098
18099 2011-05-04 Juanma Barranquero <lekktu@gmail.com>
18100
18101 Implement dynamic loading of GnuTLS on Windows.
18102
18103 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
18104 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
18105 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
18106 Declare.
18107
18108 * gnutls.c (Qgnutls_dll): Define.
18109 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
18110 (gnutls_*): Declare function pointers.
18111 (init_gnutls_functions): New function to initialize function pointers.
18112 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
18113 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
18114 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
18115 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
18116 (emacs_gnutls_write, emacs_gnutls_read)
18117 (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
18118 (Fgnutls_available_p): New function.
18119 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers.
18120 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
18121 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
18122
18123 * image.c: Include w32.h.
18124 (Vimage_type_cache): Delete.
18125 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
18126 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
18127 (w32_delayed_load): Move to w32.c.
18128
18129 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
18130
18131 * w32.c (QCloaded_from, Vlibrary_cache): Define.
18132 (w32_delayed_load): Move from image.c. When loading a library, record
18133 its filename in the :loaded-from property of the library id.
18134 (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
18135 Initialize and staticpro them.
18136 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
18137
18138 * process.c: Include lisp.h before w32.h, not after.
18139 (wait_reading_process_output): Call emacs_gnutls_record_check_pending
18140 instead of gnutls_record_check_pending.
18141
18142 * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
18143
18144 2011-05-04 Teodor Zlatanov <tzz@lifelogs.com>
18145
18146 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
18147 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists
18148 as passed in.
18149
18150 2011-05-03 Jan Djärv <jan.h.d@swipnet.se>
18151
18152 * xterm.c (x_set_frame_alpha): Do not set property on anything
18153 else than FRAME_X_OUTER_WINDOW (Bug#8608).
18154
18155 2011-05-02 Juanma Barranquero <lekktu@gmail.com>
18156
18157 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596)
18158
18159 2011-05-02 Juanma Barranquero <lekktu@gmail.com>
18160
18161 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
18162 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
18163 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
18164 (gnutls_global_initialized, Qgnutls_bootprop_priority)
18165 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
18166 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
18167 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
18168 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
18169 (Qgnutls_bootprop_callbacks_verify): Make static.
18170
18171 2011-05-01 Andreas Schwab <schwab@linux-m68k.org>
18172
18173 * callproc.c: Indentation fixup.
18174
18175 * sysdep.c (wait_for_termination_1): Make static.
18176 (wait_for_termination, interruptible_wait_for_termination):
18177 Move after wait_for_termination_1.
18178
18179 2011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
18180
18181 * sysdep.c (interruptible_wait_for_termination): New function
18182 which is like wait_for_termination, but allows keyboard
18183 interruptions.
18184
18185 * callproc.c (Fcall_process): Add (:file "file") as an option for
18186 the STDOUT buffer.
18187 (Fcall_process_region): Ditto.
18188
18189 2011-04-30 Eli Zaretskii <eliz@gnu.org>
18190
18191 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
18192 rather than `XVECTOR (FOO)->size'.
18193
18194 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
18195 inttypes.h, as a gnulib replacement is used if it not available in
18196 system headers.
18197
18198 2011-04-21 Eli Zaretskii <eliz@gnu.org>
18199
18200 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
18201 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
18202 of MOST_POSITIVE_FIXNUM. (Bug#8528)
18203
18204 * coding.c (coding_alloc_by_realloc): Error out if destination
18205 will grow beyond MOST_POSITIVE_FIXNUM.
18206 (decode_coding_emacs_mule): Abort if there isn't enough place in
18207 charbuf for the composition carryover bytes. Reserve an extra
18208 space for up to 2 characters produced in a loop.
18209 (decode_coding_iso_2022): Abort if there isn't enough place in
18210 charbuf for the composition carryover bytes.
18211
18212 2011-04-21 Eli Zaretskii <eliz@gnu.org>
18213
18214 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
18215 aborting when %lld or %lll format is passed.
18216 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
18217 %llo or %llx format is passed. (Bug#8545)
18218
18219 * window.c (window_scroll_line_based): Use a marker instead of
18220 simple variables to record original value of point. (Bug#7952)
18221
18222 * doprnt.c (doprnt): Fix the case where a multibyte sequence
18223 produced by %s or %c overflows available buffer space. (Bug#8545)
18224
18225 2011-04-28 Paul Eggert <eggert@cs.ucla.edu>
18226
18227 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
18228 (SIZE_MAX): Move defn after all includes, as they might #define it.
18229
18230 2011-04-28 Juanma Barranquero <lekktu@gmail.com>
18231
18232 * w32.c (init_environment): Warn about defaulting HOME to C:\.
18233
18234 2011-04-28 Juanma Barranquero <lekktu@gmail.com>
18235
18236 * keyboard.c (Qdelayed_warnings_hook): Define.
18237 (command_loop_1): Run `delayed-warnings-hook'
18238 if Vdelayed_warnings_list is non-nil.
18239 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
18240 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
18241
18242 2011-04-28 Eli Zaretskii <eliz@gnu.org>
18243
18244 * doprnt.c (doprnt): Don't return value smaller than the buffer
18245 size if the message was truncated. (Bug#8545).
18246
18247 2011-04-28 Juanma Barranquero <lekktu@gmail.com>
18248
18249 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
18250 (Fx_window_property): #if-0 the whole functions, not just the bodies.
18251
18252 2011-04-27 Paul Eggert <eggert@cs.ucla.edu>
18253
18254 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
18255
18256 2011-04-27 Juanma Barranquero <lekktu@gmail.com>
18257
18258 * makefile.w32-in: Update dependencies.
18259
18260 2011-04-27 Eli Zaretskii <eliz@gnu.org>
18261
18262 Improve `doprnt' and its usage. (Bug#8545)
18263 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
18264 `format_end'. Remove support for %l as a conversion specifier.
18265 Don't use xrealloc. Improve diagnostics when the %l size modifier
18266 is used. Update the commentary.
18267
18268 * eval.c (verror): Simplify calculation of size_t.
18269
18270 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
18271 messages.
18272
18273 2011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
18274
18275 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
18276 change.
18277
18278 2011-04-27 Paul Eggert <eggert@cs.ucla.edu>
18279
18280 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
18281 This makes this file independent of the recent pseudovector change.
18282
18283 2011-04-26 Paul Eggert <eggert@cs.ucla.edu>
18284
18285 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
18286
18287 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
18288 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
18289 Remove unused local.
18290 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
18291
18292 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
18293 GCC 4.6.0 optimizes based on type-based alias analysis.
18294 For example, if b is of type struct buffer * and v of type struct
18295 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
18296 != &v->size, and therefore "v->size = 1; b->size = 2; return
18297 v->size;" must therefore return 1. This assumption is incorrect
18298 for Emacs, since it type-puns struct Lisp_Vector * with many other
18299 types. To fix this problem, this patch adds a new type struct
18300 vectorlike_header that documents the constraints on layout of vectors
18301 and pseudovectors, and helps optimizing compilers not get fooled
18302 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
18303 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
18304 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
18305 the size member.
18306 (XSETPVECTYPE): Rewrite in terms of new macro.
18307 (XSETPVECTYPESIZE): New macro, specifying both type and size.
18308 This is a bit clearer, and further avoids the possibility of
18309 undesirable aliasing.
18310 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
18311 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
18312 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
18313 since Lisp_Subr is a special case (no "next" field).
18314 (ASIZE): Now uses header.size rather than size.
18315 All previous uses of XVECTOR (foo)->size replaced to use this macro,
18316 to avoid the hassle of writing XVECTOR (foo)->header.size.
18317 (struct vectorlike_header): New type.
18318 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
18319 object, to help avoid aliasing.
18320 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
18321 (SUBRP): Likewise, since Lisp_Subr is a special case.
18322 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
18323 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
18324 (struct Lisp_Hash_Table): Combine first two members into a single
18325 struct vectorlike_header member. All uses of "size" and "next" members
18326 changed to be "header.size" and "header.next".
18327 * buffer.h (struct buffer): Likewise.
18328 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
18329 * frame.h (struct frame): Likewise.
18330 * process.h (struct Lisp_Process): Likewise.
18331 * termhooks.h (struct terminal): Likewise.
18332 * window.c (struct save_window_data, struct saved_window): Likewise.
18333 * window.h (struct window): Likewise.
18334 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
18335 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
18336 * buffer.c (init_buffer_once): Likewise.
18337 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
18338 special case.
18339 * process.c (Fformat_network_address): Use local var for size,
18340 for brevity.
18341
18342 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
18343
18344 Make the Lisp reader and string-to-float more consistent (Bug#8525)
18345 * data.c (atof): Remove decl; no longer used or needed.
18346 (digit_to_number): Move to lread.c.
18347 (Fstring_to_number): Use new string_to_number function, to be
18348 consistent with how the Lisp reader treats infinities and NaNs.
18349 Do not assume that floating-point numbers represent EMACS_INT
18350 without losing information; this is not true on most 64-bit hosts.
18351 Avoid double-rounding errors, by insisting on integers when
18352 parsing non-base-10 numbers, as the documentation specifies.
18353 * lisp.h (string_to_number): New decl, replacing ...
18354 (isfloat_string): Remove.
18355 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
18356 (read1): Do not accept +. and -. as integers; this
18357 appears to have been a coding error. Similarly, do not accept
18358 strings like +-1e0 as floating point numbers. Do not report
18359 overflow for integer overflows unless the base is not 10 which
18360 means we have no simple and reliable way to continue.
18361 Break out the floating-point parsing into a new
18362 function string_to_number, so that Fstring_to_number parses
18363 floating point numbers consistently with the Lisp reader.
18364 (digit_to_number): Move here from data.c. Make it static inline.
18365 (E_CHAR, EXP_INT): Remove, replacing with ...
18366 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
18367 (string_to_number): New function, replacing isfloat_string.
18368 This function checks for valid syntax and produces the resulting
18369 Lisp float number too. Rework it so that string-to-number
18370 no longer mishandles examples like "1.0e+". Use strtoumax,
18371 so that overflow for non-base-10 numbers is reported only when
18372 there's no portable and simple way to convert to floating point.
18373
18374 * textprop.c (set_text_properties_1): Rewrite for clarity,
18375 and to avoid GCC warning about integer overflow.
18376
18377 * intervals.h (struct interval): Use EMACS_INT for members
18378 where EMACS_UINT might cause problems. See
18379 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
18380 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
18381 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
18382 All uses changed.
18383 (offset_intervals): Tell GCC not to worry about length overflow
18384 when negating a negative length.
18385
18386 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
18387 (overrun_check_free): Likewise.
18388
18389 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
18390 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
18391 word size.
18392
18393 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
18394 (gnutls_make_error): Rename local to avoid shadowing.
18395 (gnutls_emacs_global_deinit): ifdef out; not used.
18396 (Fgnutls_boot): Use const for pointer to readonly storage.
18397 Comment out unused local. Fix pointer signedness problems.
18398
18399 * lread.c (openp): Don't stuff size_t into an 'int'.
18400 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
18401 about possible signed overflow.
18402
18403 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
18404 (GDK_KEY_g): Don't define if already defined.
18405 (xg_prepare_tooltip): Avoid pointer signedness problem.
18406 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
18407
18408 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
18409 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
18410
18411 * xfns.c (Fx_window_property): Simplify a bit,
18412 to make a bit faster and to avoid GCC 4.6.0 warning.
18413 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
18414
18415 * fns.c (internal_equal): Don't assume size_t fits in int.
18416
18417 * alloc.c (compact_small_strings): Tighten assertion a little.
18418
18419 Replace pEd with more-general pI, and fix some printf arg casts.
18420 * lisp.h (pI): New macro, generalizing old pEd macro to other
18421 conversion specifiers. For example, use "...%"pI"d..." rather
18422 than "...%"pEd"...".
18423 (pEd): Remove. All uses replaced with similar uses of pI.
18424 * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise.
18425 * alloc.c (check_pure_size): Don't overflow by converting size to int.
18426 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
18427 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
18428 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
18429 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
18430 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
18431 64-bit hosts.
18432 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
18433 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
18434 * print.c (safe_debug_print, print_object): Likewise.
18435 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
18436 to int.
18437 Use pI instead of if-then-else-abort. Use %p to avoid casts,
18438 avoiding the 0 flag, which is not portable.
18439 * process.c (Fmake_network_process): Use pI to avoid cast.
18440 * region-cache.c (pp_cache): Likewise.
18441 * xdisp.c (decode_mode_spec): Likewise.
18442 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
18443 behavior on 64-bit hosts with printf arg.
18444 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
18445 (x_stop_queuing_selection_requests): Likewise.
18446 (x_get_window_property): Don't truncate byte count to an 'int'
18447 when tracing.
18448
18449 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
18450 here, since it parses constructs like leading '-' and spaces,
18451 which are not wanted; and it overflows with large numbers.
18452 Instead, simply match F[0-9]+, which is what is wanted anyway.
18453
18454 * alloc.c: Remove unportable assumptions about struct layout.
18455 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
18456 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
18457 (allocate_vectorlike, make_pure_vector): Use the new macros,
18458 plus offsetof, to remove unportable assumptions about struct layout.
18459 These assumptions hold on all porting targets that I know of, but
18460 they are not guaranteed, they're easy to remove, and removing them
18461 makes further changes easier.
18462
18463 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
18464 This doesn't fix a bug but makes the code clearer.
18465 (string_overrun_cookie): Now const. Use initializers that
18466 don't formally overflow signed char, to avoid warnings.
18467 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
18468 can cause Emacs to crash when string overrun checking is enabled.
18469 (allocate_buffer): Don't assume sizeof (struct buffer) is a
18470 multiple of sizeof (EMACS_INT); it need not be, if
18471 alignof(EMACS_INT) < sizeof (EMACS_INT).
18472 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
18473
18474 2011-04-26 Juanma Barranquero <lekktu@gmail.com>
18475
18476 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
18477
18478 2011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
18479
18480 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
18481 supposed to be handshaking. (Bug#8556)
18482 Reported by Paul Eggert <eggert@cs.ucla.edu>.
18483
18484 2011-04-26 Daniel Colascione <dan.colascione@gmail.com>
18485
18486 * lisp.h (Qdebug): List symbol.
18487 * eval.c (Qdebug): Restore global linkage.
18488 * keyboard.c (debug-on-event): New variable.
18489 (handle_user_signal): Break into debugger when debug-on-event
18490 matches the current signal symbol.
18491
18492 2011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
18493
18494 * alloc.c (check_sblock, check_string_bytes)
18495 (check_string_free_list): Convert to standard C.
18496
18497 2011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
18498
18499 * w32.c (emacs_gnutls_push): Fix typo.
18500
18501 2011-04-25 Eli Zaretskii <eliz@gnu.org>
18502
18503 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
18504 "cast to pointer from integer of different size".
18505
18506 Improve doprnt and its use in verror. (Bug#8545)
18507 * doprnt.c (doprnt): Document the set of format control sequences
18508 supported by the function. Use SAFE_ALLOCA instead of always
18509 using `alloca'.
18510
18511 * eval.c (verror): Don't limit the buffer size at size_max-1, that
18512 is one byte too soon. Don't use xrealloc; instead xfree and
18513 xmalloc anew.
18514
18515 2011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
18516
18517 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
18518 callbacks stage.
18519
18520 * gnutls.c: Renamed global_initialized to
18521 gnutls_global_initialized. Added internals for the
18522 :verify-hostname-error, :verify-error, and :verify-flags
18523 parameters of `gnutls-boot' and documented those parameters in the
18524 docstring. Start callback support.
18525 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
18526 unless a fatal error occurred. Call gnutls_alert_send_appropriate
18527 on error. Return error code.
18528 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
18529 (emacs_gnutls_read): Likewise.
18530 (Fgnutls_boot): Return handshake error code.
18531 (emacs_gnutls_handle_error): New function.
18532 (wsaerror_to_errno): Likewise.
18533
18534 * w32.h (emacs_gnutls_pull): Add prototype.
18535 (emacs_gnutls_push): Likewise.
18536
18537 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
18538 (emacs_gnutls_push): Likewise.
18539
18540 2011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
18541
18542 * process.c (wait_reading_process_output): Check if GnuTLS
18543 buffered some data internally if no FDs are set for TLS
18544 connections.
18545
18546 * makefile.w32-in (OBJ2): Add gnutls.$(O).
18547 (LIBS): Link to USER_LIBS.
18548 ($(BLD)/gnutls.$(0)): New target.
18549
18550 2011-04-24 Eli Zaretskii <eliz@gnu.org>
18551
18552 * xdisp.c (handle_single_display_spec): Rename the
18553 display_replaced_before_p argument into display_replaced_p, to
18554 make it consistent with the commentary. Fix typos in the
18555 commentary.
18556
18557 * textprop.c (syms_of_textprop): Remove dead code.
18558 (copy_text_properties): Delete obsolete commentary about an
18559 interface that was deleted long ago. Fix typos in the description
18560 of arguments.
18561
18562 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
18563 to changes in oldXMenu/XMenu.h from 2011-04-16.
18564 <menu_help_message, prev_menu_help_message>: Constify.
18565 (IT_menu_make_room): menu->help_text is now `const char **';
18566 adjust.
18567
18568 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
18569 to changes in oldXMenu/XMenu.h from 2011-04-16.
18570 (struct XMenu): Declare `help_text' `const char **'.
18571
18572 * xfaces.c <Qunspecified>: Make extern again.
18573
18574 * syntax.c: Include sys/types.h before including regex.h, as
18575 required by POSIX.
18576
18577 * doc.c (get_doc_string): Improve the format passed to `error'.
18578
18579 * doprnt.c (doprnt): Improve commentary.
18580
18581 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
18582
18583 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
18584 them with etags.
18585
18586 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
18587 changes in globals.h immediately force recompilation.
18588 (TAGS): Depend on $(CURDIR)/m/intel386.h and
18589 $(CURDIR)/s/ms-w32.h.
18590 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
18591
18592 * character.c (Fchar_direction): Function deleted.
18593 (syms_of_character): Don't defsubr it.
18594 <char-direction-table>: Deleted.
18595
18596 2011-04-23 Eli Zaretskii <eliz@gnu.org>
18597
18598 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
18599 * doprnt.c: Include limits.h.
18600 (SIZE_MAX): New macro.
18601 (doprnt): Return a size_t value. 2nd arg is now size_t.
18602 Many local variables are now size_t instead of int or unsigned.
18603 Improve overflow protection. Support `l' modifier for integer
18604 conversions. Support %l conversion. Don't assume an EMACS_INT
18605 argument for integer conversions and for %c.
18606
18607 * lisp.h (doprnt): Restore prototype.
18608
18609 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
18610 $(SRC)/character.h.
18611
18612 * Makefile.in (base_obj): Add back doprnt.o.
18613
18614 * deps.mk (doprnt.o): Add back prerequisites.
18615 (callint.o): Depend on character.h.
18616
18617 * eval.c (internal_lisp_condition_case): Include the handler
18618 representation in the error message.
18619 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
18620 when breaking from the loop.
18621
18622 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
18623
18624 * callint.c (Fcall_interactively): When displaying error message
18625 about invalid control letter, pass the character's codepoint, not
18626 a pointer to its multibyte form. Improve display of the character
18627 in octal and display also its hex code.
18628
18629 * character.c (char_string): Use %x to display the (unsigned)
18630 codepoint of an invalid character, to avoid displaying a bogus
18631 negative value.
18632
18633 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
18634 `error', not SYMBOL_NAME itself.
18635
18636 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
18637 character arguments to `error'.
18638
18639 * charset.c (check_iso_charset_parameter): Fix incorrect argument
18640 to `error' in error message about FINAL_CHAR argument. Make sure
18641 FINAL_CHAR is a character, and use %c when it is passed as
18642 argument to `error'.
18643
18644 2011-04-23 Eli Zaretskii <eliz@gnu.org>
18645
18646 * s/ms-w32.h (localtime): Redirect to sys_localtime.
18647
18648 * w32.c: Include <time.h>.
18649 (sys_localtime): New function.
18650
18651 2011-04-23 Chong Yidong <cyd@stupidchicken.com>
18652
18653 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
18654
18655 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
18656
18657 2011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
18658
18659 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
18660 zombies (Bug#8467).
18661
18662 2011-04-19 Eli Zaretskii <eliz@gnu.org>
18663
18664 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
18665 gl_state.e_property when gl_state.object is Qt.
18666
18667 * insdel.c (make_gap_larger): Remove limitation of buffer size
18668 to <= INT_MAX.
18669
18670 2011-04-18 Chong Yidong <cyd@stupidchicken.com>
18671
18672 * xdisp.c (lookup_glyphless_char_display)
18673 (produce_glyphless_glyph): Handle cons cell entry in
18674 glyphless-char-display.
18675 (Vglyphless_char_display): Document it.
18676
18677 * term.c (produce_glyphless_glyph): Handle cons cell entry in
18678 glyphless-char-display.
18679
18680 2011-04-17 Chong Yidong <cyd@stupidchicken.com>
18681
18682 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
18683
18684 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
18685
18686 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
18687 definition for no-X builds.
18688
18689 2011-04-16 Paul Eggert <eggert@cs.ucla.edu>
18690
18691 Static checks with GCC 4.6.0 and non-default toolkits.
18692
18693 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
18694
18695 * process.c (keyboard_bit_set): Define only if SIGIO.
18696 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
18697 (send_process): Repair possible setjmp clobbering.
18698
18699 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
18700
18701 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
18702
18703 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
18704
18705 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
18706 Define only if needed.
18707
18708 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
18709 by pacifying GCC about it. Maybe it's time to retire it?
18710 * xfaces.c (USG, __TIMEVAL__): Likewise.
18711
18712 * dispextern.h (struct redisplay_interface): Rename param
18713 to avoid shadowing.
18714 * termhooks.h (struct terminal): Likewise.
18715 * xterm.c (xembed_send_message): Likewise.
18716
18717 * insdel.c (make_gap_smaller): Define only if
18718 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
18719
18720 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
18721 it.
18722
18723 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
18724 so that we aren't warned about unused symbols.
18725
18726 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
18727
18728 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
18729
18730 * xfns.c (x_real_positions): Mark locals as initialized.
18731
18732 * xmenu.c (xmenu_show): Don't use uninitialized vars.
18733
18734 * xterm.c: Fix problems found by static analysis with other toolkits.
18735 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
18736 (x_dispatch_event): Declare static if USE_GTK, and
18737 define if USE_GTK || USE_X_TOOLKIT.
18738 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
18739 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
18740 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
18741 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
18742
18743 * xmenu.c (menu_help_callback): Pointer type fixes.
18744 Use const pointers when pointing at readonly data. Avoid pointer
18745 signedness clashes.
18746 (FALSE): Remove unused macro.
18747 (update_frame_menubar): Remove unused decl.
18748
18749 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
18750
18751 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
18752 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
18753 (single_menu_item): Rename local to avoid shadowing.
18754
18755 * keyboard.c (make_lispy_event): Remove unused local var.
18756
18757 * frame.c, frame.h (x_get_resource_string): Bring this back, but
18758 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
18759
18760 * bitmaps: Change bitmaps from unsigned char back to the X11
18761 compatible char. Avoid the old compiler warnings about
18762 out-of-range initializers by using, for example, '\xab' rather
18763 than 0xab.
18764
18765 * xgselect.c (xgselect_initialize): Check vs interface
18766 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
18767
18768 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
18769
18770 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
18771 to read-only memory.
18772
18773 * fns.c (vector): Remove; this old hack is no longer needed.
18774
18775 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
18776 Remove unused var.
18777 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
18778
18779 * xrdb.c (x_load_resources): Omit unused local.
18780
18781 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
18782 (x_window): Rename locals to avoid shadowing.
18783 (USG): Use the kludged USG macro, to pacify gcc.
18784
18785 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
18786 (x_term_init): Remove local to avoid shadowing.
18787
18788 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
18789
18790 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
18791 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
18792
18793 2011-04-16 Eli Zaretskii <eliz@gnu.org>
18794
18795 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
18796
18797 Fix regex.c, syntax.c and friends for buffers > 2GB.
18798 * syntax.h (struct gl_state_s): Declare character position members
18799 EMACS_INT.
18800
18801 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
18802
18803 * textprop.c (verify_interval_modification, interval_of):
18804 Declare arguments EMACS_INT.
18805
18806 * intervals.c (adjust_intervals_for_insertion): Declare arguments
18807 EMACS_INT.
18808
18809 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
18810
18811 * indent.c (Fvertical_motion): Local variable it_start is now
18812 EMACS_INT.
18813
18814 * regex.c (re_match, re_match_2, re_match_2_internal)
18815 (bcmp_translate, regcomp, regexec, print_double_string)
18816 (group_in_compile_stack, re_search, re_search_2, regex_compile)
18817 (re_compile_pattern, re_exec): Declare arguments and local
18818 variables `size_t' and `ssize_t' and return values `regoff_t', as
18819 appropriate.
18820 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
18821 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
18822 <compile_stack_type>: `size' and `avail' are now `size_t'.
18823
18824 * regex.h <regoff_t>: Use ssize_t, not int.
18825 (re_search, re_search_2, re_match, re_match_2): Arguments that
18826 specify buffer/string position and length are now ssize_t and
18827 size_t. Return type is regoff_t.
18828
18829 2011-04-16 Ben Key <bkey76@gmail.com>
18830
18831 * nsfont.m: Fixed bugs in ns_get_family and
18832 ns_descriptor_to_entity that were caused by using free to
18833 deallocate memory blocks that were allocated by xmalloc (via
18834 xstrdup). This caused Emacs to crash when compiled with
18835 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
18836 --enable-checking=xmallocoverrun). xfree is now used to
18837 deallocate these memory blocks.
18838
18839 2011-04-15 Paul Eggert <eggert@cs.ucla.edu>
18840
18841 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
18842
18843 emacs_write: Accept and return EMACS_INT for sizes.
18844 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
18845 et seq.
18846 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
18847 Accept and return EMACS_INT.
18848 (emacs_gnutls_write): Return the number of bytes written on
18849 partial writes.
18850 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
18851 (emacs_read, emacs_write): Remove check for negative size, as the
18852 Emacs source code has been audited now.
18853 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
18854 (emacs_read, emacs_write): Use it.
18855 * process.c (send_process): Adjust to the new signatures of
18856 emacs_write and emacs_gnutls_write. Do not attempt to store
18857 a byte offset into an 'int'; it might overflow.
18858 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
18859
18860 * sound.c: Don't assume sizes fit in 'int'.
18861 (struct sound_device.period_size, alsa_period_size):
18862 Return EMACS_INT, not int.
18863 (struct sound_device.write, vox_write, alsa_write):
18864 Accept EMACS_INT, not int.
18865 (wav_play, au_play): Use EMACS_INT to store sizes and to
18866 record read return values.
18867
18868 2011-04-15 Ben Key <bkey76@gmail.com>
18869
18870 * keyboard.c (Qundefined): Don't declare static since it is used
18871 in nsfns.m.
18872 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
18873 static since they are used in nsfont.m.
18874
18875 2011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
18876
18877 * process.c (Qprocessp): Don't declare static.
18878 * lisp.h (Qprocessp): Declare again.
18879
18880 2011-04-15 Juanma Barranquero <lekktu@gmail.com>
18881
18882 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
18883
18884 2011-04-14 Paul Eggert <eggert@cs.ucla.edu>
18885
18886 Improve C-level modularity by making more things 'static'.
18887
18888 Don't publish debugger-only interfaces to other modules.
18889 * lisp.h (safe_debug_print, debug_output_compilation_hack):
18890 (verify_bytepos, count_markers): Move decls to the only modules
18891 that need them.
18892 * region-cache.h (pp_cache): Likewise.
18893 * window.h (check_all_windows): Likewise.
18894 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
18895
18896 * sysdep.c (croak): Now static, if
18897 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
18898 * syssignal.h (croak): Declare only if not static.
18899
18900 * alloc.c (refill_memory_reserve): Now static if
18901 !defined REL_ALLOC || defined SYSTEM_MALLOC.
18902 * lisp.h (refill_memory_reserve): Declare only if not static.
18903
18904 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
18905 Define only if USE_LUCID.
18906
18907 * xrdb.c (x_customization_string, x_rm_string): Now static.
18908
18909 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
18910 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
18911
18912 * xdisp.c (draw_row_with_mouse_face): Now static.
18913 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
18914
18915 * window.h (check_all_windows): Mark externally visible.
18916
18917 * window.c (window_deletion_count): Now static.
18918
18919 * undo.c: Make symbols static if they're not exported.
18920 (last_undo_buffer, last_boundary_position, pending_boundary):
18921 Now static.
18922
18923 * textprop.c (interval_insert_behind_hooks): Now static.
18924 (interval_insert_in_front_hooks): Likewise.
18925
18926 * term.c: Make symbols static if they're not exported.
18927 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
18928 (max_frame_lines, tty_set_terminal_modes):
18929 (tty_reset_terminal_modes, tty_turn_off_highlight):
18930 (get_tty_terminal): Now static.
18931 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
18932 * termhooks.h (term_mouse_moveto): Do not declare if
18933 HAVE_WINDOW_SYSTEM.
18934 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
18935 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
18936
18937 * sysdep.c: Make symbols static if they're not exported.
18938 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
18939 Now static.
18940 (sigprocmask_set, full_mask): Remove; unused.
18941 (wait_debugging): Mark as visible.
18942 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
18943 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
18944
18945 * syntax.c (syntax_temp): Define only if !__GNUC__.
18946
18947 * sound.c (current_sound_device, current_sound): Now static.
18948
18949 * search.c (searchbufs, searchbuf_head): Now static.
18950
18951 * scroll.c (scroll_cost): Remove; unused.
18952 * dispextern.h (scroll_cost): Remove decl.
18953
18954 * region-cache.h (pp_cache): Mark as externally visible.
18955
18956 * process.c: Make symbols static if they're not exported.
18957 (process_tick, update_tick, create_process, chan_process):
18958 (Vprocess_alist, proc_buffered_char, datagram_access):
18959 (fd_callback_data, send_process_frame, process_sent_to): Now static.
18960 (deactivate_process): Mark defn as static, as well as decl.
18961 * lisp.h (create_process): Remove decl.
18962 * process.h (chan_process, Vprocess_alist): Remove decls.
18963
18964 * print.c: Make symbols static if they're not exported.
18965 (print_depth, new_backquote_output, being_printed, print_buffer):
18966 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
18967 (print_interval, print_number_index, initial_stderr_stream):
18968 Now static.
18969 * lisp.h (Fprinc): Remove decl.
18970 (debug_output_compilation_hack): Mark as externally visible.
18971
18972 * sysdep.c (croak): Move decl from here to syssignal.h.
18973 * syssignal.h (croak): Put it here, so the API can be checked when
18974 'croak' is called from dissociate_if_controlling_tty.
18975
18976 * minibuf.c: Make symbols static if they're not exported.
18977 (minibuf_save_list, choose_minibuf_frame): Now static.
18978 * lisp.h (choose_minibuf_frame): Remove decl.
18979
18980 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
18981
18982 * lread.c: Make symbols static if they're not exported.
18983 (read_objects, initial_obarray, oblookup_last_bucket_number):
18984 Now static.
18985 (make_symbol): Remove; unused.
18986 * lisp.h (initial_obarray, make_symbol): Remove decls.
18987
18988 * keyboard.c: Make symbols static if they're not exported.
18989 (single_kboard, recent_keys_index, total_keys, recent_keys):
18990 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
18991 (this_single_command_key_start, echoing, last_auto_save):
18992 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
18993 (command_loop, echo_now, keyboard_init_hook, help_char_p):
18994 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
18995 (Vlispy_mouse_stem, double_click_count):
18996 Now static.
18997 (force_auto_save_soon): Define only if SIGDANGER.
18998 (ignore_mouse_drag_p): Now static if
18999 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
19000 (print_help): Remove; unused.
19001 (stop_character, last_timer_event): Mark as externally visible.
19002 * keyboard.h (ignore_mouse_drag_p): Declare only if
19003 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
19004 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
19005 * lisp.h (echoing): Remove decl.
19006 (force_auto_save_soon): Declare only if SIGDANGER.
19007 * xdisp.c (redisplay_window): Simplify code, to make it more
19008 obvious that ignore_mouse_drag_p is not accessed if !defined
19009 USE_GTK && !defined HAVE_NS.
19010
19011 * intervals.c: Make symbols static if they're not exported.
19012 (merge_properties_sticky, merge_interval_right, delete_interval):
19013 Now static.
19014 * intervals.h (merge_interval_right, delete_interval): Remove decls.
19015
19016 * insdel.c: Make symbols static if they're not exported.
19017 However, leave prepare_to_modify_buffer alone. It's never
19018 called from outside this function, but that appears to be a bug.
19019 (combine_after_change_list, combine_after_change_buffer):
19020 (adjust_after_replace, signal_before_change): Now static.
19021 (adjust_after_replace_noundo): Remove; unused.
19022 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
19023 (signal_before_change): Remove decls.
19024
19025 * indent.c (val_compute_motion, val_vmotion): Now static.
19026
19027 * image.c: Make symbols static if they're not exported.
19028 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
19029 if USE_GTK.
19030 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
19031 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
19032
19033 * fringe.c (standard_bitmaps): Now static.
19034 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
19035
19036 * frame.c: Make symbols static if they're not exported.
19037 (x_report_frame_params, make_terminal_frame): Now static.
19038 (get_frame_param): Now static, unless HAVE_NS.
19039 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
19040 (x_get_resource_string): Remove; not used.
19041 * frame.h (make_terminal_frame, x_report_frame_params):
19042 (x_get_resource_string); Remove decls.
19043 (x_fullscreen_adjust): Declare only if WINDOWSNT.
19044 * lisp.h (get_frame_param): Declare only if HAVE_NS.
19045
19046 * font.c, fontset.c: Make symbols static if they're not exported.
19047 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
19048 (FACE_SUITABLE_FOR_CHAR_P): Use it.
19049 * font.c (font_close_object): Now static.
19050 * font.h (font_close_object): Remove.
19051 * fontset.c (FONTSET_OBJLIST): Remove.
19052 (free_realized_fontset) #if-0 the body, which does nothing.
19053 (face_suitable_for_char_p): #if-0, as it's never called.
19054 * fontset.h (face_suitable_for_char_p): Remove decl.
19055 * xfaces.c (face_at_string_position):
19056 Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
19057 since 0 is always ASCII.
19058
19059 * fns.c (weak_hash_tables): Now static.
19060
19061 * fileio.c: Make symbols static if they're not exported.
19062 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
19063 (Vwrite_region_annotation_buffers): Now static.
19064
19065 * eval.c: Make symbols static if they're not exported.
19066 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
19067 * lisp.h (backtrace_list): Remove decl.
19068
19069 * emacs.c: Make symbols static if they're not exported.
19070 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
19071 (fatal_error_code, fatal_error_signal_hook, standard_args):
19072 Now static.
19073 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
19074 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
19075 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
19076 * lisp.h (fatal_error_signal_hook): Remove decl.
19077 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
19078
19079 * editfns.c: Move a (normally-unused) function to its only use.
19080 * editfns.c, lisp.h (get_operating_system_release): Remove.
19081 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
19082 worth the hassle of breaking this out.
19083
19084 * xterm.c: Make symbols static if they're not exported.
19085 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
19086 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
19087 (x_destroy_window, x_delete_display):
19088 Now static.
19089 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
19090 (x_mouse_leave): Remove; unused.
19091 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
19092 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
19093 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
19094 Remove decls.
19095 (x_mouse_leave): Declare only if WINDOWSNT.
19096 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
19097 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
19098 USE_X_TOOLKIT.
19099
19100 * ftxfont.c: Make symbols static if they're not exported.
19101 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
19102 HAVE_FREETYPE.
19103 * font.h (ftxfont_driver): Likewise.
19104
19105 * xfns.c: Make symbols static if they're not exported.
19106 (x_last_font_name, x_display_info_for_name):
19107 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
19108 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
19109 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
19110 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
19111 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
19112 (last_show_tip_args): Now static.
19113 (xic_defaut_fontset, xic_create_fontsetname): Define only if
19114 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
19115 (x_screen_planes): Remove; unused.
19116 * dispextern.h (x_screen_planes): Remove decl.
19117
19118 * dispnew.c: Make symbols static if they're not exported.
19119 * dispextern.h (redraw_garbaged_frames, scrolling):
19120 (increment_row_positions): Remove.
19121 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
19122 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
19123 Now static.
19124 (redraw_garbaged_frames): Remove; unused.
19125
19126 * xfaces.c: Make symbols static if they're not exported.
19127 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
19128 Remove decls.
19129 * xterm.h (defined_color): Remove decls.
19130 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
19131 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
19132 (menu_face_changed_default, defined_color, free_realized_face):
19133 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
19134 (ascii_face_of_lisp_face): Remove; unused.
19135
19136 * xdisp.c: Make symbols static if they're not exported.
19137 * dispextern.h (scratch_glyph_row, window_box_edges):
19138 (glyph_to_pixel_coords, set_cursor_from_row):
19139 (get_next_display_element, set_iterator_to_next):
19140 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
19141 (show_mouse_face): Remove decls
19142 * frame.h (message_buf_print): Likewise.
19143 * lisp.h (pop_message, set_message, check_point_in_composition):
19144 Likewise.
19145 * xterm.h (set_vertical_scroll_bar): Likewise.
19146 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
19147 (message_buf_print, scratch_glyph_row, displayed_buffer):
19148 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
19149 (get_next_display_element, show_mouse_face, window_box_edges):
19150 (frame_to_window_pixel_xy, check_point_in_composition):
19151 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
19152 (glyph_to_pixel_coords): Remove; unused.
19153
19154 * dired.c (file_name_completion): Now static.
19155
19156 * dbusbind.c (xd_in_read_queued_messages): Now static.
19157
19158 * lisp.h (circular_list_error, FOREACH): Remove; unused.
19159 * data.c (circular_list_error): Remove.
19160
19161 * commands.h (last_point_position, last_point_position_buffer):
19162 (last_point_position_window): Remove decls.
19163 * keyboard.c: Make these variables static.
19164
19165 * coding.h (coding, code_convert_region, encode_coding_gap):
19166 Remove decls.
19167 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
19168 (iso_code_class, detect_coding, code_convert_region): Now static.
19169 (encode_coding_gap): Remove; unused.
19170
19171 * chartab.c (chartab_chars, chartab_bits): Now static.
19172
19173 * charset.h (charset_iso_8859_1): Remove decl.
19174 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
19175 Now static.
19176
19177 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
19178 * ccl.c (Vccl_program_table): Now static.
19179 (check_ccl_update): Remove; unused.
19180
19181 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
19182 * category.h: ... from here.
19183 * category.c (check_category_table, set_category_set): Now static.
19184
19185 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
19186 * lisp.h: Remove these decls.
19187
19188 * buffer.c (buffer_count): Remove unused var.
19189
19190 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
19191 so that it's not optimized away.
19192 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
19193 * dispextern.h (bidi_dump_cached_states): Remove, since it's
19194 exported only to the debugger.
19195
19196 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
19197 * atimer.h (run_all_atimers): Remove; not exported.
19198
19199 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
19200 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
19201 was inaccessible from Lisp.
19202 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
19203 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
19204
19205 alloc.c: Import and export fewer symbols, and remove unused items.
19206 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
19207 is defined.
19208 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
19209 it's not optimized away by whole-program optimization.
19210 (message_enable_multibyte, free_misc): Remove.
19211 (catchlist, handlerlist, mark_backtrace):
19212 Declare only if BYTE_MARK_STACK.
19213 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
19214 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
19215 (message_enable_multibyte): Remove decl.
19216 (free_misc, interval_free_list, float_block, float_block_index):
19217 (n_float_blocks, float_free_list, cons_block, cons_block_index):
19218 (cons_free_list, last_marked_index):
19219 Now static.
19220 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
19221 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
19222 (mark_backtrace): Define only if BYTE_MARK_STACK.
19223 * xdisp.c (message_enable_multibyte): Now static.
19224
19225 Declare Lisp_Object Q* variables to be 'static' if not exported.
19226 This makes it easier for human readers (and static analyzers)
19227 to see whether these variables are used from other modules.
19228 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
19229 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
19230 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
19231 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
19232 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
19233 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
19234 * xmenu.c, xselect.c:
19235 Declare Q* vars static if they are not used in other modules.
19236 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
19237 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
19238 Remove decls of unexported vars.
19239 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
19240
19241 * lisp.h (DEFINE_FUNC): Make sname 'static'.
19242
19243 Make Emacs functions such as Fatom 'static' by default.
19244 This makes it easier for human readers (and static analyzers)
19245 to see whether these functions can be called from other modules.
19246 DEFUN now defines a static function. To make the function external
19247 so that it can be used in other C modules, use the new macro DEFUE.
19248 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
19249 (Finit_image_library):
19250 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
19251 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
19252 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
19253 Remove decls, since these functions are now static.
19254 (Funintern, Fget_internal_run_time): New decls, since these functions
19255 were already external.
19256
19257 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
19258 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
19259 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
19260 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
19261 * keyboard.c, keymap.c, lread.c:
19262 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
19263 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
19264 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
19265 Mark functions with DEFUE instead of DEFUN,
19266 if they are used in other modules.
19267 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
19268 decls for now-static functions.
19269 * buffer.h (Fdelete_overlay): Remove decl.
19270 * callproc.c (Fgetenv_internal): Mark as internal.
19271 * composite.c (Fremove_list_of_text_properties): Remove decl.
19272 (Fcomposition_get_gstring): New forward static decl.
19273 * composite.h (Fcomposite_get_gstring): Remove decl.
19274 * dired.c (Ffile_attributes): New forward static decl.
19275 * doc.c (Fdocumntation_property): New forward static decl.
19276 * eval.c (Ffetch_bytecode): New forward static decl.
19277 (Funintern): Remove extern decl; now in .h file where it belongs.
19278 * fileio.c (Fmake_symbolic_link): New forward static decl.
19279 * image.c (Finit_image_library): New forward static decl.
19280 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
19281 * intervals.h (Fprevious_property_change):
19282 (Fremove_list_of_text_properties): Remove decls.
19283 * keyboard.c (Fthis_command_keys): Remove decl.
19284 (Fcommand_execute): New forward static decl.
19285 * keymap.c (Flookup_key): New forward static decl.
19286 (Fcopy_keymap): Now static.
19287 * keymap.h (Flookup_key): Remove decl.
19288 * process.c (Fget_process): New forward static decl.
19289 (Fprocess_datagram_address): Mark as internal.
19290 * syntax.c (Fsyntax_table_p): New forward static decl.
19291 (skip_chars): Remove duplicate decl.
19292 * textprop.c (Fprevious_property_change): New forward static decl.
19293 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
19294 Now internal.
19295 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
19296 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
19297
19298 * editfns.c (Fformat): Remove unreachable code.
19299
19300 2011-04-14 Andreas Schwab <schwab@linux-m68k.org>
19301
19302 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
19303 change. (Bug#8496)
19304
19305 2011-04-13 Eli Zaretskii <eliz@gnu.org>
19306
19307 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
19308 when at ZV. (Bug#8487)
19309
19310 2011-04-12 Andreas Schwab <schwab@linux-m68k.org>
19311
19312 * charset.c (Fclear_charset_maps): Use xfree instead of free.
19313 (Bug#8437)
19314 * keyboard.c (parse_tool_bar_item): Likewise.
19315 * sound.c (sound_cleanup, alsa_close): Likewise.
19316 * termcap.c (tgetent): Likewise.
19317 * xfns.c (x_default_font_parameter): Likewise.
19318 * xsettings.c (read_and_apply_settings): Likewise.
19319
19320 * alloc.c (overrun_check_malloc, overrun_check_realloc)
19321 (overrun_check_free): Protoize.
19322
19323 2011-04-12 Paul Eggert <eggert@cs.ucla.edu>
19324
19325 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
19326 since callers should never pass a negative size.
19327 Change the signature to match that of plain 'read' and 'write'; see
19328 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
19329 * lisp.h: Update prototypes of emacs_write and emacs_read.
19330
19331 2011-04-11 Eli Zaretskii <eliz@gnu.org>
19332
19333 * xdisp.c (redisplay_window): Don't try to determine the character
19334 position of the scroll margin if the window start point w->startp
19335 is outside the buffer's accessible region. (Bug#8468)
19336
19337 2011-04-10 Eli Zaretskii <eliz@gnu.org>
19338
19339 Fix write-region and its subroutines for buffers > 2GB.
19340 * fileio.c (a_write, e_write): Modify declaration of arguments and
19341 local variables to support buffers larger than 2GB.
19342 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
19343
19344 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
19345 argument, local variables, and return value.
19346
19347 * lisp.h: Update prototypes of emacs_write and emacs_read.
19348
19349 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
19350
19351 2011-04-10 Paul Eggert <eggert@cs.ucla.edu>
19352
19353 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
19354
19355 Fix more problems found by GCC 4.6.0's static checks.
19356
19357 * xdisp.c (vmessage): Use a better test for character truncation.
19358
19359 * charset.c (load_charset_map): <, not <=, for optimization,
19360 and to avoid potential problems with integer overflow.
19361 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
19362 * casetab.c (set_identity, shuffle): Likewise.
19363 * editfns.c (Fformat): Likewise.
19364 * syntax.c (skip_chars): Likewise.
19365
19366 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
19367 This also lets GCC 4.6.0 generate slightly better loop code.
19368
19369 * callint.c (Fcall_interactively): <, not <=, for optimization.
19370 (Fcall_interactively): Count the number of arguments produced,
19371 not the number of arguments given. This is simpler and lets GCC
19372 4.6.0 generate slightly better code.
19373
19374 * ftfont.c: Distingish more carefully between FcChar8 and char.
19375 The previous code passed unsigned char * to a functions like
19376 strlen and xstrcasecmp that expect char *, which does not
19377 conform to the C standard.
19378 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
19379 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
19380 char * when the C standard requires it.
19381
19382 * keyboard.c (read_char): Remove unused var.
19383
19384 * eval.c: Port to Windows vsnprintf (Bug#8435).
19385 Include <limits.h>.
19386 (SIZE_MAX): Define if the headers do not.
19387 (verror): Do not give up if vsnprintf returns a negative count.
19388 Instead, grow the buffer. This ports to Windows vsnprintf, which
19389 does not conform to C99. Problem reported by Eli Zaretskii.
19390 Also, simplify the allocation scheme, by avoiding the need for
19391 calling realloc, and removing the ALLOCATED variable.
19392
19393 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
19394
19395 Remove invocations of doprnt, as Emacs now uses vsnprintf.
19396 But keep the doprint source code for now, as we might revamp it
19397 and use it again (Bug#8435).
19398 * lisp.h (doprnt): Remove.
19399 * Makefile.in (base_obj): Remove doprnt.o.
19400 * deps.mk (doprnt.o): Remove.
19401
19402 error: Print 32- and 64-bit integers portably (Bug#8435).
19403 Without this change, on typical 64-bit hosts error ("...%d...", N)
19404 was used to print both 32- and 64-bit integers N, which relied on
19405 undefined behavior.
19406 * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro.
19407 * lisp.h (error, verror): Mark as printf-like functions.
19408 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
19409 Report overflow in size calculations when allocating printf buffer.
19410 Do not truncate output string at its first null byte.
19411 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
19412 Truncate the output at a character boundary, since vsnprintf does not
19413 do that.
19414 * charset.c (check_iso_charset_parameter): Convert internal
19415 character to string before calling 'error', since %c now has the
19416 printf meaning.
19417 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
19418 overflow when computing char to be passed to 'error'. Do not
19419 pass Lisp_Object to 'error'; pass the integer instead.
19420 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
19421 formatted with plain %d.
19422
19423 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
19424
19425 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
19426
19427 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
19428
19429 * xterm.c (x_catch_errors): Remove duplicate declaration.
19430
19431 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
19432
19433 * xdisp.c, lisp.h (message_nolog): Remove; unused.
19434
19435 2011-04-10 Jim Meyering <meyering@redhat.com>
19436
19437 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
19438 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
19439 return ssize_t not "int", and use size_t as the buffer length.
19440 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
19441 * gnutls.h: Update declarations.
19442 * process.c (read_process_output): Use ssize_t, to match.
19443 (send_process): Likewise.
19444
19445 2011-04-09 Chong Yidong <cyd@stupidchicken.com>
19446
19447 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
19448
19449 2011-04-09 Chong Yidong <cyd@stupidchicken.com>
19450
19451 * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
19452 Use unsigned char, to match FcChar8 type definition.
19453
19454 * xterm.c (handle_one_xevent):
19455 * xmenu.c (create_and_show_popup_menu):
19456 * xselect.c (x_decline_selection_request)
19457 (x_reply_selection_request): Avoid type-punned deref of X events.
19458
19459 2011-04-09 Eli Zaretskii <eliz@gnu.org>
19460
19461 Fix some uses of `int' instead of EMACS_INT.
19462 * search.c (string_match_1, fast_string_match)
19463 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
19464 (scan_buffer, find_next_newline_no_quit)
19465 (find_before_next_newline, search_command, Freplace_match)
19466 (Fmatch_data): Make some `int' variables be EMACS_INT.
19467
19468 * xdisp.c (display_count_lines): 3rd argument and return value now
19469 EMACS_INT. All callers changed.
19470 (pint2hrstr): Last argument is now EMACS_INT.
19471
19472 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
19473 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
19474 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
19475 (decode_coding_utf_16, decode_coding_emacs_mule)
19476 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
19477 (decode_coding_ccl, decode_coding_charset)
19478 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
19479 (decode_coding_iso_2022, decode_coding_emacs_mule)
19480 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
19481 <char_offset, last_offset>: Declare EMACS_INT.
19482 (encode_coding_utf_8, encode_coding_utf_16)
19483 (encode_coding_emacs_mule, encode_invocation_designation)
19484 (encode_designation_at_bol, encode_coding_iso_2022)
19485 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
19486 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
19487 Declare EMACS_INT.
19488 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
19489 (encode_invocation_designation): Last argument P_NCHARS is now
19490 EMACS_INT.
19491 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
19492 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
19493
19494 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
19495 All users changed.
19496
19497 * ccl.c (Fccl_execute_on_string): Declare some variables
19498 EMACS_INT.
19499
19500 2011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
19501
19502 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
19503
19504 2011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
19505
19506 * process.c (Fformat_network_address): Doc fix.
19507
19508 2011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
19509
19510 * xml.c (parse_region): Avoid creating spurious whitespace nodes.
19511
19512 2011-04-08 Chong Yidong <cyd@stupidchicken.com>
19513
19514 * keyboard.c (read_char): Call Lisp function help-form-show,
19515 instead of using internal_with_output_to_temp_buffer.
19516 (Qhelp_form_show): New var.
19517 (syms_of_keyboard): Use DEFSYM macro.
19518
19519 * print.c (internal_with_output_to_temp_buffer): Function deleted.
19520
19521 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
19522
19523 2011-04-06 Chong Yidong <cyd@stupidchicken.com>
19524
19525 * process.c (Flist_processes): Remove to Lisp.
19526 (list_processes_1): Delete.
19527
19528 2011-04-06 Eli Zaretskii <eliz@gnu.org>
19529
19530 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
19531
19532 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
19533
19534 2011-04-06 Paul Eggert <eggert@cs.ucla.edu>
19535
19536 Fix more problems found by GCC 4.6.0's static checks.
19537
19538 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
19539
19540 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
19541
19542 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
19543
19544 * xdisp.c (vmessage): Mark as a printf-like function.
19545
19546 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
19547
19548 * sound.c (sound_warning): Don't crash if arg contains a printf format.
19549
19550 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
19551 printf-like functions.
19552 (tiff_load): Add casts to remove these marks before passing them
19553 to system-supplied API.
19554
19555 * eval.c (Fsignal): Remove excess argument to 'fatal'.
19556
19557 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
19558 This avoids several warnings with gcc -Wstrict-overflow.
19559 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
19560 directly, rather than having caller test rule sign. This avoids
19561 some unnecessary tests.
19562 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
19563 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
19564 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
19565
19566 * xfont.c (xfont_text_extents): Remove var that was set but not used.
19567 (xfont_open): Avoid unnecessary tests.
19568
19569 * composite.c (composition_gstring_put_cache): Use unsigned integer.
19570
19571 * composite.h, composite.c (composition_gstring_put_cache):
19572 Use EMACS_INT, not int, for length.
19573
19574 * composite.h (COMPOSITION_DECODE_REFS): New macro,
19575 breaking out part of COMPOSITION_DECODE_RULE.
19576 (COMPOSITION_DECODE_RULE): Use it.
19577 * composite.c (get_composition_id): Remove unused local vars,
19578 by using the new macro.
19579
19580 * textprop.c (set_text_properties_1): Change while to do-while,
19581 since the condition is always true at first.
19582
19583 * intervals.c (graft_intervals_into_buffer): Mark var as used.
19584 (interval_deletion_adjustment): Return unsigned value.
19585 All uses changed.
19586
19587 * process.c (list_processes_1, create_pty, read_process_output):
19588 (exec_sentinel): Remove vars that were set but not used.
19589 (create_pty): Remove unnecessary "volatile"s.
19590 (Fnetwork_interface_info): Avoid possibility of int overflow.
19591 (read_process_output): Do adaptive read buffering even if carryover.
19592 (read_process_output): Simplify nbytes computation if buffered.
19593
19594 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
19595
19596 * syntax.c (scan_words): Remove var that was set but not used.
19597 (update_syntax_table): Use unsigned instead of int.
19598
19599 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
19600 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
19601 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
19602
19603 * print.c (print_error_message): Avoid int overflow.
19604
19605 * font.c (font_list_entities): Redo for clarity,
19606 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
19607
19608 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
19609 (font_score): Avoid potential overflow in diff calculation.
19610
19611 * fns.c (substring_both): Remove var that is set but not used.
19612 (sxhash): Redo loop for clarity and to avoid wraparound warning.
19613
19614 * eval.c (funcall_lambda): Rename local to avoid shadowing.
19615
19616 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
19617 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
19618 can always succeed if overflow has undefined behavior.
19619
19620 * search.c (boyer_moore, wordify): Remove vars set but not used.
19621 (wordify): Omit three unnecessary tests.
19622
19623 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
19624 All callers changed. This avoids the need for an unused var.
19625
19626 * casefiddle.c (casify_region): Remove var that is set but not used.
19627
19628 * dired.c (file_name_completion): Remove var that is set but not used.
19629
19630 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
19631
19632 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
19633 (Finsert_file_contents): Remove unnecessary code checking fd.
19634
19635 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
19636 Check for integer overflow on size calculations.
19637
19638 * buffer.c (Fprevious_overlay_change): Remove var that is set
19639 but not used.
19640
19641 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
19642 Remove vars that are set but not used.
19643 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
19644 (timer_check_2): Mark vars as initialized.
19645
19646 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
19647
19648 * image.c (lookup_image): Remove var that is set but not used.
19649 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
19650
19651 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
19652 that are set but not used.
19653
19654 * xfns.c (make_invisible_cursor): Don't return garbage
19655 if XCreateBitmapFromData fails (Bug#8410).
19656
19657 * xselect.c (x_get_local_selection, x_handle_property_notify):
19658 Remove vars that are set but not used.
19659
19660 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
19661 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
19662
19663 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
19664 Remove var that is set but not used.
19665 (scroll_bar_windows_size): Now size_t, not int.
19666 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
19667 Check for overflow.
19668
19669 * xfaces.c (realize_named_face): Remove vars that are set but not used.
19670 (map_tty_color) [!defined MSDOS]: Likewise.
19671
19672 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
19673
19674 * coding.c: Remove vars that are set but not used.
19675 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
19676 All callers changed.
19677 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
19678 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
19679 (decode_coding_charset): Remove vars that are set but not used.
19680
19681 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
19682 that is set but not used.
19683
19684 * print.c (print_object): Remove var that is set but not used.
19685
19686 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
19687 The gnulib version avoids calling malloc in the usual case,
19688 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
19689 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
19690 * filelock.c (current_lock_owner): Likewise.
19691 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
19692 * sysdep.c: Include allocator.h, careadlinkat.h.
19693 (emacs_no_realloc_allocator): New static constant.
19694 (emacs_readlink): New function.
19695 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
19696 ../lib/careadlinkat.h.
19697
19698 2011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
19699
19700 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
19701 first non-nil return value).
19702
19703 2011-04-03 Jan Djärv <jan.h.d@swipnet.se>
19704
19705 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
19706 if not defined (Bug#8403).
19707
19708 2011-04-02 Juanma Barranquero <lekktu@gmail.com>
19709
19710 * xdisp.c (display_count_lines): Remove parameter `start',
19711 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
19712 (get_char_face_and_encoding): Remove parameter `multibyte_p',
19713 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
19714 (fill_stretch_glyph_string): Remove parameters `row' and `area',
19715 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
19716 and thereabouts. All callers changed.
19717 (get_per_char_metric): Remove parameter `f', unused since
19718 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
19719
19720 2011-04-02 Jim Meyering <meyering@redhat.com>
19721
19722 do not dereference NULL upon failed strdup
19723 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
19724 (ns_get_family): Likewise.
19725
19726 2011-04-02 Juanma Barranquero <lekktu@gmail.com>
19727
19728 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
19729
19730 2011-04-02 Jan Djärv <jan.h.d@swipnet.se>
19731
19732 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
19733 later (Bug#8403).
19734
19735 2011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
19736
19737 Add lexical binding.
19738
19739 * window.c (Ftemp_output_buffer_show): New fun.
19740 (Fsave_window_excursion):
19741 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
19742
19743 * lread.c (lisp_file_lexically_bound_p): New function.
19744 (Fload): Bind Qlexical_binding.
19745 (readevalloop): Remove `evalfun' arg.
19746 Bind Qinternal_interpreter_environment.
19747 (Feval_buffer): Bind Qlexical_binding.
19748 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
19749 Mark as dynamic.
19750 (syms_of_lread): Declare `lexical-binding'.
19751
19752 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
19753
19754 * keyboard.c (eval_dyn): New fun.
19755 (menu_item_eval_property): Use it.
19756
19757 * image.c (parse_image_spec): Use Ffunctionp.
19758
19759 * fns.c (concat, mapcar1): Accept byte-code-functions.
19760
19761 * eval.c (Fsetq): Handle lexical vars.
19762 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
19763 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
19764 (FletX, Flet): Obey lexical binding.
19765 (Fcommandp): Handle closures.
19766 (Feval): New `lexical' arg.
19767 (eval_sub): New function extracted from Feval. Use it almost
19768 everywhere where Feval was used. Look up vars in lexical env.
19769 Handle closures.
19770 (Ffunctionp): Move from subr.el.
19771 (Ffuncall): Handle closures.
19772 (apply_lambda): Remove `eval_flags'.
19773 (funcall_lambda): Handle closures and new byte-code-functions.
19774 (Fspecial_variable_p): New function.
19775 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
19776 but without exporting it to Lisp.
19777
19778 * doc.c (Fdocumentation, store_function_docstring):
19779 * data.c (Finteractive_form): Handle closures.
19780
19781 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
19782 interactive spec.
19783
19784 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
19785 New byte-codes.
19786 (exec_byte_code): New function extracted from Fbyte_code to handle new
19787 calling convention for byte-code-functions. Add new byte-codes.
19788
19789 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
19790
19791 * alloc.c (Fmake_symbol): Init new `declared_special' field.
19792
19793 2011-03-31 Juanma Barranquero <lekktu@gmail.com>
19794
19795 * xdisp.c (redisplay_internal): Fix prototype.
19796
19797 2011-03-31 Eli Zaretskii <eliz@gnu.org>
19798
19799 * xdisp.c (SCROLL_LIMIT): New macro.
19800 (try_scrolling): Use it when setting scroll_limit.
19801 Limit scrolling to 100 screen lines.
19802 (redisplay_window): Even when falling back on "recentering",
19803 position point in the window according to scroll-conservatively,
19804 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
19805
19806 (try_scrolling): When point is above the window, allow searching
19807 as far as scroll_max, or one screenful, to compute vertical
19808 distance from PT to the scroll margin position. This prevents
19809 try_scrolling from unnecessarily failing when
19810 scroll-conservatively is set to a value slightly larger than the
19811 window height. Clean up the case of PT below the margin at bottom
19812 of window: scroll_max can no longer be INT_MAX. When aggressive
19813 scrolling is in use, don't let point enter the opposite scroll
19814 margin as result of the scroll.
19815 (syms_of_xdisp) <scroll-conservatively>: Document the
19816 threshold of 100 lines for never-recentering scrolling.
19817
19818 2011-03-31 Juanma Barranquero <lekktu@gmail.com>
19819
19820 * dispextern.h (move_it_by_lines):
19821 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
19822 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
19823 (message_log_check_duplicate): Remove parameters `prev_bol' and
19824 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
19825 (redisplay_internal): Remove parameter `preserve_echo_area',
19826 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
19827
19828 * indent.c (Fvertical_motion):
19829 * window.c (window_scroll_pixel_based, Frecenter):
19830 Don't pass `need_y_p' to `move_it_by_lines'.
19831
19832 2011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
19833
19834 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
19835 steal a few bits to be more compact.
19836 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
19837 Remove unneeded casts.
19838
19839 * bytecode.c (Fbyte_code): CAR and CDR can GC.
19840
19841 2011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
19842
19843 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
19844 binding" message (bug#7967).
19845
19846 2011-03-30 Paul Eggert <eggert@cs.ucla.edu>
19847
19848 Fix more problems found by GCC 4.6.0's static checks.
19849
19850 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
19851 Remove unused local var.
19852
19853 * editfns.c (Fmessage_box): Remove unused local var.
19854
19855 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
19856 (note_mode_line_or_margin_highlight, note_mouse_highlight):
19857 Omit unused local vars.
19858 * window.c (shrink_windows): Omit unused local var.
19859 * menu.c (digest_single_submenu): Omit unused local var.
19860 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
19861 Omit unused local var.
19862
19863 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
19864 Don't assume string length fits in int.
19865 (keyremap_step, read_key_sequence): Use size_t for sizes.
19866 (read_key_sequence): Don't check last_real_key_start redundantly.
19867
19868 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
19869 instead of alloca (Bug#8344).
19870
19871 * eval.c (Fbacktrace): Don't assume nargs fits in int.
19872 (Fbacktrace_frame): Don't assume nframes fits in int.
19873
19874 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
19875
19876 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
19877 concerns.
19878
19879 * term.c (produce_glyphless_glyph): Remove unnecessary test.
19880
19881 * cm.c (calccost): Turn while-do into do-while, for clarity.
19882
19883 * keyboard.c (syms_of_keyboard): Use the same style as later
19884 in this function when indexing through an array. This also
19885 works around GCC bug 48267.
19886
19887 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
19888
19889 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
19890
19891 * chartab.c (sub_char_table_ref_and_range): Redo for slight
19892 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
19893
19894 * keyboard.c, keyboard.h (num_input_events): Now size_t.
19895 This avoids undefined behavior on integer overflow, and is a bit
19896 more convenient anyway since it is compared to a size_t variable.
19897
19898 Variadic C functions now count arguments with size_t, not int.
19899 This avoids an unnecessary limitation on 64-bit machines, which
19900 caused (substring ...) to crash on large vectors (Bug#8344).
19901 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
19902 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
19903 All variadic functions and their callers changed accordingly.
19904 (struct gcpro.nvars): Now size_t, not int. All uses changed.
19905 * data.c (arith_driver, float_arith_driver): Likewise.
19906 * editfns.c (general_insert_function): Likewise.
19907 * eval.c (struct backtrace.nargs, interactive_p)
19908 (internal_condition_case_n, run_hook_with_args, apply_lambda)
19909 (funcall_lambda, mark_backtrace): Likewise.
19910 * fns.c (concat): Likewise.
19911 * frame.c (x_set_frame_parameters): Likewise.
19912 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
19913 0 if not found, not -1. All callers changed.
19914
19915 * alloc.c (garbage_collect): Don't assume stack size fits in int.
19916 (stack_copy_size): Now size_t, not int.
19917 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
19918
19919 2011-03-28 Juanma Barranquero <lekktu@gmail.com>
19920
19921 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
19922 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
19923 All callers changed.
19924
19925 * lisp.h (multibyte_char_to_unibyte):
19926 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
19927 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
19928 * character.h (CHAR_TO_BYTE8):
19929 * cmds.c (internal_self_insert):
19930 * editfns.c (general_insert_function):
19931 * keymap.c (push_key_description):
19932 * search.c (Freplace_match):
19933 * xdisp.c (message_dolog, set_message_1): All callers changed.
19934
19935 2011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
19936
19937 * keyboard.c (safe_run_hook_funcall): New function.
19938 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
19939 don't set the hook to nil, but remove the offending function instead.
19940 (Qcommand_hook_internal): Remove, unused.
19941 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
19942 Vcommand_hook_internal.
19943
19944 * eval.c (enum run_hooks_condition): Remove.
19945 (funcall_nil, funcall_not): New functions.
19946 (run_hook_with_args): Call each function through a `funcall' argument.
19947 Remove `cond' argument, now redundant.
19948 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
19949 (Frun_hook_with_args_until_failure): Adjust accordingly.
19950 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
19951
19952 2011-03-28 Juanma Barranquero <lekktu@gmail.com>
19953
19954 * dispextern.h (string_buffer_position): Remove declaration.
19955
19956 * print.c (strout): Remove parameter `multibyte', unused since
19957 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
19958
19959 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
19960 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
19961 All callers changed.
19962
19963 * w32.c (_wsa_errlist): Use braces for struct initializers.
19964
19965 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
19966 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
19967 All callers changed.
19968 (string_buffer_position): Likewise. Also, make static (it's never
19969 used outside xdisp.c).
19970 (cursor_row_p): Remove parameter `w', unused since
19971 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
19972 (decode_mode_spec): Remove parameter `precision', introduced during
19973 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
19974 All callers changed.
19975
19976 2011-03-27 Jan Djärv <jan.h.d@swipnet.se>
19977
19978 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
19979
19980 2011-03-27 Anders Lindgren <andlind@gmail.com>
19981
19982 * nsterm.m (ns_menu_bar_is_hidden): New variable.
19983 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
19984 (ns_update_auto_hide_menu_bar): New functions.
19985 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
19986 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
19987 ns_constrain_all_frames.
19988 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
19989 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
19990
19991 2011-03-27 Jan Djärv <jan.h.d@swipnet.se>
19992
19993 * nsmenu.m (runDialogAt): Remove argument to timer_check.
19994
19995 2011-03-27 Glenn Morris <rgm@gnu.org>
19996
19997 * syssignal.h: Replace RETSIGTYPE with void.
19998 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
19999 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
20000 Replace SIGTYPE with void everywhere.
20001 * s/usg5-4-common.h (SIGTYPE): Remove definition.
20002 * s/template.h (SIGTYPE): Remove commented out definition.
20003
20004 2011-03-26 Eli Zaretskii <eliz@gnu.org>
20005
20006 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
20007 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
20008
20009 2011-03-26 Juanma Barranquero <lekktu@gmail.com>
20010
20011 * w32.c (read_unc_volume): Use parameter `henum', instead of
20012 global variable `wget_enum_handle'.
20013
20014 * keymap.c (describe_vector): Remove parameters `indices' and
20015 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
20016 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
20017
20018 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
20019
20020 * keyboard.c (timer_check): Remove parameter `do_it_now',
20021 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
20022 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
20023 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
20024
20025 * keyboard.c (read_char):
20026 * w32menu.c (w32_menu_display_help):
20027 * xmenu.c (show_help_event, menu_help_callback):
20028 Adjust calls to `show_help_echo'.
20029
20030 * gtkutil.c (xg_maybe_add_timer):
20031 * keyboard.c (readable_events):
20032 * process.c (wait_reading_process_output):
20033 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
20034
20035 * insdel.c (adjust_markers_gap_motion):
20036 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
20037 (gap_left, gap_right): Don't call it.
20038
20039 2011-03-25 Chong Yidong <cyd@stupidchicken.com>
20040
20041 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
20042 incurred during fontification.
20043
20044 2011-03-25 Juanma Barranquero <lekktu@gmail.com>
20045
20046 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
20047 (DEFVAR_PER_BUFFER): Don't pass it.
20048
20049 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
20050 (scrolling_window): Don't pass it.
20051
20052 2011-03-25 Juanma Barranquero <lekktu@gmail.com>
20053
20054 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
20055
20056 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
20057 and `suffix'.
20058 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
20059 of variables specific to SELinux and computation of `encoded_absname'.
20060
20061 * image.c (XPutPixel): Remove unused variable `height'.
20062
20063 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
20064
20065 * unexw32.c (get_section_info): Remove unused variable `section'.
20066
20067 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
20068 (system_process_attributes): Remove unused variable `sess'.
20069 (sys_read): Remove unused variable `err'.
20070
20071 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
20072 (w32_wnd_proc): Remove unused variable `isdead'.
20073 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
20074 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
20075 (x_create_tip_frame): Remove unused variable `tem'.
20076
20077 * w32inevt.c (w32_console_read_socket):
20078 Remove unused variable `no_events'.
20079
20080 * w32term.c (x_draw_composite_glyph_string_foreground):
20081 Remove unused variable `width'.
20082
20083 2011-03-24 Juanma Barranquero <lekktu@gmail.com>
20084
20085 * w32term.c (x_set_glyph_string_clipping):
20086 Don't pass uninitialized region to CombineRgn.
20087
20088 2011-03-23 Juanma Barranquero <lekktu@gmail.com>
20089
20090 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
20091 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
20092 (Fx_close_connection): Remove unused variable `i'.
20093
20094 * w32font.c (w32font_draw): Return number of glyphs.
20095 (w32font_open_internal): Remove unused variable `i'.
20096 (w32font_driver): Add missing initializer.
20097
20098 * w32menu.c (utf8to16): Remove unused variable `utf16'.
20099 (fill_in_menu): Remove unused variable `items_added'.
20100
20101 * w32term.c (last_mouse_press_frame): Remove static global variable.
20102 (w32_clip_to_row): Remove unused variable `f'.
20103 (x_delete_terminal): Remove unused variable `i'.
20104
20105 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
20106 (NOTHING): Remove unused static global variable.
20107 (uniscribe_check_otf): Remove unused variable `table'.
20108 (uniscribe_font_driver): Add missing initializers.
20109
20110 2011-03-23 Julien Danjou <julien@danjou.info>
20111
20112 * term.c (Fsuspend_tty, Fresume_tty):
20113 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
20114 * window.c (temp_output_buffer_show):
20115 * insdel.c (signal_before_change):
20116 * frame.c (Fhandle_switch_frame):
20117 * fileio.c (Fdo_auto_save):
20118 * emacs.c (Fkill_emacs):
20119 * editfns.c (save_excursion_restore):
20120 * cmds.c (internal_self_insert):
20121 * callint.c (Fcall_interactively):
20122 * buffer.c (Fkill_all_local_variables):
20123 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
20124 Use Frun_hooks.
20125 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
20126 unconditionally since it does the check itself.
20127
20128 2011-03-23 Paul Eggert <eggert@cs.ucla.edu>
20129
20130 Fix more problems found by GCC 4.5.2's static checks.
20131
20132 * coding.c (encode_coding_raw_text): Avoid unnecessary test
20133 the first time through the loop, since we know p0 < p1 then.
20134 This also avoids a gcc -Wstrict-overflow warning.
20135
20136 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
20137 leading to a memory leak, possible in functions like
20138 load_charset_map_from_file that can allocate an unbounded number
20139 of objects (Bug#8318).
20140
20141 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
20142 that could (at least in theory) be that large.
20143
20144 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
20145 This is less likely to overflow, and avoids undefined behavior if
20146 overflow does occur. All callers changed. Use strtoul to scan
20147 for the unsigned long integer.
20148 (pint2hrstr): Simplify and tune code slightly.
20149 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
20150
20151 * scroll.c (do_scrolling): Work around GCC bug 48228.
20152 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
20153
20154 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
20155 This also avoids a warning with gcc -Wstrict-overflow.
20156 (validate_x_resource_name): Simplify count usage.
20157 This also avoids a warning with gcc -Wstrict-overflow.
20158
20159 * fileio.c (Fcopy_file): Report error if fchown or fchmod
20160 fail (Bug#8306).
20161
20162 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
20163
20164 * process.c (Fmake_network_process): Use socklen_t, not int,
20165 where POSIX says socklen_t is required in portable programs.
20166 This fixes a porting bug on hosts like 64-bit HP-UX, where
20167 socklen_t is wider than int (Bug#8277).
20168 (Fmake_network_process, server_accept_connection):
20169 (wait_reading_process_output, read_process_output):
20170 Likewise.
20171
20172 * process.c: Rename or move locals to avoid shadowing.
20173 (list_processes_1, Fmake_network_process):
20174 (read_process_output_error_handler, exec_sentinel_error_handler):
20175 Rename or move locals.
20176 (Fmake_network_process): Define label "retry_connect" only if needed.
20177 (Fnetwork_interface_info): Fix pointer signedness.
20178 (process_send_signal): Add cast to avoid pointer signedness problem.
20179 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
20180 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
20181
20182 Make tparam.h and terminfo.c consistent.
20183 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
20184 Include tparam.h instead, since it declares them.
20185 * cm.h (PC): Remove extern decl; tparam.h now does this.
20186 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
20187 * terminfo.c: Include tparam.h, to check interfaces.
20188 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
20189 (tparam): Adjust signature to match interface in tparam.h;
20190 this removes some undefined behavior. Check that outstring and len
20191 are zero, which they always are with Emacs.
20192 * tparam.h (PC, BC, UP): New extern decls.
20193
20194 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
20195 (xftfont_open): Rename locals to avoid shadowing.
20196
20197 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
20198 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
20199 (OTF_TAG_SYM): Omit macro if not needed.
20200 (ftfont_list): Remove unused local.
20201 (get_adstyle_property, ftfont_pattern_entity):
20202 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
20203 Rename locals to avoid shadowing.
20204
20205 * xfont.c (xfont_list_family): Mark var as initialized.
20206
20207 * xml.c (make_dom): Now static.
20208
20209 * composite.c (composition_compute_stop_pos): Rename local to
20210 avoid shadowing.
20211 (composition_reseat_it): Remove unused locals.
20212 (find_automatic_composition, composition_adjust_point): Likewise.
20213 (composition_update_it): Mark var as initialized.
20214 (find_automatic_composition): Mark vars as initialized,
20215 with a FIXME (Bug#8290).
20216
20217 character.h: Rename locals to avoid shadowing.
20218 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
20219 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
20220 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
20221 (BUF_DEC_POS): Be more systematic about renaming local temporaries
20222 to avoid shadowing.
20223
20224 * textprop.c (property_change_between_p): Remove; unused.
20225
20226 * intervals.c (interval_start_pos): Now static.
20227
20228 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
20229
20230 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
20231 Rename locals to avoid shadowing.
20232
20233 * sound.c (wav_play, au_play, Fplay_sound_internal):
20234 Fix pointer signedness.
20235 (alsa_choose_format): Remove unused local var.
20236 (wav_play): Initialize a variable to 0, to prevent undefined
20237 behavior (Bug#8278).
20238
20239 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
20240
20241 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
20242
20243 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
20244 clobbering (Bug#8298).
20245 * sysdep.c (sys_subshell): Likewise.
20246 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
20247
20248 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
20249 This should get cleaned up, so that child_setup has the
20250 same signature on all platforms.
20251
20252 * callproc.c (call_process_cleanup): Now static.
20253 (relocate_fd): Rename locals to avoid shadowing.
20254
20255 2011-03-22 Chong Yidong <cyd@stupidchicken.com>
20256
20257 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
20258 not to be necessary, and produces flickering.
20259
20260 2011-03-20 Glenn Morris <rgm@gnu.org>
20261
20262 * config.in: Remove file.
20263
20264 2011-03-20 Juanma Barranquero <lekktu@gmail.com>
20265
20266 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
20267 are now in src/globals.h.
20268 (syms_of_minibuf): Remove spurious & from previous change.
20269
20270 2011-03-20 Leo Liu <sdl.web@gmail.com>
20271
20272 * minibuf.c (completing-read-function): New variable.
20273 (completing-read-default): Rename from completing-read.
20274 (completing-read): Call completing-read-function.
20275
20276 2011-03-19 Juanma Barranquero <lekktu@gmail.com>
20277
20278 * xfaces.c (Fx_load_color_file):
20279 Read color file from absolute filename (bug#8250).
20280
20281 2011-03-19 Juanma Barranquero <lekktu@gmail.com>
20282
20283 * makefile.w32-in: Update dependencies.
20284
20285 2011-03-17 Eli Zaretskii <eliz@gnu.org>
20286
20287 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
20288
20289 2011-03-17 Paul Eggert <eggert@cs.ucla.edu>
20290
20291 Fix more problems found by GCC 4.5.2's static checks.
20292
20293 * process.c (make_serial_process_unwind, send_process_trap):
20294 (sigchld_handler): Now static.
20295
20296 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
20297 That way, the code declares only the vars that it needs.
20298 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
20299 * s/cygwin.h (PTY_ITERATION): Likewise.
20300 * s/darwin.h (PTY_ITERATION): Likewise.
20301 * s/gnu-linux.h (PTY_ITERATION): Likewise.
20302
20303 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
20304 * process.c (allocate_pty): Don't declare stb unless it's needed.
20305
20306 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
20307 (CONSTANTLIM): Remove; unused.
20308 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
20309 Define only if needed.
20310
20311 * unexelf.c (unexec): Name an expression,
20312 to avoid gcc -Wbad-function-cast warning.
20313 Use a different way to cause a compilation error if anyone uses
20314 n rather than nn, a way that does not involve shadowing.
20315 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
20316
20317 * deps.mk (unexalpha.o): Remove; unused.
20318
20319 New file unexec.h, the (simple) interface for unexec (Bug#8267).
20320 * unexec.h: New file.
20321 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
20322 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
20323 Depend on unexec.h.
20324 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
20325 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
20326 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
20327 Change as necessary to match prototype in unexec.h.
20328
20329 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
20330 shadowing.
20331 (back_comment, skip_chars): Mark vars as initialized.
20332
20333 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
20334 Rename locals to avoid shadowing.
20335
20336 * lread.c (read1): Rewrite so as not to use empty "else".
20337 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
20338
20339 * print.c (Fredirect_debugging_output): Fix pointer signedess.
20340
20341 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
20342 warning when compiling print.c.
20343
20344 * font.c (font_unparse_fcname): Abort in an "impossible" situation
20345 instead of using an uninitialized var.
20346 (font_sort_entities): Mark var as initialized.
20347
20348 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
20349
20350 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
20351 pointers to constants.
20352 (font_parse_fcname): Remove unused vars.
20353 (font_delete_unmatched): Now static.
20354 (font_get_spec): Remove; unused.
20355 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
20356 (font_update_drivers, Ffont_get_glyphs, font_add_log):
20357 Rename or move locals to avoid shadowing.
20358
20359 * fns.c (require_nesting_list, require_unwind): Now static.
20360 (Ffillarray): Rename locals to avoid shadowing.
20361
20362 * floatfns.c (domain_error2): Define only if needed.
20363 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
20364
20365 * alloc.c (mark_backtrace): Move decl from here ...
20366 * lisp.h: ... to here, so that it can be checked.
20367
20368 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
20369 (Fdefvar): Rewrite so as not to use empty "else".
20370 (lisp_indirect_variable): Name an expression,
20371 to avoid gcc -Wbad-function-cast warning.
20372 (Fdefvar): Rename locals to avoid shadowing.
20373
20374 * callint.c (quotify_arg, quotify_args): Now static.
20375 (Fcall_interactively): Rename locals to avoid shadowing.
20376 Use const pointer when appropriate.
20377
20378 * lisp.h (get_system_name, get_operating_system_release):
20379 Move decls here, to check interfaces.
20380 * process.c (get_operating_system_release): Move decl to lisp.h.
20381 * xrdb.c (get_system_name): Likewise.
20382 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
20383 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
20384 some of which prompt warnings from gcc -Wbad-function-cast.
20385 (Fformat_time_string, Fencode_time, Finsert_char):
20386 (Ftranslate_region_internal, Fformat):
20387 Rename or remove local vars to avoid shadowing.
20388 (Ftranslate_region_internal): Mark var as initialized.
20389
20390 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
20391 avoid shadowing.
20392
20393 * lisp.h (eassert): Check that the argument compiles, even if
20394 ENABLE_CHECKING is not defined.
20395
20396 * data.c (Findirect_variable): Name an expression, to avoid
20397 gcc -Wbad-function-cast warning.
20398 (default_value, arithcompare, arith_driver, arith_error): Now static.
20399 (store_symval_forwarding): Rename local to avoid shadowing.
20400 (Fmake_variable_buffer_local, Fmake_local_variable):
20401 Mark variables as initialized.
20402 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
20403
20404 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
20405 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
20406 Rename locals to avoid shadowing.
20407 (mark_stack): Move local variables into the #ifdef region where
20408 they're used.
20409 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
20410 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
20411 needed otherwise.
20412 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
20413 (GC_STRING_CHARS): Remove; not used.
20414 (Fmemory_limit): Cast sbrk's returned value to char *.
20415
20416 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
20417 avoids undefined behavior in theory.
20418
20419 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
20420
20421 Use functions, not macros, for up- and down-casing (Bug#8254).
20422 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
20423 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
20424 to use the following functions instead of these macros.
20425 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
20426 EMACS_INT, since callers assume the returned value fits in int.
20427 (upcase1): Likewise, for UPCASE_TABLE.
20428 (uppercasep, lowercasep, upcase): New static inline functions.
20429 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
20430 the race-condition problem in the old DOWNCASE.
20431
20432 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
20433 Rename locals to avoid shadowing.
20434 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
20435 (regex_compile, re_search_2, re_match_2_internal):
20436 Remove unused local vars.
20437 (FREE_VAR): Rewrite so as not to use empty "else",
20438 which gcc can warn about.
20439 (regex_compile, re_match_2_internal): Mark locals as initialized.
20440 (RETALLOC_IF): Define only if needed.
20441 (WORDCHAR_P): Likewise. This one is never needed, but is used
20442 only in a comment talking about a compiler bug, so put inside
20443 the #if 0 of that comment.
20444 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
20445 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
20446 Remove; unused.
20447
20448 * search.c (boyer_moore): Rename locals to avoid shadowing.
20449 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
20450 (PREV_CHAR_BOUNDARY): Likewise.
20451
20452 * search.c (simple_search): Remove unused var.
20453
20454 * dired.c (compile_pattern): Move decl from here ...
20455 * lisp.h: ... to here, so that it can be checked.
20456 (struct re_registers): New forward decl.
20457
20458 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
20459
20460 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
20461 All uses changed.
20462 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
20463 Rename locals to avoid shadowing.
20464 (Fvertical_motion): Mark locals as initialized.
20465
20466 * casefiddle.c (casify_object, casify_region): Now static.
20467 (casify_region): Mark local as initialized.
20468
20469 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
20470
20471 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
20472 New macros, so that the caller can use some names other than
20473 gcpro1, gcpro2, etc.
20474 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
20475 of the new macros.
20476 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
20477 argument, for consistency with GCPRO2_VAR, etc: it is now the
20478 prefix of the variable, not the variable itself. All uses
20479 changed.
20480 * dired.c (directory_files_internal, file_name_completion):
20481 Rename locals to avoid shadowing.
20482
20483 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
20484 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
20485 dired.c's scmp function, had undefined behavior.
20486 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
20487 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
20488 * buffer.h: ... to here, because these macros use current_buffer,
20489 and the new implementation with inline functions needs to have
20490 current_buffer in scope now, rather than later when the macros
20491 are used.
20492 (downcase, upcase1): New static inline functions.
20493 (DOWNCASE, UPCASE1): Reimplement using these functions.
20494 This avoids undefined behavior in expressions like
20495 DOWNCASE (x) == DOWNCASE (y), which previously suffered
20496 from race conditions in accessing the global variables
20497 case_temp1 and case_temp2.
20498 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
20499 * lisp.h (case_temp1, case_temp2): Remove their decls.
20500 * character.h (ASCII_CHAR_P): Move from here ...
20501 * lisp.h: ... to here, so that the inline functions mentioned
20502 above can use them.
20503
20504 * dired.c (directory_files_internal_unwind): Now static.
20505
20506 * fileio.c (file_name_as_directory, directory_file_name):
20507 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
20508 Now static.
20509 (file_name_as_directory): Use const pointers when appropriate.
20510 (Fexpand_file_name): Likewise. In particular, newdir might
20511 point at constant storage, so make it a const pointer.
20512 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
20513 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
20514 signedness issues.
20515 (Fset_file_times, Finsert_file_contents, auto_save_error):
20516 Rename locals to avoid shadowing.
20517
20518 * minibuf.c (choose_minibuf_frame_1): Now static.
20519 (Ftry_completion, Fall_completions): Rename or remove locals
20520 to avoid shadowing.
20521
20522 * marker.c (bytepos_to_charpos): Remove; unused.
20523
20524 * lisp.h (verify_bytepos, count_markers): New decls,
20525 so that gcc does not warn that these functions aren't declared.
20526
20527 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
20528 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
20529 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
20530 (copy_text): Remove unused local var.
20531
20532 * filelock.c (within_one_second): Now static.
20533 (lock_file_1): Rename local to avoid shadowing.
20534
20535 * buffer.c (fix_overlays_before): Mark locals as initialized.
20536 (fix_start_end_in_overlays): Likewise. This function should be
20537 simplified by using pointers-to-pointers, but that's a different
20538 matter.
20539 (switch_to_buffer_1): Now static.
20540 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
20541 (report_overlay_modification): Rename locals to avoid shadowing.
20542
20543 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
20544 Fix pointer signedness issue.
20545 (sys_subshell): Mark local as volatile if checking for lint,
20546 to suppress a gcc -Wclobbered warning that does not seem to be right.
20547 (MAXPATHLEN): Define only if needed.
20548
20549 * process.c (serial_open, serial_configure): Move decls from here ...
20550 * systty.h: ... to here, so that they can be checked.
20551
20552 * fns.c (get_random, seed_random): Move extern decls from here ...
20553 * lisp.h: ... to here, so that they can be checked.
20554
20555 * sysdep.c (reset_io): Now static.
20556 (wait_for_termination_signal): Remove; unused.
20557
20558 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
20559 (copy_keymap_item, append_key, push_text_char_description):
20560 Now static.
20561 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
20562 (DENSE_TABLE_SIZE): Remove; unused.
20563 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
20564 (describe_map_tree):
20565 Rename locals to avoid shadowing.
20566
20567 * keyboard.c: Declare functions static if they are not used elsewhere.
20568 (echo_char, echo_dash, cmd_error, top_level_2):
20569 (poll_for_input, handle_async_input): Now static.
20570 (read_char, kbd_buffer_get_event, make_lispy_position):
20571 (make_lispy_event, make_lispy_movement, apply_modifiers):
20572 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
20573 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
20574 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
20575 (read_key_sequence, read_char): Mark locals as initialized.
20576 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
20577
20578 * keyboard.h (make_ctrl_char): New decl.
20579 (mark_kboards): Move decl here ...
20580 * alloc.c (mark_kboards): ... from here.
20581
20582 * lisp.h (force_auto_save_soon): New decl.
20583
20584 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
20585 (DEFINE_DUMMY_FUNCTION): New macro.
20586 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
20587 Use it.
20588 (main): Add casts to avoid warnings
20589 if GCC considers string literals to be constants.
20590
20591 * lisp.h (fatal_error_signal): Add decl, since it's exported.
20592
20593 * dbusbind.c: Pointer signedness fixes.
20594 (xd_signature, xd_append_arg, xd_initialize):
20595 (Fdbus_call_method, Fdbus_call_method_asynchronously):
20596 (Fdbus_method_return_internal, Fdbus_method_error_internal):
20597 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
20598 (Fdbus_register_signal): Use SSDATA when the context wants char *.
20599
20600 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
20601 if GCC considers string literals to be constants.
20602 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
20603
20604 2011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
20605
20606 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
20607 (print_preprocess, print_object): New macro to fix last change.
20608
20609 * print.c (print_preprocess): Don't forget font objects.
20610
20611 2011-03-16 Juanma Barranquero <lekktu@gmail.com>
20612
20613 * emacs.c (USAGE3): Doc fixes.
20614
20615 2011-03-15 Andreas Schwab <schwab@linux-m68k.org>
20616
20617 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
20618 structure.
20619
20620 2011-03-14 Juanma Barranquero <lekktu@gmail.com>
20621
20622 * lisp.h (VWindow_system, Qfile_name_history):
20623 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
20624 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
20625 (w32_system_caret_x, w32_system_caret_y): Declare extern.
20626
20627 * w32select.c: Don't #include "keyboard.h".
20628 (run_protected): Add extern declaration for waiting_for_input.
20629
20630 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
20631 * w32console.c (detect_input_pending, read_input_pending)
20632 (encode_terminal_code):
20633 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
20634 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
20635 (w32_system_caret_y, Qfile_name_history):
20636 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
20637 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
20638 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
20639 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
20640 * w32proc.c (Qlocal, report_file_error):
20641 * w32term.c (Vwindow_system, updating_frame):
20642 * w32uniscribe.c (initialized, uniscribe_font_driver):
20643 Remove unneeded extern declarations.
20644
20645 2011-03-14 Chong Yidong <cyd@stupidchicken.com>
20646
20647 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
20648
20649 2011-03-13 Chong Yidong <cyd@stupidchicken.com>
20650
20651 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
20652 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
20653 These macros can no longer be used for assignment.
20654
20655 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
20656 Assign struct members directly, instead of using BUF_BEGV etc.
20657 (record_buffer_markers, fetch_buffer_markers): New functions for
20658 recording and fetching special buffer markers.
20659 (set_buffer_internal_1, set_buffer_temp): Use them.
20660
20661 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
20662
20663 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
20664
20665 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
20666 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
20667
20668 * xdisp.c (hscroll_window_tree):
20669 (reconsider_clip_changes): Use PT instead of BUF_PT.
20670
20671 2011-03-13 Eli Zaretskii <eliz@gnu.org>
20672
20673 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
20674 $(EMACS_ROOT)/lib/intprops.h.
20675
20676 2011-03-13 Paul Eggert <eggert@cs.ucla.edu>
20677
20678 Fix more problems found by GCC 4.5.2's static checks.
20679
20680 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
20681 to unsigned char * to avoid compiler diagnostic.
20682 (xg_free_frame_widgets): Make it clear that a local variable is
20683 needed only if USE_GTK_TOOLTIP.
20684 (gdk_window_get_screen): Make it clear that this macro is needed
20685 only if USE_GTK_TOOLTIP.
20686 (int_gtk_range_get_value): New function, which avoids a diagnostic
20687 from gcc -Wbad-function-cast.
20688 (xg_set_toolkit_scroll_bar_thumb): Use it.
20689 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
20690 diagnostic from gcc -Wbad-function-cast.
20691 (get_utf8_string, xg_get_file_with_chooser):
20692 Rename locals to avoid shadowing.
20693 (create_dialog): Move locals to avoid shadowing.
20694
20695 * xgselect.c (xg_select): Remove unused var.
20696
20697 * image.c (four_corners_best): Mark locals as initialized.
20698 (gif_load): Initialize transparent_p to zero (Bug#8238).
20699 Mark another local as initialized.
20700 (my_png_error, my_error_exit): Mark with NO_RETURN.
20701
20702 * image.c (clear_image_cache): Now static.
20703 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
20704 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
20705 (x_edge_detection): Remove unnecessary cast that
20706 gcc -Wbad-function-cast diagnoses.
20707 (gif_load): Fix pointer signedness.
20708 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
20709 (jpeg_load, gif_load): Rename locals to avoid shadowing.
20710
20711 2011-03-12 Paul Eggert <eggert@cs.ucla.edu>
20712
20713 Improve quality of tests for time stamp overflow.
20714 For example, without this patch (encode-time 0 0 0 1 1
20715 1152921504606846976) returns the obviously-bogus value (-948597
20716 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
20717 reports time overflow. See
20718 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
20719 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
20720 * editfns.c: Include limits.h and intprops.h.
20721 (TIME_T_MIN, TIME_T_MAX): New macros.
20722 (time_overflow): Move earlier, to before first use.
20723 (hi_time, lo_time): New functions, for an accurate test for
20724 out-of-range times.
20725 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
20726 (Fget_internal_run_time): Don't assume time_t fits in int.
20727 (make_time): Use list2 instead of Fcons twice.
20728 (Fdecode_time): More accurate test for out-of-range times.
20729 (check_tm_member): New function.
20730 (Fencode_time): Use it, to test for out-of-range times.
20731 (lisp_time_argument): Don't rely on undefined left-shift and
20732 right-shift behavior when checking for time stamp overflow.
20733
20734 * editfns.c (time_overflow): New function, refactoring common code.
20735 (Fformat_time_string, Fdecode_time, Fencode_time):
20736 (Fcurrent_time_string): Use it.
20737
20738 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
20739 * dired.c (make_time): Move to ...
20740 * editfns.c (make_time): ... here.
20741 * systime.h: Note the move.
20742
20743 2011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
20744
20745 * fringe.c (update_window_fringes): Remove unused variables.
20746
20747 * unexmacosx.c (copy_data_segment): Also copy __got section.
20748 (Bug#8223)
20749
20750 2011-03-12 Eli Zaretskii <eliz@gnu.org>
20751
20752 * termcap.c [MSDOS]: Include "msdos.h".
20753 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
20754 Constify `char *' arguments and their references according to
20755 prototypes in tparam.h.
20756
20757 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
20758
20759 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
20760 Adapt all references accordingly.
20761
20762 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
20763
20764 2011-03-11 Tom Tromey <tromey@redhat.com>
20765
20766 * buffer.c (syms_of_buffer): Remove obsolete comment.
20767
20768 2011-03-11 Eli Zaretskii <eliz@gnu.org>
20769
20770 * termhooks.h (encode_terminal_code): Declare prototype.
20771
20772 * msdos.c (encode_terminal_code): Don't declare prototype.
20773
20774 * term.c (encode_terminal_code): Now external again, used by
20775 w32console.c and msdos.c.
20776
20777 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
20778 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
20779
20780 2011-03-11 Paul Eggert <eggert@cs.ucla.edu>
20781
20782 Fix some minor problems found by GCC 4.5.2's static checks.
20783
20784 * fringe.c (update_window_fringes): Mark locals as initialized
20785 (Bug#8227).
20786 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
20787
20788 * alloc.c (mark_fringe_data): Move decl from here ...
20789 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
20790 to check its interface.
20791 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
20792
20793 * fontset.c (free_realized_fontset): Now static.
20794 (Fset_fontset_font): Rename local to avoid shadowing.
20795 (fontset_font): Mark local as initialized.
20796 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
20797
20798 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
20799
20800 * xselect.c (x_disown_buffer_selections): Remove; not used.
20801 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
20802 (x_own_selection, Fx_disown_selection_internal): Rename locals
20803 to avoid shadowing.
20804 (x_handle_dnd_message): Remove local to avoid shadowing.
20805
20806 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
20807 so that the caller can use some name other than gcpro1.
20808 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
20809 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
20810 (Fx_backspace_delete_keys_p):
20811 Use them to avoid shadowing, and rename vars to avoid shadowing.
20812 (x_decode_color, x_set_name, x_window): Now static.
20813 (Fx_create_frame): Add braces to silence GCC warning.
20814 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
20815 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
20816 Remove unused locals.
20817 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
20818 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
20819 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
20820 macros.
20821
20822 * xterm.h (x_mouse_leave): New decl.
20823
20824 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
20825 Remove unused functions.
20826 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
20827 (x_calc_absolute_position): Now static.
20828 (XTread_socket): Don't define label "out" unless it's used.
20829 Don't declare local "event" unless it's used.
20830 (x_iconify_frame, x_free_frame_resources): Don't declare locals
20831 unless they are used.
20832 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
20833 (x_fatal_error_signal): Remove; not used.
20834 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
20835 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
20836 (x_error_catcher, x_connection_closed, x_error_handler):
20837 (x_error_quitter, xembed_send_message, x_iconify_frame):
20838 (my_log_handler): Rename locals to avoid shadowing.
20839 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
20840 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
20841
20842 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
20843 Rename or move locals to avoid shadowing.
20844 (tty_defined_color, merge_face_heights): Now static.
20845 (free_realized_faces_for_fontset): Remove; not used.
20846 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
20847 does not deduce is never used uninitialized.
20848 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
20849 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
20850
20851 * terminal.c (store_terminal_param): Now static.
20852
20853 * xmenu.c (menu_highlight_callback): Now static.
20854 (set_frame_menubar): Remove unused local.
20855 (xmenu_show): Rename parameter to avoid shadowing.
20856 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
20857 since they might point to immutable storage.
20858 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
20859 since it's unused otherwise.
20860
20861 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
20862 Add a FIXME, since the code still doesn't look right. (Bug#8215)
20863 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
20864 avoids a gcc -Wuninitialized diagnostic.
20865 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
20866 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
20867 does not deduce are never used uninitialized.
20868
20869 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
20870
20871 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
20872 * window.c (window_loop, size_window):
20873 (run_window_configuration_change_hook, enlarge_window): Likewise.
20874
20875 * window.c (display_buffer): Now static.
20876 (size_window): Mark variables that gcc -Wuninitialized
20877 does not deduce are never used uninitialized.
20878 * window.h (check_all_windows): New decl, to forestall
20879 gcc -Wmissing-prototypes diagnostic.
20880 * dispextern.h (bidi_dump_cached_states): Likewise.
20881
20882 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
20883 shadowing.
20884 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
20885 Include <limits.h>.
20886 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
20887 and to avoid gcc -Wuninitialized warning.
20888 (load_charset_map): Mark variables that gcc -Wuninitialized
20889 does not deduce are never used uninitialized.
20890 (load_charset): Abort instead of using uninitialized var (Bug#8229).
20891
20892 * coding.c (coding_set_source, coding_set_destination):
20893 Use "else { /* comment */ }" rather than "else /* comment */;"
20894 for clarity, and to avoid gcc -Wempty-body warning.
20895 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
20896 a block, when the outer 'i' will do.
20897 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
20898 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
20899 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
20900 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
20901 (Fdecode_sjis_char, Fdefine_coding_system_internal):
20902 Rename locals to avoid shadowing.
20903 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
20904 * coding.c (emacs_mule_char, encode_invocation_designation):
20905 Now static, since they're not used elsewhere.
20906 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
20907 (decode_coding_object, encode_coding_object, detect_coding_system):
20908 (decode_coding_emacs_mule): Mark variables that gcc
20909 -Wuninitialized does not deduce are never used uninitialized.
20910 (detect_coding_iso_2022): Initialize a local variable that might
20911 be used uninitialized. Leave a FIXME because it's not clear that
20912 this initialization is needed. (Bug#8211)
20913 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
20914 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
20915 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
20916 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
20917 Remove unused macros.
20918
20919 * category.c (hash_get_category_set): Remove unused local var.
20920 (copy_category_table): Now static, since it's not used elsewhere.
20921 * character.c (string_count_byte8): Likewise.
20922
20923 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
20924 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
20925
20926 * chartab.c (copy_sub_char_table): Now static, since it's not used
20927 elsewhere.
20928 (sub_char_table_ref_and_range, char_table_ref_and_range):
20929 Rename locals to avoid shadowing.
20930 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
20931
20932 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
20933 (BIDI_BOB): Remove unused macro.
20934
20935 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
20936 deduce are never used uninitialized.
20937 * term.c (encode_terminal_code): Likewise.
20938
20939 * term.c (encode_terminal_code): Now static. Remove unused local.
20940
20941 * tparam.h: New file.
20942 * term.c, tparam.h: Include it.
20943 * deps.mk (term.o, tparam.o): Depend on tparam.h.
20944 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
20945 Move these decls to tparam.h, and make them agree with what
20946 is actually in tparam.c. The previous trick of using incompatible
20947 decls in different modules does not conform to the C standard.
20948 All callers of tparam changed to use tparam's actual API.
20949 * tparam.c (tparam1, tparam, tgoto):
20950 Use const pointers where appropriate.
20951
20952 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
20953 * cm.h (struct cm): Likewise.
20954 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
20955 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
20956 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
20957 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
20958 (turn_on_face, init_tty): Likewise.
20959 * termchar.h (struct tty_display_info): Likewise.
20960
20961 * term.c (term_mouse_position): Rename local to avoid shadowing.
20962
20963 * alloc.c (mark_ttys): Move decl from here ...
20964 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
20965
20966 2011-03-11 Andreas Schwab <schwab@linux-m68k.org>
20967
20968 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
20969
20970 2011-03-09 Juanma Barranquero <lekktu@gmail.com>
20971
20972 * search.c (compile_pattern_1): Remove argument regp, unused since
20973 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
20974 (compile_pattern): Don't pass it.
20975
20976 2011-03-08 Jan Djärv <jan.h.d@swipnet.se>
20977
20978 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
20979 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
20980 for ! HAVE_GTK3.
20981 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
20982
20983 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
20984
20985 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
20986 gdk_window_get_screen, gdk_window_get_geometry,
20987 gdk_x11_window_lookup_for_display and GDK_KEY_g.
20988 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
20989 (xg_get_pixbuf_from_pixmap): New function.
20990 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
20991 to Pixmap, take frame as parameter, remove GdkColormap parameter.
20992 Call xg_get_pixbuf_from_pixmap instead of
20993 gdk_pixbuf_get_from_drawable.
20994 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
20995 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
20996 (xg_check_special_colors): Use GtkStyleContext and its functions
20997 for HAVE_GTK3.
20998 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
20999 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
21000 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
21001 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
21002 Call gtk_widget_get_preferred_size.
21003 (xg_frame_resized): gdk_window_get_geometry only takes 5
21004 parameters.
21005 (xg_win_to_widget, xg_event_is_for_menubar):
21006 Call gdk_x11_window_lookup_for_display.
21007 (xg_set_widget_bg): New function.
21008 (delete_cb): New function.
21009 (xg_create_frame_widgets): Connect delete-event to delete_cb.
21010 Call xg_set_widget_bg. Only set background pixmap for ! HAVE_GTK3
21011 (xg_set_background_color): Call xg_set_widget_bg.
21012 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
21013 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
21014 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
21015 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
21016 if ! HAVE_GTK3.
21017 (update_frame_tool_bar): Call gtk_widget_hide.
21018 (xg_initialize): Use GDK_KEY_g.
21019
21020 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
21021 if ! HAVE_GTK3
21022 (x_session_initialize): Call gdk_x11_set_sm_client_id.
21023
21024 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
21025 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
21026 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
21027
21028 2011-03-08 Juanma Barranquero <lekktu@gmail.com>
21029
21030 * w32xfns.c (select_palette): Check success of RealizePalette against
21031 GDI_ERROR, not zero.
21032
21033 See ChangeLog.11 for earlier changes.
21034
21035 ;; Local Variables:
21036 ;; coding: utf-8
21037 ;; End:
21038
21039 Copyright (C) 2011-2012 Free Software Foundation, Inc.
21040
21041 This file is part of GNU Emacs.
21042
21043 GNU Emacs is free software: you can redistribute it and/or modify
21044 it under the terms of the GNU General Public License as published by
21045 the Free Software Foundation, either version 3 of the License, or
21046 (at your option) any later version.
21047
21048 GNU Emacs is distributed in the hope that it will be useful,
21049 but WITHOUT ANY WARRANTY; without even the implied warranty of
21050 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21051 GNU General Public License for more details.
21052
21053 You should have received a copy of the GNU General Public License
21054 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.